Results 1 to 7 of 7

Thread: PR06 (or anything really) Bank Detection - Whats better than FindColor?

  1. #1
    Join Date
    Sep 2008
    Posts
    20
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default PR06 (or anything really) Bank Detection - Whats better than FindColor?

    I am currently trying to use if FindColorTolerance to find my bank booth, on my walking script, and i cant get DTMs to work. im thinking i might nee to use rotateDTMs, but i want to first know if there are any stanard procedures to dealing with a bank. im sure its been a problem throughout history XD. currently my script CAN find it with color detection, but it wasts a ton of time and sometimes walks around like a bot >,<. does anyone have any good procedures for identifying bank stalls?
    in this scenario my camera by default always faces dead north, my script doesnt touch it after login and i believe PR06 doesnt screen rotate automaticly (anyone know?)

  2. #2
    Join Date
    Jan 2011
    Location
    Denver, CO
    Posts
    1,351
    Mentioned
    2 Post(s)
    Quoted
    72 Post(s)

    Default

    Did you try using TPAs?

    Quote Originally Posted by johnlukey View Post
    in this scenario my camera by default always faces dead north, my script doesnt touch it after login and i believe PR06 doesnt screen rotate automaticly (anyone know?)
    It probably does considering these private server clients are just decompiled original RS clients. So if the author didn't remove or tamper with it (I don't see why they would, it's pre-written anti macroing for them), it's probably still there.

  3. #3
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    Use TPA's to fin d bank booth.

    Simba Code:
    program ClickSpot;
    {$i srl/srl.simba}
    Procedure FindBankTPA;
    var
      tmpCTS, l, r:Integer;
      BankTPA:TPointArray;
    begin
      MouseSpeed:=15;
      tmpCTS := GetToleranceSpeed;
      SetColorToleranceSpeed(2);
      SetToleranceSpeed2Modifiers(0.19, 0.91);
      if FindColorsTolerance(BankTPA, 3954018, 8, 25, 518, 359, 3) then
        begin
        SetColorToleranceSpeed(tmpCTS);
        SetToleranceSpeed2Modifiers(0.02, 0.02);
        L := High(BankTPA)
        wait(randomrange(60, 100));
        mmouse((BankTPA[r].x), (BankTPA[r].y), 2, 2);
        wait(randomrange(100, 150));
        clickmouse2(mouse_left);
        wait(randomrange(2000, 2500));
        end;
    end;
    begin
    FindBankPA;
    end.

    This clicks a bank on Project06

  4. #4
    Join Date
    Sep 2008
    Posts
    20
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    thanks for the code above! i think i can get it to work with a little tweaking.
    I think my main problem is that im trying to bank in the catherby bank, with the grey and light-grey tiles on the ground, all my scripts get confused by the similar colors. The script above clicks the ground, as do any oters. ill experiment with it to see if ican get it working, but any more advice would be greatly appreciated!

  5. #5
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    Quote Originally Posted by johnlukey View Post
    thanks for the code above! i think i can get it to work with a little tweaking.
    I think my main problem is that im trying to bank in the catherby bank, with the grey and light-grey tiles on the ground, all my scripts get confused by the similar colors. The script above clicks the ground, as do any oters. ill experiment with it to see if ican get it working, but any more advice would be greatly appreciated!
    It's actually not even using TPA's properly.. but I guess it works ok

  6. #6
    Join Date
    Sep 2008
    Posts
    20
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    its a more advanced color finder/clicker then the one i was using, and i finally found the magic color! the tan of the wood visiable behind the glass worked great.
    i think if i used a tpa for the bank it would have to be a really small one, because the camera angle is going to move around a bit.
    But i have the bank clicking working again
    thank you so much!
    I think i have enough to get my yew banker working fully now, but im wondering if TPA walking is going to be accurate enough to run for a few hours; it works but seems to get stuck, but them im usually able to quash the bug that caused getting stuck.

    Does radial walking work on PR06? I also tried musing the path walking tutorial, but the map i loaded was current RS; would either of these methods work with PR06 if i learned how to use them properly?

    I could make a new thread to ask this, but i dont want to fill up 'help' :P
    Thank you guys so much! im learning heaps about Simba, and its helping in my beginners CSE class :P

  7. #7
    Join Date
    Sep 2010
    Posts
    5,762
    Mentioned
    136 Post(s)
    Quoted
    2739 Post(s)

    Default

    Quote Originally Posted by johnlukey View Post
    its a more advanced color finder/clicker then the one i was using, and i finally found the magic color! the tan of the wood visiable behind the glass worked great.
    i think if i used a tpa for the bank it would have to be a really small one, because the camera angle is going to move around a bit.
    But i have the bank clicking working again
    thank you so much!
    I think i have enough to get my yew banker working fully now, but im wondering if TPA walking is going to be accurate enough to run for a few hours; it works but seems to get stuck, but them im usually able to quash the bug that caused getting stuck.

    Does radial walking work on PR06? I also tried musing the path walking tutorial, but the map i loaded was current RS; would either of these methods work with PR06 if i learned how to use them properly?

    I could make a new thread to ask this, but i dont want to fill up 'help' :P
    Thank you guys so much! im learning heaps about Simba, and its helping in my beginners CSE class :P

    I'd advise you use Radial walk because I have tried DTM walking and it's bad, SPS is for Rs and all the DDTM tools are for RS. But here is the Radial walk tool, i commented out the RS parts so it is usable on a RSPS:

    Simba Code:
    {
      RadialWalkAid - Rebirth
            by mormonman
      This will help you make Radials for
      RadialRoadWalk.
    }

    program RadialWalkerAid;
    //{$DEFINE SMART}
    {$i srl\srl.simba}

    const
      Debug = False; //recommended at false
      MCX = 109;
      MCY = 85;

      //Don't touch below this


    var
      mForm: TForm;
      mMap, mCol: TImage;
      mButtons: array[0..5] of TButton;
      mLabels: array[0..5] of TLabel;
      mEdits: array[0..2] of TEdit;
      mList: TListBox;
      mCheck: TCheckBox;
      emptyMap, CColor, curMap, Ind: Integer;
      Paused, Working: Boolean;


    procedure m_Debug(str: String);
    begin
      if Debug then
        Writeln('['+MsToTime(GetTimeRunning, TIME_BARE)+'] ' + str);
    end;

    procedure DrawColor(col: Integer; b: TImage);
    var
      bmp: Integer;
    begin
      bmp := BitmapFromString(b.Width-4, b.Height-4, '');
      FloodFillBitmap(bmp, Point(0, 0), 0, col);
      DrawBitmap(bmp, b.Canvas, 2, 2);
      FreeBitmap(bmp);
    end;

    procedure GetMinimap;
    var
      tpa: TPointArray;
      tia: TIntegerArray;
    begin
      //if not LoggedIn then
     // begin
       // m_Debug('Not logged in, unable to get minimap');
       // ShowMessage('Unable to get minimap: Either SMART is not enabled or player is not logged in');
       // Exit;
     // end;
      m_Debug('Retrieving map points');
      tpa := TPAFromBox(MMBox);
      FilterPointsDist(tpa, 0, 80, MMCX, MMCY);
      tia := GetColors(tpa);
      OffsetTPA(tpa, Point(-517, 0));
      FastSetPixels(curMap, tpa, tia);
      DrawBitmap(curMap, mMap.Canvas, 0, 0);
    end;

    procedure NextColor;
    var
      ColArr: TIntegerArray;
      s, Hi: Integer;
    begin
      ColArr := [clBlue, clWhite, clRed, clGreen, clPurple, clAqua, clOlive, 65536, 49647, 5083366];
      if InIntArrayEx(ColArr, s, CColor) then
      begin
        Hi := High(ColArr);
        if s = Hi then
          s := 0
        else
          Inc(s);
        CColor := ColArr[s];
      end;
    end;

    function FindRadial(x,y,radius: Integer): Integer;
    var
      x1,y1,r: Integer;
    begin
      for r := 0 to 360 do
      begin
        x1 := Round(Radius*Sin(r * pi / 180)) + MCX;
        y1 := Round(-Radius*Cos(r * pi / 180)) + MCY;
        if(Distance(x1,y1,x,y)<=1)then
        begin
          Result := r;
          Exit;
        end;
      end;
      m_Debug('Failed to get radial');
    end;

    procedure DrawRadial(x, y: Integer);
    var
      Radius, Radial: integer;
    begin
      Radius := Distance(MCX, MCY, x, y);
      if (Radius > 80) then Exit;
      Radial := FindRadial(x, y, Radius);
      DrawBitmap(curMap, mMap.CANVAS, 0, 0);
      mMap.CANVAS.Pen.Color := CColor;
      mMap.CANVAS.MoveTo(MCX, MCY);
      mMap.CANVAS.LineTo(x, y);
      mLabels[1].Caption := 'Radial: ' + ToStr(Radial);
      mLabels[0].Caption := 'Radius: ' + ToStr(Radius);
    end;

    procedure DoRadialPath(StartRadial, EndRadial, Radius: Integer);
    var
      x1, y1, i, ma, mi, len, c, bmp: Integer;
      tpa: TPointArray;
      tia: TIntegerArray;
    begin
      if (Working) then exit;
      if (Radius > 80) then exit;
      Working := true;

      StartRadial := StartRadial + 180;
      EndRadial := EndRadial + 180;
      StartRadial := 360 - StartRadial;
      EndRadial := 360 - EndRadial;
      ma := Max(EndRadial, StartRadial);
      mi := Min(EndRadial, StartRadial);

      c := 0;
      SetLength(tpa, ceil((4/3)*Pi*pow(Radius, 3)));
      repeat
        for i := mi to ma do
        begin
          x1:= Round(Radius * Sin(i*pi/180)) + MCX;
          y1:= Round(Radius * Cos(i*pi/180)) + MCY;
          tpa[c] := Point(x1, y1);
          Inc(c);
          m_Debug('x1: ' + ToStr(x1) + ' y1: '+ToStr(y1));
        end;
        Radius := Radius - 4;
      until(Radius <= 1);
      SetLength(tpa, c);
      bmp := CopyBitmap(curMap);
      DrawTPABitmap(bmp, tpa, CColor);
      DrawBitmap(bmp, mMap.CANVAS, 0, 0);

      Working := False;
    end;

    procedure OnClick(Sender : TObject);
    var
      ints: array[0..2] of Integer;
      i: Integer;
      strarr: array[0..2] of String;
      str: String;
    begin
      if Working then Exit;
      m_Debug('OnClick');
      case Sender of
        mMap:
        begin
          Paused := not Paused;
          if not Paused then mCheck.Checked := True;
          mLabels[5].Caption := 'Paused: ' + ToStr(Paused);
        end;
        mCheck:
        begin
          Paused := not mCheck.Checked;
          mLabels[1].Caption := 'Radial: 0';
          mLabels[0].Caption := 'Radius: 0';
          mLabels[5].Caption := 'Paused: ' + ToStr(Paused);
          DrawBitmap(curMap, mMap.Canvas, 0, 0);
        end;
        mButtons[0]://Change color
        begin
          NextColor;
          m_Debug('New Color: ' + ToStr(CColor) + ' Old Color: ' + ToStr(mButtons[0].Font.Color));
          DrawColor(CColor, mCol);
        end;
        mButtons[1]://Clear map
        begin
          m_Debug('Cleared map');
          Paused := False;
          mLabels[1].Caption := 'Radial: 0';
          mLabels[0].Caption := 'Radius: 0';
          mLabels[5].Caption := 'Paused: ' + ToStr(Paused);
          mCheck.Checked := True;
          DrawBitmap(curMap, mMap.Canvas, 0, 0);
        end;
        mButtons[2]://Load map
        begin
          m_Debug('Loading new map');
          GetMinimap;
        end;
        mButtons[3]://Add
        begin
          if mEdits[2].Text <> '0' then
          try
            for i := 0 to 2 do
              ints[i] := StrToIntDef(mEdits[i].TEXT, 0);
            if (not InRange(ints[0], 0, 360)) or
              (not InRange(ints[1], 0, 360)) or
              (not InRange(ints[2], 1, 80)) then
            begin
              m_Debug('Info not right');
              ShowMessage('Please use correct values for radians and radius');
              Exit;
            end;
            m_Debug('Adding info to list');
            mList.ITEMS.Add('SR: '+(mEdits[0].Text)+' ER: '+(mEdits[1].Text)+' Rad: '+(mEdits[2].Text)+' ');
          except
            ShowMessage('Please only use integers!');
          finally
          end;
        end;
        mButtons[4]://Delete
        begin
          if (mList.SELCOUNT > 0) then
          begin
            m_Debug('Deleting info from list');
            mList.ITEMS.Delete(Ind);
            case mList.ITEMS.Count of
              0:
              begin
              end;
              1:
              begin
                mList.SELECTED[0] := True;
                Ind := 0;
              end;
              else
              begin
                Dec(Ind);
                mList.SELECTED[Ind] := True;
              end;
            end;
          end;
        end;
        mButtons[5]://Draw path
        begin
          if (mList.SELCOUNT > 0) then
          begin
            Ind := mList.ITEMINDEX;
            m_Debug('Drawing radial path');
            str := mList.ITEMS.Strings[Ind];
            strarr[0] := Between('SR: ', ' ER:', str);
            strarr[1] := Between('ER: ', ' Rad:', str);
            strarr[2] := Between('Rad: ', ' ', str);
            for i := 0 to 2 do
              ints[i] := StrToIntDef(strarr[i], 0);
            if (not InRange(ints[0], 0, 360)) or
              (not InRange(ints[1], 0, 360)) or
              (not InRange(ints[2], 1, 80)) then
            begin
              m_Debug('Info not right');
              ShowMessage('Please use correct values for radians and radius');
              Exit;
            end;
            DoRadialPath(ints[0], ints[1], ints[2]);
            Paused := True;
            mLabels[1].Caption := 'Radial: 0';
            mLabels[0].Caption := 'Radius: 0';
            mLabels[5].Caption := 'Paused: ' + ToStr(Paused);
            mCheck.Checked := False;
          end;
        end;
        mList://Set Ind
        begin
          if (mList.SELCOUNT > 0) then
          begin
            Ind := mList.ITEMINDEX;
            m_Debug('Index: ' +ToStr(Ind));
          end;
        end;
      end;
    end;

    procedure OnMouseMove(Sender: TObject; S: TShiftState; x, y: integer);
    begin
      if Working then Exit;
      m_Debug('Mouse moved: ' + ToStr(Point(x, y)));
      if not Paused then DrawRadial(x, y);
    end;

    procedure FormInit;
    var
      i: Integer;
      EBox, BBox, LBox: TBoxArray;
      LCap, BCap: TStringArray;
    begin
      mForm := TForm.Create(nil);
      with mForm do
      begin
        Caption := 'RadialWalkAid - Rebirth';
        SetBounds(100, 100, 450, 263);
        BorderStyle := bsDialog;
      end;

      mMap := TImage.Create(mForm);
      with mMap do
      begin
        Parent := mForm;
        SetBounds(5, 5, 248, 169);
        DrawBitmap(emptyMap, Canvas, 0, 0);
        OnMouseMove := @OnMouseMove;
        OnClick := @OnClick;
      end;

      mCol := TImage.Create(mForm);
      with mCol do
      begin
        Parent := mForm;
        SetBounds(114, 179, 10, 25);
      end;
      DrawColor(CColor, mCol);

      mList := TListBox.Create(mForm);
      with mList do
      begin
        Parent := mForm;
        SetBounds(258, 5, 187, 169);
        OnClick := @OnClick;
      end;

      mCheck := TCheckBox.Create(mForm);
      with mCheck do
      begin
        Parent := mForm;
        SetBounds(129, 209, 121, 25);
        Caption := 'Draw Radial';
        Checked := True;
        OnClick := @OnClick;
      end;

      SetLength(EBox, 3);
      EBox[0] := IntToBox(258, 235, 60, 25);
      EBox[1] := IntToBox(321, 235, 60, 25);
      EBox[2] := IntToBox(384, 235, 60, 25);
      SetLength(LBox, 6);
      LBox[0] := IntToBox(5, 179, 60, 20);
      LBox[1] := IntToBox(5, 199, 60, 20);
      LBox[2] := IntToBox(260, 215, 60, 25);
      LBox[3] := IntToBox(323, 215, 60, 25);
      LBox[4] := IntToBox(386, 215, 60, 25);
      LBox[5] := IntToBox(5, 219, 60, 20);
      LCap := ['Radius: 0', 'Radial: 0', 'Start Rad:',
        'End Rad:', 'Radius:', 'Paused: False'];
      SetLength(BBox, 6);
      BBox[0] := IntToBox(129, 179, 125, 25);
      BBox[1] := IntToBox(5, 234, 123, 25);
      BBox[2] := IntToBox(131, 234, 123, 25);
      BBox[3] := IntToBox(257, 179, 61, 25);
      BBox[4] := IntToBox(321, 179, 61, 25);
      BBox[5] := IntToBox(385, 179, 61, 25);
      BCap := ['Change Debug Color', 'Clear Map', 'Load Map',
        'Add', 'Delete', 'Draw'];


      for i := 0 to 5 do
      begin
        if (i < 3) then
        begin
          mEdits[i] := TEdit.Create(mForm);
          with mEdits[i] do
          begin
            Parent := mForm;
            SetBounds(EBox[i].X1, EBox[i].Y1, EBox[i].X2, EBox[i].Y2);
            Text := '0';
          end;
        end;

        mLabels[i] := TLabel.Create(mForm);
        with mLabels[i] do
        begin
          Parent := mForm;
          SetBounds(LBox[i].X1, LBox[i].Y1, LBox[i].X2, LBox[i].Y2);
          Caption := LCap[i];
        end;

        mButtons[i] := TButton.Create(mForm);
        with mButtons[i] do
        begin
          Parent := mForm;
          SetBounds(BBox[i].X1, BBox[i].Y1, BBox[i].X2, BBox[i].Y2);
          if (i = 0) then
            Font.Color := CColor;
          Caption := BCap[i];
          OnClick := @OnClick;
        end;

      end;

      mForm.ShowModal;
    end;

    procedure FormSafeCall(proc: string);
    var
      v: TVariantArray;
    begin
      SetLength(v, 0);
      ThreadSafeCall(proc, v);
    end;

    procedure FormFree();
    begin
      mForm.Free();
    end;

    procedure Init;
    begin
      CColor := clBlue;
      emptyMap := BitmapFromString(248, 169, 'meJztnQl0FNed7sGxDbbBsc1i' +
            'JBajzaAVbaClJdAGWlm0gKQWArSAViS0sW8CCYPADlsCBi+AE2/ED' +
            'sGe2I6diZM38xzHb5KM30xWzzzb887Mm2SSmcnkzZskTs77bn3df9' +
            '2uqm4txgaRrvM/dW5XV3dLVb/66rv/e2/dOTOnz/GMWQFTbWP2NQq' +
            'bbw6cdg3jWn3nHP+RuYmOTGh8csKS3NDYxKDIOK71wJaRhulTpi/U' +
            'Y3bEAsSs+VGIgND5toG3sosri6obsEY4CkoQmYXFUraP3CIVnhvxK' +
            'QTLKdn5DF9fMlTguEkMf08EfxdrfWNsahbCtKcpuI81opMzTC8jk9' +
            'IjEtMQKOClBN7FScGBnREU6u2AW4NnSsK0XT+hsvZ26oekwneMHzd' +
            'upMEP4q/NctYPieuoYziQ++AcgbNT6Kz1DbYNtwbqsoWQ82IR2kcT' +
            'xuXD78FfhQuwoKapZGNHcdPuypae9d29CJQR2CjbB1/WNOMjCBxz/' +
            'kekXafUelFgHb9kqTfUBWB9CyHXOSf5XOOAD8n5kALlYwdbBkxcjQ' +
            '7y9QOPMRpPXkL0XLiKQIFb9HdZSKrtIuo4dDhTg39AfPLoOJcLeTg' +
            'xfMgR2JNo+YZcdFLfyDLZFs7tv8qt/+pTxgWifxyBowRiGYB50+7D' +
            'epBwnXOGvt0avAQK67aasCfYIFbwlsAWhg65jrou5ggdcr4cjp6PW' +
            'm9tUZct+rs+Pmj7PYQ8s2WXrtXjJk5XMT1k/JSZKGCtQtsBnBN1nF' +
            'Pq+eB3ulEfMlx3qPhkHD117zYkFAUeWG/wW29/PLw+UMdppaTrUsy' +
            'yKLmNCdGsCzkn6lb3Ip9lGTvklVZRja2s6hhfk+CFQ+YZJJ+GR1d4' +
            'Yi+XAAs66qRd2JaQl0Adp8Ab5J8E577f8gUYONSCnGN95KX/JqFgB' +
            'uE655YdXJwXlJg5H55044iBGZydlv1HO4+cOvCFJyWwBVHdsQu3aX' +
            'w/Dq/VyJkcoH7HNB15nBT8qEmHbSy626j4dt3i0nV7zI+AbYh2WWM' +
            'n5dob1WJIPqEwXVOsmwjzgrpIvTBs62fItlwFFPNpD4R80noe5N2f' +
            'DM2YJ+G8EwnnNCRFWx/CGqaFqIuSY4u8y/3LDj5Kzj18yzA0HEcYA' +
            'JPtw196eevJi4yqgSsr+p5ntB08AVQEeJwpHGTibfUtJs5NqPOMgG' +
            'GRYlnr8k6/YaLa6sbl6iDn+AjuFGJFRqHYxH5I+H1/Mz4LDaeS+2a' +
            'ewItv0f25ycPrqi774OATct+cD+nAR63nw4EcVOuQcy2cg1syjAJ4' +
            'JupK0g3IYWywEcGCfCqlpHqYnOMfxxEDEsT7wKWrTU+85djzwvzGM' +
            '0Hl+25fdlQCLxkJdf1xnReAPWiv39EHolgJsoZ+kK16jt81UWqb0L' +
            'Bu5/621U/ejMAPL0kTb6bARkS6sxOHixFTWB+Qvc5HRGXVJOQXI7A' +
            'n9sdNU77ZaoGGc4OQj6g/xlkL9cAhRVBP8BJXrsm3C+Ti28WcD2ld' +
            'SDt1Kdit8CPi3zfkXrF3C7gpwCpql/QhrIQiyLPoPNkG/9gHhcmOl' +
            'SPlHO/i2ELDQfieC0q3wfCMwrbJiVUTI1YyUDbFhNQOYo9rgbTjdI' +
            'AxW9/iI99irTwO+hOjRqDbD9OeUv0UvAEVCGf9USfZpK6kWrg1/Ws' +
            'mqq0bZQsLPER8S+Dnj/JyG6mlx4n43Fe+wbjwxjtYg3nRc1PNVLDH' +
            'qeTRHg7n3nKMH1/kfflz35wb5gQA05lQukE1UyvgnCIfU9E4PtzBi' +
            'io5F3+Ov9/HrYQH9vAzf7b21BsgXE4cVAunrLZnO2NVbROCZXCCdx' +
            '90rNNppwThksH/OGT1E/uIGpsId3FuGHJJvgnn1uoqAj8q6k2uTGY' +
            'D1JmE2sSqflGPKGwFX64L/CKOFW8ZPiyNaSP+heNffl04R+w+f1kO' +
            'lCkDKaizHur7sJv03BrXyrrbom4LuXAOf0KLQtSp5yAcYDO4kUrOi' +
            '8LEuVc9j0+GCANyuhRoOE4cNuLslDe3FVTVkG18FdZh8YsQKXnL8R' +
            'JvoZBVWkng8UHQjmskr+s0vlBQ9xb4CcKJc6fn+gal273FlDMRzmU' +
            'jblgkHGE1JPjzyLb1fmQldtyoFuv3WO8IwrzucMQyWR0ONnYde1Qg' +
            'RwB7VKJ5BJiuMUHOl75Rp84HGWk0qp/vZiNB17fOy7u+HMtwOJ8Zy' +
            'RDUybmgjgIhlytimJxDfgk5nDbPEQkHwHEZSxEoI5iuBNhkG2VIOt' +
            '6NSE5HoACcgDoCwo6vwg0Cp8Mb6kzm6M1DptbDwaSKO83iSmzq1dK' +
            'CEtSXTQ5cgnhbTdfHp3qk5PsA3uTbrZqPupKgTuui/nejOoBAgQkZ' +
            'W9StB5+Q4134fCZneEUM6WR8S734fB314fsWqYcq3xKawCDqgJxB1' +
            'CVb7tpheHqOPw+cEHJYDpwRmBBqOAlHAS/3nTqNIOfYwkAZG7kz4Q' +
            'ftEHycPqg6vg2o48uBsVVYaMhNCXMT59bUiuzAl3mlVSRcrK9U4vA' +
            '3+HAgnxzbPpg32X6ogQAvNl48jP4SazHqKKAGhOMmki7NT3QseoJd' +
            '8WOcdKmWMn/rzdKPKGw5N20PtbQHBblbKnW8Jffi4jzccXv8Unpvv' +
            'KQnF8Kh53jJ6qqgzpfe/Dle4hBBLgRyeA+RcaxRbj9wEDCfePZ5BL' +
            '7q6+98j7S/8M03sX7ia6/gXZ1zfpDJGXwnPAxQB59COH4UL3GmbBv' +
            '6bcTcwjmEiIkUMeFCOAQc2OjqfR3Z9rZ4q+fayjtRx3+K07Tt+Hn8' +
            'mzCECPg0afkV1CXTLqZdMRyfHORuNgJR3GjqEjNS1PVeLgzJG/vOx' +
            'uicm5Lnwjkgpy1BWYyKybewWqqsCzk/97K3fAvK+Adx9Pqf+Ro8uS' +
            'g5KIX9BrrwJEI4IaeAM3TOcS3Q2PACAe1EndVSJbDOWvyWGPKi6gb' +
            '73iyaG7dNLXI7zruu4WxkBOFC9Y2Jt3UxyTsVHrQzX2RbXWXehjV9' +
            'E+1Slyftpm4wON3S9cUEud7ANHzOvTV5+3by5vy5Z4MR0+OEnHlyE' +
            'XCswb9eG0VIExILtpzjL2Hdc+2pNyakdgAJsSuseBJyYmzlXH/J3R' +
            'C4NKjtoVFRaUWl4l5QdWIrkngV6Y4iLfUOz55a+loCFwiTyYTcSvj' +
            '1NSejW3R5J+0E3lRX1fONPAiSVJdDysDppo0xKTYJ9wY5oufQQMtD' +
            'x/c+clJCbdm1n7Ghc4eP7I1txtIr6p56buKca92NI5STGTcOa51zQ' +
            'd2k53KVoYCrno4FqsuKJw05+KSSS+icw7e8/bc/RPAl9VzfH2VwTl' +
            'UHgZR0oE5LKUjrWUHbzLk1kcjWTL2LCP4vK+HXG9vRL95ot9V2oM7' +
            'kEgK0s8pPyOV46jl2b2wzSPWhx7+IaDx+EVF+5Kmyg+cY1buPAHgE' +
            'UK9s6RSr760pajic24Zwbgu5qpxiHe4woS6tS7ac48gc//LrcCw4t' +
            'nAsempFh5wW5Wf/+x8JNgoSeAng8S6uAlwLEkAd30avjsuHnPMO66' +
            '1B076FyGgeolExtfjYavj15vTaLFbacQwh7KYuwbhFQslBuNAO8tl' +
            'PRlBHYeHSldZUjI69Tnju4acjm08Fruq/L7NbYkb+9oBV/XOrH45o' +
            'PpW7/SwVvnBdA8Ib6r6Tkz5QF85pwrl2NQYx0xgab1L1sJXr5VO6b' +
            '2HQmYuYYwdCLpxTqBEgmVT/x3/+J6Nt568QPXtewkZyjsD+wjk+Bd' +
            'sDVYfPhxwxx4gKKSVdtyJ6N1oP2t2ZFuxgyqjgjEtN8yYjXF+stOM' +
            'cseVIV3XQTmFnLyOUsY/eEcIk7Kb2U53wgPztU5JrIrwvYJ7Ag3Zx' +
            'MkOi7k3bbfPbQqxiW8LIoivOp4cI6q63UDZ20DmX75c0C5w5xRxsM' +
            '0+CgBqL3ybGQjiBTy36D0RQ1BG+hJPBPrw0dFWn1Yeqk3NaF5Okmz' +
            'qNW5t+9IwKQpLhIubXm8dPdjHRbmtj2PeSHUoBPNZ4iUMtqm6LukD' +
            'edvFqUPXDQvikabmTppXfcU/N7ZPab524k4Eytui0Q9thZsC5qPpw' +
            'OhUEax38bC0NHYip/7mCOTReGo/YQVffgX1grPVQmhZwTtMSlaWS4' +
            'Ux9S70SoNKuAG/QTs7PPfUvCOEcZUo69gfkCGZmeEfAmpKOX6d1Yf' +
            'rLal1MvVMIOf5CkXGUIeNk+0+EcH2x2hgcSRPq8DA4XF3HHkUAdfE' +
            'wui3Ue8UQcphwyLgQDphB9fhbB2657dFbbr/0mdufx1oFXt568rZJ' +
            'vQCeOwP1sNYLxR0Hyza2phSWDrMLTbARvvuJCbfsrMXBRChIH0U2j' +
            'zJkC8cTmfScDaAwLfASNC3Mfpuqn3QsJJyo07GQ8+DEP89d/d+xEZ' +
            'cDJF0gR+B7dJeOA44fwjWFtYlzU21UCpBxvfkebvxPSsati1XYaWN' +
            'MeRix67YeRlKO8NiAvOL01yDOouFgWBEOvCdcvXXiGwgUXHH78y7m' +
            'b3sUtGNnQT2vrguox+YUDQd1nXORd1vURxr8oM45IjIpHcdh68mLt' +
            'y87CtMCGadpoWOhmGMtMs4AzCRcOIekYyMlXeecKRq9NgpQdc511E' +
            '3ZctxwpQWfYq433P8JEq4vJtRZP7XmYaDnBF7yMPrd88jOJwk5lfy' +
            'egEWQcdALhgEzCdfDg3MDdVwOFHZ4daAOzuFeRtQrUrLu3lAfXZjq' +
            'ofFLluJQwJzjcMG0gHPQGBoVhYIIMlTaxLk4Fp1z1kZ1PZfsom7Ry' +
            'TncC/trmTiXl8U1zXpu/E/Zq3hbbB27tZcjzq8Eh8DIoYZjgScPre' +
            'wn5BBnBbkm4zacG6jrHmb8LQddqNefX9R6AqgvSMseaddfupdriLq' +
            'Lc6P9N8gYFr3t+Hmdc0DOYKoEwTy5nmaBS9HDyrku6fgGcA49x3fC' +
            'opNzWHQr57aGnLlx3atcb75urGVIDwO2xasjoB6qZpqdT1uee/hpN' +
            '+S5MORA10X1/Z2DIahrGwc5v3UAH6SBgapnNu4TSffRQ0Afa3ZNwJ' +
            'avZQjnlHS2ELEZ1Mo5W/CtnEOcsUNGhgNr4TytqNTqWxAgHJzL14J' +
            'z/BxQp2/BDcXU0ImaFCFn0Kv4ZdzHYkI9Ib/Y6mFwSCFoCKKO2yXF' +
            'XBwLNBnQupT8/s5FVX9bf+lntyz40fjwl4VtlBko3zE9FfuTc5H0k' +
            'OVdEc2nwDkqpAim1qUVVdpV9TZWU5lr7mzqghVk18s3yEtPSHLOvj' +
            'oI+pYVfc+PmnMJvDT5luFwjlq/DBSikuv5Q6bH/ZAPuZg8jC3qsOg' +
            'ct44z3nPo6KCYz0uEmMOxuDy5AfmZ9z5CoEDUTUHsgbqC3AhIOvON' +
            'kHS4F0Tu9rPlR56StlS9XdVbWbawANSlD4zX8LIDLJzOOWrc+PfBO' +
            'eqh5HzewlTx5xwoRH9uyznDB+fMw5s4b3rirbyu05LLFc7ZDCTnRY' +
            'f8enM0NhaTsJtQx0tR9dbdveA8aN3DUv3UxRxKTs4p6RI+OBdJn7e' +
            'qE6gjAlf1I3C/0FtUhxP4CKoMuFLAv0LdB+Tew6Tn5BwCG1S+j/kW' +
            'ZkUg41IJJeem1CKolmZTAszd2B4qqNPh49Yg/hxHWzjXe60w62ur5' +
            'Ncbn7G0mFCHqujVUgRONzlvOn4xoGDHoGm5/ZKYcCBN30I9Hxbnkn' +
            'hJK0PMjs0cTgTGFSGiMvIlgtLKENgI2nFHcEn6x+YcW+p39OEfB+d' +
            '8V+ecSUWEWBdpLcJbHDRHyAEzk+fkXPItvCNIvgVsg/Dtz/8NDrvu' +
            'z6VBn5zrqZXrDc7YW3wkYYg6nGHPQ0fB+X1ZPcyZD5oWN+e24ZtzW' +
            'Bd8W1qxs7qlZ0PnDkRVc1d1+9bqtq1r23qqWrur23rWbu6p2tyNWL' +
            'u529nS5Wx1RWVLJ6KiuQPrso2tUTlVU5JrsjsegV23HYLkO4C3B+e' +
            'GvYElRmV8fuMZWHQ1LN0YIgEs9XYiACy9E9k2igLFnAPlCDkbQ02N' +
            'RHr+HLoNMQfn0h4K36L3ITflD683MmN18ZGEoZkBPxVHnhLOQemQn' +
            'Pv258I5KHW2dK7fsn3dlm0gmQCbQrHd0ukCvq2n2rgKKpq2lDe2E/' +
            'WsynroOYw69NxXTxgL4TL4jv6co6iYXQRvqJhwyDMsOsdWSFMRBRn' +
            '0CskCvJ4kFyWX4RisxkplVrpyHXv1faDOHhd8vpz+vCB92Ob1hmVs' +
            'L1AtW9Q5EA/85B152s15uQfndqhb66EmyIXzwnUN1GcSizJgloIEX' +
            'wJyxXn7Vrxc3dC2etNm7pxS1gijTn/ui3NP1PWHqZLzweEbWlWUFh' +
            '2STusiXVyoyeygRbtuDd2T0+3onbg44IL9xh//ix/ht/Rmfb8n/4Q' +
            'WW9RdLn3X/rzDZs6leQgMC+reki0qzWhUPyXoz8k5xJzEjjSg8wBe' +
            '9y1DcO5Ju3Cu588liw7rAose13mB2cW0olKRdOEcQZitoWcRBXUxL' +
            'eQcF05CfjEcy8Gr7/EhDAi9E7Uf8k9iMaHOaik4h3nWODdaiIxmUA' +
            'miPgTkdpyv2NAIzqHSgxbFkHerG9feEshdb3nzLV5Rt0i6lfPZEQs' +
            'yC4sh6bAukHQ+iYiSzpGheg9bU3dEa0gXR14jdCwI1ZTftFsXcz5H' +
            'SO9k64f8k1hsUYeeqw6KBdvJuauRyJB0ady3ou5hyzXCdc6VP29Vz' +
            'kR8C5m3cl7p6d6xHf6c5RH4Fi8Gxso5g7VRSDoT6RDzeQtTgbred5' +
            'FjnGXUv62eS4cWvfqJr8LvQslZA6Vj0Ye8+SH/RBcT6vDnqoHyoeO' +
            'SP6d1Yf9bCbzUUfcNObum49vWNG6h9ybnlS3dLtFWhHcb4dZzt2+X' +
            'mqkwn1bsBOdsKvLd3O+tTmr155T0hCW5dOnzG8/gaOCqZ8ZbHmohh' +
            'BNgvDRxbroQZHAoLBCorhq4As7zuk7LKGa9n60f8k96Aer6UFNoKT' +
            'h/sPWCtIcq63LrSVcHLemmdduj0uJv68l1ztnFBZxXtvZUCLRuqmn' +
            'XK1o8fIv7WlCxxi3miITCCnJun1f0redG2Zue8yFF4l4EdVAKQab3' +
            'YLJROJeHFKEseXKhnYNMcaUA8raDJ469+j4dC/s/S47LD/mntuioA' +
            'wNWRWld2CQqoypIOLtpIbxVPE2c43vIc0UrkHYzrLIrPdxuCPignl' +
            'e2mrOOgnpsThE4t/XnQ7gXz/4tOuGD/WGMx4du2n2YqPNxlzQewjn' +
            'lWni2lrHDqtomfooDiAj52lNvoIyKgP68KX105/Wm4OZfTO4FnAOk' +
            'oI3nRdJdwys0wl3dtLTGfd9iznQizMmapi3kvLyla00Tge8B/xXKk' +
            'zOg7d1ui95l8urQc9RDrf581P3P9T5gs+ZHRSalQ9VBIIw6DYzqwO' +
            '+spaoTeD7Rha6GgTLb95k/pFdxGM/9E8glx0LHggvKb8s//UVHnX0' +
            'IIemBxf0yksjlXkYCuYwqKlzXQErLW7pXN8Ofd9KoVLio7pJw7+bx' +
            'lkC+bss2cj4cfx7k5UlfMp7I9pEaRB1gC+oUdtLOLl5Mxeg9FWnj2' +
            'TZKN87+cqh10q7waTm6Lfc7luu16Khv6NxBly6Jl8FhoSbOh1JyQl' +
            '7drpr4i5t3LG+Es+0qad5a3LK9tHkbMC5r7ilp2lbavLXckHGyzap' +
            'oedMW3Zwz30LO4c9H10Hd+vwWK+qup9fWbU2o6wfqpJ3Pm3UYT+wE' +
            '8NKzhb2zsMU16jC/GJ9qeuIttnuy4smxn4BcEon+Rs/ruIhRp3sBT' +
            'kA9dAXHh5ZzfChU2tTc6QPyrMr6so2t7NNC1OnJK1v0LKIlpFsLwu' +
            'ActON7dM5H4VsI9pCci9QzxQ0mOUKfwINhPhsfPFOiWcBGDhQC28w' +
            'fQsbpVQB5wpJclE1NQn5bfr0Wk6QjcjoeEdRJuw3qdoQT8rw61V+L' +
            'XwXIwfaaZkT3mpYetW7uLm/pMcKQ8Vasu8tbjYKK7goNfnCunhug6' +
            'fmo/bk8L9cb5DI0FR5G5Ubcjl0CPOsB+w282UELayGcEZuaxaZPfy' +
            'Lxxll01A20Nmc17gPq8OpB6asJMJ/coj+8hXgL4WnFzqwNnYs27DN' +
            'F0oZ9yTXu2LA3tXZvVv3ugoad+Ru3FzTuLNi0M3/TDhUbt+ch6rdm' +
            '1u1MqdmLkG8IWd41b1Wnt3zLkObcVA+17mN68CmH+EUnZ0CT1dOb3' +
            'c/iNqHOKedgUfAuH5jgcD/YmTONysOj2B3RD/mNsOjuBe5aUFfC7h' +
            'yk3XZJLCjN3X42a+DPEYv7XvFdGHIHfU+ORQLqmY37WvZcGnW+xdV' +
            'O5OUqsJ24edoDIXyMc/ySpTQznMsb38Nny8sztyX06XLYvs8LRH8w' +
            'xfU+z3/qi7mRdF1j0XoVSa0nFO2bLwRtPB/qPJRUs1+FIbNgL7vjE' +
            'RkQh4Cew7Rg7aMw5A56gTcIFsD56CD3zbnv2clnBIUSeDae6k+Hs0' +
            '5EOzgPhcWx+CG/cRaizmZBSJC64Rqo59d3ZTXtS9p8MmnziSV9ryC' +
            'yDdWtOP01BPAGlgvSsj+5CHdkIcSZeJNl0w56Y5Bw7m2C8oKqekbR' +
            'ugZTiLa72OYTPt2zBelsy0Mq5BFDevXzep9e/zK40L0Adb03Y2pRW' +
            'XpJFcJgvhuRXWPobWU9PHlKYWlcThFR9PY8Ih8Trvl4uKg+e5fvGH' +
            'I3b5wL4c279tX3Ht4ycEqiuf8E1ntPnRPgzbPQanPD6ZBzDIVfzG/' +
            'kxSTprIKxj3pEWjYiNj1HD2wJSUxFRCSm+aB3dJzbCvVwu7V4Dv+3' +
            '+hYQHuvIRGzo3NF58DB4Lj3yxYyDL2UcfRORc/wvnI88g0LLo8+B9' +
            'qaHPocLgbQ7THORe06VxTEUpsH7fshvwEUkXZ44LYF78bbj57uOPa' +
            'qew2DMLaXPzBvkOYHdx4F8lt2EvFZDYs+293HQouckvHpzz65jx/v' +
            'OX8obeDa8/dLsyqPBlQfjq7Yl1vYxUjbsxpbguvN4N7LrOTAvtHug' +
            '7vm4IesDtfyc34CLSDrbvvXp7XASO4+c4tON+Mw64RwBnKxUD4fzY' +
            'eq5V0kfIefRKUtgVED4oacug/DQpvMB+VunRmf5iJC0khDnQaCOUJ' +
            'bGoN06CQWHyIk590N+gy8mSdcfDoAzyGfWtew/CuzJOR+cHpmUbiv' +
            'po+Pcm57bdru1D21P4RyQO/KKCHncriuzS/sCEvMDU4vn5tSGFNYH' +
            'FzWHFndirQql21WsbA1f3jA1JhsR6CjB/hHtl2Bp4HZK61pMnEvCH' +
            'Gu/mN/4iw9JR/DBjJwORp7S4JqWLj75mui57ZQuQdZhFMOWdOnHBc' +
            '4JedS2y5RxUo0IWb4FLiVk7QAivGYgpPZEyPpjQD2suDOspDNsVeu' +
            '0xELQHrp8C1Q9Z8+j4Jx2XZ5krk884XfmY2LRJV2ebiSSDs7p0lVH' +
            'U8OlA/WE9FzURk1gj1rSgyzPFB2xnls4B+Tdh48C8oQdz4HqQciB9' +
            '/pjiu31x1TUnphff1IBb7wMrT0BzkOKmufkbQwtrJ8amw3yoepLO4' +
            '/pqOv9tfxplrGy+JB0rOUZpHAvIul6bXTIeRgDw8IRPlA3cT7kiKE' +
            'hOY9JzaCSR/e+BJWeuiCLRkV4jmw9D/5T9lxx9L0qkXnkdUfv1YUt' +
            'JyJqBoD3rMwqBFGP33Ulu7m3YH297sz9Yj7mFqBOzq2Svmn3YZNLl' +
            '/buEc3DKLR7ewq6CfVRV0WF845nXoHHhpLDdYuSx3c9ldp7lVSnH3' +
            '494+ibUlBlI82ILcsOXg6jjSnuhIGZU3k0ettl6DlQ10fxs5O5n/O' +
            'xsviojcKuiEuv7tjF7nmmeRgjmk8FeM7DGOB9HsbhcD5EFt0n54S8' +
            '7/ylFceuotY5LaGASg4NJ+Q62GTbhffRNxe7yc84+FLijucg7JGlW' +
            '5SkL66Ee4lvVw1J+nx//t4sY2uxWheaFnkAqcwUkOWst5mHMTLSW4' +
            'D5QMs8jD4mthhxg5El8SJifk9wVOjKVkAONw7CYVRIuHAOthE0LaD' +
            'aZV2Ml6m7LmcdeT2h66mIyp2zcmqAeiiulK7nltZ0ltW3imnxP7d8' +
            'zC23LztKzhF8AKk0j7LNiNbFYx7GFBfhM+ZHhcyPjJgXt2j+IhXhi' +
            '1DGlnsDF+m06/MwmgwMu1eNTNX14fxaQgacsz2Itjy84aQo+Z2BoQ' +
            'zwzJAtrpgZyULqnitAHaFUvXInOJ+RVgnrktPcm1ZS5a+Bjt0FnIu' +
            'k6yPWKezU872PnBqch9FFeDTxzgtPqYjNalhU0BiThUA5LyIFwJN5' +
            '7hw4jHkYvSUerT2yTNeClJt37QPnMCrgHGIe136OkJPzbR/+FpHQM' +
            'ABJxxXHl7MzVrHAiOl9CXuiTgrOsYZ7CVpaOy2xENZlYesJci7zrf' +
            'ghH3OLLukQK7EunBFj60NqIozK01+7L6sb0CqtnhcHmIl3Z2L+rtR' +
            'iBsoIMu8GPiliXrygPqJ5GGd5zpxuClNfRHK+6eHHmTAPr9wJ05Ky' +
            '6zJQhxtR9OYvf+Qf/gPVTEj0oacug2psDClqBtvY7sgrSqjahgI2w' +
            'tgA8qjW8wjsgP0BPDgvXLvRb1rG9KJzLk/ZpXXhPIyAXE0QYMg4hB' +
            'oAA2aAfXBJxZGstVtTVlbEODYXr1wZntgUt7QjIQ+0Ny7IqojzQH3' +
            'IeRh9NycNGZ0HD4PzKZldinPDmYNwqDf0HNVSAAy8QXJFZ2/rm+8S' +
            'cqzxkngjWFBG3eA8dP0xlXWJzV5Y1wfTvqy2y29axvSiWxeEXhuFL' +
            'W+/eDXUeUggp4wT8oHs6ocyq9oWFhTHJu9tXFsQlVAbk7ElIZfCDt' +
            'QRJeGpeRGpinag7n0eRh99vYYZ3YePlh75ouJ8gaHnDSdBeMHR1+D' +
            'GUQgtrCfJr//md3DyeIlLAFua+09gC/QcZRToW4A6qqIIpecx2ak1' +
            'ezIPvkTO/aZlTC+6pItFZ90z7/DTyq7MX0jIATAJZ/QuLq9ZkLkuM' +
            '+P5M31VSxaXh6c0x+ZA0hHkvCY8Dajrqq7Pw3itIEfsOnY8f+BZl5' +
            '5X7kzZeZG5RCbGFx9+HcRe/NZbgBmQI+BPhPPMv/s1gv48xaiKAnL' +
            'oOX3Lwrr+zKNvknP/INAxvVizLuRczcNoOJaQ+ZEwIQI51ttSVsGx' +
            'tC8sKHwwcUfN6m9feWzb+rKsuVFV4ak1UYtrjQDkzrAkXdKv+TyME' +
            'vDnwnl0yWaYcwRzhoyFtX1LX/sVYMaa/gRr1ExBuCRewH/ijucQKr' +
            'VYMxBWuh1Xh+Lc0HP/M4jG+mKy6JznRcQ8MCoeYg67IkoOyNctzCm' +
            'NchTPW+RMX3J6d+MvP3wX69KU1Ow5kUtDY5dHJVXOT94w3wHOTahf' +
            '23kYhfMNnTuE85DC+rj2c+A84+BLhHx2xirhGYWMx6+gEFCwlZzPS' +
            'lkO6QbkMC3xu66oZEvDydC1A2wVhW9J63sVnPufXDHWF92is8EIgu' +
            'mahxEiHBEPxwJPLnYFSg7I64tWVyxZ2te67vLJbf/3lx88f2Jrb1N' +
            'VaXpG5bLlGUFRpSEJlaGLyHlpaDw4j0tNxbddk3kYQ7R5GEXP4c9V' +
            'vmWB0nPF+c6LavTQwZfI9rKDl9lxxfHEl/EStgQvsdH1Vk4NHDvNO' +
            'QoR7ZdUB4CVreA8xHlwYcuJwg0bpSPu9T5d/mX0i8mi86GjNC26mB' +
            '/OqupdUt6+qBBKDsi//80X33j2c+98ZeD3v/nFd1888vVnjv3VN19' +
            'Y6UhPmRGyYm5sWXBChRt16nkk9Hx48zDOMcI6DyM/rs/DKJzDbKv8' +
            'eXRW6MpWaevX24mo2OZGIncw06JSNHuuhNefVF0WV6h+6SH158F5W' +
            'kkVFMAv5mN9MWXR4VsaOQ9jZGReuHLmfRmVsCsw5LULslaFJ1WmLT' +
            '60eT0g//cP3v71h9/9/f/7d6z//f23gfqehoqChPiFM4IzAuflzY5' +
            'a/sACsS74trRi5zCnLipv2iJrPVZv2qzPZ0TOY1Izmh76XHj7JfoW' +
            'VEXZ0A96gavLlhgt+6yHmgI7kHO2E7mSijHZYYud0Ha2h+KW5+d8r' +
            'C9Wzss5D2NkJE1LT/KKihjHqphEEN5VVfKFPc1fPrUdSk7I//DRR0' +
            'T97RcOP3u855Ht9Y1l+XlxsalBIWmzw0TSoed8oOKIosqY/KLcmId' +
            'xdUObaT4j4RySDgcC6zIroyq4qBn+XPXC3XUZ7tqx7wUF8J4r7KzF' +
            'PAybhOhVXIXeqyrTUnsC5jx0+ZZpiYWhG45Fdj23pGKD/4lbN8eiW' +
            '3RwruZh5Lxdbs5bE/O3lBTv3lh5+Uz/t7/6+K/+4V14ctgVQs5A+f' +
            'f/+W+/+eX7qJa+/epjT3++t6duzfq8bJ1zeZo0o7p9q8x/IZN5MUx' +
            'ze1U0d5Q3d6xu3FLR7DGfkc75pocfD647D0mPKN0SXjMAlw7UU43E' +
            'i5DMAO2DhLMvuqHkrIFC3gMdJUFL6yK2XCLnOCZ+yG+ORZf0wXkYL' +
            'Xq+dknmjg2rT+9uRPXTRs9fPPzM8e5Httdtca5akZSQNDcoeVaw+B' +
            'Yr52s3u2Fu6TLNzCgvhfOyhvaVdW2lG9vi89eZfAsqiXFpWUA9b+B' +
            'Z1f98gep/HlrcCWhhPFS/RLd0s7MWytgY336OnpxtQ4rwyoOAHDVQ' +
            'cB5aPYB9lq9vZAuRn/ObY9E5H5yHMTKyJDwFnO9JK4M/b4pfVh21O' +
            'Dc0tiwl9aEt619/5mHdn//b+9959emjvS3OooTEpPuDlsx8MGvW/N' +
            'wHIktD45ly8eFbPGemc21xPUe6WQXE3Hhw+pbSho68dQ0m38JxFvi' +
            'z6dLZ0SXEMN6gF/XKqNbzIJlsw36jAODJP9Zs6GfbUGTpFkAe4jwY' +
            '0/tS3rbjEHMOIPJzfnMsJj035mFU+Ra2ELGz1o6UVV2LiupiMrPnR' +
            'JamZXzvmy+g4gkNh13BGpD/1TdfKExKTZoelDsnYlVwbElIHCH3xr' +
            'nTO+ei52qmDEPPVzdsKd3UXtbYkeVsNvkWPhdaPdFiff3SzmOhTef' +
            'V+NAFWaqOuVyhrqL2BIEn8wgUsAUBwnEXAOSq53nKcqwV5NuPs5ui' +
            '35zfTIuJc9c8jEZesTEmS/ol7kxZVRO1OCMoqnLZ8pWO9IOb16Li+' +
            'X9/+T7sCpQckJfnr4ifGZwx88GVwQsEcvEtZhkfhp67pgYw9Hx1Q3' +
            'tpw5allTUyD6OJc0deEVGHqqMuOTUmO2BhgbIixZ1hpdthSwi2Yhv' +
            '1TUPDQTV3IOQAHlXX+F1XNnTtJOc0537Ob45F5xxoueZhjIyMmBfv' +
            'DFvE3lmIjoS8yvnJy6OSgHr6zAeXL1x4fOdGVDw/t6O+MDEhbtpsQ' +
            'J46L2rR/XOLgqJ1MbflvNI906JpRlGTb6l0ca4senlTp6OkWuZhFM' +
            '7luRZU9ezm3oiu55RKp5cGxC9FRCxvgPHm8E+ATbZZgOzjclCefO1' +
            'AzvG/AOQbdx2QsRX4cj/nN80CzjlclK3/7nkYXdaFIylULMiqjVpc' +
            'GpKAWDE3duGM4C1VK95+9TGs42Y8AEMOJQfkWbPmrQyOtYq5JFiGz' +
            '7mb9g7l0pu2OFu745etkHkYdT0PMuatUM/wT1minjIE1NsvqZ7klQ' +
            'dnZ6wCyQQeMTU2WwXUnlsWFuCKUI9tMYbUwecDcv35cn7Ib6ZFJJ2' +
            'cu+ZhNCQdtVF2QWQvxA3zHYiy4IQlgQ+WOpJfPN+LdWpAyPKgGNgV' +
            'KLlA7sO0jDQU6vDtbVv1eRg5+M7EOVGPTskoWteQ0DDA6qdq5Szdn' +
            'rphNyKhahvXuARgYDhQNOPom7uOHV9Svh6Qb9p9WB/47Of8ZlrMFl' +
            '3mYTRcOtyLcM6+iBWhi3JnR6aFzOuuW50SHAYNL9Yqnjrn1ozi6Dh' +
            'Xqcj2rfo8jKRan1dRHp0Um5oVk5qBUA9LbO7N2fMoouDoaxkHX2J/' +
            'XT7LYsWxq1WPvbH31LnFILzYmVlYXNbYCc4rW3r8nN+UCzlPqOtna' +
            '9GGzp3ueRjpXlLBNiEn55Whi5Y/sCB5VvDa3Cysc+dElNhxLpDDtD' +
            'BQLm9sX9vW456uTjUSsaAmkjbqpE63sSHeWK9paOMcXqZ5GJVvKV2' +
            'XVbUxKCp+Vng0IyAsPCEjr7CqLrOoJC4taziRXeJ0FJZiXdmyddPu' +
            'I8VNe/yc35QLOAfkwrkaIqrPw2igDnEm5Iw1IYnL5kRkzpqHtZ5g0' +
            'SE3zcMoqLNA2lkQ5sG5MK/sitHLZXVD2+pNmys952EUzgtqm2dHxu' +
            'qcp+QUgHPSO2TgcmAB+6/vPoAwOFeoR2XV+Dm/mRbqOSeQ5YALSDp' +
            'CzcO42YW6CLseVrxJOCHX52HU66FgmEgjsH3dlm0EWySd+1S466qV' +
            'xpSjiOHoOcLEOUgWmH0EPuLJ+R4/5zfZonMuT+gq27QZkdW0H6gHF' +
            'h9SM9O5abfFWwj3Ng+jaU5Gb+F+d2+yEUnap/R5GL3puXBuEm1b1P' +
            'WN+B4X580uzgOy1/OBitf7/PiXa7PYco4oWt+42o26EnY1D2MZabd' +
            'dPs15GHXOdcgRFOfhcK5HyabO9T0G5AxwngPO1/s5v2kWcC4T3+uc' +
            'E3XXPIybTyraWy8E1Z8PrezXxfnTn4dxTmSsiXPYcuEcjqWoqi6ts' +
            'BSRU+LMKipB8GXa8DlvNjjPAeerrvf58S/XZvHBeWXr1m0nHityzc' +
            'PYndW4j9IKjRXV/ZTnYQyOipcHFtGfC+Gzw6NxCYBq4E3IyblAbks' +
            '7fA451yEf5DzSz/lNsthzbpzr6s7dnQOnES29xzgPI+x34boGID0o' +
            'tu55GGNlHsawcJvw+TgL2ykAhnxMOjmnP5/tyXlqfnHGijWLC0ocO' +
            'fkLswsQi3IKU3JXYrtOOyAn57gv+Dm/uRcbzt3nGnre9fA5RFvfSa' +
            'BetK5RzcPoyLIqbXBCCsKecC1sH9jibX6uIecCoG+Bws92cz5zXuT' +
            'ivBXpBcVJS3ISlyyNXpQWEZv44ALEwvnxSTGpGfFLli7KLkg2gE/N' +
            'KUjMyGNSsbB+my3nkxeuvd7nx79cm0XnPL2qSz/X9C3gnJIOqGId2' +
            'dEpmYyIhelDgm3mHAbDE/Lg+VHB3jn3PeUiOM+u2gjOIeMgHDeLKT' +
            'PnJCYnv/TylX/651/9/qOPfvzjH126dJHxne/+D2z59W9+881vvZm' +
            'xLC80IiYmJSMufWmaUW8ta+qycj6jqN3P+U2zDHJesd8b59RzmFgT' +
            '56wDmmJGcBjDnnNP1G0fijuEmLtRT3VzPmu++jOmzQl+4sLj//Xb3' +
            '4Lny88/m1+QP37cOD0caemPPnr2ww8/+O3vfvfa16+GRsVHLUpPzl' +
            '2xakOTCXIELiI/5zfT4uK86awt5wfOXBDO8TIhI88H50K4zrkO/GA' +
            'C0OeMosOc58LFeUy8UvLA2cmpSSD81jvvQXzmjs/qodM+6a67Ojs7' +
            'QPu62trIxJTkorJVda0Vzd36Pw4bg6OBmODovN7nx79cm0Vx3nTWl' +
            'vP1PQd0zlEtHRHnVuY9ct3D4Nz3RLrgfEn5hgfCo2FXilas+Pu//3' +
            'sQfvLb7z79w3/8ys9+/sRf/+++b/6458rb6x75IrbPnBkIwoX2sND' +
            'gDz78YPe+/UlZebkVG6rad/k5v7mX23OP+eB866lL3vQ8MnmxcO6D' +
            'cK+cDxt1b/4cnDtWVU6fHZSbl/GjH/0QMHe+8J0j3/pp3zd+hOh9/' +
            'W92vfYuw3nxm3MmPjhzxtSp905yoT5+/M7du99+5390dm925K1YVt' +
            'Vaov3jOA7kHAfnep8f/3JtFhPneia5fmc//DkroYgh51X8hDi3od3' +
            'gPGllZciCxL6+PrhuyDX8yUNf/8HGS38OwgXyrS9/v/jk1aztZ3EV' +
            'OMID44PuC7l/8swpkybdeRtQx/rowMDZs2cfjEtdXr9V5zyh/hCOi' +
            'Z/zm2Yxca5n2DbtOULORzSv4gg4N1D3nWyxvhTaEwrKSsqKAHl+fh' +
            '4kGiQ3P/5K9dmXHQcuZvSezek9vXjniYj6I/Ocu4NXdeDd7KgAoh4' +
            '56x6gPt5YEuJjTp480djcklfdtqphp3AuxwS+7nqfIv/ycRdAjlPJ' +
            'c4qTa+V87+dccxXxUbqRzacChz2v4rA4/xiqHpNdtH3nLlQqYbynT' +
            'rkPJLdfeh2cRzUeS+w4ltxxJGr9ztn5zYFZdTPS1uLdwriZRD3BQP' +
            '3OWxTnWNfW1R8dOJJRWrti4zY/5zflIpzHdV20ci4anndEDRqdklL' +
            're17FAMu8ir45Dw6Pnm10VvGBtA/O56dk7ty1Kzs7887x40JDg0Fy' +
            'z7PfKn/ky+R8YdvhB8taAfmUhBIE8zASCUFT7pt8p0j6zl27k5aVF' +
            'mzowH8N5yacw734Ob8JFnCOUwnIqeeAXDgn5O0Xrwate0QIv3d+4u' +
            '2JKxHjlrTd5nBiLaHTrs+rOKSeA/XRZV0eiE5obm4C4YEzAyMj5tO' +
            '3VDzy5eRdT8K6pO0/Dz1fULENXv3pH/7T8z/553Pf+wea9vozL6gM' +
            'zJTJk+5SLh33AnxPVEr20spmWBccAXLOw+Ln/CZYaM51zlkPJeQV7' +
            'scWkXCCPX7lznGlh8aXn8KaBQbKty130R7gOa+ifQrd0POgqPggrW' +
            'vWEJB7TpWbmJyUX5AfOGNq8NyZiZFKz0t6n0A9NKHjJAKSDtNy+rv' +
            'vf+VnP2cSRs/AbH7uLwX1qfdOcqSlJzvSHUXOoroeHISsqo04II69' +
            'L+LI+Dm/CRZwjlOJE4rTipNLPefEFhVqXsUe0XASrniuf2x800vj9' +
            '78yfuDbrkAZ0XkVb6koPSSoD86raMc5wzfn9lNCG+WERYmK85mB4B' +
            'zQMn+YtuU4ap0IOJZ7Ywse+voPgLcOOQgv3PN4WFEbPhJy/9333X3' +
            'npLsm5eRkJaUkJ+etLqzp0jl37HnRz/lNsIBzdTY1zjmvYoV7XsVB' +
            'yEn4/lfGnXxHxTPvqUAht9EVxna1A3ZbudM8r6K3PgCi7cNIvJh8S' +
            '/SCmJLSEsX5zCmA9tzbP2376nern3+r+ORV6Pncovbpjurmx78Ghc' +
            '/q+1LitnM5vacR2D4lvgTh4nzynZMmKc4XJSctWlYCi447Gg4F7Bw' +
            '5D67YNyHXj/oYXlgJJec4rTi5OMWciivU2S+QK6MCdDuvKobP/UAF' +
            'CP/i94j3pp/8gjEhOkdtPPeDiQ//mdJ2Q9X1eRWnzQ1FWPu9uBqbt' +
            'F67PpjXY154eFWVUzjvv/KXzZe+AZ7ju85E1B+ZmdMAzre/+Jfln/' +
            'sysEflNLnjCAI6f0/MChPnBQX5sfFxi5aW5DhbWQ9FkPOEuv4Jfkk' +
            'fywsroeScZ9Y0r+LtkXmqjmnIOPyJIvxb/zru5Q+A93hF+L8w6p96' +
            'D+FCHe8atI/bfpl2XeZVFM7tO3oNNXOutU/vvAg35/dPBrQnvvH9u' +
            'ideA8+A/MG1+wH51EXlqJk6T38V1VLwn9F7FmHW87vvnHrv5NLSko' +
            'jo6KTcsqVVm8E5q6LkPK7zgp/zMb2IOSfnOLn6vIqAXFU8Udncfll' +
            'BDoABOSK38cx7Hwnkwjki9eWfuFB/5j31kfrHrvm8ijrnD8yLqK2t' +
            'z87ODJwyiZxDuk2cQ88BP/UcNVOEyjR6+paE+JjmlqZ5UQtSCp156' +
            'ztYGU8pXacOzh6g/oKf8zG9iDnHCcVp1edV9BBzEAuJBuFv/3o8If' +
            '/pvwzGT1wFQD6/75ziHHvC2Jz7gaqiuo36NZxXcVDnw2PAeVNTg9F' +
            'I9Fn4luqzL5t8S/ul18W3MAmj+xYj3zJpbZWzs6tzXnza4pLa/Jpu' +
            'cg4XJ5ynlFT7UR+jCyAH28I5Tqs+r6Iri1h6SKVWKObv/pZi7gG5m' +
            '3CGghy7vf3rca/+woV651V9XsWAVf2IGR97XkWXb0lagvrjwQO9kR' +
            'HzwDn0HP6ceh66Zqf4FtRD6VuYVNd8y2ch5jNnBh48eAC+JTEjN7u' +
            'iiRkn+hZl6va8uKLveb9FH7sLzfmK/sushOK0uudV3E7TwhyLq+75' +
            '8gfj/+dvVLg5F7aFcMTE6JzZ/+ujcd/5LxVGQgbXyPDnVWQMZ15F1' +
            '1NDMwtmzpq5c9euHTt3Tr0X1uWzcWs2R9TsQ8C3zEhbC5j1eijz6p' +
            'qefxZi3tLSBM7DQoOXrFidW71FOGdtlJz7LfrYXWjOyTm7KerzKuo' +
            '1UGVawPnPPgLngFnYnmiwzRhv1EwnGJzf/dM/Yk8l/lD1L36P8yqu' +
            'be0ZzlND+Yg5rvUo85xXkZwn5JdOvOPOVEfa2UfPiks3RZKzfcO5l' +
            'zONvCL0PPXARV3PoyLnX7p4FmI+ceIdq2qaVhqNoSbO1556A6j7OR' +
            '+jCzgH5GtPf0PnXOZVFM4nPvxnd19+B8QK50L1RKMg2EPkhXNlXSD' +
            'pRtWV87aY5tsaRejzKpLz5OKqhKy82ydMnHTXXSdPnnjlla8B9YhZ' +
            '98QH3YdICZ2GIO1zMtbMXLz6wbLWB5aW35+0AoQjLj//LAK+5d4p0' +
            '/Ira+p39nOEhXAOL5fX9XlwjvBbl7G40LQAckRe9+clcy7zcOmcKw' +
            'dCzt0Bnq3WhQHyXdaFev6d/7omT4fmc0RlfiLXc6FL1yUXrb57yrT' +
            'PfOZWVEUvXryYk5kK1IPvnyy0O+a7suvuUITD5MTFRL722qvQ87sm' +
            'Tc5cXrqua29b30kZTCR6ro7SqTeannjLn3UZiwszLU1Pfgec05zjt' +
            'OrzKt4eledqHoJvgSyDc5hzDfXxlgop8y0ui049v3acr2lst/oWcL' +
            '549fopM2fffd/Uz3zmM1D1Dz/8ANXS0JBgRfvMKaB9yvTZtbV1UXO' +
            'nR866hyMsAHlzc+PPf/7PUPI77rzLkVvkbO1u2T/Q9fC5ytatoudS' +
            'G4VpAeeg3c/5mFvAOQgH57Au0k1Rn1cRnA/6c0PPx737W9+ci8Krd' +
            'lJWRV/9BZgf3XzQw/Et4Dyzsu7+oLCps+fePWXqrbfdVuWs/PGPf/' +
            'Srf/vN0YEjcOwgH0j//qOPoPYgPD4+Bi//9od/i8tB9Vqf/NnFRaX' +
            'O1q7mfUc6HjoBzjftOWKyLvgJco6AdfH3dRlDC00LICfnOJVsAdTn' +
            'VTRzDhPy7m9VBdMNuTmLbkqhu/X8GnJu61vguGaEzLs/OGzqzNmfn' +
            'Tb9lltuAdJg+K//+vvAGwVgD6qvXv3Kzl27+EQXCL4aZPeZW3NKKt' +
            'a2bW3ef6TnkUf52LHOI6d1ztmhq7hpNzkH8H7Ox9DCGig5x2mVbor' +
            '6vIrgXHXfKj0k+RaF7tu/1jj/g1XJCbmL82/9q6qQfvF7H3+KIkZa' +
            'sXNwXkVjFBKfxyW9CO6fGzJ15px77w+YfN+UCXfc+Zlbbx0/fjy7p' +
            'gN+XAITJkyc/Nl77581d358Ut6a9W39j7jwdkPedezc+p4Dg5zXqU' +
            'h3dtKiI1JKqv2oj4kFpwl4EHJYFzEtiMqWLjVjy+YLrvZQw6K78ue' +
            'GdZEsoi7mQjhinJFaVEpu6DmuiHHbL18rzhMKKwbnVTSeMmfinKhP' +
            'nxME2u8LmHnP9BmT75s6+d4pk6dMmxI4e+bc0OCIBcERsQuS07Mr1' +
            'm/o3meCnJyrqVtE0g3Os5z1Yl3yuk77OR8TC05TXvfnxbSImIuky7' +
            'yKLuvCzi3nfnDH/Q4iLZ1bTBruUnJmWr7zX6o26hZz87yKo4rYnCK' +
            'ZV9Fo9I92+RbLmGvQfv8DwQr4WQ9MnTVn2pygOfOjwuOTY1Iylywv' +
            'q2rb3tJ7DGy39Z3EGmxvO/6YRNvBky7O6xhboedYk3MIu5/zMbFMW' +
            'HZU3YUNzplPMHHepOZVfGyw53npIdWxnJy/ZOTJfzKYUcTGQaNieB' +
            'XV7m/UWNXLskPXSsyp5zKvIjifExlLPR/O02OCouIXLltVXNuCmib' +
            'xNsm4jnpx0x6BnAHUqwaubH/+bxD+2uiNv0wwptzi+ao6+lUT5OS8' +
            'dXdv3pGnA4sPiXtRQ4ROviNIM/CSW1yEE3LDkzOveEvXuWuVOdc5d' +
            '/lzN+fQc3m0nY9Hx6TkFMgzrnXCTUHOYV1MnMO6wLHwuPkl/cZfwH' +
            'n16W9sv6zOF5uHTJxD7mq6drYePgGXLu7lNodTDSY6+Y6r4yK8Oqq' +
            'l0k331V+44t3fxvz0jzFG3VOHXGaa+5ihz8OlxmJExeuce4vQuIXZ' +
            'Jc76nf0+8G7Zfwx2BarOUNZFSfpWXc8R8C0i6f5c+g274NQk1h/im' +
            'Wp68i15ioUEfCnu6V0Pn4Okr+47J5PN3b5w5aCB4RgKw8m4hs4ZqR' +
            'gX4VB17FD/mI95FUcRaxrbK03zKg6Dc2yPTsmEV1FuXKMaGKsm/to' +
            'WmZNOPeo/bzlCFQpKU0qqsU4tqdZRX+zsRG3UdSscuOIfSXfDLhNy' +
            'j4nJxCmzmpb1PQdUvezhc5B0RE7n5/R5FUG76sHIdLphVMj2YOsnC' +
            'DeyK77nVbzmeu4Ncii5gnz/MV23sSUhIy/Wka0mxm3dyncPfOGCEU' +
            '8iOo+catl/tLKlJ7u4MjY1K2FJLgqi6iLpKPsl/QZccFIWV3W5xPy' +
            'Jt1QOwRNyiDl0b9uJxxirN21ePTiv4uBMc7elOcdltN22XDUhqVQM' +
            'sN9+GS4FxmY48yrmbdruI3zPxugxr+L8qLC4hZz3PCAo1BrYIbOwu' +
            'H5HH7hFtB08UVzTHJ2s5rNAAVuA9OEvvbz15EUGLnyEvMRbZB474y' +
            'NRaXmgHUGXfvDqe0rS/ZzfeItKsxz9Kk6QcuZdp5VGeXLOahohP3D' +
            'mAqffcqHeqmaaC63sD0q7UeZVnBOxQDif/kCIKQJD50OKocnAG6yu' +
            '7+6FLEcmpWML8T5w6Sqqk449L8xvPBNcvi+gsE0i2JhiEm9hB+xG4' +
            'PFBXCP4EvwiVAKHEeF36TfawpnN+15SZ4eNergLF9Ub+QR3Rw5dzC' +
            'U40xyqk8CMtN8I8yqqpOJQnONC3rT7MCAva+wEooXOWpQB7Z4LV6D' +
            'bIDkwe93diVV3RKxEoCAhW7ADdsPO+Ag+iI/jS/BVuBWScxxJP+c3' +
            '1ALOcVLIeXHTbhpOnXOIOcHmVEQi7HhZ1tTFkcugLvMGmFfRNTKU/' +
            'tw752ASNhuugzIOUA8/82eQaKALhsPikzfmZbzRlseYFjF3WkrkPQ' +
            'khesyMT0ZgZ3wEH8TH8SUUdtwQj736PgIFP+o3yKIaQI3z8vCr74u' +
            'YD3JetxVi3tZ3Uoccwcf7o1BYVcdH+qcUlsJ7D2deRT6/wjZQQ8Ta' +
            '+iALHw+1sI3ZbA/1wjkiLDYRqAPy6o5dlHFYEUg0IiA/oW398jf7K' +
            '94+uEbirvDZ81bnBBQkAHid+akRc3FR4FP4OIUdXwjU4YhwSGEC/U' +
            'Okb4RF9WYpqcbpwEmBmIPtLGe9Djlifc+Bbccf4/yJouTEHmbGUVg' +
            'qE1jEOrLVvIp2Sst5FX0Qbn54C2qLnxjn02bNhaSDT9RDCTk0GW5k' +
            'Rn4CSAbSgPx7Z+rfv9D+r9/q/48PLzHSygqSu2oi64oQc1c4EAQe+' +
            '986ZyqFnajja+HVIfI4qqyQ+lG/vgs4x4ngTRYFgAHCdchLNna0G2' +
            'KuBwjnun5nPydqiViYTtSZlAuNWwhop84OYpBhvTwE594hHxHnqaX' +
            'riqobps8NVaGjPjcU75bUtgxCHrkKkANdcPv9J9v+7oWN//n9gY9+' +
            '98of//iPf/zj74z1j/7wx7f2n9i+6dyR+qePO/Y0Cu0ubY8PxpUiq' +
            'MMR4WCi3GdYQT/n13EB5DgFrDRB0qVLkh7ru3u7oeTHHt12/LwRg+' +
            '4FBZlIMWpRBvWc2M8Kj7ZCPqSYuzgPCrXlfDh4WzkvrG1WAm6wLZC' +
            'zHnrgC0/u1ZSc+gzIQTiodhPOUJBDzKu+8BDiof/20uPff63/ypm4' +
            'prWgnWaGwk7U9168gi/HT+DwDroX/wwv12PRHQtCNQxZIIeYo7Lmy' +
            'fl5vZsTTQvFnJATe7jrUXIeFGrLuQA8Uj2Hb5nmxpuFgOCwiMQ0cN' +
            'j/zNfS9r4w0YAc3hugwpy4NZycD8bP/+k7S7c1kvPiz++CpJcd2w/' +
            'a8TK+ppSog/O75s8C6vhafDl+Au6l+rRyL2pUXe4xf7+XT39hv0RC' +
            'jkKKZyu2iDnqU12q18cpQs5WFWB/4AsXNu05opsWEXO81E2LCXgfQ' +
            'YMBDgPDwk1BegPtJka3h1zjfLon5/iSdZ27VYXx9BsTUzvoyaPLC2' +
            'ctSfjDH96idDta1grqv/rlewhwjo0wLYAcpoXaTtqxES9xpagqasR' +
            'coD7RoUZesE6aXbWRB7mkec/tfqP+6S4Tco/ylsq7Krtn2Io5W1Ik' +
            '+BJKBeaLa1voyWlaaM6xDoqKt7px35wL4QydcI6YGHFonLvaQIPDw' +
            'DkKcY5s/P1wzhNSO6amRMY2Ku8BrV5avwaEQ8/BMwDGFhIunGMLzT' +
            'lQJ+1Y5+/rQrB+Sq/OamlQ+T78BH4oMSMPsoDjvMOfe/l0lwmeOZa' +
            '8rtPMsVjF3IQ31iCf2o61o6AkOnmwBip6rmYYH4aez3A3wVNvpUUe' +
            '5lmP2aLPww87zqnn+MLKlp7jX34d1uLuhWsh5lByGg9ADt9CyMEzq' +
            'AbbAjn1vO5L5xFQ8tIvDOQd7WQAeBh1SnpwTipRx5fjJ/BD+DkcbU' +
            'pK85Nv4U/yG/VPYSHkTU+8pedYrJBD7ZVjOfYouy1R2Mk5NiJwR45' +
            'NzYpOzoDXxZqt3rGp2RGJ6QDYxfasuYhprAbahXBuS7gJ9WEyHxwZ' +
            'F2zMf6H6n7vzivx+/GF05lBa6O3U5Eg6cyCNNZT8Hz/8OphHBVPR2' +
            '7IWL0m4mBZADsILDu9FYDehHZzjg7To8D/Qc13SE9JzxSLiyMO9+I' +
            '36J71MMJo+5ZjbQo6o39FHnsm2GBiBn23ciKiFSzTOs8LikyVHjWD' +
            'BFm+TmPuGXI85EQsY1i0I4VxvD+UPSZoF1N2dWMUcC/wGyATkv3jv' +
            'SwjgCuxhRcg5g5BD58E5CAfekHTsA8KZY8QOgPxvXtj2vTP1QB1lZ' +
            'tRVHxgj8aJX+XEM/Rn1T3TBsWU7HW15Ql2/rWOBmDPBQqRNFh0b2Q' +
            '4iYg7U2UMVZWDmghxGxY26LeSC36g519n2eOnJue6I2FPLseeFOyJ' +
            'WQs9ZeQTkH/zsHCD/4L3nwTlNi3AukCPEqzDAPH0LxRycf//JNnLO' +
            'HCN+iL28otLy4A+ZwvX3B/hElwnu9n0ebZS9iTk7OIkz1zmnMwc81' +
            'PDIpHSXmKfn0saAQ8lvTLVwbttFdkSQ23LuW8/lV/AWrtDd5y/Pbz' +
            'zz2YSQB5Y7QCPwhi0Hz0AdnCMAthVyyjgKsCushCIIuZVz3CBUjjF' +
            '8Nn4IP0dZwB8jIoPjj+PsR/2aLzikOLAUE946vUEO40229RAlB+e4' +
            'CowaaIYExRyhenqEzrfl3BvhQ3Mu+RODcGKMMLNtSDoL4s9TS6sLw' +
            'bk7jRO5MK11/9GtJy8GFLXRtDCdiAKEnZAzdMfCWidtOVWd/py+RT' +
            'ctgJyczyvKZo4RP4Sfw48mZuQWGUmtardRx7lIrOv3Dzu6hgtHNwv' +
            'kMI3WJiFxLLTiUvE0cc6OrLQoJs7FtOicD6nkPiBXnBuEz5IUijG6' +
            'eY4xGxELNmJuEO7Ot3hwHufIwt8P0gJzVGct4J3cVcOAUcFLW9TZP' +
            'EQxZzCvmFdjZBdbXDVQtqUi3j64BuacW/BD+Dn8qHCOaHbXj2Ad/a' +
            'hfq4WQ73BXglD3XFzVRc7Zj0U6tDBhbrIrrb3H2E6ENQJizvFiypY' +
            'nL45JyUQI5zQtcOYqiWfkW4R5V4bcG+eSMLdwLu0+s9ycz5Z6qLs2' +
            'Oqjkbj33xjnuR8I5CY9rWgtNtnJuUnUaGAbEn9cINkLSwTlRB+Soh' +
            '5Jz3CaEc/woOUdkO+vBto46yPej/jEXQA6kt2uQg/nsqo3S81a6bK' +
            'EAhqXiyRxLe99Jl5IbqGOLs3VrSnY+kAbeUg9NzMgD5yiDTFY/pxr' +
            '1UBfnRscSZhcVb1bODbzZvm9CXedc9HyWxbF7QO6p5+BK5xy1QoA3' +
            '0dEBzmE8mPdGAEuA/X++/yjCRLsAD5hBOIIv8RGKuUBOzr/dVSZ6j' +
            'h+qNlIuwjlRx1pOCgrY4kd91Mvty45mOev148knjehsi2PZ0HOAiU' +
            'RJmJs4B/yoT+EaQZVT1UAXpgNs4dxlWiDjhNyTc8mfB7AvooXzAGH' +
            'bs6ybc5eYu7fY5hWH1HP8Lyv7nifn1GRQqqOuaqPuCqk3eRfOBXKY' +
            'c/pzcP5GWx44vychBP4cP4SfE9/iA3W/qo9umZB7TFfyHW7Idbylo' +
            'BKJ6gFrj5JqEA6kyTmNevfD57CubOlJzSlwZVrcnMO0gHMUgBbZnm' +
            'bhfLBZPyh0BJy79XyWp57PdjsWH/kWW85ZDwV4ICrAnTwnqIDWg3N' +
            'P2llLVVL/7iEV7z1PyCnaUgMVc670PGIuAj+En5N6qB7420xe3Y/6' +
            'SBcZvK97cutAId2W05nQk+MlPAx7cHELCkrMiyvjHNnknL6FzUPgP' +
            'NTItHjjnKZlhh3k7HkyQ2qjGudkdZYpo6j5c2sNVPRcqT375Wqchy' +
            'UkAzkYiYCiduZbyKqL55+d+4e3uxXGOuo/O4fdXO7dgBz7/K9vPbx' +
            'o0SJdxt/sr5BQSs6+i+Gz8UP4Ofxoak5+kdsoqnCrOs6LoL7jsr9a' +
            'OoLFWvGEsNOumMZQsExbDpJZCRXTIractVGmWQRvog7CaVpCYxNdz' +
            'aDw5xJa7kVgs8+6SN8tunQvnOv1ULErVn/uyjpGxqr7V22zyywFh8' +
            '0Oj9q4o2/7iceCjUb/mYsT2E7EgRXvv9EKhvUg80C6Zntd+4YVsh1' +
            '7knAEqOa9gBVP3hqE86Dyffg5/GhaYQnxHqwZEfWqjenuZOPDr6lk' +
            'I283/j4wPha2Jq/oe96UQrRt9JTOWq5e5VpvFpA/iLqxEWKeWVisd' +
            '2hhcz/T5iiAK0kh2nZrET23l3Stz3ng8Dj3JeluzpVvqW0m5CpC5z' +
            'tbeuDB2E5EFCnC719ot3IuIZBjHwYh56BRCbggrMH5Pe4vD288g5+' +
            'D31te3eDKbjGkXK8en46/E8e/7yXXWQP2qruXvxXJbmEHrbVaMwQb' +
            'g7ylygm5DKCQ3iySbJE+5yhLzlwaQMW0DGZaxLHYNfcP2VRk31Nxt' +
            'JwP+nONcxSgq7hJOfa8cMt9k760xvFc5jxUGzka1FbSdbYlsCcgD0' +
            'uOIN4wPxxYFF1eyCYn4Txtzwv4uUJnbauRqrLlnJ2i8afmd39eBAo' +
            'eRo2283sYz2WCMQJODLk06/uAHCJjGj0hjoV1T14CFHNHQQnF3Mq5' +
            'R58W75CPhvPw6EBj9JDe4XbOUJXQOe4mJFdesWqjznlwVBw82ArDG' +
            'zybMQ/xdLkDnP/d+XIVFtStkJNzBDkH4eyvyKcBgHnpgu6qhPYeA+' +
            'c4khR2W87dNdN1KO+5cAWnj88YcXsYP+0eXoWBA4XD5a1ZXyAXjPU' +
            'cCxwLTQsvAeyDclF1gy7m8UuWipJz+3DEfBSc06uberb4gHwwvHMe' +
            'GKasCzxzeNPZM1mRz2bOo6S/fXCNoC7A61S7trt3gP6Dc9ZkIeMIQ' +
            'I6XlHGmXPAT+CH8nBxtoA5VF6MuzEvlFGcNlVP4FpxHSDporz79DX' +
            '8eBv8+u0xwIDPWKONA4fyaslh6ON2HnUZFOEd1qcHtzOUqcKpcYn5' +
            'MSkbkwjQECokZuVwj4hxZYQnJHnVPozHUNgaropYAflxbA5VHbzEn' +
            'cgEDKi1lIzzaiXTOmUWHi+B0n2ey7VDXQydci58cLZsWMRdgQ8ll1' +
            'D+8EAlHAV+On+CjkKQLHI857ryFnmdkMDNgJGHwZ0PJm92PJG164i' +
            '2XsP/pOXbezvSj0WwcDZ5ZH5CXuPvc6mJuMi3SLxHk55RUAgxCLpx' +
            'L4CVQ/JiQeyN8SM511BHaS/v2UPmtkppmHARUEsE5VB2cU4f1UI7d' +
            'wrbEj/auBOfsAyaQPxl9//hx4xio6uInoBJOwx/qqENbnGJgvASz6' +
            '1AtnlkEyn9qWUf8s/iX8Y/zCOBQoMy6jO+j5zSenGmFXK9+osDhny' +
            'gvr24A5LqYk/NFy1aSc2xkVxbfnI8aclvOh8F/tA/O9QYjog5Ep6V' +
            'EsgopAdR1sMk214h3ela8vi6F7fsC+UNhUx8KmHwoYDIcywqjeaiw' +
            'pqnV3WVIr/LjIK/r2OX7ZOnCLvEn4th1Gdf/d1RhfMs4Yp3R4VY/2' +
            'qLkMlbIPZZfPfEY++uOJSo5HWVgD8jTCktoWmAYTKbFFvWPw/mQkj' +
            '4KzvGduE+BwLQ9LwSX74P8snGHZhtrOm3ADDNDsCX+qsnBAOe4EYD' +
            'wwFlTX80JFcjxhWmGY4Gq4IbYqmWuJK/FwobuXtxehxR27COaxsjv' +
            'On2z0s7/C/+g/v/i38dBUDKu52btvMoGdwpRjrOounTBFc1h9RMkW' +
            'JXcJeYFxbam5RPifOSouzj38fxzPkpU9aV3o86HhbJSSUOCLfIoUT' +
            'AveCMANgNlKLkSczfk+EJ8bXXHLoRuBfXAQeZNc313L+26j8hy1uM' +
            'fyes6zSntJDgo6aYx7baE86IedOPeOSfkcmBNB9x0IrgDmIeD1R1L' +
            '9KIlg87cgDxxsY1pseXcN+TD5HyEqHvlXOVw3GXsA9Rx3OClEYI6C' +
            'A/OSUXAlkCrsRFrBNSbbL+9zEU41rQrhwzI+T0cq4IQGfGNOi6KIV' +
            'FPd3bGFNanG1PD6KivPfXGTUA723/zuz9fffobHkal//Liqq4FRRu' +
            'xtuamTJA37D48HMh1MwPHQrkGyWEJydRzYE/OaVqwBTU+K+RW1L1l' +
            'V0bK+UiA9+DclaJ0Q25CPbOwWEcdPoQDPCHpQJ0GBhsROuQIYA/IS' +
            'bgOeXFNc2VLj367NNXxrbSrtEzTbivteicN0o7/KKGuv2rgCiHnPN' +
            'SAX2gfQ2aGAq40vPvzK43rF/8OUV87cCWx/hBkXG8AKvI8IEJ4iTE' +
            '4yDfhJs5RwHUBkkXJTWkWaw3UVtJ11L2lEK2Es445cjcexdSiFvEc' +
            'Da1zPpiTtxiYhCW5OG5AhaxCxhXqEXOxhm8H/OD5OSP9KHg/AcI9Z' +
            'RwfV8ffWQslF4alEqQfc9O4cuy29eTFTmNajZKNHT44120MaAfeRJ' +
            '1zyiBgmTgv0g1OO//Cxc5OVGRAOHQbfzxMOAJl/Gsuo2JVb0/fUrq' +
            'xY4PxlCEcQGtqxaotki1XrULOWh1yOnPhXMQcdI0Ccm8CPkyYrRlF' +
            'T7wHOdfHQfPZL95Q55bIpHTObkBoEexYC+bBuYi2KWRnEg4l14eQ6' +
            '+ZEDCEhN6W8OMMXzoLJrpseXGw1M0ACbAvnQntifT+fEnNDPSgG5o' +
            'SEQ6tdhDP6LyPS9r6I7XwunN6ygH98EHWNc6l1yvxoevLWerSxD/U' +
            'EkOu2XByLB+TuGihwJclDVj99u5Thp8d9gj0E5/KkIxPqehk7cBIu' +
            'nXaEPjkRQ3+XRkWXcSvnRF1/SIhoOM+FnAg+M0RQt9Vzq5PBGncTQ' +
            'g5+wDnXcZ0XODn1dWSezVv0J8AYf1Ka8eeBakEdvkX+EftqpqWbBC' +
            'DfaDxiSGREqBZt11MrchawZXVjp8mWmxqGwHlqTj4KTCdaxdzWlpN' +
            'nK+QjdSYfh3PXkOrwaI9xeSwb/YGJ+vQHQrBznCM7p8QpjAHmtL0K' +
            'G0Z409lB0lCNddaypxDHz8oAQ2zkg/sOnrnAoObg4Leq6UpdVX6U5' +
            'd66/cRjiO6Hz0nN1DSA10dChhP1qj9V41yCwAeV7/t0mNd/JbhiH3' +
            '46nnjvfZF/m5TDG89wbHh21UazS5GXlm4SJc17GozO5NZKkBxY8Yc' +
            'kXDRfr3tabTmVXEyLwOyNcF3MfdQlP44n18M354K0eQiqu8e7q2OA' +
            'uyc8OwnPmh8VuTA9JTsffqaoqg4s4atANcrEu6yxU6ZllI766p5Y2' +
            '+IoKIHnx9rZulUONRjWd+Y5IucAGwU9x86aqWkAr29tp7wn1vUL7b' +
            'aBd63Mfxzyrd+DL08w/gy54tLcIeVw488A4dbOD4Xet1DJpV+K9Ke' +
            'V/irWNlAR806jE4u17imcs2GIqGMLO7T4gHx0acOP2Takc858S4ie' +
            'b7EdmhcWPtgfXgauugv6yFb8j7hwgDosyrrO3da6JJ+EAA0H2zEpm' +
            'eyiH5ualVZYCj/D2yskncccwMvp4MhEDlG0Nm3gt3x7GN3Ms+y+Eb' +
            'juRFByb8DjLQTdlzfyhxNCNX/O9Is621B14K0TK2t9i49moHWGOTQ' +
            '1upkejSjv0qhI3QefBcOm9n22fiYudiXMXZy724Z0MR8yWz46zkdq' +
            '4z0TL/HsqQ7OAact5x5se3IuweEhAcazdmcZyXYZYCiVeuINkWfXZ' +
            'dRnyTlRhwWS2XhpXUTYxbewgyg5N1Wm8FtSM9UH87JOylSkKRvJd8' +
            'k5FZ4BFAmhcCgvvYVeDdFjyA/q3x9vWKZ0w5zo6l26scNENTOE3Gj' +
            '7LlMrJsUWzhu0fra6jFPJYeazioptIXeZFjfkinN325DVpZgItzXk' +
            'nwLwbm1XvoV6buXcKt1WPdeHPk13o47bRGJGHiSavqWougEBVwPC+' +
            'WQPdtGXJ34g+HAb7KOeyzpwmocdwAvM4JxDzmUcuj6Si8pPuw5Taq' +
            'vngr2+hZzLJQDM8KfSxoM6xpDEjo5z3h0Y6TTe1Q3pbsKFXkFax95' +
            'Wz7mdzUBSnTeNd2NvW/oWPYUlkLM7oql939QqhMBuNDZQS29W3IeS' +
            'X1vmh4G68i305y7OiXpwmNhvr5xbJF2edzrNPc8R9mQPfBCOn1CcG' +
            '6hDvfXxs4I63oLgU9U5f/SBMxdQ36Swc8g5ThBesiarP1dksItj61' +
            'bbZlNd0kXhS9wF24+IyOvYm0L8zDC3C9gSbrtl/lNNYf0vTP9dpdb' +
            '50JoVl+3M6PJCIOGcvBiHHaIkj72Vx5h7PDIxv1hOJfcMCAo1DZ3Q' +
            'C94GTdiOofiY4esp6OHRwW5/jpC/wTpA1UfZ22hWmvaw2EQcDRwWH' +
            'h+IPEed4LhR1QV1jkxRTVHO2np3KgynQG+klvYLXayws55y9NZDwB' +
            'Ye0XMTUdY99XuBTqmEJHO8hXwcX2X7l/gA2/Yt/V/bpLXmk2fe/nQ' +
            'xF5GXPSkmTNIScg4O0iHnmeJZE8j54NAw96B+a7co33NSfHLhjXPJ' +
            't5DzIYcyDT/IeYAh6ThQPDjgnFJgevKkHFu+xZ5junXUW5HE8+PsM' +
            'IRzCT5Fx4ewi557Y8mE/ZA5HNvbgbe3rFdTiQ35KjHoA2+rjOv/vn' +
            '5wTNUZOaSs8uNQE3KrmMtoOEIuQY2y8jzkwLfrQ7sxjJR6jj/+GnC' +
            'uZR2nGw8uQFmX9NTSdfpdzxoiHQU1TXrjhZ710nO/VC3ZItrFwBlE' +
            '/dQ3596UcxRgjzqsDgqQu/5CDXXTv4B/TW9Wln/cx8HRFYMPacFVg' +
            'EMtkEcmuR6r5ZKd/GIVbiU3iblItw8kbhDO6c//PxsNvA0=');
      m_Debug('Loaded empty map');
      curMap := CreateBitmap(248, 169);
      FastDrawTransparent(0, 0, emptyMap, curMap);
      try
        m_Debug('Loading form');
        FormSafeCall('FormInit');
      except
        Writeln(exceptionToString(exceptionType, exceptionParam));
      finally
        FormSafeCall('FormFree');
      end;
    end;

    begin
      SetupSRL;
      Init;
      m_Debug('Form closed');
      FreeBitmap(emptyMap);
      FreeBitmap(curMap);
      m_Debug('Empty/cur map freed');
    end.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •