Marco's Web Center

Menu for Development

Site Menu
Object Pascal Handbook
Delphi Handbooks Collection
Mastering Borland Delphi 2005
(Old) White Papers
(Old)Tools
(Old) Conferences

My Other Sites
Italian Site (www.marcocantu.it)
the delphi search

Spirit of delphi

Advertising
Home My Blog Books Object Pascal Marco

Home: Code Repository: Mastering Delphi 6

Chapter 13 - Project Total

Project Structure

Total.dpr
program Total;

uses
  Forms,
  TotalF in 'TotalF.pas' {SearchForm};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TSearchForm, SearchForm);
  Application.Run;
end.
TotalF.pas
unit TotalF;

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  StdCtrls, Forms, DBCtrls, DB, Buttons, DBTables, Mask, ExtCtrls,
  Dialogs, Spin, DBActns, ActnList, ImgList, ComCtrls, ToolWin;

type
  TSearchForm = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    Table1EmpNo: TIntegerField;
    Table1LastName: TStringField;
    Table1FirstName: TStringField;
    Table1PhoneExt: TStringField;
    Table1HireDate: TDateTimeField;
    Table1Salary: TCurrencyField;
    ScrollBox: TScrollBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    EditEmpNo: TDBEdit;
    EditLastName: TDBEdit;
    EditFirstName: TDBEdit;
    EditPhoneExt: TDBEdit;
    EditHireDate: TDBEdit;
    EditSalary: TDBEdit;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    EditName: TEdit;
    ToolButton7: TToolButton;
    ActionList: TActionList;
    DataSetFirst1: TDataSetFirst;
    DataSetLast1: TDataSetLast;
    DataSetNext1: TDataSetNext;
    DataSetPrior1: TDataSetPrior;
    ActionGoto: TAction;
    ImageList: TImageList;
    ToolButton8: TToolButton;
    SpinEdit1: TSpinEdit;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ActionTotal: TAction;
    ActionIncrease: TAction;
    procedure FormCreate(Sender: TObject);
    procedure ActionIncreaseExecute(Sender: TObject);
    procedure ActionTotalExecute(Sender: TObject);
    procedure ActionGotoExecute(Sender: TObject);
    procedure ActionGotoUpdate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  SearchForm: TSearchForm;

implementation

{$R *.DFM}

procedure TSearchForm.FormCreate(Sender: TObject);
begin
  Table1.IndexFieldNames := 'LastName';
  Table1.First;
end;

procedure TSearchForm.ActionIncreaseExecute(Sender: TObject);
var
  Bookmark: TBookmarkStr;
  Total: Real;
begin
  // store the current position in a bookmark
  Bookmark := Table1.Bookmark;
  Table1.DisableControls;
  Total := 0;
  try
    Table1.First;
    while not Table1.EOF do
    begin
      // start edit mode
      Table1.Edit;
      Table1Salary.Value := Round (Table1Salary.Value *
        SpinEdit1.Value) / 100;
      Total := Total + Table1Salary.Value;
      Table1.Next;
    end;
  finally
    // go back to the bookmark
    Table1.Bookmark := Bookmark;
    Table1.EnableControls;
  end;
  MessageDlg ('Sum of new salaries is ' +
    Format ('%m', [Total]), mtInformation, [mbOk], 0);
end;

procedure TSearchForm.ActionTotalExecute(Sender: TObject);
var
  Bookmark: TBookmarkStr;
  Total: Real;
begin
  // store the current position in a bookmark
  Bookmark := Table1.Bookmark;
  Table1.DisableControls;
  Total := 0;
  try
    Table1.First;
    while not Table1.EOF do
    begin
      Total := Total + Table1Salary.Value;
      Table1.Next;
    end;
  finally
    // go back to the bookmark
    Table1.Bookmark := Bookmark;
    Table1.EnableControls;
  end;
  MessageDlg ('Sum of new salaries is ' +
    Format ('%m', [Total]), mtInformation, [mbOk], 0);
end;

procedure TSearchForm.ActionGotoExecute(Sender: TObject);
begin
  if not Table1.Locate ('LastName', EditName.Text, []) then
    MessageDlg ('Name not found', mtError, [mbOk], 0);
end;

procedure TSearchForm.ActionGotoUpdate(Sender: TObject);
begin
  ActionGoto.Enabled := EditName.Text <> '';
end;

end.
TotalF.dfm
object SearchForm: TSearchForm
  Left = 281
  Top = 141
  Width = 491
  Height = 187
  Caption = 'Table Search'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clBlack
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  Position = poScreenCenter
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object ScrollBox: TScrollBox
    Left = 0
    Top = 27
    Width = 483
    Height = 133
    HorzScrollBar.Margin = 6
    VertScrollBar.Margin = 6
    Align = alClient
    BorderStyle = bsNone
    TabOrder = 0
    object Label1: TLabel
      Left = 230
      Top = 17
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Emp No'
      FocusControl = EditEmpNo
    end
    object Label2: TLabel
      Left = 14
      Top = 15
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Last Name'
      FocusControl = EditLastName
    end
    object Label3: TLabel
      Left = 14
      Top = 36
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&First Name'
      FocusControl = EditFirstName
    end
    object Label4: TLabel
      Left = 14
      Top = 58
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Phone Ext'
      FocusControl = EditPhoneExt
    end
    object Label5: TLabel
      Left = 230
      Top = 39
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Hire Date'
      FocusControl = EditHireDate
    end
    object Label6: TLabel
      Left = 14
      Top = 79
      Width = 60
      Height = 13
      Alignment = taRightJustify
      AutoSize = False
      Caption = '&Salary'
      FocusControl = EditSalary
    end
    object EditEmpNo: TDBEdit
      Left = 296
      Top = 14
      Width = 57
      Height = 21
      Color = clWindow
      DataField = 'EmpNo'
      DataSource = DataSource1
      TabOrder = 0
    end
    object EditLastName: TDBEdit
      Left = 80
      Top = 12
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'LastName'
      DataSource = DataSource1
      TabOrder = 1
    end
    object EditFirstName: TDBEdit
      Left = 80
      Top = 33
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'FirstName'
      DataSource = DataSource1
      TabOrder = 2
    end
    object EditPhoneExt: TDBEdit
      Left = 80
      Top = 55
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'PhoneExt'
      DataSource = DataSource1
      TabOrder = 3
    end
    object EditHireDate: TDBEdit
      Left = 296
      Top = 36
      Width = 57
      Height = 21
      Color = clWindow
      DataField = 'HireDate'
      DataSource = DataSource1
      TabOrder = 4
    end
    object EditSalary: TDBEdit
      Left = 80
      Top = 76
      Width = 97
      Height = 21
      Color = clWindow
      DataField = 'Salary'
      DataSource = DataSource1
      TabOrder = 5
    end
  end
  object ToolBar1: TToolBar
    Left = 0
    Top = 0
    Width = 483
    Height = 27
    Caption = 'ToolBar1'
    Customizable = False
    EdgeBorders = [ebTop, ebBottom]
    Flat = True
    Images = ImageList
    ParentShowHint = False
    ShowHint = True
    TabOrder = 1
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      Action = DataSetFirst1
    end
    object ToolButton2: TToolButton
      Left = 23
      Top = 0
      Action = DataSetPrior1
    end
    object ToolButton3: TToolButton
      Left = 46
      Top = 0
      Action = DataSetNext1
    end
    object ToolButton4: TToolButton
      Left = 69
      Top = 0
      Action = DataSetLast1
    end
    object ToolButton5: TToolButton
      Left = 92
      Top = 0
      Width = 8
      Caption = 'ToolButton5'
      ImageIndex = 3
      Style = tbsSeparator
    end
    object EditName: TEdit
      Left = 100
      Top = 0
      Width = 137
      Height = 22
      Color = clWindow
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      ParentFont = False
      TabOrder = 0
      Text = 'Williams'
    end
    object ToolButton7: TToolButton
      Left = 237
      Top = 0
      Action = ActionGoto
    end
    object ToolButton8: TToolButton
      Left = 260
      Top = 0
      Width = 8
      Caption = 'ToolButton8'
      ImageIndex = 6
      Style = tbsSeparator
    end
    object ToolButton10: TToolButton
      Left = 268
      Top = 0
      Action = ActionTotal
    end
    object SpinEdit1: TSpinEdit
      Left = 291
      Top = 0
      Width = 49
      Height = 22
      Color = clWindow
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clBlack
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      Increment = 5
      MaxValue = 200
      MinValue = 50
      ParentFont = False
      TabOrder = 1
      Value = 105
    end
    object ToolButton9: TToolButton
      Left = 340
      Top = 0
      Action = ActionIncrease
    end
  end
  object DataSource1: TDataSource
    DataSet = Table1
    Left = 263
    Top = 109
  end
  object Table1: TTable
    Active = True
    DatabaseName = 'DBDEMOS'
    TableName = 'employee.db'
    Left = 316
    Top = 109
    object Table1EmpNo: TIntegerField
      FieldName = 'EmpNo'
    end
    object Table1LastName: TStringField
      FieldName = 'LastName'
    end
    object Table1FirstName: TStringField
      FieldName = 'FirstName'
      Size = 15
    end
    object Table1PhoneExt: TStringField
      FieldName = 'PhoneExt'
      Size = 4
    end
    object Table1HireDate: TDateTimeField
      FieldName = 'HireDate'
    end
    object Table1Salary: TCurrencyField
      FieldName = 'Salary'
    end
  end
  object ActionList: TActionList
    Images = ImageList
    Left = 214
    Top = 111
    object DataSetFirst1: TDataSetFirst
      Category = 'Dataset'
      Caption = '&First'
      Hint = 'First'
      ImageIndex = 0
    end
    object DataSetLast1: TDataSetLast
      Category = 'Dataset'
      Caption = '&Last'
      Hint = 'Last'
      ImageIndex = 1
    end
    object DataSetNext1: TDataSetNext
      Category = 'Dataset'
      Caption = '&Next'
      Hint = 'Next'
      ImageIndex = 2
    end
    object DataSetPrior1: TDataSetPrior
      Category = 'Dataset'
      Caption = '&Prior'
      Hint = 'Prior'
      ImageIndex = 3
    end
    object ActionGoto: TAction
      Caption = '&Goto'
      Hint = 'Goto'
      ImageIndex = 4
      OnExecute = ActionGotoExecute
      OnUpdate = ActionGotoUpdate
    end
    object ActionTotal: TAction
      Caption = '&Total'
      Hint = 'Total'
      ImageIndex = 6
      OnExecute = ActionTotalExecute
    end
    object ActionIncrease: TAction
      Caption = '&Increase'
      Hint = 'Increase'
      ImageIndex = 7
      OnExecute = ActionIncreaseExecute
    end
  end
  object ImageList: TImageList
    Left = 24
    Top = 112
    Bitmap = {
      494C010108000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000003000000001001000000000000018
      000000000000000000000000000000000000112F6B457C610328B143982B0D7C
      46433C754B0220225C752702202A5C75E2016041D80DFD470044BB331100DF68
      9027DD480044B817DF0DDF09DF09DF05DF057D7EFF479B7DC14A3C7D46433C75
      410220622B720B0B40451D62F17F5F292A3AA101DF6890277D4B0034E01B1972
      A96B12001146FF7FAA5B11005146FF7FAA435633272A0B00C0110C624E043633
      51253758991D321D00002E20EC40FA7FDF61DD31112200002C221F7EC0011700
      00401F38017EC001EC02A627F00DC009F0034E30F07DC005110D18000000F005
      C0150C3E1F38E23B4129DF11DF0D0D744300207E3D7C2E28AA017D0900449F7D
      C14A3C7D26433C755102E01B1A72A9431200E82B2C4A0000403540452928117C
      12020030100730030044F27DFF2B2C265F452828517C4A311007D0020030F06A
      FF7F204014008045117FFF3327220000014600002C42F97F9F1D300100388F45
      CA32471A0000CE313162FF7FEC440900C0312C42F87F9F1D300100388A45527F
      FF33472A00000E19B81BC16A2C466A7FFF07A95B1200112EFF7FAA4B1100512E
      FF7FAA3310000B628E7C2E74957F3F7EDF6490273D4A007C46433C754F022062
      FD0300406F000E446A183906F00DC001110D4647027EC025317D8A4510000028
      0D2851052A065F420000F133103B81411F1401460000513EFF7F8A45E92B1105
      2A0A5F29713EFF7FFD0300401F04D0030044006201231D0000740762CE041615
      AA01C16A407DAA3F04001007C12645351F00205818205E758B00006201231D00
      0030E015EC239E45CA33476A00000112FF7FF075C009317D3142000011791146
      00005D7CEE775C02607DCE775B026019782D2B720B070028B143787DFF2B4A45
      4B444E18BF01DF6890271D4B0034E01B1972BE2B040010072647A94750020044
      10020040D80D187500008045EA2B2A58E903E92B3D0200189F61C803A0670000
      114A00007135C1223E5812690000A965076CC1223E5C103100000C3E04006E41
      D819C12A4535205819245F759A0000622158A82846472A28C1662079AA5B0400
      10077D041615CA6851052A5819245F75930017030040370300000E18B87F0000
      F005DF05F03BC060BD030040170200002E40370200000E18B86700002C4A1F00
      8045EA4751020030117E00002C229F45EB33607DC162AA3B13002B221F622E30
      17105D020004562BED03007CEE7791000062017ECE04362BFD4C002C1179103B
      E23BBF1F13008B5D80740A0020585A35E03B0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000009E41D8011177214E1200006E8E1B
      782D6B2D18002A7610774A29D1050647C8470000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EF3D000000000000EF3D
      000000000000EF3D000000000000EF3D00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000EF3D0000EF3D0000EF3D
      0000EF3D0000EF3D0000EF3D0000EF3D00000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D00000000000000000000
      000000000000000000000000000000000000FF0300000000E07FFF7FE07FFF7F
      E07F000000000000000000000000000000000000E07F00000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FF030000E07FFF7FE07FFF7F0000
      000000000000000000000000000000000000000000000000FF0300000000E07F
      FF7FE07FFF7FE07F000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000EF3D0000007C007C00000000
      0000000000000000000000000000007C007CFF030000FF7FE07FFF7FE07FFF7F
      E07FFF7F0000000000000000000000000000000000000000FF030000E07FFF7F
      E07FFF7F00000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000000000000007C0000
      000000000000000000000000007C00000000FF030000E07FFF7FE07FFF7F0000
      000000000000000000000000000000000000000000000000FF030000FF7FE07F
      FF7FE07FFF7FE07FFF7F00000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D0000EF3DEF3DEF3D007C
      EF3DEF3DEF3DEF3DEF3D007CEF3DEF3DEF3DFF030000FF7FE07FFF7FE07FFF7F
      E07FFF7FE07FFF7FE07F00000000007C007C000000000000FF030000E07FFF7F
      E07FFF7F00000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000007C
      00000000000000000000007C000000000000FF030000E07FFF7F000000000000
      0000000000000000000000000000007C007C000000000000FF030000FF7FE07F
      FF7FE07FFF7FE07FFF7FE07FFF7FE07F00000000000000000000000000000000
      0000000000000000000000000000000000000000EF3D00000000000000000000
      007C000000000000007C0000000000000000000000000000E07FFF7FE07F0000
      000000000000000000000000000000000000000000000000FF030000E07FFF7F
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000007C007C007C000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000000000000000000000E07F
      FF7FE07F00000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D0000EF3DEF3DEF3DEF3D
      EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000EF3D00000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EF3DEF3D0000EF3DEF3DEF3DEF3D
      EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000000000001042
      0000000000000000000000000000000000000000000000000000000000000000
      0000000010420000000000000000000000000000000000000000104200000000
      0000000010420000000000000000000000000000000000000000000000001042
      0000000000000000104200000000000000000000000000000000000000000000
      0000104200000000000000000000000000000000000000000000000000000000
      1042000000000000000000000000000000000000000000000000104200000000
      1042000000000000000000000000000000000000000000000000000000000000
      0000104200000000104200000000000000000000000000000000000000000000
      0000000000001042000000000000000000000000000000000000000010420000
      0000000000000000000000000000000000000000000000000000104210420000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000001042104200000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000104200000000
      1042000000000000000000000000000000000000000000000000000000000000
      0000104200000000104200000000000000000000000000000000000000000000
      0000000000001042000000000000000000000000000000000000000010420000
      0000000000000000000000000000000000000000000000000000104200000000
      0000000010420000000000000000000000000000000000000000000000001042
      0000000000000000104200000000000000000000000000000000000000000000
      0000104200000000000000000000000000000000000000000000000000000000
      1042000000000000000000000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000104200000000
      0000000000000000104200000000000000000000000000000000000000001042
      0000000000000000000000000000000000000000000000000000000000000000
      0000000010420000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000300000000100010000000000800100000000000000000000
      000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000FFFFFFFFFFFFFF00000000
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FF0000FF0000FFFFFFFFFF0000FF0000FFFFFFFFFFFFDDDDFFF8FFFFFFFFD555
      20F81FFFC0070000007F041FE7E7DFFF007C000FF3F787FC003C000FF9F7DBFB
      000F0007FCFF000000040001FE7FDDF7000C0000FF3F9EEF01FF0001FE7FDF1F
      E3FC003FFCFF0000FFFCFC7FF9F7DFFFFFFFFFFFF3F79FFFFFF8FFFFE7E7DFFF
      FFF8FFFFC0070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E7E7E7F9FFFF9F
      E787E1E7F87FFE1FE607E067F81FF81FE007E007F80FF01FE607E067F81FF81F
      E787E1E7F87FFE1FE7E7E7E7F9FFFF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
      FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000
      000000000000}
  end
end