# Form implementation generated from reading ui file 'TrimSPGUItabs.ui' # # Created: Wed Sep 9 15:14:26 2009 # by: The PerlQt User Interface Compiler (puic) # # WARNING! All changes made in this file will be lost! use strict; use utf8; package TrimSPGUI; use Qt; use Qt::isa qw(Qt::Dialog); use Qt::slots ToggleScanSingle => [], PrepLayers => [], ProjSmartDefaults => [], OpenHelpWindow => [], CollectValues => [], CreateInpFile => [], StartSequenceOne => [], DirectoryBrowse => [], ConfirmQuit => []; use Qt::attributes qw( Progress tabs LayersTab groupBox1 textLabel1_4 NL textLabel2_4 textLabel3 textLabel4 BoxL1 L1Comp L1rho L1d BoxL2 L2Comp L2rho L2d BoxL3 L3Comp L3rho L3d BoxL4 L4Comp L4rho L4d BoxL5 L5Comp L5rho L5d BoxL6 L6Comp L6rho L6d BoxL7 L7Comp L7rho L7d ProjParam textLabel1 ProjType NLabel z0Label dzLabel ELabel SigELabel AlbleLabel SigAngleLabel SeedLabel NProj z0 dz E SigE Angle SigAngle Seed groupBox15 textLabelFN FNPre textLabelPath Path Browse Help Start Quit AddParTab AddParam textLabelEF textLabelSHEATH textLabelERC textLabelRD KDEE2 KDEE1 textLabelIRL textLabelIPOTR textLabelIPOT textLabelKDEE2 textLabelKDEE1 textLabelKK0R textLabelCA textLabelEmpty lineEditEmpty KK0R KK0 textLabelKK0 EF SHEATH ERC RD CA ESB IPOT IPOTR IRL textLabelESB ScansTab ScanSeq ScanMode textLabel2 SFrom textLabel2_2 STo textLabel2_2_2_2 SStep LoopRadio ListRadio ScanList buttonGroup2 ERadio SigERadio NProjRadio dRadio ScandL TrimSPGUIHelp ); our $image0; our $image0_data = pack 'C*', 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x02, 0x50, 0x00, 0x00, 0x02, 0x19, 0x08, 0x06, 0x00, 0x00, 0x00, 0x69, 0xb5, 0x01, 0xe1, 0x00, 0x00, 0x1d, 0x63, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0xdd, 0x4f, 0x6f, 0x24, 0xf9, 0x7d, 0xdf, 0xf1, 0x6f, 0x75, 0x37, 0xff, 0x8f, 0x46, 0x63, 0xfd, 0x59, 0x01, 0x46, 0x00, 0x31, 0x2b, 0x20, 0xb9, 0x18, 0x09, 0xe2, 0x47, 0xa0, 0x9b, 0xfc, 0x20, 0x6c, 0x5f, 0x17, 0xf2, 0xcd, 0x37, 0xdf, 0x76, 0xf7, 0xec, 0x93, 0x00, 0xc3, 0xb0, 0x00, 0xdf, 0x72, 0xf7, 0xd9, 0xbe, 0xf9, 0x11, 0x24, 0xe7, 0x1c, 0xb4, 0xe0, 0x22, 0x8e, 0xe4, 0x0d, 0x02, 0xaf, 0xbc, 0xbb, 0x33, 0x24, 0xfb, 0x5f, 0xe5, 0x50, 0x2c, 0x76, 0x93, 0xc3, 0x21, 0xbb, 0xba, 0xab, 0xbb, 0x7e, 0xbf, 0xaa, 0xd7, 0x0b, 0x68, 0x70, 0x76, 0xc4, 0xe5, 0x74, 0x8f, 0x30, 0x9a, 0xb7, 0x3e, 0xbf, 0xea, 0x62, 0x51, 0x96, 0x65, 0x00, 0x00, 0xb0, 0xb9, 0x51, 0xd7, 0x4f, 0x00, 0x00, 0x20, 0x37, 0x02, 0x0a, 0x00, 0xa0, 0x21, 0x01, 0x05, 0x00, 0xd0, 0x90, 0x80, 0x02, 0x00, 0x68, 0x48, 0x40, 0x01, 0x00, 0x34, 0x24, 0xa0, 0x00, 0x00, 0x1a, 0x12, 0x50, 0x00, 0x00, 0x0d, 0x09, 0x28, 0x00, 0x80, 0x86, 0x26, 0xad, 0x7c, 0x95, 0xa2, 0x78, 0xff, 0x6e, 0x9c, 0x65, 0x59, 0xb4, 0xf2, 0xb5, 0x01, 0x00, 0x12, 0x53, 0x34, 0xb9, 0x13, 0x79, 0xf1, 0x54, 0x28, 0x45, 0xc4, 0xa6, 0x5f, 0x41, 0x51, 0x01, 0x00, 0xb9, 0x2b, 0xcb, 0xb2, 0x68, 0xbc, 0x40, 0x95, 0xe5, 0xa7, 0xef, 0xff, 0x64, 0xf1, 0xf9, 0x66, 0xff, 0xee, 0x93, 0x3f, 0xf9, 0xc4, 0xd7, 0x03, 0x00, 0x48, 0x50, 0x71, 0xd7, 0x3c, 0xbb, 0x1f, 0xe1, 0x6d, 0x18, 0x4f, 0x8d, 0xfe, 0x7d, 0x51, 0x05, 0x00, 0x24, 0xac, 0x9d, 0x6b, 0xa0, 0xda, 0xf6, 0x38, 0xaa, 0x04, 0x15, 0x00, 0x90, 0x90, 0x34, 0x03, 0xea, 0x31, 0x2b, 0x15, 0x00, 0x90, 0x90, 0xdd, 0x02, 0x6a, 0xd7, 0xe3, 0xbb, 0xb6, 0x7f, 0x6d, 0x51, 0x05, 0x00, 0x1c, 0x40, 0x1e, 0x0b, 0xd4, 0xa6, 0x44, 0x15, 0x00, 0x70, 0x00, 0xfd, 0x0a, 0xa8, 0xa7, 0xb8, 0x9e, 0x0a, 0x00, 0x68, 0x59, 0xff, 0x03, 0xea, 0x31, 0x2b, 0x15, 0x00, 0xb0, 0xa3, 0xe1, 0x05, 0xd4, 0x53, 0x44, 0x15, 0x00, 0xd0, 0x80, 0x80, 0xfa, 0x10, 0x51, 0x05, 0x00, 0x7c, 0x80, 0x80, 0x6a, 0x42, 0x54, 0x01, 0x00, 0x21, 0xa0, 0x76, 0xe7, 0x22, 0x75, 0x00, 0x18, 0x9c, 0xed, 0x03, 0xaa, 0xcb, 0x7b, 0x40, 0xa5, 0xcc, 0x4a, 0x05, 0x00, 0xbd, 0xb7, 0x7d, 0x40, 0xed, 0xf0, 0x4d, 0x85, 0x07, 0x47, 0x54, 0x01, 0x40, 0xaf, 0xb4, 0x7b, 0x84, 0x27, 0xaa, 0x36, 0x27, 0xaa, 0x00, 0x20, 0x5b, 0xfb, 0xbf, 0x06, 0x4a, 0x54, 0x6d, 0xce, 0xf5, 0x54, 0x00, 0x90, 0x85, 0x6e, 0x2e, 0x22, 0x17, 0x55, 0x9b, 0xb1, 0x52, 0x01, 0x40, 0x92, 0xd2, 0x79, 0x17, 0xde, 0xe3, 0x30, 0x10, 0x54, 0x4f, 0x13, 0x55, 0x00, 0xd0, 0xb9, 0x74, 0x02, 0xea, 0x31, 0x2b, 0xd5, 0xe6, 0x44, 0x15, 0x00, 0x1c, 0x54, 0xba, 0x01, 0xf5, 0x14, 0x51, 0xb5, 0x39, 0x51, 0x05, 0x00, 0x7b, 0x93, 0x57, 0x40, 0x3d, 0x45, 0x54, 0x6d, 0xce, 0x45, 0xea, 0x00, 0xd0, 0x8a, 0xfc, 0x03, 0xea, 0x29, 0xae, 0xa7, 0xda, 0x8c, 0x95, 0x0a, 0x00, 0xb6, 0xd2, 0xcf, 0x80, 0x7a, 0xcc, 0x4a, 0xb5, 0x39, 0x51, 0x05, 0x00, 0x2f, 0x1a, 0x46, 0x40, 0x3d, 0x45, 0x54, 0x6d, 0x4e, 0x54, 0x01, 0xc0, 0x03, 0xc3, 0x0d, 0xa8, 0xa7, 0x88, 0xaa, 0xcd, 0xb9, 0x9e, 0x0a, 0x80, 0x01, 0x13, 0x50, 0x2f, 0x11, 0x55, 0x9b, 0xb1, 0x52, 0x01, 0x30, 0x20, 0x02, 0x6a, 0x1b, 0x2e, 0x52, 0xdf, 0x8c, 0x95, 0x0a, 0x80, 0x9e, 0x12, 0x50, 0x6d, 0xb0, 0x52, 0x6d, 0x46, 0x50, 0x01, 0xd0, 0x13, 0x02, 0x6a, 0x5f, 0x44, 0xd5, 0xcb, 0x1c, 0xfb, 0x01, 0x90, 0x29, 0x01, 0x75, 0x48, 0xa2, 0xea, 0x65, 0x56, 0x2a, 0x00, 0x32, 0x20, 0xa0, 0xba, 0xe6, 0x7a, 0xaa, 0xe7, 0x09, 0x2a, 0x00, 0x12, 0x24, 0xa0, 0x52, 0x63, 0xa5, 0x7a, 0x9e, 0x63, 0x3f, 0x00, 0x12, 0x20, 0xa0, 0x72, 0x20, 0xaa, 0x9e, 0x67, 0xa5, 0x02, 0xe0, 0xc0, 0x04, 0x54, 0xae, 0x44, 0xd5, 0x87, 0x09, 0x2a, 0x00, 0xf6, 0x4c, 0x40, 0xf5, 0x89, 0xa8, 0x7a, 0x9a, 0x63, 0x3f, 0x00, 0x5a, 0x26, 0xa0, 0xfa, 0xce, 0x45, 0xea, 0x4f, 0xb3, 0x52, 0x01, 0xb0, 0x03, 0x01, 0x35, 0x34, 0x56, 0xaa, 0xa7, 0x09, 0x2a, 0x00, 0x1a, 0x28, 0xca, 0xb2, 0xdc, 0xfc, 0x93, 0x8b, 0x62, 0xf3, 0x4f, 0x26, 0x6b, 0xfe, 0x8b, 0x7e, 0x5f, 0xd1, 0xf5, 0x13, 0x00, 0x20, 0x09, 0x65, 0x59, 0x16, 0x8d, 0x03, 0xea, 0xea, 0xea, 0x6a, 0x7f, 0xcf, 0x88, 0xa4, 0xfd, 0xf4, 0xf2, 0xb2, 0xeb, 0xa7, 0x90, 0x94, 0x2f, 0xfd, 0x59, 0x00, 0x18, 0x9c, 0xcb, 0xcb, 0xcb, 0x28, 0xcb, 0xb2, 0x70, 0x84, 0xc7, 0xc6, 0x1e, 0x07, 0xc3, 0xd0, 0x83, 0xea, 0xf1, 0xeb, 0x17, 0x54, 0x00, 0xc3, 0x21, 0xa0, 0xd8, 0xda, 0x53, 0xc1, 0x30, 0xe4, 0xa8, 0x7a, 0xea, 0xb5, 0x8b, 0x2a, 0x80, 0x7e, 0x12, 0x50, 0xb4, 0x4a, 0x54, 0x3d, 0x64, 0xa5, 0x02, 0xe8, 0x27, 0x01, 0xc5, 0xde, 0x39, 0xfa, 0x5b, 0x11, 0x54, 0x00, 0xfd, 0x20, 0xa0, 0x38, 0x38, 0x2b, 0xd5, 0x8a, 0x63, 0x3f, 0x80, 0x3c, 0x09, 0x28, 0x92, 0x60, 0xa5, 0x5a, 0xb1, 0x52, 0x01, 0xa4, 0x4f, 0x40, 0x91, 0x24, 0x2b, 0xd5, 0x8a, 0xa0, 0x02, 0x48, 0x8f, 0x80, 0x22, 0x1b, 0x56, 0xaa, 0x8a, 0x63, 0x3f, 0x80, 0xee, 0x09, 0x28, 0xb2, 0x65, 0xa5, 0x5a, 0xb1, 0x52, 0x01, 0x1c, 0x96, 0x80, 0xa2, 0x57, 0xac, 0x54, 0x15, 0x41, 0x05, 0xb0, 0x5f, 0x02, 0x8a, 0x5e, 0xb3, 0x52, 0x55, 0x1c, 0xfb, 0x01, 0xb4, 0x4b, 0x40, 0x31, 0x38, 0x56, 0xaa, 0x8a, 0x95, 0x0a, 0x60, 0x7b, 0x02, 0x8a, 0xc1, 0xb3, 0x52, 0x55, 0x04, 0x15, 0xc0, 0xe6, 0x04, 0x14, 0x3c, 0xc1, 0x4a, 0x25, 0xa8, 0x00, 0x9e, 0x23, 0xa0, 0x60, 0x03, 0x56, 0x2a, 0x41, 0x05, 0xb0, 0x4e, 0x40, 0xc1, 0x96, 0x86, 0xbe, 0x52, 0x09, 0x2a, 0x60, 0xc8, 0x04, 0x14, 0xb4, 0x64, 0xe8, 0x2b, 0x95, 0xa0, 0x02, 0x86, 0x44, 0x40, 0xc1, 0x1e, 0x0d, 0x79, 0xa5, 0x12, 0x54, 0x40, 0x9f, 0x09, 0x28, 0x38, 0xa0, 0x21, 0xaf, 0x54, 0x82, 0x0a, 0xe8, 0x13, 0x01, 0x05, 0x1d, 0x1b, 0xea, 0x4a, 0x25, 0xa8, 0x80, 0x9c, 0x09, 0x28, 0x48, 0xcc, 0x50, 0x57, 0x2a, 0x41, 0x05, 0xe4, 0x44, 0x40, 0x41, 0x06, 0x86, 0xb8, 0x52, 0x09, 0x2a, 0x20, 0x65, 0x02, 0x0a, 0x32, 0x34, 0xc4, 0x95, 0x6a, 0xfd, 0xf5, 0x89, 0x29, 0xa0, 0x6b, 0x02, 0x0a, 0x7a, 0x62, 0x3d, 0x2a, 0x86, 0x14, 0x53, 0x11, 0x82, 0x0a, 0x38, 0x3c, 0x01, 0x05, 0x3d, 0x34, 0xb4, 0x23, 0x3f, 0xeb, 0x14, 0x70, 0x68, 0x02, 0x0a, 0x06, 0x60, 0x48, 0x41, 0x25, 0xa6, 0x80, 0x43, 0x10, 0x50, 0x30, 0x40, 0x43, 0x09, 0x2a, 0x47, 0x7d, 0xc0, 0xbe, 0x08, 0x28, 0x60, 0x30, 0xd7, 0x4f, 0x59, 0xa7, 0x80, 0xb6, 0x08, 0x28, 0xe0, 0x01, 0xeb, 0x14, 0xc0, 0xcb, 0x04, 0x14, 0xf0, 0xac, 0x21, 0x06, 0x95, 0x98, 0x02, 0x5e, 0x22, 0xa0, 0x80, 0x46, 0x86, 0x10, 0x54, 0xd6, 0x29, 0xe0, 0x25, 0x02, 0x0a, 0xd8, 0xc9, 0x10, 0xae, 0x9f, 0xb2, 0x4e, 0x01, 0x8f, 0x09, 0x28, 0xa0, 0x35, 0x43, 0x5b, 0xa7, 0xc4, 0x14, 0x0c, 0x97, 0x80, 0x02, 0xf6, 0xa6, 0xef, 0x41, 0x55, 0xbf, 0x1e, 0x21, 0x05, 0xc3, 0x23, 0xa0, 0x80, 0x83, 0xe9, 0x6b, 0x50, 0x59, 0xa5, 0x60, 0x78, 0x04, 0x14, 0xd0, 0x99, 0x3e, 0x5e, 0x3f, 0x65, 0x95, 0x82, 0x61, 0x10, 0x50, 0x40, 0x12, 0xfa, 0xb6, 0x4e, 0x09, 0x29, 0xe8, 0x37, 0x01, 0x05, 0x24, 0xa9, 0x2f, 0xeb, 0x94, 0x90, 0x82, 0x7e, 0x12, 0x50, 0x40, 0xf2, 0xfa, 0xb0, 0x4e, 0x09, 0x29, 0xe8, 0x17, 0x01, 0x05, 0x64, 0x27, 0xe7, 0x75, 0x4a, 0x48, 0x41, 0x3f, 0x08, 0x28, 0x20, 0x6b, 0xb9, 0xc6, 0x94, 0x90, 0x82, 0xbc, 0x09, 0x28, 0xa0, 0x37, 0x72, 0x3c, 0xea, 0xfb, 0xe9, 0xe5, 0xa5, 0x88, 0x82, 0x0c, 0x09, 0x28, 0xa0, 0xb7, 0x72, 0x59, 0xa7, 0xac, 0x51, 0x90, 0x1f, 0x01, 0x05, 0x0c, 0x42, 0x0e, 0xeb, 0x94, 0x35, 0x0a, 0xf2, 0x21, 0xa0, 0x80, 0x41, 0x4a, 0x75, 0x9d, 0xb2, 0x46, 0x41, 0x1e, 0x04, 0x14, 0x30, 0x78, 0x1f, 0x8a, 0x95, 0x2e, 0xc3, 0xca, 0x1a, 0x05, 0x69, 0x1b, 0x75, 0xfd, 0x04, 0x00, 0x52, 0xf5, 0xe5, 0xd5, 0x55, 0xa7, 0x11, 0xf3, 0xd3, 0xcb, 0xcb, 0xa4, 0xd6, 0x31, 0x60, 0x45, 0x40, 0x01, 0xbc, 0xa0, 0x0e, 0xa9, 0xae, 0x62, 0x4a, 0x44, 0x41, 0x7a, 0x04, 0x14, 0x40, 0x03, 0x5d, 0x85, 0x94, 0x35, 0x0a, 0xd2, 0x22, 0xa0, 0x00, 0xb6, 0x60, 0x8d, 0x82, 0x61, 0x13, 0x50, 0x00, 0x5b, 0xea, 0xea, 0x68, 0x4f, 0x44, 0x41, 0xf7, 0x04, 0x14, 0x40, 0x0b, 0xba, 0xbe, 0xe0, 0x9c, 0xc3, 0x72, 0xa4, 0x8a, 0x80, 0x02, 0x68, 0xd1, 0xa1, 0x42, 0xca, 0x5f, 0xde, 0xdd, 0x10, 0x4e, 0xd4, 0xdc, 0x07, 0x0a, 0x60, 0x0f, 0xea, 0x88, 0xda, 0xe7, 0x5f, 0xb6, 0xee, 0x15, 0x75, 0x18, 0x82, 0x89, 0xa7, 0x58, 0xa0, 0x00, 0xf6, 0x68, 0xdf, 0x81, 0x63, 0x11, 0xd9, 0x1f, 0xbf, 0xb7, 0x3c, 0x47, 0x40, 0x01, 0xec, 0xd9, 0x21, 0x8e, 0xf5, 0xfc, 0x45, 0xdf, 0x1e, 0xe1, 0xc4, 0x26, 0x1c, 0xe1, 0x01, 0x1c, 0xc8, 0xbe, 0x8f, 0xf5, 0x1c, 0xe9, 0x6d, 0x4f, 0x30, 0xd1, 0x94, 0x05, 0x0a, 0xe0, 0xc0, 0x44, 0x4e, 0x7a, 0xbc, 0x8b, 0x92, 0xa6, 0x04, 0x14, 0x40, 0x07, 0xf6, 0xf5, 0x17, 0xb6, 0x25, 0x65, 0x37, 0x42, 0x8a, 0x4d, 0x09, 0x28, 0x80, 0x9e, 0x11, 0x51, 0xbb, 0x13, 0x51, 0xbc, 0x44, 0x40, 0x01, 0x74, 0xc8, 0x12, 0x95, 0x26, 0xbf, 0x7f, 0xbc, 0x44, 0x40, 0x01, 0x24, 0xc0, 0xe2, 0x01, 0x79, 0x11, 0x50, 0x00, 0x89, 0x10, 0x51, 0x69, 0xb0, 0x3e, 0xb1, 0x09, 0x01, 0x05, 0x90, 0x90, 0x36, 0x23, 0x4a, 0x08, 0x34, 0xf7, 0xdc, 0xef, 0x99, 0x0b, 0xcc, 0x59, 0x27, 0xa0, 0x00, 0x12, 0x23, 0xa2, 0xd2, 0x26, 0xa4, 0x88, 0x10, 0x50, 0x00, 0x49, 0xf2, 0x17, 0xf4, 0xe1, 0xbd, 0xb4, 0x3e, 0x6d, 0xf2, 0x73, 0x0c, 0x87, 0x80, 0x02, 0x48, 0x94, 0xbf, 0xa0, 0x0f, 0xa7, 0x69, 0x3c, 0x81, 0x80, 0x02, 0xe8, 0x39, 0xc7, 0x78, 0xd0, 0x3e, 0x01, 0x05, 0x90, 0xb0, 0xb6, 0xd6, 0x0f, 0x11, 0xf5, 0x61, 0xd6, 0x27, 0xb6, 0x21, 0xa0, 0x00, 0x12, 0xe7, 0x2f, 0xf1, 0xfd, 0x11, 0x4f, 0x6c, 0x6b, 0xd2, 0xf5, 0x13, 0x00, 0xe0, 0x65, 0x5f, 0x5e, 0x5d, 0x59, 0x91, 0x1e, 0xf9, 0x87, 0x7f, 0xb8, 0x8c, 0x37, 0x6f, 0x22, 0x8e, 0x8f, 0x23, 0x8e, 0x8e, 0xaa, 0xc7, 0xe9, 0x69, 0xc4, 0x78, 0x5c, 0x3d, 0x6e, 0x6e, 0x22, 0xfe, 0xe8, 0x8f, 0xae, 0xba, 0x7e, 0x9a, 0xf4, 0x54, 0x51, 0x96, 0xe5, 0xe6, 0x9f, 0x5c, 0x14, 0xe5, 0x95, 0x22, 0x07, 0xe8, 0xcc, 0xae, 0x11, 0x95, 0xfb, 0xaa, 0xf2, 0xf7, 0x7f, 0x7f, 0x19, 0x17, 0x17, 0x11, 0xaf, 0x5e, 0x45, 0x9c, 0x9f, 0x47, 0x9c, 0x9c, 0x54, 0x8f, 0xa3, 0xa3, 0x22, 0x26, 0x93, 0x88, 0xb3, 0xb3, 0x22, 0xc6, 0xe3, 0xea, 0xc7, 0xa3, 0x51, 0x44, 0x51, 0x44, 0xdc, 0xdc, 0x2c, 0xa2, 0x2c, 0x23, 0x3e, 0xfe, 0xf8, 0xea, 0xc1, 0xd7, 0xb2, 0x3e, 0xb1, 0x8d, 0xcb, 0xcb, 0xcb, 0x28, 0xcb, 0xb2, 0xb0, 0x40, 0x01, 0x64, 0x62, 0xc8, 0x0b, 0xd4, 0xaf, 0x7e, 0x75, 0x19, 0xaf, 0x5f, 0x47, 0x5c, 0x5c, 0x54, 0xc1, 0x74, 0x76, 0x16, 0x31, 0x99, 0x14, 0x31, 0x1a, 0x55, 0xa1, 0x34, 0x99, 0x8c, 0xe2, 0xe4, 0x64, 0x1c, 0xa7, 0xa7, 0xe3, 0x18, 0x8d, 0x56, 0x2b, 0xd4, 0x78, 0x5c, 0x85, 0x56, 0x51, 0x44, 0x7c, 0xf5, 0xd5, 0x7f, 0x8c, 0xc5, 0xa2, 0x8c, 0x3f, 0xfc, 0xc3, 0xe7, 0xd7, 0x3c, 0xf1, 0xc4, 0x26, 0x04, 0x14, 0x40, 0x26, 0x86, 0x7a, 0x8c, 0xf7, 0xb7, 0x7f, 0x5b, 0xc5, 0xd3, 0xd9, 0xd9, 0xea, 0x31, 0x1e, 0x17, 0x77, 0x81, 0x54, 0x44, 0x51, 0x44, 0x4c, 0x26, 0x93, 0x38, 0x3e, 0x3e, 0x8a, 0x37, 0x6f, 0x2e, 0xe2, 0xec, 0xec, 0x38, 0xe6, 0xf3, 0xdb, 0x98, 0xcd, 0x6e, 0xef, 0x02, 0xab, 0x8c, 0xd1, 0x28, 0xe2, 0xe4, 0x64, 0x14, 0xcb, 0xe5, 0x32, 0xde, 0xbe, 0xfd, 0x4f, 0x5d, 0xbf, 0x24, 0x7a, 0x40, 0x40, 0x01, 0x64, 0x64, 0x68, 0x11, 0xf5, 0xab, 0x5f, 0x55, 0x47, 0x76, 0xc7, 0xc7, 0xab, 0x6b, 0x9d, 0x46, 0xa3, 0x22, 0x26, 0x93, 0x51, 0x1c, 0x1d, 0x15, 0x71, 0x7c, 0x5c, 0xc4, 0xd9, 0xd9, 0x51, 0x9c, 0x9f, 0x1f, 0xc5, 0xd9, 0xd9, 0x51, 0x9c, 0x9e, 0x9e, 0xc6, 0xd9, 0xd9, 0x71, 0x9c, 0x9d, 0xbd, 0x8e, 0xb3, 0xb3, 0xe3, 0x28, 0x8a, 0x32, 0x8a, 0x62, 0x19, 0x11, 0xd5, 0xc7, 0x7f, 0xf9, 0x97, 0xff, 0x13, 0x65, 0xb9, 0x8c, 0x2f, 0x7e, 0x73, 0x1c, 0xdf, 0x7d, 0xf7, 0x2e, 0xfe, 0xcb, 0x7f, 0x5d, 0x3e, 0xf8, 0xf5, 0xac, 0x4f, 0x6c, 0xca, 0x35, 0x50, 0x00, 0x19, 0xda, 0x25, 0xa2, 0x72, 0x88, 0x84, 0xbf, 0xfa, 0xab, 0xcb, 0xf8, 0xd1, 0x8f, 0xaa, 0x23, 0xbb, 0xf3, 0xf3, 0x2a, 0x9e, 0x4e, 0x4e, 0xaa, 0x8f, 0xa7, 0xa7, 0xd5, 0x51, 0xdd, 0xc9, 0x49, 0x15, 0x50, 0x6f, 0xde, 0x5c, 0xc4, 0xf7, 0xbf, 0x7f, 0x11, 0x67, 0x67, 0x47, 0xf1, 0xea, 0xd5, 0xeb, 0x18, 0x8d, 0xce, 0x62, 0x3c, 0x3e, 0xbb, 0x0b, 0xa9, 0xe3, 0x88, 0x58, 0x44, 0xc4, 0xe2, 0x3e, 0xa6, 0x16, 0x8b, 0xff, 0x1d, 0x5f, 0x7d, 0xf5, 0xaf, 0x71, 0x73, 0x73, 0x1b, 0xd7, 0xd7, 0x37, 0x31, 0x9b, 0x95, 0xf1, 0xdf, 0xfe, 0xb8, 0xcc, 0xe2, 0xf7, 0x85, 0xee, 0xb9, 0x06, 0x0a, 0x80, 0x24, 0xfd, 0xe5, 0x5f, 0x5e, 0xc6, 0x47, 0x1f, 0x55, 0xd7, 0x2d, 0xcd, 0xe7, 0xd5, 0xe3, 0xf8, 0xb8, 0xba, 0x9e, 0xe9, 0xe8, 0x68, 0x1c, 0xc7, 0xc7, 0xe3, 0x38, 0x3e, 0xae, 0xae, 0x79, 0x7a, 0xf5, 0xea, 0x2c, 0xce, 0xcf, 0x4f, 0xe3, 0xe4, 0xe4, 0x24, 0x2e, 0x2e, 0x4e, 0xe3, 0xf5, 0xeb, 0x37, 0x31, 0x1e, 0x5f, 0x3c, 0x78, 0xd4, 0x01, 0x15, 0x31, 0x8f, 0x88, 0x45, 0x8c, 0x46, 0x8b, 0xf8, 0xe8, 0xa3, 0x45, 0xbc, 0x7d, 0xfb, 0x36, 0xbe, 0xfe, 0xfa, 0xf7, 0x71, 0x7d, 0x7d, 0x1b, 0xff, 0xf3, 0x7f, 0x2c, 0xe2, 0x07, 0xdd, 0xbe, 0x6c, 0x32, 0x23, 0xa0, 0x00, 0x48, 0xc6, 0x5f, 0xfc, 0xc5, 0x65, 0xfc, 0xe4, 0x27, 0xf5, 0x85, 0xe1, 0xab, 0x70, 0x2a, 0x8a, 0x88, 0xe5, 0x32, 0x62, 0x3c, 0x1e, 0x45, 0x51, 0x54, 0x8f, 0x88, 0x51, 0x14, 0xc5, 0x51, 0x14, 0xc5, 0x79, 0x8c, 0x46, 0xaf, 0xe2, 0xe8, 0xe8, 0x22, 0x26, 0x93, 0x1f, 0xc6, 0x72, 0xf9, 0xbd, 0x28, 0xcb, 0x57, 0x11, 0xf1, 0xbd, 0x88, 0x78, 0x15, 0x55, 0x38, 0xd5, 0x8f, 0x59, 0x8c, 0x46, 0x93, 0x18, 0x8d, 0xde, 0xc4, 0xf7, 0xbe, 0xf7, 0x55, 0x9c, 0x9f, 0xff, 0x6b, 0x7c, 0xfd, 0xf5, 0xbf, 0xc7, 0xd7, 0x5f, 0xff, 0xbe, 0xc3, 0x57, 0x4d, 0x8e, 0x04, 0x14, 0x00, 0x49, 0xf8, 0xe5, 0x2f, 0x2f, 0xe3, 0xe4, 0x24, 0x62, 0x36, 0xab, 0xee, 0xe7, 0x34, 0x99, 0x54, 0xf1, 0x54, 0xc7, 0xd4, 0x64, 0x32, 0x8e, 0xe5, 0xb2, 0x88, 0xc5, 0x22, 0x62, 0x3e, 0x2f, 0xe2, 0xe4, 0xa4, 0x88, 0xd1, 0x68, 0x12, 0x47, 0x47, 0xc7, 0x71, 0x72, 0x72, 0x1a, 0x27, 0x27, 0xaf, 0xe2, 0xf8, 0xf8, 0xc7, 0x51, 0x96, 0x3f, 0x88, 0xe5, 0xf2, 0x0f, 0xa2, 0x28, 0xce, 0x22, 0xe2, 0x2c, 0x22, 0x66, 0x11, 0x31, 0xbd, 0xfb, 0xb8, 0x8c, 0x88, 0x1f, 0x47, 0xc4, 0x17, 0x31, 0x1e, 0x7f, 0x1b, 0xa3, 0xd1, 0x4f, 0xe2, 0x47, 0x3f, 0xba, 0x88, 0xa2, 0x28, 0xe2, 0xab, 0xaf, 0x7e, 0x16, 0xaf, 0x5f, 0xff, 0xa6, 0xc3, 0xdf, 0x01, 0x72, 0x22, 0xa0, 0x00, 0x06, 0xe6, 0xa7, 0x97, 0x97, 0x49, 0x5e, 0xef, 0x53, 0x96, 0xab, 0x6b, 0x9d, 0x4e, 0x4e, 0x56, 0xf7, 0x71, 0x1a, 0x8d, 0xaa, 0xf5, 0xa9, 0xbe, 0x64, 0x77, 0x34, 0x1a, 0xc5, 0x78, 0x5c, 0x2d, 0x50, 0x11, 0xe3, 0xa8, 0xfe, 0x2a, 0x3b, 0x8a, 0x88, 0xe3, 0x18, 0x8d, 0x2e, 0x22, 0xe2, 0x75, 0x8c, 0xc7, 0xaf, 0x22, 0xe2, 0x4d, 0x44, 0x7c, 0x3f, 0xaa, 0x70, 0x9a, 0x45, 0xbd, 0x40, 0xad, 0x7e, 0x3c, 0x89, 0xa2, 0xf8, 0x5d, 0x8c, 0xc7, 0xbf, 0x8d, 0xb3, 0xb3, 0x1f, 0xc4, 0x0f, 0x7f, 0x38, 0x8a, 0xd9, 0xec, 0xc0, 0x2f, 0x9a, 0x6c, 0x09, 0x28, 0x00, 0x3a, 0xf7, 0xc9, 0x27, 0x97, 0x71, 0x7c, 0x5c, 0x5d, 0xef, 0x34, 0x9b, 0x55, 0x8f, 0xfa, 0x1e, 0x4f, 0xf5, 0x0a, 0x35, 0x9b, 0xd5, 0x3f, 0x2e, 0x63, 0x32, 0x89, 0xfb, 0x35, 0x6a, 0x3a, 0x2d, 0xe3, 0xf6, 0xb6, 0x8c, 0xf9, 0x7c, 0x1c, 0x11, 0xc7, 0x11, 0x71, 0x12, 0xd5, 0xf1, 0xdd, 0x0f, 0xa2, 0x3a, 0xc2, 0xbb, 0x88, 0x88, 0x9b, 0xbb, 0x47, 0x7d, 0x94, 0xf7, 0x51, 0x44, 0xbc, 0xbe, 0xfb, 0xfc, 0xe3, 0x28, 0xcb, 0xdf, 0x47, 0x59, 0x46, 0x5c, 0x5f, 0xff, 0xe7, 0x38, 0x3b, 0xfb, 0x5f, 0x5d, 0xfc, 0x16, 0x90, 0x19, 0x01, 0x05, 0x90, 0xa1, 0x3e, 0xde, 0xce, 0xa0, 0x28, 0xaa, 0xa3, 0xbb, 0xd3, 0xd3, 0x55, 0x3c, 0xad, 0x22, 0x6a, 0x1c, 0x93, 0xc9, 0x38, 0xc6, 0xe3, 0xea, 0x51, 0x14, 0xa3, 0x58, 0x2e, 0x8b, 0x88, 0x98, 0xc4, 0x78, 0x7c, 0x12, 0xc7, 0xc7, 0xe7, 0x31, 0x1e, 0x9f, 0x46, 0x15, 0x4f, 0xc7, 0xb1, 0x0a, 0xa9, 0x37, 0x51, 0x1d, 0xd9, 0x4d, 0x23, 0xe2, 0xf6, 0xd1, 0xc7, 0xb7, 0x11, 0xf1, 0x5d, 0x44, 0xbc, 0x8d, 0xd7, 0xaf, 0xff, 0x43, 0x14, 0xc5, 0x71, 0x44, 0x44, 0xfc, 0xee, 0x77, 0x1f, 0xc7, 0x8f, 0x7f, 0xfc, 0xc5, 0xa1, 0x5f, 0x3e, 0x99, 0xf1, 0xcd, 0x84, 0x01, 0xe8, 0xd4, 0x27, 0x9f, 0x5c, 0xc6, 0x68, 0x54, 0xad, 0x4f, 0x8b, 0x45, 0xf5, 0x28, 0xcb, 0xea, 0xd8, 0x6e, 0xb9, 0x5c, 0xfd, 0xdc, 0x7c, 0x5e, 0xc6, 0x7c, 0x5e, 0xc6, 0x62, 0x51, 0xde, 0xff, 0x78, 0x3e, 0x9f, 0xc7, 0x6c, 0x76, 0x13, 0xf3, 0xf9, 0x34, 0x96, 0xcb, 0x79, 0x44, 0x94, 0x1f, 0x78, 0x44, 0x44, 0x14, 0x6b, 0xbf, 0x6a, 0x19, 0x11, 0xe7, 0x51, 0xc5, 0xd5, 0x59, 0x44, 0x2c, 0x63, 0xb1, 0x28, 0xa2, 0x2c, 0x27, 0x71, 0x71, 0x71, 0x7c, 0xb8, 0x17, 0x4f, 0xb6, 0x2c, 0x50, 0x00, 0x74, 0x6e, 0xb9, 0x8c, 0xfb, 0x88, 0x9a, 0xcf, 0x23, 0xa6, 0xd3, 0xea, 0xe7, 0x8b, 0xa2, 0x3a, 0xb6, 0x2b, 0xcb, 0xea, 0xda, 0xa7, 0xc9, 0x64, 0xf5, 0x78, 0xf5, 0xea, 0xf5, 0xfd, 0xe3, 0xec, 0xec, 0x2c, 0x8e, 0x8e, 0x26, 0xf1, 0x30, 0x98, 0xd6, 0x03, 0xaa, 0xbe, 0x8d, 0xc1, 0x3c, 0xaa, 0x0b, 0xc9, 0xcb, 0x88, 0xb8, 0x8e, 0x88, 0xaf, 0xa3, 0xbe, 0xb0, 0xfc, 0xcd, 0x9b, 0xea, 0x73, 0xe7, 0xf3, 0xcd, 0xef, 0x8f, 0xc8, 0x70, 0x59, 0xa0, 0x00, 0xe8, 0xcc, 0x27, 0x9f, 0x5c, 0xde, 0xff, 0xb8, 0xba, 0xcb, 0xf8, 0xc3, 0x15, 0xaa, 0x2c, 0xeb, 0xf5, 0x29, 0x62, 0x36, 0x2b, 0x63, 0x3a, 0x2d, 0x63, 0x36, 0x5b, 0x5f, 0xa0, 0x96, 0xf7, 0x3f, 0x5e, 0x2e, 0x97, 0x51, 0xc5, 0xd0, 0xfa, 0x63, 0x3d, 0xa8, 0x22, 0xaa, 0x15, 0xaa, 0xfe, 0xb9, 0x51, 0x54, 0x47, 0x7d, 0xa7, 0x51, 0x5d, 0x8c, 0xbe, 0xfa, 0xf7, 0x7e, 0xfb, 0xdb, 0x9f, 0xed, 0xff, 0xc5, 0x93, 0x35, 0x0b, 0x14, 0x00, 0x49, 0x98, 0xcf, 0x57, 0xdf, 0x00, 0xf8, 0xf8, 0xf8, 0xe1, 0xf1, 0xdd, 0x6c, 0x56, 0x46, 0x51, 0x2c, 0xee, 0x16, 0xa9, 0x22, 0xc6, 0xe3, 0x22, 0x66, 0xb3, 0x69, 0x4c, 0xa7, 0xd7, 0x31, 0x9b, 0x1d, 0xdf, 0x3d, 0x8e, 0x62, 0xb9, 0xfc, 0x26, 0x46, 0xa3, 0xfa, 0x9d, 0x79, 0xeb, 0x1f, 0xeb, 0x77, 0xe0, 0xdd, 0xde, 0x3f, 0x96, 0xcb, 0x69, 0x2c, 0x97, 0xe3, 0xa8, 0xa2, 0x6a, 0x11, 0x11, 0xd3, 0x58, 0x2c, 0xca, 0x58, 0x2c, 0x22, 0x8e, 0x8f, 0xed, 0x0b, 0x3c, 0x4f, 0x40, 0x01, 0xd0, 0xb9, 0xfa, 0x9e, 0x4f, 0x93, 0xc9, 0x6a, 0x85, 0xaa, 0x6f, 0x29, 0x50, 0xdd, 0x81, 0x3c, 0xee, 0x6e, 0xa0, 0x59, 0xc4, 0x72, 0x19, 0x6b, 0x0b, 0x54, 0x19, 0xb3, 0xd9, 0x2c, 0x66, 0xb3, 0xeb, 0x98, 0x4e, 0x8f, 0x63, 0x3a, 0xbd, 0x8e, 0xf1, 0xf8, 0x34, 0x46, 0xa3, 0x7f, 0xbf, 0xbb, 0xd5, 0xc1, 0x38, 0xaa, 0xa5, 0x69, 0x75, 0x23, 0xcd, 0xd5, 0x0d, 0x35, 0x23, 0x96, 0xcb, 0xaf, 0x63, 0x3e, 0xff, 0xbf, 0x11, 0xf1, 0x6d, 0x44, 0x4c, 0x63, 0x3e, 0x9f, 0xde, 0x7d, 0xdd, 0x88, 0x2f, 0xbe, 0xf8, 0x38, 0x3e, 0xfe, 0xd8, 0xc5, 0xe4, 0x3c, 0x4d, 0x40, 0x01, 0xd0, 0xb9, 0xfa, 0x1e, 0x4f, 0xf3, 0xf9, 0xea, 0xd6, 0x05, 0xf5, 0xcf, 0xad, 0x1f, 0xe1, 0x8d, 0xc7, 0xd5, 0xf7, 0xb3, 0xab, 0x6e, 0x6b, 0xb0, 0x7c, 0xf4, 0x98, 0xc6, 0x6c, 0x76, 0x1d, 0x8b, 0xc5, 0x69, 0x8c, 0xc7, 0x27, 0xb1, 0x5c, 0x9e, 0xc6, 0x68, 0xf4, 0x4d, 0x8c, 0xc7, 0xeb, 0x0b, 0xd4, 0xc3, 0x90, 0x2a, 0x8a, 0xdb, 0x18, 0x8d, 0x46, 0xb1, 0x58, 0x2c, 0x62, 0xb1, 0xa8, 0x03, 0xaa, 0x5a, 0xa2, 0xe0, 0x39, 0x02, 0x0a, 0x80, 0xce, 0x2d, 0x16, 0xd5, 0x05, 0xe3, 0x11, 0xab, 0x8f, 0xf5, 0x3b, 0xf1, 0xea, 0x23, 0xbc, 0x88, 0xe5, 0xfd, 0x8d, 0x35, 0xc7, 0xe3, 0x88, 0x77, 0xef, 0xa6, 0xef, 0x7d, 0x9d, 0xf3, 0xf3, 0x7f, 0x8b, 0xf3, 0xf3, 0xfa, 0x9e, 0x4f, 0xb7, 0xb1, 0xba, 0xff, 0xd3, 0x32, 0x1e, 0x5e, 0x48, 0x5e, 0x05, 0xd4, 0xdb, 0xb7, 0xbf, 0x8f, 0xc5, 0xe2, 0xdb, 0x58, 0x2e, 0xdf, 0xc5, 0x62, 0x71, 0xfb, 0xe0, 0x5d, 0x7e, 0x65, 0x59, 0xbc, 0xf7, 0xf5, 0xa1, 0x26, 0xa0, 0x00, 0x48, 0xc2, 0x7c, 0x5e, 0x45, 0xd3, 0xed, 0x6d, 0xf5, 0xb1, 0x28, 0xaa, 0x6b, 0xa1, 0x46, 0xa3, 0x22, 0x8a, 0xa2, 0x88, 0xd1, 0x28, 0xa2, 0x2c, 0xab, 0xc0, 0x99, 0xcd, 0xca, 0x98, 0xcd, 0x96, 0x31, 0x9f, 0x2f, 0xe3, 0xfa, 0xfa, 0x36, 0x8a, 0xa2, 0x8c, 0xa2, 0x28, 0xe3, 0xe2, 0xe2, 0x2c, 0xe6, 0xf3, 0x32, 0xce, 0xcf, 0xcb, 0x38, 0x3f, 0xbf, 0x89, 0xa2, 0xa8, 0x43, 0xaa, 0x0e, 0xa8, 0xf5, 0x90, 0x9a, 0xc5, 0x64, 0xf2, 0x4d, 0xcc, 0x66, 0xb3, 0x78, 0xf7, 0xee, 0x28, 0xe6, 0xf3, 0xdb, 0xb8, 0xbe, 0x9e, 0xc6, 0x6c, 0x56, 0x3d, 0x97, 0xeb, 0xeb, 0x65, 0x87, 0xbf, 0x1b, 0xa4, 0x4e, 0x40, 0x01, 0x90, 0x8c, 0xc5, 0xa2, 0x0a, 0xa8, 0xf9, 0xbc, 0xfa, 0xe7, 0xf1, 0xb8, 0x5e, 0xa1, 0xca, 0xfb, 0x3b, 0x8f, 0x2f, 0x97, 0xcb, 0xbb, 0xa5, 0x68, 0x1a, 0xd3, 0xe9, 0x3c, 0x6e, 0x6f, 0xe7, 0x71, 0x7b, 0xbb, 0x88, 0xdb, 0xdb, 0x45, 0xcc, 0xe7, 0x8b, 0x38, 0x39, 0x99, 0xc4, 0xf9, 0xf9, 0x79, 0x9c, 0x9f, 0x5f, 0xc4, 0xf9, 0xf9, 0xff, 0x8b, 0xf3, 0xf3, 0xf3, 0xbb, 0xc0, 0xaa, 0xdf, 0x65, 0xb7, 0x0a, 0xa9, 0x9b, 0x9b, 0xeb, 0x78, 0xf7, 0xee, 0x9b, 0xb8, 0xbe, 0xfe, 0x26, 0xde, 0xbd, 0xfb, 0x2e, 0xe6, 0xf3, 0x45, 0x5c, 0x5f, 0xdf, 0xc4, 0xcd, 0xcd, 0x32, 0x16, 0x8b, 0xee, 0x7e, 0x1f, 0x48, 0x9f, 0x80, 0x02, 0xc8, 0x50, 0xdf, 0xee, 0x42, 0xbe, 0xae, 0xbe, 0xf7, 0xd3, 0x62, 0x11, 0x71, 0x73, 0x53, 0xc5, 0x53, 0x7d, 0x3d, 0x54, 0x51, 0x94, 0x77, 0x8b, 0x54, 0xc4, 0x78, 0x5c, 0xc6, 0x68, 0x14, 0x71, 0x73, 0x33, 0x8f, 0xe5, 0xb2, 0x8c, 0xb2, 0x5c, 0xc6, 0xc9, 0xc9, 0x38, 0xe6, 0xf3, 0x49, 0x2c, 0x16, 0x8b, 0x98, 0x4e, 0xaf, 0x63, 0x3a, 0x3d, 0x8f, 0xe9, 0xf4, 0xfc, 0x7e, 0xa1, 0x8a, 0xa8, 0x3f, 0x56, 0x01, 0x35, 0x9d, 0x4e, 0xef, 0xae, 0x9d, 0x1a, 0xc5, 0xf5, 0xf5, 0x2c, 0xe6, 0xf3, 0xc5, 0xdd, 0xba, 0x55, 0xfd, 0xda, 0xf0, 0x21, 0x02, 0x0a, 0x80, 0xe4, 0xac, 0x5f, 0xff, 0x54, 0x5f, 0xf7, 0x54, 0x14, 0xab, 0xeb, 0xa3, 0x22, 0xca, 0x18, 0x8d, 0xea, 0x0b, 0xca, 0x8b, 0x18, 0x8d, 0xca, 0xb8, 0xbe, 0x9e, 0xc5, 0x77, 0xdf, 0xdd, 0xc4, 0x6c, 0x36, 0xb9, 0x0b, 0xa1, 0xea, 0xe3, 0xed, 0xed, 0xf5, 0x7d, 0x40, 0xd5, 0xf1, 0x54, 0xff, 0x78, 0x3a, 0xbd, 0x8d, 0xe9, 0xf4, 0x36, 0x6e, 0x6f, 0x6f, 0x63, 0x3a, 0xad, 0x03, 0x6a, 0x7e, 0x77, 0x5f, 0xa9, 0x0e, 0x7f, 0x03, 0x48, 0x9e, 0x80, 0x02, 0x18, 0x98, 0x2f, 0xaf, 0xae, 0xba, 0x7e, 0x0a, 0xcf, 0xaa, 0x8e, 0xe9, 0xaa, 0x5b, 0x1a, 0xd4, 0x8a, 0xa2, 0xba, 0xfe, 0x69, 0xfd, 0x9f, 0x23, 0x16, 0xb1, 0x5c, 0x2e, 0xa3, 0x2c, 0xcb, 0x58, 0x2e, 0xcb, 0x58, 0x2e, 0x47, 0x31, 0x1e, 0xdf, 0xc6, 0xcd, 0xcd, 0x34, 0x6e, 0x6f, 0x8f, 0xe2, 0xe4, 0x64, 0x72, 0xff, 0xb1, 0x0a, 0xb0, 0x72, 0xed, 0x51, 0x45, 0xd4, 0x72, 0xb9, 0x88, 0xe9, 0x74, 0x1e, 0xb3, 0xd9, 0x22, 0xa6, 0xd3, 0xe5, 0xdd, 0x2d, 0x12, 0x8a, 0x98, 0xcd, 0x56, 0x77, 0x43, 0x87, 0xa7, 0x08, 0x28, 0x00, 0x92, 0x52, 0x7d, 0xdb, 0x96, 0xd5, 0x5d, 0xc8, 0x23, 0xaa, 0x7f, 0x9e, 0x4c, 0x56, 0xcb, 0xd4, 0x7c, 0xbe, 0xbe, 0x46, 0x2d, 0x62, 0xb1, 0x58, 0xc6, 0x72, 0x39, 0xbe, 0xbb, 0x97, 0x54, 0x11, 0x8b, 0xc5, 0x22, 0x6e, 0x6f, 0x8b, 0x98, 0x4e, 0x57, 0x01, 0x35, 0x1a, 0x95, 0xf7, 0x21, 0x15, 0x51, 0xde, 0x05, 0x59, 0x15, 0x60, 0x65, 0x59, 0xc4, 0x74, 0xba, 0x88, 0xe5, 0xb2, 0x7e, 0x17, 0x5e, 0xc4, 0xcf, 0x7f, 0x7e, 0xd5, 0xc9, 0xeb, 0x27, 0x0f, 0x02, 0x0a, 0x80, 0xe4, 0xac, 0x7f, 0x1b, 0x97, 0x3a, 0xa8, 0x56, 0xb7, 0x37, 0x28, 0x1f, 0x7c, 0xde, 0xea, 0xdb, 0xb3, 0x2c, 0xee, 0x03, 0x6a, 0x3e, 0x1f, 0xdd, 0x7d, 0x5c, 0xc6, 0xcd, 0xcd, 0xf4, 0x3e, 0xa0, 0xaa, 0xe3, 0xc0, 0xf2, 0x2e, 0xd0, 0x96, 0x77, 0x8f, 0xf2, 0xfe, 0xc7, 0x75, 0x40, 0x39, 0xbe, 0xe3, 0x25, 0x02, 0x0a, 0x80, 0xce, 0xfc, 0xfa, 0xd7, 0x57, 0x0f, 0xbe, 0x1f, 0x5e, 0xad, 0x0e, 0x98, 0x3a, 0x9a, 0xea, 0x5b, 0x1c, 0xd4, 0x3f, 0x37, 0x1a, 0x45, 0x44, 0x94, 0x77, 0x17, 0x8f, 0x17, 0x51, 0x96, 0xc5, 0xdd, 0x37, 0x24, 0xae, 0x22, 0x6a, 0x15, 0x50, 0xd5, 0xc7, 0x2a, 0xa0, 0xe2, 0xc1, 0x12, 0x55, 0x1d, 0xfd, 0xad, 0x07, 0x54, 0x15, 0x4e, 0x65, 0x19, 0xf1, 0x8b, 0x5f, 0x5c, 0xed, 0xff, 0xc5, 0x93, 0x35, 0x01, 0x05, 0x90, 0x99, 0x3e, 0xbf, 0x03, 0x6f, 0x5d, 0x1d, 0x51, 0xf5, 0x3d, 0xa1, 0x8a, 0xa2, 0xfa, 0xf6, 0x2e, 0xf5, 0x32, 0x35, 0x99, 0x54, 0xdf, 0xe2, 0xa5, 0x5a, 0xab, 0xca, 0xfb, 0xa5, 0x6a, 0x32, 0xa9, 0x6f, 0x75, 0x50, 0xbd, 0x83, 0x6f, 0x15, 0x50, 0xe5, 0x7d, 0x44, 0x15, 0x45, 0x79, 0x7f, 0xed, 0x54, 0xbd, 0x3c, 0xd5, 0xc7, 0x83, 0xa5, 0x9b, 0x90, 0xb3, 0x01, 0x01, 0x05, 0x40, 0xa7, 0x3e, 0xb4, 0x42, 0xd5, 0x96, 0xcb, 0x87, 0xef, 0xc8, 0xab, 0xaf, 0x81, 0x8a, 0xa8, 0x17, 0xaa, 0xf2, 0x6e, 0x81, 0xaa, 0x2e, 0x10, 0x5f, 0x2c, 0x8a, 0x98, 0x4c, 0xca, 0xbb, 0x5b, 0x21, 0x54, 0x1f, 0x1f, 0xaf, 0x4f, 0xf5, 0x35, 0x56, 0x75, 0x78, 0xad, 0x3f, 0xae, 0xaf, 0x0f, 0xf1, 0xaa, 0xc9, 0x9d, 0x80, 0x02, 0x20, 0x79, 0xf5, 0x11, 0x5e, 0x1d, 0x53, 0xf5, 0x0d, 0x36, 0x57, 0xab, 0x51, 0x15, 0x51, 0x75, 0x24, 0xcd, 0x66, 0xd5, 0xe7, 0xac, 0x3f, 0xd6, 0xd7, 0xa7, 0xf5, 0xdb, 0x22, 0xd4, 0xeb, 0x53, 0xfd, 0xb5, 0xfe, 0xfc, 0xcf, 0xaf, 0xba, 0x7e, 0xb9, 0x64, 0x60, 0xd4, 0xf5, 0x13, 0x00, 0x60, 0x73, 0xbb, 0x1e, 0xdf, 0xa5, 0x7a, 0x0b, 0x83, 0x5f, 0xff, 0xfa, 0xea, 0xc5, 0xcf, 0xa9, 0x23, 0xa7, 0xfa, 0xc6, 0xc2, 0xd5, 0x1d, 0xcb, 0xa7, 0xd3, 0xb8, 0x3b, 0xaa, 0x8b, 0x98, 0xcf, 0xeb, 0x6f, 0xf1, 0x52, 0xde, 0xff, 0x78, 0x3a, 0x5d, 0xc6, 0xed, 0xed, 0x32, 0x6e, 0x6e, 0x56, 0x8f, 0xdb, 0xdb, 0x32, 0x6e, 0x6e, 0xaa, 0xc7, 0xf5, 0x75, 0x19, 0xd3, 0x69, 0xdc, 0x3f, 0xfe, 0xf4, 0x4f, 0x5f, 0x7e, 0x1e, 0x10, 0x61, 0x81, 0x02, 0x18, 0x8c, 0x54, 0xe3, 0x69, 0x53, 0xf5, 0xfa, 0xb4, 0x3a, 0x7e, 0x5b, 0x05, 0xd4, 0x7c, 0x1e, 0x71, 0x72, 0xb2, 0xba, 0xc0, 0x7c, 0xb1, 0x58, 0x2d, 0x4e, 0x93, 0xc9, 0xea, 0x5d, 0x7c, 0x0f, 0xdf, 0xcd, 0xb7, 0xbe, 0x42, 0xb9, 0xf6, 0x89, 0x66, 0x2c, 0x50, 0x00, 0x24, 0x61, 0x93, 0x15, 0x2a, 0xe2, 0xe1, 0x35, 0x51, 0xf5, 0x6d, 0x0e, 0xe6, 0xf3, 0x2a, 0xa6, 0xea, 0x55, 0x6a, 0x3a, 0xad, 0x56, 0xaa, 0x7a, 0xa9, 0x5a, 0x5f, 0xab, 0xd6, 0x17, 0xa7, 0x9b, 0x9b, 0x88, 0x77, 0xef, 0xaa, 0xc7, 0x2f, 0x7f, 0xb9, 0xd9, 0xaf, 0x0f, 0x11, 0x02, 0x0a, 0x20, 0x1b, 0x43, 0x78, 0xf7, 0x5d, 0x93, 0x88, 0xaa, 0x03, 0xaa, 0x5e, 0xa0, 0xea, 0x80, 0x5a, 0x7f, 0xac, 0x87, 0xd4, 0xfa, 0xe7, 0x5c, 0x5f, 0xaf, 0xc2, 0xe9, 0xed, 0xdb, 0x88, 0x6f, 0xbf, 0xdd, 0xef, 0xeb, 0xa2, 0x7f, 0x04, 0x14, 0x40, 0x06, 0x86, 0x10, 0x4f, 0xb5, 0x4d, 0x23, 0x2a, 0xa2, 0x0a, 0xa8, 0xe9, 0xb4, 0x0a, 0xa2, 0x9b, 0x9b, 0xf7, 0x03, 0xea, 0xe6, 0xa6, 0xfa, 0xcf, 0xd6, 0x1f, 0x75, 0x34, 0xad, 0xc7, 0xd3, 0xa7, 0x9f, 0x6e, 0xfe, 0x6b, 0x42, 0x84, 0x6b, 0xa0, 0x00, 0x06, 0x21, 0xb7, 0xeb, 0x9f, 0xea, 0x88, 0x7a, 0xee, 0xf6, 0x06, 0x8f, 0xd5, 0xef, 0xd4, 0x9b, 0x4c, 0xde, 0x7f, 0xe7, 0x5d, 0xfd, 0x58, 0x3f, 0xfe, 0xfb, 0xeb, 0xbf, 0xbe, 0xda, 0xcb, 0x73, 0x67, 0x18, 0x04, 0x14, 0x40, 0xe2, 0x86, 0xb4, 0x3e, 0x3d, 0xf6, 0x8f, 0xff, 0x14, 0xf1, 0x27, 0xbf, 0xd8, 0xfc, 0xf3, 0xeb, 0x63, 0xbd, 0x5a, 0x7d, 0x91, 0x78, 0xfd, 0xa8, 0x7f, 0xee, 0x6f, 0xfe, 0xe6, 0xaa, 0xd5, 0xe7, 0xc9, 0xf0, 0x38, 0xc2, 0x03, 0x20, 0x49, 0x75, 0x38, 0xfe, 0xe3, 0x3f, 0x6d, 0xff, 0x35, 0xd6, 0x6f, 0x90, 0x59, 0x5f, 0x2b, 0x25, 0x9e, 0x68, 0x83, 0x05, 0x0a, 0x20, 0x61, 0x6d, 0xac, 0x4f, 0xb9, 0x1d, 0xdf, 0x45, 0xbc, 0xff, 0xba, 0xd7, 0x23, 0xaa, 0xc9, 0x22, 0x15, 0x51, 0xc5, 0xd3, 0xdf, 0xfd, 0xdd, 0xd5, 0xce, 0xcf, 0x09, 0xd6, 0x09, 0x28, 0x00, 0xb2, 0xd2, 0xe4, 0x22, 0x73, 0xd8, 0x17, 0x47, 0x78, 0x00, 0x89, 0x1a, 0xea, 0xb5, 0x4f, 0xcf, 0xbd, 0xee, 0x1c, 0xd7, 0x34, 0xfa, 0x49, 0x40, 0x01, 0xf4, 0x58, 0x6e, 0xc1, 0x21, 0x9e, 0xc8, 0x85, 0x80, 0x02, 0x48, 0xd0, 0x50, 0xd7, 0x27, 0xc8, 0x85, 0x80, 0x02, 0xe8, 0xa9, 0xdc, 0x16, 0x1b, 0xeb, 0x13, 0x39, 0x11, 0x50, 0x00, 0x89, 0x19, 0xe2, 0xfa, 0x24, 0x9e, 0xc8, 0x8d, 0x80, 0x02, 0x48, 0x48, 0x5b, 0xf1, 0x24, 0x3a, 0x60, 0xbf, 0x04, 0x14, 0x40, 0x22, 0x86, 0x1a, 0x4f, 0xd6, 0x27, 0x72, 0x24, 0xa0, 0x00, 0xe8, 0x8c, 0x78, 0x22, 0x57, 0x02, 0x0a, 0x20, 0x01, 0x43, 0x5d, 0x9f, 0x20, 0x57, 0x02, 0x0a, 0xa0, 0x63, 0x43, 0xbc, 0x68, 0x3c, 0xc2, 0xfa, 0x44, 0xde, 0x04, 0x14, 0x40, 0x87, 0xda, 0x8c, 0xa7, 0x9c, 0xa2, 0x43, 0x3c, 0x91, 0x3b, 0x01, 0x05, 0xd0, 0x91, 0xa1, 0x2e, 0x4f, 0x11, 0x22, 0x89, 0xfc, 0x09, 0x28, 0x80, 0xcc, 0x7d, 0x79, 0x75, 0x95, 0x65, 0x90, 0x3c, 0xf5, 0x9c, 0x73, 0x7c, 0x1d, 0x0c, 0x93, 0x80, 0x02, 0xe8, 0xc0, 0x90, 0xd7, 0xa7, 0x75, 0xeb, 0xc1, 0x24, 0x9e, 0xc8, 0xc9, 0xa4, 0xeb, 0x27, 0x00, 0x30, 0x34, 0x43, 0xbd, 0xee, 0xe9, 0x43, 0xfa, 0xf0, 0x1a, 0x18, 0x1e, 0x0b, 0x14, 0xc0, 0x01, 0x89, 0x27, 0xe8, 0x07, 0x01, 0x05, 0x70, 0x20, 0x8e, 0xed, 0xa0, 0x3f, 0x04, 0x14, 0xc0, 0x01, 0xb4, 0x1d, 0x4f, 0xd6, 0x27, 0xe8, 0x96, 0x80, 0x02, 0xd8, 0x33, 0xf1, 0x04, 0xfd, 0x23, 0xa0, 0x00, 0xf6, 0xc8, 0xb1, 0x1d, 0xf4, 0x93, 0x77, 0xe1, 0x01, 0xec, 0xc1, 0xbe, 0xc2, 0xc9, 0xfa, 0x04, 0x69, 0xb0, 0x40, 0x01, 0xb4, 0x4c, 0x3c, 0x41, 0xff, 0x59, 0xa0, 0x00, 0x5a, 0xb2, 0xcf, 0xe3, 0x3a, 0xf1, 0x04, 0x69, 0x11, 0x50, 0x00, 0x3b, 0xda, 0xf7, 0x75, 0x4e, 0xe2, 0x09, 0xd2, 0x23, 0xa0, 0x00, 0xb6, 0x74, 0x88, 0x0b, 0xc4, 0xc5, 0x13, 0xa4, 0x49, 0x40, 0x01, 0x34, 0xe4, 0x9d, 0x75, 0x80, 0x80, 0x02, 0xd8, 0xd0, 0xa1, 0xc3, 0xc9, 0xfa, 0x04, 0xe9, 0x12, 0x50, 0x00, 0x2f, 0xe8, 0x62, 0x71, 0x12, 0x4f, 0x90, 0x36, 0x01, 0x05, 0xf0, 0x01, 0x5d, 0x1d, 0xd5, 0x89, 0x27, 0x48, 0x9f, 0x80, 0x02, 0x78, 0x44, 0x38, 0x01, 0x2f, 0x11, 0x50, 0x00, 0x77, 0xba, 0xbc, 0x38, 0x5c, 0x3c, 0x41, 0x5e, 0x04, 0x14, 0x30, 0x78, 0x5d, 0xbf, 0xab, 0x4e, 0x3c, 0x41, 0x7e, 0x04, 0x14, 0x30, 0x48, 0x5d, 0x47, 0x53, 0x84, 0x70, 0x82, 0x9c, 0x09, 0x28, 0x60, 0x50, 0x52, 0x08, 0xa7, 0x08, 0xf1, 0x04, 0xb9, 0x13, 0x50, 0xc0, 0x20, 0xa4, 0x12, 0x4e, 0x11, 0xe2, 0x09, 0xfa, 0x40, 0x40, 0x01, 0xbd, 0x25, 0x9a, 0x80, 0x7d, 0x11, 0x50, 0x40, 0xef, 0xa4, 0x14, 0x4e, 0x11, 0xe2, 0x09, 0xfa, 0x48, 0x40, 0x01, 0xbd, 0x21, 0x9c, 0x80, 0x43, 0x11, 0x50, 0x40, 0xf6, 0x84, 0x13, 0x70, 0x68, 0x02, 0x0a, 0xc8, 0x52, 0x6a, 0xd1, 0x14, 0x21, 0x9c, 0x60, 0x48, 0x04, 0x14, 0x90, 0x15, 0xe1, 0x04, 0xa4, 0x40, 0x40, 0x01, 0x59, 0x10, 0x4e, 0x40, 0x4a, 0x04, 0x14, 0x90, 0xac, 0x14, 0xa3, 0x29, 0x42, 0x38, 0x01, 0x02, 0x0a, 0x48, 0x90, 0x70, 0x02, 0x52, 0x27, 0xa0, 0x80, 0x64, 0x08, 0x27, 0x20, 0x17, 0x02, 0x0a, 0xe8, 0x54, 0xaa, 0xd1, 0x14, 0x21, 0x9c, 0x80, 0x0f, 0x13, 0x50, 0x40, 0x27, 0x52, 0x0d, 0x27, 0xd1, 0x04, 0x6c, 0x42, 0x40, 0x01, 0x07, 0x25, 0x9c, 0x80, 0x3e, 0x10, 0x50, 0xc0, 0x41, 0x08, 0x27, 0xa0, 0x4f, 0x04, 0x14, 0xb0, 0x57, 0x29, 0x86, 0x93, 0x68, 0x02, 0x76, 0x25, 0xa0, 0x80, 0xbd, 0x10, 0x4e, 0x40, 0x9f, 0x09, 0x28, 0xa0, 0x55, 0xc2, 0x09, 0x18, 0x02, 0x01, 0x05, 0xb4, 0x42, 0x38, 0x01, 0x43, 0x22, 0xa0, 0x80, 0x9d, 0xa4, 0x16, 0x4e, 0xa2, 0x09, 0x38, 0x04, 0x01, 0x05, 0x6c, 0x45, 0x38, 0x01, 0x43, 0x26, 0xa0, 0x80, 0x46, 0x84, 0x13, 0x80, 0x80, 0x02, 0x36, 0x94, 0x52, 0x38, 0x89, 0x26, 0xa0, 0x6b, 0x02, 0x0a, 0x78, 0x96, 0x70, 0x02, 0x78, 0x9f, 0x80, 0x02, 0xde, 0x93, 0x52, 0x34, 0x45, 0x08, 0x27, 0x20, 0x3d, 0x02, 0x0a, 0xb8, 0x97, 0x52, 0x38, 0x89, 0x26, 0x20, 0x65, 0x02, 0x0a, 0x10, 0x4e, 0x00, 0x0d, 0x09, 0x28, 0x18, 0x30, 0xe1, 0x04, 0xb0, 0x1d, 0x01, 0x05, 0x03, 0x24, 0x9c, 0x00, 0x76, 0x23, 0xa0, 0x60, 0x40, 0x84, 0x13, 0x40, 0x3b, 0x04, 0x14, 0x0c, 0x80, 0x70, 0x02, 0x68, 0x97, 0x80, 0x82, 0x1e, 0x13, 0x4e, 0x00, 0xfb, 0x21, 0xa0, 0xa0, 0x87, 0x84, 0x13, 0xc0, 0x7e, 0x09, 0x28, 0xe8, 0x11, 0xe1, 0x04, 0x70, 0x18, 0x02, 0x0a, 0x7a, 0x40, 0x38, 0x01, 0x1c, 0x96, 0x80, 0x82, 0x8c, 0x09, 0x27, 0x80, 0x6e, 0x08, 0x28, 0xc8, 0x4c, 0x4a, 0xd1, 0x14, 0x21, 0x9c, 0x80, 0x61, 0x12, 0x50, 0x90, 0x91, 0x94, 0xe2, 0x49, 0x38, 0x01, 0x43, 0x26, 0xa0, 0x20, 0x03, 0xc2, 0x09, 0x20, 0x2d, 0x02, 0x0a, 0x12, 0x26, 0x9c, 0x00, 0xd2, 0x24, 0xa0, 0x20, 0x51, 0xa9, 0xc4, 0x93, 0x70, 0x02, 0x78, 0x9f, 0x80, 0x82, 0xc4, 0x08, 0x27, 0x80, 0xf4, 0x09, 0x28, 0x48, 0x84, 0x70, 0x02, 0xc8, 0x87, 0x80, 0x82, 0x04, 0xa4, 0x10, 0x4f, 0xc2, 0x09, 0x60, 0x73, 0x02, 0x0a, 0x3a, 0x24, 0x9c, 0x00, 0xf2, 0x24, 0xa0, 0xa0, 0x03, 0xc2, 0x09, 0x20, 0x6f, 0x02, 0x0a, 0x0e, 0x48, 0x38, 0x01, 0xf4, 0x83, 0x80, 0x82, 0x03, 0xe9, 0x3a, 0x9e, 0x84, 0x13, 0x40, 0x7b, 0x04, 0x14, 0xec, 0x99, 0x70, 0x02, 0xe8, 0x9f, 0xa2, 0x2c, 0xcb, 0xcd, 0x3f, 0xb9, 0x28, 0x36, 0xff, 0x64, 0x18, 0xb8, 0xae, 0xff, 0xb0, 0x14, 0x1d, 0xff, 0xfa, 0x00, 0x7d, 0x55, 0x96, 0x65, 0xd1, 0x7c, 0x81, 0xfa, 0xd9, 0x67, 0xed, 0x3f, 0x13, 0xe8, 0x99, 0xf2, 0x37, 0x9f, 0x75, 0xf6, 0x6b, 0x17, 0xfe, 0x8c, 0x02, 0xec, 0xcf, 0xdd, 0xff, 0xbe, 0x37, 0x5e, 0xa0, 0x3e, 0xfd, 0xef, 0x5d, 0xff, 0xff, 0x6a, 0x48, 0xd7, 0x67, 0x7f, 0xd6, 0xed, 0xee, 0xf3, 0x99, 0x3f, 0x9f, 0x00, 0x7b, 0xf5, 0xf9, 0x9f, 0x15, 0x5b, 0x2e, 0x50, 0xc0, 0x7b, 0x84, 0x13, 0xc0, 0xb0, 0x08, 0x28, 0xd8, 0x81, 0x70, 0x02, 0x18, 0x26, 0x01, 0x05, 0x5b, 0xea, 0x32, 0x9e, 0x84, 0x13, 0x40, 0xb7, 0x04, 0x14, 0x34, 0x64, 0x75, 0x02, 0x40, 0x40, 0xc1, 0x86, 0x84, 0x13, 0x00, 0x35, 0x01, 0x05, 0x1b, 0x70, 0x5c, 0x07, 0xc0, 0x3a, 0x01, 0x05, 0xcf, 0x10, 0x4e, 0x00, 0x3c, 0x45, 0x40, 0xc1, 0x13, 0x1c, 0xd7, 0x01, 0xf0, 0x1c, 0x01, 0x05, 0x8f, 0x58, 0x9d, 0x00, 0x78, 0x89, 0x80, 0x82, 0x3b, 0xc2, 0x09, 0x80, 0x4d, 0x09, 0x28, 0x06, 0x4f, 0x38, 0x01, 0xd0, 0x94, 0x80, 0x62, 0xb0, 0x5c, 0xe7, 0x04, 0xc0, 0xb6, 0x04, 0x14, 0x83, 0x64, 0x75, 0x02, 0x60, 0x17, 0x02, 0x8a, 0x41, 0x11, 0x4e, 0x00, 0xb4, 0x41, 0x40, 0x31, 0x08, 0xc2, 0x09, 0x80, 0x36, 0x8d, 0xba, 0x7e, 0x02, 0xb0, 0x6f, 0xe2, 0x09, 0x80, 0xb6, 0x59, 0xa0, 0xe8, 0x2d, 0xe1, 0x04, 0xc0, 0xbe, 0x08, 0x28, 0x7a, 0x47, 0x38, 0x01, 0xb0, 0x6f, 0x02, 0x8a, 0xde, 0x10, 0x4e, 0x00, 0x1c, 0x8a, 0x6b, 0xa0, 0xe8, 0x05, 0xf1, 0x04, 0xc0, 0x21, 0x59, 0xa0, 0xc8, 0x5e, 0x57, 0xf1, 0x24, 0x9c, 0x00, 0x86, 0x4b, 0x40, 0x91, 0x2d, 0xe1, 0x04, 0x40, 0x57, 0x04, 0x14, 0x59, 0xea, 0x22, 0x9e, 0x84, 0x13, 0x00, 0x35, 0x01, 0x45, 0x56, 0xac, 0x4e, 0x00, 0xa4, 0x40, 0x40, 0x91, 0x0d, 0xab, 0x13, 0x00, 0xa9, 0x10, 0x50, 0x24, 0x4f, 0x38, 0x01, 0x90, 0x1a, 0x01, 0x45, 0xd2, 0x0e, 0x1d, 0x4f, 0xc2, 0x09, 0x80, 0x4d, 0x08, 0x28, 0x92, 0x64, 0x75, 0x02, 0x20, 0x65, 0x02, 0x8a, 0xe4, 0x58, 0x9d, 0x00, 0x48, 0x9d, 0x80, 0x22, 0x29, 0x87, 0x8c, 0x27, 0xe1, 0x04, 0xc0, 0xb6, 0x04, 0x14, 0x49, 0x10, 0x4e, 0x00, 0xe4, 0xc4, 0xf7, 0xc2, 0xa3, 0x73, 0xe2, 0x09, 0x80, 0xdc, 0x58, 0xa0, 0xe8, 0x8c, 0x6b, 0x9d, 0x00, 0xc8, 0x95, 0x05, 0x8a, 0x4e, 0x88, 0x27, 0x00, 0x72, 0x66, 0x81, 0xe2, 0xa0, 0x84, 0x13, 0x00, 0x7d, 0x60, 0x81, 0xe2, 0x60, 0xc4, 0x13, 0x00, 0x7d, 0x61, 0x81, 0x62, 0xef, 0x84, 0x13, 0x00, 0x7d, 0x63, 0x81, 0x62, 0xaf, 0xc4, 0x13, 0x00, 0x7d, 0x64, 0x81, 0x62, 0x2f, 0x84, 0x13, 0x00, 0x7d, 0x66, 0x81, 0xa2, 0x75, 0xe2, 0x09, 0x80, 0xbe, 0xb3, 0x40, 0xd1, 0x2a, 0x37, 0xc5, 0x04, 0x60, 0x08, 0x2c, 0x50, 0xb4, 0x46, 0x3c, 0x01, 0x30, 0x14, 0x02, 0x8a, 0x56, 0x88, 0x27, 0x00, 0x86, 0xc4, 0x11, 0x1e, 0x3b, 0x3b, 0x54, 0x3c, 0x09, 0x27, 0x00, 0x52, 0x21, 0xa0, 0xd8, 0x9a, 0xd5, 0x09, 0x80, 0xa1, 0x12, 0x50, 0x6c, 0xc5, 0xea, 0x04, 0xc0, 0x90, 0xb9, 0x06, 0x8a, 0xc6, 0xc4, 0x13, 0x00, 0x43, 0x67, 0x81, 0xa2, 0x91, 0x43, 0xc4, 0x93, 0x70, 0x02, 0x20, 0x75, 0x16, 0x28, 0x36, 0x26, 0x9e, 0x00, 0xa0, 0x62, 0x81, 0xe2, 0x45, 0xc2, 0x09, 0x00, 0x1e, 0xb2, 0x40, 0xf1, 0x2c, 0xf1, 0x04, 0x00, 0xef, 0xb3, 0x40, 0xf1, 0x41, 0xfb, 0x8e, 0x27, 0xe1, 0x04, 0x40, 0xae, 0x2c, 0x50, 0x3c, 0x49, 0x3c, 0x01, 0xc0, 0x87, 0x59, 0xa0, 0x78, 0xc0, 0x91, 0x1d, 0x00, 0xbc, 0xcc, 0x02, 0xc5, 0x3d, 0xf1, 0x04, 0x00, 0x9b, 0x11, 0x50, 0x44, 0x84, 0x78, 0x02, 0x80, 0x26, 0x1c, 0xe1, 0xe1, 0x7a, 0x27, 0x00, 0x68, 0xc8, 0x02, 0x35, 0x70, 0xe2, 0x09, 0x00, 0x9a, 0xb3, 0x40, 0x0d, 0x94, 0x23, 0x3b, 0x00, 0xd8, 0x9e, 0x05, 0x6a, 0x80, 0xc4, 0x13, 0x00, 0xec, 0x46, 0x40, 0x0d, 0x8c, 0x78, 0x02, 0x80, 0xdd, 0x39, 0xc2, 0x1b, 0x10, 0xd7, 0x3b, 0x01, 0x40, 0x3b, 0x04, 0xd4, 0x00, 0x58, 0x9d, 0x00, 0xa0, 0x5d, 0x8e, 0xf0, 0x7a, 0x4e, 0x3c, 0x01, 0x40, 0xfb, 0x04, 0x54, 0x8f, 0x89, 0x27, 0x00, 0xd8, 0x0f, 0x47, 0x78, 0x3d, 0xe5, 0x7a, 0x27, 0x00, 0xd8, 0x1f, 0x0b, 0x54, 0x0f, 0x89, 0x27, 0x00, 0xd8, 0x2f, 0x01, 0xd5, 0x33, 0xe2, 0x09, 0x00, 0xf6, 0x4f, 0x40, 0xf5, 0x88, 0x78, 0x02, 0x80, 0xc3, 0x10, 0x50, 0x3d, 0x21, 0x9e, 0x00, 0xe0, 0x70, 0x5c, 0x44, 0xde, 0x03, 0xfb, 0x8c, 0x27, 0xe1, 0x04, 0x00, 0xef, 0xb3, 0x40, 0x65, 0x4e, 0x3c, 0x01, 0xc0, 0xe1, 0x09, 0xa8, 0x8c, 0x89, 0x27, 0x00, 0xe8, 0x86, 0x80, 0xca, 0x94, 0x78, 0x02, 0x80, 0xee, 0xb8, 0x06, 0x2a, 0x43, 0xfb, 0x88, 0x27, 0xd1, 0x04, 0x00, 0x9b, 0xb3, 0x40, 0x65, 0x46, 0x3c, 0x01, 0x40, 0xf7, 0x04, 0x54, 0x46, 0xc4, 0x13, 0x00, 0xa4, 0x41, 0x40, 0x65, 0x42, 0x3c, 0x01, 0x40, 0x3a, 0x04, 0x54, 0x06, 0xc4, 0x13, 0x00, 0xa4, 0x45, 0x40, 0x25, 0x4e, 0x3c, 0x01, 0x40, 0x7a, 0x04, 0x54, 0xc2, 0xc4, 0x13, 0x00, 0xa4, 0x49, 0x40, 0x25, 0x4a, 0x3c, 0x01, 0x40, 0xba, 0x04, 0x54, 0x82, 0xc4, 0x13, 0x00, 0xa4, 0x4d, 0x40, 0x25, 0x46, 0x3c, 0x01, 0x40, 0xfa, 0x04, 0x54, 0x42, 0xc4, 0x13, 0x00, 0xe4, 0x41, 0x40, 0x25, 0x42, 0x3c, 0x01, 0x40, 0x3e, 0x04, 0x54, 0x02, 0xc4, 0x13, 0x00, 0xe4, 0x45, 0x40, 0x75, 0x4c, 0x3c, 0x01, 0x40, 0x7e, 0x26, 0x5d, 0x3f, 0x81, 0xa1, 0xda, 0x47, 0x38, 0x45, 0x88, 0x27, 0x00, 0x38, 0x04, 0x0b, 0x54, 0x07, 0xc4, 0x13, 0x00, 0xe4, 0x4d, 0x40, 0xf5, 0x84, 0x78, 0x02, 0x80, 0xc3, 0x11, 0x50, 0x07, 0xe6, 0x9a, 0x27, 0x00, 0xc8, 0x9f, 0x80, 0x3a, 0x20, 0xf1, 0x04, 0x00, 0xfd, 0x20, 0xa0, 0x0e, 0x44, 0x3c, 0x01, 0x40, 0x7f, 0x08, 0xa8, 0x03, 0x10, 0x4f, 0x00, 0xd0, 0x2f, 0x02, 0x2a, 0x43, 0xe2, 0x09, 0x00, 0xba, 0x25, 0xa0, 0xf6, 0xac, 0xed, 0xf5, 0x49, 0x3c, 0x01, 0x40, 0xf7, 0x04, 0xd4, 0x1e, 0x89, 0x27, 0x00, 0xe8, 0x27, 0x01, 0xb5, 0x27, 0xe2, 0x09, 0x00, 0xfa, 0x4b, 0x40, 0xed, 0x81, 0x78, 0x02, 0x80, 0x7e, 0x13, 0x50, 0x2d, 0xdb, 0xd7, 0xb7, 0x69, 0x01, 0x00, 0xd2, 0x21, 0xa0, 0x12, 0x67, 0x7d, 0x02, 0x80, 0xf4, 0x08, 0xa8, 0x16, 0x39, 0xba, 0x03, 0x80, 0x61, 0x10, 0x50, 0x2d, 0x11, 0x4f, 0x00, 0x30, 0x1c, 0x02, 0xaa, 0x05, 0xe2, 0x09, 0x00, 0x86, 0x45, 0x40, 0xed, 0x48, 0x3c, 0x01, 0xc0, 0xf0, 0x08, 0xa8, 0x1d, 0x88, 0x27, 0x00, 0x18, 0x26, 0x01, 0x05, 0x00, 0xd0, 0x90, 0x80, 0xda, 0x92, 0xf5, 0x09, 0x00, 0x86, 0x4b, 0x40, 0x6d, 0x41, 0x3c, 0x01, 0xc0, 0xb0, 0x09, 0xa8, 0x86, 0xc4, 0x13, 0x00, 0x20, 0xa0, 0x1a, 0x10, 0x4f, 0x00, 0x40, 0x84, 0x80, 0xda, 0x98, 0x78, 0x02, 0x00, 0x6a, 0x02, 0xaa, 0x03, 0xe2, 0x09, 0x00, 0xf2, 0x26, 0xa0, 0x36, 0xd0, 0xf6, 0xfa, 0x04, 0x00, 0xe4, 0x4d, 0x40, 0xbd, 0xc0, 0xd1, 0x1d, 0x00, 0xf0, 0x98, 0x80, 0x7a, 0x86, 0x78, 0x02, 0x00, 0x9e, 0x22, 0xa0, 0x3e, 0x40, 0x3c, 0x01, 0x00, 0x1f, 0x22, 0xa0, 0x9e, 0x20, 0x9e, 0x00, 0x80, 0xe7, 0x08, 0xa8, 0x47, 0xc4, 0x13, 0x00, 0xf0, 0x12, 0x01, 0xb5, 0x47, 0xe2, 0x09, 0x00, 0xfa, 0x49, 0x40, 0xad, 0x71, 0xbb, 0x02, 0x00, 0x60, 0x13, 0x02, 0x6a, 0x4f, 0xac, 0x4f, 0x00, 0xd0, 0x5f, 0x02, 0xea, 0x4e, 0x9b, 0xeb, 0x93, 0x78, 0x02, 0x80, 0x7e, 0x13, 0x50, 0x21, 0x9e, 0x00, 0x80, 0x66, 0x04, 0x54, 0x8b, 0xc4, 0x13, 0x00, 0x0c, 0xc3, 0xe0, 0x03, 0xaa, 0xad, 0xf5, 0x49, 0x3c, 0x01, 0xc0, 0x70, 0x0c, 0x3a, 0xa0, 0xc4, 0x13, 0x00, 0xb0, 0x8d, 0x41, 0x07, 0x14, 0x00, 0xc0, 0x36, 0x06, 0x1b, 0x50, 0xd6, 0x27, 0x00, 0x60, 0x5b, 0x83, 0x0c, 0x28, 0x37, 0xcc, 0x04, 0x00, 0x76, 0x31, 0xc8, 0x80, 0x6a, 0x8b, 0xf5, 0x09, 0x00, 0x86, 0x69, 0x70, 0x01, 0xe5, 0xe8, 0x0e, 0x00, 0xd8, 0xd5, 0xa0, 0x02, 0xca, 0xd1, 0x1d, 0x00, 0xd0, 0x86, 0x41, 0x05, 0x54, 0x5b, 0xac, 0x4f, 0x00, 0x30, 0x6c, 0x45, 0x59, 0x6e, 0x1e, 0x03, 0x45, 0x51, 0x64, 0x5b, 0x0e, 0x6d, 0x3d, 0x71, 0x1b, 0x16, 0x00, 0x0c, 0x5b, 0x59, 0x96, 0xc5, 0x20, 0x16, 0xa8, 0x6c, 0xab, 0x0f, 0x00, 0x48, 0xd2, 0xa4, 0xe9, 0xbf, 0xf0, 0xe9, 0x3f, 0x7f, 0xba, 0x8f, 0xe7, 0xb1, 0x5f, 0x3f, 0xff, 0xbc, 0x95, 0x2f, 0xf3, 0xd9, 0x3f, 0x7f, 0x1a, 0x19, 0xbe, 0x7a, 0x00, 0xa0, 0x25, 0x9f, 0xdf, 0x35, 0x45, 0xef, 0x17, 0xa8, 0xcf, 0x5a, 0x8c, 0x27, 0x00, 0x80, 0x88, 0x9e, 0x07, 0x54, 0x5b, 0xf1, 0x04, 0x00, 0xb0, 0xae, 0xd7, 0x01, 0xd5, 0x16, 0xeb, 0x13, 0x00, 0xb0, 0xae, 0xb7, 0x01, 0x65, 0x7d, 0x02, 0x00, 0xf6, 0xa5, 0x97, 0x01, 0xd5, 0x66, 0x3c, 0x59, 0x9f, 0x00, 0x80, 0xc7, 0x7a, 0x19, 0x50, 0x6d, 0x11, 0x4f, 0x00, 0xc0, 0x53, 0x7a, 0x17, 0x50, 0x8e, 0xee, 0x00, 0x80, 0x7d, 0xeb, 0x55, 0x40, 0x39, 0xba, 0x03, 0x00, 0x0e, 0xa1, 0x57, 0x01, 0xd5, 0x16, 0xf1, 0x04, 0x00, 0x3c, 0xa7, 0x37, 0x01, 0xe5, 0xe8, 0x0e, 0x00, 0x38, 0x94, 0x5e, 0x04, 0x94, 0xa3, 0x3b, 0x00, 0xe0, 0x90, 0x7a, 0x11, 0x50, 0x6d, 0x11, 0x4f, 0x00, 0xc0, 0x26, 0xb2, 0x0f, 0x28, 0x47, 0x77, 0x00, 0xc0, 0xa1, 0x65, 0x1d, 0x50, 0x8e, 0xee, 0x00, 0x80, 0x2e, 0x64, 0x1b, 0x50, 0x96, 0x27, 0x00, 0xa0, 0x2b, 0xd9, 0x06, 0x54, 0x9b, 0xac, 0x4f, 0x00, 0x40, 0x13, 0x83, 0x0f, 0x28, 0xf1, 0x04, 0x00, 0x34, 0x95, 0x65, 0x40, 0x39, 0xbe, 0x03, 0x00, 0xba, 0x94, 0x65, 0x40, 0xb5, 0xc5, 0xfa, 0x04, 0x00, 0x6c, 0x23, 0xbb, 0x80, 0x6a, 0x6b, 0x7d, 0x12, 0x4f, 0x00, 0xc0, 0xb6, 0xb2, 0x0b, 0x28, 0x00, 0x80, 0xae, 0x65, 0x15, 0x50, 0xd6, 0x27, 0x00, 0x20, 0x05, 0x59, 0x05, 0x54, 0x1b, 0xc4, 0x13, 0x00, 0xb0, 0xab, 0x6c, 0x02, 0xca, 0x3b, 0xef, 0x00, 0x80, 0x54, 0x64, 0x13, 0x50, 0x6d, 0xb0, 0x3e, 0x01, 0x00, 0x6d, 0xc8, 0x22, 0xa0, 0xac, 0x4f, 0x00, 0x40, 0x4a, 0xb2, 0x08, 0xa8, 0x36, 0x58, 0x9f, 0x00, 0x80, 0xb6, 0x24, 0x1f, 0x50, 0xd6, 0x27, 0x00, 0x20, 0x35, 0xc9, 0x07, 0x54, 0x1b, 0xac, 0x4f, 0x00, 0x40, 0x9b, 0x92, 0x0e, 0x28, 0xeb, 0x13, 0x00, 0x90, 0xa2, 0xa4, 0x03, 0xaa, 0x0d, 0xd6, 0x27, 0x00, 0xa0, 0x6d, 0xc9, 0x06, 0x94, 0xf5, 0x09, 0x00, 0x48, 0x55, 0xb2, 0x01, 0xd5, 0x06, 0xeb, 0x13, 0x00, 0xb0, 0x0f, 0xbd, 0x0e, 0x28, 0x00, 0x80, 0x7d, 0x48, 0x32, 0xa0, 0xda, 0x38, 0xbe, 0xb3, 0x3e, 0x01, 0x00, 0xfb, 0x92, 0x64, 0x40, 0x01, 0x00, 0xa4, 0x2c, 0xb9, 0x80, 0xb2, 0x3e, 0x01, 0x00, 0xa9, 0x4b, 0x2e, 0xa0, 0x00, 0x00, 0x52, 0x97, 0x54, 0x40, 0x59, 0x9f, 0x00, 0x80, 0x1c, 0x24, 0x15, 0x50, 0x00, 0x00, 0x39, 0x48, 0x26, 0xa0, 0xac, 0x4f, 0x00, 0x40, 0x2e, 0x92, 0x09, 0x28, 0x00, 0x80, 0x5c, 0x24, 0x11, 0x50, 0xd6, 0x27, 0x00, 0x20, 0x27, 0x49, 0x04, 0x14, 0x00, 0x40, 0x4e, 0x3a, 0x0f, 0x28, 0xeb, 0x13, 0x00, 0x90, 0x9b, 0xce, 0x03, 0x0a, 0x00, 0x20, 0x37, 0x9d, 0x06, 0x94, 0xf5, 0x09, 0x00, 0xc8, 0x91, 0x05, 0x0a, 0x00, 0xa0, 0xa1, 0xce, 0x02, 0xca, 0xfa, 0x04, 0x00, 0xe4, 0xca, 0x02, 0x05, 0x00, 0xd0, 0x50, 0x27, 0x01, 0x65, 0x7d, 0x02, 0x00, 0x72, 0x76, 0xf0, 0x80, 0x6a, 0x23, 0x9e, 0x00, 0x00, 0xba, 0x94, 0xe5, 0x11, 0x9e, 0xf5, 0x09, 0x00, 0xe8, 0x52, 0x96, 0x01, 0x05, 0x00, 0xd0, 0xa5, 0xec, 0x02, 0xca, 0xfa, 0x04, 0x00, 0x74, 0xed, 0xa0, 0x01, 0xe5, 0xfa, 0x27, 0x00, 0xa0, 0x0f, 0xb2, 0x5a, 0xa0, 0xac, 0x4f, 0x00, 0x40, 0x0a, 0xb2, 0x0a, 0x28, 0x00, 0x80, 0x14, 0x1c, 0x2c, 0xa0, 0x1c, 0xdf, 0x01, 0x00, 0x7d, 0x91, 0xcd, 0x02, 0xe5, 0xf8, 0x0e, 0x00, 0x48, 0x45, 0x36, 0x01, 0x05, 0x00, 0x90, 0x8a, 0x83, 0x04, 0x94, 0xe3, 0x3b, 0x00, 0xa0, 0x4f, 0xb2, 0x58, 0xa0, 0x1c, 0xdf, 0x01, 0x00, 0x29, 0xc9, 0x22, 0xa0, 0x00, 0x00, 0x52, 0xb2, 0xf7, 0x80, 0x72, 0x7c, 0x07, 0x00, 0xf4, 0x4d, 0xf2, 0x0b, 0x94, 0xe3, 0x3b, 0x00, 0x20, 0x35, 0xc9, 0x07, 0x14, 0x00, 0x40, 0x6a, 0x04, 0x14, 0x00, 0x40, 0x43, 0x7b, 0x0d, 0xa8, 0x5d, 0xaf, 0x7f, 0x72, 0x7c, 0x07, 0x00, 0xa4, 0xc8, 0x02, 0x05, 0x00, 0xd0, 0x90, 0x80, 0x02, 0x00, 0x68, 0x68, 0x6f, 0x01, 0xe5, 0xf8, 0x0e, 0x00, 0xe8, 0x2b, 0x0b, 0x14, 0x00, 0x40, 0x43, 0x02, 0x0a, 0x00, 0xa0, 0xa1, 0xbd, 0x04, 0x94, 0xe3, 0x3b, 0x00, 0xa0, 0xcf, 0x2c, 0x50, 0x00, 0x00, 0x0d, 0x09, 0x28, 0x00, 0x80, 0x86, 0x5a, 0x0f, 0x28, 0xc7, 0x77, 0x00, 0x40, 0xdf, 0x59, 0xa0, 0x00, 0x00, 0x1a, 0x12, 0x50, 0x00, 0x00, 0x0d, 0x25, 0x15, 0x50, 0x8e, 0xef, 0x00, 0x80, 0x1c, 0xb4, 0x1a, 0x50, 0xbb, 0x5e, 0xff, 0x04, 0x00, 0x90, 0x83, 0xa4, 0x16, 0x28, 0x00, 0x80, 0x1c, 0x24, 0x13, 0x50, 0x8e, 0xef, 0x00, 0x80, 0x5c, 0xb4, 0x16, 0x50, 0x8e, 0xef, 0x00, 0x80, 0xa1, 0x48, 0x66, 0x81, 0x02, 0x00, 0xc8, 0x45, 0x12, 0x01, 0xe5, 0xf8, 0x0e, 0x00, 0xc8, 0x49, 0x2b, 0x01, 0xe5, 0xf8, 0x0e, 0x00, 0x18, 0x92, 0x24, 0x16, 0x28, 0x00, 0x80, 0x9c, 0x74, 0x1e, 0x50, 0x8e, 0xef, 0x00, 0x80, 0xdc, 0xec, 0x1c, 0x50, 0x8e, 0xef, 0x00, 0x80, 0xa1, 0xd9, 0x29, 0xa0, 0xc4, 0x13, 0x00, 0x30, 0x44, 0x9d, 0x1e, 0xe1, 0x39, 0xbe, 0x03, 0x00, 0x72, 0xd4, 0xf9, 0x35, 0x50, 0x00, 0x00, 0xb9, 0x11, 0x50, 0x00, 0x00, 0x0d, 0x75, 0x16, 0x50, 0x8e, 0xef, 0x00, 0x80, 0x5c, 0x59, 0xa0, 0x00, 0x00, 0x1a, 0x12, 0x50, 0x00, 0x00, 0x0d, 0x6d, 0x1d, 0x50, 0x6e, 0x61, 0x00, 0x00, 0x0c, 0x95, 0x05, 0x0a, 0x00, 0xa0, 0x21, 0x01, 0x05, 0x00, 0xd0, 0x50, 0x27, 0x01, 0xe5, 0x1d, 0x78, 0x00, 0x40, 0xce, 0x2c, 0x50, 0x00, 0x00, 0x0d, 0x09, 0x28, 0x00, 0x80, 0x86, 0xb6, 0x0a, 0x28, 0xef, 0xc0, 0x03, 0x00, 0x86, 0xcc, 0x02, 0x05, 0x00, 0xd0, 0x90, 0x80, 0x02, 0x00, 0x68, 0xe8, 0xe0, 0x01, 0xe5, 0x1d, 0x78, 0x00, 0x40, 0xee, 0x2c, 0x50, 0x00, 0x00, 0x0d, 0x09, 0x28, 0x00, 0x80, 0x86, 0x1a, 0x07, 0x94, 0x77, 0xe0, 0x01, 0x00, 0x43, 0x67, 0x81, 0x02, 0x00, 0x68, 0x48, 0x40, 0x01, 0x00, 0x34, 0x74, 0xd0, 0x80, 0xf2, 0x0e, 0x3c, 0x00, 0xa0, 0x0f, 0x2c, 0x50, 0x00, 0x00, 0x0d, 0x09, 0x28, 0x00, 0x80, 0x86, 0x1a, 0x05, 0x54, 0xb9, 0xaf, 0x67, 0x01, 0x00, 0x90, 0x11, 0x0b, 0x14, 0x00, 0x40, 0x43, 0x02, 0x0a, 0x00, 0xa0, 0xa1, 0x83, 0x05, 0x94, 0x77, 0xe0, 0x01, 0x00, 0x7d, 0x61, 0x81, 0x02, 0x00, 0x68, 0x68, 0xd2, 0xf5, 0x13, 0x00, 0x00, 0x78, 0xca, 0xe7, 0x09, 0x7f, 0xfb, 0xb8, 0xcd, 0x03, 0xaa, 0x28, 0xbc, 0x09, 0x0f, 0x00, 0x32, 0x92, 0x72, 0x80, 0x6c, 0xa2, 0x2c, 0xcb, 0xa2, 0xeb, 0xe7, 0xf0, 0x21, 0x16, 0x28, 0x00, 0x48, 0x44, 0xdb, 0xc1, 0x93, 0x72, 0x80, 0xe4, 0x4e, 0x40, 0x01, 0xc0, 0x96, 0x04, 0xcf, 0x70, 0x1d, 0x24, 0xa0, 0xbc, 0x03, 0x0f, 0x80, 0x54, 0xed, 0x12, 0x41, 0x82, 0x67, 0xb8, 0x2c, 0x50, 0x00, 0xf4, 0x4a, 0xd3, 0x20, 0x12, 0x41, 0x6c, 0x43, 0x40, 0x01, 0x90, 0x34, 0x41, 0x44, 0x8a, 0x36, 0x0b, 0x28, 0xef, 0xc0, 0x03, 0xa0, 0x25, 0x82, 0x88, 0x3e, 0xb0, 0x40, 0x01, 0xd0, 0x8a, 0x4d, 0xc3, 0x48, 0x10, 0xd1, 0x07, 0x02, 0x0a, 0x80, 0x8d, 0xbc, 0x14, 0x48, 0xc2, 0x88, 0x21, 0xd9, 0x7b, 0x40, 0x79, 0x07, 0x1e, 0x40, 0x1e, 0x04, 0x12, 0x6c, 0xce, 0x02, 0x05, 0x30, 0x10, 0x02, 0x09, 0xda, 0x23, 0xa0, 0x00, 0x7a, 0x42, 0x20, 0xc1, 0xe1, 0xbc, 0x1c, 0x50, 0xde, 0x81, 0x07, 0xd0, 0xb9, 0x4d, 0x2e, 0xd0, 0x16, 0x48, 0x70, 0x38, 0x2f, 0x07, 0xd4, 0xda, 0x1f, 0xc8, 0xa2, 0x28, 0xca, 0x4f, 0xd7, 0xae, 0x69, 0xfa, 0x2c, 0xf3, 0x6f, 0x52, 0x08, 0x90, 0x0a, 0xeb, 0x11, 0xe4, 0x65, 0xa7, 0x23, 0xbc, 0xc7, 0x17, 0x88, 0x0b, 0x2a, 0x80, 0xa7, 0x09, 0x24, 0xe8, 0x97, 0x56, 0xaf, 0x81, 0xf2, 0x8e, 0x3b, 0x60, 0x88, 0x1c, 0xaf, 0xc1, 0xf0, 0xb8, 0x88, 0x1c, 0xe0, 0x05, 0xd6, 0x23, 0xe0, 0x31, 0x01, 0x05, 0x0c, 0x9a, 0xf5, 0x08, 0xd8, 0x86, 0x80, 0x02, 0x7a, 0xcd, 0x7a, 0x04, 0xec, 0x43, 0x51, 0x96, 0x9b, 0xdf, 0xa5, 0xa0, 0x78, 0xe1, 0x96, 0x06, 0x9f, 0xba, 0x06, 0x0a, 0x38, 0x30, 0x81, 0x04, 0x74, 0xa1, 0x51, 0x40, 0xbd, 0xf8, 0xc5, 0x76, 0xb8, 0x67, 0x94, 0xf8, 0x02, 0x1e, 0x73, 0xbc, 0x06, 0xa4, 0xaa, 0xd5, 0x80, 0xda, 0x85, 0xf8, 0x82, 0xe1, 0xb1, 0x1e, 0x01, 0xb9, 0x4a, 0x26, 0xa0, 0x76, 0x21, 0xbe, 0x20, 0x1d, 0x9b, 0xac, 0x46, 0x35, 0x81, 0x04, 0xe4, 0xaa, 0x17, 0x01, 0xb5, 0x0b, 0xf1, 0x05, 0x1f, 0xd6, 0x24, 0x86, 0x6a, 0xa2, 0x08, 0x18, 0x82, 0xc1, 0x07, 0xd4, 0x2e, 0xc4, 0x17, 0xb9, 0xd8, 0x26, 0x84, 0x22, 0xc4, 0x10, 0xc0, 0x87, 0x08, 0xa8, 0x8e, 0x88, 0x2f, 0xb6, 0x65, 0x15, 0x02, 0xe8, 0x9e, 0x80, 0xca, 0x90, 0xf8, 0xca, 0xd3, 0xb6, 0x2b, 0xd0, 0x63, 0x62, 0x08, 0xa0, 0x7b, 0x02, 0x6a, 0x60, 0xc4, 0xd7, 0xf3, 0xda, 0x8a, 0x9c, 0xa7, 0x08, 0x1f, 0x80, 0xfe, 0x10, 0x50, 0x6c, 0x2c, 0x95, 0xf8, 0x12, 0x39, 0x00, 0x74, 0x4d, 0x40, 0x71, 0x10, 0xbb, 0xc4, 0xd7, 0x63, 0x22, 0x07, 0x80, 0xae, 0x09, 0x28, 0x00, 0x80, 0x86, 0xfe, 0x3f, 0x19, 0xa9, 0xf2, 0xfe, 0xf9, 0x14, 0xa9, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82; sub NEW { shift->SUPER::NEW(@_[0..3]); $image0 = Qt::Pixmap(); $image0->loadFromData($image0_data, length ($image0_data), "PNG"); if ( name() eq "unnamed" ) { setName("TrimSPGUI" ); } setSizePolicy(Qt::SizePolicy(5, 5, 1, 1, this->sizePolicy()->hasHeightForWidth()) ); setMinimumSize(Qt::Size(550, 500) ); setIcon($image0 ); setMouseTracking(1 ); setAcceptDrops(1 ); setSizeGripEnabled(1 ); setModal(1 ); Progress = Qt::ProgressBar(this, "Progress"); Progress->setGeometry( Qt::Rect(0, 525, 715, 20) ); Progress->setFrameShape( &Qt::ProgressBar::WinPanel() ); tabs = Qt::TabWidget(this, "tabs"); tabs->setGeometry( Qt::Rect(0, 0, 715, 525) ); LayersTab = Qt::Widget(tabs, "LayersTab"); groupBox1 = Qt::GroupBox(LayersTab, "groupBox1"); groupBox1->setGeometry( Qt::Rect(5, 0, 445, 485) ); groupBox1->setFrameShape( &Qt::GroupBox::GroupBoxPanel() ); groupBox1->setFrameShadow( &Qt::GroupBox::Sunken() ); my $LayoutWidget = Qt::Widget(groupBox1, '$LayoutWidget'); $LayoutWidget->setGeometry( Qt::Rect(5, 20, 435, 460) ); my $layout27 = Qt::VBoxLayout($LayoutWidget, 11, 3, '$layout27'); my $layout19 = Qt::HBoxLayout(undef, 0, 6, '$layout19'); textLabel1_4 = Qt::Label($LayoutWidget, "textLabel1_4"); $layout19->addWidget(textLabel1_4); NL = Qt::SpinBox($LayoutWidget, "NL"); NL->setMaxValue( int(7) ); NL->setMinValue( int(1) ); $layout19->addWidget(NL); my $spacer = Qt::SpacerItem(251, 20, &Qt::SizePolicy::Expanding, &Qt::SizePolicy::Minimum); $layout19->addItem($spacer); $layout27->addLayout($layout19); my $layout26 = Qt::HBoxLayout(undef, 0, 6, '$layout26'); textLabel2_4 = Qt::Label($LayoutWidget, "textLabel2_4"); textLabel2_4->setSizePolicy( Qt::SizePolicy(0, 1, 0, 0, textLabel2_4->sizePolicy()->hasHeightForWidth()) ); $layout26->addWidget(textLabel2_4); my $spacer_2 = Qt::SpacerItem(101, 20, &Qt::SizePolicy::Fixed, &Qt::SizePolicy::Minimum); $layout26->addItem($spacer_2); textLabel3 = Qt::Label($LayoutWidget, "textLabel3"); textLabel3->setSizePolicy( Qt::SizePolicy(1, 5, 0, 0, textLabel3->sizePolicy()->hasHeightForWidth()) ); $layout26->addWidget(textLabel3); textLabel4 = Qt::Label($LayoutWidget, "textLabel4"); $layout26->addWidget(textLabel4); $layout27->addLayout($layout26); BoxL1 = Qt::GroupBox($LayoutWidget, "BoxL1"); BoxL1->setMargin( int(0) ); L1Comp = Qt::LineEdit(BoxL1, "L1Comp"); L1Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L1rho = Qt::LineEdit(BoxL1, "L1rho"); L1rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L1d = Qt::LineEdit(BoxL1, "L1d"); L1d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L1d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L1d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL1); BoxL2 = Qt::GroupBox($LayoutWidget, "BoxL2"); BoxL2->setEnabled( 0 ); L2Comp = Qt::LineEdit(BoxL2, "L2Comp"); L2Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L2rho = Qt::LineEdit(BoxL2, "L2rho"); L2rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L2d = Qt::LineEdit(BoxL2, "L2d"); L2d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L2d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L2d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL2); BoxL3 = Qt::GroupBox($LayoutWidget, "BoxL3"); BoxL3->setEnabled( 0 ); L3Comp = Qt::LineEdit(BoxL3, "L3Comp"); L3Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L3rho = Qt::LineEdit(BoxL3, "L3rho"); L3rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L3d = Qt::LineEdit(BoxL3, "L3d"); L3d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L3d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L3d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL3); BoxL4 = Qt::GroupBox($LayoutWidget, "BoxL4"); BoxL4->setEnabled( 0 ); L4Comp = Qt::LineEdit(BoxL4, "L4Comp"); L4Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L4rho = Qt::LineEdit(BoxL4, "L4rho"); L4rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L4d = Qt::LineEdit(BoxL4, "L4d"); L4d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L4d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L4d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL4); BoxL5 = Qt::GroupBox($LayoutWidget, "BoxL5"); BoxL5->setEnabled( 0 ); L5Comp = Qt::LineEdit(BoxL5, "L5Comp"); L5Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L5rho = Qt::LineEdit(BoxL5, "L5rho"); L5rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L5d = Qt::LineEdit(BoxL5, "L5d"); L5d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L5d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L5d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL5); BoxL6 = Qt::GroupBox($LayoutWidget, "BoxL6"); BoxL6->setEnabled( 0 ); L6Comp = Qt::LineEdit(BoxL6, "L6Comp"); L6Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L6rho = Qt::LineEdit(BoxL6, "L6rho"); L6rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L6d = Qt::LineEdit(BoxL6, "L6d"); L6d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L6d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L6d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL6); BoxL7 = Qt::GroupBox($LayoutWidget, "BoxL7"); BoxL7->setEnabled( 0 ); L7Comp = Qt::LineEdit(BoxL7, "L7Comp"); L7Comp->setGeometry( Qt::Rect(10, 20, 180, 25) ); L7rho = Qt::LineEdit(BoxL7, "L7rho"); L7rho->setGeometry( Qt::Rect(200, 20, 111, 25) ); L7d = Qt::LineEdit(BoxL7, "L7d"); L7d->setGeometry( Qt::Rect(320, 20, 85, 25) ); L7d->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, L7d->sizePolicy()->hasHeightForWidth()) ); $layout27->addWidget(BoxL7); my $LayoutWidget_2 = Qt::Widget(LayersTab, '$LayoutWidget_2'); $LayoutWidget_2->setGeometry( Qt::Rect(455, 0, 250, 480) ); my $layout13 = Qt::VBoxLayout($LayoutWidget_2, 0, 0, '$layout13'); ProjParam = Qt::GroupBox($LayoutWidget_2, "ProjParam"); my $LayoutWidget_3 = Qt::Widget(ProjParam, '$LayoutWidget_3'); $LayoutWidget_3->setGeometry( Qt::Rect(5, 25, 240, 260) ); my $layout8 = Qt::VBoxLayout($LayoutWidget_3, 0, 0, '$layout8'); my $layout7 = Qt::HBoxLayout(undef, 0, 6, '$layout7'); textLabel1 = Qt::Label($LayoutWidget_3, "textLabel1"); $layout7->addWidget(textLabel1); ProjType = Qt::ComboBox(0, $LayoutWidget_3, "ProjType"); ProjType->setSizePolicy( Qt::SizePolicy(0, 0, 0, 0, ProjType->sizePolicy()->hasHeightForWidth()) ); $layout7->addWidget(ProjType); $layout8->addLayout($layout7); my $layout6 = Qt::HBoxLayout(undef, 0, 6, '$layout6'); my $layout5 = Qt::VBoxLayout(undef, 0, 0, '$layout5'); NLabel = Qt::Label($LayoutWidget_3, "NLabel"); NLabel->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, NLabel->sizePolicy()->hasHeightForWidth()) ); $layout5->addWidget(NLabel); z0Label = Qt::Label($LayoutWidget_3, "z0Label"); $layout5->addWidget(z0Label); dzLabel = Qt::Label($LayoutWidget_3, "dzLabel"); $layout5->addWidget(dzLabel); ELabel = Qt::Label($LayoutWidget_3, "ELabel"); $layout5->addWidget(ELabel); SigELabel = Qt::Label($LayoutWidget_3, "SigELabel"); $layout5->addWidget(SigELabel); AlbleLabel = Qt::Label($LayoutWidget_3, "AlbleLabel"); $layout5->addWidget(AlbleLabel); SigAngleLabel = Qt::Label($LayoutWidget_3, "SigAngleLabel"); $layout5->addWidget(SigAngleLabel); SeedLabel = Qt::Label($LayoutWidget_3, "SeedLabel"); $layout5->addWidget(SeedLabel); $layout6->addLayout($layout5); my $layout4 = Qt::VBoxLayout(undef, 0, 0, '$layout4'); NProj = Qt::LineEdit($LayoutWidget_3, "NProj"); NProj->setSizePolicy( Qt::SizePolicy(7, 0, 0, 0, NProj->sizePolicy()->hasHeightForWidth()) ); NProj->setMaximumSize( Qt::Size(32767, 32767) ); $layout4->addWidget(NProj); z0 = Qt::LineEdit($LayoutWidget_3, "z0"); z0->setMaximumSize( Qt::Size(32767, 32767) ); $layout4->addWidget(z0); dz = Qt::LineEdit($LayoutWidget_3, "dz"); $layout4->addWidget(dz); E = Qt::LineEdit($LayoutWidget_3, "E"); $layout4->addWidget(E); SigE = Qt::LineEdit($LayoutWidget_3, "SigE"); $layout4->addWidget(SigE); Angle = Qt::LineEdit($LayoutWidget_3, "Angle"); $layout4->addWidget(Angle); SigAngle = Qt::LineEdit($LayoutWidget_3, "SigAngle"); $layout4->addWidget(SigAngle); Seed = Qt::LineEdit($LayoutWidget_3, "Seed"); $layout4->addWidget(Seed); $layout6->addLayout($layout4); $layout8->addLayout($layout6); $layout13->addWidget(ProjParam); groupBox15 = Qt::GroupBox($LayoutWidget_2, "groupBox15"); my $LayoutWidget_4 = Qt::Widget(groupBox15, '$LayoutWidget_4'); $LayoutWidget_4->setGeometry( Qt::Rect(6, 23, 240, 100) ); my $layout14 = Qt::VBoxLayout($LayoutWidget_4, 0, 0, '$layout14'); textLabelFN = Qt::Label($LayoutWidget_4, "textLabelFN"); $layout14->addWidget(textLabelFN); FNPre = Qt::LineEdit($LayoutWidget_4, "FNPre"); $layout14->addWidget(FNPre); textLabelPath = Qt::Label($LayoutWidget_4, "textLabelPath"); $layout14->addWidget(textLabelPath); my $layout13_2 = Qt::HBoxLayout(undef, 0, 6, '$layout13_2'); Path = Qt::LineEdit($LayoutWidget_4, "Path"); $layout13_2->addWidget(Path); Browse = Qt::PushButton($LayoutWidget_4, "Browse"); Browse->setSizePolicy( Qt::SizePolicy(7, 0, 0, 0, Browse->sizePolicy()->hasHeightForWidth()) ); $layout13_2->addWidget(Browse); $layout14->addLayout($layout13_2); $layout13->addWidget(groupBox15); my $layout12 = Qt::HBoxLayout(undef, 4, 6, '$layout12'); Help = Qt::PushButton($LayoutWidget_2, "Help"); Help->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, Help->sizePolicy()->hasHeightForWidth()) ); $layout12->addWidget(Help); Start = Qt::PushButton($LayoutWidget_2, "Start"); Start->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, Start->sizePolicy()->hasHeightForWidth()) ); $layout12->addWidget(Start); Quit = Qt::PushButton($LayoutWidget_2, "Quit"); Quit->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, Quit->sizePolicy()->hasHeightForWidth()) ); $layout12->addWidget(Quit); $layout13->addLayout($layout12); tabs->insertTab( LayersTab, "" ); AddParTab = Qt::Widget(tabs, "AddParTab"); AddParam = Qt::GroupBox(AddParTab, "AddParam"); AddParam->setGeometry( Qt::Rect(5, 0, 245, 210) ); textLabelEF = Qt::Label(AddParam, "textLabelEF"); textLabelEF->setGeometry( Qt::Rect(12, 26, 63, 25) ); textLabelSHEATH = Qt::Label(AddParam, "textLabelSHEATH"); textLabelSHEATH->setGeometry( Qt::Rect(12, 76, 63, 25) ); textLabelERC = Qt::Label(AddParam, "textLabelERC"); textLabelERC->setGeometry( Qt::Rect(12, 101, 63, 26) ); textLabelRD = Qt::Label(AddParam, "textLabelRD"); textLabelRD->setGeometry( Qt::Rect(12, 127, 63, 25) ); KDEE2 = Qt::SpinBox(AddParam, "KDEE2"); KDEE2->setGeometry( Qt::Rect(185, 100, 52, 26) ); KDEE2->setMaxValue( int(3) ); KDEE2->setMinValue( int(1) ); KDEE2->setValue( int(3) ); KDEE1 = Qt::SpinBox(AddParam, "KDEE1"); KDEE1->setGeometry( Qt::Rect(185, 75, 52, 26) ); KDEE1->setMaxValue( int(5) ); KDEE1->setMinValue( int(1) ); KDEE1->setValue( int(4) ); textLabelIRL = Qt::Label(AddParam, "textLabelIRL"); textLabelIRL->setGeometry( Qt::Rect(131, 177, 53, 25) ); textLabelIPOTR = Qt::Label(AddParam, "textLabelIPOTR"); textLabelIPOTR->setGeometry( Qt::Rect(131, 152, 53, 25) ); textLabelIPOT = Qt::Label(AddParam, "textLabelIPOT"); textLabelIPOT->setGeometry( Qt::Rect(131, 126, 53, 26) ); textLabelKDEE2 = Qt::Label(AddParam, "textLabelKDEE2"); textLabelKDEE2->setGeometry( Qt::Rect(131, 101, 53, 25) ); textLabelKDEE1 = Qt::Label(AddParam, "textLabelKDEE1"); textLabelKDEE1->setGeometry( Qt::Rect(131, 76, 53, 25) ); textLabelKK0R = Qt::Label(AddParam, "textLabelKK0R"); textLabelKK0R->setGeometry( Qt::Rect(131, 51, 53, 25) ); textLabelCA = Qt::Label(AddParam, "textLabelCA"); textLabelCA->setGeometry( Qt::Rect(12, 152, 63, 25) ); textLabelEmpty = Qt::Label(AddParam, "textLabelEmpty"); textLabelEmpty->setEnabled( 0 ); textLabelEmpty->setGeometry( Qt::Rect(12, 175, 63, 25) ); lineEditEmpty = Qt::LineEdit(AddParam, "lineEditEmpty"); lineEditEmpty->setEnabled( 0 ); lineEditEmpty->setGeometry( Qt::Rect(77, 175, 52, 25) ); lineEditEmpty->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, lineEditEmpty->sizePolicy()->hasHeightForWidth()) ); KK0R = Qt::SpinBox(AddParam, "KK0R"); KK0R->setGeometry( Qt::Rect(185, 50, 52, 26) ); KK0R->setMaxValue( int(4) ); KK0R->setMinValue( int(0) ); KK0R->setValue( int(2) ); KK0 = Qt::SpinBox(AddParam, "KK0"); KK0->setGeometry( Qt::Rect(185, 25, 52, 26) ); KK0->setMaxValue( int(4) ); KK0->setMinValue( int(0) ); KK0->setValue( int(2) ); textLabelKK0 = Qt::Label(AddParam, "textLabelKK0"); textLabelKK0->setGeometry( Qt::Rect(131, 25, 53, 25) ); EF = Qt::LineEdit(AddParam, "EF"); EF->setGeometry( Qt::Rect(77, 26, 52, 25) ); EF->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, EF->sizePolicy()->hasHeightForWidth()) ); SHEATH = Qt::LineEdit(AddParam, "SHEATH"); SHEATH->setGeometry( Qt::Rect(77, 76, 52, 25) ); SHEATH->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, SHEATH->sizePolicy()->hasHeightForWidth()) ); ERC = Qt::LineEdit(AddParam, "ERC"); ERC->setGeometry( Qt::Rect(77, 101, 52, 26) ); ERC->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, ERC->sizePolicy()->hasHeightForWidth()) ); RD = Qt::LineEdit(AddParam, "RD"); RD->setGeometry( Qt::Rect(77, 127, 52, 25) ); RD->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, RD->sizePolicy()->hasHeightForWidth()) ); CA = Qt::LineEdit(AddParam, "CA"); CA->setGeometry( Qt::Rect(77, 152, 52, 25) ); CA->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, CA->sizePolicy()->hasHeightForWidth()) ); ESB = Qt::LineEdit(AddParam, "ESB"); ESB->setGeometry( Qt::Rect(77, 51, 52, 25) ); ESB->setSizePolicy( Qt::SizePolicy(7, 7, 0, 0, ESB->sizePolicy()->hasHeightForWidth()) ); IPOT = Qt::SpinBox(AddParam, "IPOT"); IPOT->setGeometry( Qt::Rect(185, 125, 52, 26) ); IPOT->setMaxValue( int(3) ); IPOT->setMinValue( int(1) ); IPOT->setValue( int(2) ); IPOTR = Qt::SpinBox(AddParam, "IPOTR"); IPOTR->setGeometry( Qt::Rect(185, 150, 52, 26) ); IPOTR->setMaxValue( int(3) ); IPOTR->setMinValue( int(1) ); IRL = Qt::SpinBox(AddParam, "IRL"); IRL->setGeometry( Qt::Rect(186, 176, 52, 26) ); IRL->setMaxValue( int(1) ); textLabelESB = Qt::Label(AddParam, "textLabelESB"); textLabelESB->setGeometry( Qt::Rect(12, 51, 63, 25) ); tabs->insertTab( AddParTab, "" ); ScansTab = Qt::Widget(tabs, "ScansTab"); ScanSeq = Qt::GroupBox(ScansTab, "ScanSeq"); ScanSeq->setGeometry( Qt::Rect(5, 0, 495, 165) ); ScanSeq->setCheckable( 1 ); ScanSeq->setChecked( 0 ); ScanMode = Qt::ButtonGroup(ScanSeq, "ScanMode"); ScanMode->setGeometry( Qt::Rect(230, 20, 265, 140) ); ScanMode->setCheckable( 0 ); ScanMode->setChecked( 0 ); ScanMode->setExclusive( 1 ); ScanMode->setRadioButtonExclusive( 1 ); my $LayoutWidget_5 = Qt::Widget(ScanMode, '$LayoutWidget_5'); $LayoutWidget_5->setGeometry( Qt::Rect(11, 103, 240, 23) ); my $layout3 = Qt::HBoxLayout($LayoutWidget_5, 0, 0, '$layout3'); textLabel2 = Qt::Label($LayoutWidget_5, "textLabel2"); $layout3->addWidget(textLabel2); SFrom = Qt::LineEdit($LayoutWidget_5, "SFrom"); SFrom->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, SFrom->sizePolicy()->hasHeightForWidth()) ); $layout3->addWidget(SFrom); textLabel2_2 = Qt::Label($LayoutWidget_5, "textLabel2_2"); $layout3->addWidget(textLabel2_2); STo = Qt::LineEdit($LayoutWidget_5, "STo"); STo->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, STo->sizePolicy()->hasHeightForWidth()) ); $layout3->addWidget(STo); textLabel2_2_2_2 = Qt::Label($LayoutWidget_5, "textLabel2_2_2_2"); $layout3->addWidget(textLabel2_2_2_2); SStep = Qt::LineEdit($LayoutWidget_5, "SStep"); SStep->setSizePolicy( Qt::SizePolicy(5, 5, 0, 0, SStep->sizePolicy()->hasHeightForWidth()) ); $layout3->addWidget(SStep); LoopRadio = Qt::RadioButton(ScanMode, "LoopRadio"); LoopRadio->setGeometry( Qt::Rect(10, 75, 240, 22) ); LoopRadio->setChecked( 1 ); ListRadio = Qt::RadioButton(ScanMode, "ListRadio"); ListRadio->setGeometry( Qt::Rect(10, 20, 240, 22) ); ScanList = Qt::LineEdit(ScanMode, "ScanList"); ScanList->setGeometry( Qt::Rect(10, 45, 240, 23) ); buttonGroup2 = Qt::ButtonGroup(ScanSeq, "buttonGroup2"); buttonGroup2->setGeometry( Qt::Rect(10, 20, 216, 140) ); buttonGroup2->setExclusive( 1 ); ERadio = Qt::RadioButton(buttonGroup2, "ERadio"); ERadio->setGeometry( Qt::Rect(4, 22, 211, 24) ); ERadio->setChecked( 1 ); SigERadio = Qt::RadioButton(buttonGroup2, "SigERadio"); SigERadio->setGeometry( Qt::Rect(4, 47, 211, 24) ); NProjRadio = Qt::RadioButton(buttonGroup2, "NProjRadio"); NProjRadio->setGeometry( Qt::Rect(4, 72, 211, 24) ); dRadio = Qt::RadioButton(buttonGroup2, "dRadio"); dRadio->setGeometry( Qt::Rect(5, 99, 153, 24) ); ScandL = Qt::SpinBox(buttonGroup2, "ScandL"); ScandL->setGeometry( Qt::Rect(158, 98, 56, 26) ); ScandL->setMaxValue( int(7) ); ScandL->setMinValue( int(1) ); tabs->insertTab( ScansTab, "" ); languageChange(); my $resize = Qt::Size(713, 547); $resize = $resize->expandedTo(minimumSizeHint()); resize( $resize ); clearWState( &Qt::WState_Polished ); Qt::Object::connect(ScanSeq, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()"); Qt::Object::connect(Help, SIGNAL "clicked()", this, SLOT "OpenHelpWindow()"); Qt::Object::connect(Start, SIGNAL "clicked()", this, SLOT "StartSequenceOne()"); Qt::Object::connect(ERadio, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()"); Qt::Object::connect(SigERadio, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()"); Qt::Object::connect(NProjRadio, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()"); Qt::Object::connect(ScandL, SIGNAL "valueChanged(int)", this, SLOT "ToggleScanSingle()"); Qt::Object::connect(dRadio, SIGNAL "toggled(bool)", this, SLOT "ToggleScanSingle()"); Qt::Object::connect(NL, SIGNAL "valueChanged(int)", this, SLOT "PrepLayers()"); Qt::Object::connect(ProjType, SIGNAL "activated(int)", this, SLOT "ProjSmartDefaults()"); Qt::Object::connect(Browse, SIGNAL "clicked()", this, SLOT "DirectoryBrowse()"); Qt::Object::connect(Quit, SIGNAL "clicked()", this, SLOT "ConfirmQuit()"); } # Sets the strings of the subwidgets using the current # language. sub languageChange { setCaption(trUtf8("TrimSPGUI") ); groupBox1->setTitle( trUtf8("Layers") ); textLabel1_4->setText( trUtf8("Number of Layers") ); Qt::WhatsThis::add(NL, trUtf8("Select the number of the layers of your structure (maximum 7 layers).")); textLabel2_4->setText( trUtf8("Composition") ); Qt::ToolTip::add(textLabel2_4, trUtf8("Chemical formula")); textLabel3->setText( trUtf8("Density [g/cm3]") ); textLabel4->setText( trUtf8("Thickness [Å]") ); BoxL1->setTitle( trUtf8("Layer 1") ); L1Comp->setText( trUtf8("SrTiO3") ); Qt::ToolTip::add(L1Comp, trUtf8("Chemical formula of L1")); Qt::WhatsThis::add(L1Comp, trUtf8("Insert the chemical formula here as you would write it.")); L1rho->setText( trUtf8("5.12") ); Qt::WhatsThis::add(L1rho, trUtf8("Insert the density of the layer here.")); L1d->setText( trUtf8("200") ); Qt::WhatsThis::add(L1d, trUtf8("Insert the thickness of the layer here.")); BoxL2->setTitle( trUtf8("Layer 2") ); BoxL3->setTitle( trUtf8("Layer 3") ); BoxL4->setTitle( trUtf8("Layer 4") ); BoxL5->setTitle( trUtf8("Layer 5") ); BoxL6->setTitle( trUtf8("Layer 6") ); BoxL7->setTitle( trUtf8("Layer 7") ); ProjParam->setTitle( trUtf8("Projectile parameters") ); textLabel1->setText( trUtf8("Projectile") ); ProjType->clear(); ProjType->insertItem( trUtf8("Muon") ); ProjType->insertItem( trUtf8("Li8") ); ProjType->insertItem( trUtf8("B12") ); ProjType->insertItem( trUtf8("H") ); Qt::WhatsThis::add(ProjType, trUtf8("Choose the projectile type.")); NLabel->setText( trUtf8("Number of projectiles") ); z0Label->setText( trUtf8("Starting depth [Å]") ); dzLabel->setText( trUtf8("Depth increment [Å]") ); ELabel->setText( trUtf8("Energy [eV]") ); SigELabel->setText( trUtf8("Energy sigma [eV]") ); AlbleLabel->setText( trUtf8("Angle [deg]") ); SigAngleLabel->setText( trUtf8("Angle sigma [deg]") ); SeedLabel->setText( trUtf8("Random seed") ); NProj->setText( trUtf8("10000") ); Qt::WhatsThis::add(NProj, trUtf8("The number of projectiles to be implanted in the sample. Larger number better statistics.")); z0->setText( trUtf8("0.0") ); Qt::WhatsThis::add(z0, trUtf8("Consider implanted projectiles starting from this depth.")); dz->setText( trUtf8("10.0") ); Qt::WhatsThis::add(dz, trUtf8("The steps in implantation depth at which the number of stopped projectiles will be counted. Smaller number for finer implantation histogram.")); E->setText( trUtf8("2000") ); Qt::WhatsThis::add(E, trUtf8("The average implantation energy of the projectile.")); SigE->setText( trUtf8("450") ); Qt::WhatsThis::add(SigE, trUtf8("The spread in implantation energy. For muons this is typically 400-450 eV. For Li8 this is practically zero.")); Angle->setText( trUtf8("0") ); Qt::WhatsThis::add(Angle, trUtf8("The average implantation angle.")); SigAngle->setText( trUtf8("15") ); Qt::WhatsThis::add(SigAngle, trUtf8("The spread in implantation angles.")); Seed->setText( trUtf8("78741") ); Qt::WhatsThis::add(Seed, trUtf8("The random number generator seed.")); groupBox15->setTitle( trUtf8("File Names") ); textLabelFN->setText( trUtf8("File names prefix") ); FNPre->setText( trUtf8("SrTiO3") ); Qt::WhatsThis::add(FNPre, trUtf8("The names of the saved files will start with this prefix.")); textLabelPath->setText( trUtf8("Save in subdirectory") ); Path->setText( trUtf8("./") ); Qt::WhatsThis::add(Path, trUtf8("This is the path were the input/output files will be stored.")); Browse->setText( trUtf8("Browse") ); Help->setText( trUtf8("Help") ); Start->setText( trUtf8("Start") ); Quit->setText( trUtf8("Quit") ); Qt::WhatsThis::add(Quit, trUtf8("Quit the application.")); tabs->changeTab( LayersTab, trUtf8("Layers") ); AddParam->setTitle( trUtf8("Additional parameters") ); textLabelEF->setText( trUtf8("EF") ); textLabelSHEATH->setText( trUtf8("SHEATH") ); textLabelERC->setText( trUtf8("ERC") ); textLabelRD->setText( trUtf8("RD") ); textLabelIRL->setText( trUtf8("IRL") ); textLabelIPOTR->setText( trUtf8("IPOTR") ); textLabelIPOT->setText( trUtf8("IPOT") ); textLabelKDEE2->setText( trUtf8("KDEE2") ); textLabelKDEE1->setText( trUtf8("KDEE1") ); textLabelKK0R->setText( trUtf8("KK0R") ); textLabelCA->setText( trUtf8("CA") ); textLabelEmpty->setText( undef ); lineEditEmpty->setText( undef ); textLabelKK0->setText( trUtf8("KK0") ); EF->setText( trUtf8("0.5") ); SHEATH->setText( trUtf8("0.0") ); ERC->setText( trUtf8("0.0") ); RD->setText( trUtf8("50.0") ); CA->setText( trUtf8("1.0") ); ESB->setText( trUtf8("0.0") ); textLabelESB->setText( trUtf8("ESB") ); tabs->changeTab( AddParTab, trUtf8("Additional Parameters") ); ScanSeq->setTitle( trUtf8("Scan sequence") ); Qt::WhatsThis::add(ScanSeq, trUtf8("Select to scan a certain parameter in the simulation and produce multiple output files for each value of this parameter.")); ScanMode->setTitle( trUtf8("Scan mode") ); textLabel2->setText( trUtf8("From") ); SFrom->setText( trUtf8("1000") ); textLabel2_2->setText( trUtf8("To") ); STo->setText( trUtf8("28000") ); textLabel2_2_2_2->setText( trUtf8("Step") ); SStep->setText( trUtf8("1000") ); LoopRadio->setText( trUtf8("Loop") ); Qt::WhatsThis::add(LoopRadio, trUtf8("The values of the scanned parameter are evenly spaced.")); ListRadio->setText( trUtf8("List of values") ); Qt::WhatsThis::add(ListRadio, trUtf8("The values of the scanned parameter are from a list.")); ScanList->setText( trUtf8("1000,6000,10000") ); Qt::WhatsThis::add(ScanList, trUtf8("A list of values to scan (separated by commas).")); buttonGroup2->setTitle( trUtf8("Scan Parameter") ); ERadio->setText( trUtf8("Energy") ); Qt::WhatsThis::add(ERadio, trUtf8("Scan implantation energy.")); SigERadio->setText( trUtf8("Energy sigma") ); Qt::WhatsThis::add(SigERadio, trUtf8("Scan spread in implantation energy.")); NProjRadio->setText( trUtf8("Projectile number") ); Qt::WhatsThis::add(NProjRadio, trUtf8("Scan the number of implanted projectiles.")); dRadio->setText( trUtf8("Thickness of Layer") ); Qt::WhatsThis::add(dRadio, trUtf8("Scan the thickness of the selected layer.")); Qt::WhatsThis::add(ScandL, trUtf8("This is the layer whose thickness will be scanned")); tabs->changeTab( ScansTab, trUtf8("Scans (Disbaled)") ); } sub ToggleScanSingle { # Toggle between scan/single run mode # First collect some information my %All=(); $All{"ScanSeq"}=ScanSeq->isChecked(); $All{"ERadio"}=ERadio->isChecked(); $All{"SigERadio"}=SigERadio->isChecked(); $All{"NProjRadio"}=NProjRadio->isChecked(); $All{"dRadio"}=dRadio->isChecked(); $All{"ScandL"}=ScandL->text(); # Enable everything E->setDisabled(0); E->setText("2000"); SigE->setDisabled(0); SigE->setText("450"); NProj->setDisabled(0); NProj->setText("10000"); for (my $i=1;$i<=7;$i++) { my $LayerName = "L".$i."d"; my $LayerAttrib = child($LayerName); $LayerAttrib->setDisabled(0); } if ($All{"ScanSeq"}==1) { # But if we are in scan mode disable the appropriate box if ($All{"ERadio"}) { E->setDisabled(1); E->setText(""); } elsif ($All{"SigERadio"}) { SigE->setDisabled(1); SigE->setText(""); } elsif ($All{"NProjRadio"}) { NProj->setDisabled(1); NProj->setText(""); } elsif($All{"dRadio"}) { my $LayerName = "L".$All{"ScandL"}."d"; my $LayerAttrib = child($LayerName); $LayerAttrib->setDisabled(1); $LayerAttrib->setText(""); } # and change title of tab to say enabled tabs->changeTab( ScansTab, trUtf8("Scans (Enabled)") ); } else { # Otherwise the title of the tab says disabled tabs->changeTab( ScansTab, trUtf8("Scans (Disabled)") ); } } sub PrepLayers { my %All=(); $All{"NL"}=NL->text(); # Enable layers up to required and disable the rest for (my $i=1;$i<=7;$i++) { my $LayerName = "BoxL".$i; my $LayerAttrib = child($LayerName); if ($i<=$All{"NL"}) { $LayerAttrib->setDisabled(0); } else { $LayerAttrib->setDisabled(1); } } } sub ProjSmartDefaults { my %All=(); # Get typeof projectile $All{"ProjType"}=ProjType->currentText(); if ($All{"ProjType"} eq "Muon") { # For a muon set Sigma E=450 eV and Sigman angle=15 degrees by default SigE->setText("450"); SigAngle->setText("15"); } elsif ( $All{"ProjType"} eq "Li8") { # For Li8 set Sigma E=0 eV and Sigam angle=0 degrees by default SigE->setText("0"); SigAngle->setText("0"); } } sub OpenHelpWindow { my $HelpText=" This is a GUI that uses the Trim.SP simulation binary to calculate the implantation profiles if implanted projectiles in a multilayer thin film structures. Usage: Initially define your multilayer structure. This can be formed of 7 layers maximum. Each layer is defined by giving its chemical formula, its density in units of g/cm^3, and its thickness in Ångstrom. Next, choose the type of projectile to be implanted in the structure from the drop-down menu. Set the 'Number of projectiles' to be implanted, were a higher number will give better statistics. Finally define the rest of the pro- jectile parameters such as implantation energy, energy spread, etc. In the 'File names prefix' give a string which will be used to construct the input/output file names of the simulation. These files will be collected and saved in the subdirectory provided in 'Save in subdirectory' box. The 'Additional Parameters' tab allows you to change additional parameters In the simulation. Change these only if you know what you are doing, and have read the original documentation of the Trim.SP simulation. The 'Scans' tabs provides the ability to change the value of a certain parameter in the simulation, such as implantation energy, spread in energy, number of implanted projectiles, and the thickness of one layer. The values of this parameter can be changes by a regualr step size ('Loop' checkbox and parameters), or following a set of values ('List of values' checkbox and the comma separated values). For more details click on the question mark on the top right corner, and then click on the item you want to lear about. Copyright 2009 by Zaher Salman and the LEM Group "; my $HelpWindow = Qt::MessageBox::information( this, "TrimSP GUI Help Window",$HelpText); } sub CollectValues { # This subroutine returns a hash with all the values collected from the GUI. my %All=(); $All{"NL"}=NL->text(); # Collect layers parameters for (my $i=1;$i<=$All{"NL"};$i++) { my $LComp = "L".$i."Comp"; my $Lrho="L".$i."rho"; my $Ld="L".$i."d"; my $LCompAttrib = child($LComp); my $LrhoAttrib=child($Lrho); my $LdAttrib=child($Ld); $All{"$LComp"}=$LCompAttrib->text(); $All{"$Lrho"}=$LrhoAttrib->text(); $All{"$Ld"}=$LdAttrib->text(); } # Collect projectile parameters $All{"ProjType"}=ProjType->currentText(); $All{"NProj"}=NProj->text(); $All{"z0"}=z0->text(); $All{"dz"}=dz->text(); $All{"E"}=E->text(); $All{"SigE"}=SigE->text(); $All{"Angle"}=Angle->text(); $All{"SigAngle"}=SigAngle->text(); $All{"Seed"}=Seed->text(); # Format projectile parameters $All{"NProj"}=sprintf("%8d",$All{"NProj"}); $All{"z0"}=sprintf("%6.2f",$All{"z0"}); $All{"dz"}=sprintf("%6.2f",$All{"dz"}); $All{"E"}=sprintf("%11.2f",$All{"E"}); $All{"SigE"}=sprintf("%8.2f",$All{"SigE"}); $All{"Angle"}=sprintf("%8.2f",$All{"Angle"}); $All{"SigAngle"}=sprintf("%8.2f",$All{"SigAngle"}); $All{"Seed"}=sprintf("%6.0f.",$All{"Seed"}); # Collect the additional parameters $All{"EF"}=EF->text(); $All{"ESB"}=ESB->text(); $All{"SHEATH"}=SHEATH->text(); $All{"ERC"}=ERC->text(); $All{"RD"}=RD->text(); $All{"CA"}=CA->text(); $All{"KK0"}=KK0->text(); $All{"KK0R"}=KK0R->text(); $All{"KDEE1"}=KDEE1->text(); $All{"KDEE2"}=KDEE2->text(); $All{"IPOT"}=IPOT->text(); $All{"IPOTR"}=IPOTR->text(); $All{"IRL"}=IRL->text(); # format additional parameters $All{"EF"}=sprintf("%8.2f",$All{"EF"}); $All{"ESB"}=sprintf("%8.2f",$All{"ESB"}); $All{"SHEATH"}=sprintf("%8.2f",$All{"SHEATH"}); $All{"ERC"}=sprintf("%8.2f",$All{"ERC"}); $All{"RD"}=sprintf("%5.0f.",$All{"RD"}); $All{"CA"}=sprintf("%6.2f",$All{"CA"}); $All{"KK0"}=sprintf("%3d",$All{"KK0"}); $All{"KK0R"}=sprintf("%3d",$All{"KK0R"}); $All{"KDEE1"}=sprintf("%3d",$All{"KDEE1"}); $All{"KDEE2"}=sprintf("%3d",$All{"KDEE2"}); $All{"IPOT"}=sprintf("%3d",$All{"IPOT"}); $All{"IPOTR"}=sprintf("%3d",$All{"IPOTR"}); $All{"IRL"}=sprintf("%2d",$All{"IRL"}); # Filenames etc. $All{"FNPre"}=FNPre->text(); $All{"Path"}=Path->text(); # Scan parameters only if selected $All{"ScanSeq"}=ScanSeq->isChecked(); if ($All{"ScanSeq"}) { $All{"ERadio"}=ERadio->isChecked(); $All{"SigERadio"}=SigERadio->isChecked(); $All{"NProjRadio"}=NProjRadio->isChecked(); $All{"dRadio"}=dRadio->isChecked(); $All{"ScandL"}=ScandL->text(); $All{"ListRadio"}=ListRadio->isChecked(); $All{"LoopRadio"}=LoopRadio->isChecked(); $All{"ScanList"}=ScanList->text(); $All{"SFrom"}=SFrom->text(); $All{"STo"}=STo->text(); $All{"SStep"}=SStep->text(); } # Return values to caller return %All; } sub CreateInpFile { # use lib '$ENV{HOME}/Projects/TrimSPGUI/Chem'; push @INC, "$ENV{HOME}/Projects/TrimSPGUI"; use Chem; # The proper way I think is not to have scan sequences implimented here # but rather call this multiple times to generate the scan # To resolve this, the function CreateInpFile will expect a unique thickness for each layer, # one energy value, one energy sigma and one projectile number. # These will be stored in keys L1/2/3/4/5/6/7d, E, SigE and NProj, respectively. # Chemical formulas will be parsed on the fly for each layer. However, we will check if # all the layers have inputs for coposition, thickness and density. If not fail and crash :) # Values of Z,A as well as other needed parameters are obtained from Chem.pm. # This is the form of the input file: my $TemplateFile= " ProjZ ProjAM E SigE Angle SigAngle EF ESB SHEATH ERC NProj Seed Seed Seed z0 RD dz CA KK0 KK0R KDEE1 KDEE2 IPOT IPOTR IRL L1d L2d L3d L4d L5d L6d L7d L1rho L2rho L3rho L4rho L5rho L6rho L7rho L1CK L2CK L3CK L4CK L5CK L6CK L7CK L1ELZ1 L1ELZ2 L1ELZ3 L1ELZ4 L1ELZ5 L1ELW1 L1ELW2 L1ELW3 L1ELW4 L1ELW5 L1ELC1 L1ELC2 L1ELC3 L1ELC4 L1ELC5 L1ELE1 L1ELE2 L1ELE3 L1ELE4 L1ELE5 L10301 L10302 L10303 L10304 L10305 0.0000 0.0000 0.0000 0.0000 0.0000 L1ELST11 L1ELST21 L1ELST31 L1ELST41 L1ELST51 L1ELST12 L1ELST22 L1ELST32 L1ELST42 L1ELST52 L1ELST13 L1ELST23 L1ELST33 L1ELST43 L1ELST53 L1ELST14 L1ELST24 L1ELST34 L1ELST44 L1ELST54 L1ELST15 L1ELST25 L1ELST35 L1ELST45 L1ELST55 L2ELZ1 L2ELZ2 L2ELZ3 L2ELZ4 L2ELZ5 L2ELW1 L2ELW2 L2ELW3 L2ELW4 L2ELW5 L2ELC1 L2ELC2 L2ELC3 L2ELC4 L2ELC5 L2ELE1 L2ELE2 L2ELE3 L2ELE4 L2ELE5 L20301 L20302 L20303 L20304 L20305 0.0000 0.0000 0.0000 0.0000 0.0000 L2ELST11 L2ELST21 L2ELST31 L2ELST41 L2ELST51 L2ELST12 L2ELST22 L2ELST32 L2ELST42 L2ELST52 L2ELST13 L2ELST23 L2ELST33 L2ELST43 L2ELST53 L2ELST14 L2ELST24 L2ELST34 L2ELST44 L2ELST54 L2ELST15 L2ELST25 L2ELST35 L2ELST45 L2ELST55 L3ELZ1 L3ELZ2 L3ELZ3 L3ELZ4 L3ELZ5 L3ELW1 L3ELW2 L3ELW3 L3ELW4 L3ELW5 L3ELC1 L3ELC2 L3ELC3 L3ELC4 L3ELC5 L3ELE1 L3ELE2 L3ELE3 L3ELE4 L3ELE5 L30301 L30302 L30303 L30304 L30305 0.0000 0.0000 0.0000 0.0000 0.0000 L3ELST11 L3ELST21 L3ELST31 L3ELST41 L3ELST51 L3ELST12 L3ELST22 L3ELST32 L3ELST42 L3ELST52 L3ELST13 L3ELST23 L3ELST33 L3ELST43 L3ELST53 L3ELST14 L3ELST24 L3ELST34 L3ELST44 L3ELST54 L3ELST15 L3ELST25 L3ELST35 L3ELST45 L3ELST55 L4ELZ1 L4ELZ2 L4ELZ3 L4ELZ4 L4ELZ5 L4ELW1 L4ELW2 L4ELW3 L4ELW4 L4ELW5 L4ELC1 L4ELC2 L4ELC3 L4ELC4 L4ELC5 L4ELE1 L4ELE2 L4ELE3 L4ELE4 L4ELE5 L40301 L40302 L40303 L40304 L40305 0.0000 0.0000 0.0000 0.0000 0.0000 L4ELST11 L4ELST21 L4ELST31 L4ELST41 L4ELST51 L4ELST12 L4ELST22 L4ELST32 L4ELST42 L4ELST52 L4ELST13 L4ELST23 L4ELST33 L4ELST43 L4ELST53 L4ELST14 L4ELST24 L4ELST34 L4ELST44 L4ELST54 L4ELST15 L4ELST25 L4ELST35 L4ELST45 L4ELST55 L5ELZ1 L5ELZ2 L5ELZ3 L5ELZ4 L5ELZ5 L5ELW1 L5ELW2 L5ELW3 L5ELW4 L5ELW5 L5ELC1 L5ELC2 L5ELC3 L5ELC4 L5ELC5 L5ELE1 L5ELE2 L5ELE3 L5ELE4 L5ELE5 L50301 L50302 L50303 L50304 L50305 0.0000 0.0000 0.0000 0.0000 0.0000 L5ELST11 L5ELST21 L5ELST31 L5ELST41 L5ELST51 L5ELST12 L5ELST22 L5ELST32 L5ELST42 L5ELST52 L5ELST13 L5ELST23 L5ELST33 L5ELST43 L5ELST53 L5ELST14 L5ELST24 L5ELST34 L5ELST44 L5ELST54 L5ELST15 L5ELST25 L5ELST35 L5ELST45 L5ELST55 L6ELZ1 L6ELZ2 L6ELZ3 L6ELZ4 L6ELZ5 L6ELW1 L6ELW2 L6ELW3 L6ELW4 L6ELW5 L6ELC1 L6ELC2 L6ELC3 L6ELC4 L6ELC5 L6ELE1 L6ELE2 L6ELE3 L6ELE4 L6ELE5 L60301 L60302 L60303 L60304 L60305 0.0000 0.0000 0.0000 0.0000 0.0000 L6ELST11 L6ELST21 L6ELST31 L6ELST41 L6ELST51 L6ELST12 L6ELST22 L6ELST32 L6ELST42 L6ELST52 L6ELST13 L6ELST23 L6ELST33 L6ELST43 L6ELST53 L6ELST14 L6ELST24 L6ELST34 L6ELST44 L6ELST54 L6ELST15 L6ELST25 L6ELST35 L6ELST45 L6ELST55 L7ELZ1 L7ELZ2 L7ELZ3 L7ELZ4 L7ELZ5 L7ELW1 L7ELW2 L7ELW3 L7ELW4 L7ELW5 L7ELC1 L7ELC2 L7ELC3 L7ELC4 L7ELC5 L7ELE1 L7ELE2 L7ELE3 L7ELE4 L7ELE5 L70301 L70302 L70303 L70304 L70305 0.0000 0.0000 0.0000 0.0000 0.0000 L7ELST11 L7ELST21 L7ELST31 L7ELST41 L7ELST51 L7ELST12 L7ELST22 L7ELST32 L7ELST42 L7ELST52 L7ELST13 L7ELST23 L7ELST33 L7ELST43 L7ELST53 L7ELST14 L7ELST24 L7ELST34 L7ELST44 L7ELST54 L7ELST15 L7ELST25 L7ELST35 L7ELST45 L7ELST55 "; # Get values from form my %All = CollectValues(); my $ProjType=$All{"ProjType"}; $All{"ProjZ"}=sprintf("%6.2f",Chem::Zof($ProjType)); $All{"ProjAM"}=sprintf("%6.2f",Chem::Massof($ProjType)); my $Check=0; # Loop over layers an create appropriate values for (my $i=1;$i<=7;$i++){ $Check=0; # Composition of layers my $LComp="L".$i."Comp"; my $LCompAttrib = child($LComp); my $Comp = $LCompAttrib->text(); my %LElComp=Chem::parse_formula($Comp); if ($Comp eq "") {$Check++;} # Densities of layers my $Lrho="L".$i."rho"; my $LrhoAttrib = child($Lrho); my $rho = $LrhoAttrib->text(); $All{$Lrho}=sprintf("%6.2f",$rho); if ($rho eq "") {$Check++;} # Thickness of layers my $Ld ="L".$i."d"; my $LdAttrib = child($Ld); my $d = $LdAttrib->text(); $All{$Ld}=sprintf("%8.2f",$d); if ($d eq "") {$Check++;} # Sanity check, is the layer supposed to have value? are they all there? if ($Check!=0 && $i<=$All{"NL"}) { my $ErrMsg="Error: Layer $i is empty. Expecting it to be defined!\n"; print STDERR $ErrMsg; my $HelpWindow = Qt::MessageBox::information( this, "Error!",$ErrMsg); # my $ErrorDialog = Qt::ErrorMessage(TrimSPGUI); # $ErrorDialog->message($ErrMsg); return "ERROR"; } my $tmp = "L".$i."CK"; $All{$tmp}=sprintf("%6.2f",1.0); my $Sum = 0; foreach (keys %LElComp) { $Sum=$Sum+$LElComp{$_}; } if ($Sum==0) {$Sum=1;} # print STDOUT "Layer: ".$i."\n"; # print STDOUT "Composition: ".$Comp."\n"; my @Els = keys %LElComp; for (my $NEl=1;$NEl<=5;$NEl++) { my $El = $Els[$NEl-1]; my $LEkey = "L".$i."EL"; my $ElZ = Chem::Zof($El); my $ElW = Chem::Massof($El); my $ElC = $LElComp{$El}/$Sum; my $ElE = Chem::Elastof($El); my $El030 = 30; if ($El eq "") { $El030 = 0.0;} # print STDOUT "$El, ElC=$ElC ElZ=$ElZ ElW=$ElW ElE=$ElE\n"; $All{$LEkey."Z".$NEl}=sprintf("%8.4f",$ElZ); $All{$LEkey."W".$NEl}=sprintf("%8.4f",$ElW); $All{$LEkey."C".$NEl}=sprintf("%8.4f",$ElC); $All{$LEkey."E".$NEl}=sprintf("%8.4f",$ElE); $All{"L".$i."030".$NEl}=sprintf("%8.4f",$El030); my $ElST = Chem::Stopicru($El); my @ElSTs = split (/,/,$ElST); my $j=1; foreach (@ElSTs) { $LEkey = "L".$i."ELST".$NEl.$j; $j++; $All{$LEkey}=sprintf("%11.6f",$_); } } } foreach my $key (keys %All) { # print $key,$All{$key},"\n"; if ($All{$key} ne ""){ $TemplateFile =~ s/$key/$All{$key}/; # Seed repeats three times if ($key eq "Seed") { $TemplateFile =~ s/$key/$All{$key}/g;} } } return $TemplateFile; } sub StartSequenceOne { my %All = CollectValues(); my @SValues=(); my $cmd=""; # Create a subdirectory where all input/output files are saved if (-d $All{"Path"}) { # Directory exists, do nothing } else { $cmd="mkdir ".$All{"Path"}; system($cmd); } # Cleanup from old files if (-e "ausgabe1.inp") { system("rm -f ausgabe*"); } my $Progress=0; if ($All{"ScanSeq"}) { # For a scan $All{"ERadio"}=ERadio->isChecked(); $All{"SigERadio"}=SigERadio->isChecked(); $All{"NProjRadio"}=NProjRadio->isChecked(); $All{"dRadio"}=dRadio->isChecked(); $All{"ScandL"}=ScandL->text(); $All{"ListRadio"}=ListRadio->isChecked(); $All{"LoopRadio"}=LoopRadio->isChecked(); $All{"ScanList"}=ScanList->text(); $All{"SFrom"}=SFrom->text(); $All{"STo"}=STo->text(); $All{"SStep"}=SStep->text(); if ($All{"ListRadio"}) { @SValues=split(/,/,$All{"ScanList"}); } elsif ($All{"LoopRadio"}) { for (my $Val=$All{"SFrom"};$Val<=$All{"STo"};$Val=$Val+$All{"SStep"}) { @SValues=(@SValues,$Val); } } my $ScanName = ""; if ($All{"ERadio"}) { $ScanName = "E"; } elsif ($All{"SigERadio"}) { $ScanName = "SigE"; } elsif ($All{"NProjRadio"}) { $ScanName = "NProj"; } elsif ($All{"dRadio"}) { $ScanName = "Ld".$All{"ScandL"}; } my $ScanAttrib = child($ScanName); foreach (@SValues) { $ScanAttrib->setText($_); my $eingabe1=CreateInpFile(); if ($eingabe1 eq "ERROR") {return 0;} my $FILENAME=$All{"FNPre"}."_".$ScanName.$_; open (INPF,q{>}, "$FILENAME.inp" ); print INPF $eingabe1; close(INPF); # Use windoz version # system("cp $FILENAME.inp eingabe1.inp; wine TrimSP7L.exe"); # Use Linux version $cmd = "cp $FILENAME.inp eingabe1.inp; ".$ENV{'TRIMBIN'}; system($cmd); $Progress=$Progress+90/$#SValues; Progress->setProgress($Progress); foreach ("err","out","rge") { system("mv -f ausgabe1.$_ $FILENAME.$_"); } $cmd="mv -f $FILENAME.* ".$All{"Path"}; system($cmd); } } else { # For a single run my $eingabe1=CreateInpFile(); if ($eingabe1 eq "ERROR") {return 0;} my $FILENAME=$All{"FNPre"}; open (INPF,q{>}, "$FILENAME.inp" ); print INPF $eingabe1; close(INPF); $Progress=20; Progress->setProgress($Progress); # Use windoz version # system("cp $FILENAME.inp eingabe1.inp; wine TrimSP7L.exe"); # Use Linux version $cmd = "cp $FILENAME.inp eingabe1.inp; ".$ENV{'TRIMBIN'}; system($cmd); foreach ("err","out","rge") { system("mv -f ausgabe1.$_ $FILENAME.$_"); } $Progress=90; Progress->setProgress($Progress); $cmd="mv -f $FILENAME.* ".$All{"Path"}; system($cmd); } # Move the fort.33 file into the subdirectory and change its name $cmd="rm -f eingabe1.inp; mv -f fort.33 ".$All{"Path"}."/".$All{"FNPre"}."_Seq_Results.dat"; system($cmd); $Progress=100; Progress->setProgress($Progress); return 1; } sub DirectoryBrowse { my $FileBrowser = Qt::FileDialog::getExistingDirectory("./",this,"get existing directory","Choose a directory",1); if ($FileBrowser eq "") {$FileBrowser="./";} Path->setText($FileBrowser); } sub ConfirmQuit { my $Ans = Qt::MessageBox::question( this, "Quit?","Are you sure you want to quit?","&Yes","&No","",0,1); if ($Ans==0) { # Then quit Qt::Application::exit( 0 ); } # Otherwize go back # print STDOUT $ENV{'TRIMBIN'}."\n"; } 1; package main; use Qt; use TrimSPGUI; my $a = Qt::Application(\@ARGV); my $w = TrimSPGUI; $a->setMainWidget($w); $w->show; exit $a->exec;