Marco Web Center

[an error occurred while processing this directive]

Home: Code Repository: Mastering Delphi 5

Project TOTAL

Project Structure


TOTAL.DPR

program Total;

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

{$R *.RES}

begin
  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;
    Edit1: TEdit;
    ToolButton7: TToolButton;
    ToolButton6: TToolButton;
    ActionList: TActionList;
    DataSetFirst1: TDataSetFirst;
    DataSetLast1: TDataSetLast;
    DataSetNext1: TDataSetNext;
    DataSetPrior1: TDataSetPrior;
    ActionGoto: TAction;
    ActionGoNear: 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 ActionGoNearExecute(Sender: TObject);
    procedure ActionGotoExecute(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.ActionGoNearExecute(Sender: TObject);
begin
  // short-hand
  {Table1.FindNearest ([EditName.Text]);}

  // alternative code:
  Table1.SetKey;
  Table1 ['LastName'] := Edit1.Text;
  Table1.GotoNearest;
end;

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

  // short-hand
{  if not Table1.FindKey ([EditName.Text]) then
    MessageDlg ('Name not found', mtError, [mbOk], 0); }

  // alternative code:
  {Table1.SetKey;
  Table1 ['LastName'] := EditName.Text;
  Table1.KeyFieldCount := 1;
  if not Table1.GotoKey then
    MessageDlg ('Name not found', mtError, [mbOk], 0); }
end;

end.

TOTALF.DFM

object SearchForm: TSearchForm
  Left = 263
  Top = 149
  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
      DataField = 'EmpNo'
      DataSource = DataSource1
      TabOrder = 0
    end
    object EditLastName: TDBEdit
      Left = 80
      Top = 12
      Width = 97
      Height = 21
      DataField = 'LastName'
      DataSource = DataSource1
      TabOrder = 1
    end
    object EditFirstName: TDBEdit
      Left = 80
      Top = 33
      Width = 97
      Height = 21
      DataField = 'FirstName'
      DataSource = DataSource1
      TabOrder = 2
    end
    object EditPhoneExt: TDBEdit
      Left = 80
      Top = 55
      Width = 97
      Height = 21
      DataField = 'PhoneExt'
      DataSource = DataSource1
      TabOrder = 3
    end
    object EditHireDate: TDBEdit
      Left = 296
      Top = 36
      Width = 57
      Height = 21
      DataField = 'HireDate'
      DataSource = DataSource1
      TabOrder = 4
    end
    object EditSalary: TDBEdit
      Left = 80
      Top = 76
      Width = 97
      Height = 21
      DataField = 'Salary'
      DataSource = DataSource1
      TabOrder = 5
    end
  end
  object ToolBar1: TToolBar
    Left = 0
    Top = 0
    Width = 483
    Height = 27
    Caption = 'ToolBar1'
    EdgeBorders = [ebTop, ebBottom]
    Flat = True
    Images = ImageList
    ParentShowHint = False
    ShowHint = True
    TabOrder = 1
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      Action = DataSetFirst1
      Caption = 'ToolButton1'
    end
    object ToolButton2: TToolButton
      Left = 23
      Top = 0
      Action = DataSetPrior1
      Caption = 'ToolButton2'
    end
    object ToolButton3: TToolButton
      Left = 46
      Top = 0
      Action = DataSetNext1
      Caption = 'ToolButton3'
    end
    object ToolButton4: TToolButton
      Left = 69
      Top = 0
      Action = DataSetLast1
      Caption = 'ToolButton4'
    end
    object ToolButton5: TToolButton
      Left = 92
      Top = 0
      Width = 8
      Caption = 'ToolButton5'
      ImageIndex = 3
      Style = tbsSeparator
    end
    object Edit1: TEdit
      Left = 100
      Top = 0
      Width = 137
      Height = 22
      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
      Caption = 'ToolButton7'
    end
    object ToolButton6: TToolButton
      Left = 260
      Top = 0
      Action = ActionGoNear
      Caption = 'ToolButton6'
    end
    object ToolButton8: TToolButton
      Left = 283
      Top = 0
      Width = 8
      Caption = 'ToolButton8'
      ImageIndex = 6
      Style = tbsSeparator
    end
    object ToolButton10: TToolButton
      Left = 291
      Top = 0
      Action = ActionTotal
    end
    object SpinEdit1: TSpinEdit
      Left = 314
      Top = 0
      Width = 49
      Height = 22
      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 = 363
      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
    end
    object ActionGoNear: TAction
      Caption = 'Go &Near'
      Hint = 'Go Near'
      ImageIndex = 5
      OnExecute = ActionGoNearExecute
    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
      0000000000003600000028000000400000003000000001001800000000000024
      0000000000000000000000000000000000008BC75F5E5B8BE55DC21C00558BEC
      83C4E0536A00FF35D080E14CE85C9401008D45E050E83F8B01008D55E052E813
      7F01005985C0741BE8FF8A01008BD8E8628B0100FF35D080E14CE8349401008B
      C3EB2AFF7518FF7514FF7510FF750CFF7508E89BFAFEFF8BD866FF0DB496E14C
      FF35D080E14CE8089401008BC35B8BE55DC21400558BEC81C48CF9FFFF535657
      8B75086A00FF35D080E14CE8DD9301006A00FF35CC80E14CE8D09301008D858C
      F9FFFF50E8B08A01008D958CF9FFFF52E881B7D0663B8C535D01000075266685
      C076150FB7C8668B544DB90FB7C8663B944B3D030000750C40663B85D1FDFFFF
      72C4EB71668B8347010000668945FE83FE057505BE0100000083FE01740B83FE
      04740666BF0130EB4C837D1800741583FE01751066837DFE0074098B4518C700
      01000000837D0C00742B66837DFE007416FF75085653FF7520FF751C6A00E81E
      1200008BF8EB0EFF750856536A00E8591400008BF866FF0DB496E14CFF35CC80
      E14CE88C940100FF35D080E14CE88194010045FC50668B9305010000526A0053
      8B4D08518B01FF90840000006685C00F85CF0000008D957CFCFFFF52668B4DFC
      518B4508508B10FF52506685C00F85B10000006683BDD5FDFFFF000F85A30000
      00668B8DC3FDFFFF663B8B470100000F858F000000668B85C9FDFFFF663B834D
      010000757F668B55B3663B93370300007572668B8DC7FDFFFF663B8B4B010000
      7562668B85C5FDFFFF663B83490100007552668B95D1FDFFFF663B9355010000
      754233C0EB330FB7D0668B8C55D9FDFFFF0F4CE8B59601008D855CFCFFFF50E8
      958D01008D955CFCFFFF52E8668101005985C07427FF7508E8A8E0FFFF8BF8FF
      35CC80E14CE889960100FF35D080E14CE87E9601008BC7E9F8010000837D1800
      74078B551833C9890A837D180074078B451833D2891083FE01744D8D4DFC5166
      8B8305010000506A00538B5508528B0AFF91840000008BF86685C0740B6681FF
      022F0F858D0100008D957CFCFFFF52668B4DFC518B4508508B10FF52508D9D7C
      FCFFFFE9FC00000083FE010F85F30000008D0083C40CC745EC01000000EB3A85
      C074360FB7432C506A000FB7D70355F852E87821010083C40C0FB74B2C5168FF
      0000000FB7C70345F450E85F21010083C40CC745EC0100000066037B2C66FF45
      F2668B55F2663B96D40000000F8225FFFFFF837DEC0074148B4DF8898E850100
      008B45F4898689010000EB12FF75F8E8E796010059FF75F4E8DE9601005933C0
      5F5E5B8BE55DC2080000558BEC81C45CFCFFFF5356578B5D148B751033FF6A00
      FF35D080E14CE8C29601006A00FF35CC80E1F4E85622010083C40C33C9894DEC
      8B86960000008B808501000085C0741AC745EC01000000668B55FC52500FB74D
      FE034DF851E88807010033FF66C745F20000E9CA0000008B86960000008B5868
      0FB745F20FB79446D60000004A6BCA3E03D90FB745F20FBF8446640100006681
      7B220101755985C074320FB7532C526A000FB7CF034DF851E8D121010083C40C
      0FB7432C5033D28A5508520FB7CF034DF451E8B721010083C40CEB1A0FB7432C
      5033D28A5508520FB7CF034DF851E89B2101BEC400000083BECC000000007407
      33C0E9F9010000807D08FF750B85FF750733C0E9E801000083BE850100000075
      0983BE8901000000740733C0E9CF010000668B96F8000000668955FE8B8E9600
      0000668B81F8000000668945FC668B5DFE66035DFC0FB7C350E8719801005989
      45F885C0750966B80125E9910100000FB7D35268FF000000FF75F8E88E220100
      83C40C85FF74340FB7CB51E83F980100598945F485C07512FF75F8E83B980100
      5966B80125E9560100000FB7D3526A00FF750000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000F06685C074048BC6EB0C8B9B9200000085DB75E133C05F5E5B595DC20400
      558BEC83C4EC5356578B750C33C08945F48B0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000007F7F7F0000000000000000007F7F7F000000000000000000
      7F7F7F0000000000000000007F7F7F0000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000007F7F7F0000007F7F7F0000007F7F7F0000007F7F7F000000
      7F7F7F0000007F7F7F0000007F7F7F0000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00007F7F7F7F7F7F000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFF0000000000000000FFFFFFFF
      FF00FFFFFFFFFF00FFFF00000000000000000000000000000000000000000000
      000000000000FFFF000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFFF0000000000FFFFFFFFFF00FF
      FFFFFFFF00000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF0000000000000000FFFFFFFFFF00FFFFFFFFFF
      00FFFF0000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000007F7F7F0000000000FF0000FF000000000000000000000000000000
      0000000000000000000000000000FF0000FFFFFF00000000FFFFFF00FFFFFFFF
      FF00FFFFFFFFFF00FFFFFFFFFF00000000000000000000000000000000000000
      0000000000000000000000FFFF0000000000FFFFFFFFFF00FFFFFFFFFF000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000FF000000000000000000000000
      0000000000000000000000FF000000000000FFFF0000000000FFFFFFFFFF00FF
      FFFFFFFF00000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF00000000FFFFFF00FFFFFFFFFF00FFFFFFFFFF
      00FFFFFFFFFF0000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00007F7F7F7F7F7F0000007F7F7F7F7F7F7F7F7F0000FF7F7F7F7F7F7F7F7F7F
      7F7F7F7F7F7F0000FF7F7F7F7F7F7F7F7F7FFFFF00000000FFFFFF00FFFFFFFF
      FF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFF0000000000000000FF00
      00FF000000000000000000FFFF0000000000FFFFFFFFFF00FFFFFFFFFF000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000FF000000000000000000
      0000000000000000FF000000000000000000FFFF0000000000FFFFFFFFFF0000
      000000000000000000000000000000000000000000000000000000000000FF00
      00FF000000000000000000FFFF00000000FFFFFF00FFFFFFFFFF00FFFFFFFFFF
      00FFFFFFFFFF00FFFFFFFFFF00FFFF0000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000007F7F7F0000000000000000000000000000000000FF000000000000
      0000000000FF00000000000000000000000000000000000000000000FFFFFFFF
      FF00FFFF00000000000000000000000000000000000000000000000000000000
      0000000000000000000000FFFF0000000000FFFFFFFFFF000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000000000000FF0000FF
      0000FF0000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000000000FFFFFFFFFF00FFFF000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00007F7F7F7F7F7F0000007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
      7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000007F7F7F000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00007F7F7F7F7F7F0000007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F
      7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F0000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000000000000000080808000000000000000000000
      0000000000000000000000000000808080000000000000000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000080808000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000808080
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000080808000000000000000000000000000000000
      0000000000000000000000000000000000000000808080000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000080808000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000808080000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000080808000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000808080000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000080808000000000000000000000000000
      0000000000000000000000000000000000808080000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8080808000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      8080808080800000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000080808000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000808080000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000080808000000000000000000000000000
      0000000000000000000000000000000000808080000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000080808000000000000000000000000000000000
      0000000000000000000000000000000000000000808080000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000000000000000080808000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000808080000000000000
      0000000000000000000000000000000000000000000000000000000000008080
      8000000000000000000000000000000000000080808000000000000000000000
      0000000000000000000000000000808080000000000000000000000000000000
      0000008080800000000000000000000000000000000000000000000000000000
      0000000080808000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000808080
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      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