From 60754b31f8061740727387fc254015eb0b4bf105 Mon Sep 17 00:00:00 2001 From: crusader Date: Sun, 16 Jun 2019 14:12:09 +0900 Subject: [PATCH] =?UTF-8?q?6/14=20=EC=B4=88=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 261 + Agent/Database/Activator.cs | 61 + Agent/Database/Database.csproj | 80 + Agent/Database/DatabaseMssql.cs | 132 + Agent/Database/Properties/AssemblyInfo.cs | 36 + Agent/InterfaceOutside/Activator.cs | 56 + Agent/InterfaceOutside/NetworkFtp.cs | 181 + .../Properties/AssemblyInfo.cs | 36 + .../InterfaceOutside/TranInterfaceOutside.cs | 1979 ++ .../TranInterfaceOutside.csproj | 85 + Agent/KDS/Activator.cs | 56 + Agent/KDS/Common.cs | 45 + Agent/KDS/KDS.csproj | 89 + Agent/KDS/KDSMain.cs | 1145 + Agent/KDS/Properties/AssemblyInfo.cs | 36 + Agent/KPS/Activator.cs | 57 + Agent/KPS/Common.cs | 595 + Agent/KPS/KPS.csproj | 122 + Agent/KPS/KPSMain.cs | 3986 +++ Agent/KPS/LANPrint.cs | 548 + Agent/KPS/LabelPrinter.cs | 385 + Agent/KPS/OPOSPrint.cs | 333 + Agent/KPS/PrinterCommand.cs | 878 + Agent/KPS/Properties/AssemblyInfo.cs | 36 + Agent/KPS/SerialPrint.cs | 587 + Agent/KPS/frmKPS.Designer.cs | 64 + Agent/KPS/frmKPS.cs | 30 + Agent/KPS/frmKPS.resx | 128 + Agent/MasterDown/Activator.cs | 57 + Agent/MasterDown/BackgroundDown.csproj | 110 + Agent/MasterDown/BackgroundDownMain.cs | 2300 ++ Agent/MasterDown/DatabaseMssql.cs | 132 + Agent/MasterDown/NetworkFtp.cs | 181 + Agent/MasterDown/NetworkIRT.cs | 669 + Agent/MasterDown/NetworkJSON.cs | 581 + Agent/MasterDown/Properties/AssemblyInfo.cs | 36 + Agent/MasterDown/Svr2Tran.cs | 436 + Agent/MasterDown/frmPosIrtMessage.Designer.cs | 99 + Agent/MasterDown/frmPosIrtMessage.cs | 224 + Agent/MasterDown/frmPosIrtMessage.resx | 123 + Agent/Measuring/Activator.cs | 42 + Agent/Measuring/LabelPrinter.cs | 355 + Agent/Measuring/Measuring.csproj | 86 + Agent/Measuring/MeasuringMain.cs | 696 + Agent/Measuring/Properties/AssemblyInfo.cs | 36 + Agent/Measuring/Scale.cs | 425 + Agent/Measuring/ScalePoleDisplay.cs | 155 + Agent/Network/Activator.cs | 81 + Agent/Network/Network.csproj | 93 + Agent/Network/NetworkFtp.cs | 181 + Agent/Network/NetworkHttp.cs | 564 + Agent/Network/NetworkIRT.cs | 670 + Agent/Network/NetworkJSON.cs | 1087 + Agent/Network/NetworkVanSPCN.cs | 18 + Agent/Network/Properties/AssemblyInfo.cs | 36 + Agent/NetworkCheckOver/Activator.cs | 55 + Agent/NetworkCheckOver/CheckOverDetail.cs | 553 + Agent/NetworkCheckOver/NetworkCheckOver.cs | 2833 ++ .../NetworkCheckOver/NetworkCheckOver.csproj | 96 + .../Properties/AssemblyInfo.cs | 36 + Agent/NetworkTranSend/Activator.cs | 60 + Agent/NetworkTranSend/NetworkTranSend.cs | 7145 +++++ Agent/NetworkTranSend/NetworkTranSend.csproj | 88 + .../Properties/AssemblyInfo.cs | 36 + Agent/OLEDevice/Activator.cs | 121 + Agent/OLEDevice/DeviceCashdrawer.cs | 552 + Agent/OLEDevice/DeviceCatTerminal.cs | 335 + Agent/OLEDevice/DeviceICReader.cs | 2757 ++ Agent/OLEDevice/DeviceLabelPrinter.cs | 582 + Agent/OLEDevice/DeviceLineDisplay.cs | 308 + Agent/OLEDevice/DeviceMsr.cs | 184 + Agent/OLEDevice/DeviceOurHome.cs | 105 + Agent/OLEDevice/DevicePosPrinter.cs | 5701 ++++ Agent/OLEDevice/DeviceScale.cs | 324 + Agent/OLEDevice/DeviceScanner.cs | 507 + Agent/OLEDevice/DeviceSignPad.cs | 1934 ++ Agent/OLEDevice/DeviceTPaygle.cs | 455 + Agent/OLEDevice/OCBDirect.cs | 623 + Agent/OLEDevice/OLEDevice.csproj | 139 + Agent/OLEDevice/Properties/AssemblyInfo.cs | 36 + Agent/OLEDevice/frmDeviceOurHome.Designer.cs | 65 + Agent/OLEDevice/frmDeviceOurHome.cs | 237 + Agent/OLEDevice/frmDeviceOurHome.resx | 129 + Dropimage/Bl_bar.png | Bin 0 -> 1002 bytes Dropimage/Bl_discount.png | Bin 0 -> 982 bytes Dropimage/Bl_num1.png | Bin 0 -> 1914 bytes Dropimage/Bl_num2.png | Bin 0 -> 2139 bytes Dropimage/Bl_num3.png | Bin 0 -> 2201 bytes Dropimage/Btn_coupondelete.png | Bin 0 -> 1830 bytes Dropimage/Btn_toggle_off.png | Bin 0 -> 3056 bytes Dropimage/Btn_toggle_on.png | Bin 0 -> 2979 bytes Dropimage/Ic_Basket.png | Bin 0 -> 2245 bytes Dropimage/Ic_ai_off.png | Bin 0 -> 1694 bytes Dropimage/Ic_ai_on.png | Bin 0 -> 1675 bytes Dropimage/Ic_mylist_d.png | Bin 0 -> 2159 bytes Dropimage/Ic_mylist_n.png | Bin 0 -> 2019 bytes Dropimage/Ic_mylist_s.png | Bin 0 -> 2760 bytes Dropimage/Ic_mylist_x.png | Bin 0 -> 1198 bytes Dropimage/Ic_order_off.png | Bin 0 -> 1648 bytes Dropimage/Ic_order_on.png | Bin 0 -> 1638 bytes Dropimage/Ic_totalcost.png | Bin 0 -> 1378 bytes Dropimage/Img_bell.png | Bin 0 -> 16890 bytes Dropimage/Img_best.png | Bin 0 -> 1559 bytes Dropimage/Img_main_logo.png | Bin 0 -> 3537 bytes Dropimage/Img_new.png | Bin 0 -> 1543 bytes Dropimage/Img_page_dot_off.png | Bin 0 -> 1251 bytes Dropimage/Img_page_dot_on.png | Bin 0 -> 1255 bytes Dropimage/Img_qr.png | Bin 0 -> 5741 bytes Dropimage/Img_qr_Android.png | Bin 0 -> 5882 bytes Dropimage/Img_qr_bg.png | Bin 0 -> 1077 bytes Dropimage/Img_qr_iOS.png | Bin 0 -> 5597 bytes Dropimage/basket_list_bg.png | Bin 0 -> 2234 bytes Dropimage/basket_pop_bg.png | Bin 0 -> 1871 bytes Dropimage/basket_pop_bg2.png | Bin 0 -> 4402 bytes Dropimage/bg_basket_box.png | Bin 0 -> 1507 bytes Dropimage/bg_basket_none.png | Bin 0 -> 4267 bytes Dropimage/btn_addorder2_f.png | Bin 0 -> 2004 bytes Dropimage/btn_addorder2_n.png | Bin 0 -> 1864 bytes Dropimage/btn_addorder3_f.png | Bin 0 -> 1891 bytes Dropimage/btn_addorder3_n.png | Bin 0 -> 1757 bytes Dropimage/btn_addorder_b.png | Bin 0 -> 1988 bytes Dropimage/btn_addorder_bb.png | Bin 0 -> 2034 bytes Dropimage/btn_addorder_camerascan_f.png | Bin 0 -> 6508 bytes Dropimage/btn_addorder_camerascan_n.png | Bin 0 -> 6421 bytes Dropimage/btn_addorder_f.png | Bin 0 -> 1970 bytes Dropimage/btn_addorder_n.png | Bin 0 -> 1658 bytes Dropimage/btn_addorder_payment_f.png | Bin 0 -> 4991 bytes Dropimage/btn_addorder_payment_n.png | Bin 0 -> 4895 bytes Dropimage/btn_addorder_selforder_f.png | Bin 0 -> 4853 bytes Dropimage/btn_addorder_selforder_n.png | Bin 0 -> 4900 bytes Dropimage/btn_basket_delete.png | Bin 0 -> 1848 bytes Dropimage/btn_basket_plus.png | Bin 0 -> 1414 bytes Dropimage/btn_camerascan_start.png | Bin 0 -> 1881 bytes Dropimage/btn_check_n.png | Bin 0 -> 2407 bytes Dropimage/btn_check_s.png | Bin 0 -> 2499 bytes Dropimage/btn_count_minus_n.png | Bin 0 -> 1205 bytes Dropimage/btn_count_minus_p.png | Bin 0 -> 1183 bytes Dropimage/btn_count_plus_n.png | Bin 0 -> 1239 bytes Dropimage/btn_count_plus_p.png | Bin 0 -> 1217 bytes Dropimage/btn_coupon_d.png | Bin 0 -> 2319 bytes Dropimage/btn_coupon_n.png | Bin 0 -> 2398 bytes Dropimage/btn_coupon_p.png | Bin 0 -> 2378 bytes Dropimage/btn_coupon_s.png | Bin 0 -> 3141 bytes Dropimage/btn_delete.png | Bin 0 -> 1595 bytes Dropimage/btn_delete_2.png | Bin 0 -> 1298 bytes Dropimage/btn_delete_2_p.png | Bin 0 -> 2767 bytes Dropimage/btn_gift_n.png | Bin 0 -> 3199 bytes Dropimage/btn_gift_s.png | Bin 0 -> 2754 bytes Dropimage/btn_happypoint_d.png | Bin 0 -> 4400 bytes Dropimage/btn_happypoint_info.png | Bin 0 -> 2761 bytes Dropimage/btn_happypoint_n.png | Bin 0 -> 4704 bytes Dropimage/btn_help.png | Bin 0 -> 2544 bytes Dropimage/btn_language_chi.png | Bin 0 -> 2543 bytes Dropimage/btn_language_eng.png | Bin 0 -> 2549 bytes Dropimage/btn_language_jap.png | Bin 0 -> 2460 bytes Dropimage/btn_language_kor.png | Bin 0 -> 2629 bytes Dropimage/btn_main_camerascan_f.png | Bin 0 -> 8482 bytes Dropimage/btn_main_camerascan_n.png | Bin 0 -> 8450 bytes Dropimage/btn_main_menu_n.png | Bin 0 -> 1262 bytes Dropimage/btn_main_menu_p.png | Bin 0 -> 1243 bytes Dropimage/btn_main_selforder_f.png | Bin 0 -> 6140 bytes Dropimage/btn_main_selforder_n.png | Bin 0 -> 6207 bytes Dropimage/btn_minus.png | Bin 0 -> 1283 bytes Dropimage/btn_number.png | Bin 0 -> 3248 bytes Dropimage/btn_number2.png | Bin 0 -> 2572 bytes Dropimage/btn_number_0.png | Bin 0 -> 3780 bytes Dropimage/btn_number_1.png | Bin 0 -> 3446 bytes Dropimage/btn_number_2.png | Bin 0 -> 3720 bytes Dropimage/btn_number_3.png | Bin 0 -> 3798 bytes Dropimage/btn_number_4.png | Bin 0 -> 3641 bytes Dropimage/btn_number_5.png | Bin 0 -> 3760 bytes Dropimage/btn_number_6.png | Bin 0 -> 3868 bytes Dropimage/btn_number_7.png | Bin 0 -> 3548 bytes Dropimage/btn_number_8.png | Bin 0 -> 3869 bytes Dropimage/btn_number_9.png | Bin 0 -> 3835 bytes Dropimage/btn_number_all_n.png | Bin 0 -> 2433 bytes Dropimage/btn_number_all_p.png | Bin 0 -> 1758 bytes Dropimage/btn_number_c.png | Bin 0 -> 3491 bytes Dropimage/btn_number_d.png | Bin 0 -> 2793 bytes Dropimage/btn_option.png | Bin 0 -> 1054 bytes Dropimage/btn_option_n.png | Bin 0 -> 1617 bytes Dropimage/btn_option_s.png | Bin 0 -> 1904 bytes Dropimage/btn_page_after_n.png | Bin 0 -> 1449 bytes Dropimage/btn_page_before_n.png | Bin 0 -> 1439 bytes Dropimage/btn_pay_ali_n.png | Bin 0 -> 6569 bytes Dropimage/btn_pay_back_n.png | Bin 0 -> 2750 bytes Dropimage/btn_pay_bluemembers_n.png | Bin 0 -> 8961 bytes Dropimage/btn_pay_cashbee_n.png | Bin 0 -> 5268 bytes Dropimage/btn_pay_creditcard_n.png | Bin 0 -> 3495 bytes Dropimage/btn_pay_happyapp_d.png | Bin 0 -> 8011 bytes Dropimage/btn_pay_happyapp_f.png | Bin 0 -> 13632 bytes Dropimage/btn_pay_happyapp_n.png | Bin 0 -> 12792 bytes Dropimage/btn_pay_happygift_n.png | Bin 0 -> 8133 bytes Dropimage/btn_pay_happypoint_d.png | Bin 0 -> 7406 bytes Dropimage/btn_pay_happypoint_f.png | Bin 0 -> 13326 bytes Dropimage/btn_pay_happypoint_n.png | Bin 0 -> 12554 bytes Dropimage/btn_pay_hyundai_n.png | Bin 0 -> 3968 bytes Dropimage/btn_pay_hyundaioilbank_n.png | Bin 0 -> 14171 bytes Dropimage/btn_pay_kakao_n.png | Bin 0 -> 4876 bytes Dropimage/btn_pay_kiaredmembers_n.png | Bin 0 -> 13323 bytes Dropimage/btn_pay_kt_d.png | Bin 0 -> 2779 bytes Dropimage/btn_pay_kt_f.png | Bin 0 -> 3887 bytes Dropimage/btn_pay_kt_n.png | Bin 0 -> 3156 bytes Dropimage/btn_pay_lg_d.png | Bin 0 -> 3306 bytes Dropimage/btn_pay_lg_f.png | Bin 0 -> 4507 bytes Dropimage/btn_pay_lg_n.png | Bin 0 -> 3739 bytes Dropimage/btn_pay_mobilecoupon_d.png | Bin 0 -> 4070 bytes Dropimage/btn_pay_mobilecoupon_f.png | Bin 0 -> 5059 bytes Dropimage/btn_pay_mobilecoupon_n.png | Bin 0 -> 4366 bytes Dropimage/btn_pay_more_n.png | Bin 0 -> 1926 bytes Dropimage/btn_pay_ocb_d.png | Bin 0 -> 4693 bytes Dropimage/btn_pay_ocb_f.png | Bin 0 -> 20012 bytes Dropimage/btn_pay_ocb_n.png | Bin 0 -> 19265 bytes Dropimage/btn_pay_samsung_n.png | Bin 0 -> 4652 bytes Dropimage/btn_pay_samsunglg_n.png | Bin 0 -> 15877 bytes Dropimage/btn_pay_shinhan_n.png | Bin 0 -> 8379 bytes Dropimage/btn_pay_sk_d.png | Bin 0 -> 3159 bytes Dropimage/btn_pay_sk_f.png | Bin 0 -> 9398 bytes Dropimage/btn_pay_sk_n.png | Bin 0 -> 8688 bytes Dropimage/btn_pay_smile_n.png | Bin 0 -> 8128 bytes Dropimage/btn_pay_spc2_d.png | Bin 0 -> 4031 bytes Dropimage/btn_pay_spc2_f.png | Bin 0 -> 5949 bytes Dropimage/btn_pay_spc2_n.png | Bin 0 -> 5221 bytes Dropimage/btn_pay_spc_n.png | Bin 0 -> 5351 bytes Dropimage/btn_pay_tmoney_n.png | Bin 0 -> 12623 bytes Dropimage/btn_pay_zero_n.png | Bin 0 -> 14554 bytes Dropimage/btn_plus.png | Bin 0 -> 1315 bytes Dropimage/btn_pop_chi_n.png | Bin 0 -> 6818 bytes Dropimage/btn_pop_chi_s.png | Bin 0 -> 10086 bytes Dropimage/btn_pop_eng_n.png | Bin 0 -> 9717 bytes Dropimage/btn_pop_eng_s.png | Bin 0 -> 13218 bytes Dropimage/btn_pop_jap_n.png | Bin 0 -> 6053 bytes Dropimage/btn_pop_jap_s.png | Bin 0 -> 9453 bytes Dropimage/btn_pop_kor_n.png | Bin 0 -> 10064 bytes Dropimage/btn_pop_kor_s.png | Bin 0 -> 13912 bytes Dropimage/btn_reset.png | Bin 0 -> 2318 bytes Dropimage/btn_store.png | Bin 0 -> 1965 bytes Dropimage/btn_store_agree_n.png | Bin 0 -> 3272 bytes Dropimage/btn_store_agree_n2.png | Bin 0 -> 2477 bytes Dropimage/btn_store_agree_s.png | Bin 0 -> 3514 bytes Dropimage/discount_bar.png | Bin 0 -> 963 bytes Dropimage/happy_member_gold.png | Bin 0 -> 10626 bytes Dropimage/happy_member_pink.png | Bin 0 -> 8581 bytes Dropimage/happy_member_platinum.png | Bin 0 -> 5627 bytes Dropimage/ic_alert_cancel.png | Bin 0 -> 3963 bytes Dropimage/ic_alert_check.png | Bin 0 -> 4585 bytes Dropimage/ic_alert_coupon.png | Bin 0 -> 4541 bytes Dropimage/ic_alert_delete.png | Bin 0 -> 3600 bytes Dropimage/ic_alert_discountcancel.png | Bin 0 -> 4754 bytes Dropimage/ic_alert_error.png | Bin 0 -> 3596 bytes Dropimage/ic_alert_fail.png | Bin 0 -> 4191 bytes Dropimage/ic_alert_giftcancel.png | Bin 0 -> 4594 bytes Dropimage/ic_alert_help.png | Bin 0 -> 4119 bytes Dropimage/ic_alert_ing.gif | Bin 0 -> 5157 bytes Dropimage/ic_alert_ing2.gif | Bin 0 -> 5085 bytes Dropimage/ic_alert_listcancel.png | Bin 0 -> 4956 bytes Dropimage/ic_alert_ordercancel.png | Bin 0 -> 4624 bytes Dropimage/ic_alert_payment.png | Bin 0 -> 4964 bytes Dropimage/ic_info.png | Bin 0 -> 1650 bytes Dropimage/ic_info_x.png | Bin 0 -> 2011 bytes Dropimage/ic_option.png | Bin 0 -> 1660 bytes Dropimage/ic_option_candle.png | Bin 0 -> 1680 bytes Dropimage/ic_option_flavor.png | Bin 0 -> 1548 bytes Dropimage/ic_option_shot.png | Bin 0 -> 1717 bytes Dropimage/ic_option_takein.png | Bin 0 -> 1571 bytes Dropimage/ic_point.png | Bin 0 -> 10403 bytes Dropimage/ic_store.png | Bin 0 -> 3221 bytes Dropimage/ic_talk.png | Bin 0 -> 4002 bytes Dropimage/ic_won.png | Bin 0 -> 2010 bytes Dropimage/img_cashreceipt.png | Bin 0 -> 11142 bytes Dropimage/img_check_bg.png | Bin 0 -> 3955 bytes Dropimage/img_contents.png | Bin 0 -> 25762 bytes Dropimage/img_contents_default.png | Bin 0 -> 9445 bytes Dropimage/img_contents_soldout.png | Bin 0 -> 9410 bytes Dropimage/img_event.png | Bin 0 -> 1612 bytes Dropimage/img_gif_1.png | Bin 0 -> 23567 bytes Dropimage/img_gif_barcode.gif | Bin 0 -> 589164 bytes Dropimage/img_gif_barcode.mp4 | Bin 0 -> 423550 bytes Dropimage/img_gif_barcode_happy.avi | Bin 0 -> 181784 bytes Dropimage/img_gif_barcode_happy.gif | Bin 0 -> 272464 bytes Dropimage/img_gif_barcodescan.gif | Bin 0 -> 1134795 bytes Dropimage/img_gif_barcodescan.mp4 | Bin 0 -> 370423 bytes Dropimage/img_gif_camerascan.gif | Bin 0 -> 684085 bytes Dropimage/img_gif_card.gif | Bin 0 -> 450592 bytes Dropimage/img_gif_nfc.gif | Bin 0 -> 192463 bytes Dropimage/img_gif_pay.gif | Bin 0 -> 1305666 bytes Dropimage/img_like.png | Bin 0 -> 1375 bytes Dropimage/img_point.png | Bin 0 -> 12131 bytes Dropimage/img_receipt.png | Bin 0 -> 3959 bytes Dropimage/img_talk.png | Bin 0 -> 11477 bytes Dropimage/nextstation_button.jpg | Bin 0 -> 53297 bytes Dropimage/nextstation_img.jpg | Bin 0 -> 254990 bytes Dropimage/step01.png | Bin 0 -> 4612 bytes Dropimage/step02.png | Bin 0 -> 5623 bytes Dropimage/step03.png | Bin 0 -> 4886 bytes Dropimage/step_bg.png | Bin 0 -> 6016 bytes Dropimage/store_bg.png | Bin 0 -> 3440 bytes ImageCopy.bat | 2 + .../SPC.Kiosk.Base/Properties/AssemblyInfo.cs | 36 + Kiosk/Common/SPC.Kiosk.Base/RelayCommand.cs | 74 + .../SPC.Kiosk.Base/SPC.Kiosk.Base.csproj | 53 + Kiosk/Common/SPC.Kiosk.Base/ViewModelBase.cs | 26 + .../SPC.Kiosk.Common.Model/CommonModel.cs | 147 + .../Properties/AssemblyInfo.cs | 55 + .../SPC.Kiosk.Common.Model.csproj | 70 + .../Controls/AnimationButton.xaml | 63 + .../Controls/AnimationButton.xaml.cs | 1565 + .../SPC.Kiosk.Common/Controls/ButtonList.xaml | 16 + .../Controls/ButtonList.xaml.cs | 1142 + .../SPC.Kiosk.Common/Controls/IntroView.xaml | 13 + .../Controls/IntroView.xaml.cs | 229 + .../Controls/MediaPlayer.xaml | 11 + .../Controls/MediaPlayer.xaml.cs | 259 + .../SPC.Kiosk.Common/Controls/MediaRoll.xaml | 12 + .../Controls/MediaRoll.xaml.cs | 302 + .../Controls/MessageBoxForm.xaml | 116 + .../Controls/MessageBoxForm.xaml.cs | 286 + .../Controls/MutiLanguageTextBlock.cs | 214 + .../Controls/NumericCombo.xaml | 95 + .../Controls/NumericCombo.xaml.cs | 649 + .../SPC.Kiosk.Common/Controls/NumericPad.xaml | 239 + .../Controls/NumericPad.xaml.cs | 671 + .../Controls/NumericPad2.xaml | 226 + .../Controls/NumericPad2.xaml.cs | 508 + .../Controls/PopupMessage.xaml | 96 + .../Controls/PopupMessage.xaml.cs | 272 + .../SPC.Kiosk.Common/Controls/SignPad.xaml | 12 + .../SPC.Kiosk.Common/Controls/SignPad.xaml.cs | 409 + .../SPC.Kiosk.Common/Controls/WaitForm.xaml | 30 + .../Controls/WaitForm.xaml.cs | 48 + .../Converters/CommonConverters.cs | 516 + .../Functions/AiScannerProcess.cs | 97 + .../SPC.Kiosk.Common/Functions/Animations.cs | 577 + .../Functions/CacheManager.cs | 109 + .../Functions/CommonChecker.cs | 672 + .../Functions/CommonConverter.cs | 1942 ++ .../Functions/CommonFunction.cs | 275 + .../SPC.Kiosk.Common/Functions/CommonLog.cs | 377 + .../SPC.Kiosk.Common/Functions/CommonValue.cs | 138 + .../Functions/KioskMessageBox.cs | 426 + .../SPC.Kiosk.Common/Functions/Languages.cs | 371 + .../Functions/PopupMessageBox.cs | 158 + .../Functions/ResourceManager.cs | 573 + .../SPC.Kiosk.Common/Functions/WaitWindow.cs | 80 + .../SPC.Kiosk.Common/Models/CommonModel.cs | 460 + .../Properties/AssemblyInfo.cs | 36 + .../Resource/btn_move01_left_basic.png | Bin 0 -> 3087 bytes .../Resource/btn_move01_left_press.png | Bin 0 -> 3082 bytes .../Resource/btn_move01_right_basic.png | Bin 0 -> 3084 bytes .../Resource/btn_move01_right_press.png | Bin 0 -> 3080 bytes .../Resource/ic_alert_ing.gif | Bin 0 -> 5157 bytes .../SPC.Kiosk.Common/Resource/wait_circle.png | Bin 0 -> 51253 bytes .../SPC.Kiosk.Common/SPC.Kiosk.Common.csproj | 199 + .../SPC.Kiosk.Common/Types/CommonTypes.cs | 779 + Kiosk/Common/SPC.Kiosk.Common/packages.config | 4 + .../SPC.Kiosk.DataHelper/BackDataService.cs | 134 + .../SPC.Kiosk.DataHelper/CommonDataHelper.cs | 811 + .../SPC.Kiosk.DataHelper/PosDataService.cs | 724 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.DataHelper.csproj | 92 + Kiosk/PB/SPC.Kiosk.PB.Model/PBModels.cs | 69 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.PB.Model.csproj | 63 + Kiosk/PB/SPC.Kiosk.PB.Model/Types.cs | 141 + .../PBPaymentsViewModel.cs | 3035 ++ .../PB/SPC.Kiosk.PB.ViewModel/PBViewModel.cs | 2853 ++ .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.PB.ViewModel.csproj | 92 + Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml | 137 + .../PB/SPC.Kiosk.PB/DetailBasketItem.xaml.cs | 251 + Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml | 17 + .../PB/SPC.Kiosk.PB/DetailBasketItems.xaml.cs | 370 + Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml | 52 + .../PB/SPC.Kiosk.PB/DiscountAndValue.xaml.cs | 107 + Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml | 17 + .../PB/SPC.Kiosk.PB/DiscountAndValues.xaml.cs | 259 + Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml | 196 + Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml.cs | 199 + Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml | 17 + Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml.cs | 317 + Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml | 1512 + .../PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml.cs | 303 + Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml | 1631 ++ Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml.cs | 652 + .../SPC.Kiosk.PB/Properties/AssemblyInfo.cs | 55 + Kiosk/PB/SPC.Kiosk.PB/SPC.Kiosk.PB.csproj | 155 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.Payments.csproj | 84 + .../SPC.Kiosk.Payments/posHappyPoint.cs | 1454 + .../SPC.Kiosk.Payments/posLastPayments.cs | 1133 + .../posMobileCompanyDiscount.cs | 578 + .../posMobileHappyCoupon.cs | 1111 + .../SPC.Kiosk.Payments/posOkCashBag.cs | 672 + .../SPC.Kiosk.Payments/posPaymentsCancel.cs | 327 + .../Popup/SPC.Kiosk.Popup.Model/Functions.cs | 166 + .../M_HappyPointReturn.cs | 114 + .../SPC.Kiosk.Popup.Model/M_MiniPopup.cs | 54 + .../M_MobileCompanyReturn.cs | 37 + .../M_MobileCouponReturn.cs | 156 + .../M_NhsFuncInfoItem.cs | 206 + .../M_NumberPadImages.cs | 24 + .../M_OkCashBagReturn.cs | 52 + .../SPC.Kiosk.Popup.Model/M_OptionReturn.cs | 27 + .../M_PaymentEndReturn.cs | 47 + .../SPC.Kiosk.Popup.Model/M_PaymentReturn.cs | 27 + .../SPC.Kiosk.Popup.Model/M_StoreAgree.cs | 64 + .../Properties/AssemblyInfo.cs | 55 + .../SPC.Kiosk.Popup.Model.csproj | 83 + Kiosk/Popup/SPC.Kiosk.Popup.Model/Types.cs | 382 + .../PopupViewModelBase.cs | 194 + .../Properties/AssemblyInfo.cs | 55 + .../SPC.Kiosk.Popup.ViewModel.csproj | 100 + .../VmCallEmployee.cs | 202 + .../VmHappyPointCertify.cs | 1300 + .../VmHappyPointCoupon.cs | 745 + .../VmHappyPointUsing.cs | 1001 + .../VmLanguageSelector.cs | 132 + .../SPC.Kiosk.Popup.ViewModel/VmMiniPopup.cs | 235 + .../VmMobileCompanyMemberCertify.cs | 661 + .../VmMobileHappyCoupon.cs | 779 + .../VmNumPadPopup.cs | 303 + .../VmOkCashBagCertify.cs | 793 + .../VmOkCashBagUsing.cs | 781 + .../VmOptionSelect.cs | 329 + .../VmPaymentProcess.cs | 896 + .../VmPaymentsEnd.cs | 1397 + .../VmStepInfoPopup.cs | 108 + Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml | 119 + .../SPC.Kiosk.Popup/CallEmployee.xaml.cs | 130 + .../Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml | 48 + .../SPC.Kiosk.Popup/HappyAppCoupon.xaml.cs | 141 + .../SPC.Kiosk.Popup/HappyAppCoupons.xaml | 18 + .../SPC.Kiosk.Popup/HappyAppCoupons.xaml.cs | 314 + .../SPC.Kiosk.Popup/HappyPointCertify.xaml | 612 + .../SPC.Kiosk.Popup/HappyPointCertify.xaml.cs | 306 + .../SPC.Kiosk.Popup/HappyPointCoupon.xaml | 300 + .../SPC.Kiosk.Popup/HappyPointCoupon.xaml.cs | 213 + .../SPC.Kiosk.Popup/HappyPointUsing.xaml | 444 + .../SPC.Kiosk.Popup/HappyPointUsing.xaml.cs | 259 + .../SPC.Kiosk.Popup/LanguageSelector.xaml | 55 + .../SPC.Kiosk.Popup/LanguageSelector.xaml.cs | 228 + Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml | 115 + Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml.cs | 147 + .../MobileCompanyMemberCertify.xaml | 303 + .../MobileCompanyMemberCertify.xaml.cs | 212 + .../SPC.Kiosk.Popup/MobileHappyCoupon.xaml | 374 + .../SPC.Kiosk.Popup/MobileHappyCoupon.xaml.cs | 363 + Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml | 115 + .../Popup/SPC.Kiosk.Popup/NumPadPopup.xaml.cs | 163 + .../SPC.Kiosk.Popup/OkCashBagCertify.xaml | 298 + .../SPC.Kiosk.Popup/OkCashBagCertify.xaml.cs | 210 + .../Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml | 493 + .../SPC.Kiosk.Popup/OkCashBagUsing.xaml.cs | 178 + Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml | 52 + .../Popup/SPC.Kiosk.Popup/OptionGroup.xaml.cs | 291 + Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml | 64 + .../Popup/SPC.Kiosk.Popup/OptionItem.xaml.cs | 285 + Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml | 225 + .../SPC.Kiosk.Popup/OptionSelect.xaml.cs | 162 + .../Popup/SPC.Kiosk.Popup/OptionSelector.xaml | 18 + .../SPC.Kiosk.Popup/OptionSelector.xaml.cs | 241 + Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml | 99 + .../SPC.Kiosk.Popup/PBNumericPad.xaml.cs | 602 + Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml | 128 + .../SPC.Kiosk.Popup/PBStoreAgree.xaml.cs | 120 + .../Popup/SPC.Kiosk.Popup/PaymentProcess.xaml | 325 + .../SPC.Kiosk.Popup/PaymentProcess.xaml.cs | 221 + Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml | 1155 + .../Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml.cs | 192 + Kiosk/Popup/SPC.Kiosk.Popup/PopupManager.cs | 429 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.Popup/SPC.Kiosk.Popup.csproj | 249 + .../Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml | 135 + .../SPC.Kiosk.Popup/StepInfoPopup.xaml.cs | 134 + .../VirtureMobileHappyCoupon.xaml | 68 + .../VirtureMobileHappyCoupon.xaml.cs | 211 + .../VirtureMobileHappyCoupons.xaml | 18 + .../VirtureMobileHappyCoupons.xaml.cs | 284 + Kiosk/Popup/SPC.Kiosk.Popup/packages.config | 4 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.Start.Model.csproj | 57 + .../SPC.Kiosk.Start.Model/m_InitImage.cs | 16 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.Start.ViewModel.csproj | 76 + .../StartViewModel.cs | 535 + .../Properties/AssemblyInfo.cs | 55 + .../SPC.Kiosk.Start/SPC.Kiosk.Start.csproj | 96 + Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml | 318 + .../Start/SPC.Kiosk.Start/StartWindow.xaml.cs | 202 + Kiosk/Start/SPC.Kiosk.Start/packages.config | 4 + Kiosk/Test/KioskTest/App.xaml | 9 + Kiosk/Test/KioskTest/App.xaml.cs | 16 + Kiosk/Test/KioskTest/KioskTest.csproj | 132 + Kiosk/Test/KioskTest/MainWindow.xaml | 28 + Kiosk/Test/KioskTest/MainWindow.xaml.cs | 108 + .../Test/KioskTest/Properties/AssemblyInfo.cs | 55 + .../Properties/Resources.Designer.cs | 63 + .../Test/KioskTest/Properties/Resources.resx | 117 + .../KioskTest/Properties/Settings.Designer.cs | 26 + .../KioskTest/Properties/Settings.settings | 7 + Kiosk/Test/KioskTest/window_icon_spc_icon.ico | Bin 0 -> 24602 bytes Library/Common/AES.cs | 263 + Library/Common/Common.csproj | 102 + Library/Common/FTP.cs | 854 + Library/Common/Globalization.cs | 28 + Library/Common/InterfaceLists.cs | 5356 ++++ Library/Common/ItemColumn.cs | 23812 ++++++++++++++++ Library/Common/ItemConst.cs | 3116 ++ Library/Common/KioskLists.cs | 375 + Library/Common/MasterLists.cs | 1274 + Library/Common/PosConst.cs | 4559 +++ Library/Common/PosKey.cs | 1874 ++ Library/Common/PosOLEDevice.cs | 88 + Library/Common/Properties/AssemblyInfo.cs | 36 + Library/Common/ServiceLists.cs | 890 + Library/Common/SqlDB.cs | 1535 + Library/Common/StatusOfStateServer.cs | 2681 ++ Library/Common/TcpSocket.cs | 2254 ++ Library/Common/TcpSocketClient.cs | 233 + Library/Common/Utility.cs | 2235 ++ Library/CommonManager/CommonManager.csproj | 135 + Library/CommonManager/FormDisplayTricker.cs | 196 + Library/CommonManager/FormManager.cs | 1845 ++ Library/CommonManager/ImageManager.cs | 676 + Library/CommonManager/MasterListManager.cs | 143 + Library/CommonManager/MessageManager.cs | 9661 +++++++ Library/CommonManager/PosMstManager.cs | 1109 + .../CommonManager/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../CommonManager/Properties/Resources.resx | 120 + Library/CommonManager/SManager.cs | 1 + Library/CommonManager/WinManager.cs | 438 + .../CommonManager/frmMessageBox.Designer.cs | 201 + Library/CommonManager/frmMessageBox.cs | 530 + Library/CommonManager/frmMessageBox.resx | 126 + .../frmSearchMessage.Designer.cs | 95 + Library/CommonManager/frmSearchMessage.cs | 85 + Library/CommonManager/frmSearchMessage.resx | 120 + Library/FluentFTP/Extensions/GetChecksum.cs | 100 + Library/FluentFTP/Extensions/MD5.cs | 76 + Library/FluentFTP/Extensions/XCRC.cs | 68 + Library/FluentFTP/Extensions/XMD5.cs | 69 + Library/FluentFTP/Extensions/XSHA1.cs | 69 + Library/FluentFTP/Extensions/XSHA256.cs | 69 + Library/FluentFTP/Extensions/XSHA512.cs | 69 + Library/FluentFTP/FluentFTP.csproj | 101 + Library/FluentFTP/FluentFTP.nuspec | 64 + Library/FluentFTP/FtpClient.cs | 4529 +++ Library/FluentFTP/FtpDataStream.cs | 168 + Library/FluentFTP/FtpEnums.cs | 419 + Library/FluentFTP/FtpExceptions.cs | 125 + Library/FluentFTP/FtpExtensions.cs | 167 + Library/FluentFTP/FtpHash.cs | 135 + Library/FluentFTP/FtpListItem.cs | 710 + Library/FluentFTP/FtpReply.cs | 113 + Library/FluentFTP/FtpSocketStream.cs | 799 + Library/FluentFTP/FtpTrace.cs | 115 + Library/FluentFTP/NET2Compatibility.cs | 2834 ++ Library/FluentFTP/Properties/AssemblyInfo.cs | 32 + .../FluentFTP/Proxy/FtpClientHttp11Proxy.cs | 86 + Library/FluentFTP/Proxy/FtpClientProxy.cs | 22 + .../Proxy/FtpClientUserAtHostProxy.cs | 26 + Library/FluentFTP/Proxy/ProxyInfo.cs | 15 + SPC.Kiosk.DataHelper/CommonDataHelper.cs | 621 + SPC.Kiosk.DataHelper/PBDataHelper.cs | 68 + .../Properties/AssemblyInfo.cs | 36 + .../SPC.Kiosk.DataHelper.csproj | 83 + SRC_POS.MSR.sln | 453 + SRC_POS.TEST.sln | 227 + SRC_POS.sln | 1524 + Service/AsvCampaign/Activator.cs | 34 + Service/AsvCampaign/AsvCampaign.csproj | 141 + Service/AsvCampaign/CampaignBase.cs | 3872 +++ Service/AsvCampaign/CampaignMain.cs | 2613 ++ .../AsvCampaign/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + Service/AsvCampaign/Properties/Resources.resx | 120 + Service/AsvCampaign/frmCampPresent.cs | 554 + .../AsvCampaign/frmCampPresent.designer.cs | 546 + Service/AsvCampaign/frmCampPresent.resx | 120 + Service/AsvCampaign/frmInputDataMin.cs | 193 + .../AsvCampaign/frmInputDataMin.designer.cs | 207 + Service/AsvCampaign/frmInputDataMin.resx | 198 + Service/AsvCustDisplay/Activator.cs | 38 + Service/AsvCustDisplay/AsvCustDisplay.csproj | 187 + Service/AsvCustDisplay/CustDisplay.cs | 485 + Service/AsvCustDisplay/NamedPipe.cs | 196 + .../AsvCustDisplay/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../AsvCustDisplay/Properties/Resources.resx | 120 + .../AsvCustDisplay/frmCustDisplay.Designer.cs | 473 + Service/AsvCustDisplay/frmCustDisplay.cs | 1574 + Service/AsvCustDisplay/frmCustDisplay.resx | 174 + .../frmCustDisplayPipe.Designer.cs | 452 + Service/AsvCustDisplay/frmCustDisplayPipe.cs | 1748 ++ .../AsvCustDisplay/frmCustDisplayPipe.resx | 153 + .../AsvCustDisplay/frmCustDisplayPipeDT.cs | 1461 + .../frmCustDisplayPipeDT.designer.cs | 554 + .../AsvCustDisplay/frmCustDisplayPipeDT.resx | 318 + .../AsvCustDisplay/frmScreenSaver.Designer.cs | 165 + Service/AsvCustDisplay/frmScreenSaver.cs | 472 + Service/AsvCustDisplay/frmScreenSaver.resx | 227 + Service/AsvDataProcess/Activator.cs | 38 + Service/AsvDataProcess/AsvDataProcess.csproj | 150 + Service/AsvDataProcess/DataCommon.cs | 7665 +++++ Service/AsvDataProcess/DataService.cs | 2149 ++ Service/AsvDataProcess/MakeTranLog.cs | 3034 ++ Service/AsvDataProcess/PosReceipt.cs | 5701 ++++ Service/AsvDataProcess/PosReceiptBase.cs | 2459 ++ Service/AsvDataProcess/PosReceiptOpenClose.cs | 1098 + .../AsvDataProcess/PosReceiptOrderSheet.cs | 1514 + Service/AsvDataProcess/PosSaleExact.cs | 196 + .../AsvDataProcess/Properties/AssemblyInfo.cs | 36 + Service/AsvDataProcess/SaleComplete.cs | 1741 ++ .../frmExIrtMessage.Designer.cs | 100 + Service/AsvDataProcess/frmExIrtMessage.cs | 324 + Service/AsvDataProcess/frmExIrtMessage.resx | 123 + .../frmPosIrtMessage.Designer.cs | 100 + Service/AsvDataProcess/frmPosIrtMessage.cs | 235 + Service/AsvDataProcess/frmPosIrtMessage.resx | 123 + Service/AsvDataProcess/frmPrtData.Designer.cs | 146 + Service/AsvDataProcess/frmPrtData.cs | 21 + Service/AsvDataProcess/frmPrtData.resx | 120 + .../frmTcpClientMsg.Designer.cs | 100 + Service/AsvDataProcess/frmTcpClientMsg.cs | 369 + Service/AsvDataProcess/frmTcpClientMsg.resx | 123 + Service/AsvDataProcess/frmVanMessage.cs | 290 + .../AsvDataProcess/frmVanMessage.designer.cs | 100 + Service/AsvDataProcess/frmVanMessage.resx | 123 + Service/AsvMaster/Activator.cs | 38 + Service/AsvMaster/AsvMaster.csproj | 90 + Service/AsvMaster/CashierMaster.cs | 97 + Service/AsvMaster/PayDcMaster.cs | 149 + Service/AsvMaster/PosMaster.cs | 137 + Service/AsvMaster/Properties/AssemblyInfo.cs | 36 + Service/BsvAdmin/Activator.cs | 38 + Service/BsvAdmin/BsvAdmin.csproj | 104 + Service/BsvAdmin/CustomerClaim.cs | 389 + Service/BsvAdmin/DataSearch.cs | 718 + Service/BsvAdmin/EtcPvc.cs | 79 + Service/BsvAdmin/EtcReceipt.cs | 130 + Service/BsvAdmin/Integrity.cs | 88 + Service/BsvAdmin/PosConfigSync.cs | 522 + Service/BsvAdmin/PosSpec.cs | 1431 + Service/BsvAdmin/Properties/AssemblyInfo.cs | 36 + Service/BsvAdmin/ResendTranToOutside.cs | 270 + Service/BsvAdmin/TestMode.cs | 423 + Service/BsvAdmin/TranResend.cs | 116 + Service/BsvAdmin/VisitGovernment.cs | 94 + Service/BsvBasic/Activator.cs | 38 + Service/BsvBasic/BsvBasic.csproj | 105 + Service/BsvBasic/DmbIF.cs | 505 + Service/BsvBasic/EmpCommute.cs | 239 + Service/BsvBasic/EtcInEmp.cs | 449 + Service/BsvBasic/ICReaderUpdate.cs | 155 + Service/BsvBasic/MasterDown.cs | 18917 ++++++++++++ Service/BsvBasic/PosNoticeCom.cs | 200 + Service/BsvBasic/Properties/AssemblyInfo.cs | 36 + Service/BsvBasic/SaleReceipt.cs | 610 + Service/BsvBasic/SchEvt.cs | 361 + Service/BsvBasic/SchHpLate.cs | 362 + Service/BsvBasic/SchKtchOrder.cs | 115 + Service/BsvBasic/SchReturnCompany.cs | 397 + Service/BsvBasic/SchShipment.cs | 338 + Service/BsvBasic/SchStorArrvInfo.cs | 242 + Service/BsvBasic/SignPadUpdate.cs | 463 + Service/BsvBasic/WebPos.cs | 134 + Service/BsvFoodMaster/Activator.cs | 38 + Service/BsvFoodMaster/BsvTable.csproj | 88 + .../BsvFoodMaster/Properties/AssemblyInfo.cs | 36 + Service/BsvFoodMaster/ReservationService.cs | 351 + Service/BsvFoodMaster/TableService.cs | 7241 +++++ Service/BsvOpenClose/AccADMT.cs | 1347 + Service/BsvOpenClose/AccEtcInout.cs | 243 + Service/BsvOpenClose/AccRemoney.cs | 177 + Service/BsvOpenClose/Activator.cs | 38 + Service/BsvOpenClose/BsvOpenClose.csproj | 107 + Service/BsvOpenClose/CalDataIF.cs | 1386 + Service/BsvOpenClose/CashierLogOn.cs | 237 + Service/BsvOpenClose/DeviceService.cs | 212 + Service/BsvOpenClose/LoadMasterInfo.cs | 1115 + Service/BsvOpenClose/NoticeCampaignInfo.cs | 112 + Service/BsvOpenClose/PrepStorNotice.cs | 180 + Service/BsvOpenClose/ProgramStart.cs | 332 + .../BsvOpenClose/Properties/AssemblyInfo.cs | 36 + Service/BsvOpenClose/ReadConfigInfo.cs | 405 + Service/BsvOpenClose/SaleOpen.cs | 591 + Service/BsvOpenClose/SaveConfigInfo.cs | 279 + Service/BsvOpenClose/StoreCheck.cs | 843 + Service/BsvOpenClose/StoreEquipCheck.cs | 258 + Service/BsvPayment/Activator.cs | 38 + Service/BsvPayment/AirPortTran.cs | 2648 ++ Service/BsvPayment/AliPay.cs | 444 + Service/BsvPayment/BsvPayment.csproj | 255 + Service/BsvPayment/CakeChange.cs | 410 + Service/BsvPayment/Cash.cs | 418 + Service/BsvPayment/CashBill.cs | 891 + Service/BsvPayment/CouponDC.cs | 479 + Service/BsvPayment/CpnSend.cs | 313 + Service/BsvPayment/CreditCard.cs | 2234 ++ Service/BsvPayment/ExchangeTicket.cs | 719 + Service/BsvPayment/Foreign.cs | 337 + Service/BsvPayment/Gift.cs | 988 + Service/BsvPayment/GiftApp.cs | 452 + Service/BsvPayment/HappyGift.cs | 854 + Service/BsvPayment/HappyGiftCard.cs | 2412 ++ Service/BsvPayment/HappyGiftReChange.cs | 1033 + Service/BsvPayment/HappyGiftUse.cs | 446 + Service/BsvPayment/HappyOrder.cs | 225 + Service/BsvPayment/KorailMileage.cs | 434 + Service/BsvPayment/MealTicket.cs | 597 + Service/BsvPayment/MobileCoupon.cs | 1974 ++ Service/BsvPayment/MobileCouponHappyCon.cs | 1934 ++ Service/BsvPayment/OnLineCouponBase_China.cs | 211 + Service/BsvPayment/OnLineCouponPrt_China.cs | 332 + Service/BsvPayment/OnLineCoupon_China.cs | 667 + Service/BsvPayment/OurHome.cs | 521 + Service/BsvPayment/PayDcMstToDc.cs | 206 + Service/BsvPayment/PaymentBase.cs | 1601 ++ Service/BsvPayment/PaymentCancel.cs | 526 + Service/BsvPayment/PointHPRegularCust.cs | 231 + Service/BsvPayment/PointHappyCoupon.cs | 641 + Service/BsvPayment/PointHappyPoint.cs | 1500 + Service/BsvPayment/PointHappyPointAfter.cs | 608 + .../BsvPayment/PointHappyPointSave_China.cs | 817 + Service/BsvPayment/PointHappyPointUse.cs | 1184 + .../BsvPayment/PointHappyPointUse_China.cs | 753 + Service/BsvPayment/PointMemberUse.cs | 941 + Service/BsvPayment/PointMobileCom.cs | 939 + Service/BsvPayment/PointOcbSave.cs | 897 + Service/BsvPayment/PointSamsung.cs | 580 + Service/BsvPayment/PrepaidCard.cs | 631 + Service/BsvPayment/PrepaidCard_China.cs | 715 + Service/BsvPayment/Properties/AssemblyInfo.cs | 36 + .../Properties/Settings.Designer.cs | 26 + .../BsvPayment/Properties/Settings.settings | 5 + Service/BsvPayment/PunchhHappyPoint_US.cs | 1500 + Service/BsvPayment/ReservedPay.cs | 218 + Service/BsvPayment/SPCEmployeeDC.cs | 575 + Service/BsvPayment/SPCEmployeeDC_China.cs | 747 + Service/BsvPayment/SPCEmployeeUse.cs | 656 + Service/BsvPayment/SaleDelivery.cs | 237 + Service/BsvPayment/SaleOnCustomer.cs | 798 + Service/BsvPayment/SamsungFamilyCard.cs | 462 + Service/BsvPayment/SeveranceDC.cs | 885 + Service/BsvPayment/SmilePay.cs | 507 + Service/BsvPayment/TMoney.cs | 962 + Service/BsvPayment/TPay.cs | 856 + Service/BsvPayment/VanSpcnCommon.cs | 225 + Service/BsvPayment/VenderSearch.cs | 92 + Service/BsvPayment/VipLounge.cs | 235 + Service/BsvPayment/WeChatPay.cs | 853 + Service/BsvPayment/WeChatPay_BaiRong.cs | 1808 ++ Service/BsvPayment/WelcomCard.cs | 1902 ++ Service/BsvPayment/XiaoChengxuGiftCard.cs | 866 + Service/BsvPayment/_frmInputCardCom.cs | 1880 ++ .../BsvPayment/_frmInputCardCom.designer.cs | 622 + Service/BsvPayment/_frmInputCardCom.resx | 123 + Service/BsvPayment/_frmXCharge.cs | 704 + Service/BsvPayment/_frmXCharge.designer.cs | 81 + Service/BsvPayment/_frmXCharge.resx | 123 + Service/BsvPayment/iNStorDC.cs | 436 + Service/BsvSale/Activator.cs | 38 + Service/BsvSale/BsvSale.csproj | 156 + Service/BsvSale/HPAfterSave.cs | 442 + Service/BsvSale/HappyAppStamp.cs | 310 + Service/BsvSale/HappyBuzz.cs | 252 + Service/BsvSale/HappyOrderList.cs | 3390 +++ Service/BsvSale/HoldDeal.cs | 395 + Service/BsvSale/Properties/AssemblyInfo.cs | 36 + Service/BsvSale/Reservation.cs | 678 + Service/BsvSale/SalePluItem.cs | 1413 + Service/BsvSale/SalePluItemBase.cs | 1660 ++ Service/BsvSale/SalePluSetMenu.cs | 503 + Service/BsvSale/SalePreCard.cs | 265 + Service/BsvSale/SaleRefund.cs | 689 + Service/BsvSale/SaleTranCallBase.cs | 1886 ++ Service/BsvSale/Svr2Tran.cs | 1124 + Service/BsvSale/frmInputPrc.cs | 253 + Service/BsvSale/frmInputPrc.designer.cs | 315 + Service/BsvSale/frmInputPrc.resx | 120 + WinEtc/DataBaseRestore/DataBaseRestore.csproj | 122 + WinEtc/DataBaseRestore/Program.cs | 21 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 + .../DataBaseRestore/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + WinEtc/DataBaseRestore/SqlDB.cs | 1437 + WinEtc/DataBaseRestore/frmMain.Designer.cs | 322 + WinEtc/DataBaseRestore/frmMain.cs | 467 + WinEtc/DataBaseRestore/frmMain.resx | 295 + WinEtc/NewPosInstaller/Library/CmMessage.cs | 2069 ++ WinEtc/NewPosInstaller/Library/ComLib.cs | 1404 + WinEtc/NewPosInstaller/Library/ComLog.cs | 295 + .../NewPosInstaller/Library/DisplayDevices.cs | 284 + WinEtc/NewPosInstaller/Library/FTP.cs | 630 + WinEtc/NewPosInstaller/Library/IniFile.cs | 129 + WinEtc/NewPosInstaller/Library/ItemColumn.cs | 873 + WinEtc/NewPosInstaller/Library/NetworkJSON.cs | 576 + WinEtc/NewPosInstaller/Library/PosConst.cs | 3185 +++ WinEtc/NewPosInstaller/Library/Registry.cs | 127 + WinEtc/NewPosInstaller/Library/SqlDB.cs | 1498 + WinEtc/NewPosInstaller/Library/TcpSocket.cs | 1719 ++ WinEtc/NewPosInstaller/Library/UserAES.cs | 557 + WinEtc/NewPosInstaller/Library/XmlBase.cs | 172 + WinEtc/NewPosInstaller/NewPosInstaller.csproj | 151 + .../NewPosInstaller/Process/BasicInfoCheck.cs | 626 + .../Process/InstallerUpdate.cs | 172 + .../Process/PosDataMigration.cs | 3586 +++ .../Process/PosDatabaseCreate.cs | 720 + .../Process/PosImageDownload.cs | 245 + .../Process/PosInstallComplete.cs | 418 + .../Process/PosProgramInstall.cs | 209 + WinEtc/NewPosInstaller/Process/_Enitiy.cs | 941 + WinEtc/NewPosInstaller/Process/_IEcho.cs | 21 + WinEtc/NewPosInstaller/Process/_IProcess.cs | 14 + WinEtc/NewPosInstaller/Program.cs | 60 + .../Properties/AssemblyInfo.cs | 92 + .../Properties/Resources.Designer.cs | 71 + .../NewPosInstaller/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + .../NewPosInstaller/Properties/app.manifest | 54 + WinEtc/NewPosInstaller/StoreCodeMap.txt | 436 + .../_참고/_NewPosInstaller.ini.sample | 44 + .../NewPosInstaller/_참고/_Status.ini.sample | 43 + WinEtc/NewPosInstaller/_참고/__Readme.txt | 101 + WinEtc/NewPosInstaller/_참고/import.ico | Bin 0 -> 33982 bytes .../NewPosInstaller/frmInstaller.Designer.cs | 97 + WinEtc/NewPosInstaller/frmInstaller.cs | 501 + WinEtc/NewPosInstaller/frmInstaller.resx | 1275 + .../NewPosInstallerStart.csproj | 95 + WinEtc/NewPosInstallerStart/Program.cs | 31 + .../Properties/AssemblyInfo.cs | 42 + .../Properties/Resources.Designer.cs | 71 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + .../NewPosInstallerStart/frmStart.Designer.cs | 69 + WinEtc/NewPosInstallerStart/frmStart.cs | 228 + WinEtc/NewPosInstallerStart/frmStart.resx | 126 + WinEtc/NewPosInstallerStart/import.ico | Bin 0 -> 33982 bytes WinEtc/PosDesign800/PosDesign800.csproj | 209 + WinEtc/PosDesign800/Program.cs | 23 + .../PosDesign800/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 + WinEtc/PosDesign800/Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../PosDesign800/Properties/Settings.settings | 7 + .../frmLogOnCashier_800.Designer.cs | 386 + WinEtc/PosDesign800/frmLogOnCashier_800.cs | 34 + WinEtc/PosDesign800/frmLogOnCashier_800.resx | 831 + .../PosDesign800/frmPosMain_800.Designer.cs | 1117 + WinEtc/PosDesign800/frmPosMain_800.cs | 66 + WinEtc/PosDesign800/frmPosMain_800.resx | 229 + WinEtc/PosDesign800/frmSaleMain_Pay_800.cs | 30 + .../frmSaleMain_Pay_800.designer.cs | 923 + WinEtc/PosDesign800/frmSaleMain_Pay_800.resx | 247 + .../frmSaleMain_Sale_800.Designer.cs | 2183 ++ WinEtc/PosDesign800/frmSaleMain_Sale_800.cs | 29 + WinEtc/PosDesign800/frmSaleMain_Sale_800.resx | 9070 ++++++ Window/PosConfiguration/ComboBoxConst.cs | 87 + .../PosConfiguration/PosConfiguration.csproj | 153 + Window/PosConfiguration/Program.cs | 21 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../frmPosConfiguration.Designer.cs | 6734 +++++ .../PosConfiguration/frmPosConfiguration.cs | 3952 +++ .../PosConfiguration/frmPosConfiguration.resx | 1155 + .../frmPosConfigurationSecu.Designer.cs | 210 + .../frmPosConfigurationSecu.cs | 254 + .../frmPosConfigurationSecu.resx | 120 + .../PosConfiguration/frmPosLoad.Designer.cs | 211 + Window/PosConfiguration/frmPosLoad.cs | 175 + Window/PosConfiguration/frmPosLoad.resx | 120 + .../PosConfiguration/window_icon_spc_icon.ico | Bin 0 -> 24602 bytes Window/PosConfigurationEng/ComboBoxConst.cs | 82 + .../PosConfigurationEng.csproj | 151 + Window/PosConfigurationEng/Program.cs | 21 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../frmPosConfiguration.Designer.cs | 6041 ++++ .../frmPosConfiguration.cs | 3410 +++ .../frmPosConfiguration.resx | 120 + .../frmPosConfigurationSecu.Designer.cs | 208 + .../frmPosConfigurationSecu.cs | 254 + .../frmPosConfigurationSecu.resx | 120 + .../frmPosLoad.Designer.cs | 209 + Window/PosConfigurationEng/frmPosLoad.cs | 175 + Window/PosConfigurationEng/frmPosLoad.resx | 120 + .../window_icon_spc_icon.ico | Bin 0 -> 24602 bytes Window/PosMain/AlterMST.sql | 27 + Window/PosMain/App.config | 10 + Window/PosMain/CreateMST.Kiosk.sql | 1095 + Window/PosMain/CreateMST.sql | 4343 +++ Window/PosMain/PosMain.csproj | 236 + Window/PosMain/Program.cs | 35 + Window/PosMain/Properties/AssemblyInfo.cs | 36 + .../PosMain/Properties/Resources.Designer.cs | 63 + Window/PosMain/Properties/Resources.resx | 120 + .../PosMain/Properties/Settings.Designer.cs | 26 + Window/PosMain/Properties/Settings.settings | 7 + Window/PosMain/frmDatabaseInit.Designer.cs | 91 + Window/PosMain/frmDatabaseInit.cs | 694 + Window/PosMain/frmDatabaseInit.resx | 120 + Window/PosMain/frmPosMain.Designer.cs | 1471 + Window/PosMain/frmPosMain.cs | 5189 ++++ Window/PosMain/frmPosMain.resx | 460 + Window/PosMain/frmPosMainStart.Designer.cs | 81 + Window/PosMain/frmPosMainStart.cs | 2598 ++ Window/PosMain/frmPosMainStart.resx | 129 + Window/PosMain/window_icon_spc_icon.ico | Bin 0 -> 24602 bytes Window/PosStart/App.config | 7 + Window/PosStart/CmMessage.cs | 2083 ++ Window/PosStart/PosStart.csproj | 111 + Window/PosStart/Program.cs | 93 + Window/PosStart/Properties/AssemblyInfo.cs | 36 + .../PosStart/Properties/Resources.Designer.cs | 71 + Window/PosStart/Properties/Resources.resx | 117 + .../PosStart/Properties/Settings.Designer.cs | 30 + Window/PosStart/Properties/Settings.settings | 7 + Window/PosStart/XmlBase.cs | 172 + Window/PosStart/frmPosStart.Designer.cs | 89 + Window/PosStart/frmPosStart.cs | 1079 + Window/PosStart/frmPosStart.resx | 11427 ++++++++ Window/PosStart/window_icon_spc_icon.ico | Bin 0 -> 24602 bytes Window/TableConfiguration/Program.cs | 30 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../TableConfiguration.csproj | 219 + .../frmBackground.Designer.cs | 56 + Window/TableConfiguration/frmBackground.cs | 261 + Window/TableConfiguration/frmBackground.resx | 120 + .../frmFloorManager.Designer.cs | 410 + Window/TableConfiguration/frmFloorManager.cs | 542 + .../TableConfiguration/frmFloorManager.resx | 174 + .../frmTableEditor.Designer.cs | 1028 + Window/TableConfiguration/frmTableEditor.cs | 2083 ++ Window/TableConfiguration/frmTableEditor.resx | 249 + .../frmTableManager.Designer.cs | 646 + Window/TableConfiguration/frmTableManager.cs | 492 + .../TableConfiguration/frmTableManager.resx | 210 + .../frmWaitMessage.Designer.cs | 82 + Window/TableConfiguration/frmWaitMessage.cs | 315 + Window/TableConfiguration/frmWaitMessage.resx | 120 + .../window_icon_spc_icon.ico | Bin 0 -> 24602 bytes Window/WebPos/Program.cs | 37 + Window/WebPos/Properties/AssemblyInfo.cs | 36 + .../WebPos/Properties/Resources.Designer.cs | 71 + Window/WebPos/Properties/Resources.resx | 117 + Window/WebPos/Properties/Settings.Designer.cs | 30 + Window/WebPos/Properties/Settings.settings | 7 + Window/WebPos/WebPos.csproj | 129 + Window/WebPos/frmWebBiz.cs | 233 + Window/WebPos/frmWebBiz.designer.cs | 137 + Window/WebPos/frmWebBiz.resx | 132 + Window/WinAdmin/Properties/AssemblyInfo.cs | 36 + .../WinAdmin/Properties/Resources.Designer.cs | 63 + Window/WinAdmin/Properties/Resources.resx | 120 + Window/WinAdmin/WinAdmin.cs | 296 + Window/WinAdmin/WinAdmin.csproj | 269 + Window/WinAdmin/frmBusiNotice.cs | 861 + Window/WinAdmin/frmBusiNotice.designer.cs | 418 + Window/WinAdmin/frmBusiNotice.resx | 120 + Window/WinAdmin/frmCustomerClaimInput.cs | 604 + .../frmCustomerClaimInput.designer.cs | 938 + Window/WinAdmin/frmCustomerClaimInput.resx | 174 + .../frmCustomerClaimsList.Designer.cs | 354 + Window/WinAdmin/frmCustomerClaimsList.cs | 384 + Window/WinAdmin/frmCustomerClaimsList.resx | 174 + Window/WinAdmin/frmDataSearch.cs | 1927 ++ Window/WinAdmin/frmDataSearch.designer.cs | 614 + Window/WinAdmin/frmDataSearch.resx | 227 + Window/WinAdmin/frmEtcPvc.Designer.cs | 556 + Window/WinAdmin/frmEtcPvc.cs | 242 + Window/WinAdmin/frmEtcPvc.resx | 174 + Window/WinAdmin/frmEtcReceipt.Designer.cs | 557 + Window/WinAdmin/frmEtcReceipt.cs | 564 + Window/WinAdmin/frmEtcReceipt.resx | 174 + Window/WinAdmin/frmEtcSetting.Designer.cs | 652 + Window/WinAdmin/frmEtcSetting.cs | 649 + Window/WinAdmin/frmEtcSetting.resx | 120 + Window/WinAdmin/frmIntegrity.cs | 1184 + Window/WinAdmin/frmIntegrity.designer.cs | 748 + Window/WinAdmin/frmIntegrity.resx | 174 + Window/WinAdmin/frmIntegrityThead.cs | 434 + Window/WinAdmin/frmIntegrityThead.designer.cs | 90 + Window/WinAdmin/frmIntegrityThead.resx | 123 + .../WinAdmin/frmSoundMotSetting.Designer.cs | 613 + Window/WinAdmin/frmSoundMotSetting.cs | 534 + Window/WinAdmin/frmSoundMotSetting.resx | 120 + Window/WinAdmin/frmTestEduPlu.cs | 510 + Window/WinAdmin/frmTestEduPlu.designer.cs | 381 + Window/WinAdmin/frmTestEduPlu.resx | 123 + Window/WinAdmin/frmTestMode.cs | 671 + Window/WinAdmin/frmTestMode.designer.cs | 322 + Window/WinAdmin/frmTestMode.resx | 123 + Window/WinAdmin/frmTestModeList.cs | 421 + Window/WinAdmin/frmTestModeList.designer.cs | 403 + Window/WinAdmin/frmTestModeList.resx | 120 + Window/WinAdmin/frmTestModeSearch.cs | 376 + Window/WinAdmin/frmTestModeSearch.designer.cs | 520 + Window/WinAdmin/frmTestModeSearch.resx | 227 + Window/WinAdmin/frmTestPluSearch.cs | 337 + Window/WinAdmin/frmTestPluSearch.designer.cs | 332 + Window/WinAdmin/frmTestPluSearch.resx | 120 + Window/WinAdmin/frmTranResend.Designer.cs | 393 + Window/WinAdmin/frmTranResend.cs | 250 + Window/WinAdmin/frmTranResend.resx | 177 + Window/WinBasic/Properties/AssemblyInfo.cs | 36 + .../WinBasic/Properties/Resources.Designer.cs | 63 + Window/WinBasic/Properties/Resources.resx | 120 + Window/WinBasic/WinBasic.cs | 1424 + Window/WinBasic/WinBasic.csproj | 634 + Window/WinBasic/frmAddBag.cs | 1213 + Window/WinBasic/frmAddBag.designer.cs | 430 + Window/WinBasic/frmAddBag.resx | 126 + Window/WinBasic/frmBirthdayCandle.cs | 274 + Window/WinBasic/frmBirthdayCandle.designer.cs | 415 + Window/WinBasic/frmBirthdayCandle.resx | 120 + Window/WinBasic/frmBizMain.Designer.cs | 655 + Window/WinBasic/frmBizMain.cs | 809 + Window/WinBasic/frmBizMain.resx | 176 + Window/WinBasic/frmCalendar.cs | 244 + Window/WinBasic/frmCalendar.designer.cs | 1039 + Window/WinBasic/frmCalendar.resx | 120 + Window/WinBasic/frmCampaignInfo.cs | 578 + Window/WinBasic/frmCampaignInfo.designer.cs | 320 + Window/WinBasic/frmCampaignInfo.resx | 123 + .../WinBasic/frmCheckKtchPrinter.Designer.cs | 230 + Window/WinBasic/frmCheckKtchPrinter.cs | 375 + Window/WinBasic/frmCheckKtchPrinter.resx | 147 + Window/WinBasic/frmChoiceBox.Designer.cs | 178 + Window/WinBasic/frmChoiceBox.cs | 183 + Window/WinBasic/frmChoiceBox.resx | 120 + .../frmCountdownMessageBox.Designer.cs | 187 + Window/WinBasic/frmCountdownMessageBox.cs | 175 + Window/WinBasic/frmCountdownMessageBox.resx | 123 + Window/WinBasic/frmDeviceStatusSearch.cs | 510 + .../frmDeviceStatusSearch.designer.cs | 842 + Window/WinBasic/frmDeviceStatusSearch.resx | 218 + Window/WinBasic/frmDiscountList.cs | 295 + Window/WinBasic/frmDiscountList.designer.cs | 199 + Window/WinBasic/frmDiscountList.resx | 120 + Window/WinBasic/frmEmpCommute.cs | 1085 + Window/WinBasic/frmEmpCommute.designer.cs | 631 + Window/WinBasic/frmEmpCommute.resx | 123 + Window/WinBasic/frmEtcInEMP.Designer.cs | 338 + Window/WinBasic/frmEtcInEMP.cs | 512 + Window/WinBasic/frmEtcInEMP.resx | 120 + Window/WinBasic/frmExchageRate.cs | 714 + Window/WinBasic/frmExchageRate.designer.cs | 463 + Window/WinBasic/frmExchageRate.resx | 186 + .../frmForeignersResponse.Designer.cs | 81 + Window/WinBasic/frmForeignersResponse.cs | 61 + Window/WinBasic/frmForeignersResponse.resx | 120 + Window/WinBasic/frmHPOrderCancelReason.cs | 400 + .../frmHPOrderCancelReason.designer.cs | 271 + Window/WinBasic/frmHPOrderCancelReason.resx | 120 + Window/WinBasic/frmHappyBuz.cs | 410 + Window/WinBasic/frmHappyBuz.designer.cs | 203 + Window/WinBasic/frmHappyBuz.resx | 215 + Window/WinBasic/frmHoldDeal.cs | 685 + Window/WinBasic/frmHoldDeal.designer.cs | 465 + Window/WinBasic/frmHoldDeal.resx | 177 + Window/WinBasic/frmICReaderUpdate.Designer.cs | 216 + Window/WinBasic/frmICReaderUpdate.cs | 356 + Window/WinBasic/frmICReaderUpdate.resx | 120 + Window/WinBasic/frmInputData.cs | 437 + Window/WinBasic/frmInputData.designer.cs | 389 + Window/WinBasic/frmInputData.resx | 120 + Window/WinBasic/frmInputDataMin.cs | 204 + Window/WinBasic/frmInputDataMin.designer.cs | 208 + Window/WinBasic/frmInputDataMin.resx | 198 + Window/WinBasic/frmItemSearch.cs | 1142 + Window/WinBasic/frmItemSearch.designer.cs | 665 + Window/WinBasic/frmItemSearch.resx | 123 + .../WinBasic/frmLabelBarcodePrint.Designer.cs | 127 + Window/WinBasic/frmLabelBarcodePrint.cs | 415 + Window/WinBasic/frmLabelBarcodePrint.resx | 120 + Window/WinBasic/frmLogOnCashier.Designer.cs | 501 + Window/WinBasic/frmLogOnCashier.cs | 876 + Window/WinBasic/frmLogOnCashier.resx | 180 + Window/WinBasic/frmMenuSub.cs | 461 + Window/WinBasic/frmMenuSub.designer.cs | 423 + Window/WinBasic/frmMenuSub.resx | 120 + .../WinBasic/frmMenualOrderItem.Designer.cs | 321 + Window/WinBasic/frmMenualOrderItem.cs | 478 + Window/WinBasic/frmMenualOrderItem.resx | 162 + Window/WinBasic/frmMenualOrderKps.Designer.cs | 484 + Window/WinBasic/frmMenualOrderKps.cs | 354 + Window/WinBasic/frmMenualOrderKps.resx | 266 + Window/WinBasic/frmMissTranCheck.cs | 286 + Window/WinBasic/frmMissTranCheck.designer.cs | 157 + Window/WinBasic/frmMissTranCheck.resx | 126 + Window/WinBasic/frmNoticeInfo.cs | 633 + Window/WinBasic/frmNoticeInfo.designer.cs | 375 + Window/WinBasic/frmNoticeInfo.resx | 123 + Window/WinBasic/frmPGMDownLoad.cs | 2316 ++ Window/WinBasic/frmPGMDownLoad.designer.cs | 490 + Window/WinBasic/frmPGMDownLoad.resx | 126 + Window/WinBasic/frmPopupCom.Designer.cs | 266 + Window/WinBasic/frmPopupCom.cs | 388 + Window/WinBasic/frmPopupCom.resx | 289 + Window/WinBasic/frmPrepaidCust.cs | 459 + Window/WinBasic/frmPrepaidCust.designer.cs | 333 + Window/WinBasic/frmPrepaidCust.resx | 120 + Window/WinBasic/frmRegGuest.cs | 510 + Window/WinBasic/frmRegGuest.designer.cs | 1136 + Window/WinBasic/frmRegGuest.resx | 120 + Window/WinBasic/frmRembOrderPrint.Designer.cs | 372 + Window/WinBasic/frmRembOrderPrint.cs | 464 + Window/WinBasic/frmRembOrderPrint.resx | 120 + Window/WinBasic/frmSalCalc.Designer.cs | 671 + Window/WinBasic/frmSalCalc.cs | 455 + Window/WinBasic/frmSalCalc.resx | 192 + Window/WinBasic/frmSaleOpen.Designer.cs | 653 + Window/WinBasic/frmSaleOpen.cs | 916 + Window/WinBasic/frmSaleOpen.resx | 240 + Window/WinBasic/frmSalePluList.cs | 293 + Window/WinBasic/frmSalePluList.designer.cs | 201 + Window/WinBasic/frmSalePluList.resx | 120 + Window/WinBasic/frmSchEvt.Designer.cs | 519 + Window/WinBasic/frmSchEvt.cs | 611 + Window/WinBasic/frmSchEvt.resx | 227 + Window/WinBasic/frmSchHpLate.cs | 604 + Window/WinBasic/frmSchHpLate.designer.cs | 443 + Window/WinBasic/frmSchHpLate.resx | 174 + Window/WinBasic/frmSchKtchOrder.cs | 467 + Window/WinBasic/frmSchKtchOrder.designer.cs | 496 + Window/WinBasic/frmSchKtchOrder.resx | 174 + Window/WinBasic/frmSchPosLog.Designer.cs | 297 + Window/WinBasic/frmSchPosLog.cs | 272 + Window/WinBasic/frmSchPosLog.resx | 174 + Window/WinBasic/frmSchReturnCompany.cs | 640 + .../WinBasic/frmSchReturnCompany.designer.cs | 446 + Window/WinBasic/frmSchReturnCompany.resx | 174 + Window/WinBasic/frmSchShipment.cs | 526 + Window/WinBasic/frmSchShipment.designer.cs | 444 + Window/WinBasic/frmSchShipment.resx | 174 + .../WinBasic/frmSchStorArrvInfo.Designer.cs | 578 + Window/WinBasic/frmSchStorArrvInfo.cs | 476 + Window/WinBasic/frmSchStorArrvInfo.resx | 123 + Window/WinBasic/frmScreenVip.Designer.cs | 77 + Window/WinBasic/frmScreenVip.cs | 131 + Window/WinBasic/frmScreenVip.resx | 2211 ++ Window/WinBasic/frmSelReasonCode.cs | 489 + Window/WinBasic/frmSelReasonCode.designer.cs | 328 + Window/WinBasic/frmSelReasonCode.resx | 120 + Window/WinBasic/frmSelSalePlu.cs | 386 + Window/WinBasic/frmSelSalePlu.designer.cs | 215 + Window/WinBasic/frmSelSalePlu.resx | 120 + Window/WinBasic/frmSelectBtnMsgCom.cs | 301 + .../WinBasic/frmSelectBtnMsgCom.designer.cs | 167 + Window/WinBasic/frmSelectBtnMsgCom.resx | 123 + Window/WinBasic/frmSignPadUpdate.Designer.cs | 233 + Window/WinBasic/frmSignPadUpdate.cs | 583 + Window/WinBasic/frmSignPadUpdate.resx | 120 + Window/WinBasic/frmSvr2Tran.cs | 397 + Window/WinBasic/frmSvr2Tran.designer.cs | 267 + Window/WinBasic/frmSvr2Tran.resx | 180 + Window/WinBasic/frmTakeInOut.cs | 705 + Window/WinBasic/frmTakeInOut.designer.cs | 581 + Window/WinBasic/frmTakeInOut.resx | 156 + Window/WinBasic/frmTakeInOutProd.cs | 543 + Window/WinBasic/frmTakeInOutProd.designer.cs | 452 + Window/WinBasic/frmTakeInOutProd.resx | 150 + Window/WinBasic/frmWebBiz2.cs | 290 + Window/WinBasic/frmWebBiz2.designer.cs | 138 + Window/WinBasic/frmWebBiz2.resx | 132 + .../DataGridViewRadioButtonCell.cs | 1781 ++ .../DataGridViewRadioButtonCellLayout.cs | 178 + .../DataGridViewRadioButtonColumn.cs | 306 + .../WinOpenClose/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + Window/WinOpenClose/Properties/Resources.resx | 120 + Window/WinOpenClose/WinOpenClose.cs | 386 + Window/WinOpenClose/WinOpenClose.csproj | 269 + Window/WinOpenClose/frmAccADMT.cs | 1970 ++ Window/WinOpenClose/frmAccADMT.designer.cs | 1065 + Window/WinOpenClose/frmAccADMT.resx | 165 + Window/WinOpenClose/frmAccADMTCan.cs | 777 + Window/WinOpenClose/frmAccADMTCan.designer.cs | 317 + Window/WinOpenClose/frmAccADMTCan.resx | 120 + .../WinOpenClose/frmAccEtcInOut.Designer.cs | 995 + Window/WinOpenClose/frmAccEtcInOut.cs | 846 + Window/WinOpenClose/frmAccEtcInOut.resx | 227 + Window/WinOpenClose/frmAccRemoney.Designer.cs | 2177 ++ Window/WinOpenClose/frmAccRemoney.cs | 830 + Window/WinOpenClose/frmAccRemoney.resx | 120 + .../frmDatabaseBackup.Designer.cs | 106 + Window/WinOpenClose/frmDatabaseBackup.cs | 263 + Window/WinOpenClose/frmDatabaseBackup.resx | 123 + .../frmExpiryDateCheckList.Designer.cs | 452 + Window/WinOpenClose/frmExpiryDateCheckList.cs | 853 + .../WinOpenClose/frmExpiryDateCheckList.resx | 120 + .../frmPrepStorNotice.Designer.cs | 262 + Window/WinOpenClose/frmPrepStorNotice.cs | 422 + Window/WinOpenClose/frmPrepStorNotice.resx | 120 + Window/WinOpenClose/frmSOD.Designer.cs | 407 + Window/WinOpenClose/frmSOD.cs | 537 + Window/WinOpenClose/frmSOD.resx | 174 + .../frmSafetyCheckList.Designer.cs | 673 + Window/WinOpenClose/frmSafetyCheckList.cs | 893 + Window/WinOpenClose/frmSafetyCheckList.resx | 120 + Window/WinOpenClose/frmSafetyDay.Designer.cs | 175 + Window/WinOpenClose/frmSafetyDay.cs | 127 + Window/WinOpenClose/frmSafetyDay.resx | 120 + .../WinOpenClose/frmSaleCheckList.Designer.cs | 505 + Window/WinOpenClose/frmSaleCheckList.cs | 878 + Window/WinOpenClose/frmSaleCheckList.resx | 120 + .../WinOpenClose/frmShopPayType.Designer.cs | 227 + Window/WinOpenClose/frmShopPayType.cs | 238 + Window/WinOpenClose/frmShopPayType.resx | 129 + .../frmStoreEquipCheck.Designer.cs | 248 + Window/WinOpenClose/frmStoreEquipCheck.cs | 472 + Window/WinOpenClose/frmStoreEquipCheck.resx | 120 + .../frmStoreEquipCheckList.Designer.cs | 549 + Window/WinOpenClose/frmStoreEquipCheckList.cs | 801 + .../WinOpenClose/frmStoreEquipCheckList.resx | 227 + Window/WinPayment/Properties/AssemblyInfo.cs | 36 + ...dEx+GridHeaderClickEventHandler.datasource | 10 + ...ridEx+GridItemClickEventHandler.datasource | 10 + .../Cosmos.UI.CsmGridEx.datasource | 10 + ...m+GridItemCellClickEventHandler.datasource | 10 + .../Cosmos.UI.CsmGridExItem.datasource | 10 + .../Cosmos.UI.CsmGridExRowData.datasource | 10 + .../Cosmos.UI.GridDataItem.datasource | 10 + .../Properties/Resources.Designer.cs | 63 + Window/WinPayment/Properties/Resources.resx | 121 + Window/WinPayment/WinPay.cs | 1956 ++ Window/WinPayment/WinPayment.csproj | 847 + Window/WinPayment/frmAirPortTran.cs | 349 + Window/WinPayment/frmAirPortTran.designer.cs | 153 + Window/WinPayment/frmAirPortTran.resx | 123 + Window/WinPayment/frmAliPay.cs | 625 + Window/WinPayment/frmAliPay.designer.cs | 355 + Window/WinPayment/frmAliPay.resx | 120 + Window/WinPayment/frmBundleiTem.cs | 1542 + Window/WinPayment/frmBundleiTem.designer.cs | 585 + Window/WinPayment/frmBundleiTem.resx | 123 + Window/WinPayment/frmCakeChange.cs | 718 + Window/WinPayment/frmCakeChange.designer.cs | 504 + Window/WinPayment/frmCakeChange.resx | 135 + Window/WinPayment/frmCash.cs | 622 + Window/WinPayment/frmCash.designer.cs | 571 + Window/WinPayment/frmCash.resx | 120 + Window/WinPayment/frmCashBill.cs | 1670 ++ Window/WinPayment/frmCashBill.designer.cs | 655 + Window/WinPayment/frmCashBill.resx | 123 + Window/WinPayment/frmCheck.cs | 744 + Window/WinPayment/frmCheck.designer.cs | 510 + Window/WinPayment/frmCheck.resx | 1299 + Window/WinPayment/frmCouponDC.cs | 1337 + Window/WinPayment/frmCouponDC.designer.cs | 690 + Window/WinPayment/frmCouponDC.resx | 138 + Window/WinPayment/frmCpnSend.cs | 597 + Window/WinPayment/frmCpnSend.designer.cs | 556 + Window/WinPayment/frmCpnSend.resx | 151 + Window/WinPayment/frmCreditCard.Designer.cs | 788 + Window/WinPayment/frmCreditCard.cs | 2253 ++ Window/WinPayment/frmCreditCard.resx | 132 + Window/WinPayment/frmCustBrowse.Designer.cs | 572 + Window/WinPayment/frmCustBrowse.cs | 395 + Window/WinPayment/frmCustBrowse.resx | 132 + Window/WinPayment/frmCustSearch.cs | 826 + Window/WinPayment/frmCustSearch.designer.cs | 453 + Window/WinPayment/frmCustSearch.resx | 123 + Window/WinPayment/frmExchangeTicket.cs | 779 + .../WinPayment/frmExchangeTicket.designer.cs | 634 + Window/WinPayment/frmExchangeTicket.resx | 126 + Window/WinPayment/frmForeign.cs | 772 + Window/WinPayment/frmForeign.designer.cs | 532 + Window/WinPayment/frmForeign.resx | 144 + Window/WinPayment/frmGift.cs | 1557 + Window/WinPayment/frmGift.designer.cs | 983 + Window/WinPayment/frmGift.resx | 171 + Window/WinPayment/frmGiftApp.cs | 661 + Window/WinPayment/frmGiftApp.designer.cs | 397 + Window/WinPayment/frmGiftApp.resx | 123 + Window/WinPayment/frmHPGiftReChange.cs | 1818 ++ .../WinPayment/frmHPGiftReChange.designer.cs | 1113 + Window/WinPayment/frmHPGiftReChange.resx | 230 + Window/WinPayment/frmHPGiftReChangeNew.cs | 2268 ++ .../frmHPGiftReChangeNew.designer.cs | 1137 + Window/WinPayment/frmHPGiftReChangeNew.resx | 230 + Window/WinPayment/frmHappyGifHelp.Designer.cs | 119 + Window/WinPayment/frmHappyGifHelp.cs | 128 + Window/WinPayment/frmHappyGifHelp.resx | 120 + Window/WinPayment/frmHappyGiftCard.cs | 1643 ++ .../WinPayment/frmHappyGiftCard.designer.cs | 545 + Window/WinPayment/frmHappyGiftCard.resx | 123 + Window/WinPayment/frmHappyGiftUse.cs | 1078 + Window/WinPayment/frmHappyGiftUse.designer.cs | 544 + Window/WinPayment/frmHappyGiftUse.resx | 123 + Window/WinPayment/frmKorailMileage.cs | 519 + .../WinPayment/frmKorailMileage.designer.cs | 524 + Window/WinPayment/frmKorailMileage.resx | 174 + Window/WinPayment/frmMealTicket.cs | 1004 + Window/WinPayment/frmMealTicket.designer.cs | 848 + Window/WinPayment/frmMealTicket.resx | 147 + Window/WinPayment/frmMenualAppr.cs | 750 + Window/WinPayment/frmMenualAppr.designer.cs | 578 + Window/WinPayment/frmMenualAppr.resx | 120 + Window/WinPayment/frmMobileCoupon.cs | 1104 + Window/WinPayment/frmMobileCoupon.designer.cs | 538 + Window/WinPayment/frmMobileCoupon.resx | 120 + Window/WinPayment/frmMobileCouponHappyCon.cs | 1650 ++ .../frmMobileCouponHappyCon.designer.cs | 821 + .../WinPayment/frmMobileCouponHappyCon.resx | 189 + .../WinPayment/frmMobileCouponHappyConLog.cs | 697 + .../frmMobileCouponHappyConLog.designer.cs | 460 + .../frmMobileCouponHappyConLog.resx | 141 + Window/WinPayment/frmMultiSlectItemDc.cs | 1090 + .../frmMultiSlectItemDc.designer.cs | 696 + Window/WinPayment/frmMultiSlectItemDc.resx | 141 + Window/WinPayment/frmOnLineCoupon_China.cs | 552 + .../frmOnLineCoupon_China.designer.cs | 328 + Window/WinPayment/frmOnLineCoupon_China.resx | 120 + Window/WinPayment/frmOurHome.cs | 829 + Window/WinPayment/frmOurHome.designer.cs | 607 + Window/WinPayment/frmOurHome.resx | 120 + Window/WinPayment/frmPayBackGround.cs | 162 + .../WinPayment/frmPayBackGround.designer.cs | 71 + Window/WinPayment/frmPayBackGround.resx | 120 + Window/WinPayment/frmPayPda.cs | 612 + Window/WinPayment/frmPayPda.designer.cs | 313 + Window/WinPayment/frmPayPda.resx | 120 + Window/WinPayment/frmPntHappyCpn.cs | 1768 ++ Window/WinPayment/frmPntHappyCpn.designer.cs | 523 + Window/WinPayment/frmPntHappyCpn.resx | 123 + Window/WinPayment/frmPntHappyPoint.cs | 3221 +++ .../WinPayment/frmPntHappyPoint.designer.cs | 1436 + Window/WinPayment/frmPntHappyPoint.resx | 3994 +++ .../WinPayment/frmPntHappyPointSave_China.cs | 879 + .../frmPntHappyPointSave_China.designer.cs | 471 + .../frmPntHappyPointSave_China.resx | 120 + Window/WinPayment/frmPntHappyPointUse.cs | 1737 ++ .../frmPntHappyPointUse.designer.cs | 709 + Window/WinPayment/frmPntHappyPointUse.resx | 123 + .../WinPayment/frmPntHappyPointUse_China.cs | 812 + .../frmPntHappyPointUse_China.designer.cs | 434 + .../WinPayment/frmPntHappyPointUse_China.resx | 120 + Window/WinPayment/frmPntMemberUse.cs | 1352 + Window/WinPayment/frmPntMemberUse.designer.cs | 567 + Window/WinPayment/frmPntMemberUse.resx | 123 + Window/WinPayment/frmPntMobileCom.cs | 2070 ++ Window/WinPayment/frmPntMobileCom.designer.cs | 436 + Window/WinPayment/frmPntMobileCom.resx | 123 + Window/WinPayment/frmPntMobileUnity.cs | 3311 +++ .../WinPayment/frmPntMobileUnity.designer.cs | 667 + Window/WinPayment/frmPntMobileUnity.resx | 123 + Window/WinPayment/frmPntOcbSave.cs | 1106 + Window/WinPayment/frmPntOcbSave.designer.cs | 488 + Window/WinPayment/frmPntOcbSave.resx | 123 + Window/WinPayment/frmPointHPRegularCust.cs | 876 + .../frmPointHPRegularCust.designer.cs | 320 + Window/WinPayment/frmPointHPRegularCust.resx | 123 + Window/WinPayment/frmPointHappyPointAfter.cs | 1283 + .../frmPointHappyPointAfter.designer.cs | 776 + .../WinPayment/frmPointHappyPointAfter.resx | 123 + .../frmPointHappyPointAfter_China.cs | 663 + .../frmPointHappyPointAfter_China.designer.cs | 591 + .../frmPointHappyPointAfter_China.resx | 120 + Window/WinPayment/frmPrepaidCard.cs | 613 + Window/WinPayment/frmPrepaidCard.designer.cs | 434 + Window/WinPayment/frmPrepaidCard.resx | 123 + Window/WinPayment/frmPrepaidCard_China.cs | 877 + .../frmPrepaidCard_China.designer.cs | 438 + Window/WinPayment/frmPrepaidCard_China.resx | 120 + .../frmPunchhHappyPoint_US.Designer.cs | 686 + Window/WinPayment/frmPunchhHappyPoint_US.cs | 19 + Window/WinPayment/frmPunchhHappyPoint_US.resx | 120 + Window/WinPayment/frmSFCCard.cs | 1291 + Window/WinPayment/frmSFCCard.designer.cs | 371 + Window/WinPayment/frmSFCCard.resx | 123 + Window/WinPayment/frmSPCEmployeeDC.cs | 994 + .../WinPayment/frmSPCEmployeeDC.designer.cs | 464 + Window/WinPayment/frmSPCEmployeeDC.resx | 120 + Window/WinPayment/frmSPCEmployeeDC_China.cs | 691 + .../frmSPCEmployeeDC_China.designer.cs | 389 + Window/WinPayment/frmSPCEmployeeDC_China.resx | 120 + Window/WinPayment/frmSPCEmployeeUse.cs | 794 + .../WinPayment/frmSPCEmployeeUse.designer.cs | 538 + Window/WinPayment/frmSPCEmployeeUse.resx | 120 + Window/WinPayment/frmSaleOnCustomer.cs | 863 + .../WinPayment/frmSaleOnCustomer.designer.cs | 922 + Window/WinPayment/frmSaleOnCustomer.resx | 147 + Window/WinPayment/frmSamsungPoint.cs | 1501 + Window/WinPayment/frmSamsungPoint.designer.cs | 487 + Window/WinPayment/frmSamsungPoint.resx | 123 + Window/WinPayment/frmServiceCharge.cs | 432 + .../WinPayment/frmServiceCharge.designer.cs | 451 + Window/WinPayment/frmServiceCharge.resx | 120 + Window/WinPayment/frmSeveranceDC.cs | 778 + Window/WinPayment/frmSeveranceDC.designer.cs | 471 + Window/WinPayment/frmSeveranceDC.resx | 120 + Window/WinPayment/frmSeverancePay.cs | 942 + Window/WinPayment/frmSeverancePay.designer.cs | 553 + Window/WinPayment/frmSeverancePay.resx | 120 + Window/WinPayment/frmSmilePay.cs | 736 + Window/WinPayment/frmSmilePay.designer.cs | 470 + Window/WinPayment/frmSmilePay.resx | 120 + Window/WinPayment/frmTMoney.cs | 910 + Window/WinPayment/frmTMoney.designer.cs | 467 + Window/WinPayment/frmTMoney.resx | 120 + Window/WinPayment/frmTPay.cs | 1046 + Window/WinPayment/frmTPay.designer.cs | 644 + Window/WinPayment/frmTPay.resx | 192 + .../WinPayment/frmTPayConnectList.Designer.cs | 298 + Window/WinPayment/frmTPayConnectList.cs | 418 + Window/WinPayment/frmTPayConnectList.resx | 172 + Window/WinPayment/frmTotItemDc.cs | 852 + Window/WinPayment/frmTotItemDc.designer.cs | 448 + Window/WinPayment/frmTotItemDc.resx | 120 + Window/WinPayment/frmVenderSearch.Designer.cs | 470 + Window/WinPayment/frmVenderSearch.cs | 371 + Window/WinPayment/frmVenderSearch.resx | 132 + Window/WinPayment/frmVipLounge.cs | 498 + Window/WinPayment/frmVipLounge.designer.cs | 515 + Window/WinPayment/frmVipLounge.resx | 174 + Window/WinPayment/frmVipPoint.cs | 764 + Window/WinPayment/frmVipPoint.designer.cs | 624 + Window/WinPayment/frmVipPoint.resx | 123 + Window/WinPayment/frmWeChatPay.cs | 631 + Window/WinPayment/frmWeChatPay.designer.cs | 409 + Window/WinPayment/frmWeChatPay.resx | 120 + .../frmWeChatPayBaiRong.Designer.cs | 384 + Window/WinPayment/frmWeChatPayBaiRong.cs | 565 + Window/WinPayment/frmWeChatPayBaiRong.resx | 120 + Window/WinPayment/frmWelcomCard.cs | 1527 + Window/WinPayment/frmWelcomCard.designer.cs | 363 + Window/WinPayment/frmWelcomCard.resx | 126 + Window/WinPayment/frmXChargeAmt.cs | 391 + Window/WinPayment/frmXChargeAmt.designer.cs | 269 + Window/WinPayment/frmXChargeAmt.resx | 123 + Window/WinPayment/frmXiaoChengxu_GiftCard.cs | 550 + .../frmXiaoChengxu_GiftCard.designer.cs | 355 + .../WinPayment/frmXiaoChengxu_GiftCard.resx | 120 + Window/WinPayment/frm_PayMainBack.cs | 592 + Window/WinPayment/frm_PayMainBack.designer.cs | 414 + Window/WinPayment/frm_PayMainBack.resx | 120 + Window/WinPayment/frmiNStorDC.cs | 1050 + Window/WinPayment/frmiNStorDC.designer.cs | 421 + Window/WinPayment/frmiNStorDC.resx | 123 + Window/WinSale/Properties/AssemblyInfo.cs | 36 + .../WinSale/Properties/Resources.Designer.cs | 63 + Window/WinSale/Properties/Resources.resx | 120 + Window/WinSale/SaleMainProcess.cs | 9687 +++++++ Window/WinSale/WinSale.cs | 1302 + Window/WinSale/WinSale.csproj | 402 + Window/WinSale/frmDutchPay.cs | 972 + Window/WinSale/frmDutchPay.designer.cs | 550 + Window/WinSale/frmDutchPay.resx | 120 + Window/WinSale/frmHPAfterSave.cs | 913 + Window/WinSale/frmHPAfterSave.designer.cs | 652 + Window/WinSale/frmHPAfterSave.resx | 177 + .../WinSale/frmHappyOrderBarcode.Designer.cs | 181 + Window/WinSale/frmHappyOrderBarcode.cs | 288 + Window/WinSale/frmHappyOrderBarcode.resx | 120 + .../frmHappyOrderBarcodeRegMain.Designer.cs | 261 + Window/WinSale/frmHappyOrderBarcodeRegMain.cs | 405 + .../WinSale/frmHappyOrderBarcodeRegMain.resx | 120 + Window/WinSale/frmHappyOrderList.Designer.cs | 1264 + Window/WinSale/frmHappyOrderList.cs | 9169 ++++++ Window/WinSale/frmHappyOrderList.resx | 1037 + Window/WinSale/frmHappyOrderMsg.cs | 337 + Window/WinSale/frmHappyOrderMsg.designer.cs | 291 + Window/WinSale/frmHappyOrderMsg.resx | 120 + Window/WinSale/frmHappyOrderPopup.Designer.cs | 198 + Window/WinSale/frmHappyOrderPopup.cs | 467 + Window/WinSale/frmHappyOrderPopup.resx | 120 + .../frmHappyOrderWeightPrint.Designer.cs | 246 + Window/WinSale/frmHappyOrderWeightPrint.cs | 660 + Window/WinSale/frmHappyOrderWeightPrint.resx | 120 + Window/WinSale/frmHpSaveMsg.Designer.cs | 120 + Window/WinSale/frmHpSaveMsg.cs | 149 + Window/WinSale/frmHpSaveMsg.resx | 196 + Window/WinSale/frmMultiItem.cs | 271 + Window/WinSale/frmMultiItem.designer.cs | 230 + Window/WinSale/frmMultiItem.resx | 120 + Window/WinSale/frmOnLineCouponSch_China.cs | 549 + .../frmOnLineCouponSch_China.designer.cs | 383 + Window/WinSale/frmOnLineCouponSch_China.resx | 123 + Window/WinSale/frmReJournal.cs | 1665 ++ Window/WinSale/frmReJournal.designer.cs | 822 + Window/WinSale/frmReJournal.resx | 131 + Window/WinSale/frmRefundPay.cs | 1636 ++ Window/WinSale/frmRefundPay.designer.cs | 497 + Window/WinSale/frmRefundPay.resx | 123 + Window/WinSale/frmRefundRec.cs | 1429 + Window/WinSale/frmRefundRec.designer.cs | 662 + Window/WinSale/frmRefundRec.resx | 177 + Window/WinSale/frmReservedCustInfo.cs | 729 + .../WinSale/frmReservedCustInfo.designer.cs | 1627 ++ Window/WinSale/frmReservedCustInfo.resx | 174 + Window/WinSale/frmReservedFinsh.cs | 1101 + Window/WinSale/frmReservedFinsh.designer.cs | 638 + Window/WinSale/frmReservedFinsh.resx | 177 + Window/WinSale/frmSaleMain.Designer.cs | 3306 +++ Window/WinSale/frmSaleMain.cs | 12062 ++++++++ Window/WinSale/frmSaleMain.resx | 4163 +++ Window/WinSale/frmSalePreCard_China.cs | 1158 + .../WinSale/frmSalePreCard_China.designer.cs | 800 + Window/WinSale/frmSalePreCard_China.resx | 147 + Window/WinSale/frmSetMenuChg.cs | 235 + Window/WinSale/frmSetMenuChg.designer.cs | 187 + Window/WinSale/frmSetMenuChg.resx | 120 + Window/WinSale/frmTableMain.Designer.cs | 2043 ++ Window/WinSale/frmTableMain.cs | 6219 ++++ Window/WinSale/frmTableMain.resx | 151 + Window/WinSale/frmWebMasterDown.Designer.cs | 92 + Window/WinSale/frmWebMasterDown.cs | 201 + Window/WinSale/frmWebMasterDown.resx | 120 + Window/WinTable/Properties/AssemblyInfo.cs | 36 + .../WinTable/Properties/Resources.Designer.cs | 63 + Window/WinTable/Properties/Resources.resx | 120 + Window/WinTable/WinTable.cs | 152 + Window/WinTable/WinTable.csproj | 182 + Window/WinTable/frmKitchMsgList.Designer.cs | 336 + Window/WinTable/frmKitchMsgList.cs | 343 + Window/WinTable/frmKitchMsgList.resx | 171 + Window/WinTable/frmKtchMsg.Designer.cs | 510 + Window/WinTable/frmKtchMsg.cs | 617 + Window/WinTable/frmKtchMsg.resx | 189 + Window/WinTable/frmRegStorNotice.Designer.cs | 279 + Window/WinTable/frmRegStorNotice.cs | 190 + Window/WinTable/frmRegStorNotice.resx | 162 + Window/WinTable/frmReservMain.Designer.cs | 398 + Window/WinTable/frmReservMain.cs | 418 + Window/WinTable/frmReservMain.resx | 120 + Window/WinTable/frmReservReg.Designer.cs | 596 + Window/WinTable/frmReservReg.cs | 498 + Window/WinTable/frmReservReg.resx | 318 + Window/WinTable/frmTableItemMove.Designer.cs | 510 + Window/WinTable/frmTableItemMove.cs | 1009 + Window/WinTable/frmTableItemMove.resx | 189 + 1547 files changed, 768988 insertions(+) create mode 100644 .gitignore create mode 100644 Agent/Database/Activator.cs create mode 100644 Agent/Database/Database.csproj create mode 100644 Agent/Database/DatabaseMssql.cs create mode 100644 Agent/Database/Properties/AssemblyInfo.cs create mode 100644 Agent/InterfaceOutside/Activator.cs create mode 100644 Agent/InterfaceOutside/NetworkFtp.cs create mode 100644 Agent/InterfaceOutside/Properties/AssemblyInfo.cs create mode 100644 Agent/InterfaceOutside/TranInterfaceOutside.cs create mode 100644 Agent/InterfaceOutside/TranInterfaceOutside.csproj create mode 100644 Agent/KDS/Activator.cs create mode 100644 Agent/KDS/Common.cs create mode 100644 Agent/KDS/KDS.csproj create mode 100644 Agent/KDS/KDSMain.cs create mode 100644 Agent/KDS/Properties/AssemblyInfo.cs create mode 100644 Agent/KPS/Activator.cs create mode 100644 Agent/KPS/Common.cs create mode 100644 Agent/KPS/KPS.csproj create mode 100644 Agent/KPS/KPSMain.cs create mode 100644 Agent/KPS/LANPrint.cs create mode 100644 Agent/KPS/LabelPrinter.cs create mode 100644 Agent/KPS/OPOSPrint.cs create mode 100644 Agent/KPS/PrinterCommand.cs create mode 100644 Agent/KPS/Properties/AssemblyInfo.cs create mode 100644 Agent/KPS/SerialPrint.cs create mode 100644 Agent/KPS/frmKPS.Designer.cs create mode 100644 Agent/KPS/frmKPS.cs create mode 100644 Agent/KPS/frmKPS.resx create mode 100644 Agent/MasterDown/Activator.cs create mode 100644 Agent/MasterDown/BackgroundDown.csproj create mode 100644 Agent/MasterDown/BackgroundDownMain.cs create mode 100644 Agent/MasterDown/DatabaseMssql.cs create mode 100644 Agent/MasterDown/NetworkFtp.cs create mode 100644 Agent/MasterDown/NetworkIRT.cs create mode 100644 Agent/MasterDown/NetworkJSON.cs create mode 100644 Agent/MasterDown/Properties/AssemblyInfo.cs create mode 100644 Agent/MasterDown/Svr2Tran.cs create mode 100644 Agent/MasterDown/frmPosIrtMessage.Designer.cs create mode 100644 Agent/MasterDown/frmPosIrtMessage.cs create mode 100644 Agent/MasterDown/frmPosIrtMessage.resx create mode 100644 Agent/Measuring/Activator.cs create mode 100644 Agent/Measuring/LabelPrinter.cs create mode 100644 Agent/Measuring/Measuring.csproj create mode 100644 Agent/Measuring/MeasuringMain.cs create mode 100644 Agent/Measuring/Properties/AssemblyInfo.cs create mode 100644 Agent/Measuring/Scale.cs create mode 100644 Agent/Measuring/ScalePoleDisplay.cs create mode 100644 Agent/Network/Activator.cs create mode 100644 Agent/Network/Network.csproj create mode 100644 Agent/Network/NetworkFtp.cs create mode 100644 Agent/Network/NetworkHttp.cs create mode 100644 Agent/Network/NetworkIRT.cs create mode 100644 Agent/Network/NetworkJSON.cs create mode 100644 Agent/Network/NetworkVanSPCN.cs create mode 100644 Agent/Network/Properties/AssemblyInfo.cs create mode 100644 Agent/NetworkCheckOver/Activator.cs create mode 100644 Agent/NetworkCheckOver/CheckOverDetail.cs create mode 100644 Agent/NetworkCheckOver/NetworkCheckOver.cs create mode 100644 Agent/NetworkCheckOver/NetworkCheckOver.csproj create mode 100644 Agent/NetworkCheckOver/Properties/AssemblyInfo.cs create mode 100644 Agent/NetworkTranSend/Activator.cs create mode 100644 Agent/NetworkTranSend/NetworkTranSend.cs create mode 100644 Agent/NetworkTranSend/NetworkTranSend.csproj create mode 100644 Agent/NetworkTranSend/Properties/AssemblyInfo.cs create mode 100644 Agent/OLEDevice/Activator.cs create mode 100644 Agent/OLEDevice/DeviceCashdrawer.cs create mode 100644 Agent/OLEDevice/DeviceCatTerminal.cs create mode 100644 Agent/OLEDevice/DeviceICReader.cs create mode 100644 Agent/OLEDevice/DeviceLabelPrinter.cs create mode 100644 Agent/OLEDevice/DeviceLineDisplay.cs create mode 100644 Agent/OLEDevice/DeviceMsr.cs create mode 100644 Agent/OLEDevice/DeviceOurHome.cs create mode 100644 Agent/OLEDevice/DevicePosPrinter.cs create mode 100644 Agent/OLEDevice/DeviceScale.cs create mode 100644 Agent/OLEDevice/DeviceScanner.cs create mode 100644 Agent/OLEDevice/DeviceSignPad.cs create mode 100644 Agent/OLEDevice/DeviceTPaygle.cs create mode 100644 Agent/OLEDevice/OCBDirect.cs create mode 100644 Agent/OLEDevice/OLEDevice.csproj create mode 100644 Agent/OLEDevice/Properties/AssemblyInfo.cs create mode 100644 Agent/OLEDevice/frmDeviceOurHome.Designer.cs create mode 100644 Agent/OLEDevice/frmDeviceOurHome.cs create mode 100644 Agent/OLEDevice/frmDeviceOurHome.resx create mode 100644 Dropimage/Bl_bar.png create mode 100644 Dropimage/Bl_discount.png create mode 100644 Dropimage/Bl_num1.png create mode 100644 Dropimage/Bl_num2.png create mode 100644 Dropimage/Bl_num3.png create mode 100644 Dropimage/Btn_coupondelete.png create mode 100644 Dropimage/Btn_toggle_off.png create mode 100644 Dropimage/Btn_toggle_on.png create mode 100644 Dropimage/Ic_Basket.png create mode 100644 Dropimage/Ic_ai_off.png create mode 100644 Dropimage/Ic_ai_on.png create mode 100644 Dropimage/Ic_mylist_d.png create mode 100644 Dropimage/Ic_mylist_n.png create mode 100644 Dropimage/Ic_mylist_s.png create mode 100644 Dropimage/Ic_mylist_x.png create mode 100644 Dropimage/Ic_order_off.png create mode 100644 Dropimage/Ic_order_on.png create mode 100644 Dropimage/Ic_totalcost.png create mode 100644 Dropimage/Img_bell.png create mode 100644 Dropimage/Img_best.png create mode 100644 Dropimage/Img_main_logo.png create mode 100644 Dropimage/Img_new.png create mode 100644 Dropimage/Img_page_dot_off.png create mode 100644 Dropimage/Img_page_dot_on.png create mode 100644 Dropimage/Img_qr.png create mode 100644 Dropimage/Img_qr_Android.png create mode 100644 Dropimage/Img_qr_bg.png create mode 100644 Dropimage/Img_qr_iOS.png create mode 100644 Dropimage/basket_list_bg.png create mode 100644 Dropimage/basket_pop_bg.png create mode 100644 Dropimage/basket_pop_bg2.png create mode 100644 Dropimage/bg_basket_box.png create mode 100644 Dropimage/bg_basket_none.png create mode 100644 Dropimage/btn_addorder2_f.png create mode 100644 Dropimage/btn_addorder2_n.png create mode 100644 Dropimage/btn_addorder3_f.png create mode 100644 Dropimage/btn_addorder3_n.png create mode 100644 Dropimage/btn_addorder_b.png create mode 100644 Dropimage/btn_addorder_bb.png create mode 100644 Dropimage/btn_addorder_camerascan_f.png create mode 100644 Dropimage/btn_addorder_camerascan_n.png create mode 100644 Dropimage/btn_addorder_f.png create mode 100644 Dropimage/btn_addorder_n.png create mode 100644 Dropimage/btn_addorder_payment_f.png create mode 100644 Dropimage/btn_addorder_payment_n.png create mode 100644 Dropimage/btn_addorder_selforder_f.png create mode 100644 Dropimage/btn_addorder_selforder_n.png create mode 100644 Dropimage/btn_basket_delete.png create mode 100644 Dropimage/btn_basket_plus.png create mode 100644 Dropimage/btn_camerascan_start.png create mode 100644 Dropimage/btn_check_n.png create mode 100644 Dropimage/btn_check_s.png create mode 100644 Dropimage/btn_count_minus_n.png create mode 100644 Dropimage/btn_count_minus_p.png create mode 100644 Dropimage/btn_count_plus_n.png create mode 100644 Dropimage/btn_count_plus_p.png create mode 100644 Dropimage/btn_coupon_d.png create mode 100644 Dropimage/btn_coupon_n.png create mode 100644 Dropimage/btn_coupon_p.png create mode 100644 Dropimage/btn_coupon_s.png create mode 100644 Dropimage/btn_delete.png create mode 100644 Dropimage/btn_delete_2.png create mode 100644 Dropimage/btn_delete_2_p.png create mode 100644 Dropimage/btn_gift_n.png create mode 100644 Dropimage/btn_gift_s.png create mode 100644 Dropimage/btn_happypoint_d.png create mode 100644 Dropimage/btn_happypoint_info.png create mode 100644 Dropimage/btn_happypoint_n.png create mode 100644 Dropimage/btn_help.png create mode 100644 Dropimage/btn_language_chi.png create mode 100644 Dropimage/btn_language_eng.png create mode 100644 Dropimage/btn_language_jap.png create mode 100644 Dropimage/btn_language_kor.png create mode 100644 Dropimage/btn_main_camerascan_f.png create mode 100644 Dropimage/btn_main_camerascan_n.png create mode 100644 Dropimage/btn_main_menu_n.png create mode 100644 Dropimage/btn_main_menu_p.png create mode 100644 Dropimage/btn_main_selforder_f.png create mode 100644 Dropimage/btn_main_selforder_n.png create mode 100644 Dropimage/btn_minus.png create mode 100644 Dropimage/btn_number.png create mode 100644 Dropimage/btn_number2.png create mode 100644 Dropimage/btn_number_0.png create mode 100644 Dropimage/btn_number_1.png create mode 100644 Dropimage/btn_number_2.png create mode 100644 Dropimage/btn_number_3.png create mode 100644 Dropimage/btn_number_4.png create mode 100644 Dropimage/btn_number_5.png create mode 100644 Dropimage/btn_number_6.png create mode 100644 Dropimage/btn_number_7.png create mode 100644 Dropimage/btn_number_8.png create mode 100644 Dropimage/btn_number_9.png create mode 100644 Dropimage/btn_number_all_n.png create mode 100644 Dropimage/btn_number_all_p.png create mode 100644 Dropimage/btn_number_c.png create mode 100644 Dropimage/btn_number_d.png create mode 100644 Dropimage/btn_option.png create mode 100644 Dropimage/btn_option_n.png create mode 100644 Dropimage/btn_option_s.png create mode 100644 Dropimage/btn_page_after_n.png create mode 100644 Dropimage/btn_page_before_n.png create mode 100644 Dropimage/btn_pay_ali_n.png create mode 100644 Dropimage/btn_pay_back_n.png create mode 100644 Dropimage/btn_pay_bluemembers_n.png create mode 100644 Dropimage/btn_pay_cashbee_n.png create mode 100644 Dropimage/btn_pay_creditcard_n.png create mode 100644 Dropimage/btn_pay_happyapp_d.png create mode 100644 Dropimage/btn_pay_happyapp_f.png create mode 100644 Dropimage/btn_pay_happyapp_n.png create mode 100644 Dropimage/btn_pay_happygift_n.png create mode 100644 Dropimage/btn_pay_happypoint_d.png create mode 100644 Dropimage/btn_pay_happypoint_f.png create mode 100644 Dropimage/btn_pay_happypoint_n.png create mode 100644 Dropimage/btn_pay_hyundai_n.png create mode 100644 Dropimage/btn_pay_hyundaioilbank_n.png create mode 100644 Dropimage/btn_pay_kakao_n.png create mode 100644 Dropimage/btn_pay_kiaredmembers_n.png create mode 100644 Dropimage/btn_pay_kt_d.png create mode 100644 Dropimage/btn_pay_kt_f.png create mode 100644 Dropimage/btn_pay_kt_n.png create mode 100644 Dropimage/btn_pay_lg_d.png create mode 100644 Dropimage/btn_pay_lg_f.png create mode 100644 Dropimage/btn_pay_lg_n.png create mode 100644 Dropimage/btn_pay_mobilecoupon_d.png create mode 100644 Dropimage/btn_pay_mobilecoupon_f.png create mode 100644 Dropimage/btn_pay_mobilecoupon_n.png create mode 100644 Dropimage/btn_pay_more_n.png create mode 100644 Dropimage/btn_pay_ocb_d.png create mode 100644 Dropimage/btn_pay_ocb_f.png create mode 100644 Dropimage/btn_pay_ocb_n.png create mode 100644 Dropimage/btn_pay_samsung_n.png create mode 100644 Dropimage/btn_pay_samsunglg_n.png create mode 100644 Dropimage/btn_pay_shinhan_n.png create mode 100644 Dropimage/btn_pay_sk_d.png create mode 100644 Dropimage/btn_pay_sk_f.png create mode 100644 Dropimage/btn_pay_sk_n.png create mode 100644 Dropimage/btn_pay_smile_n.png create mode 100644 Dropimage/btn_pay_spc2_d.png create mode 100644 Dropimage/btn_pay_spc2_f.png create mode 100644 Dropimage/btn_pay_spc2_n.png create mode 100644 Dropimage/btn_pay_spc_n.png create mode 100644 Dropimage/btn_pay_tmoney_n.png create mode 100644 Dropimage/btn_pay_zero_n.png create mode 100644 Dropimage/btn_plus.png create mode 100644 Dropimage/btn_pop_chi_n.png create mode 100644 Dropimage/btn_pop_chi_s.png create mode 100644 Dropimage/btn_pop_eng_n.png create mode 100644 Dropimage/btn_pop_eng_s.png create mode 100644 Dropimage/btn_pop_jap_n.png create mode 100644 Dropimage/btn_pop_jap_s.png create mode 100644 Dropimage/btn_pop_kor_n.png create mode 100644 Dropimage/btn_pop_kor_s.png create mode 100644 Dropimage/btn_reset.png create mode 100644 Dropimage/btn_store.png create mode 100644 Dropimage/btn_store_agree_n.png create mode 100644 Dropimage/btn_store_agree_n2.png create mode 100644 Dropimage/btn_store_agree_s.png create mode 100644 Dropimage/discount_bar.png create mode 100644 Dropimage/happy_member_gold.png create mode 100644 Dropimage/happy_member_pink.png create mode 100644 Dropimage/happy_member_platinum.png create mode 100644 Dropimage/ic_alert_cancel.png create mode 100644 Dropimage/ic_alert_check.png create mode 100644 Dropimage/ic_alert_coupon.png create mode 100644 Dropimage/ic_alert_delete.png create mode 100644 Dropimage/ic_alert_discountcancel.png create mode 100644 Dropimage/ic_alert_error.png create mode 100644 Dropimage/ic_alert_fail.png create mode 100644 Dropimage/ic_alert_giftcancel.png create mode 100644 Dropimage/ic_alert_help.png create mode 100644 Dropimage/ic_alert_ing.gif create mode 100644 Dropimage/ic_alert_ing2.gif create mode 100644 Dropimage/ic_alert_listcancel.png create mode 100644 Dropimage/ic_alert_ordercancel.png create mode 100644 Dropimage/ic_alert_payment.png create mode 100644 Dropimage/ic_info.png create mode 100644 Dropimage/ic_info_x.png create mode 100644 Dropimage/ic_option.png create mode 100644 Dropimage/ic_option_candle.png create mode 100644 Dropimage/ic_option_flavor.png create mode 100644 Dropimage/ic_option_shot.png create mode 100644 Dropimage/ic_option_takein.png create mode 100644 Dropimage/ic_point.png create mode 100644 Dropimage/ic_store.png create mode 100644 Dropimage/ic_talk.png create mode 100644 Dropimage/ic_won.png create mode 100644 Dropimage/img_cashreceipt.png create mode 100644 Dropimage/img_check_bg.png create mode 100644 Dropimage/img_contents.png create mode 100644 Dropimage/img_contents_default.png create mode 100644 Dropimage/img_contents_soldout.png create mode 100644 Dropimage/img_event.png create mode 100644 Dropimage/img_gif_1.png create mode 100644 Dropimage/img_gif_barcode.gif create mode 100644 Dropimage/img_gif_barcode.mp4 create mode 100644 Dropimage/img_gif_barcode_happy.avi create mode 100644 Dropimage/img_gif_barcode_happy.gif create mode 100644 Dropimage/img_gif_barcodescan.gif create mode 100644 Dropimage/img_gif_barcodescan.mp4 create mode 100644 Dropimage/img_gif_camerascan.gif create mode 100644 Dropimage/img_gif_card.gif create mode 100644 Dropimage/img_gif_nfc.gif create mode 100644 Dropimage/img_gif_pay.gif create mode 100644 Dropimage/img_like.png create mode 100644 Dropimage/img_point.png create mode 100644 Dropimage/img_receipt.png create mode 100644 Dropimage/img_talk.png create mode 100644 Dropimage/nextstation_button.jpg create mode 100644 Dropimage/nextstation_img.jpg create mode 100644 Dropimage/step01.png create mode 100644 Dropimage/step02.png create mode 100644 Dropimage/step03.png create mode 100644 Dropimage/step_bg.png create mode 100644 Dropimage/store_bg.png create mode 100644 ImageCopy.bat create mode 100644 Kiosk/Common/SPC.Kiosk.Base/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Base/RelayCommand.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Base/SPC.Kiosk.Base.csproj create mode 100644 Kiosk/Common/SPC.Kiosk.Base/ViewModelBase.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common.Model/CommonModel.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common.Model/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common.Model/SPC.Kiosk.Common.Model.csproj create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/MutiLanguageTextBlock.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Converters/CommonConverters.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/AiScannerProcess.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/Animations.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/CacheManager.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/CommonChecker.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/CommonConverter.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/CommonFunction.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/CommonLog.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/CommonValue.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/KioskMessageBox.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/Languages.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/PopupMessageBox.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/ResourceManager.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Functions/WaitWindow.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Models/CommonModel.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_left_basic.png create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_left_press.png create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_right_basic.png create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_right_press.png create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Resource/ic_alert_ing.gif create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Resource/wait_circle.png create mode 100644 Kiosk/Common/SPC.Kiosk.Common/SPC.Kiosk.Common.csproj create mode 100644 Kiosk/Common/SPC.Kiosk.Common/Types/CommonTypes.cs create mode 100644 Kiosk/Common/SPC.Kiosk.Common/packages.config create mode 100644 Kiosk/Common/SPC.Kiosk.DataHelper/BackDataService.cs create mode 100644 Kiosk/Common/SPC.Kiosk.DataHelper/CommonDataHelper.cs create mode 100644 Kiosk/Common/SPC.Kiosk.DataHelper/PosDataService.cs create mode 100644 Kiosk/Common/SPC.Kiosk.DataHelper/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Common/SPC.Kiosk.DataHelper/SPC.Kiosk.DataHelper.csproj create mode 100644 Kiosk/PB/SPC.Kiosk.PB.Model/PBModels.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB.Model/Properties/AssemblyInfo.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB.Model/SPC.Kiosk.PB.Model.csproj create mode 100644 Kiosk/PB/SPC.Kiosk.PB.Model/Types.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBPaymentsViewModel.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBViewModel.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB.ViewModel/Properties/AssemblyInfo.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB.ViewModel/SPC.Kiosk.PB.ViewModel.csproj create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml create mode 100644 Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/Properties/AssemblyInfo.cs create mode 100644 Kiosk/PB/SPC.Kiosk.PB/SPC.Kiosk.PB.csproj create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/SPC.Kiosk.Payments.csproj create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/posHappyPoint.cs create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/posLastPayments.cs create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/posMobileCompanyDiscount.cs create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/posMobileHappyCoupon.cs create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/posOkCashBag.cs create mode 100644 Kiosk/Payments/SPC.Kiosk.Payments/posPaymentsCancel.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/Functions.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_HappyPointReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MiniPopup.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCompanyReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCouponReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NhsFuncInfoItem.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NumberPadImages.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OkCashBagReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OptionReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentEndReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentReturn.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/M_StoreAgree.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/SPC.Kiosk.Popup.Model.csproj create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.Model/Types.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/PopupViewModelBase.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/SPC.Kiosk.Popup.ViewModel.csproj create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmCallEmployee.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCertify.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCoupon.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointUsing.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmLanguageSelector.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMiniPopup.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileCompanyMemberCertify.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileHappyCoupon.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmNumPadPopup.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagCertify.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagUsing.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOptionSelect.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentProcess.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentsEnd.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmStepInfoPopup.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/PopupManager.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/SPC.Kiosk.Popup.csproj create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml.cs create mode 100644 Kiosk/Popup/SPC.Kiosk.Popup/packages.config create mode 100644 Kiosk/Start/SPC.Kiosk.Start.Model/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Start/SPC.Kiosk.Start.Model/SPC.Kiosk.Start.Model.csproj create mode 100644 Kiosk/Start/SPC.Kiosk.Start.Model/m_InitImage.cs create mode 100644 Kiosk/Start/SPC.Kiosk.Start.ViewModel/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Start/SPC.Kiosk.Start.ViewModel/SPC.Kiosk.Start.ViewModel.csproj create mode 100644 Kiosk/Start/SPC.Kiosk.Start.ViewModel/StartViewModel.cs create mode 100644 Kiosk/Start/SPC.Kiosk.Start/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Start/SPC.Kiosk.Start/SPC.Kiosk.Start.csproj create mode 100644 Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml create mode 100644 Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml.cs create mode 100644 Kiosk/Start/SPC.Kiosk.Start/packages.config create mode 100644 Kiosk/Test/KioskTest/App.xaml create mode 100644 Kiosk/Test/KioskTest/App.xaml.cs create mode 100644 Kiosk/Test/KioskTest/KioskTest.csproj create mode 100644 Kiosk/Test/KioskTest/MainWindow.xaml create mode 100644 Kiosk/Test/KioskTest/MainWindow.xaml.cs create mode 100644 Kiosk/Test/KioskTest/Properties/AssemblyInfo.cs create mode 100644 Kiosk/Test/KioskTest/Properties/Resources.Designer.cs create mode 100644 Kiosk/Test/KioskTest/Properties/Resources.resx create mode 100644 Kiosk/Test/KioskTest/Properties/Settings.Designer.cs create mode 100644 Kiosk/Test/KioskTest/Properties/Settings.settings create mode 100644 Kiosk/Test/KioskTest/window_icon_spc_icon.ico create mode 100644 Library/Common/AES.cs create mode 100644 Library/Common/Common.csproj create mode 100644 Library/Common/FTP.cs create mode 100644 Library/Common/Globalization.cs create mode 100644 Library/Common/InterfaceLists.cs create mode 100644 Library/Common/ItemColumn.cs create mode 100644 Library/Common/ItemConst.cs create mode 100644 Library/Common/KioskLists.cs create mode 100644 Library/Common/MasterLists.cs create mode 100644 Library/Common/PosConst.cs create mode 100644 Library/Common/PosKey.cs create mode 100644 Library/Common/PosOLEDevice.cs create mode 100644 Library/Common/Properties/AssemblyInfo.cs create mode 100644 Library/Common/ServiceLists.cs create mode 100644 Library/Common/SqlDB.cs create mode 100644 Library/Common/StatusOfStateServer.cs create mode 100644 Library/Common/TcpSocket.cs create mode 100644 Library/Common/TcpSocketClient.cs create mode 100644 Library/Common/Utility.cs create mode 100644 Library/CommonManager/CommonManager.csproj create mode 100644 Library/CommonManager/FormDisplayTricker.cs create mode 100644 Library/CommonManager/FormManager.cs create mode 100644 Library/CommonManager/ImageManager.cs create mode 100644 Library/CommonManager/MasterListManager.cs create mode 100644 Library/CommonManager/MessageManager.cs create mode 100644 Library/CommonManager/PosMstManager.cs create mode 100644 Library/CommonManager/Properties/AssemblyInfo.cs create mode 100644 Library/CommonManager/Properties/Resources.Designer.cs create mode 100644 Library/CommonManager/Properties/Resources.resx create mode 100644 Library/CommonManager/SManager.cs create mode 100644 Library/CommonManager/WinManager.cs create mode 100644 Library/CommonManager/frmMessageBox.Designer.cs create mode 100644 Library/CommonManager/frmMessageBox.cs create mode 100644 Library/CommonManager/frmMessageBox.resx create mode 100644 Library/CommonManager/frmSearchMessage.Designer.cs create mode 100644 Library/CommonManager/frmSearchMessage.cs create mode 100644 Library/CommonManager/frmSearchMessage.resx create mode 100644 Library/FluentFTP/Extensions/GetChecksum.cs create mode 100644 Library/FluentFTP/Extensions/MD5.cs create mode 100644 Library/FluentFTP/Extensions/XCRC.cs create mode 100644 Library/FluentFTP/Extensions/XMD5.cs create mode 100644 Library/FluentFTP/Extensions/XSHA1.cs create mode 100644 Library/FluentFTP/Extensions/XSHA256.cs create mode 100644 Library/FluentFTP/Extensions/XSHA512.cs create mode 100644 Library/FluentFTP/FluentFTP.csproj create mode 100644 Library/FluentFTP/FluentFTP.nuspec create mode 100644 Library/FluentFTP/FtpClient.cs create mode 100644 Library/FluentFTP/FtpDataStream.cs create mode 100644 Library/FluentFTP/FtpEnums.cs create mode 100644 Library/FluentFTP/FtpExceptions.cs create mode 100644 Library/FluentFTP/FtpExtensions.cs create mode 100644 Library/FluentFTP/FtpHash.cs create mode 100644 Library/FluentFTP/FtpListItem.cs create mode 100644 Library/FluentFTP/FtpReply.cs create mode 100644 Library/FluentFTP/FtpSocketStream.cs create mode 100644 Library/FluentFTP/FtpTrace.cs create mode 100644 Library/FluentFTP/NET2Compatibility.cs create mode 100644 Library/FluentFTP/Properties/AssemblyInfo.cs create mode 100644 Library/FluentFTP/Proxy/FtpClientHttp11Proxy.cs create mode 100644 Library/FluentFTP/Proxy/FtpClientProxy.cs create mode 100644 Library/FluentFTP/Proxy/FtpClientUserAtHostProxy.cs create mode 100644 Library/FluentFTP/Proxy/ProxyInfo.cs create mode 100644 SPC.Kiosk.DataHelper/CommonDataHelper.cs create mode 100644 SPC.Kiosk.DataHelper/PBDataHelper.cs create mode 100644 SPC.Kiosk.DataHelper/Properties/AssemblyInfo.cs create mode 100644 SPC.Kiosk.DataHelper/SPC.Kiosk.DataHelper.csproj create mode 100644 SRC_POS.MSR.sln create mode 100644 SRC_POS.TEST.sln create mode 100644 SRC_POS.sln create mode 100644 Service/AsvCampaign/Activator.cs create mode 100644 Service/AsvCampaign/AsvCampaign.csproj create mode 100644 Service/AsvCampaign/CampaignBase.cs create mode 100644 Service/AsvCampaign/CampaignMain.cs create mode 100644 Service/AsvCampaign/Properties/AssemblyInfo.cs create mode 100644 Service/AsvCampaign/Properties/Resources.Designer.cs create mode 100644 Service/AsvCampaign/Properties/Resources.resx create mode 100644 Service/AsvCampaign/frmCampPresent.cs create mode 100644 Service/AsvCampaign/frmCampPresent.designer.cs create mode 100644 Service/AsvCampaign/frmCampPresent.resx create mode 100644 Service/AsvCampaign/frmInputDataMin.cs create mode 100644 Service/AsvCampaign/frmInputDataMin.designer.cs create mode 100644 Service/AsvCampaign/frmInputDataMin.resx create mode 100644 Service/AsvCustDisplay/Activator.cs create mode 100644 Service/AsvCustDisplay/AsvCustDisplay.csproj create mode 100644 Service/AsvCustDisplay/CustDisplay.cs create mode 100644 Service/AsvCustDisplay/NamedPipe.cs create mode 100644 Service/AsvCustDisplay/Properties/AssemblyInfo.cs create mode 100644 Service/AsvCustDisplay/Properties/Resources.Designer.cs create mode 100644 Service/AsvCustDisplay/Properties/Resources.resx create mode 100644 Service/AsvCustDisplay/frmCustDisplay.Designer.cs create mode 100644 Service/AsvCustDisplay/frmCustDisplay.cs create mode 100644 Service/AsvCustDisplay/frmCustDisplay.resx create mode 100644 Service/AsvCustDisplay/frmCustDisplayPipe.Designer.cs create mode 100644 Service/AsvCustDisplay/frmCustDisplayPipe.cs create mode 100644 Service/AsvCustDisplay/frmCustDisplayPipe.resx create mode 100644 Service/AsvCustDisplay/frmCustDisplayPipeDT.cs create mode 100644 Service/AsvCustDisplay/frmCustDisplayPipeDT.designer.cs create mode 100644 Service/AsvCustDisplay/frmCustDisplayPipeDT.resx create mode 100644 Service/AsvCustDisplay/frmScreenSaver.Designer.cs create mode 100644 Service/AsvCustDisplay/frmScreenSaver.cs create mode 100644 Service/AsvCustDisplay/frmScreenSaver.resx create mode 100644 Service/AsvDataProcess/Activator.cs create mode 100644 Service/AsvDataProcess/AsvDataProcess.csproj create mode 100644 Service/AsvDataProcess/DataCommon.cs create mode 100644 Service/AsvDataProcess/DataService.cs create mode 100644 Service/AsvDataProcess/MakeTranLog.cs create mode 100644 Service/AsvDataProcess/PosReceipt.cs create mode 100644 Service/AsvDataProcess/PosReceiptBase.cs create mode 100644 Service/AsvDataProcess/PosReceiptOpenClose.cs create mode 100644 Service/AsvDataProcess/PosReceiptOrderSheet.cs create mode 100644 Service/AsvDataProcess/PosSaleExact.cs create mode 100644 Service/AsvDataProcess/Properties/AssemblyInfo.cs create mode 100644 Service/AsvDataProcess/SaleComplete.cs create mode 100644 Service/AsvDataProcess/frmExIrtMessage.Designer.cs create mode 100644 Service/AsvDataProcess/frmExIrtMessage.cs create mode 100644 Service/AsvDataProcess/frmExIrtMessage.resx create mode 100644 Service/AsvDataProcess/frmPosIrtMessage.Designer.cs create mode 100644 Service/AsvDataProcess/frmPosIrtMessage.cs create mode 100644 Service/AsvDataProcess/frmPosIrtMessage.resx create mode 100644 Service/AsvDataProcess/frmPrtData.Designer.cs create mode 100644 Service/AsvDataProcess/frmPrtData.cs create mode 100644 Service/AsvDataProcess/frmPrtData.resx create mode 100644 Service/AsvDataProcess/frmTcpClientMsg.Designer.cs create mode 100644 Service/AsvDataProcess/frmTcpClientMsg.cs create mode 100644 Service/AsvDataProcess/frmTcpClientMsg.resx create mode 100644 Service/AsvDataProcess/frmVanMessage.cs create mode 100644 Service/AsvDataProcess/frmVanMessage.designer.cs create mode 100644 Service/AsvDataProcess/frmVanMessage.resx create mode 100644 Service/AsvMaster/Activator.cs create mode 100644 Service/AsvMaster/AsvMaster.csproj create mode 100644 Service/AsvMaster/CashierMaster.cs create mode 100644 Service/AsvMaster/PayDcMaster.cs create mode 100644 Service/AsvMaster/PosMaster.cs create mode 100644 Service/AsvMaster/Properties/AssemblyInfo.cs create mode 100644 Service/BsvAdmin/Activator.cs create mode 100644 Service/BsvAdmin/BsvAdmin.csproj create mode 100644 Service/BsvAdmin/CustomerClaim.cs create mode 100644 Service/BsvAdmin/DataSearch.cs create mode 100644 Service/BsvAdmin/EtcPvc.cs create mode 100644 Service/BsvAdmin/EtcReceipt.cs create mode 100644 Service/BsvAdmin/Integrity.cs create mode 100644 Service/BsvAdmin/PosConfigSync.cs create mode 100644 Service/BsvAdmin/PosSpec.cs create mode 100644 Service/BsvAdmin/Properties/AssemblyInfo.cs create mode 100644 Service/BsvAdmin/ResendTranToOutside.cs create mode 100644 Service/BsvAdmin/TestMode.cs create mode 100644 Service/BsvAdmin/TranResend.cs create mode 100644 Service/BsvAdmin/VisitGovernment.cs create mode 100644 Service/BsvBasic/Activator.cs create mode 100644 Service/BsvBasic/BsvBasic.csproj create mode 100644 Service/BsvBasic/DmbIF.cs create mode 100644 Service/BsvBasic/EmpCommute.cs create mode 100644 Service/BsvBasic/EtcInEmp.cs create mode 100644 Service/BsvBasic/ICReaderUpdate.cs create mode 100644 Service/BsvBasic/MasterDown.cs create mode 100644 Service/BsvBasic/PosNoticeCom.cs create mode 100644 Service/BsvBasic/Properties/AssemblyInfo.cs create mode 100644 Service/BsvBasic/SaleReceipt.cs create mode 100644 Service/BsvBasic/SchEvt.cs create mode 100644 Service/BsvBasic/SchHpLate.cs create mode 100644 Service/BsvBasic/SchKtchOrder.cs create mode 100644 Service/BsvBasic/SchReturnCompany.cs create mode 100644 Service/BsvBasic/SchShipment.cs create mode 100644 Service/BsvBasic/SchStorArrvInfo.cs create mode 100644 Service/BsvBasic/SignPadUpdate.cs create mode 100644 Service/BsvBasic/WebPos.cs create mode 100644 Service/BsvFoodMaster/Activator.cs create mode 100644 Service/BsvFoodMaster/BsvTable.csproj create mode 100644 Service/BsvFoodMaster/Properties/AssemblyInfo.cs create mode 100644 Service/BsvFoodMaster/ReservationService.cs create mode 100644 Service/BsvFoodMaster/TableService.cs create mode 100644 Service/BsvOpenClose/AccADMT.cs create mode 100644 Service/BsvOpenClose/AccEtcInout.cs create mode 100644 Service/BsvOpenClose/AccRemoney.cs create mode 100644 Service/BsvOpenClose/Activator.cs create mode 100644 Service/BsvOpenClose/BsvOpenClose.csproj create mode 100644 Service/BsvOpenClose/CalDataIF.cs create mode 100644 Service/BsvOpenClose/CashierLogOn.cs create mode 100644 Service/BsvOpenClose/DeviceService.cs create mode 100644 Service/BsvOpenClose/LoadMasterInfo.cs create mode 100644 Service/BsvOpenClose/NoticeCampaignInfo.cs create mode 100644 Service/BsvOpenClose/PrepStorNotice.cs create mode 100644 Service/BsvOpenClose/ProgramStart.cs create mode 100644 Service/BsvOpenClose/Properties/AssemblyInfo.cs create mode 100644 Service/BsvOpenClose/ReadConfigInfo.cs create mode 100644 Service/BsvOpenClose/SaleOpen.cs create mode 100644 Service/BsvOpenClose/SaveConfigInfo.cs create mode 100644 Service/BsvOpenClose/StoreCheck.cs create mode 100644 Service/BsvOpenClose/StoreEquipCheck.cs create mode 100644 Service/BsvPayment/Activator.cs create mode 100644 Service/BsvPayment/AirPortTran.cs create mode 100644 Service/BsvPayment/AliPay.cs create mode 100644 Service/BsvPayment/BsvPayment.csproj create mode 100644 Service/BsvPayment/CakeChange.cs create mode 100644 Service/BsvPayment/Cash.cs create mode 100644 Service/BsvPayment/CashBill.cs create mode 100644 Service/BsvPayment/CouponDC.cs create mode 100644 Service/BsvPayment/CpnSend.cs create mode 100644 Service/BsvPayment/CreditCard.cs create mode 100644 Service/BsvPayment/ExchangeTicket.cs create mode 100644 Service/BsvPayment/Foreign.cs create mode 100644 Service/BsvPayment/Gift.cs create mode 100644 Service/BsvPayment/GiftApp.cs create mode 100644 Service/BsvPayment/HappyGift.cs create mode 100644 Service/BsvPayment/HappyGiftCard.cs create mode 100644 Service/BsvPayment/HappyGiftReChange.cs create mode 100644 Service/BsvPayment/HappyGiftUse.cs create mode 100644 Service/BsvPayment/HappyOrder.cs create mode 100644 Service/BsvPayment/KorailMileage.cs create mode 100644 Service/BsvPayment/MealTicket.cs create mode 100644 Service/BsvPayment/MobileCoupon.cs create mode 100644 Service/BsvPayment/MobileCouponHappyCon.cs create mode 100644 Service/BsvPayment/OnLineCouponBase_China.cs create mode 100644 Service/BsvPayment/OnLineCouponPrt_China.cs create mode 100644 Service/BsvPayment/OnLineCoupon_China.cs create mode 100644 Service/BsvPayment/OurHome.cs create mode 100644 Service/BsvPayment/PayDcMstToDc.cs create mode 100644 Service/BsvPayment/PaymentBase.cs create mode 100644 Service/BsvPayment/PaymentCancel.cs create mode 100644 Service/BsvPayment/PointHPRegularCust.cs create mode 100644 Service/BsvPayment/PointHappyCoupon.cs create mode 100644 Service/BsvPayment/PointHappyPoint.cs create mode 100644 Service/BsvPayment/PointHappyPointAfter.cs create mode 100644 Service/BsvPayment/PointHappyPointSave_China.cs create mode 100644 Service/BsvPayment/PointHappyPointUse.cs create mode 100644 Service/BsvPayment/PointHappyPointUse_China.cs create mode 100644 Service/BsvPayment/PointMemberUse.cs create mode 100644 Service/BsvPayment/PointMobileCom.cs create mode 100644 Service/BsvPayment/PointOcbSave.cs create mode 100644 Service/BsvPayment/PointSamsung.cs create mode 100644 Service/BsvPayment/PrepaidCard.cs create mode 100644 Service/BsvPayment/PrepaidCard_China.cs create mode 100644 Service/BsvPayment/Properties/AssemblyInfo.cs create mode 100644 Service/BsvPayment/Properties/Settings.Designer.cs create mode 100644 Service/BsvPayment/Properties/Settings.settings create mode 100644 Service/BsvPayment/PunchhHappyPoint_US.cs create mode 100644 Service/BsvPayment/ReservedPay.cs create mode 100644 Service/BsvPayment/SPCEmployeeDC.cs create mode 100644 Service/BsvPayment/SPCEmployeeDC_China.cs create mode 100644 Service/BsvPayment/SPCEmployeeUse.cs create mode 100644 Service/BsvPayment/SaleDelivery.cs create mode 100644 Service/BsvPayment/SaleOnCustomer.cs create mode 100644 Service/BsvPayment/SamsungFamilyCard.cs create mode 100644 Service/BsvPayment/SeveranceDC.cs create mode 100644 Service/BsvPayment/SmilePay.cs create mode 100644 Service/BsvPayment/TMoney.cs create mode 100644 Service/BsvPayment/TPay.cs create mode 100644 Service/BsvPayment/VanSpcnCommon.cs create mode 100644 Service/BsvPayment/VenderSearch.cs create mode 100644 Service/BsvPayment/VipLounge.cs create mode 100644 Service/BsvPayment/WeChatPay.cs create mode 100644 Service/BsvPayment/WeChatPay_BaiRong.cs create mode 100644 Service/BsvPayment/WelcomCard.cs create mode 100644 Service/BsvPayment/XiaoChengxuGiftCard.cs create mode 100644 Service/BsvPayment/_frmInputCardCom.cs create mode 100644 Service/BsvPayment/_frmInputCardCom.designer.cs create mode 100644 Service/BsvPayment/_frmInputCardCom.resx create mode 100644 Service/BsvPayment/_frmXCharge.cs create mode 100644 Service/BsvPayment/_frmXCharge.designer.cs create mode 100644 Service/BsvPayment/_frmXCharge.resx create mode 100644 Service/BsvPayment/iNStorDC.cs create mode 100644 Service/BsvSale/Activator.cs create mode 100644 Service/BsvSale/BsvSale.csproj create mode 100644 Service/BsvSale/HPAfterSave.cs create mode 100644 Service/BsvSale/HappyAppStamp.cs create mode 100644 Service/BsvSale/HappyBuzz.cs create mode 100644 Service/BsvSale/HappyOrderList.cs create mode 100644 Service/BsvSale/HoldDeal.cs create mode 100644 Service/BsvSale/Properties/AssemblyInfo.cs create mode 100644 Service/BsvSale/Reservation.cs create mode 100644 Service/BsvSale/SalePluItem.cs create mode 100644 Service/BsvSale/SalePluItemBase.cs create mode 100644 Service/BsvSale/SalePluSetMenu.cs create mode 100644 Service/BsvSale/SalePreCard.cs create mode 100644 Service/BsvSale/SaleRefund.cs create mode 100644 Service/BsvSale/SaleTranCallBase.cs create mode 100644 Service/BsvSale/Svr2Tran.cs create mode 100644 Service/BsvSale/frmInputPrc.cs create mode 100644 Service/BsvSale/frmInputPrc.designer.cs create mode 100644 Service/BsvSale/frmInputPrc.resx create mode 100644 WinEtc/DataBaseRestore/DataBaseRestore.csproj create mode 100644 WinEtc/DataBaseRestore/Program.cs create mode 100644 WinEtc/DataBaseRestore/Properties/AssemblyInfo.cs create mode 100644 WinEtc/DataBaseRestore/Properties/Resources.Designer.cs create mode 100644 WinEtc/DataBaseRestore/Properties/Resources.resx create mode 100644 WinEtc/DataBaseRestore/Properties/Settings.Designer.cs create mode 100644 WinEtc/DataBaseRestore/Properties/Settings.settings create mode 100644 WinEtc/DataBaseRestore/SqlDB.cs create mode 100644 WinEtc/DataBaseRestore/frmMain.Designer.cs create mode 100644 WinEtc/DataBaseRestore/frmMain.cs create mode 100644 WinEtc/DataBaseRestore/frmMain.resx create mode 100644 WinEtc/NewPosInstaller/Library/CmMessage.cs create mode 100644 WinEtc/NewPosInstaller/Library/ComLib.cs create mode 100644 WinEtc/NewPosInstaller/Library/ComLog.cs create mode 100644 WinEtc/NewPosInstaller/Library/DisplayDevices.cs create mode 100644 WinEtc/NewPosInstaller/Library/FTP.cs create mode 100644 WinEtc/NewPosInstaller/Library/IniFile.cs create mode 100644 WinEtc/NewPosInstaller/Library/ItemColumn.cs create mode 100644 WinEtc/NewPosInstaller/Library/NetworkJSON.cs create mode 100644 WinEtc/NewPosInstaller/Library/PosConst.cs create mode 100644 WinEtc/NewPosInstaller/Library/Registry.cs create mode 100644 WinEtc/NewPosInstaller/Library/SqlDB.cs create mode 100644 WinEtc/NewPosInstaller/Library/TcpSocket.cs create mode 100644 WinEtc/NewPosInstaller/Library/UserAES.cs create mode 100644 WinEtc/NewPosInstaller/Library/XmlBase.cs create mode 100644 WinEtc/NewPosInstaller/NewPosInstaller.csproj create mode 100644 WinEtc/NewPosInstaller/Process/BasicInfoCheck.cs create mode 100644 WinEtc/NewPosInstaller/Process/InstallerUpdate.cs create mode 100644 WinEtc/NewPosInstaller/Process/PosDataMigration.cs create mode 100644 WinEtc/NewPosInstaller/Process/PosDatabaseCreate.cs create mode 100644 WinEtc/NewPosInstaller/Process/PosImageDownload.cs create mode 100644 WinEtc/NewPosInstaller/Process/PosInstallComplete.cs create mode 100644 WinEtc/NewPosInstaller/Process/PosProgramInstall.cs create mode 100644 WinEtc/NewPosInstaller/Process/_Enitiy.cs create mode 100644 WinEtc/NewPosInstaller/Process/_IEcho.cs create mode 100644 WinEtc/NewPosInstaller/Process/_IProcess.cs create mode 100644 WinEtc/NewPosInstaller/Program.cs create mode 100644 WinEtc/NewPosInstaller/Properties/AssemblyInfo.cs create mode 100644 WinEtc/NewPosInstaller/Properties/Resources.Designer.cs create mode 100644 WinEtc/NewPosInstaller/Properties/Resources.resx create mode 100644 WinEtc/NewPosInstaller/Properties/Settings.Designer.cs create mode 100644 WinEtc/NewPosInstaller/Properties/Settings.settings create mode 100644 WinEtc/NewPosInstaller/Properties/app.manifest create mode 100644 WinEtc/NewPosInstaller/StoreCodeMap.txt create mode 100644 WinEtc/NewPosInstaller/_참고/_NewPosInstaller.ini.sample create mode 100644 WinEtc/NewPosInstaller/_참고/_Status.ini.sample create mode 100644 WinEtc/NewPosInstaller/_참고/__Readme.txt create mode 100644 WinEtc/NewPosInstaller/_참고/import.ico create mode 100644 WinEtc/NewPosInstaller/frmInstaller.Designer.cs create mode 100644 WinEtc/NewPosInstaller/frmInstaller.cs create mode 100644 WinEtc/NewPosInstaller/frmInstaller.resx create mode 100644 WinEtc/NewPosInstallerStart/NewPosInstallerStart.csproj create mode 100644 WinEtc/NewPosInstallerStart/Program.cs create mode 100644 WinEtc/NewPosInstallerStart/Properties/AssemblyInfo.cs create mode 100644 WinEtc/NewPosInstallerStart/Properties/Resources.Designer.cs create mode 100644 WinEtc/NewPosInstallerStart/Properties/Resources.resx create mode 100644 WinEtc/NewPosInstallerStart/Properties/Settings.Designer.cs create mode 100644 WinEtc/NewPosInstallerStart/Properties/Settings.settings create mode 100644 WinEtc/NewPosInstallerStart/frmStart.Designer.cs create mode 100644 WinEtc/NewPosInstallerStart/frmStart.cs create mode 100644 WinEtc/NewPosInstallerStart/frmStart.resx create mode 100644 WinEtc/NewPosInstallerStart/import.ico create mode 100644 WinEtc/PosDesign800/PosDesign800.csproj create mode 100644 WinEtc/PosDesign800/Program.cs create mode 100644 WinEtc/PosDesign800/Properties/AssemblyInfo.cs create mode 100644 WinEtc/PosDesign800/Properties/Resources.Designer.cs create mode 100644 WinEtc/PosDesign800/Properties/Resources.resx create mode 100644 WinEtc/PosDesign800/Properties/Settings.Designer.cs create mode 100644 WinEtc/PosDesign800/Properties/Settings.settings create mode 100644 WinEtc/PosDesign800/frmLogOnCashier_800.Designer.cs create mode 100644 WinEtc/PosDesign800/frmLogOnCashier_800.cs create mode 100644 WinEtc/PosDesign800/frmLogOnCashier_800.resx create mode 100644 WinEtc/PosDesign800/frmPosMain_800.Designer.cs create mode 100644 WinEtc/PosDesign800/frmPosMain_800.cs create mode 100644 WinEtc/PosDesign800/frmPosMain_800.resx create mode 100644 WinEtc/PosDesign800/frmSaleMain_Pay_800.cs create mode 100644 WinEtc/PosDesign800/frmSaleMain_Pay_800.designer.cs create mode 100644 WinEtc/PosDesign800/frmSaleMain_Pay_800.resx create mode 100644 WinEtc/PosDesign800/frmSaleMain_Sale_800.Designer.cs create mode 100644 WinEtc/PosDesign800/frmSaleMain_Sale_800.cs create mode 100644 WinEtc/PosDesign800/frmSaleMain_Sale_800.resx create mode 100644 Window/PosConfiguration/ComboBoxConst.cs create mode 100644 Window/PosConfiguration/PosConfiguration.csproj create mode 100644 Window/PosConfiguration/Program.cs create mode 100644 Window/PosConfiguration/Properties/AssemblyInfo.cs create mode 100644 Window/PosConfiguration/Properties/Resources.Designer.cs create mode 100644 Window/PosConfiguration/Properties/Resources.resx create mode 100644 Window/PosConfiguration/Properties/Settings.Designer.cs create mode 100644 Window/PosConfiguration/Properties/Settings.settings create mode 100644 Window/PosConfiguration/frmPosConfiguration.Designer.cs create mode 100644 Window/PosConfiguration/frmPosConfiguration.cs create mode 100644 Window/PosConfiguration/frmPosConfiguration.resx create mode 100644 Window/PosConfiguration/frmPosConfigurationSecu.Designer.cs create mode 100644 Window/PosConfiguration/frmPosConfigurationSecu.cs create mode 100644 Window/PosConfiguration/frmPosConfigurationSecu.resx create mode 100644 Window/PosConfiguration/frmPosLoad.Designer.cs create mode 100644 Window/PosConfiguration/frmPosLoad.cs create mode 100644 Window/PosConfiguration/frmPosLoad.resx create mode 100644 Window/PosConfiguration/window_icon_spc_icon.ico create mode 100644 Window/PosConfigurationEng/ComboBoxConst.cs create mode 100644 Window/PosConfigurationEng/PosConfigurationEng.csproj create mode 100644 Window/PosConfigurationEng/Program.cs create mode 100644 Window/PosConfigurationEng/Properties/AssemblyInfo.cs create mode 100644 Window/PosConfigurationEng/Properties/Resources.Designer.cs create mode 100644 Window/PosConfigurationEng/Properties/Resources.resx create mode 100644 Window/PosConfigurationEng/Properties/Settings.Designer.cs create mode 100644 Window/PosConfigurationEng/Properties/Settings.settings create mode 100644 Window/PosConfigurationEng/frmPosConfiguration.Designer.cs create mode 100644 Window/PosConfigurationEng/frmPosConfiguration.cs create mode 100644 Window/PosConfigurationEng/frmPosConfiguration.resx create mode 100644 Window/PosConfigurationEng/frmPosConfigurationSecu.Designer.cs create mode 100644 Window/PosConfigurationEng/frmPosConfigurationSecu.cs create mode 100644 Window/PosConfigurationEng/frmPosConfigurationSecu.resx create mode 100644 Window/PosConfigurationEng/frmPosLoad.Designer.cs create mode 100644 Window/PosConfigurationEng/frmPosLoad.cs create mode 100644 Window/PosConfigurationEng/frmPosLoad.resx create mode 100644 Window/PosConfigurationEng/window_icon_spc_icon.ico create mode 100644 Window/PosMain/AlterMST.sql create mode 100644 Window/PosMain/App.config create mode 100644 Window/PosMain/CreateMST.Kiosk.sql create mode 100644 Window/PosMain/CreateMST.sql create mode 100644 Window/PosMain/PosMain.csproj create mode 100644 Window/PosMain/Program.cs create mode 100644 Window/PosMain/Properties/AssemblyInfo.cs create mode 100644 Window/PosMain/Properties/Resources.Designer.cs create mode 100644 Window/PosMain/Properties/Resources.resx create mode 100644 Window/PosMain/Properties/Settings.Designer.cs create mode 100644 Window/PosMain/Properties/Settings.settings create mode 100644 Window/PosMain/frmDatabaseInit.Designer.cs create mode 100644 Window/PosMain/frmDatabaseInit.cs create mode 100644 Window/PosMain/frmDatabaseInit.resx create mode 100644 Window/PosMain/frmPosMain.Designer.cs create mode 100644 Window/PosMain/frmPosMain.cs create mode 100644 Window/PosMain/frmPosMain.resx create mode 100644 Window/PosMain/frmPosMainStart.Designer.cs create mode 100644 Window/PosMain/frmPosMainStart.cs create mode 100644 Window/PosMain/frmPosMainStart.resx create mode 100644 Window/PosMain/window_icon_spc_icon.ico create mode 100644 Window/PosStart/App.config create mode 100644 Window/PosStart/CmMessage.cs create mode 100644 Window/PosStart/PosStart.csproj create mode 100644 Window/PosStart/Program.cs create mode 100644 Window/PosStart/Properties/AssemblyInfo.cs create mode 100644 Window/PosStart/Properties/Resources.Designer.cs create mode 100644 Window/PosStart/Properties/Resources.resx create mode 100644 Window/PosStart/Properties/Settings.Designer.cs create mode 100644 Window/PosStart/Properties/Settings.settings create mode 100644 Window/PosStart/XmlBase.cs create mode 100644 Window/PosStart/frmPosStart.Designer.cs create mode 100644 Window/PosStart/frmPosStart.cs create mode 100644 Window/PosStart/frmPosStart.resx create mode 100644 Window/PosStart/window_icon_spc_icon.ico create mode 100644 Window/TableConfiguration/Program.cs create mode 100644 Window/TableConfiguration/Properties/AssemblyInfo.cs create mode 100644 Window/TableConfiguration/Properties/Resources.Designer.cs create mode 100644 Window/TableConfiguration/Properties/Resources.resx create mode 100644 Window/TableConfiguration/Properties/Settings.Designer.cs create mode 100644 Window/TableConfiguration/Properties/Settings.settings create mode 100644 Window/TableConfiguration/TableConfiguration.csproj create mode 100644 Window/TableConfiguration/frmBackground.Designer.cs create mode 100644 Window/TableConfiguration/frmBackground.cs create mode 100644 Window/TableConfiguration/frmBackground.resx create mode 100644 Window/TableConfiguration/frmFloorManager.Designer.cs create mode 100644 Window/TableConfiguration/frmFloorManager.cs create mode 100644 Window/TableConfiguration/frmFloorManager.resx create mode 100644 Window/TableConfiguration/frmTableEditor.Designer.cs create mode 100644 Window/TableConfiguration/frmTableEditor.cs create mode 100644 Window/TableConfiguration/frmTableEditor.resx create mode 100644 Window/TableConfiguration/frmTableManager.Designer.cs create mode 100644 Window/TableConfiguration/frmTableManager.cs create mode 100644 Window/TableConfiguration/frmTableManager.resx create mode 100644 Window/TableConfiguration/frmWaitMessage.Designer.cs create mode 100644 Window/TableConfiguration/frmWaitMessage.cs create mode 100644 Window/TableConfiguration/frmWaitMessage.resx create mode 100644 Window/TableConfiguration/window_icon_spc_icon.ico create mode 100644 Window/WebPos/Program.cs create mode 100644 Window/WebPos/Properties/AssemblyInfo.cs create mode 100644 Window/WebPos/Properties/Resources.Designer.cs create mode 100644 Window/WebPos/Properties/Resources.resx create mode 100644 Window/WebPos/Properties/Settings.Designer.cs create mode 100644 Window/WebPos/Properties/Settings.settings create mode 100644 Window/WebPos/WebPos.csproj create mode 100644 Window/WebPos/frmWebBiz.cs create mode 100644 Window/WebPos/frmWebBiz.designer.cs create mode 100644 Window/WebPos/frmWebBiz.resx create mode 100644 Window/WinAdmin/Properties/AssemblyInfo.cs create mode 100644 Window/WinAdmin/Properties/Resources.Designer.cs create mode 100644 Window/WinAdmin/Properties/Resources.resx create mode 100644 Window/WinAdmin/WinAdmin.cs create mode 100644 Window/WinAdmin/WinAdmin.csproj create mode 100644 Window/WinAdmin/frmBusiNotice.cs create mode 100644 Window/WinAdmin/frmBusiNotice.designer.cs create mode 100644 Window/WinAdmin/frmBusiNotice.resx create mode 100644 Window/WinAdmin/frmCustomerClaimInput.cs create mode 100644 Window/WinAdmin/frmCustomerClaimInput.designer.cs create mode 100644 Window/WinAdmin/frmCustomerClaimInput.resx create mode 100644 Window/WinAdmin/frmCustomerClaimsList.Designer.cs create mode 100644 Window/WinAdmin/frmCustomerClaimsList.cs create mode 100644 Window/WinAdmin/frmCustomerClaimsList.resx create mode 100644 Window/WinAdmin/frmDataSearch.cs create mode 100644 Window/WinAdmin/frmDataSearch.designer.cs create mode 100644 Window/WinAdmin/frmDataSearch.resx create mode 100644 Window/WinAdmin/frmEtcPvc.Designer.cs create mode 100644 Window/WinAdmin/frmEtcPvc.cs create mode 100644 Window/WinAdmin/frmEtcPvc.resx create mode 100644 Window/WinAdmin/frmEtcReceipt.Designer.cs create mode 100644 Window/WinAdmin/frmEtcReceipt.cs create mode 100644 Window/WinAdmin/frmEtcReceipt.resx create mode 100644 Window/WinAdmin/frmEtcSetting.Designer.cs create mode 100644 Window/WinAdmin/frmEtcSetting.cs create mode 100644 Window/WinAdmin/frmEtcSetting.resx create mode 100644 Window/WinAdmin/frmIntegrity.cs create mode 100644 Window/WinAdmin/frmIntegrity.designer.cs create mode 100644 Window/WinAdmin/frmIntegrity.resx create mode 100644 Window/WinAdmin/frmIntegrityThead.cs create mode 100644 Window/WinAdmin/frmIntegrityThead.designer.cs create mode 100644 Window/WinAdmin/frmIntegrityThead.resx create mode 100644 Window/WinAdmin/frmSoundMotSetting.Designer.cs create mode 100644 Window/WinAdmin/frmSoundMotSetting.cs create mode 100644 Window/WinAdmin/frmSoundMotSetting.resx create mode 100644 Window/WinAdmin/frmTestEduPlu.cs create mode 100644 Window/WinAdmin/frmTestEduPlu.designer.cs create mode 100644 Window/WinAdmin/frmTestEduPlu.resx create mode 100644 Window/WinAdmin/frmTestMode.cs create mode 100644 Window/WinAdmin/frmTestMode.designer.cs create mode 100644 Window/WinAdmin/frmTestMode.resx create mode 100644 Window/WinAdmin/frmTestModeList.cs create mode 100644 Window/WinAdmin/frmTestModeList.designer.cs create mode 100644 Window/WinAdmin/frmTestModeList.resx create mode 100644 Window/WinAdmin/frmTestModeSearch.cs create mode 100644 Window/WinAdmin/frmTestModeSearch.designer.cs create mode 100644 Window/WinAdmin/frmTestModeSearch.resx create mode 100644 Window/WinAdmin/frmTestPluSearch.cs create mode 100644 Window/WinAdmin/frmTestPluSearch.designer.cs create mode 100644 Window/WinAdmin/frmTestPluSearch.resx create mode 100644 Window/WinAdmin/frmTranResend.Designer.cs create mode 100644 Window/WinAdmin/frmTranResend.cs create mode 100644 Window/WinAdmin/frmTranResend.resx create mode 100644 Window/WinBasic/Properties/AssemblyInfo.cs create mode 100644 Window/WinBasic/Properties/Resources.Designer.cs create mode 100644 Window/WinBasic/Properties/Resources.resx create mode 100644 Window/WinBasic/WinBasic.cs create mode 100644 Window/WinBasic/WinBasic.csproj create mode 100644 Window/WinBasic/frmAddBag.cs create mode 100644 Window/WinBasic/frmAddBag.designer.cs create mode 100644 Window/WinBasic/frmAddBag.resx create mode 100644 Window/WinBasic/frmBirthdayCandle.cs create mode 100644 Window/WinBasic/frmBirthdayCandle.designer.cs create mode 100644 Window/WinBasic/frmBirthdayCandle.resx create mode 100644 Window/WinBasic/frmBizMain.Designer.cs create mode 100644 Window/WinBasic/frmBizMain.cs create mode 100644 Window/WinBasic/frmBizMain.resx create mode 100644 Window/WinBasic/frmCalendar.cs create mode 100644 Window/WinBasic/frmCalendar.designer.cs create mode 100644 Window/WinBasic/frmCalendar.resx create mode 100644 Window/WinBasic/frmCampaignInfo.cs create mode 100644 Window/WinBasic/frmCampaignInfo.designer.cs create mode 100644 Window/WinBasic/frmCampaignInfo.resx create mode 100644 Window/WinBasic/frmCheckKtchPrinter.Designer.cs create mode 100644 Window/WinBasic/frmCheckKtchPrinter.cs create mode 100644 Window/WinBasic/frmCheckKtchPrinter.resx create mode 100644 Window/WinBasic/frmChoiceBox.Designer.cs create mode 100644 Window/WinBasic/frmChoiceBox.cs create mode 100644 Window/WinBasic/frmChoiceBox.resx create mode 100644 Window/WinBasic/frmCountdownMessageBox.Designer.cs create mode 100644 Window/WinBasic/frmCountdownMessageBox.cs create mode 100644 Window/WinBasic/frmCountdownMessageBox.resx create mode 100644 Window/WinBasic/frmDeviceStatusSearch.cs create mode 100644 Window/WinBasic/frmDeviceStatusSearch.designer.cs create mode 100644 Window/WinBasic/frmDeviceStatusSearch.resx create mode 100644 Window/WinBasic/frmDiscountList.cs create mode 100644 Window/WinBasic/frmDiscountList.designer.cs create mode 100644 Window/WinBasic/frmDiscountList.resx create mode 100644 Window/WinBasic/frmEmpCommute.cs create mode 100644 Window/WinBasic/frmEmpCommute.designer.cs create mode 100644 Window/WinBasic/frmEmpCommute.resx create mode 100644 Window/WinBasic/frmEtcInEMP.Designer.cs create mode 100644 Window/WinBasic/frmEtcInEMP.cs create mode 100644 Window/WinBasic/frmEtcInEMP.resx create mode 100644 Window/WinBasic/frmExchageRate.cs create mode 100644 Window/WinBasic/frmExchageRate.designer.cs create mode 100644 Window/WinBasic/frmExchageRate.resx create mode 100644 Window/WinBasic/frmForeignersResponse.Designer.cs create mode 100644 Window/WinBasic/frmForeignersResponse.cs create mode 100644 Window/WinBasic/frmForeignersResponse.resx create mode 100644 Window/WinBasic/frmHPOrderCancelReason.cs create mode 100644 Window/WinBasic/frmHPOrderCancelReason.designer.cs create mode 100644 Window/WinBasic/frmHPOrderCancelReason.resx create mode 100644 Window/WinBasic/frmHappyBuz.cs create mode 100644 Window/WinBasic/frmHappyBuz.designer.cs create mode 100644 Window/WinBasic/frmHappyBuz.resx create mode 100644 Window/WinBasic/frmHoldDeal.cs create mode 100644 Window/WinBasic/frmHoldDeal.designer.cs create mode 100644 Window/WinBasic/frmHoldDeal.resx create mode 100644 Window/WinBasic/frmICReaderUpdate.Designer.cs create mode 100644 Window/WinBasic/frmICReaderUpdate.cs create mode 100644 Window/WinBasic/frmICReaderUpdate.resx create mode 100644 Window/WinBasic/frmInputData.cs create mode 100644 Window/WinBasic/frmInputData.designer.cs create mode 100644 Window/WinBasic/frmInputData.resx create mode 100644 Window/WinBasic/frmInputDataMin.cs create mode 100644 Window/WinBasic/frmInputDataMin.designer.cs create mode 100644 Window/WinBasic/frmInputDataMin.resx create mode 100644 Window/WinBasic/frmItemSearch.cs create mode 100644 Window/WinBasic/frmItemSearch.designer.cs create mode 100644 Window/WinBasic/frmItemSearch.resx create mode 100644 Window/WinBasic/frmLabelBarcodePrint.Designer.cs create mode 100644 Window/WinBasic/frmLabelBarcodePrint.cs create mode 100644 Window/WinBasic/frmLabelBarcodePrint.resx create mode 100644 Window/WinBasic/frmLogOnCashier.Designer.cs create mode 100644 Window/WinBasic/frmLogOnCashier.cs create mode 100644 Window/WinBasic/frmLogOnCashier.resx create mode 100644 Window/WinBasic/frmMenuSub.cs create mode 100644 Window/WinBasic/frmMenuSub.designer.cs create mode 100644 Window/WinBasic/frmMenuSub.resx create mode 100644 Window/WinBasic/frmMenualOrderItem.Designer.cs create mode 100644 Window/WinBasic/frmMenualOrderItem.cs create mode 100644 Window/WinBasic/frmMenualOrderItem.resx create mode 100644 Window/WinBasic/frmMenualOrderKps.Designer.cs create mode 100644 Window/WinBasic/frmMenualOrderKps.cs create mode 100644 Window/WinBasic/frmMenualOrderKps.resx create mode 100644 Window/WinBasic/frmMissTranCheck.cs create mode 100644 Window/WinBasic/frmMissTranCheck.designer.cs create mode 100644 Window/WinBasic/frmMissTranCheck.resx create mode 100644 Window/WinBasic/frmNoticeInfo.cs create mode 100644 Window/WinBasic/frmNoticeInfo.designer.cs create mode 100644 Window/WinBasic/frmNoticeInfo.resx create mode 100644 Window/WinBasic/frmPGMDownLoad.cs create mode 100644 Window/WinBasic/frmPGMDownLoad.designer.cs create mode 100644 Window/WinBasic/frmPGMDownLoad.resx create mode 100644 Window/WinBasic/frmPopupCom.Designer.cs create mode 100644 Window/WinBasic/frmPopupCom.cs create mode 100644 Window/WinBasic/frmPopupCom.resx create mode 100644 Window/WinBasic/frmPrepaidCust.cs create mode 100644 Window/WinBasic/frmPrepaidCust.designer.cs create mode 100644 Window/WinBasic/frmPrepaidCust.resx create mode 100644 Window/WinBasic/frmRegGuest.cs create mode 100644 Window/WinBasic/frmRegGuest.designer.cs create mode 100644 Window/WinBasic/frmRegGuest.resx create mode 100644 Window/WinBasic/frmRembOrderPrint.Designer.cs create mode 100644 Window/WinBasic/frmRembOrderPrint.cs create mode 100644 Window/WinBasic/frmRembOrderPrint.resx create mode 100644 Window/WinBasic/frmSalCalc.Designer.cs create mode 100644 Window/WinBasic/frmSalCalc.cs create mode 100644 Window/WinBasic/frmSalCalc.resx create mode 100644 Window/WinBasic/frmSaleOpen.Designer.cs create mode 100644 Window/WinBasic/frmSaleOpen.cs create mode 100644 Window/WinBasic/frmSaleOpen.resx create mode 100644 Window/WinBasic/frmSalePluList.cs create mode 100644 Window/WinBasic/frmSalePluList.designer.cs create mode 100644 Window/WinBasic/frmSalePluList.resx create mode 100644 Window/WinBasic/frmSchEvt.Designer.cs create mode 100644 Window/WinBasic/frmSchEvt.cs create mode 100644 Window/WinBasic/frmSchEvt.resx create mode 100644 Window/WinBasic/frmSchHpLate.cs create mode 100644 Window/WinBasic/frmSchHpLate.designer.cs create mode 100644 Window/WinBasic/frmSchHpLate.resx create mode 100644 Window/WinBasic/frmSchKtchOrder.cs create mode 100644 Window/WinBasic/frmSchKtchOrder.designer.cs create mode 100644 Window/WinBasic/frmSchKtchOrder.resx create mode 100644 Window/WinBasic/frmSchPosLog.Designer.cs create mode 100644 Window/WinBasic/frmSchPosLog.cs create mode 100644 Window/WinBasic/frmSchPosLog.resx create mode 100644 Window/WinBasic/frmSchReturnCompany.cs create mode 100644 Window/WinBasic/frmSchReturnCompany.designer.cs create mode 100644 Window/WinBasic/frmSchReturnCompany.resx create mode 100644 Window/WinBasic/frmSchShipment.cs create mode 100644 Window/WinBasic/frmSchShipment.designer.cs create mode 100644 Window/WinBasic/frmSchShipment.resx create mode 100644 Window/WinBasic/frmSchStorArrvInfo.Designer.cs create mode 100644 Window/WinBasic/frmSchStorArrvInfo.cs create mode 100644 Window/WinBasic/frmSchStorArrvInfo.resx create mode 100644 Window/WinBasic/frmScreenVip.Designer.cs create mode 100644 Window/WinBasic/frmScreenVip.cs create mode 100644 Window/WinBasic/frmScreenVip.resx create mode 100644 Window/WinBasic/frmSelReasonCode.cs create mode 100644 Window/WinBasic/frmSelReasonCode.designer.cs create mode 100644 Window/WinBasic/frmSelReasonCode.resx create mode 100644 Window/WinBasic/frmSelSalePlu.cs create mode 100644 Window/WinBasic/frmSelSalePlu.designer.cs create mode 100644 Window/WinBasic/frmSelSalePlu.resx create mode 100644 Window/WinBasic/frmSelectBtnMsgCom.cs create mode 100644 Window/WinBasic/frmSelectBtnMsgCom.designer.cs create mode 100644 Window/WinBasic/frmSelectBtnMsgCom.resx create mode 100644 Window/WinBasic/frmSignPadUpdate.Designer.cs create mode 100644 Window/WinBasic/frmSignPadUpdate.cs create mode 100644 Window/WinBasic/frmSignPadUpdate.resx create mode 100644 Window/WinBasic/frmSvr2Tran.cs create mode 100644 Window/WinBasic/frmSvr2Tran.designer.cs create mode 100644 Window/WinBasic/frmSvr2Tran.resx create mode 100644 Window/WinBasic/frmTakeInOut.cs create mode 100644 Window/WinBasic/frmTakeInOut.designer.cs create mode 100644 Window/WinBasic/frmTakeInOut.resx create mode 100644 Window/WinBasic/frmTakeInOutProd.cs create mode 100644 Window/WinBasic/frmTakeInOutProd.designer.cs create mode 100644 Window/WinBasic/frmTakeInOutProd.resx create mode 100644 Window/WinBasic/frmWebBiz2.cs create mode 100644 Window/WinBasic/frmWebBiz2.designer.cs create mode 100644 Window/WinBasic/frmWebBiz2.resx create mode 100644 Window/WinOpenClose/DataGridViewRadioButtonCell.cs create mode 100644 Window/WinOpenClose/DataGridViewRadioButtonCellLayout.cs create mode 100644 Window/WinOpenClose/DataGridViewRadioButtonColumn.cs create mode 100644 Window/WinOpenClose/Properties/AssemblyInfo.cs create mode 100644 Window/WinOpenClose/Properties/Resources.Designer.cs create mode 100644 Window/WinOpenClose/Properties/Resources.resx create mode 100644 Window/WinOpenClose/WinOpenClose.cs create mode 100644 Window/WinOpenClose/WinOpenClose.csproj create mode 100644 Window/WinOpenClose/frmAccADMT.cs create mode 100644 Window/WinOpenClose/frmAccADMT.designer.cs create mode 100644 Window/WinOpenClose/frmAccADMT.resx create mode 100644 Window/WinOpenClose/frmAccADMTCan.cs create mode 100644 Window/WinOpenClose/frmAccADMTCan.designer.cs create mode 100644 Window/WinOpenClose/frmAccADMTCan.resx create mode 100644 Window/WinOpenClose/frmAccEtcInOut.Designer.cs create mode 100644 Window/WinOpenClose/frmAccEtcInOut.cs create mode 100644 Window/WinOpenClose/frmAccEtcInOut.resx create mode 100644 Window/WinOpenClose/frmAccRemoney.Designer.cs create mode 100644 Window/WinOpenClose/frmAccRemoney.cs create mode 100644 Window/WinOpenClose/frmAccRemoney.resx create mode 100644 Window/WinOpenClose/frmDatabaseBackup.Designer.cs create mode 100644 Window/WinOpenClose/frmDatabaseBackup.cs create mode 100644 Window/WinOpenClose/frmDatabaseBackup.resx create mode 100644 Window/WinOpenClose/frmExpiryDateCheckList.Designer.cs create mode 100644 Window/WinOpenClose/frmExpiryDateCheckList.cs create mode 100644 Window/WinOpenClose/frmExpiryDateCheckList.resx create mode 100644 Window/WinOpenClose/frmPrepStorNotice.Designer.cs create mode 100644 Window/WinOpenClose/frmPrepStorNotice.cs create mode 100644 Window/WinOpenClose/frmPrepStorNotice.resx create mode 100644 Window/WinOpenClose/frmSOD.Designer.cs create mode 100644 Window/WinOpenClose/frmSOD.cs create mode 100644 Window/WinOpenClose/frmSOD.resx create mode 100644 Window/WinOpenClose/frmSafetyCheckList.Designer.cs create mode 100644 Window/WinOpenClose/frmSafetyCheckList.cs create mode 100644 Window/WinOpenClose/frmSafetyCheckList.resx create mode 100644 Window/WinOpenClose/frmSafetyDay.Designer.cs create mode 100644 Window/WinOpenClose/frmSafetyDay.cs create mode 100644 Window/WinOpenClose/frmSafetyDay.resx create mode 100644 Window/WinOpenClose/frmSaleCheckList.Designer.cs create mode 100644 Window/WinOpenClose/frmSaleCheckList.cs create mode 100644 Window/WinOpenClose/frmSaleCheckList.resx create mode 100644 Window/WinOpenClose/frmShopPayType.Designer.cs create mode 100644 Window/WinOpenClose/frmShopPayType.cs create mode 100644 Window/WinOpenClose/frmShopPayType.resx create mode 100644 Window/WinOpenClose/frmStoreEquipCheck.Designer.cs create mode 100644 Window/WinOpenClose/frmStoreEquipCheck.cs create mode 100644 Window/WinOpenClose/frmStoreEquipCheck.resx create mode 100644 Window/WinOpenClose/frmStoreEquipCheckList.Designer.cs create mode 100644 Window/WinOpenClose/frmStoreEquipCheckList.cs create mode 100644 Window/WinOpenClose/frmStoreEquipCheckList.resx create mode 100644 Window/WinPayment/Properties/AssemblyInfo.cs create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.CsmGridEx+GridHeaderClickEventHandler.datasource create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.CsmGridEx+GridItemClickEventHandler.datasource create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.CsmGridEx.datasource create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.CsmGridExItem+GridItemCellClickEventHandler.datasource create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.CsmGridExItem.datasource create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.CsmGridExRowData.datasource create mode 100644 Window/WinPayment/Properties/DataSources/Cosmos.UI.GridDataItem.datasource create mode 100644 Window/WinPayment/Properties/Resources.Designer.cs create mode 100644 Window/WinPayment/Properties/Resources.resx create mode 100644 Window/WinPayment/WinPay.cs create mode 100644 Window/WinPayment/WinPayment.csproj create mode 100644 Window/WinPayment/frmAirPortTran.cs create mode 100644 Window/WinPayment/frmAirPortTran.designer.cs create mode 100644 Window/WinPayment/frmAirPortTran.resx create mode 100644 Window/WinPayment/frmAliPay.cs create mode 100644 Window/WinPayment/frmAliPay.designer.cs create mode 100644 Window/WinPayment/frmAliPay.resx create mode 100644 Window/WinPayment/frmBundleiTem.cs create mode 100644 Window/WinPayment/frmBundleiTem.designer.cs create mode 100644 Window/WinPayment/frmBundleiTem.resx create mode 100644 Window/WinPayment/frmCakeChange.cs create mode 100644 Window/WinPayment/frmCakeChange.designer.cs create mode 100644 Window/WinPayment/frmCakeChange.resx create mode 100644 Window/WinPayment/frmCash.cs create mode 100644 Window/WinPayment/frmCash.designer.cs create mode 100644 Window/WinPayment/frmCash.resx create mode 100644 Window/WinPayment/frmCashBill.cs create mode 100644 Window/WinPayment/frmCashBill.designer.cs create mode 100644 Window/WinPayment/frmCashBill.resx create mode 100644 Window/WinPayment/frmCheck.cs create mode 100644 Window/WinPayment/frmCheck.designer.cs create mode 100644 Window/WinPayment/frmCheck.resx create mode 100644 Window/WinPayment/frmCouponDC.cs create mode 100644 Window/WinPayment/frmCouponDC.designer.cs create mode 100644 Window/WinPayment/frmCouponDC.resx create mode 100644 Window/WinPayment/frmCpnSend.cs create mode 100644 Window/WinPayment/frmCpnSend.designer.cs create mode 100644 Window/WinPayment/frmCpnSend.resx create mode 100644 Window/WinPayment/frmCreditCard.Designer.cs create mode 100644 Window/WinPayment/frmCreditCard.cs create mode 100644 Window/WinPayment/frmCreditCard.resx create mode 100644 Window/WinPayment/frmCustBrowse.Designer.cs create mode 100644 Window/WinPayment/frmCustBrowse.cs create mode 100644 Window/WinPayment/frmCustBrowse.resx create mode 100644 Window/WinPayment/frmCustSearch.cs create mode 100644 Window/WinPayment/frmCustSearch.designer.cs create mode 100644 Window/WinPayment/frmCustSearch.resx create mode 100644 Window/WinPayment/frmExchangeTicket.cs create mode 100644 Window/WinPayment/frmExchangeTicket.designer.cs create mode 100644 Window/WinPayment/frmExchangeTicket.resx create mode 100644 Window/WinPayment/frmForeign.cs create mode 100644 Window/WinPayment/frmForeign.designer.cs create mode 100644 Window/WinPayment/frmForeign.resx create mode 100644 Window/WinPayment/frmGift.cs create mode 100644 Window/WinPayment/frmGift.designer.cs create mode 100644 Window/WinPayment/frmGift.resx create mode 100644 Window/WinPayment/frmGiftApp.cs create mode 100644 Window/WinPayment/frmGiftApp.designer.cs create mode 100644 Window/WinPayment/frmGiftApp.resx create mode 100644 Window/WinPayment/frmHPGiftReChange.cs create mode 100644 Window/WinPayment/frmHPGiftReChange.designer.cs create mode 100644 Window/WinPayment/frmHPGiftReChange.resx create mode 100644 Window/WinPayment/frmHPGiftReChangeNew.cs create mode 100644 Window/WinPayment/frmHPGiftReChangeNew.designer.cs create mode 100644 Window/WinPayment/frmHPGiftReChangeNew.resx create mode 100644 Window/WinPayment/frmHappyGifHelp.Designer.cs create mode 100644 Window/WinPayment/frmHappyGifHelp.cs create mode 100644 Window/WinPayment/frmHappyGifHelp.resx create mode 100644 Window/WinPayment/frmHappyGiftCard.cs create mode 100644 Window/WinPayment/frmHappyGiftCard.designer.cs create mode 100644 Window/WinPayment/frmHappyGiftCard.resx create mode 100644 Window/WinPayment/frmHappyGiftUse.cs create mode 100644 Window/WinPayment/frmHappyGiftUse.designer.cs create mode 100644 Window/WinPayment/frmHappyGiftUse.resx create mode 100644 Window/WinPayment/frmKorailMileage.cs create mode 100644 Window/WinPayment/frmKorailMileage.designer.cs create mode 100644 Window/WinPayment/frmKorailMileage.resx create mode 100644 Window/WinPayment/frmMealTicket.cs create mode 100644 Window/WinPayment/frmMealTicket.designer.cs create mode 100644 Window/WinPayment/frmMealTicket.resx create mode 100644 Window/WinPayment/frmMenualAppr.cs create mode 100644 Window/WinPayment/frmMenualAppr.designer.cs create mode 100644 Window/WinPayment/frmMenualAppr.resx create mode 100644 Window/WinPayment/frmMobileCoupon.cs create mode 100644 Window/WinPayment/frmMobileCoupon.designer.cs create mode 100644 Window/WinPayment/frmMobileCoupon.resx create mode 100644 Window/WinPayment/frmMobileCouponHappyCon.cs create mode 100644 Window/WinPayment/frmMobileCouponHappyCon.designer.cs create mode 100644 Window/WinPayment/frmMobileCouponHappyCon.resx create mode 100644 Window/WinPayment/frmMobileCouponHappyConLog.cs create mode 100644 Window/WinPayment/frmMobileCouponHappyConLog.designer.cs create mode 100644 Window/WinPayment/frmMobileCouponHappyConLog.resx create mode 100644 Window/WinPayment/frmMultiSlectItemDc.cs create mode 100644 Window/WinPayment/frmMultiSlectItemDc.designer.cs create mode 100644 Window/WinPayment/frmMultiSlectItemDc.resx create mode 100644 Window/WinPayment/frmOnLineCoupon_China.cs create mode 100644 Window/WinPayment/frmOnLineCoupon_China.designer.cs create mode 100644 Window/WinPayment/frmOnLineCoupon_China.resx create mode 100644 Window/WinPayment/frmOurHome.cs create mode 100644 Window/WinPayment/frmOurHome.designer.cs create mode 100644 Window/WinPayment/frmOurHome.resx create mode 100644 Window/WinPayment/frmPayBackGround.cs create mode 100644 Window/WinPayment/frmPayBackGround.designer.cs create mode 100644 Window/WinPayment/frmPayBackGround.resx create mode 100644 Window/WinPayment/frmPayPda.cs create mode 100644 Window/WinPayment/frmPayPda.designer.cs create mode 100644 Window/WinPayment/frmPayPda.resx create mode 100644 Window/WinPayment/frmPntHappyCpn.cs create mode 100644 Window/WinPayment/frmPntHappyCpn.designer.cs create mode 100644 Window/WinPayment/frmPntHappyCpn.resx create mode 100644 Window/WinPayment/frmPntHappyPoint.cs create mode 100644 Window/WinPayment/frmPntHappyPoint.designer.cs create mode 100644 Window/WinPayment/frmPntHappyPoint.resx create mode 100644 Window/WinPayment/frmPntHappyPointSave_China.cs create mode 100644 Window/WinPayment/frmPntHappyPointSave_China.designer.cs create mode 100644 Window/WinPayment/frmPntHappyPointSave_China.resx create mode 100644 Window/WinPayment/frmPntHappyPointUse.cs create mode 100644 Window/WinPayment/frmPntHappyPointUse.designer.cs create mode 100644 Window/WinPayment/frmPntHappyPointUse.resx create mode 100644 Window/WinPayment/frmPntHappyPointUse_China.cs create mode 100644 Window/WinPayment/frmPntHappyPointUse_China.designer.cs create mode 100644 Window/WinPayment/frmPntHappyPointUse_China.resx create mode 100644 Window/WinPayment/frmPntMemberUse.cs create mode 100644 Window/WinPayment/frmPntMemberUse.designer.cs create mode 100644 Window/WinPayment/frmPntMemberUse.resx create mode 100644 Window/WinPayment/frmPntMobileCom.cs create mode 100644 Window/WinPayment/frmPntMobileCom.designer.cs create mode 100644 Window/WinPayment/frmPntMobileCom.resx create mode 100644 Window/WinPayment/frmPntMobileUnity.cs create mode 100644 Window/WinPayment/frmPntMobileUnity.designer.cs create mode 100644 Window/WinPayment/frmPntMobileUnity.resx create mode 100644 Window/WinPayment/frmPntOcbSave.cs create mode 100644 Window/WinPayment/frmPntOcbSave.designer.cs create mode 100644 Window/WinPayment/frmPntOcbSave.resx create mode 100644 Window/WinPayment/frmPointHPRegularCust.cs create mode 100644 Window/WinPayment/frmPointHPRegularCust.designer.cs create mode 100644 Window/WinPayment/frmPointHPRegularCust.resx create mode 100644 Window/WinPayment/frmPointHappyPointAfter.cs create mode 100644 Window/WinPayment/frmPointHappyPointAfter.designer.cs create mode 100644 Window/WinPayment/frmPointHappyPointAfter.resx create mode 100644 Window/WinPayment/frmPointHappyPointAfter_China.cs create mode 100644 Window/WinPayment/frmPointHappyPointAfter_China.designer.cs create mode 100644 Window/WinPayment/frmPointHappyPointAfter_China.resx create mode 100644 Window/WinPayment/frmPrepaidCard.cs create mode 100644 Window/WinPayment/frmPrepaidCard.designer.cs create mode 100644 Window/WinPayment/frmPrepaidCard.resx create mode 100644 Window/WinPayment/frmPrepaidCard_China.cs create mode 100644 Window/WinPayment/frmPrepaidCard_China.designer.cs create mode 100644 Window/WinPayment/frmPrepaidCard_China.resx create mode 100644 Window/WinPayment/frmPunchhHappyPoint_US.Designer.cs create mode 100644 Window/WinPayment/frmPunchhHappyPoint_US.cs create mode 100644 Window/WinPayment/frmPunchhHappyPoint_US.resx create mode 100644 Window/WinPayment/frmSFCCard.cs create mode 100644 Window/WinPayment/frmSFCCard.designer.cs create mode 100644 Window/WinPayment/frmSFCCard.resx create mode 100644 Window/WinPayment/frmSPCEmployeeDC.cs create mode 100644 Window/WinPayment/frmSPCEmployeeDC.designer.cs create mode 100644 Window/WinPayment/frmSPCEmployeeDC.resx create mode 100644 Window/WinPayment/frmSPCEmployeeDC_China.cs create mode 100644 Window/WinPayment/frmSPCEmployeeDC_China.designer.cs create mode 100644 Window/WinPayment/frmSPCEmployeeDC_China.resx create mode 100644 Window/WinPayment/frmSPCEmployeeUse.cs create mode 100644 Window/WinPayment/frmSPCEmployeeUse.designer.cs create mode 100644 Window/WinPayment/frmSPCEmployeeUse.resx create mode 100644 Window/WinPayment/frmSaleOnCustomer.cs create mode 100644 Window/WinPayment/frmSaleOnCustomer.designer.cs create mode 100644 Window/WinPayment/frmSaleOnCustomer.resx create mode 100644 Window/WinPayment/frmSamsungPoint.cs create mode 100644 Window/WinPayment/frmSamsungPoint.designer.cs create mode 100644 Window/WinPayment/frmSamsungPoint.resx create mode 100644 Window/WinPayment/frmServiceCharge.cs create mode 100644 Window/WinPayment/frmServiceCharge.designer.cs create mode 100644 Window/WinPayment/frmServiceCharge.resx create mode 100644 Window/WinPayment/frmSeveranceDC.cs create mode 100644 Window/WinPayment/frmSeveranceDC.designer.cs create mode 100644 Window/WinPayment/frmSeveranceDC.resx create mode 100644 Window/WinPayment/frmSeverancePay.cs create mode 100644 Window/WinPayment/frmSeverancePay.designer.cs create mode 100644 Window/WinPayment/frmSeverancePay.resx create mode 100644 Window/WinPayment/frmSmilePay.cs create mode 100644 Window/WinPayment/frmSmilePay.designer.cs create mode 100644 Window/WinPayment/frmSmilePay.resx create mode 100644 Window/WinPayment/frmTMoney.cs create mode 100644 Window/WinPayment/frmTMoney.designer.cs create mode 100644 Window/WinPayment/frmTMoney.resx create mode 100644 Window/WinPayment/frmTPay.cs create mode 100644 Window/WinPayment/frmTPay.designer.cs create mode 100644 Window/WinPayment/frmTPay.resx create mode 100644 Window/WinPayment/frmTPayConnectList.Designer.cs create mode 100644 Window/WinPayment/frmTPayConnectList.cs create mode 100644 Window/WinPayment/frmTPayConnectList.resx create mode 100644 Window/WinPayment/frmTotItemDc.cs create mode 100644 Window/WinPayment/frmTotItemDc.designer.cs create mode 100644 Window/WinPayment/frmTotItemDc.resx create mode 100644 Window/WinPayment/frmVenderSearch.Designer.cs create mode 100644 Window/WinPayment/frmVenderSearch.cs create mode 100644 Window/WinPayment/frmVenderSearch.resx create mode 100644 Window/WinPayment/frmVipLounge.cs create mode 100644 Window/WinPayment/frmVipLounge.designer.cs create mode 100644 Window/WinPayment/frmVipLounge.resx create mode 100644 Window/WinPayment/frmVipPoint.cs create mode 100644 Window/WinPayment/frmVipPoint.designer.cs create mode 100644 Window/WinPayment/frmVipPoint.resx create mode 100644 Window/WinPayment/frmWeChatPay.cs create mode 100644 Window/WinPayment/frmWeChatPay.designer.cs create mode 100644 Window/WinPayment/frmWeChatPay.resx create mode 100644 Window/WinPayment/frmWeChatPayBaiRong.Designer.cs create mode 100644 Window/WinPayment/frmWeChatPayBaiRong.cs create mode 100644 Window/WinPayment/frmWeChatPayBaiRong.resx create mode 100644 Window/WinPayment/frmWelcomCard.cs create mode 100644 Window/WinPayment/frmWelcomCard.designer.cs create mode 100644 Window/WinPayment/frmWelcomCard.resx create mode 100644 Window/WinPayment/frmXChargeAmt.cs create mode 100644 Window/WinPayment/frmXChargeAmt.designer.cs create mode 100644 Window/WinPayment/frmXChargeAmt.resx create mode 100644 Window/WinPayment/frmXiaoChengxu_GiftCard.cs create mode 100644 Window/WinPayment/frmXiaoChengxu_GiftCard.designer.cs create mode 100644 Window/WinPayment/frmXiaoChengxu_GiftCard.resx create mode 100644 Window/WinPayment/frm_PayMainBack.cs create mode 100644 Window/WinPayment/frm_PayMainBack.designer.cs create mode 100644 Window/WinPayment/frm_PayMainBack.resx create mode 100644 Window/WinPayment/frmiNStorDC.cs create mode 100644 Window/WinPayment/frmiNStorDC.designer.cs create mode 100644 Window/WinPayment/frmiNStorDC.resx create mode 100644 Window/WinSale/Properties/AssemblyInfo.cs create mode 100644 Window/WinSale/Properties/Resources.Designer.cs create mode 100644 Window/WinSale/Properties/Resources.resx create mode 100644 Window/WinSale/SaleMainProcess.cs create mode 100644 Window/WinSale/WinSale.cs create mode 100644 Window/WinSale/WinSale.csproj create mode 100644 Window/WinSale/frmDutchPay.cs create mode 100644 Window/WinSale/frmDutchPay.designer.cs create mode 100644 Window/WinSale/frmDutchPay.resx create mode 100644 Window/WinSale/frmHPAfterSave.cs create mode 100644 Window/WinSale/frmHPAfterSave.designer.cs create mode 100644 Window/WinSale/frmHPAfterSave.resx create mode 100644 Window/WinSale/frmHappyOrderBarcode.Designer.cs create mode 100644 Window/WinSale/frmHappyOrderBarcode.cs create mode 100644 Window/WinSale/frmHappyOrderBarcode.resx create mode 100644 Window/WinSale/frmHappyOrderBarcodeRegMain.Designer.cs create mode 100644 Window/WinSale/frmHappyOrderBarcodeRegMain.cs create mode 100644 Window/WinSale/frmHappyOrderBarcodeRegMain.resx create mode 100644 Window/WinSale/frmHappyOrderList.Designer.cs create mode 100644 Window/WinSale/frmHappyOrderList.cs create mode 100644 Window/WinSale/frmHappyOrderList.resx create mode 100644 Window/WinSale/frmHappyOrderMsg.cs create mode 100644 Window/WinSale/frmHappyOrderMsg.designer.cs create mode 100644 Window/WinSale/frmHappyOrderMsg.resx create mode 100644 Window/WinSale/frmHappyOrderPopup.Designer.cs create mode 100644 Window/WinSale/frmHappyOrderPopup.cs create mode 100644 Window/WinSale/frmHappyOrderPopup.resx create mode 100644 Window/WinSale/frmHappyOrderWeightPrint.Designer.cs create mode 100644 Window/WinSale/frmHappyOrderWeightPrint.cs create mode 100644 Window/WinSale/frmHappyOrderWeightPrint.resx create mode 100644 Window/WinSale/frmHpSaveMsg.Designer.cs create mode 100644 Window/WinSale/frmHpSaveMsg.cs create mode 100644 Window/WinSale/frmHpSaveMsg.resx create mode 100644 Window/WinSale/frmMultiItem.cs create mode 100644 Window/WinSale/frmMultiItem.designer.cs create mode 100644 Window/WinSale/frmMultiItem.resx create mode 100644 Window/WinSale/frmOnLineCouponSch_China.cs create mode 100644 Window/WinSale/frmOnLineCouponSch_China.designer.cs create mode 100644 Window/WinSale/frmOnLineCouponSch_China.resx create mode 100644 Window/WinSale/frmReJournal.cs create mode 100644 Window/WinSale/frmReJournal.designer.cs create mode 100644 Window/WinSale/frmReJournal.resx create mode 100644 Window/WinSale/frmRefundPay.cs create mode 100644 Window/WinSale/frmRefundPay.designer.cs create mode 100644 Window/WinSale/frmRefundPay.resx create mode 100644 Window/WinSale/frmRefundRec.cs create mode 100644 Window/WinSale/frmRefundRec.designer.cs create mode 100644 Window/WinSale/frmRefundRec.resx create mode 100644 Window/WinSale/frmReservedCustInfo.cs create mode 100644 Window/WinSale/frmReservedCustInfo.designer.cs create mode 100644 Window/WinSale/frmReservedCustInfo.resx create mode 100644 Window/WinSale/frmReservedFinsh.cs create mode 100644 Window/WinSale/frmReservedFinsh.designer.cs create mode 100644 Window/WinSale/frmReservedFinsh.resx create mode 100644 Window/WinSale/frmSaleMain.Designer.cs create mode 100644 Window/WinSale/frmSaleMain.cs create mode 100644 Window/WinSale/frmSaleMain.resx create mode 100644 Window/WinSale/frmSalePreCard_China.cs create mode 100644 Window/WinSale/frmSalePreCard_China.designer.cs create mode 100644 Window/WinSale/frmSalePreCard_China.resx create mode 100644 Window/WinSale/frmSetMenuChg.cs create mode 100644 Window/WinSale/frmSetMenuChg.designer.cs create mode 100644 Window/WinSale/frmSetMenuChg.resx create mode 100644 Window/WinSale/frmTableMain.Designer.cs create mode 100644 Window/WinSale/frmTableMain.cs create mode 100644 Window/WinSale/frmTableMain.resx create mode 100644 Window/WinSale/frmWebMasterDown.Designer.cs create mode 100644 Window/WinSale/frmWebMasterDown.cs create mode 100644 Window/WinSale/frmWebMasterDown.resx create mode 100644 Window/WinTable/Properties/AssemblyInfo.cs create mode 100644 Window/WinTable/Properties/Resources.Designer.cs create mode 100644 Window/WinTable/Properties/Resources.resx create mode 100644 Window/WinTable/WinTable.cs create mode 100644 Window/WinTable/WinTable.csproj create mode 100644 Window/WinTable/frmKitchMsgList.Designer.cs create mode 100644 Window/WinTable/frmKitchMsgList.cs create mode 100644 Window/WinTable/frmKitchMsgList.resx create mode 100644 Window/WinTable/frmKtchMsg.Designer.cs create mode 100644 Window/WinTable/frmKtchMsg.cs create mode 100644 Window/WinTable/frmKtchMsg.resx create mode 100644 Window/WinTable/frmRegStorNotice.Designer.cs create mode 100644 Window/WinTable/frmRegStorNotice.cs create mode 100644 Window/WinTable/frmRegStorNotice.resx create mode 100644 Window/WinTable/frmReservMain.Designer.cs create mode 100644 Window/WinTable/frmReservMain.cs create mode 100644 Window/WinTable/frmReservMain.resx create mode 100644 Window/WinTable/frmReservReg.Designer.cs create mode 100644 Window/WinTable/frmReservReg.cs create mode 100644 Window/WinTable/frmReservReg.resx create mode 100644 Window/WinTable/frmTableItemMove.Designer.cs create mode 100644 Window/WinTable/frmTableItemMove.cs create mode 100644 Window/WinTable/frmTableItemMove.resx diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c4efe2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,261 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +#*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc \ No newline at end of file diff --git a/Agent/Database/Activator.cs b/Agent/Database/Activator.cs new file mode 100644 index 0000000..c5d59b1 --- /dev/null +++ b/Agent/Database/Activator.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : Database 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + public class Activator : InitServiceAbstract + { + /// + /// 프로젝트 로드의 주진입점을 정의합니다. + /// + public Activator() + { + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_DATABASE.DATABASE_MSSQL: + { + Cosmos.Database.DatabaseMssql agentClass = new Cosmos.Database.DatabaseMssql(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_DATABASE.DATABASE_ORACLE: + { + //Cosmos.Database.DatabaseOracle agentClass = new Cosmos.Database.DatabaseOracle(); + //retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} diff --git a/Agent/Database/Database.csproj b/Agent/Database/Database.csproj new file mode 100644 index 0000000..9ec02ee --- /dev/null +++ b/Agent/Database/Database.csproj @@ -0,0 +1,80 @@ + + + + + Debug + AnyCPU + {057CA9DA-C2C8-4873-B914-92E115F94659} + Library + Properties + Cosmos.Database + Agent.Database + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + ..\..\..\BIN\Agent.Database.XML + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + + + + + + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.Database.dll .\Agent.Database.dll + + + copy .\Agent.Database.dll .\IC\Agent.Database.dll + + + \ No newline at end of file diff --git a/Agent/Database/DatabaseMssql.cs b/Agent/Database/DatabaseMssql.cs new file mode 100644 index 0000000..6ded456 --- /dev/null +++ b/Agent/Database/DatabaseMssql.cs @@ -0,0 +1,132 @@ +using System.Data.SqlClient; +using System.Data; +using System.Diagnostics; + +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : MSSQL DB 관련 처리 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Database +{ + public class DatabaseMssql : IDatabaseSQL + { + private SqlDB sqlDb = null; + + public bool Begin() + { + return sqlDb.DBBeginTransaction(); + } + + public bool Commit() + { + return sqlDb.DBTransactionCommit(); + } + + public bool Rollback() + { + return sqlDb.DBTransactionRollback(); + } + + public void Close() + { + sqlDb.DBClose(); + } + + /// + /// SQL DataTable를 이용한 Select + /// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음 + /// + /// + /// + /// + public int DBSelect(string sQuery, out DataTable outDtReturn) + { + int iReturn = -9; + DataTable dtReturn = null; + + string strCommand = sQuery; + CommandType sqlCommandType = CommandType.Text; + + //System.Diagnostics.Debug.Print("SQL=" + sQuery); + iReturn = sqlDb.DBDataTableSelect(strCommand, sqlCommandType, (SqlParameter[])null, out dtReturn); + + outDtReturn = dtReturn; + return iReturn; + } + + /// + /// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음 + /// + /// + /// + public int DBExecuteNonQuery(string sQuery) + { + int iReturn = 0; + + CommandType sqlCommandType = CommandType.Text; + + iReturn = sqlDb.DBExecuteNonQuery(sQuery, sqlCommandType, (SqlParameter[])null); + + return iReturn; + } + + /// + /// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음 + /// + /// + /// + public int DBExecuteNonQuery(string[] sQuery) + { + int iReturn = 0; + + CommandType sqlCommandType = CommandType.Text; + + iReturn = sqlDb.DBExecuteNonQuery(sQuery, sqlCommandType, (SqlParameter[])null); + + return iReturn; + } + + /// + /// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음 + /// + /// + /// + public int DBExecuteNonQuery(string[] sQuery, bool bStandAlone) + { + int iReturn = 0; + + CommandType sqlCommandType = CommandType.Text; + + iReturn = sqlDb.DBExecuteNonQuery(sQuery, sqlCommandType, (SqlParameter[])null, bStandAlone); + + return iReturn; + } + + /// + /// MSSQL Database Conntction String + /// + /// + /// + /// + /// + public bool SetDBConnectionString(string pDataSource, string pInitialCatalog, string pUID, string pPassword) + { + bool bReturn = false; + + if(sqlDb != null) + { + if (sqlDb.IsDBOpen()) sqlDb.DBClose(); + } + + sqlDb = new SqlDB(pDataSource, pInitialCatalog, pUID, pPassword); + + bReturn = sqlDb.IsDBOpen(); + + return bReturn; + } + + } +} diff --git a/Agent/Database/Properties/AssemblyInfo.cs b/Agent/Database/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5bd8507 --- /dev/null +++ b/Agent/Database/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("Database")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Database")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("dab8af19-a211-4c3f-87a1-79b22ffca956")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/InterfaceOutside/Activator.cs b/Agent/InterfaceOutside/Activator.cs new file mode 100644 index 0000000..fd4d85f --- /dev/null +++ b/Agent/InterfaceOutside/Activator.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : TranInterfaceOutside 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + public class Activator : InitServiceAbstract + { + /// + /// 프로젝트 로드의 주진입점을 정의합니다. + /// + public Activator() + { + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_TranInterfaceOutside.TIFO_MAIN: + { + Cosmos.TranInterfaceOutside.TranInterfaceOutside agentClass = new Cosmos.TranInterfaceOutside.TranInterfaceOutside(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} \ No newline at end of file diff --git a/Agent/InterfaceOutside/NetworkFtp.cs b/Agent/InterfaceOutside/NetworkFtp.cs new file mode 100644 index 0000000..f91fae5 --- /dev/null +++ b/Agent/InterfaceOutside/NetworkFtp.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Net; +using System.Collections; +using System.Diagnostics; +using System.Runtime.Serialization.Formatters.Binary; +using System.Data; + +using System.Net.Sockets; +using System.Threading; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : FTP 다운로드 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.TranInterfaceOutside +{ + public class NetworkFtp : INetworkFTP + { + private readonly string LOCAL_DOWN_PATH = BaseCom.NxRootPath + @"DOWN\"; //Download File Location (다운로드 파일위치) + + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + private FTP m_ClsFtp; + + public NetworkFtp() + { + m_cPosStatus = (PosStatus)StateObject.POS; + } + + /// + /// FTP 서버에 Connect + /// + /// + /// + /// + /// + /// + /// 0 : 정상접속, -1:시간초과, -2:로그인 실패, -3:서버접속 실패, -4:지원하지 않는 시스템 + public int Connect(string sServer, string sUserId, string sPassword, int iTimeOutSeconds, int iPort) + { + int nReturn = -9; + + try + { + m_ClsFtp = new FTP((iPort == 0) ? sServer : sServer + ":" + iPort, sUserId, sPassword); + + if (m_ClsFtp != null) nReturn = 0; + else nReturn = -1; + + ////m_ClsFtp = new ClsFtp(sServer, sUserId, sPassword, iTimeOutSeconds, iPort); + + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// //MessageBox.Show("FTP Server Connect Error !!! [" + nReturn.ToString() + "]"); + //// return nReturn; + ////} + + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Connect()", e.Message); + return nReturn; + } + + return nReturn; + } + + /// + /// + /// + /// + /// + /// + /// 0:정상종료, -1:Not Connected, -2:Binary Mode set failed, -3: failed local file Create, -4:socket 에러, -5:remote file 없슴, -6:정상수신실패, -7: 파일사이즈 틀림 + public int Download(string sSvrDirectory, string sLocalDirectory, string sFileNm, string sFtpMode = PosConst.FTP_CONN_TYPE.PASSIVE) + { + string sMsg = ""; + return Download(sSvrDirectory, sLocalDirectory, sFileNm, ref sMsg, sFtpMode); + } + public int Download(string sSvrDirectory, string sLocalDirectory, string sFileNm, ref string sMsg, string sFtpMode = PosConst.FTP_CONN_TYPE.PASSIVE) + { + int nReturn = -9; + bool bRet = false; + try + { + if (CmUtil.RightH(sLocalDirectory, 1) != "\\") sLocalDirectory += "\\"; + + if (Directory.Exists(sLocalDirectory) == false) Directory.CreateDirectory(sLocalDirectory); + + bRet = m_ClsFtp.Download(sSvrDirectory + sFileNm, sLocalDirectory + sFileNm, ref sMsg, sFtpMode); + + if (bRet) nReturn = 0; + else nReturn = -1; + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// return nReturn; + ////} + + ////string sDir = m_ClsFtp.ChangeDir(sSvrDirectory); + + ////nReturn = m_ClsFtp.Download(sLocalDirectory, sFileNm, true); + ////if (nReturn < 0 && File.Exists(BaseCom.NxDownPath + sFileNm + ".ftp") == true) + ////{ + //// File.Delete(BaseCom.NxDownPath + sFileNm + ".ftp"); + ////} + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Download()", e.Message); + + sMsg = sFileNm + " " + e.Message; + return nReturn; + } + + return nReturn; + } + + /// + /// FTP서버와의 연결을 종료 + /// + public void Disconnect() + { + //m_ClsFtp.Close(); + //m_ClsFtp.cleanup(); + } + + /// + /// 정해진 디렉토리에 정해진 파일을 업로드 + /// + /// + /// + /// + /// 0:정상완료, -1:Not Connected, -2: data socket create error, -3: file write 실패, -4:socket error, -5: 정상처리 실패(서버) + public int Upload(string sSvrDirectory, string sLocalDirectory, string sFileNm) + { + int nReturn = -9; + bool bRet = false; + + try + { + bRet = m_ClsFtp.Upload(sLocalDirectory + sFileNm, sSvrDirectory + sFileNm); + + if (bRet) nReturn = 0; + else nReturn = -1; + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// return nReturn; + ////} + + ////string sDir = m_ClsFtp.ChangeDir(sSvrDirectory); + + ////nReturn = m_ClsFtp.Upload(sLocalDirectory, sFileNm, true); + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Upload()", e.Message); + + return nReturn; + } + return nReturn; + } + } +} diff --git a/Agent/InterfaceOutside/Properties/AssemblyInfo.cs b/Agent/InterfaceOutside/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e8edc04 --- /dev/null +++ b/Agent/InterfaceOutside/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("TranInterfaceOutside")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TranInterfaceOutside")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("21f97fce-451b-4bfd-922a-565e98bf87c6")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/InterfaceOutside/TranInterfaceOutside.cs b/Agent/InterfaceOutside/TranInterfaceOutside.cs new file mode 100644 index 0000000..0430a68 --- /dev/null +++ b/Agent/InterfaceOutside/TranInterfaceOutside.cs @@ -0,0 +1,1979 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Cosmos.Common; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; + +using System.Runtime.Serialization.Formatters.Soap; +using System.Threading; +using System.Data; +using System.Data.SqlClient; +using System.Net; +using System.IO; + +using System.Xml; +using System.Net.Sockets; + +namespace Cosmos.TranInterfaceOutside +{ + public class TranInterfaceOutside : lTranInterfaceOutside + { + #region 변수선언 + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + /// + /// Inteferface Thread + /// + private Thread m_tIFProc = null; + + /// + /// 동작 여부 + /// + private bool m_IFProcRunning = false; + + /// + /// 처리중 + /// + private bool m_ProcStart = false; + + /// + /// 대기시간 + /// + private int nWAIT_TIME = 6000; + + /// + /// 전송할 데이터 + /// + private string m_sSendData = string.Empty; + + /// + /// FTP 모듈 + /// + private NetworkFtp m_cNetworkFTP = null; + protected TcpSocket m_cTcpSocket = null; + + #endregion + + #region 생성자 + /// + /// InterfaceOutside + /// + public TranInterfaceOutside() + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cNetworkFTP = new NetworkFtp(); + m_cTcpSocket = new TcpSocket(); + } + #endregion + + #region 스레드 시작 및 종료 + /// + /// 스레드 시작 + /// + public void Start() + { + try + { + // Database Connection + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + m_sSendData = string.Empty; + + m_tIFProc = new Thread(new ThreadStart(IFExecuteProc)); + m_IFProcRunning = true; + m_tIFProc.Start(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 스레드 종료 + /// + public void Stop() + { + try + { + m_IFProcRunning = false; + + int count = 0; + while (count < 10) + { + if (m_tIFProc != null && m_tIFProc.IsAlive) m_IFProcRunning = false; + else break; + + count++; + Thread.Sleep(10); + } + + if (count == 10) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force I/F Agent Stop!!!"); + m_tIFProc.Abort(); + } + + // DB Close + sqlDb.DBClose(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region 외부 Interface 처리 + private void IFExecuteProc() + { + int nCount = 0; + string sRet = UserCom.RST_ERR; + + while (m_IFProcRunning) + { + try + { + // Set Wait Time + Thread.Sleep((int)nWAIT_TIME); + + // 1분 대기후 처리 + if (nCount >= 1) + { + // 현재 처리중이면 Skip + if (m_ProcStart != true) + { + m_ProcStart = true; + + // 생성 처리 + sRet = IF_ExecMake(m_cPosStatus.Mst.ETC_IF_DIV); + + // 90일전 데이터 삭제 + sRet = IFSendDataDelete(); + + m_ProcStart = false; + + nCount = 0; + } + } + + nCount++; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + } + #endregion + + #region 인터페이스 생성 + /// + /// 인터페이스 생성 + /// + /// + /// + private string IF_ExecMake(string sIFDiv) + { + string sRet = UserCom.RST_ERR; + bool bRet = false; + DataTable dtData = new DataTable(); + + string sResCD = "99"; + string sResMsg = "Not Send"; + string sResData = ""; + string sSendYn = "0"; + int iRecvTimeOut = 10000; + string sRecvData = ""; + + try + { + // I/F 대상 거래 조회 + sRet = SelTranData(ref dtData, sIFDiv); + if (sRet == UserCom.RST_OK) + { + foreach (DataRow dr in dtData.Rows) + { + // 전송상태 + sSendYn = "0"; + + switch (sIFDiv) + { + #region 1.무역센터 + case ItemConst.TranInterfaceOutside.IF_CHN_01: // 무역센터 + { + // 생성 + sRet = CHN_01_Make(dr); + if (sRet == UserCom.RST_OK) + { + // 데이터 전송 + sResCD = "99"; + + //sRet = HttpPOST_SendReceive("http://10.254.10.60/ChiaTai/salestrans.asmx", m_sSendData, ref sResCD, ref sResMsg, ref sResData); + sRet = HttpPOST_SendReceive(sIFDiv, m_cPosStatus.Mst.ETC_IF_URL1, m_sSendData, ref sResCD, ref sResMsg, ref sResData); + + if (sRet == UserCom.RST_OK) + { + if (sResCD == "0") sSendYn = "1"; + } + + if (sResCD != "0") + { + // 실패시 + string sFileName = "FAIL" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "_" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + ".XML"; + CmUtil.CreateDirectory(BaseCom.NxBinPath + @"TRADE\FAIL\"); + CmUtil.FileDelete(BaseCom.NxBinPath + @"TRADE\FAIL\" + sFileName); + bRet = WriteFile(BaseCom.NxBinPath + @"TRADE\FAIL\", BaseCom.NxBinPath + @"TRADE\FAIL\" + sFileName, m_sSendData); + } + } + break; + } + #endregion + + #region 2.상해쩡따광장 + case ItemConst.TranInterfaceOutside.IF_CHN_02: // 상해쩡따광장 + { + // 생성 + sRet = CHN_02_Make(dr); + if (sRet == UserCom.RST_OK) + { + // 파일명 + string sFileName = "C" + m_cPosStatus.Mst.JOIN_STOR_CD + "_" + m_cPosStatus.Mst.JOIN_BRAND_CD + "_" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "_" + CmUtil.GetDataRowStr(dr, "POS_NO") + CmUtil.GetDataRowStr(dr, "TRADE_NO") + ".dat"; + + // 파일저장 + CmUtil.CreateDirectory(BaseCom.NxBinPath + @"FTPDATA\"); + CmUtil.FileDelete(BaseCom.NxBinPath + @"FTPDATA\" + sFileName); + bRet = WriteFile(BaseCom.NxBinPath + "FTPDATA", BaseCom.NxBinPath + @"FTPDATA\" + sFileName, m_sSendData); + + if (CmUtil.Exists(sFileName) == true) + { + // ftp 전송 + if (m_cNetworkFTP.Connect(m_cPosStatus.Mst.ETC_IF_FTP_IP, m_cPosStatus.Mst.ETC_IF_FTP_ID, m_cPosStatus.Mst.ETC_IF_FTP_PW, 10, CmUtil.IntParse(m_cPosStatus.Mst.ETC_IF_FTP_PORT)) == 0) + { + // FTP 다운로드 + int iRet = m_cNetworkFTP.Upload(m_cPosStatus.Mst.ETC_IF_FTP_PATH, BaseCom.NxBinPath + @"FTPDATA\", sFileName); + if (iRet == 0) + { + // 정상 + CmUtil.FileDelete(BaseCom.NxBinPath + @"FTPDATA\" + sFileName); + + sSendYn = "1"; + sResCD = "00"; + sResMsg = "OK"; + } + } + } + } + break; + } + #endregion + + #region 3.왕진활현 + case ItemConst.TranInterfaceOutside.IF_CHN_03: // 왕진활현 + { + // 생성 + sRet = CHN_03_Make(dr); + if (sRet == UserCom.RST_OK) + { + // 파일저장 + //CmUtil.FileDelete(BaseCom.NxBinPath + @"CapitaInterface\possalesdata.txt"); // 개점시 삭제 + bRet = WriteFile(@"C:\HOME\IMPORT\", @"C:\HOME\IMPORT\possalesdata.txt", m_sSendData); + + // 처리 거래정보 저장 + sRet = SavePOSInfoini(dr); + + if (bRet == true) + { + // 생성후 데몬이 전송처리하여 생성만 되면 전상 처리 + sSendYn = "1"; + sResCD = "00"; + sResMsg = "OK"; + } + } + break; + } + #endregion + + #region 4.조양따훼청 + case ItemConst.TranInterfaceOutside.IF_CHN_04: // 조양따훼청 + { + // 생성 + sRet = CHN_04_Make(dr); + if (sRet == UserCom.RST_OK) + { + // 파일명 + string sFileName = CmUtil.GetDataRowStr(dr, "SALE_DT") + "_" + CmUtil.GetDataRowStr(dr, "POS_NO") + "_" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + ".dat"; + + // 파일저장 + CmUtil.CreateDirectory(@"C:\PosData\import\"); + CmUtil.FileDelete(@"C:\PosData\import\" + sFileName); + bRet = WriteFile(@"C:\PosData\import\", @"C:\PosData\import\" + sFileName, m_sSendData); + + if (CmUtil.Exists(@"C:\PosData\import\" + sFileName) == true) + { + // 생성후 데몬이 전송처리하여 생성만 되면 전상 처리 + sSendYn = "1"; + sResCD = "00"; + sResMsg = "OK"; + } + } + break; + } + #endregion + + #region 5.풍란 + case ItemConst.TranInterfaceOutside.IF_CHN_05: // 풍란 + { + // 생성 + sRet = CHN_05_Make(dr); + if (sRet == UserCom.RST_OK) + { + // 파일명 + string sFileName = CmUtil.GetDataRowStr(dr, "SALE_DT") + "_" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + ".XML"; + + // 파일저장 + CmUtil.FileDelete(BaseCom.NxBinPath + @"FENGLAN\" + sFileName); + bRet = WriteFile(BaseCom.NxBinPath + @"FENGLAN\", BaseCom.NxBinPath + @"FENGLAN\" + sFileName, m_sSendData); + + if (CmUtil.Exists(BaseCom.NxBinPath + @"FENGLAN\" + sFileName) == true) + { + sRet = XMLSendSocket(m_cPosStatus.Mst.ETC_IF_FTP_IP, CmUtil.IntParse(m_cPosStatus.Mst.ETC_IF_FTP_PORT), m_sSendData, ref sRecvData); + + // 생성후 데몬이 전송처리하여 생성만 되면 정상 처리 + sResCD = "99"; + sRet = XmlParser(ItemConst.TranInterfaceOutside.IF_CHN_05, sRecvData, "result", ref sResCD, ref sResMsg); + if (sRet == UserCom.RST_OK) + { + if (sResCD == "0") + { + sSendYn = "1"; + + // 정상 처리사 삭제 + CmUtil.FileDelete(BaseCom.NxBinPath + @"FENGLAN\" + sFileName); + } + } + + if (sResCD != "0") + { + // 오류시 FIAL 폴더로 이동 + sSendYn = "9"; + CmUtil.CreateDirectory(BaseCom.NxBinPath + @"FENGLAN\FAIL\"); + CmUtil.FileMove(BaseCom.NxBinPath + @"FENGLAN\" + sFileName, BaseCom.NxBinPath + @"FENGLAN\FAIL\" + sFileName); + } + } + } + break; + } + #endregion + + #region 7.싱가포르-창이공항 + case ItemConst.TranInterfaceOutside.IF_SIN_01: // 창이공항 + { + // 생성 + sRet = SIN_01_Make(dr); + if (sRet == UserCom.RST_OK) + { + // 파일명 + string sFileName = string.Format("{0:0000}", CmUtil.GetDataRowDouble(dr, "POS_NO")) + "_" + CmUtil.GetDataRowStr(dr, "TRADE_NO"); + + // 파일저장 + CmUtil.FileDelete(BaseCom.NxBinPath + @"FTPDATA\" + sFileName); + bRet = WriteFile(BaseCom.NxBinPath + "FTPDATA", BaseCom.NxBinPath + @"FTPDATA\" + sFileName, m_sSendData); + + if (CmUtil.Exists(BaseCom.NxBinPath + @"FTPDATA\" + sFileName) == true) + { + // ftp 전송 + if (m_cNetworkFTP.Connect(m_cPosStatus.Mst.ETC_IF_FTP_IP, m_cPosStatus.Mst.ETC_IF_FTP_ID, m_cPosStatus.Mst.ETC_IF_FTP_PW, 10, CmUtil.IntParse(m_cPosStatus.Mst.ETC_IF_FTP_PORT)) == 0) + { + // FTP 다운로드 + int iRet = m_cNetworkFTP.Upload(m_cPosStatus.Mst.ETC_IF_FTP_PATH, BaseCom.NxBinPath + @"FTPDATA\", sFileName); + if (iRet == 0) + { + // 정상 + CmUtil.FileDelete(BaseCom.NxBinPath + @"FTPDATA\" + sFileName); + + sSendYn = "1"; + sResCD = "00"; + sResMsg = "OK"; + } + else + { + sSendYn = "9"; + CmUtil.CreateDirectory(BaseCom.NxBinPath + @"FTPDATA\BackUp\"); + CmUtil.FileMove(BaseCom.NxBinPath + @"FTPDATA\" + sFileName, BaseCom.NxBinPath + @"FTPDATA\BackUp\" + sFileName); + } + } + } + } + break; + } + #endregion + } + + // 전송후 상태값 저장 + sRet = IFSendFlgUpdate(dr, sIFDiv, sResCD, sResMsg, m_sSendData, sResData, sSendYn); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + #endregion + + #region I/F 대상 거래 조회 + /// + /// I/F 대상 거래 조회 + /// + /// + /// + /// + private string SelTranData(ref DataTable dtData, string sIFDiv) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + + try + { + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery += " , TSH.ORG_BILLDT \n"; + sQuery += " , TSH.ORG_BILL_NO \n"; + sQuery += " , TSH.ORG_BILL_POSNO \n"; + sQuery += " , ISNULL(SUM(TSH.QTY), 0) QTY \n"; + sQuery += " , ISNULL(SUM(TSH.NET_SALE_AMT), 0) SALE_AMT \n"; + sQuery += "FROM POSLOG..TR_SALE_HEADER TSH \n"; + sQuery += " LEFT JOIN POSLOG..LOG_SALE_IF LSI \n"; + sQuery += " ON TSH.CMP_CD = LSI.CMP_CD \n"; + sQuery += " AND TSH.SALE_DT = LSI.SALE_DT \n"; + sQuery += " AND TSH.STOR_CD = LSI.STOR_CD \n"; + sQuery += " AND TSH.POS_NO = LSI.POS_NO \n"; + sQuery += " AND TSH.TRADE_NO = LSI.TRADE_NO \n"; + sQuery += " AND LSI.IF_DIV = '" + sIFDiv.Trim() + "' \n"; + sQuery += "WHERE \n"; + sQuery += " TSH.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += "AND TSH.SALE_DT >= CONVERT(VARCHAR(8), DATEADD(day, -3, '" + m_cPosStatus.Base.SaleDate + "'), 112) \n"; // 영업일 기준 3일 이전부터 체크 + sQuery += "AND TSH.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += "AND TSH.POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += "AND TSH.TRAIN_MODE_YN = '0' \n"; + sQuery += "AND TSH.TRADE_KINDPER = '00' \n"; // 거래구분 ('00', '10', '11', '20', '21', '42', '43') -- 일반거래, 미결거래, 대외거래, 선불판매, 상품권판매 + sQuery += "AND LSI.CMP_CD IS NULL \n"; + sQuery += "GROUP BY \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery += " , TSH.ORG_BILLDT \n"; + sQuery += " , TSH.ORG_BILL_NO \n"; + sQuery += " , TSH.ORG_BILL_POSNO \n"; + sQuery += "ORDER BY 1, 2, 3, 4, 5 \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region 1.무역센터 - 중국 + #region CHN_01_Make 생성 + /// + /// CHN_01_Make 생성 + /// + /// + /// + private string CHN_01_Make(DataRow dr) + { + string sRet = UserCom.RST_ERR; + + try + { + // 1.헤더정보 + sRet = CHN_01_Header(dr); + if(sRet != UserCom.RST_OK ) return sRet; + + // 2.상품정보 + sRet = CHN_01_iTem(dr); + if(sRet != UserCom.RST_OK ) return sRet; + + // 3.결제정보 + sRet = CHN_01_Tender(dr); + if(sRet != UserCom.RST_OK ) return sRet; + + // 4.종결 + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region CHN_01_Header 헤더 + /// + /// CHN_01_Header 헤더 + /// + /// + /// + private string CHN_01_Header(DataRow dr) + { + string sRet = UserCom.RST_ERR; + + try + { + m_sSendData = ""; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + + // 1. XML 헤더 + m_sSendData += PosConst.CRLF; + m_sSendData += "
" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + IntParse(CmUtil.GetDataRowStr(dr, "TRADE_NO")) + "" + PosConst.CRLF; // 거래번호 + m_sSendData += "" + IntParse(CmUtil.GetDataRowStr(dr, "TRADE_NO")) + "" + PosConst.CRLF; // 거래번호 + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "SALESDATA" + PosConst.CRLF; + m_sSendData += "332" + PosConst.CRLF; + m_sSendData += "V332M" + PosConst.CRLF; + m_sSendData += "
" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + + // 2. XML 합계정보 + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "PAY_TIME") + "" + PosConst.CRLF; + m_sSendData += "2037" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "POS_NO") + "" + PosConst.CRLF; + + string sTranDiv = "SA"; + if (CmUtil.GetDataRowStr(dr, "TRADE_DIV") == "1") sTranDiv = "SR"; + m_sSendData += "" + sTranDiv + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "ORG_BILLDT") + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO") + "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + IntParse(CmUtil.GetDataRowStr(dr, "QTY")) + "" + PosConst.CRLF; + m_sSendData += "0.00" + PosConst.CRLF; + m_sSendData += "" + DoubleParse(CmUtil.GetDataRowStr(dr, "SALE_AMT")) + "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "" + DoubleParse(CmUtil.GetDataRowStr(dr, "SALE_AMT")) + "" + PosConst.CRLF; + m_sSendData += "" + DoubleParse(CmUtil.GetDataRowStr(dr, "SALE_AMT")) + "" + PosConst.CRLF; + m_sSendData += "0.00" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dr, "PAY_TIME") + "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "10" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region CHN_01_iTem 상품정보 + /// + /// CHN_01_iTem 상품정보 + /// + /// + /// + private string CHN_01_iTem(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + try + { + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSD.SEQ \n"; + sQuery += " , TSD.ITEM_PLU_CD \n"; + sQuery += " , ISNULL(TSD.SALE_QTY, 0) SALE_QTY \n"; + sQuery += " , ISNULL(TSD.BILL_AMT, 0) BILL_AMT \n"; + sQuery += "FROM POSLOG..TR_SALE_DETAIL TSD \n"; + sQuery += "WHERE \n"; + sQuery += " TSD.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += "AND TSD.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += "AND TSD.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += "AND TSD.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += "AND TSD.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += "AND TSD.CANCEL_DIV = '0' \n"; + sQuery += "ORDER BY TSD.SEQ \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + m_sSendData += "" + PosConst.CRLF; + foreach(DataRow dri in dtData.Rows) + { + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "1" + PosConst.CRLF; + m_sSendData += "" + IntParse(CmUtil.GetDataRowStr(dri, "SEQ")) + "" + PosConst.CRLF; + m_sSendData += "SB124A" + PosConst.CRLF; + m_sSendData += "SB124A1" + PosConst.CRLF; + m_sSendData += "SB124A1 " + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dri, "ITEM_PLU_CD") + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dri, "ITEM_PLU_CD") + "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "*" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "1" + PosConst.CRLF; + m_sSendData += "" + IntParse(CmUtil.GetDataRowStr(dri, "SALE_QTY")) + "" + PosConst.CRLF; + m_sSendData += "1.00" + PosConst.CRLF; + m_sSendData += "0.00" + PosConst.CRLF; + m_sSendData += "0.00" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + DoubleParse(CmUtil.GetDataRowStr(dri, "BILL_AMT")) + "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + } + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region CHN_01_Tender 결제정보 + /// + /// CHN_01_Tender 결제정보 + /// + /// + /// + private string CHN_01_Tender(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + try + { + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSP.SEQ \n"; + sQuery += " , CASE ISNULL(TSP.PAY_WAY_CD, '00') WHEN '00' THEN 'CH' \n"; + sQuery += " WHEN '02' THEN 'CI' \n"; + sQuery += " ELSE 'OH' END PAY_WAY_CD \n"; + sQuery += " , ISNULL(TSP.QTY_ENTRY_01, 0) QTY \n"; + sQuery += " , ISNULL(TSP.PAY_AMT, 0) PAY_AMT \n"; + sQuery += "FROM POSLOG..TR_SALE_PAY TSP \n"; + sQuery += "WHERE \n"; + sQuery += " TSP.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += "AND TSP.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += "AND TSP.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += "AND TSP.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += "AND TSP.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += "AND TSP.CANCEL_DIV = '0' \n"; + sQuery += "ORDER BY TSP.SEQ \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + m_sSendData += " " + PosConst.CRLF; + foreach(DataRow dri in dtData.Rows) + { + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + IntParse(CmUtil.GetDataRowStr(dri, "SEQ")) + "" + PosConst.CRLF; + m_sSendData += "" + CmUtil.GetDataRowStr(dri, "PAY_WAY_CD") + "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "" + DoubleParse(CmUtil.GetDataRowStr(dri, "PAY_AMT")) + "" + PosConst.CRLF; + m_sSendData += "" + DoubleParse(CmUtil.GetDataRowStr(dri, "PAY_AMT")) + "" + PosConst.CRLF; + m_sSendData += "0" + PosConst.CRLF; + m_sSendData += "-BS2037A00181,-DTSA,-CT99," + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + m_sSendData += "" + PosConst.CRLF; + } + m_sSendData += " " + PosConst.CRLF; + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + #endregion + + #region 2.상해쩡따광장 + #region CHN_02_Make 생성 + /// + /// CHN_02_Make 생성 + /// + /// + /// + private string CHN_02_Make(DataRow dr) + { + string sRet = UserCom.RST_ERR; + try + { + // 1.헤더정보 + sRet = CHN_02_Header(dr); + if (sRet != UserCom.RST_OK) return sRet; + + // 2.상품정보 + sRet = CHN_02_iTem(dr); + if (sRet != UserCom.RST_OK) return sRet; + + // 3.결제정보 + sRet = CHN_02_Tender(dr); + if (sRet != UserCom.RST_OK) return sRet; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region CHN_02_Header 헤더 + /// + /// CHN_02_Header 헤더 + /// + /// + /// + private string CHN_02_Header(DataRow dr) + { + string sRet = UserCom.RST_ERR; + try + { + m_sSendData = ""; + m_sSendData += "C"; + m_sSendData += m_cPosStatus.Mst.JOIN_BRAND_CD; // 임대번호 + m_sSendData += "~"; + m_sSendData += m_cPosStatus.Mst.JOIN_STOR_CD; // 기계번호 + m_sSendData += "~"; + m_sSendData += "H"; // 기록유형 (H-head) + m_sSendData += "~"; + m_sSendData += m_cPosStatus.Base.PosNo; // pos번호 + m_sSendData += "~"; + m_sSendData += m_cPosStatus.Base.TradeNo; // 거래번호 + m_sSendData += "~"; + string sTranDiv = "1"; + if (CmUtil.GetDataRowStr(dr, "TRADE_DIV") == "1") sTranDiv = "2"; + m_sSendData += sTranDiv; // 거래유형 (1:매출, 2:환불) + m_sSendData += "~"; + m_sSendData += DoubleParse(CmUtil.GetDataRowStr(dr, "SALE_AMT")); // 거래총금액 + m_sSendData += "~"; + m_sSendData += ""; // 회원카드번호 + m_sSendData += "~"; + m_sSendData += CmUtil.GetDataRowStr(dr, "SALE_DT") + CmUtil.GetDataRowStr(dr, "PAY_TIME"); // 거래일시 + m_sSendData += PosConst.CRLF; + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region CHN_02_iTem 상품정보 + /// + /// CHN_02_iTem 상품정보 + /// + /// + /// + private string CHN_02_iTem(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + try + { + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSD.SEQ \n"; + sQuery += " , TSD.ITEM_PLU_CD \n"; + sQuery += " , ISNULL(TSD.SALE_QTY, 0) SALE_QTY \n"; + sQuery += " , ISNULL(TSD.BILL_AMT, 0) BILL_AMT \n"; + sQuery += " , ISNULL(MI.SHTCUT_ITEMNM, '') ITEM_NM \n"; + sQuery += "FROM POSLOG..TR_SALE_DETAIL TSD \n"; + sQuery += " LEFT JOIN POSMST..MST_ITEM MI \n"; + sQuery += " ON MI.CMP_CD = TSD.CMP_CD \n"; + sQuery += " AND MI.STOR_CD = TSD.STOR_CD \n"; + sQuery += " AND MI.SUB_STOR_CD = TSD.SUB_SHOP_CD \n"; + sQuery += " AND MI.ITEM_CD = TSD.ITEM_PLU_CD \n"; + sQuery += " AND MI.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += "WHERE \n"; + sQuery += " TSD.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += "AND TSD.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += "AND TSD.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += "AND TSD.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += "AND TSD.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += "AND TSD.CANCEL_DIV = '0' \n"; + sQuery += "ORDER BY TSD.SEQ \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dri in dtData.Rows) + { + m_sSendData += "C"; + m_sSendData += m_cPosStatus.Mst.JOIN_BRAND_CD; // 임대번호 + m_sSendData += "~"; + m_sSendData += m_cPosStatus.Mst.JOIN_STOR_CD; // 기계번호 + m_sSendData += "~"; + m_sSendData += "I"; // 기록유형 (I-item) + m_sSendData += "~"; + m_sSendData += CmUtil.GetDataRowStr(dri, "ITEM_PLU_CD"); // 상품코드 + m_sSendData += "~"; + m_sSendData += IntParse(CmUtil.GetDataRowStr(dri, "SALE_QTY")); // 수량 + m_sSendData += "~"; + m_sSendData += DoubleParse(CmUtil.GetDataRowStr(dri, "BILL_AMT")); // 금액 + m_sSendData += "~"; + m_sSendData += CmUtil.MidH(CmUtil.GetDataRowStr(dri, "ITEM_NM"), 0, 40); // 명칭 + m_sSendData += PosConst.CRLF; + } + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region CHN_02_Tender 결제정보 + /// + /// CHN_02_Tender 결제정보 + /// + /// + /// + private string CHN_02_Tender(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + try + { + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSP.SEQ \n"; + sQuery += " , CASE ISNULL(TSP.PAY_WAY_CD, '00') WHEN '00' THEN '1' \n"; + sQuery += " WHEN '02' THEN (CASE ISNULL(TSP.OCCUR_ENTRY_05, '') WHEN 'C' THEN '3' ELSE '2' END) \n"; + sQuery += " WHEN '06' THEN '4' \n"; + sQuery += " ELSE '5' END PAY_WAY_CD \n"; + sQuery += " , ISNULL(TSP.QTY_ENTRY_01, 0) QTY \n"; + sQuery += " , ISNULL(TSP.PAY_AMT, 0) PAY_AMT \n"; + sQuery += "FROM POSLOG..TR_SALE_PAY TSP \n"; + sQuery += "WHERE \n"; + sQuery += " TSP.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += "AND TSP.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += "AND TSP.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += "AND TSP.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += "AND TSP.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += "AND TSP.CANCEL_DIV = '0' \n"; + sQuery += "ORDER BY TSP.SEQ \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dri in dtData.Rows) + { + m_sSendData += "C"; + m_sSendData += m_cPosStatus.Mst.JOIN_BRAND_CD; // 임대번호 + m_sSendData += "~"; + m_sSendData += m_cPosStatus.Mst.JOIN_STOR_CD; // 기계번호 + m_sSendData += "~"; + m_sSendData += "T"; // 기록유형 (T-TENDER) + m_sSendData += "~"; + m_sSendData += CmUtil.GetDataRowStr(dri, "PAY_WAY_CD"); // 지불방식: 1-현금 2-신용카드 3-IC카드 4-상품권 5-기타 + m_sSendData += "~"; + m_sSendData += DoubleParse(CmUtil.GetDataRowStr(dri, "PAY_AMT")); // 금액 + m_sSendData += PosConst.CRLF; + } + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + #endregion + + #region 3.왕진활현 + #region CHN_03_Make 생성 + /// + /// CHN_03_Make 생성 + /// + /// + /// + private string CHN_03_Make(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + try + { + m_sSendData = ""; + + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , '2052011401001' STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , '2052011401001' ITEM_CD \n"; + sQuery += " , ISNULL(SUM(TSH.NET_SALE_AMT), 0) SALE_AMT \n"; + sQuery += " FROM POSLOG..TR_SALE_HEADER TSH \n"; + sQuery += " WHERE \n"; + sQuery += " TSH.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += " AND TSH.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += " AND TSH.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += " AND TSH.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += " AND TSH.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += " AND TSH.TRAIN_MODE_YN = '0' \n"; + sQuery += " AND TSH.TRADE_KINDPER = '00' \n"; + sQuery += " GROUP BY \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dri in dtData.Rows) + { + double nTranDiv = 1; + if (CmUtil.GetDataRowStr(dri, "TRADE_DIV") == ItemConst.PAY_CANCEL_DIV.CANCEL) nTranDiv = -1; + + m_sSendData += " "; // 스페이스 + m_sSendData += "\t"; + m_sSendData += m_cPosStatus.Mst.JOIN_STOR_CD; // 점포코드 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "POS_NO"); // POS번호 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "SALE_DT"); // 거래일자 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "PAY_TIME"); // 거래시간 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "TRADE_NO"); // 거래번호 + m_sSendData += "\t"; + m_sSendData += m_cPosStatus.Mst.JOIN_ITEM_CD; // 상품코드 + m_sSendData += "\t"; + m_sSendData += CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "SALE_AMT")), nTranDiv); // 결제금액 + m_sSendData += "\t"; + m_sSendData += ""; // TENDER + m_sSendData += PosConst.CRLF; + } + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + #endregion + + #region 4.조양따훼청 + #region CHN_04_Make 생성 + /// + /// CHN_04_Make 생성 + /// + /// + /// + private string CHN_04_Make(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + try + { + m_sSendData = ""; + + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , '1F31A1' STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , '1031110' ITEM_CD \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '00' THEN ISNULL(TSP.PAY_AMT, 0) ELSE 0 END), 0) CASH_AMT \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '02' THEN (CASE WHEN ISNULL(TSP.OCCUR_ENTRY_18, '') = '20' THEN ISNULL(TSP.PAY_AMT, 0) ELSE 0 END) ELSE 0 END), 0) CARD_UN_SUM \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '02' THEN (CASE WHEN ISNULL(TSP.OCCUR_ENTRY_18, '') <> '20' THEN ISNULL(TSP.PAY_AMT, 0) ELSE 0 END) ELSE 0 END), 0) CARD_20_SUM \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '00' THEN 0 \n"; + sQuery += " WHEN '02' THEN 0 \n"; + sQuery += " ELSE ISNULL(TSP.PAY_AMT, 0) END), 0) ETC_SUM \n"; + sQuery += " , ISNULL(SUM(TSH.NET_SALE_AMT), 0) SALE_AMT \n"; + sQuery += " FROM POSLOG..TR_SALE_HEADER TSH \n"; + sQuery += " LEFT JOIN POSLOG..TR_SALE_PAY TSP \n"; + sQuery += " ON TSP.CMP_CD = TSH.CMP_CD \n"; + sQuery += " AND TSP.SALE_DT = TSH.SALE_DT \n"; + sQuery += " AND TSP.STOR_CD = TSH.STOR_CD \n"; + sQuery += " AND TSP.POS_NO = TSH.POS_NO \n"; + sQuery += " AND TSP.TRADE_NO = TSH.TRADE_NO \n"; + sQuery += " AND TSP.CANCEL_DIV = '0' \n"; + sQuery += " WHERE \n"; + sQuery += " TSH.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += " AND TSH.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += " AND TSH.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += " AND TSH.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += " AND TSH.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += " AND TSH.TRAIN_MODE_YN = '0' \n"; + sQuery += " AND TSH.TRADE_KINDPER = '00' \n"; + sQuery += " GROUP BY \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dri in dtData.Rows) + { + double nTranDiv = 1; + if (CmUtil.GetDataRowStr(dri, "TRADE_DIV") == ItemConst.PAY_CANCEL_DIV.CANCEL) nTranDiv = -1; + + m_sSendData += " "; // 스페이스 + m_sSendData += "\t"; + m_sSendData += m_cPosStatus.Mst.JOIN_STOR_CD; // 점포코드 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "POS_NO"); // POS번호 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "SALE_DT"); // 거래일자 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "PAY_TIME"); // 거래시간 + m_sSendData += "\t"; + m_sSendData += CmUtil.GetDataRowStr(dri, "TRADE_NO"); // 거래번호 + m_sSendData += "\t"; + m_sSendData += m_cPosStatus.Mst.JOIN_ITEM_CD; // 상품코드 + m_sSendData += "\t"; + m_sSendData += CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "CASH_AMT")), nTranDiv); // 현금 + m_sSendData += "\t"; + m_sSendData += CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "CARD_UN_SUM")), nTranDiv); // 중국은행카드 + m_sSendData += "\t"; + m_sSendData += CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "CARD_20_SUM")), nTranDiv); // 해외은행카드 + m_sSendData += "\t"; + m_sSendData += CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "ETC_SUM")), nTranDiv); // 기타 + m_sSendData += "\t"; + m_sSendData += CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "SALE_AMT")), nTranDiv); // 합계 + m_sSendData += PosConst.CRLF; + } + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + #endregion + + #region 5.풍란 + #region CHN_05_Make 생성 + /// + /// CHN_05_Make 생성 + /// + /// + /// + private string CHN_05_Make(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + string sDocNo = ""; + string sSaleDate = ""; + + try + { + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , '000984' STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , '000984' ITEM_CD \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '00' THEN ISNULL(TSP.PAY_AMT, 0) ELSE 0 END), 0) CASH_AMT \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '02' THEN (CASE WHEN ISNULL(TSP.OCCUR_ENTRY_18, '') = '20' THEN ISNULL(TSP.PAY_AMT, 0) ELSE 0 END) ELSE 0 END), 0) CARD_UN_SUM \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '02' THEN (CASE WHEN ISNULL(TSP.OCCUR_ENTRY_18, '') <> '20' THEN ISNULL(TSP.PAY_AMT, 0) ELSE 0 END) ELSE 0 END), 0) CARD_20_SUM \n"; + sQuery += " , ISNULL(SUM(CASE ISNULL(TSP.PAY_WAY_CD, '') WHEN '00' THEN 0 \n"; + sQuery += " WHEN '02' THEN 0 \n"; + sQuery += " ELSE ISNULL(TSP.PAY_AMT, 0) END), 0) ETC_SUM \n"; + sQuery += " , ISNULL(SUM(TSH.TOTDC_AMT), 0) TOTDC_AMT \n"; + sQuery += " , ISNULL(SUM(TSH.NET_SALE_AMT), 0) SALE_AMT \n"; + sQuery += " FROM POSLOG..TR_SALE_HEADER TSH \n"; + sQuery += " LEFT JOIN POSLOG..TR_SALE_PAY TSP \n"; + sQuery += " ON TSP.CMP_CD = TSH.CMP_CD \n"; + sQuery += " AND TSP.SALE_DT = TSH.SALE_DT \n"; + sQuery += " AND TSP.STOR_CD = TSH.STOR_CD \n"; + sQuery += " AND TSP.POS_NO = TSH.POS_NO \n"; + sQuery += " AND TSP.TRADE_NO = TSH.TRADE_NO \n"; + sQuery += " AND TSP.CANCEL_DIV = '0' \n"; + sQuery += " WHERE \n"; + sQuery += " TSH.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += " AND TSH.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += " AND TSH.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += " AND TSH.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += " AND TSH.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += " AND TSH.TRAIN_MODE_YN = '0' \n"; + sQuery += " AND TSH.TRADE_KINDPER = '00' \n"; + sQuery += " GROUP BY \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , TSH.PAY_TIME \n"; + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + m_sSendData = ""; + + foreach (DataRow dri in dtData.Rows) + { + double nTranDiv = 1; + if (CmUtil.GetDataRowStr(dri, "TRADE_DIV") == ItemConst.PAY_CANCEL_DIV.CANCEL) nTranDiv = -1; + + m_sSendData += ""; + m_sSendData += "SENDSALE"; // doc + m_sSendData += "" + m_cPosStatus.Mst.JOIN_STOR_CD + ""; // 점포코드 + m_sSendData += "" + CmUtil.GetDataRowStr(dri, "POS_NO").PadLeft(3, '0') + ""; // POS번호 + sDocNo = "S" + CmUtil.MidH(CmUtil.GetDataRowStr(dri, "SALE_DT"), 2, 6) + CmUtil.MidH(CmUtil.GetDataRowStr(dri, "TRADE_NO"), 2, 3); + m_sSendData += "" + sDocNo + ""; // 증빙서류 + m_sSendData += "" + m_cPosStatus.Mst.JOIN_ITEM_CD + ""; // 상품코드 + m_sSendData += "" + "" + ""; // vip 코드 + sSaleDate = string.Format("0:0000/00/00", CmUtil.DoubleParse(CmUtil.GetDataRowStr(dri, "SALE_DT"))) + " " + CmUtil.MidH(CmUtil.GetDataRowStr(dri, "PAY_TIME"), 0, 4); + m_sSendData += "" + sSaleDate + ""; // 매출일시 + m_sSendData += "" + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "CASH_AMT")), nTranDiv) + ""; // 현금 + m_sSendData += "" + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "CARD_UN_SUM")), nTranDiv) + ""; // 내부카드 + m_sSendData += "" + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "CARD_20_SUM")), nTranDiv) + ""; // 외부카드 + m_sSendData += "" + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "ETC_SUM")), nTranDiv) + ""; // 기타 + m_sSendData += "" + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "TOTDC_AMT")), nTranDiv) + ""; // 할인 + m_sSendData += "" + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "SALE_AMT")), nTranDiv) + ""; // 총금액 + m_sSendData += ""; + m_sSendData += PosConst.CRLF; + } + + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + #endregion + + #region 7.창이공항 + #region SIN_01_Make 생성 + /// + /// SIN_01_Make 생성 + /// + /// + /// + private string SIN_01_Make(DataRow dr) + { + string sQuery = string.Empty; + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + + double nTotalAmt = 0; + double nSubAmt = 0; + double nSumDCAmt = 0; + double nSumTax = 0; + double nDCAmt = 0; + + try + { + m_sSendData = ""; + + sQuery = ""; + sQuery += " SELECT \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n" ; + sQuery += " , TSH.SALE_DT \n" ; + sQuery += " , TSH.PAY_TIME \n" ; + sQuery += " , TSH.TRADE_NO \n" ; + sQuery += " , TSH.TRADE_DIV \n" ; + sQuery += " , TSD.ITEM_PLU_CD ITEM_CD \n"; + sQuery += " , ISNULL(MI.SHTCUT_ITEMNM, '') ITEM_NM \n"; + sQuery += " , ISNULL(TSD.SALE_QTY, 0) SALE_QTY \n"; + sQuery += " , ISNULL(TSD.BILL_AMT, 0) BILL_AMT \n"; + sQuery += " , ISNULL(TSD.APPLY_TAX_AMT, 0) APPLY_TAX_AMT \n"; + sQuery += " , ISNULL(TSD.ITEM_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.SUM_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.CPI_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.COOP_CARD_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.POINT_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.CPN_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.EMP_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.SET_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.ETC_DC_AMT, 0) \n"; + sQuery += " + ISNULL(TSD.EXCEP_DC_AMT, 0) ITEM_DC_AMT \n"; + sQuery += " , 0 TAX1 \n"; + sQuery += " , '1' TAX2 \n"; + sQuery += " , 0 TAX3 \n"; + sQuery += " , 0 SERV1 \n"; + sQuery += " , 0 SERV2 \n"; + sQuery += " , (SELECT ISNULL(MIC.ITEM_CLSS_NM, '') ITEM_CLSS_NM \n"; + sQuery += " FROM POSMST..MST_ITEM_CLSS MIC \n"; + sQuery += " WHERE \n"; + sQuery += " MIC.CMP_CD = MI.CMP_CD \n"; + sQuery += " AND MIC.ITEM_CLSS_TYPE_CD = '00' \n"; + sQuery += " AND MIC.ITEM_CLSS_CD = MI.L_CLSS \n"; + sQuery += " AND MIC.ITEM_CLSS_LVL_TYPE = 'L' \n"; + sQuery += " AND MIC.USE_YN = '" + PosConst.MST_USE_YN.YES + "') ITEM_CLSS_NM \n"; + sQuery += " FROM POSLOG..TR_SALE_HEADER TSH \n"; + sQuery += " LEFT JOIN POSLOG..TR_SALE_DETAIL TSD \n"; + sQuery += " ON TSD.CMP_CD = TSH.CMP_CD \n"; + sQuery += " AND TSD.SALE_DT = TSH.SALE_DT \n"; + sQuery += " AND TSD.STOR_CD = TSH.STOR_CD \n"; + sQuery += " AND TSD.POS_NO = TSH.POS_NO \n"; + sQuery += " AND TSD.TRADE_NO = TSH.TRADE_NO \n"; + sQuery += " AND TSD.CANCEL_DIV = '0' \n"; + sQuery += " LEFT JOIN POSMST..MST_ITEM MI \n"; + sQuery += " ON MI.CMP_CD = TSD.CMP_CD \n"; + sQuery += " AND MI.STOR_CD = TSD.STOR_CD \n"; + sQuery += " AND MI.SUB_STOR_CD = TSD.SUB_SHOP_CD \n"; + sQuery += " AND MI.ITEM_CD = TSD.ITEM_PLU_CD \n"; + sQuery += " AND MI.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += " WHERE \n"; + sQuery += " TSH.CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += " AND TSH.SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += " AND TSH.STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += " AND TSH.POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += " AND TSH.TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += " AND TSH.TRAIN_MODE_YN = '0' \n"; + sQuery += " AND TSH.TRADE_KINDPER = '00' \n"; + sQuery += " ORDER BY \n"; + sQuery += " TSH.CMP_CD \n"; + sQuery += " , TSH.SALE_DT \n"; + sQuery += " , TSH.STOR_CD \n"; + sQuery += " , TSH.POS_NO \n"; + sQuery += " , TSH.TRADE_NO \n"; + sQuery += " , TSH.TRADE_DIV \n"; + sQuery += " , TSD.SEQ \n"; + + sQuery = sQuery.Replace("\t", " "); + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dri in dtData.Rows) + { + double nTranDiv = 1; + if (CmUtil.GetDataRowStr(dri, "TRADE_DIV") == ItemConst.PAY_CANCEL_DIV.CANCEL) nTranDiv = -1; + + nSubAmt = CmUtil.DoubleAdd(nSubAmt, CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "BILL_AMT")), nTranDiv)); + nDCAmt = CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "ITEM_DC_AMT")), nTranDiv); + nSumDCAmt = CmUtil.DoubleAdd(nSumDCAmt, nDCAmt); + nSumTax = CmUtil.DoubleAdd(nSumTax, CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "APPLY_TAX_AMT")), nTranDiv)); + + nTotalAmt = CmUtil.DoubleAdd(nTotalAmt, CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "BILL_AMT")), nTranDiv)); + nTotalAmt = CmUtil.DoubleAdd(nTotalAmt, CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "APPLY_TAX_AMT")), nTranDiv)); + + m_sSendData += "I"; // 구분 + m_sSendData += "," + CmUtil.GetDataRowStr(dri, "TRADE_NO"); // 거래번호 + m_sSendData += "," + CmUtil.GetDataRowStr(dri, "ITEM_CD"); // 상품코드 + m_sSendData += "," + CmUtil.GetDataRowStr(dri, "ITEM_NM"); // 상품명 + m_sSendData += "," + IntParse(CmUtil.GetDataRowStr(dri, "SALE_QTY")); // 수량 + m_sSendData += "," + CmUtil.DoubleMultiplication(DoubleParse(CmUtil.GetDataRowStr(dri, "BILL_AMT")), nTranDiv); // 판매금액 + m_sSendData += "," + nDCAmt; // 할인금액 + if (nDCAmt > 0) + m_sSendData += "," + "1"; // 할인구분 (1:할인, 0:미할인) + else + m_sSendData += "," + "0"; + m_sSendData += "," + DoubleParse(CmUtil.GetDataRowStr(dri, "TAX1")); // 봉사료 + m_sSendData += "," + DoubleParse(CmUtil.GetDataRowStr(dri, "TAX2")); // 부가세율 + m_sSendData += "," + DoubleParse(CmUtil.GetDataRowStr(dri, "TAX3")); // 고정 + m_sSendData += "," + DoubleParse(CmUtil.GetDataRowStr(dri, "SERV1")); // 고정 + m_sSendData += "," + DoubleParse(CmUtil.GetDataRowStr(dri, "SERV1")); // 고정 + m_sSendData += "," + CmUtil.GetDataRowStr(dri, "ITEM_CLSS_NM"); // 분류명 + m_sSendData += PosConst.CRLF; + } + + // 계 + if (m_sSendData.Trim() != "") + { + m_sSendData += "D" + "," + "subtotal" + "," + nSubAmt + PosConst.CRLF; // 순매출 + m_sSendData += "D" + "," + "disc" + "," + nSumDCAmt + PosConst.CRLF; // 할인 + m_sSendData += "D" + "," + "tax2" + "," + nSumTax + PosConst.CRLF; // 부가세 + m_sSendData += "D" + "," + "total" + "," + nTotalAmt; // 총매출 + } + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + #endregion + + #region I/F POST방식 Request + /// + /// I/F POST방식 Request + /// + /// + /// + /// + /// + /// + /// + public string HttpPOST_SendReceive(string sIFDiv, string sUrl, string sSendData, ref string sResCD, ref string sResMsg, ref string sResData) + { + string sRet = UserCom.RST_ERR; + string sRespString = string.Empty; + + string[] sResponeData = new string[4]; + + try + { + if (sIFDiv == ItemConst.TranInterfaceOutside.IF_CHN_01) + { + // 무역센터 + sResponeData[0] = "application/soap+xml"; // ContentType + sResponeData[1] = "postsalescreate"; // SelectNodes + sResponeData[2] = "responsecode"; // res cd + sResponeData[3] = "responsemessage"; // res msg + } + + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl); + + byte[] reqByte = Encoding.UTF8.GetBytes(sSendData); + + req.Method = "POST"; + req.ContentType = sResponeData[0]; + req.ContentLength = reqByte.Length; + + // create our stream to send + Stream webDataStream = req.GetRequestStream(); + webDataStream.Write(reqByte, 0, reqByte.Length); + + // get thre response from our stream + WebResponse resp = req.GetResponse(); + webDataStream = resp.GetResponseStream(); + + // convert the result into a string + StreamReader respStreamReader = new StreamReader(webDataStream); + string respFromServer = respStreamReader.ReadToEnd(); + respStreamReader.Close(); + + // 파싱 + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(respFromServer); + XmlNodeList xnList = xmlDoc.SelectNodes(sResponeData[1]); + + foreach (XmlNode xn in xnList) + { + if (sIFDiv == ItemConst.TranInterfaceOutside.IF_CHN_01) + { + sResCD = xn[sResponeData[2]].InnerText; + sResMsg = xn[sResponeData[3]].InnerText; + sResData = respFromServer; + } + else + { + sResData = respFromServer; + } + } + + sRet = UserCom.RST_OK; + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return sRet; + } + #endregion + + #region 전송 상태값 저장 + /// + /// 전송 상태값 저장 + /// + /// + /// + /// + /// + /// + /// + /// + private string IFSendFlgUpdate(DataRow dr, string sIFDiv, string sResCD, string sResMsg, string sSData, string sRData, string sSendYn) + { + int iRet = UserCom.NG; + string sRet = UserCom.RST_ERR; + string sQuery = string.Empty; + + try + { + if (CmUtil.GetDataRowStr(dr, "CMP_CD").Trim() == "") return sRet; + + sResMsg = sResMsg.Replace("'", "`"); + sSData = sSData.Replace("'", "`"); + sRData = sRData.Replace("'", "`"); + + sQuery = ""; + sQuery += "BEGIN \n"; + sQuery += " UPDATE POSLOG..LOG_SALE_IF \n"; + sQuery += " SET \n"; + sQuery += " RES_CD = '" + sResCD.Trim() + "' \n"; + sQuery += " , RES_MSG = N'" + sResMsg.Trim() + "' \n"; + sQuery += " , SDATA = N'" + sSData.Trim() + "' \n"; + sQuery += " , RDATA = N'" + sRData.Trim() + "' \n"; + sQuery += " , SEND_YN = '" + sSendYn + "' \n"; + sQuery += " , UPD_DATE = CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 114), ':', '') \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += " AND SALE_DT = '" + CmUtil.GetDataRowStr(dr, "SALE_DT")+ "' \n"; + sQuery += " AND STOR_CD = '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += " AND POS_NO = '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += " AND TRADE_NO = '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += " AND IF_DIV = '" + sIFDiv.Trim() + "' \n"; + sQuery += " \n"; + sQuery += " IF @@ROWCOUNT = 0 \n"; + sQuery += " BEGIN \n"; + sQuery += " INSERT INTO POSLOG..LOG_SALE_IF \n"; + sQuery += " (CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO, IF_DIV, RES_CD, RES_MSG, SDATA, RDATA, SEND_YN, REG_DATE) \n"; + sQuery += " VALUES( \n"; + sQuery += " '" + CmUtil.GetDataRowStr(dr, "CMP_CD") + "' \n"; + sQuery += " , '" + CmUtil.GetDataRowStr(dr, "SALE_DT") + "' \n"; + sQuery += " , '" + CmUtil.GetDataRowStr(dr, "STOR_CD") + "' \n"; + sQuery += " , '" + CmUtil.GetDataRowStr(dr, "POS_NO") + "' \n"; + sQuery += " , '" + CmUtil.GetDataRowStr(dr, "TRADE_NO") + "' \n"; + sQuery += " , '" + sIFDiv.Trim() + "' \n"; + sQuery += " , '" + sResCD.Trim() + "' \n"; + sQuery += " , N'" + sResMsg.Trim() + "' \n"; + sQuery += " , N'" + sSData.Trim() + "' \n"; + sQuery += " , N'" + sRData.Trim() + "' \n"; + sQuery += " , '" + sSendYn.Trim() + "' \n"; + sQuery += " , CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 114), ':', '') \n"; + sQuery += " ) \n"; + sQuery += " END \n"; + sQuery += "END \n"; + sQuery = sQuery.Replace("\t", " "); + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + + if (iRet > 0 ) + { + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + #endregion + + #region 90일 이전 데이터 삭제 + /// + /// 90 이전 데이터 삭제 + /// + /// + private string IFSendDataDelete() + { + int iRet = UserCom.NG; + string sRet = UserCom.RST_ERR; + string sQuery = string.Empty; + try + { + sQuery = ""; + sQuery += " DELETE POSLOG..LOG_SALE_IF \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " AND SALE_DT <= CONVERT(VARCHAR(8), DATEADD(day, -90, GETDATE()), 112) \n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " AND SEND_YN = '1' \n"; + sQuery = sQuery.Replace("\t", " "); + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + #endregion + + #region 파일 저장 + /// + /// 파일 저장 + /// + /// + /// + /// + /// + public bool WriteFile(string sFullPath, string sFileName, string sFileData) + { + bool bRet = false; + try + { + // 디렉토리 생성 + CmUtil.CreateDirectory(sFullPath); + + // 파일 저장 + FileStream fs = new FileStream(sFileName, FileMode.Append, FileAccess.Write); + StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); + + try + { + sw.BaseStream.Seek(0, SeekOrigin.End); + + sw.WriteLine(sFileData); + sw.Flush(); + + bRet = true; + } + catch + { + + } + finally + { + sw.Close(); + fs.Close(); + } + } + catch + { + return false; + } + return bRet; + } + #endregion + + #region xml 소켓통신 + /// + /// XMLSendSocket + /// + /// + /// + /// + /// + private string XMLSendSocket(String sHostIp, int nPort, String sSendData, ref string sRecvData) + { + string sRet = UserCom.RST_ERR; + + try + { + TcpClient client = new TcpClient(); + client.Connect(sHostIp, nPort); + if (client == null) return sRet; + + NetworkStream nsStream = client.GetStream(); + + StreamWriter writer = new StreamWriter(nsStream, Encoding.UTF8); + writer.AutoFlush = false; + writer.Write(sSendData); + writer.Flush(); + + StreamReader reader = new StreamReader(nsStream, Encoding.UTF8); + sRecvData = reader.ReadLine(); + + nsStream.Close(); + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region xml 파싱 + /// + /// xml 파싱 + /// + /// + /// + /// + /// + /// + /// + private string XmlParser(string sIFDiv, string sXMLData, string sSelectNode, ref string sResCD, ref string sResMsg) + { + string sRet = UserCom.RST_ERR; + + try + { + sResCD = "99"; + sResMsg = "not xml data"; + if (sXMLData.Trim() == "") return sRet; + + // 파싱 + XmlDocument xmlDoc = new XmlDocument(); + xmlDoc.LoadXml(sXMLData); + XmlNodeList xnList = xmlDoc.SelectNodes(sSelectNode); + + foreach (XmlNode xn in xnList) + { + if (sIFDiv == ItemConst.TranInterfaceOutside.IF_CHN_05) + { + sResCD = xn["code"].InnerText; + sResMsg = xn["message"].InnerText; + } + } + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + #endregion + + #region 처리 거래정보 ini 저장 (왕진활현) + /// + /// 처리정보 ini 저장 (왕진활현) + /// + /// + /// + private string SavePOSInfoini(DataRow dr) + { + string sRet = UserCom.RST_ERR; + + string sFilePath = @"C:\HOME\IMPORT\"; + string sFileName = "POSINFO.ini"; + + try + { + CmUtil.CreateDirectory(sFilePath); + + WinAPI.WritePrivateProfileString("POSINFO", "StoreCode", m_cPosStatus.Mst.JOIN_STOR_CD, sFilePath + sFileName); // 점포코드 + WinAPI.WritePrivateProfileString("POSINFO", "Tillid", CmUtil.GetDataRowStr(dr, "POS_NO"), sFilePath + sFileName); // POS번호 + WinAPI.WritePrivateProfileString("POSINFO", "ItemCode", m_cPosStatus.Mst.JOIN_ITEM_CD, sFilePath + sFileName); // 상품코드 + WinAPI.WritePrivateProfileString("POSINFO", "PathName", sFilePath, sFilePath + sFileName); // 경로 + WinAPI.WritePrivateProfileString("POSINFO", "FileName", "possalesdata.txt", sFilePath + sFileName); // 상품코드 + + WinAPI.WritePrivateProfileString("DATAINFO", "LASTTXDATE", CmUtil.GetDataRowStr(dr, "SALE_DT"), sFilePath + sFileName); // 거래일자 + WinAPI.WritePrivateProfileString("DATAINFO", "LASTDOCNO", CmUtil.GetDataRowStr(dr, "TRADE_NO"), sFilePath + sFileName); // 최종거래번호 + + // POSINFO.INI 파일을 CapitaInterface.zip 파일로 압축 + bool bRet = CmUtil.ZipFile(sFilePath, sFilePath + "CapitaInterface.zip", "POSINFO.ini"); + + if (bRet == true) sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region 글로벌 숫자 변환 + /// + /// 문자열의 숫자(Int)로 변환 + /// + /// + /// + public int IntParse(string sValue) + { + return (int)DoubleParse(sValue); + } + /// + /// 문자열의 숫자(Long)로 변환 + /// + /// + /// + public long LongParse(string sValue) + { + return (long)DoubleParse(sValue); + } + /// + /// 문자열의 숫자(Double)로 변환 + /// + /// + /// + public double DoubleParse(string sValue) + { + double dValue = 0; + try + { + if (sValue.Trim().Length > 0) + { + // 화폐 문자열 이면 글로벌 변환 처리 + if (sValue.Trim().Contains(m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol) == true || sValue.Trim().Contains(m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol) == true) + dValue = m_cPosStatus.Global.CurrencyTONumeric(sValue.Trim()); + else + dValue = double.Parse(sValue.Trim()); + } + } + catch { } + + return dValue; + } + #endregion + } +} diff --git a/Agent/InterfaceOutside/TranInterfaceOutside.csproj b/Agent/InterfaceOutside/TranInterfaceOutside.csproj new file mode 100644 index 0000000..e17f8ec --- /dev/null +++ b/Agent/InterfaceOutside/TranInterfaceOutside.csproj @@ -0,0 +1,85 @@ + + + + + Debug + AnyCPU + {7BA1E882-7E84-4A09-AE93-0447624BB13E} + Library + Properties + Cosmos.TranInterfaceOutside + Agent.TranInterfaceOutside + v4.0 + 512 + + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + ..\..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + + + + + + + + + + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.TranInterfaceOutside.dll .\Agent.TranInterfaceOutside.dll + + + copy .\Agent.TranInterfaceOutside.dll .\IC\Agent.TranInterfaceOutside.dll + + + \ No newline at end of file diff --git a/Agent/KDS/Activator.cs b/Agent/KDS/Activator.cs new file mode 100644 index 0000000..18784a9 --- /dev/null +++ b/Agent/KDS/Activator.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : KDS 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + public class Activator : InitServiceAbstract + { + /// + /// 프로젝트 로드의 주진입점을 정의합니다. + /// + public Activator() + { + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_KDS.KDS_MAIN: + { + Cosmos.KDS.KDSMain agentClass = new Cosmos.KDS.KDSMain(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} \ No newline at end of file diff --git a/Agent/KDS/Common.cs b/Agent/KDS/Common.cs new file mode 100644 index 0000000..02aa7e0 --- /dev/null +++ b/Agent/KDS/Common.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Cosmos.KDS +{ + public class KDSItem + { + public string sOrderType; + public string sFloorCd; + public string sTableNo; + public string sKtchSysCd; + public int nSeq; + public string sCmpCd; + public string sBrandCd; + public string sStorCd; + public string sPosNo; + public string sTradeNo; + public string sSaleDt; + public string sPosType; + public string sItemCd; + public string sItemDiv; + public string sItemNm; + public int nQty; + public string sPackDiv; + public string sSetMenuCd; + public string sOrdTime; + public string sCancelDiv; + public string sOrgBillPosNo; + public string sOrgBillDt; + public string sOrgBillNo; + public string sKtchSysUseDiv; + public string sKtchKdsIp; + public string sKtchKdsPort; + public string sErrorCd; + public string sSendYn; + public string sResendYn; + public string sFiller1; + public string sFiller2; + public string sFiller3; + public string sFiller4; + public string sFiller5; + } +} diff --git a/Agent/KDS/KDS.csproj b/Agent/KDS/KDS.csproj new file mode 100644 index 0000000..1503b8b --- /dev/null +++ b/Agent/KDS/KDS.csproj @@ -0,0 +1,89 @@ + + + + + Debug + AnyCPU + {DF8A2088-9F76-47DE-9B50-7AA93FE359A4} + Library + Properties + Cosmos.KDS + Agent.KDS + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + ..\..\..\BIN\Cosmos.UserFrame.dll + + + False + ..\..\..\BIN\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.KDS.dll .\Agent.KDS.dll + + + copy .\Agent.KDS.dll .\IC\Agent.KDS.dll + + + \ No newline at end of file diff --git a/Agent/KDS/KDSMain.cs b/Agent/KDS/KDSMain.cs new file mode 100644 index 0000000..209501a --- /dev/null +++ b/Agent/KDS/KDSMain.cs @@ -0,0 +1,1145 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Data.SqlClient; +using System.Data; + +using Cosmos.Common; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.CommonManager; +using Cosmos.ServiceProvider; + +using Newtonsoft.Json; + +namespace Cosmos.KDS +{ + public class KDSMain : IWatcher + { + #region 클래스 변수 선언 + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + /// + /// KPS Thread (KPS 스레드) + /// + private Thread m_tKDSProc = null; + + /// + /// KPS Proc Operation Yes/No (KPS Proc 작동여부) + /// + private bool m_KDSProcRunning = true; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + // 대기시간 + //private int WAIT_TIME = 3000; + private int WAIT_TIME = 1000; + + // Delay time to close socket + private int m_iTimeout = 5000; + + // 전송 소켓 + private static TcpSocket m_sendSocket = null; + + // KDS 전문 헤더 길이 + private const int DATA_LEN_SIZE = 5; + + //17.08.22 dkshin SS 해피오더 + private SManager sManager = new SManager(); + private IHappyOrderList m_cHappyOrder = null; // 해피오더 서비스 처리 + private ISaleCompleteUs m_cRecService = null; + #endregion 클래스 변수 선언 + + #region 생성자 + public KDSMain() + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST);//17.08.22 dkshin SS 해피오더 + m_cRecService = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);//17.08.22 dkshin SS 해피오더 + } + #endregion + + #region KDS 데몬 기동/종료 + public void Start() + { + try + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "KDS Start"); + + // Database Connection + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + m_tKDSProc = new Thread(new ThreadStart(KDSExecuteProc)); + m_KDSProcRunning = true; + m_tKDSProc.Start(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void Stop() + { + try + { + m_KDSProcRunning = false; + + int count = 0; + while(count < 10) + { + if (m_tKDSProc != null && m_tKDSProc.IsAlive) m_KDSProcRunning = false; + else break; + + count++; + Thread.Sleep(100); + } + + if (count == 10) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Force KDS Agent Stop!!!"); + m_tKDSProc.Abort(); + } + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "KDS Stop"); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region Thread Main + private void KDSExecuteProc() + { + string sIp = ""; + int iPort = -1; + + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + //기존 + //string sSendFlag = "9"; + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + + while (m_KDSProcRunning) + { + try + { + //// Set Wait Time + //Thread.Sleep((int)WAIT_TIME); + + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "KDSSendItemMake Start"); + */ + // KDS Send Item Make + KDSSendItemMake(); + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "KDSSendItemMake End"); + */ + Hashtable htKDSSendItem = new Hashtable(); + + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + //기존 + //string[] saKey = new string[4]; + //변경 + string[] saKey = new string[5]; + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + + Hashtable htSendJsonData = GetKDSSendItem(ref htKDSSendItem, ref sIp, ref iPort, ref saKey); + + //if(sIp == "" || iPort == -1 || htSendJsonData == null || htSendJsonData.Count == 0) + //{ + // continue; + //} + + if (sIp != "" && iPort != -1 && htSendJsonData != null && htSendJsonData.Count != 0) + { + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + string sSendFlag = "9"; + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + + string sReturn = SendProcess(sIp, iPort, m_iTimeout, htSendJsonData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; + + //#14180 JJ 코엑스_ 2번포스 주방영수증에서 레시피 출력 안되는 증상,phj start + //2018-03-06 + //MST_KTCH_ORD_MSG 테이블은 KPS, KDS 모두 접근하는 테이블인데 (KPS, KDS 기능 모두 사용하는 점포) + //먼저 KDS 스레드에서 MST_KTCH_ORD_MSG 검색해서 MST_KDS_ORD_MSG 테이블로 인서트 성공하면 + //해당 주방상품 데이터 삭제 시키기 때문에 이 후에 KPS 스레드가 돌면 해당 주방상품의 주방 영수증이 출력 안될 수 있다. + //그렇기 때문에 아래에 함수 주석처리한다. + /* + //17.08.22 dkshin SS 해피오더 - KDS 전송 성공 후 주문 목록 데이타 삭제(KDS 보낼 때 주문 목록 데이타를 검색해서 보내기 때문에) + //Hashtable htOrderHeader = (Hashtable)htSendJsonData["ORDERHEADER"]; + Hashtable htOrderHeader = (Hashtable)htSendJsonData["HEADER"]; + m_cHappyOrder.DeleteSSHappyOrderMSG(htOrderHeader["TRAN_NO"].ToString()); + */ + //#14180 JJ 코엑스_ 2번포스 주방영수증에서 레시피 출력 안되는 증상,phj end + } + //17.08.22 dkshin SS 해피오더 - KDS 전송 실패 시 영수증 출력 + else + { + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + //기존 + /* + ArrayList m_sPrintData = new ArrayList(); + Hashtable[] hsOrderItem = (Hashtable[])htSendJsonData["ORDER_ITEM"]; + + for (int i = 0; i < hsOrderItem.Length; i++) + { + Column.TR_HPORD.HPORD_ITEM item = new Column.TR_HPORD.HPORD_ITEM(); + item.GoodsName = hsOrderItem[i]["ITEM_NM"].ToString(); + item.Qty = hsOrderItem[i]["ITEM_QTY"].ToString(); + m_sPrintData.Add(item); + } + + m_cRecService.HappyOrderKDSPrint(m_sPrintData);// + */ + //변경 + if (saKey[4] == "0") + { + ArrayList m_sPrintData = new ArrayList(); + Hashtable[] hsOrderItem = (Hashtable[])htSendJsonData["ORDER_ITEM"]; + + for (int i = 0; i < hsOrderItem.Length; i++) + { + Column.TR_HPORD.HPORD_ITEM item = new Column.TR_HPORD.HPORD_ITEM(); + item.GoodsName = hsOrderItem[i]["ITEM_NM"].ToString(); + item.Qty = hsOrderItem[i]["ITEM_QTY"].ToString(); + m_sPrintData.Add(item); + } + + m_cRecService.HappyOrderKDSPrint(m_sPrintData);// + } + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + + } + + UpdateKDSSendFlag(saKey[0], saKey[1], saKey[2], saKey[3], sSendFlag); + } + + int nNowSleepTerm = 0; + while (nNowSleepTerm < WAIT_TIME) + { + if (m_KDSProcRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + } + #endregion + + #region 데이터 이행 처리(주방주문데이터 -> KDS) + /// + /// MST_KTCH_ORD_MSG(주방주문데이터) 에서 KDS 전송 데이터 조회 + /// + public bool KDSSendItemMake() + { + bool bRtn = false; + string sQuery = ""; + + Hashtable htKDSSendingItem = new Hashtable(); + + try + { + #region 복합매장 적용 이전 버전 + //sQuery += "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, B.KTCH_SYS_CD, A.SEQ "; + //sQuery += " , A.CMP_CD, A.BRAND_CD, A.STOR_CD, A.POS_NO, A.TRADE_NO, A.SALE_DT "; + //sQuery += " , A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM, A.SALE_QTY, A.PACK_DIV "; + //sQuery += " , A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.ORG_BILL_POSNO, A.ORG_BILLDT, A.ORG_BILL_NO "; + //sQuery += " , A.SUB_MEMO_DIV, A.RESEND_YN, C.KTCH_SYS_USE_DIV, C.KTCH_DSP_IP, C.KTCH_DSP_PORT, C.FILLER1 "; + //sQuery += " , C.FILLER2, C.FILLER3, C.FILLER4, C.FILLER5 "; + //sQuery += " FROM POSMST..MST_KTCH_ORD_MSG A "; + //sQuery += " , POSMST..MST_KTCH_DEVICE_ITEM B "; + //sQuery += " , POSMST..MST_KTCH_DEVICE C "; + //sQuery += " WHERE A.SEND_YN = '0' "; + //sQuery += " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') "; + //sQuery += " AND B.ITEM_CD = A.ITEM_CD "; + //sQuery += " AND B.FLOOR_CD = A.FLOOR_CD "; + //sQuery += " AND B.KTCH_SYS_CD = C.KTCH_SYS_CD "; + //sQuery += " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KDS + "' "; + //sQuery += " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' "; + + //DataTable dtData = null; + //if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + //{ + // UserLog.WriteLogFile(UserCom.LOG_DEBUG, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // sQuery); + // return; + //} + //foreach(DataRow dr in dtData.Rows) + //{ + // KDSItem cKDSItem = new KDSItem(); + + // cKDSItem.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV"); + // cKDSItem.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD"); + // cKDSItem.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO"); + // cKDSItem.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"); + // cKDSItem.nSeq = CmUtil.GetDataRowInt(dr, "SEQ"); + // cKDSItem.sCmpCd = CmUtil.GetDataRowStr(dr, "CMP_CD"); + // cKDSItem.sBrandCd = CmUtil.GetDataRowStr(dr, "BRAND_CD"); + // cKDSItem.sStorCd = CmUtil.GetDataRowStr(dr, "STOR_CD"); + // cKDSItem.sPosNo = CmUtil.GetDataRowStr(dr, "POS_NO"); + // cKDSItem.sTradeNo = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + // cKDSItem.sSaleDt = CmUtil.GetDataRowStr(dr, "SALE_DT"); + // cKDSItem.sPosType = CmUtil.GetDataRowStr(dr, "POS_TYPE"); + // cKDSItem.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD"); + // cKDSItem.sItemDiv = CmUtil.GetDataRowStr(dr, "ITEM_DIV"); + // cKDSItem.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM"); + // cKDSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY"); + // cKDSItem.sPackDiv = CmUtil.GetDataRowStr(dr, "PACK_DIV"); + // cKDSItem.sSetMenuCd = CmUtil.GetDataRowStr(dr, "SET_MENU_CD"); + // cKDSItem.sOrdTime = CmUtil.GetDataRowStr(dr, "ORD_TIME"); + // cKDSItem.sCancelDiv = CmUtil.GetDataRowStr(dr, "CANCEL_DIV"); + // cKDSItem.sOrgBillPosNo = CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO"); + // cKDSItem.sOrgBillDt = CmUtil.GetDataRowStr(dr, "ORG_BILL_DT"); + // cKDSItem.sOrgBillNo = CmUtil.GetDataRowStr(dr, "ORG_BILL_NO"); + // cKDSItem.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV"); + // cKDSItem.sKtchKdsIp = CmUtil.GetDataRowStr(dr, "KTCH_DSP_IP"); + // cKDSItem.sKtchKdsPort = CmUtil.GetDataRowStr(dr, "KTCH_DSP_PORT"); + // cKDSItem.sResendYn = CmUtil.GetDataRowStr(dr, "RESEND_YN"); + // cKDSItem.sFiller1 = CmUtil.GetDataRowStr(dr, "FILLER1"); + // cKDSItem.sFiller2 = CmUtil.GetDataRowStr(dr, "FILLER2"); + // cKDSItem.sFiller3 = CmUtil.GetDataRowStr(dr, "FILLER3"); + // cKDSItem.sFiller4 = CmUtil.GetDataRowStr(dr, "FILLER4"); + // cKDSItem.sFiller5 = CmUtil.GetDataRowStr(dr, "FILLER5"); + + // cKDSItem.sSendYn = "0"; + // cKDSItem.sErrorCd = "0000"; + + // htKDSSendingItem.Add(htKDSSendingItem.Count, cKDSItem); + //} + + //if (htKDSSendingItem.Count > 0) + //{ + // InsertIntoKDS(htKDSSendingItem); + //} + #endregion 복합매장 적용 이전 버전 + + #region 연습모드 적용 이전 버전 + //sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.CMP_CD, A.BRAND_CD, A.STOR_CD, A.SUB_STOR_CD, A.POS_NO, A.TRADE_NO, A.SALE_DT, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + // + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // + " , C.KTCH_SYS_USE_DIV, C.KTCH_DSP_IP, C.KTCH_DSP_PORT, C.FILLER1, C.FILLER2, A.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n" + // + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + // + " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD \n" + // + " AND (A.FLOOR_CD = B.FLOOR_CD OR '999' = B.FLOOR_CD) \n" + // + " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD \n" + // + " AND B.SUB_STOR_CD = C.SUB_STOR_CD AND B.KTCH_SYS_CD = C.KTCH_SYS_CD \n" + // + " AND A.ORD_DIV = '0' \n" + // + " AND A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + // + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KDS + "' \n" + // + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // ; + #endregion + + #region KPS + KDS 중복사용 적용 이전 버전 + ////sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.CMP_CD, A.BRAND_CD, A.STOR_CD, A.SUB_STOR_CD, A.POS_NO, A.TRADE_NO, A.SALE_DT, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + //sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.CMP_CD, A.BRAND_CD, A.STOR_CD, A.POS_NO, A.TRADE_NO, A.SALE_DT, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + // + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // + " , C.KTCH_SYS_USE_DIV, C.KTCH_DSP_IP, C.KTCH_DSP_PORT, C.FILLER1, C.FILLER2, A.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n" + // + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + // + " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD \n" + // + " AND (A.FLOOR_CD = B.FLOOR_CD OR '999' = B.FLOOR_CD) \n" + // + " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD \n" + // + " AND B.SUB_STOR_CD = C.SUB_STOR_CD AND B.KTCH_SYS_CD = C.KTCH_SYS_CD \n" + // + " AND A.TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' \n" // Add, 2017.03.03, 연습모드 KDS는 연습모드 없음. + // + " AND A.ORD_DIV = '0' \n" + // + " AND A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + // + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // //+ " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KDS + "' \n" + // + " AND C.KTCH_SYS_DIV IN ('" + PosConst.KTCH_SYS_DIV.KDS + "', '" + PosConst.KTCH_SYS_DIV.KVS + "') \n" + // + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // ; + #endregion + + sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.CMP_CD, A.BRAND_CD, A.STOR_CD, A.POS_NO, A.TRADE_NO, A.SALE_DT, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + //17.09.13 dkshin SS 해피오더 수정 + + " , A.ORG_BILL_POSNO, A.ORG_BILL_NO \n" + //17.08.22 dkshin SS 해피오더 + //+ " , C.KTCH_SYS_USE_DIV, C.KTCH_DSP_IP, C.KTCH_DSP_PORT, C.FILLER1, C.FILLER2, A.FILLER3, C.FILLER4, C.FILLER5 \n" + + //#20170915 KVS 전송 안되는 현상 수정 start + //KTCH_SYS_DIV가 장비 구분인데 KTCH_SYS_USE_DIV값으로 가져와서 전송이 안됨. + //기존 + //+ " , C.KTCH_SYS_USE_DIV, C.KTCH_DSP_IP, C.KTCH_DSP_PORT, C.FILLER1, A.FILLER2, A.FILLER3, A.FILLER4, C.FILLER5 \n" + //변경 + + " , C.KTCH_SYS_DIV as KTCH_SYS_USE_DIV, C.KTCH_DSP_IP, C.KTCH_DSP_PORT, C.FILLER1, A.FILLER2, A.FILLER3, A.FILLER4, C.FILLER5 \n" + //#20170915 KVS 전송 안되는 현상 수정 end + + + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + + //#20180208 거래데이터 저장 실패시 KDS 키중복 에러 발생할수 있어 NOLOCK 제거 start + //기존 + + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + //변경 + //+ " , POSMST..MST_KTCH_DEVICE C \n" + //#20180208 거래데이터 저장 실패시 KDS 키중복 에러 발생할수 있어 NOLOCK 제거 end + + + " WHERE A.CMP_CD = C.CMP_CD AND A.STOR_CD = C.STOR_CD AND A.SUB_STOR_CD = C.SUB_STOR_CD \n" + + " AND A.TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' \n" + + " AND A.ORD_DIV = '0' \n" + + " AND A.KDS_SEND_YN = '0' \n" + + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'\n" + //#20170913 SS해피오더 KDS 미전송 수정 start + //기존 + //+ " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" + //#20170913 SS해피오더 KDS 미전송 수정 end + + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + + " AND C.KTCH_SYS_DIV IN ('" + PosConst.KTCH_SYS_DIV.KDS + "', '" + PosConst.KTCH_SYS_DIV.KVS + "') \n" + + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + ; + + + + // 조회 + DataTable dtData = null; + if(sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + { + //if (dtData != null && dtData.Rows.Count != 0) + //{ + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // sQuery); + //} + return bRtn; + } + + if (dtData.Rows.Count > 0) + { + foreach (DataRow dr in dtData.Rows) + { + KDSItem cKDSItem = new KDSItem(); + + cKDSItem.sOrderType = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ORD_DIV")); + cKDSItem.sFloorCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "FLOOR_CD")); + cKDSItem.sTableNo = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "TBL_NO")); + cKDSItem.sKtchSysCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD")); + cKDSItem.nSeq = CmUtil.GetDataRowInt(dr, "SEQ"); + + if (cKDSItem.sOrderType == string.Empty || cKDSItem.sFloorCd == string.Empty || cKDSItem.sTableNo == string.Empty || + cKDSItem.sKtchSysCd == string.Empty) + { + continue; + } + + cKDSItem.sCmpCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "CMP_CD")); + cKDSItem.sBrandCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "BRAND_CD")); + // 복합매장일 경우를 대비하여 점포코드에는 서브점포코드를 넣는다.(2017.02.10) + cKDSItem.sStorCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "SUB_STOR_CD")); + cKDSItem.sPosNo = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "POS_NO")); + cKDSItem.sTradeNo = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "TRADE_NO")); + cKDSItem.sSaleDt = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "SALE_DT")); + cKDSItem.sPosType = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "POS_TYPE")); + cKDSItem.sItemCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ITEM_CD")); + cKDSItem.sItemDiv = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ITEM_DIV")); + // KDS, KVS 의 경우 부가메뉴 표시 문자를 삭제 함(안호성C, 20170420) + cKDSItem.sItemNm = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM")).TrimStart(new char[] {'>'}); + cKDSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY"); + cKDSItem.sPackDiv = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "PACK_DIV")); + cKDSItem.sSetMenuCd = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "SET_MENU_CD")); + cKDSItem.sOrdTime = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ORD_TIME")); + cKDSItem.sCancelDiv = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "CANCEL_DIV")); + cKDSItem.sOrgBillPosNo = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO")); + cKDSItem.sOrgBillDt = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ORG_BILL_DT")); + cKDSItem.sOrgBillNo = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "ORG_BILL_NO")); + cKDSItem.sKtchSysUseDiv = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV")); + cKDSItem.sKtchKdsIp = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "KTCH_DSP_IP")); + cKDSItem.sKtchKdsPort = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "KTCH_DSP_PORT")); + cKDSItem.sResendYn = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "RESEND_YN")); + cKDSItem.sFiller1 = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "FILLER1")); + cKDSItem.sFiller2 = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "FILLER2")); + cKDSItem.sFiller3 = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "FILLER3")); + cKDSItem.sFiller4 = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "FILLER4")); + cKDSItem.sFiller5 = CmUtil.StringNullEmpty(CmUtil.GetDataRowStr(dr, "FILLER5")); + + cKDSItem.sSendYn = "0"; + cKDSItem.sErrorCd = "0000"; + + htKDSSendingItem.Add(htKDSSendingItem.Count, cKDSItem); + } + + if (htKDSSendingItem.Count > 0) + { + InsertIntoKDS(htKDSSendingItem); + bRtn = true; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + /// + /// Insert into MST_KDS_ORD_MSG + /// + /// + private void InsertIntoKDS(Hashtable htKDSItem) + { + string sQuery = ""; + + try + { + if(htKDSItem.Count > 0) + { + //#20170111 트랜젝션 위치 변경 start + //기존 + //sqlDb.DBBeginTransaction(); + //#20170111 트랜젝션 위치 변경 end + + for(int nLoop = 0;nLoop < htKDSItem.Count;nLoop++) + { + KDSItem cKDSItem = (KDSItem)htKDSItem[nLoop]; + + sQuery = "INSERT INTO POSMST..MST_KDS_ORD_MSG "; + sQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD, SEQ, CMP_CD, BRAND_CD, STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM "; + sQuery += " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV, ORG_BILL_POSNO, ORG_BILLDT "; + sQuery += " , ORG_BILL_NO, KTCH_SYS_USE_DIV, KTCH_KDS_IP, KTCH_KDS_PORT, ERROR_CD, SEND_YN, RESEND_YN "; + sQuery += " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT ) "; + sQuery += "VALUES "; + sQuery += " ( '{0}', '{1}', '{2}', '{3}', {4}, '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}' "; + sQuery += " , {15}, '{16}', '{17}', '{18}', '{19}', '{20}', '{21}' "; + sQuery += " , '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}' "; + sQuery += " , '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}' ) "; + + string[] saQuery = new string[1]; + saQuery[0] = string.Format(sQuery + , cKDSItem.sOrderType + , cKDSItem.sFloorCd + , cKDSItem.sTableNo + , cKDSItem.sKtchSysCd + , cKDSItem.nSeq + , cKDSItem.sCmpCd + , cKDSItem.sBrandCd + , cKDSItem.sStorCd + , cKDSItem.sPosNo + , cKDSItem.sTradeNo + , cKDSItem.sSaleDt + , cKDSItem.sPosType + , cKDSItem.sItemCd + , cKDSItem.sItemDiv + , cKDSItem.sItemNm + , cKDSItem.nQty + , cKDSItem.sPackDiv + , cKDSItem.sSetMenuCd + , cKDSItem.sOrdTime + , cKDSItem.sCancelDiv + , cKDSItem.sOrgBillPosNo + , cKDSItem.sOrgBillDt + , cKDSItem.sOrgBillNo + , cKDSItem.sKtchSysUseDiv + , cKDSItem.sKtchKdsIp + , cKDSItem.sKtchKdsPort + , cKDSItem.sErrorCd + , "0" + , cKDSItem.sResendYn + , cKDSItem.sFiller1 + , cKDSItem.sFiller2 + , cKDSItem.sFiller3 + , cKDSItem.sFiller4 + , cKDSItem.sFiller5 + , DateTime.Now.ToString("yyyyMMddHHmmss") + , DateTime.Now.ToString("yyyyMMddHHmmss") + ); + + //#20170111 트랜젝션 위치 변경 start + //변경 + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBBeginTransaction(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + //#20170111 트랜젝션 위치 변경 end + + if (sqlDb.DBExecuteNonQuery(saQuery, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + { + // Rollback + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBTransactionRollback(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명) + "Query=" + sQuery); + + //#20170111 트랜젝션 위치 변경 start + //변경 + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBBeginTransaction(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + sQuery = "UPDATE POSMST..MST_KTCH_ORD_MSG "; + sQuery += " SET KDS_SEND_YN = '1' "; + sQuery += " WHERE TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' "; // Add, 2017.03.03, 연습모드 + sQuery += " AND ORD_DIV = '" + cKDSItem.sOrderType + "' "; + sQuery += " AND FLOOR_CD = '" + cKDSItem.sFloorCd + "' "; + sQuery += " AND TBL_NO = '" + cKDSItem.sTableNo + "' "; + sQuery += " AND SEQ = " + cKDSItem.nSeq + " "; + + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + { + // Rollback + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBTransactionRollback(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명) + "Query=" + sQuery); + return; + } + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBTransactionCommit(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + //#20170111 트랜젝션 위치 변경 end + + //#20170929 KDS 데이터 INSERT 실패해도 상태 업데이트 하도록 수정(key error) start + //#20180105 트랜젝션 오류로 원복 start + //기존 + return; + //#20170929 KDS 데이터 INSERT 실패해도 상태 업데이트 하도록 수정(key error) end + } + + sQuery = "UPDATE POSMST..MST_KTCH_ORD_MSG "; + sQuery += " SET KDS_SEND_YN = '1' "; + sQuery += " WHERE TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' "; // Add, 2017.03.03, 연습모드 + sQuery += " AND ORD_DIV = '" + cKDSItem.sOrderType + "' "; + sQuery += " AND FLOOR_CD = '" + cKDSItem.sFloorCd + "' "; + sQuery += " AND TBL_NO = '" + cKDSItem.sTableNo + "' "; + sQuery += " AND SEQ = " + cKDSItem.nSeq + " "; + + if(sqlDb.DBExecuteNonQuery(new string[] {sQuery}, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + { + // Rollback + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBTransactionRollback(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명) + "Query=" + sQuery); + return; + } + + //#20170111 트랜젝션 위치 변경 start + //변경 + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBTransactionCommit(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + //#20170111 트랜젝션 위치 변경 end + } + + // Commit + //#20170111 트랜젝션 위치 변경 start + //기존 + //sqlDb.DBTransactionCommit(); + //#20170111 트랜젝션 위치 변경 end + } + } + catch (Exception ex) + { + // Rollback + + //#20180302 KDS 처리시 트랜젝션 제거 start + //적용시 아래 소스주석 + //sqlDb.DBTransactionRollback(); + //#20180302 KDS 처리시 트랜젝션 제거 end + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 데이터 이행 처리(주방주문데이터 -> KDS) + + #region 전송 데이터 생성 + /// + /// KDS 전송 데이터 생성 + /// + /// + /// + private Hashtable GetKDSSendItem(ref Hashtable htKDSSendItem, ref string sIp, ref int iPort, ref string[] saKey) + { + string sQuery = ""; + + DataTable dtKey = null; + DataTable dtData = null; + + Hashtable htSendData = null; + try + { + Hashtable htCommHeader = null; + Hashtable htOrderHeader = null; + Hashtable[] htOrderItem = null; + Hashtable[] htOrderMsg = new Hashtable[3]; + + #region 01.전송할 거래 조회 + + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + //기존 + /* + sQuery = "SELECT TOP 1 ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD "; + sQuery += " FROM POSMST..MST_KDS_ORD_MSG "; + sQuery += " WHERE SEND_YN IN ('0', '9') "; + sQuery += " AND RESEND_YN ='0' ";//17.08.22 dkshin SS 해피오더 - KDS 전송 체크 + sQuery += " ORDER BY SEND_YN "; + */ + //변경 + sQuery = "SELECT TOP 1 ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD, ISNULL(F_CNT,0) F_CNT "; + sQuery += " FROM POSMST..MST_KDS_ORD_MSG "; + sQuery += " WHERE SEND_YN IN ('0', '9') "; + sQuery += " AND RESEND_YN ='0' ";//17.08.22 dkshin SS 해피오더 - KDS 전송 체크 + sQuery += " AND F_CNT <= 3 "; + sQuery += " ORDER BY SEND_YN "; + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + + if(sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtKey) != UserCom.OK) + { + if (dtKey != null && dtKey.Rows.Count != 0) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명) + "Query=" + sQuery); + } + return htSendData; + } + + saKey[0] = CmUtil.GetDataRowStr(dtKey.Rows[0], "ORD_DIV"); + saKey[1] = CmUtil.GetDataRowStr(dtKey.Rows[0], "FLOOR_CD"); + saKey[2] = CmUtil.GetDataRowStr(dtKey.Rows[0], "TBL_NO"); + saKey[3] = CmUtil.GetDataRowStr(dtKey.Rows[0], "KTCH_SYS_CD"); + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + saKey[4] = CmUtil.GetDataRowStr(dtKey.Rows[0], "F_CNT"); + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + + #endregion 01.전송할 거래 조회 + + #region 02.동일 거래의 데이터 조회 + sQuery = "SELECT ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD, SEQ, CMP_CD, BRAND_CD, STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY "; + sQuery += " , PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO, KTCH_SYS_USE_DIV "; + sQuery += " , KTCH_KDS_IP, KTCH_KDS_PORT, ERROR_CD, SEND_YN, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 "; + sQuery += " FROM POSMST..MST_KDS_ORD_MSG "; + sQuery += " WHERE ORD_DIV = '" + CmUtil.GetDataRowStr(dtKey.Rows[0], "ORD_DIV") + "' "; + sQuery += " AND FLOOR_CD = '" + CmUtil.GetDataRowStr(dtKey.Rows[0], "FLOOR_CD") + "' "; + sQuery += " AND TBL_NO = '" + CmUtil.GetDataRowStr(dtKey.Rows[0], "TBL_NO") + "' "; + sQuery += " AND KTCH_SYS_CD = '" + CmUtil.GetDataRowStr(dtKey.Rows[0], "KTCH_SYS_CD") + "' "; + //17.08.22 dkshin SS 해피오더 + sQuery += " AND SEND_YN IN ('0', '9') "; + sQuery += " AND RESEND_YN ='0' "; + + sQuery += " ORDER BY KTCH_SYS_CD, ORD_DIV, FLOOR_CD, TBL_NO, CANCEL_DIV, SEQ "; + + if(sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + { + if (dtData != null && dtData.Rows.Count != 0) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명) + "Query=" + sQuery); + } + return htSendData; + } + + sIp = CmUtil.GetDataRowStr(dtData.Rows[0], "KTCH_KDS_IP"); + iPort = CmUtil.GetDataRowInt(dtData.Rows[0], "KTCH_KDS_PORT"); + #endregion 02.동일 거래의 데이터 조회 + + #region 03.COMM_HEADER - 통신헤더 생성 + // 통신 헤더 생성 + htCommHeader = new Hashtable(); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.MSG_TYPE, "70"); + //17.08.22 dkshin SS 해피오더 + //170914 dkshin KDS: PC, KVS: PCKR + //htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.CO_CD, CmUtil.GetDataRowStr(dtData.Rows[0], "CMP_CD")); + if (CmUtil.GetDataRowStr(dtData.Rows[0], "KTCH_SYS_USE_DIV") == PosConst.KTCH_SYS_DIV.KDS) + { + if (CmUtil.GetDataRowStr(dtData.Rows[0], "CMP_CD") == "PCKR") + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.CO_CD, "PC"); + } + else + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.CO_CD, CmUtil.GetDataRowStr(dtData.Rows[0], "CMP_CD")); + + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.BRAND_CD, CmUtil.GetDataRowStr(dtData.Rows[0], "BRAND_CD")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.STORE_CD, CmUtil.GetDataRowStr(dtData.Rows[0], "STOR_CD")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.POS_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "POS_NO")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.TRAN_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "TBL_NO")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.TRAN_YMD, CmUtil.GetDataRowStr(dtData.Rows[0], "SALE_DT")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.SYS_YMD, DateTime.Now.ToString("yyyyMMdd")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.SYS_HMS, DateTime.Now.ToString("HHmmss")); + htCommHeader.Add(Column.IQ_KDS_HEADER_REQ.DATA.ERR_CD, "000"); + #endregion 03.COMM_HEADER - 통신헤더 생성 + + #region 04.ORDER_HEADER - 주문헤더 생성 + // 주문 헤더 생성 + htOrderHeader = new Hashtable(); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.TR_HEADER_ID, "70"); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.POS_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "FLOOR_CD")); + // 주문번호를 사용하면 TRAN_NO에 주문번호 대입, 아닐 경우 TRAN_NO에 거래번호 대입 + if (PosMstManager.GetPosOption(POS_OPTION.OPT008) == "1") + { + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.TRAN_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "TRADE_NO")); + } + else + { + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.TRAN_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "TBL_NO")); + } + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.DEAL_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "CANCEL_DIV")); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.POS_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "POS_TYPE")); + //17.08.22 dkshin SS 해피오더 + //htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.TABLE_NM, ""); + + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.ORDER_CUST_NM, ""); + //htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.VIP_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "FILLER3")); + //17.08.22 dkshin SS 해피오더 + //htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.VIP_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "FILLER4")); + if (CmUtil.GetDataRowStr(dtData.Rows[0], "FILLER2") == "2") + { + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.TABLE_NM, CmUtil.GetDataRowStr(dtData.Rows[0], "ORD_TIME"));//픽업시간 ex) 03-29 17:30 + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.VIP_TY, "3"); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.ORDER_TY, "2"); + } + else + { + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.TABLE_NM, ""); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.VIP_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "FILLER4")); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.ORDER_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "PACK_DIV")); + } + //17.08.22 dkshin SS 해피오더 + //htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.ORDER_TY, CmUtil.GetDataRowStr(dtData.Rows[0], "PACK_DIV")); + + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.ORG_POS_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "ORG_BILL_POSNO")); + htOrderHeader.Add(Column.IQ_KDS_ORDER_HEADER_REQ.DATA.ORG_TRAN_NO, CmUtil.GetDataRowStr(dtData.Rows[0], "ORG_BILL_NO")); + #endregion 04.ORDER_HEADER - 주문헤더 생성 + + #region 05.ORDER_ITEM - 주문명세 생성 + // 주문 명세 생성 + htOrderItem = new Hashtable[dtData.Rows.Count]; + for(int nLoop = 0;nLoop < dtData.Rows.Count;nLoop++) + { + DataRow dr = dtData.Rows[nLoop]; + htOrderItem[nLoop] = new Hashtable(); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.TR_ITEM_ID, "71"); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.SEQ_NO, (nLoop + 1).ToString()); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.DEAL_TY, CmUtil.GetDataRowStr(dr, "CANCEL_DIV")); + switch(CmUtil.GetDataRowStr(dr, "ITEM_DIV")) + { + case ItemConst.PLU_ITEM_DIV.NORMAL: + case ItemConst.PLU_ITEM_DIV.SET_DIS: + case ItemConst.PLU_ITEM_DIV.GIFT: + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.MENU_TY, "1"); // 제품 + break; + case ItemConst.PLU_ITEM_DIV.OPT_MENU: + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.MENU_TY, "2"); // 부가메뉴 + break; + case ItemConst.PLU_ITEM_DIV.SET_MAIN: + case ItemConst.PLU_ITEM_DIV.SET_DETL: + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.MENU_TY, "3"); // 세트 + break; + } + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.ITEM_CD, CmUtil.GetDataRowStr(dr, "ITEM_CD")); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.ITEM_NM, CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM")); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.ITEM_QTY, CmUtil.GetDataRowInt(dr, "SALE_QTY")); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.MSG_1, ""); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.MSG_2, ""); + htOrderItem[nLoop].Add(Column.IQ_KDS_ORDER_ITEM_REQ.DATA.MSG_3, ""); + } + #endregion 05.ORDER_ITEM - 주문명세 생성 + + #region 06.ORDER_MESSAGE - 주문 전달 메시지 생성 + // 주문 전달 메시지 생성 + for(int nLoop = 0;nLoop < 3;nLoop++) + { + htOrderMsg[nLoop] = new Hashtable(); + } + #endregion 06.ORDER_MESSAGE - 주문 전달 메시지 생성 + + #region 07.JSON 데이터 생성 + htSendData = new Hashtable(); + htSendData.Add("HEADER", htCommHeader); + htSendData.Add("ORDERHEADER", htOrderHeader); + htSendData.Add("ORDER_ITEM", htOrderItem); + htSendData.Add("ORDERMSG", htOrderMsg); + #endregion 07.JSON 데이터 생성 + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htSendData; + } + #endregion 전송 데이터 생성 + + #region KDS 전송 플래그 업데이트 처리 + public int UpdateKDSSendFlag(string sOrdDiv, string sFloorCd, string sTblNo, string sKtchSysCd, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = ""; + try + { + if (sOrdDiv.Trim() == "") return iRet; + if (sFloorCd.Trim() == "") return iRet; + if (sTblNo.Trim() == "") return iRet; + if (sKtchSysCd.Trim() == "") return iRet; + + sQuery += " UPDATE POSMST..MST_KDS_ORD_MSG "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , RESEND_YN = '1' ";//17.08.22 dkshin SS 해피오더 - KDS 전송 체크 + sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 start + sQuery += " , F_CNT = CASE WHEN '" + sSendFlag + "' = '9' THEN ISNULL(F_CNT,0) + 1 ELSE ISNULL(F_CNT,0) END "; + //#20180202 KDS 전송 실패시 3회 재시도, 최초 한번 영수증 출력 end + sQuery += " WHERE ORD_DIV = '" + sOrdDiv + "' "; + sQuery += " AND FLOOR_CD = '" + sFloorCd + "' "; + sQuery += " AND TBL_NO = '" + sTblNo + "' "; + sQuery += " AND KTCH_SYS_CD = '" + sKtchSysCd + "' "; + + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명) + "Query=" + sQuery); + } + else + { + iRet = UserCom.OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + #endregion KDS 전송 플래그 업데이트 처리 + + #region 전송 모듈 + private string SendProcess(string sSvrIp, int iPort, int iTimeout, Hashtable htSendData) + { + string sRet = UserCom.RST_ERR; + + try + { + // JSON 객체로 변환 + string sJsonSendData = JsonConvert.SerializeObject(htSendData); + // JSON string 길이를 구하기 위해 byte로 변환 + //Byte[] arTempData = Encoding.ASCII.GetBytes(sJsonSendData); + Byte[] arTempData = (Encoding.GetEncoding("euc-kr")).GetBytes(sJsonSendData); + + string header = string.Format("KDS{0:00000}", arTempData.Length); + + string sJsonRecvData = string.Empty; + + int iRet = DataSendReceive(sSvrIp, iPort, iTimeout, header + sJsonSendData); + + if(iRet == UserCom.OK) + { + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + + private int DataSendReceive(string sIp, int iPort, int iTimeout, string sSendData) + { + int iRet = UserCom.NG; + int nRecvLen = 0; + string sRecvData = string.Empty; + + try + { + m_sendSocket = new TcpSocket(sIp, iPort); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)), + CmUtil.RPadH("[SEND" + ":" + sIp + ":" + iPort, 27) + "] " + sSendData); + + // Data Send & Receive + nRecvLen = m_sendSocket.KDSSendReceiveData(sSendData, ref sRecvData, m_iTimeout, DATA_LEN_SIZE, 3); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)), + CmUtil.RPadH("[RECV" + ":" + sIp + ":" + iPort, 27) + "] " + sRecvData); + + if(sRecvData.Length > 0) + { + //Hashtable htJsonRecvData = JsonConvert.DeserializeObject(sRecvData); + + //if(htJsonRecvData["HEADER"].ToString().Length > 0) + //{ + // Hashtable htCommHeader = JsonConvert.DeserializeObject(htJsonRecvData["HEADER"].ToString()); + + // if (htCommHeader.ContainsKey("ERR_CD") == true) + // { + // if(htCommHeader["ERR_CD"].ToString() == "000") + // { + // iRet = UserCom.OK; + // } + // } + //} + + if(sRecvData.Substring(8, 5).Equals("OK!!!") == true) + { + iRet = UserCom.OK; + } + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return iRet; + } + #endregion + } +} diff --git a/Agent/KDS/Properties/AssemblyInfo.cs b/Agent/KDS/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e29ea34 --- /dev/null +++ b/Agent/KDS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("KDS")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("KDS")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("cca78233-98fd-4127-8d4a-4f468cedfe3f")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/KPS/Activator.cs b/Agent/KPS/Activator.cs new file mode 100644 index 0000000..46fc39d --- /dev/null +++ b/Agent/KPS/Activator.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : KPS 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + public class Activator : InitServiceAbstract + { + /// + /// Define main entrance point of project load. (프로젝트 로드의 주진입점을 정의합니다.) + /// + public Activator() + { + + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_KPS.KPS_MAIN: + { + Cosmos.KPS.KPSMain agentClass = new Cosmos.KPS.KPSMain(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} diff --git a/Agent/KPS/Common.cs b/Agent/KPS/Common.cs new file mode 100644 index 0000000..cdceea2 --- /dev/null +++ b/Agent/KPS/Common.cs @@ -0,0 +1,595 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Cosmos.KPS +{ + /// + /// Kitchen Device Status + /// + public class KTCH_SYS_STATUS + { + public string sSubShopCd; + public string sKtchSysCd; + public int nErrorCd; + } + + public class KPSItem + { + /// + /// 연습모드구분 0:일반, 1:연습모드 + /// + public string sTrainMode; + + public string sOrderType; + public string sFloorCd; + public string sTableNo; + public string sSubShopCd; // Add, 2017.02.06 + public string sKtchSysCd; + public int nSeq; + public string sOrderNo; + public string sPosType; + public string sItemCd; + public string sItemNm; + /// + /// 상품구분(0:일반, 1:세트, 2:세트자식, 3:부가상품, 4:세트할인, 5:상품권(추가)) + /// + public string sItemDiv; + public int nQty; + public string sPackDiv; + public string sSetMenuCd; + public string sOrdTime; + public string sCancelDiv; + /// + /// 0:정상 1:재전송 + /// + public string sResendYn; + public string sKtchSysUseDiv; + public int nKpsComPort; + public int nKpsComBaudrate; + public string sKpsOposName; + public string sKpsIp; + public string sKpsPort; + + /// + /// 0:미전송 1:전송 + /// 7:영수증프린터출력(주방프린터와 영수증프린터가 동일장치) + /// 8:영수증프린터출력(주방출력오류) + /// + public string sSendYn; + /// + /// 0000 : 정상 + /// + /// + public string sErrorCd; + + //public string sKpsCdBackup1; + //public string sKpsCdBackup2; + //public string sKpsCdBackup3; + //public string sKpsCdBackup4; + //public string sKpsCdBackup5; + //public string sKpsCdBackup6; + + /// + /// 반복출력 횟수 + /// + public string sFiller1; + /// + /// 기타주문구분 + /// 1:후불일반판매, 2:해피오더 + /// + public string sFiller2; + /// + /// 추가주문구분 (NEW,ADD,DEL) + /// + public string sFiller3; + /// + /// 부가메뉴구분 (SUBPRC_MENU_KEY_DIV) + /// + /// + public string sFiller4; + public string sFiller5; + + /// + /// 수동출력일때 주방메모 + /// + public string sKtchMemo = string.Empty; + /// + /// 상품메모 + /// + public string sItemMemo = string.Empty; + /// + /// 주문담당자 + /// + public string sOrdPicNm = string.Empty; + /// + /// 장치명 + /// + public string sKtchSysNm = string.Empty; // Add, 2017.04.07 + /// + /// 최종주문POS + /// + public string sOrdPosNo = string.Empty; // Add, 2017.04.10 + // 2017.09.06 레시피 추가 + /// + /// 레시피 + /// + public string sRecipe= string.Empty; + + //#20180515 KPS 출력시 라벨프린터 출력 start + /// + /// 라벨프린터 출력여부(0:미전송, 1:전송) + /// + public string sLblSendYn = string.Empty; + + /// + /// 라벨프린터 총출력 해야 할 건수 + /// + public int iTOTCNT = 0; + + /// + /// 라벨프린터 QRCODE URL + /// + public string sQrcodeUrl = ""; + + /// + /// 라벨프린터 QRCODE MSG + /// + public string sQrcodeMsg = ""; + + /// + /// 라벨프린터 TOP MSG + /// + public string sTopMsg = ""; + + /// + /// 라벨프린터 BTM MSG + /// + public string sBtmMsg = ""; + //#20180515 KPS 출력시 라벨프린터 출력 end + + } + + /// + /// Table Master + /// + public class TableMaster + { + public string sFloorCd; + public string sTableNo; + public string sTableNm; + public string sTableDispDiv; + } + + //public class TABLE_DISP_FLAG + //{ + // public const string TABLE_NO = "0"; // 테이블 번호 + // public const string TABLE_NAME = "1"; // 테이블 이름 + // public const string TABLE_NO_NAME = "2"; // 테이블 번호 + 이름 + //} + + public class KPSOrderMessage + { + /// + /// 연습모드구분 0:일반, 1:연습모드 + /// + public string sTrainMode; // Add, 2017.03.03 + + public string sOrderType; + public string sFloorCd; + public string sTableNo; + public int nSeq; + public string sSubShopCd; // Add, 2017.02.06 + public string sKtchSysCd; + public string sItemCd; + public string sItemNm; + public string sMsgId; + public string sMsg1; + public string sMsg2; + public string sMsg3; + public string sMsgRegTime; + public string sKtchSysUseDiv; + public int nKpsComPort; + public int nKpsComBaudrate; + public string sKpsOposName; + public string sKpsIp; + public string sKpsPort; + public string sSendYn; + public string sResendYn; + public string sErrorCd; + public int printCount = 1; + + //public string sKpsCdBackup1; + //public string sKpsCdBackup2; + //public string sKpsCdBackup3; + //public string sKpsCdBackup4; + //public string sKpsCdBackup5; + //public string sKpsCdBackup6; + + public string sRegDate; + /// + /// 장치명 + /// + public string sKtchSysNm = string.Empty; // Add, 2017.04.07 + /// + /// 마지막주문POS + /// + public string sOrdPosNo = string.Empty; // Add, 2017.04.10 + } + + public class OPOS + { + public const int CASH_SUE_DRAWERCLOSED = 0; + public const int CASH_SUE_DRAWEROPEN = 1; + public const int CHAN_STATUS_ASYNC = 91; + public const int CHAN_STATUS_EMPTY = 11; + public const int CHAN_STATUS_EMPTYOK = 13; + public const int CHAN_STATUS_FULL = 21; + public const int CHAN_STATUS_FULLOK = 23; + public const int CHAN_STATUS_JAM = 31; + public const int CHAN_STATUS_JAMOK = 32; + public const int CHAN_STATUS_NEAREMPTY = 12; + public const int CHAN_STATUS_NEARFULL = 22; + public const int CHAN_STATUS_OK = 0; + public const int COIN_STATUS_EMPTY = 2; + public const int COIN_STATUS_JAM = 4; + public const int COIN_STATUS_NEAREMPTY = 3; + public const int COIN_STATUS_OK = 1; + public const int DISP_CB_BLINKALL = 1; + public const int DISP_CB_BLINKEACH = 2; + public const int DISP_CB_NOBLINK = 0; + public const int DISP_CCS_ALPHA = 1; + public const int DISP_CCS_ASCII = 998; + public const int DISP_CCS_KANA = 10; + public const int DISP_CCS_KANJI = 11; + public const int DISP_CCS_NUMERIC = 0; + public const int DISP_CS_ASCII = 998; + public const int DISP_CS_WINDOWS = 999; + public const int DISP_DT_BLINK = 1; + public const int DISP_DT_NORMAL = 0; + public const int DISP_MF_PLACE = 1; + public const int DISP_MF_WALK = 0; + public const int DISP_MT_DOWN = 2; + public const int DISP_MT_INIT = 5; + public const int DISP_MT_LEFT = 3; + public const int DISP_MT_NONE = 0; + public const int DISP_MT_RIGHT = 4; + public const int DISP_MT_UP = 1; + public const int DISP_SD_BLINK = 2; + public const int DISP_SD_OFF = 0; + public const int DISP_SD_ON = 1; + public const int DISP_ST_DOWN = 2; + public const int DISP_ST_LEFT = 3; + public const int DISP_ST_RIGHT = 4; + public const int DISP_ST_UP = 1; + public const int FPTR_AT_AMOUNT_DISCOUNT = 1; + public const int FPTR_AT_AMOUNT_SURCHARGE = 2; + public const int FPTR_AT_PERCENTAGE_DISCOUNT = 3; + public const int FPTR_AT_PERCENTAGE_SURCHARGE = 4; + public const int FPTR_CC_BRAZIL = 1; + public const int FPTR_CC_GREECE = 2; + public const int FPTR_CC_HUNGARY = 3; + public const int FPTR_CC_ITALY = 4; + public const int FPTR_CC_POLAND = 5; + public const int FPTR_CC_TURKEY = 6; + public const int FPTR_EL_BLOCKED = 4; + public const int FPTR_EL_FATAL = 3; + public const int FPTR_EL_NONE = 1; + public const int FPTR_EL_RECOVERABLE = 2; + public const int FPTR_GD_CURRENT_TOTAL = 1; + public const int FPTR_GD_DAILY_TOTAL = 2; + public const int FPTR_GD_FIRMWARE = 10; + public const int FPTR_GD_GRAND_TOTAL = 8; + public const int FPTR_GD_MID_VOID = 6; + public const int FPTR_GD_NOT_PAID = 5; + public const int FPTR_GD_PRINTER_ID = 9; + public const int FPTR_GD_RECEIPT_NUMBER = 3; + public const int FPTR_GD_REFUND = 4; + public const int FPTR_GD_RESTART = 11; + public const int FPTR_GD_Z_REPORT = 7; + public const int FPTR_PS_FISCAL_DOCUMENT = 5; + public const int FPTR_PS_FISCAL_RECEIPT = 2; + public const int FPTR_PS_FISCAL_RECEIPT_ENDING = 4; + public const int FPTR_PS_FISCAL_RECEIPT_TOTAL = 3; + public const int FPTR_PS_FIXED_OUTPUT = 6; + public const int FPTR_PS_ITEM_LIST = 7; + public const int FPTR_PS_LOCKED = 8; + public const int FPTR_PS_MONITOR = 1; + public const int FPTR_PS_NONFISCAL = 9; + public const int FPTR_PS_REPORT = 10; + public const int FPTR_RT_DATE = 2; + public const int FPTR_RT_ORDINAL = 1; + public const int FPTR_S_JOURNAL = 1; + public const int FPTR_S_RECEIPT = 2; + public const int FPTR_S_SLIP = 4; + public const int FPTR_SS_FULL_LENGTH = 1; + public const int FPTR_SS_VALIDATION = 2; + public const int FPTR_SUE_COVER_OK = 12; + public const int FPTR_SUE_COVER_OPEN = 11; + public const int FPTR_SUE_IDLE = 1001; + public const int FPTR_SUE_JRN_EMPTY = 21; + public const int FPTR_SUE_JRN_NEAREMPTY = 22; + public const int FPTR_SUE_JRN_PAPEROK = 23; + public const int FPTR_SUE_REC_EMPTY = 24; + public const int FPTR_SUE_REC_NEAREMPTY = 25; + public const int FPTR_SUE_REC_PAPEROK = 26; + public const int FPTR_SUE_SLP_EMPTY = 27; + public const int FPTR_SUE_SLP_NEAREMPTY = 28; + public const int FPTR_SUE_SLP_PAPEROK = 29; + public const int KBD_ET_DOWN = 1; + public const int KBD_ET_DOWN_UP = 2; + public const int KBD_KET_KEYDOWN = 1; + public const int KBD_KET_KEYUP = 2; + public const int LOCK_KP_ANY = 0; + public const int LOCK_KP_LOCK = 1; + public const int LOCK_KP_NORM = 2; + public const int LOCK_KP_SUPR = 3; + public const int MICR_CC_CANADA = 2; + public const int MICR_CC_MEXICO = 3; + public const int MICR_CC_UNKNOWN = 99; + public const int MICR_CC_USA = 1; + public const int MICR_CT_BUSINESS = 2; + public const int MICR_CT_PERSONAL = 1; + public const int MICR_CT_UNKNOWN = 99; + public const int MSR_ERT_CARD = 0; + public const int MSR_ERT_TRACK = 1; + public const int MSR_TR_1 = 1; + public const int MSR_TR_2 = 2; + public const int MSR_TR_3 = 4; + public const int OPOS_BC_DECIMAL = 2; + public const int OPOS_BC_NIBBLE = 1; + public const int OPOS_BC_NONE = 0; + public const int OPOS_CH_EXTERNAL = 2; + public const int OPOS_CH_INTERACTIVE = 3; + public const int OPOS_CH_INTERNAL = 1; + public const int OPOS_E_BUSY = 113; + public const int OPOS_E_CLAIMED = 102; + public const int OPOS_E_CLOSED = 101; + public const int OPOS_E_DISABLED = 105; + public const int OPOS_E_EXISTS = 110; + public const int OPOS_E_EXTENDED = 114; + public const int OPOS_E_FAILURE = 111; + public const int OPOS_E_ILLEGAL = 106; + public const int OPOS_E_NOEXIST = 109; + public const int OPOS_E_NOHARDWARE = 107; + public const int OPOS_E_NOSERVICE = 104; + public const int OPOS_E_NOTCLAIMED = 103; + public const int OPOS_E_OFFLINE = 108; + public const int OPOS_E_TIMEOUT = 112; + public const int OPOS_ECHAN_OVERDISPENSE = 201; + public const int OPOS_EFPTR_BAD_DATE = 219; + public const int OPOS_EFPTR_BAD_ITEM_AMOUNT = 214; + public const int OPOS_EFPTR_BAD_ITEM_DESCRIPTION = 215; + public const int OPOS_EFPTR_BAD_ITEM_QUANTITY = 213; + public const int OPOS_EFPTR_BAD_PRICE = 218; + public const int OPOS_EFPTR_BAD_VAT = 217; + public const int OPOS_EFPTR_CLOCK_ERROR = 209; + public const int OPOS_EFPTR_COVER_OPEN = 201; + public const int OPOS_EFPTR_FISCAL_MEMORY_DISCONNECTED = 211; + public const int OPOS_EFPTR_FISCAL_MEMORY_FULL = 210; + public const int OPOS_EFPTR_FISCAL_TOTALS_ERROR = 212; + public const int OPOS_EFPTR_JRN_EMPTY = 202; + public const int OPOS_EFPTR_MISSING_DEVICES = 206; + public const int OPOS_EFPTR_NEGATIVE_TOTAL = 220; + public const int OPOS_EFPTR_REC_EMPTY = 203; + public const int OPOS_EFPTR_RECEIPT_TOTAL_OVERFLOW = 216; + public const int OPOS_EFPTR_SLP_EMPTY = 204; + public const int OPOS_EFPTR_SLP_FORM = 205; + public const int OPOS_EFPTR_TECHNICAL_ASSISTANCE = 208; + public const int OPOS_EFPTR_WORD_NOT_ALLOWED = 221; + public const int OPOS_EFPTR_WRONG_STATE = 207; + public const int OPOS_EL_INPUT = 2; + public const int OPOS_EL_INPUT_DATA = 3; + public const int OPOS_EL_OUTPUT = 1; + public const int OPOS_EMICR_CHECK = 202; + public const int OPOS_EMICR_NOCHECK = 201; + public const int OPOS_EMSR_END = 202; + public const int OPOS_EMSR_LRC = 204; + public const int OPOS_EMSR_PARITY = 203; + public const int OPOS_EMSR_START = 201; + public const int OPOS_EPTR_BADFORMAT = 207; + public const int OPOS_EPTR_COVER_OPEN = 201; + public const int OPOS_EPTR_JRN_EMPTY = 202; + public const int OPOS_EPTR_REC_EMPTY = 203; + public const int OPOS_EPTR_SLP_EMPTY = 204; + public const int OPOS_EPTR_SLP_FORM = 205; + public const int OPOS_EPTR_TOOBIG = 206; + public const int OPOS_ER_CLEAR = 12; + public const int OPOS_ER_CONTINUEINPUT = 13; + public const int OPOS_ER_RETRY = 11; + public const int OPOS_EROD_BADCLK = 201; + public const int OPOS_EROD_NOBUFFERS = 204; + public const int OPOS_EROD_NOCLOCKS = 202; + public const int OPOS_EROD_NOREGION = 203; + public const int OPOS_EROD_NOROOM = 205; + public const int OPOS_ESCAL_OVERWEIGHT = 201; + public const int OPOS_ETOT_NOROOM = 201; + public const int OPOS_ETOT_VALIDATION = 202; + public const int OPOS_FOREVER = -1; + public const int OPOS_PN_DISABLED = 0; + public const int OPOS_PN_ENABLED = 1; + public const int OPOS_PR_ADVANCED = 2; + public const int OPOS_PR_NONE = 0; + public const int OPOS_PR_STANDARD = 1; + public const int OPOS_PS_OFF = 2002; + public const int OPOS_PS_OFF_OFFLINE = 2004; + public const int OPOS_PS_OFFLINE = 2003; + public const int OPOS_PS_ONLINE = 2001; + public const int OPOS_PS_UNKNOWN = 2000; + public const int OPOS_S_BUSY = 3; + public const int OPOS_S_CLOSED = 1; + public const int OPOS_S_ERROR = 4; + public const int OPOS_S_IDLE = 2; + public const int OPOS_SUCCESS = 0; + public const int OPOS_SUE_POWER_OFF = 2002; + public const int OPOS_SUE_POWER_OFF_OFFLINE = 2004; + public const int OPOS_SUE_POWER_OFFLINE = 2003; + public const int OPOS_SUE_POWER_ONLINE = 2001; + public const int OPOSERR = 100; + public const int OPOSERREXT = 200; + public const int PPAD_CANCEL = 2; + public const int PPAD_DISP_PINRESTRICTED = 2; + public const int PPAD_DISP_RESTRICTEDLIST = 3; + public const int PPAD_DISP_RESTRICTEDORDER = 4; + public const int PPAD_DISP_UNRESTRICTED = 1; + public const int PPAD_EFT_ABNORMAL = 2; + public const int PPAD_EFT_NORMAL = 1; + public const int PPAD_LANG_NONE = 1; + public const int PPAD_LANG_ONE = 2; + public const int PPAD_LANG_PINRESTRICTED = 3; + public const int PPAD_LANG_UNRESTRICTED = 4; + public const int PPAD_MSG_AMOUNTOK = 8; + public const int PPAD_MSG_APPROVED = 5; + public const int PPAD_MSG_CANCELED = 7; + public const int PPAD_MSG_DECLINED = 6; + public const int PPAD_MSG_ENTERPIN = 1; + public const int PPAD_MSG_ENTERVALIDPIN = 3; + public const int PPAD_MSG_IDLE = 10; + public const int PPAD_MSG_INSERTCARD = 12; + public const int PPAD_MSG_NOTREADY = 9; + public const int PPAD_MSG_PLEASEWAIT = 2; + public const int PPAD_MSG_RETRIESEXCEEDED = 4; + public const int PPAD_MSG_SELECTCARDTYPE = 13; + public const int PPAD_MSG_SLIDE_CARD = 11; + public const int PPAD_SUCCESS = 1; + public const int PPAD_TRANS_ADMIN = 5; + public const int PPAD_TRANS_CREDIT = 2; + public const int PPAD_TRANS_DEBIT = 1; + public const int PPAD_TRANS_INQ = 3; + public const int PPAD_TRANS_RECONCILE = 4; + public const int PTR_BC_CENTER = -2; + public const int PTR_BC_LEFT = -1; + public const int PTR_BC_RIGHT = -3; + public const int PTR_BC_TEXT_ABOVE = -12; + public const int PTR_BC_TEXT_BELOW = -13; + public const int PTR_BC_TEXT_NONE = -11; + public const int PTR_BCS_Codabar = 107; + public const int PTR_BCS_Code128 = 110; + public const int PTR_BCS_Code39 = 108; + public const int PTR_BCS_Code93 = 109; + public const int PTR_BCS_EAN128 = 120; + public const int PTR_BCS_EAN13 = 104; + public const int PTR_BCS_EAN13_S = 119; + public const int PTR_BCS_EAN8 = 103; + public const int PTR_BCS_EAN8_S = 118; + public const int PTR_BCS_ITF = 106; + public const int PTR_BCS_JAN13 = 104; + public const int PTR_BCS_JAN8 = 103; + public const int PTR_BCS_MAXICODE = 202; + public const int PTR_BCS_OCRA = 121; + public const int PTR_BCS_OCRB = 122; + public const int PTR_BCS_OTHER = 501; + public const int PTR_BCS_PDF417 = 201; + public const int PTR_BCS_TF = 105; + public const int PTR_BCS_UPCA = 101; + public const int PTR_BCS_UPCA_S = 111; + public const int PTR_BCS_UPCD1 = 113; + public const int PTR_BCS_UPCD2 = 114; + public const int PTR_BCS_UPCD3 = 115; + public const int PTR_BCS_UPCD4 = 116; + public const int PTR_BCS_UPCD5 = 117; + public const int PTR_BCS_UPCE = 102; + public const int PTR_BCS_UPCE_S = 112; + public const int PTR_BM_ASIS = -11; + public const int PTR_BM_CENTER = -2; + public const int PTR_BM_LEFT = -1; + public const int PTR_BM_RIGHT = -3; + public const int PTR_CCS_ALPHA = 1; + public const int PTR_CCS_ASCII = 998; + public const int PTR_CCS_KANA = 10; + public const int PTR_CCS_KANJI = 11; + public const int PTR_CP_FULLCUT = 100; + public const int PTR_CS_ASCII = 998; + public const int PTR_CS_WINDOWS = 999; + public const int PTR_EL_FATAL = 3; + public const int PTR_EL_NONE = 1; + public const int PTR_EL_RECOVERABLE = 2; + public const int PTR_L_BOTTOM = 2; + public const int PTR_L_TOP = 1; + public const int PTR_MM_DOTS = 1; + public const int PTR_MM_ENGLISH = 3; + public const int PTR_MM_METRIC = 4; + public const int PTR_MM_TWIPS = 2; + public const char PTR_RP_LEFT90 = 'f'; + public const char PTR_RP_NORMAL = ''; + public const char PTR_RP_RIGHT90 = 'e'; + public const char PTR_RP_ROTATE180 = 'g'; + public const int PTR_S_JOURNAL = 1; + public const int PTR_S_RECEIPT = 2; + public const int PTR_S_SLIP = 4; + public const int PTR_SUE_COVER_OK = 12; + public const int PTR_SUE_COVER_OPEN = 11; + public const int PTR_SUE_IDLE = 1001; + public const int PTR_SUE_JRN_EMPTY = 21; + public const int PTR_SUE_JRN_NEAREMPTY = 22; + public const int PTR_SUE_JRN_PAPEROK = 23; + public const int PTR_SUE_REC_EMPTY = 24; + public const int PTR_SUE_REC_NEAREMPTY = 25; + public const int PTR_SUE_REC_PAPEROK = 26; + public const int PTR_SUE_SLP_EMPTY = 27; + public const int PTR_SUE_SLP_NEAREMPTY = 28; + public const int PTR_SUE_SLP_PAPEROK = 29; + public const int PTR_TP_NORMAL = 12; + public const int PTR_TP_TRANSACTION = 11; + public const int ROD_BDR_DOUBLE = 2; + public const int ROD_BDR_SINGLE = 1; + public const int ROD_BDR_SOLID = 3; + public const int ROD_CLK_MOVE = 4; + public const int ROD_CLK_PAUSE = 2; + public const int ROD_CLK_RESUME = 3; + public const int ROD_CLK_START = 1; + public const int ROD_CLK_STOP = 5; + public const int ROD_CRS_BLOCK = 3; + public const int ROD_CRS_BLOCK_BLINK = 4; + public const int ROD_CRS_LINE = 1; + public const int ROD_CRS_LINE_BLINK = 2; + public const int ROD_CRS_OFF = 5; + public const int ROD_CS_ASCII = 998; + public const int ROD_CS_WINDOWS = 999; + public const char ROD_DE_TOUCH_DOWN = ''; + public const char ROD_DE_TOUCH_MOVE = ''; + public const char ROD_DE_TOUCH_UP = ''; + public const int ROD_TD_NORMAL = 12; + public const int ROD_TD_TRANSACTION = 11; + public const int ROD_UA_BLINK_OFF = 7; + public const int ROD_UA_BLINK_ON = 6; + public const int ROD_UA_INTENSITY_OFF = 3; + public const int ROD_UA_INTENSITY_ON = 2; + public const int ROD_UA_REVERSE_OFF = 5; + public const int ROD_UA_REVERSE_ON = 4; + public const int ROD_UA_SET = 1; + public const int SCAL_WU_GRAM = 1; + public const int SCAL_WU_KILOGRAM = 2; + public const int SCAL_WU_OUNCE = 3; + public const int SCAL_WU_POUND = 4; + public const int SCAN_SDT_Codabar = 107; + public const int SCAN_SDT_Code128 = 110; + public const int SCAN_SDT_Code39 = 108; + public const int SCAN_SDT_Code93 = 109; + public const int SCAN_SDT_EAN128 = 120; + public const int SCAN_SDT_EAN13 = 104; + public const int SCAN_SDT_EAN13_S = 119; + public const int SCAN_SDT_EAN8 = 103; + public const int SCAN_SDT_EAN8_S = 118; + public const int SCAN_SDT_ITF = 106; + public const int SCAN_SDT_JAN13 = 104; + public const int SCAN_SDT_JAN8 = 103; + public const int SCAN_SDT_MAXICODE = 202; + public const int SCAN_SDT_OCRA = 121; + public const int SCAN_SDT_OCRB = 122; + public const int SCAN_SDT_OTHER = 501; + public const int SCAN_SDT_PDF417 = 201; + public const int SCAN_SDT_TF = 105; + public const int SCAN_SDT_UNKNOWN = 0; + public const int SCAN_SDT_UPCA = 101; + public const int SCAN_SDT_UPCA_S = 111; + public const int SCAN_SDT_UPCD1 = 113; + public const int SCAN_SDT_UPCD2 = 114; + public const int SCAN_SDT_UPCD3 = 115; + public const int SCAN_SDT_UPCD4 = 116; + public const int SCAN_SDT_UPCD5 = 117; + public const int SCAN_SDT_UPCE = 102; + public const int SCAN_SDT_UPCE_S = 112; + } +} diff --git a/Agent/KPS/KPS.csproj b/Agent/KPS/KPS.csproj new file mode 100644 index 0000000..9b3b853 --- /dev/null +++ b/Agent/KPS/KPS.csproj @@ -0,0 +1,122 @@ + + + + + Debug + AnyCPU + {5D91CC0D-EB29-405A-BF21-3C52ADA8CC76} + Library + Properties + Cosmos.KPS + Agent.KPS + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + ..\..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + + + + + + + Form + + + frmKPS.cs + + + + + + + + + + + + frmKPS.cs + + + + + {CCB90150-B81E-11D2-AB74-0040054C3719} + 1 + 0 + 0 + aximp + False + + + {CCB90150-B81E-11D2-AB74-0040054C3719} + 1 + 0 + 0 + tlbimp + False + True + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.KPS.dll .\Agent.KPS.dll + + + copy .\Agent.KPS.dll .\IC\Agent.KPS.dll + + + \ No newline at end of file diff --git a/Agent/KPS/KPSMain.cs b/Agent/KPS/KPSMain.cs new file mode 100644 index 0000000..f08abad --- /dev/null +++ b/Agent/KPS/KPSMain.cs @@ -0,0 +1,3986 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Data.SqlClient; +using System.Data; + +using Cosmos.Common; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.CommonManager; +using Cosmos.ServiceProvider; +using System.Text.RegularExpressions; + +namespace Cosmos.KPS +{ + public class KPSMain : IKPSMain + { + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + private TranStatus m_cTrnStatus = null; + private DeviceStatus m_cDevStatus = null; + + /// + /// KPS Thread (KPS 스레드) + /// + private Thread m_tKPSProc = null; + + /// + /// KPS Proc Operation Yes/No (KPS Proc 작동여부) + /// + private bool m_KPSProcRunning = true; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + // 대기시간 + //private int WAIT_TIME = 3000; + //private int WAIT_TIME = 2000; + private int WAIT_TIME = 1000; + + private Hashtable m_htFloor; + private Hashtable m_htTable; + + //#20180515 KPS 출력시 라벨프린터 출력 start + private LabelPrinter m_cLabelPrtDevice = null; + //#20180515 KPS 출력시 라벨프린터 출력 end + + + public KPSMain() + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cTrnStatus = (TranStatus)StateObject.TRAN; + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + + m_htFloor = new Hashtable(); + m_htTable = new Hashtable(); + + //#20180515 KPS 출력시 라벨프린터 출력 start + m_cLabelPrtDevice = new LabelPrinter(); + //#20180515 KPS 출력시 라벨프린터 출력 end + + } + + public void StartKPS() + { + try + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "KPS Start"); + + // Database Connection + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + m_tKPSProc = new Thread(new ThreadStart(KPSExecuteProc)); + m_KPSProcRunning = true; + m_tKPSProc.Start(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + /// + /// Get Floor Master + /// + /// + private void SelectFloor() + { + string sQuery = string.Empty; + DataTable dtData = null; + try + { + m_htFloor.Clear(); + sQuery = "SELECT FLOOR_CD, FLOOR_NM FROM POSMST..MST_FLOOR WITH(NOLOCK) " + + " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' " + + " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' " + + " ORDER BY FLOOR_CD "; + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dr in dtData.Rows) + { + m_htFloor.Add(CmUtil.GetDataRowStr(dr, "FLOOR_CD"), CmUtil.GetDataRowStr(dr, "FLOOR_NM")); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + /// + /// Get Floor Name + /// + /// + /// + private String GetFloorName(string sFloorCd) + { + string sFloorName = sFloorCd; + + try + { + if (m_htFloor.Contains(sFloorCd)) + { + sFloorName = (string)m_htFloor[sFloorCd]; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + + return sFloorName; + } + + /// + /// Get Table Master + /// + /// + private void SelectTable() + { + string sQuery = string.Empty; + DataTable dtData = null; + + try + { + m_htTable.Clear(); + sQuery = "SELECT FLOOR_CD, TBL_NO, TBL_NM, TBL_DISP_DIV " + + " FROM POSMST..MST_TBL WITH(NOLOCK) " + + " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' " + + " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' " + + " AND TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' " + + " ORDER BY FLOOR_CD, TBL_NO "; + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + foreach (DataRow dr in dtData.Rows) + { + TableMaster cTableMaster = new TableMaster(); + cTableMaster.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD"); + cTableMaster.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO"); + cTableMaster.sTableNm = CmUtil.GetDataRowStr(dr, "TBL_NM"); + cTableMaster.sTableDispDiv = CmUtil.GetDataRowStr(dr, "TBL_DISP_DIV"); + + //if (string.IsNullOrWhiteSpace(cTableMaster.sTableDispDiv)) cTableMaster.sTableDispDiv = PosConst.TABLE_DISP_FLAG.TABLE_NAME; + cTableMaster.sTableDispDiv = PosConst.TABLE_DISP_FLAG.TABLE_NAME; + if (string.IsNullOrWhiteSpace(cTableMaster.sTableNm)) cTableMaster.sTableNm = cTableMaster.sTableNo; + + m_htTable.Add(m_htTable.Count, cTableMaster); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + /// + /// Get Table Name + /// + /// + /// + /// + private string GetTableName(string sFloorCd, string sTableNo) + { + string sTableName = sTableNo; + + try + { + for (int nLoop = 0; nLoop < m_htTable.Count; nLoop++) + { + TableMaster cTableMaster = (TableMaster)m_htTable[nLoop]; + + if (cTableMaster.sFloorCd == sFloorCd && cTableMaster.sTableNo == sTableNo) + { + //switch(cTableMaster.sTableDispDiv) + //{ + // case TABLE_DISP_FLAG.TABLE_NO: + // sTableName = cTableMaster.sTableNo; + // break; + // case TABLE_DISP_FLAG.TABLE_NAME: + // sTableName = cTableMaster.sTableNm; + // break; + // case TABLE_DISP_FLAG.TABLE_NO_NAME: + // sTableName = cTableMaster.sTableNo + cTableMaster.sTableNm; + // break; + //} + sTableName = cTableMaster.sTableNm; + break; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + + return sTableName; + } + + private string GetCustInfo(string trainMode, string floorCd, string tableNo) + { + string retValue = string.Empty; + try + { + retValue = MessageManager.GetLabelMessage(POS_MESSAGE.PRINT.MSG_0159); + int totCnt = 0; + int mCnt = 0; + int fCnt = 0; + + DataTable dtData = null; + string sql = "SELECT CUST_CNT, FILLER2 FROM POSMST..MST_TBL WITH(NOLOCK) " + + " WHERE TRAIN_MODE_YN = '" + trainMode + "' " + + " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' " + + " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' " + + " AND FLOOR_CD = '" + floorCd + "' " + + " AND TBL_NO = '" + tableNo + "' " + ; + if (sqlDb.DBDataTableSelect(sql, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + var temp = string.Empty; + + temp = CmUtil.GetDataRowStr(dtData.Rows[0], "CUST_CNT"); + if (string.IsNullOrWhiteSpace(temp) == false) + { + totCnt = CmUtil.IntParse(temp); + } + + temp = CmUtil.GetDataRowStr(dtData.Rows[0], "FILLER2"); + if (string.IsNullOrWhiteSpace(temp) == false) + { + totCnt = 0; + var custList = temp.Split('|'); + for (var i = 0; i < custList.Count(); i++) + { + int cnt = CmUtil.IntParse(custList[i]); + totCnt += cnt; + if (i < 6) mCnt += cnt; else fCnt += cnt; + } + } + } + + if (totCnt > 0 && mCnt + fCnt == 0) + { + retValue = totCnt.ToString(); + } + else + { + retValue = string.Format(MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0159), totCnt, mCnt, fCnt); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + return retValue; + } + + private string GetAddOrderString(string type) + { + string retValue = type; + try + { + switch (m_cPosStatus.Base.Country + type) + { + case "ko-KRNEW": retValue = "신규"; break; + case "ko-KRADD": retValue = "추가"; break; + case "ko-KRDEL": retValue = "취소"; break; + } + } + catch { } + return retValue; + } + + private void KPSExecuteProc() + { + int nSelectCount = 60; + + while (m_KPSProcRunning) + { + try + { + string ktchErrorCode = string.Empty; + Hashtable htKPSSendingItem = new Hashtable(); + Hashtable htKtchDeviceStatus = new Hashtable(); + + // Set Wait Time + //Thread.Sleep(WAIT_TIME); + //nSelectCount += (WAIT_TIME / 1000); + + // Get Print Message + if (nSelectCount >= 60) + { + if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + { + //SelectFloor(); + //SelectTable(); + } + nSelectCount = 0; + } + + // KPS Send Item Make + KPSSendItemMake(); + + // Get item sending to KPS + htKPSSendingItem = new Hashtable(); + GetKPSSendItem(ref htKPSSendingItem); + + if (htKPSSendingItem.Count > 0) + { + // KPS Print + htKtchDeviceStatus = new Hashtable(); + KPSPrintProc(ref htKPSSendingItem, ref htKtchDeviceStatus, ref ktchErrorCode); + + // KPS Print Status Update + KPSPrintStatusUpdate(htKPSSendingItem, htKtchDeviceStatus); + } + + // Get KPS Order Message + htKPSSendingItem = new Hashtable(); + GetKPSOrderMessage(ref htKPSSendingItem); + + if (htKPSSendingItem.Count > 0) + { + // KPS Order Message Print + htKtchDeviceStatus = new Hashtable(); + KPSOrderMessagePrintProc(ref htKPSSendingItem, ref htKtchDeviceStatus, ref ktchErrorCode); + + // KPS Order Message + KPSOrderMessagePrintStatusDelete(htKPSSendingItem, htKtchDeviceStatus); + } + + //#20180515 KPS 출력시 라벨프린터 출력 start + // Get item sending to Label print + + if (m_cDevStatus.LabelPrinter.UseYn == true) + { + htKPSSendingItem = new Hashtable(); + GetLBLPRTSendItem(ref htKPSSendingItem); + + if (htKPSSendingItem.Count > 0) + { + // Label Print + htKtchDeviceStatus = new Hashtable(); + LBLPRTPrintProc(ref htKPSSendingItem); + + // KPS Print Status Update + LBLPRTPrintStatusUpdate(htKPSSendingItem, htKtchDeviceStatus); + } + } + //#20180515 KPS 출력시 라벨프린터 출력 end + + // Add, 2017.02.15, 영수증프린터로 주문서 출력을 위해 장치오류코드 설정 + if (string.IsNullOrWhiteSpace(ktchErrorCode) == false) + { + if (string.IsNullOrWhiteSpace(m_cPosStatus.Sale.KtchPrintErrorCode) || m_cPosStatus.Sale.KtchPrintErrorCode == "XXXX") + { + m_cPosStatus.Sale.KtchPrintErrorCode = ktchErrorCode; + } + } + + int nNowSleepTerm = 0; + while (nNowSleepTerm < WAIT_TIME) + { + if (m_KPSProcRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + } + + public void StopKPS() + { + try + { + m_KPSProcRunning = false; + + int count = 0; + while (count < 10) + { + if (m_tKPSProc != null && m_tKPSProc.IsAlive) m_KPSProcRunning = false; + else break; + + count++; + Thread.Sleep(100); + } + + if (count == 10) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Force KPS Agent Stop!!!"); + m_tKPSProc.Abort(); + } + + // DB Close + sqlDb.DBClose(); + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "KPS Stop"); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + private bool KPSSendItemMake() + { + bool bRet = false; + string sQuery = string.Empty; + + Hashtable htKPSSendingItem = new Hashtable(); + + try + { + #region (주석) 수동출력옵션 적용 이전버전 + //sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, B.KTCH_SYS_CD, A.SEQ "; + //sQuery += " , A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM "; + //sQuery += " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV "; + //sQuery += " , A.RESEND_YN, C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM "; + //sQuery += " , C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT, C.KTCH_PRINTER_BAK1, C.KTCH_PRINTER_BAK2, C.KTCH_PRINTER_BAK3 "; + //sQuery += " , C.KTCH_PRINTER_BAK4, C.KTCH_PRINTER_BAK5, C.KTCH_PRINTER_BAK6, C.FILLER1, C.FILLER2 "; + //sQuery += " , C.FILLER3, C.FILLER4, C.FILLER5 "; + //sQuery += " FROM POSMST..MST_KTCH_ORD_MSG A "; + //sQuery += " , POSMST..MST_KTCH_DEVICE_ITEM B "; + //sQuery += " , POSMST..MST_KTCH_DEVICE C "; + //sQuery += " WHERE A.SEND_YN = '0' "; + //sQuery += " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') "; // '0':일반, '1':세트, '2':세트자식, '3':부가상품, '4':세트할인 + //sQuery += " AND B.ITEM_CD = A.ITEM_CD "; + //sQuery += " AND (B.FLOOR_CD = A.FLOOR_CD OR B.FLOOR_CD = '999') "; + //sQuery += " AND B.KTCH_SYS_CD = C.KTCH_SYS_CD "; + //sQuery += " AND C.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + //sQuery += " AND C.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + //sQuery += " AND C.KTCH_SYS_DIV = '1' "; // '1':KPS, '2':KVS + //sQuery += " AND C.USE_YN = '1' "; + #endregion + + #region (주석) 복합매장 적용 이전 버전 + // 주방프린터 자동출력 여부 0:자동 1:수동(프린터선택, 99:전체) 2:수동(상품선택) + //if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "1") + //{ + // 1:수동(프린터선택, 99:전체) + // sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, C.KTCH_SYS_CD, A.SEQ \n" + // + " , A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV \n" + // + " , A.RESEND_YN, C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM \n" + // + " , C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT, C.KTCH_PRINTER_BAK1, C.KTCH_PRINTER_BAK2, C.KTCH_PRINTER_BAK3, C.KTCH_PRINTER_BAK4, C.KTCH_PRINTER_BAK5, C.KTCH_PRINTER_BAK6 \n" + // //+ " , C.FILLER1, C.FILLER2, C.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B \n" + // + " , POSMST..MST_KTCH_DEVICE C \n" + // + " WHERE A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" // '0':일반, '1':세트, '2':세트자식, '3':부가상품, '4':세트할인 + // + " AND B.ITEM_CD = A.ITEM_CD \n" + // + " AND (B.FLOOR_CD = A.FLOOR_CD OR B.FLOOR_CD = '999') \n" + + // //+ " AND B.KTCH_SYS_CD = A.FILLER1 \n" + // //+ " AND CASE WHEN A.FILLER1 = '99' THEN 1 ELSE B.KTCH_SYS_CD END \n" + // //+ " = CASE WHEN A.FILLER1 = '99' THEN 1 ELSE C.KTCH_SYS_CD END \n" + // + " AND B.SUB_STOR_CD + B.KTCH_SYS_CD = A.FILLER1 \n" + // + " AND CASE WHEN A.FILLER1 = '99' THEN 1 ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n" + // + " = CASE WHEN A.FILLER1 = '99' THEN 1 ELSE C.SUB_STOR_CD + C.KTCH_SYS_CD END \n" + + // + " AND C.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND C.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND C.KTCH_SYS_DIV = '1' \n" // '1':KPS, '2':KVS + // + " AND C.USE_YN = '1' \n" + // + " AND B.USE_YN = '1' \n" + // + " AND C.KTCH_SYS_CD <> '99' \n" + // ; + //} + //else if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2") + //{ + // 2:수동(상품선택) + // sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, B.KTCH_SYS_CD, A.SEQ \n" + // + " , A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV \n" + // + " , A.RESEND_YN, C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM \n" + // + " , C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT, C.KTCH_PRINTER_BAK1, C.KTCH_PRINTER_BAK2, C.KTCH_PRINTER_BAK3, C.KTCH_PRINTER_BAK4, C.KTCH_PRINTER_BAK5, C.KTCH_PRINTER_BAK6 \n" + // //+ " , C.FILLER1, C.FILLER2, C.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B \n" + // + " , POSMST..MST_KTCH_DEVICE C \n" + // + " WHERE A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" // '0':일반, '1':세트, '2':세트자식, '3':부가상품, '4':세트할인 + // + " AND B.ITEM_CD = A.ITEM_CD \n" + // + " AND (B.FLOOR_CD = A.FLOOR_CD OR B.FLOOR_CD = '999') \n" + + // + " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n" + // + " AND B.KTCH_SYS_CD = C.KTCH_SYS_CD \n" + + // + " AND C.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND C.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND C.KTCH_SYS_DIV = '1' \n" // '1':KPS, '2':KVS + // + " AND C.USE_YN = '1' \n" + // + " AND B.USE_YN = '1' \n" + + // //+ " AND A.ITEM_CD = A.FILLER1 \n" // 선택한 상품만 출력 + // + " AND A.SUB_STOR_CD + A.ITEM_CD = A.FILLER1 \n" // 선택한 상품만 출력 + + // + " AND B.KTCH_SYS_CD <> '99' \n" // 99번 장치관련 상품은 출력하지 않는다. + // + " AND C.KTCH_SYS_CD <> '99' \n" + // ; + //} + //else + //{ + // 0:자동 + // sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, B.KTCH_SYS_CD, A.SEQ \n" + // + " , A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV \n" + // + " , A.RESEND_YN, C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM \n" + // + " , C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT, C.KTCH_PRINTER_BAK1, C.KTCH_PRINTER_BAK2, C.KTCH_PRINTER_BAK3, C.KTCH_PRINTER_BAK4, C.KTCH_PRINTER_BAK5, C.KTCH_PRINTER_BAK6 \n" + // //+ " , C.FILLER1, C.FILLER2, C.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5 \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B \n" + // + " , POSMST..MST_KTCH_DEVICE C \n" + // + " WHERE A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" // '0':일반, '1':세트, '2':세트자식, '3':부가상품, '4':세트할인 + // //+ " AND B.ITEM_CD = A.ITEM_CD \n" + // + " AND A.SUB_STOR_CD = B.SUB_STOR_CD \n" + // + " AND A.ITEM_CD = B.ITEM_CD \n" + // + " AND (B.FLOOR_CD = A.FLOOR_CD OR B.FLOOR_CD = '999') \n" + // + " AND B.KTCH_SYS_CD = C.KTCH_SYS_CD \n" + // + " AND C.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND C.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND C.KTCH_SYS_DIV = '1' \n" // '1':KPS, '2':KVS + // + " AND C.USE_YN = '1' \n" + // + " AND B.USE_YN = '1' \n" + // //+ " AND B.KTCH_SYS_CD <> '99' \n" // 99번 장치관련 상품은 출력하지 않는다. + // + " AND C.KTCH_SYS_CD <> '99' \n" + // ; + //} + #endregion + + + #region (주석) 기존 POS 로직 + + // 주방프린터 자동출력 여부 0:자동 1:수동(프린터선택, 99:전체) 2:수동(상품선택) + //if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "1") + //{ + // // 1:수동(프린터선택, 99:전체) + // sQuery = "SELECT DISTINCT \n" + // //+ " A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" // Add, 2017.03.03, 연습모드 + // + " A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + // + " , C.POS_NO \n" // Add, 2017.06.14 POS별 주방프린터 설정 + // + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // + " , C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM, C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT \n" + // + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5, ISNULL(C.PRT_CNT, 1) AS PRT_CNT \n" + // + " , A.KTCH_MSG \n" // Add, 2017.03.21 + // + " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + // + " , A.ORG_QTY \n" // Add, 2017.03.31 + // + " , A.ORD_POS_NO \n" // Add, 2017.04.10 + // + " , A.FILLER5 AS ORDER_SEQ \n" // Add, 2017.04.11 + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n" + // + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + // + " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD \n" + // + " AND (A.FLOOR_CD = B.FLOOR_CD OR '999' = B.FLOOR_CD) \n" + + // //#20180221 복합매장인 경우 주방출력상품을 장치코드 99에 등록하면 여러장 출력되는 증상 수정 start + // //기존 + // //+ " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD \n" + // //변경 + // + " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD AND B.SUB_STOR_CD = C.SUB_STOR_CD \n" + // //#20180221 복합매장인 경우 주방출력상품을 장치코드 99에 등록하면 여러장 출력되는 증상 수정 end + + // + " AND CASE WHEN B.KTCH_SYS_CD = '99' OR A.FILLER1 = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n" + // + " = CASE WHEN B.KTCH_SYS_CD = '99' OR A.FILLER1 = '99' THEN '1' ELSE C.SUB_STOR_CD + C.KTCH_SYS_CD END \n" + // + " AND CASE WHEN A.FILLER1 = '99' THEN '1' ELSE A.FILLER1 END \n" // 선택장치조건 + // + " = CASE WHEN A.FILLER1 = '99' THEN '1' ELSE C.SUB_STOR_CD + C.KTCH_SYS_CD END \n" + // + " AND A.TRAIN_MODE_YN IN ('0', '1') " // Add, 2017.03.03, 연습모드 + // + " AND A.ORD_DIV = '0' \n" + // + " AND A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + // + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10 + // + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n" + // + " AND C.KTCH_SYS_CD <> '99' \n" + // + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // ; + //} + //else if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2") + //{ + // // 2:수동(상품선택) + // sQuery = "SELECT DISTINCT \n" + // //+ " A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" // Add, 2017.03.03, 연습모드 + // + " A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + // + " , C.POS_NO \n" // Add, 2017.06.14 POS별 주방프린터 설정 + // + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // + " , C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM, C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT \n" + // + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5, ISNULL(C.PRT_CNT, 1) AS PRT_CNT \n" + // + " , A.KTCH_MSG \n" // Add, 2017.03.21 + // + " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + // + " , A.ORG_QTY \n" // Add, 2017.03.31 + // + " , A.ORD_POS_NO \n" // Add, 2017.04.10 + // + " , A.FILLER5 AS ORDER_SEQ \n" // Add, 2017.04.11 + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n" + // + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + // + " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD \n" + // + " AND (A.FLOOR_CD = B.FLOOR_CD OR '999' = B.FLOOR_CD) \n" + + // //#20180221 복합매장인 경우 주방출력상품을 장치코드 99에 등록하면 여러장 출력되는 증상 수정 start + // //기존 + // //+ " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD \n" + // //변경 + // + " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD AND B.SUB_STOR_CD = C.SUB_STOR_CD \n" + // //#20180221 복합매장인 경우 주방출력상품을 장치코드 99에 등록하면 여러장 출력되는 증상 수정 end + + // + " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n" + // + " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE C.SUB_STOR_CD + C.KTCH_SYS_CD END \n" + // + " AND A.FILLER1 = 'PRINT' \n" // 선택한 상품만 출력 + // + " AND A.TRAIN_MODE_YN IN ('0', '1') " // Add, 2017.03.03, 연습모드 + // + " AND A.ORD_DIV = '0' \n" + // + " AND A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + // + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10 + // + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n" + // + " AND C.KTCH_SYS_CD <> '99' \n" + // + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // ; + //} + //else + //{ + // // 0:자동 + // sQuery = "SELECT DISTINCT \n" + // //+ " A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" // Add, 2017.03.03, 연습모드 + // + " A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + // + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + // + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + // + " , C.POS_NO \n" // Add, 2017.06.12, POS별 주방프린터 설정 + // + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // + " , C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM, C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT \n" + // + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5, ISNULL(C.PRT_CNT, 1) AS PRT_CNT \n" + // + " , A.KTCH_MSG \n" // Add, 2017.03.21 + // + " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + // + " , A.ORG_QTY \n" // Add, 2017.03.31 + // + " , A.ORD_POS_NO \n" // Add, 2017.04.10 + // + " , A.FILLER5 AS ORDER_SEQ \n" // Add, 2017.04.11 + // + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + // + " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n" + // + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + // + " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD \n" + // + " AND (A.FLOOR_CD = B.FLOOR_CD OR '999' = B.FLOOR_CD) \n" + + // //#20180221 복합매장인 경우 주방출력상품을 장치코드 99에 등록하면 여러장 출력되는 증상 수정 start + // //기존 + // //+ " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD \n" + // //변경 + // + " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD AND B.SUB_STOR_CD = C.SUB_STOR_CD \n" + // //#20180221 복합매장인 경우 주방출력상품을 장치코드 99에 등록하면 여러장 출력되는 증상 수정 end + + // + " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n" + // + " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE C.SUB_STOR_CD + C.KTCH_SYS_CD END \n" + // + " AND A.TRAIN_MODE_YN IN ('0', '1') " // Add, 2017.03.03, 연습모드 + // + " AND A.ORD_DIV = '0' \n" + // + " AND A.SEND_YN = '0' \n" + // + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + // + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10 + // + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + // + " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n" + // + " AND C.KTCH_SYS_CD <> '99' \n" + // + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + // ; + //} + #endregion + + + #region 해피스테이션 로직 + + sQuery = "SELECT DISTINCT \n" + + " A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.TRADE_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV, A.SUB_MEMO_DIV, A.RESEND_YN \n" + + " , A.MSG1, A.MSG2, A.MSG3, A.FILLER2 AS ETC_ORD_FLAG, A.FILLER3 AS ADD_ORD_FLAG \n" + + " , C.POS_NO \n" // Add, 2017.06.12, POS별 주방프린터 설정 + + " , C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + + " , C.KTCH_SYS_USE_DIV, C.KTCH_PRINTER_COMM_PORT, C.KTCH_PRINTER_COMM_SPEED, C.KTCH_PRINTER_OPOS_NM, C.KTCH_PRINTER_IP, C.KTCH_PRINTER_PORT \n" + + " , C.FILLER1, C.FILLER3, C.FILLER4, C.FILLER5, ISNULL(C.PRT_CNT, 1) AS PRT_CNT \n" + + " , A.KTCH_MSG \n" // Add, 2017.03.21 + + " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + + " , A.ORG_QTY \n" // Add, 2017.03.31 + + " , A.ORD_POS_NO \n" // Add, 2017.04.10 + + " , A.FILLER5 AS ORDER_SEQ \n" // Add, 2017.04.11 + + " FROM POSMST..MST_KTCH_ORD_MSG A \n" + + " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n" + + " , POSMST..MST_KTCH_DEVICE C WITH(NOLOCK) \n" + + " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD \n" + + " AND (A.FLOOR_CD = B.FLOOR_CD OR '999' = B.FLOOR_CD) \n" + + + " AND B.CMP_CD = C.CMP_CD AND B.STOR_CD = C.STOR_CD AND B.SUB_STOR_CD = C.SUB_STOR_CD \n" + + + " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n" + + " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE C.SUB_STOR_CD + C.KTCH_SYS_CD END \n" + + " AND A.TRAIN_MODE_YN IN ('0', '1') " // Add, 2017.03.03, 연습모드 + + " AND A.ORD_DIV = '0' \n" + + " AND A.SEND_YN = '0' \n" + + " AND A.ITEM_DIV IN ('0', '1', '2', '3', '4') \n" + + " AND A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10 + + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + + " AND C.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n" + + " AND C.KTCH_SYS_CD <> '99' \n" + + " ORDER BY C.SUB_STOR_CD, C.KTCH_SYS_CD \n" + ; + #endregion + + // 조회 + DataTable dtData = null; + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + { + return false; + } + + if(dtData == null || dtData.Rows.Count == 0) + { + return false; + } + + DataRow[] arRows = null; + arRows = dtData.Select("POS_NO = '" + m_cPosStatus.Base.PosNo + "'"); + if (arRows.Length == 0) + arRows = dtData.Select("POS_NO = '00'"); + + + //foreach (DataRow dr in dtData.Rows) + foreach (DataRow dr in arRows) + { + KPSItem cKPSItem = new KPSItem(); + + cKPSItem.sTrainMode = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); // Add, 2017.03.03, 연습모드 + + cKPSItem.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV"); + cKPSItem.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD"); + cKPSItem.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO"); + + cKPSItem.sSubShopCd = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"); + cKPSItem.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"); + + cKPSItem.nSeq = CmUtil.GetDataRowInt(dr, "SEQ"); + cKPSItem.sOrderNo = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + + if (string.IsNullOrWhiteSpace(CmUtil.GetDataRowStr(dr, "ORDER_SEQ")) == false) // Add, 2017.04.11, 후불테이블 일때 주문번호-주문차수 처리 + { + cKPSItem.sOrderNo = CmUtil.GetDataRowStr(dr, "TRADE_NO") + "-" + CmUtil.GetDataRowStr(dr, "ORDER_SEQ"); + } + + cKPSItem.sPosType = CmUtil.GetDataRowStr(dr, "POS_TYPE"); + cKPSItem.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD"); + cKPSItem.sItemDiv = CmUtil.GetDataRowStr(dr, "ITEM_DIV"); + cKPSItem.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM"); + + // Mod, 2017.03.31 + //cKPSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY"); + cKPSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY") - CmUtil.GetDataRowInt(dr, "ORG_QTY"); + + cKPSItem.sPackDiv = CmUtil.GetDataRowStr(dr, "PACK_DIV"); + cKPSItem.sSetMenuCd = CmUtil.GetDataRowStr(dr, "SET_MENU_CD"); + cKPSItem.sOrdTime = CmUtil.GetDataRowStr(dr, "ORD_TIME"); + cKPSItem.sCancelDiv = CmUtil.GetDataRowStr(dr, "CANCEL_DIV"); + cKPSItem.sResendYn = CmUtil.GetDataRowStr(dr, "RESEND_YN"); + cKPSItem.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV"); + cKPSItem.nKpsComPort = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_PORT"); + cKPSItem.nKpsComBaudrate = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_SPEED"); + cKPSItem.sKpsOposName = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_OPOS_NM"); + cKPSItem.sKpsIp = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_IP"); + cKPSItem.sKpsPort = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_PORT"); + cKPSItem.sFiller1 = CmUtil.GetDataRowStr(dr, "PRT_CNT"); // Add, 2017.01.10, 출력횟수 + cKPSItem.sFiller2 = CmUtil.GetDataRowStr(dr, "ETC_ORD_FLAG"); // Add, 2017.01.26, 기타주문구분 1:후불일반판매, 2:해피오더 + cKPSItem.sFiller3 = CmUtil.GetDataRowStr(dr, "ADD_ORD_FLAG"); // Add, 2017.02.09, 추가주문구분 (NEW,ADD,DEL) + cKPSItem.sFiller4 = CmUtil.GetDataRowStr(dr, "FILLER4"); + cKPSItem.sFiller5 = CmUtil.GetDataRowStr(dr, "FILLER5"); + + + // 부가메뉴구분이 속성이면, 수량=0으로변경, 주문서에 수량을 출력 하지 않는다. // Add, 2017.02.09 + // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + //if (CmUtil.GetDataRowStr(dr, "SUB_MEMO_DIV") == "1") cKPSItem.nQty = 0; // Mod, 2017.04.13, 속성도 수량출력 :: 커피웍스 + + #region Mod, 2017.04.25, 주방메모 출력 + // Add, 2017.01.23 + // 주방프린터 수동출력(상품선택) 옵션처리 + //cKPSItem.sKtchMemo = string.Empty; + //if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2") + //{ + // cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "KTCH_MSG"); // Mod, 2017.03.21 + //} + #endregion + + + cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "KTCH_MSG").Trim(); + + cKPSItem.sItemMemo = (CmUtil.GetDataRowStr(dr, "MSG1") + " " + + CmUtil.GetDataRowStr(dr, "MSG2") + " " + + CmUtil.GetDataRowStr(dr, "MSG3")).Trim(); // Add, 2017.03.21 + cKPSItem.sOrdPicNm = CmUtil.GetDataRowStr(dr, "ORD_PIC_NM").Trim(); // Add, 2017.03.28, 주문담당자 + cKPSItem.sOrdPosNo = CmUtil.GetDataRowStr(dr, "ORD_POS_NO").Trim(); // Add, 2017.04.10 + + cKPSItem.sSendYn = "0"; + cKPSItem.sErrorCd = "0000"; + + //#20180515 KPS 출력시 라벨프린터 출력 start + cKPSItem.sLblSendYn = "0"; + //#20180515 KPS 출력시 라벨프린터 출력 end + + htKPSSendingItem.Add(htKPSSendingItem.Count, cKPSItem); + } + + // 주방인쇄상품 존재시 + if (htKPSSendingItem.Count > 0) + { + sqlDb.DBBeginTransaction(); + + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + KPSItem cKPSItem = (KPSItem)htKPSSendingItem[nLoop]; + + #region (주석) 기존코드 + //sQuery = " INSERT INTO POSMST..MST_KPS_ORD_MSG "; + //sQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD, SEQ "; + //sQuery += " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM "; + //sQuery += " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV "; + //sQuery += " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED "; + //sQuery += " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD, KTCH_PRINTER_BAK1 "; + //sQuery += " , KTCH_PRINTER_BAK2, KTCH_PRINTER_BAK3, KTCH_PRINTER_BAK4, KTCH_PRINTER_BAK5, KTCH_PRINTER_BAK6 "; + //sQuery += " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 "; + //sQuery += " , UPD_DT, REG_DT ) "; + //sQuery += " VALUES "; + //sQuery += " ( '" + cKPSItem.sOrderType +"' "; + //sQuery += " , '" + cKPSItem.sFloorCd + "' "; + //sQuery += " , '" + cKPSItem.sTableNo + "' "; + //sQuery += " , '" + cKPSItem.sKtchSysCd + "' "; + //sQuery += " , " + cKPSItem.nSeq + " "; + //sQuery += " , '" + cKPSItem.sOrderNo + "' "; + //sQuery += " , '" + cKPSItem.sPosType + "' "; + //sQuery += " , '" + cKPSItem.sItemCd + "' "; + //sQuery += " , '" + cKPSItem.sItemDiv + "' "; + //sQuery += " , N'" + cKPSItem.sItemNm + "' "; + //sQuery += " , " + cKPSItem.nQty + " "; + //sQuery += " , '" + cKPSItem.sPackDiv + "' "; + //sQuery += " , '" + cKPSItem.sSetMenuCd + "' "; + //sQuery += " , '" + cKPSItem.sOrdTime + "' "; + //sQuery += " , '" + cKPSItem.sCancelDiv + "' "; + //sQuery += " , '0' "; + //sQuery += " , '" + cKPSItem.sResendYn + "' "; + //sQuery += " , '" + cKPSItem.sKtchSysUseDiv + "' "; + //sQuery += " , " + cKPSItem.nKpsComPort + " "; + //sQuery += " , " + cKPSItem.nKpsComBaudrate + " "; + //sQuery += " , '" + cKPSItem.sKpsOposName + "' "; + //sQuery += " , '" + cKPSItem.sKpsIp + "' "; + //sQuery += " , '" + cKPSItem.sKpsPort + "' "; + //sQuery += " , '" + cKPSItem.sErrorCd + "' "; + //sQuery += " , '" + cKPSItem.sKpsCdBackup1 + "' "; + //sQuery += " , '" + cKPSItem.sKpsCdBackup2 + "' "; + //sQuery += " , '" + cKPSItem.sKpsCdBackup3 + "' "; + //sQuery += " , '" + cKPSItem.sKpsCdBackup4 + "' "; + //sQuery += " , '" + cKPSItem.sKpsCdBackup5 + "' "; + //sQuery += " , '" + cKPSItem.sKpsCdBackup6 + "' "; + //sQuery += " , '" + cKPSItem.sFiller1 + "' "; + //sQuery += " , '" + cKPSItem.sFiller2 + "' "; + //sQuery += " , '" + cKPSItem.sFiller3 + "' "; + //sQuery += " , '" + cKPSItem.sFiller4 + "' "; + //sQuery += " , '" + cKPSItem.sFiller5 + "' "; + //sQuery += " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + //sQuery += " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ) "; + + //if(sqlDb.DBExecuteNonQuery(new string[] {sQuery}, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + //{ + // sQuery = " UPDATE POSMST..MST_KPS_ORD_MSG "; + // sQuery += " SET SEND_YN = '0' "; + // sQuery += " , RESEND_YN = '1' "; + // sQuery += " , PACK_DIV = '" + cKPSItem.sPackDiv + "' "; + // sQuery += " , CANCEL_DIV = '" + cKPSItem.sCancelDiv + "' "; + // sQuery += " , KTCH_PRINTER_BAK1 = '" + cKPSItem.sKpsCdBackup1 + "' "; + // sQuery += " , KTCH_PRINTER_BAK2 = '" + cKPSItem.sKpsCdBackup2 + "' "; + // sQuery += " , KTCH_PRINTER_BAK3 = '" + cKPSItem.sKpsCdBackup3 + "' "; + // sQuery += " , KTCH_PRINTER_BAK4 = '" + cKPSItem.sKpsCdBackup4 + "' "; + // sQuery += " , KTCH_PRINTER_BAK5 = '" + cKPSItem.sKpsCdBackup5 + "' "; + // sQuery += " , KTCH_PRINTER_BAK6 = '" + cKPSItem.sKpsCdBackup6 + "' "; + // sQuery += " , FILLER1 = '" + cKPSItem.sFiller1 + "' "; + // sQuery += " , FILLER2 = '" + cKPSItem.sFiller2 + "' "; + // sQuery += " , FILLER3 = '" + cKPSItem.sFiller3 + "' "; + // sQuery += " , FILLER4 = '" + cKPSItem.sFiller4 + "' "; + // sQuery += " , FILLER5 = '" + cKPSItem.sFiller5 + "' "; + // sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + // sQuery += " WHERE ORD_DIV = '" + cKPSItem.sOrderType + "' "; + // sQuery += " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' "; + // sQuery += " AND TBL_NO = '" + cKPSItem.sTableNo + "' "; + // sQuery += " AND KTCH_SYS_CD = '" + cKPSItem.sKtchSysCd + "' "; + // sQuery += " AND SEQ = " + cKPSItem.nSeq + " "; + + // if(sqlDb.DBExecuteNonQuery(new string[] {sQuery}, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + // { + // // Rollback + // sqlDb.DBTransactionRollback(); + + // return; + // } + //} + + //sQuery = " UPDATE POSMST..MST_KTCH_ORD_MSG "; + //sQuery += " SET SEND_YN = '1' "; + //sQuery += " WHERE ORD_DIV = '" + cKPSItem.sOrderType + "' "; + //sQuery += " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' "; + //sQuery += " AND TBL_NO = '" + cKPSItem.sTableNo + "' "; + //sQuery += " AND SEQ = " + cKPSItem.nSeq + " "; + + //if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + //{ + // // Rollback + // sqlDb.DBTransactionRollback(); + + // return; + //} + #endregion + + string[] sql = new string[2]; + + #region (삭제) + //sql[0] = "UPDATE POSMST..MST_KPS_ORD_MSG \n" + // + " SET SEND_YN = '0' \n" + // + " , RESEND_YN = '0' \n" + // + " , PACK_DIV = '" + cKPSItem.sPackDiv + "' \n" + // + " , CANCEL_DIV = '" + cKPSItem.sCancelDiv + "' \n" + // + " , SALE_QTY = " + cKPSItem.nQty + "\n" // Add, 2017.03.29, 이런 !!! + // //+ " , KTCH_PRINTER_BAK1 = '" + cKPSItem.sKpsCdBackup1 + "' \n" // Del, 2017.02.09 + // //+ " , KTCH_PRINTER_BAK2 = '" + cKPSItem.sKpsCdBackup2 + "' \n" + // //+ " , KTCH_PRINTER_BAK3 = '" + cKPSItem.sKpsCdBackup3 + "' \n" + // //+ " , KTCH_PRINTER_BAK4 = '" + cKPSItem.sKpsCdBackup4 + "' \n" + // //+ " , KTCH_PRINTER_BAK5 = '" + cKPSItem.sKpsCdBackup5 + "' \n" + // //+ " , KTCH_PRINTER_BAK6 = '" + cKPSItem.sKpsCdBackup6 + "' \n" + // + " , FILLER1 = '" + cKPSItem.sFiller1 + "' \n" + // + " , FILLER2 = '" + cKPSItem.sFiller2 + "' \n" + // + " , FILLER3 = '" + cKPSItem.sFiller3 + "' \n" + // + " , FILLER4 = '" + cKPSItem.sFiller4 + "' \n" + // + " , FILLER5 = '" + cKPSItem.sFiller5 + "' \n" + // //+ " , MSG = N'" + cKPSItem.sKtchMemo + "' \n" + // + " , MSG = N'" + ConvertDBStr(cKPSItem.sItemMemo) + "' \n" // Mod, 2017.03.21 + // + " , KTCH_MSG = N'" + ConvertDBStr(cKPSItem.sKtchMemo) + "' \n" // Add, 2017.03.21 + // + " , ORD_PIC_NM = N'" + ConvertDBStr(cKPSItem.sOrdPicNm) + "' \n" // Add, 2017.03.27, 주문담당자 + // + " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n" + // + " WHERE TRAIN_MODE_YN = '" + cKPSItem.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + // + " AND ORD_DIV = '" + cKPSItem.sOrderType + "' \n" + // + " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' \n" + // + " AND TBL_NO = '" + cKPSItem.sTableNo + "' \n" + // + " AND SUB_STOR_CD = '" + cKPSItem.sSubShopCd + "' \n" // Add, 2017.02.07 + // + " AND KTCH_SYS_CD = '" + cKPSItem.sKtchSysCd + "' \n" + // + " AND SEQ = " + cKPSItem.nSeq + " \n" + // + "IF @@ROWCOUNT = 0 \n" + // + " INSERT INTO POSMST..MST_KPS_ORD_MSG ( \n" + // //+ " ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD, SEQ \n" + // //+ " ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n" // Add, 2017.02.07 + // + " TRAIN_MODE_YN, ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n" // Add, 2017.03.03, 연습모드 + // + " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM \n" + // + " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV \n" + // + " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED \n" + + // //+ " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD, KTCH_PRINTER_BAK1 \n" + // //+ " , KTCH_PRINTER_BAK2, KTCH_PRINTER_BAK3, KTCH_PRINTER_BAK4, KTCH_PRINTER_BAK5, KTCH_PRINTER_BAK6 \n" + // + " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD \n" + + // + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n" + // + " , MSG \n" + // + " , KTCH_MSG \n" // Add, 2017.03.21 + // + " , ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + // + " , UPD_DT, REG_DT \n" + // + " ) VALUES ( \n" + // + " '" + cKPSItem.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + // + " , '" + cKPSItem.sOrderType + "' \n" + // + " , '" + cKPSItem.sFloorCd + "' \n" + // + " , '" + cKPSItem.sTableNo + "' \n" + + // + " , '" + cKPSItem.sSubShopCd + "' \n" // Add, 2017.02.07 + // + " , '" + cKPSItem.sKtchSysCd + "' \n" + + // + " , " + cKPSItem.nSeq + " \n" + // + " , '" + cKPSItem.sOrderNo + "' \n" + // + " , '" + cKPSItem.sPosType + "' \n" + // + " , '" + cKPSItem.sItemCd + "' \n" + // + " , '" + cKPSItem.sItemDiv + "' \n" + // + " , N'" + cKPSItem.sItemNm + "' \n" + // + " , " + cKPSItem.nQty + " \n" + // + " , '" + cKPSItem.sPackDiv + "' \n" + // + " , '" + cKPSItem.sSetMenuCd + "' \n" + // + " , '" + cKPSItem.sOrdTime + "' \n" + // + " , '" + cKPSItem.sCancelDiv + "' \n" + + // + " , '" + cKPSItem.sSendYn + "' \n" + + // + " , '" + cKPSItem.sResendYn + "' \n" + // + " , '" + cKPSItem.sKtchSysUseDiv + "' \n" + // + " , " + cKPSItem.nKpsComPort + " \n" + // + " , " + cKPSItem.nKpsComBaudrate + " \n" + // + " , '" + cKPSItem.sKpsOposName + "' \n" + // + " , '" + cKPSItem.sKpsIp + "' \n" + // + " , '" + cKPSItem.sKpsPort + "' \n" + // + " , '" + cKPSItem.sErrorCd + "' \n" + // + " , '" + cKPSItem.sFiller1 + "' \n" + // + " , '" + cKPSItem.sFiller2 + "' \n" + // + " , '" + cKPSItem.sFiller3 + "' \n" + // + " , '" + cKPSItem.sFiller4 + "' \n" + // + " , '" + cKPSItem.sFiller5 + "' \n" + // + " , N'" + ConvertDBStr(cKPSItem.sItemMemo) + "' \n" // Add, 2017.03.21 + // + " , N'" + ConvertDBStr(cKPSItem.sKtchMemo) + "' \n" + // + " , N'" + ConvertDBStr(cKPSItem.sOrdPicNm) + "' \n" // Add, 2017.03.28, 주문담당자 + // + " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n" + // + " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ) " + // ; + #endregion + + #region ### POSMST..MST_KPS_ORD_MSG + + sql[0] = " INSERT INTO POSMST..MST_KPS_ORD_MSG ( \n" + + " TRAIN_MODE_YN, ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n" // Add, 2017.03.03, 연습모드 + + " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM \n" + + " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV \n" + + " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED \n" + + " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD \n" + + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n" + + " , MSG \n" + + " , KTCH_MSG \n" // Add, 2017.03.21 + + " , ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + + " , ORD_POS_NO \n" // Add, 2017.04.10 + + " , UPD_DT, REG_DT \n" + //#20180515 KPS 출력시 라벨프린터 출력 start + + " , LBLSEND_YN \n" + //#20180515 KPS 출력시 라벨프린터 출력 end + + " ) SELECT \n" + + " '" + cKPSItem.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + + " , '" + cKPSItem.sOrderType + "' \n" + + " , '" + cKPSItem.sFloorCd + "' \n" + + " , '" + cKPSItem.sTableNo + "' \n" + + " , '" + cKPSItem.sSubShopCd + "' \n" // Add, 2017.02.07 + + " , '" + cKPSItem.sKtchSysCd + "' \n" + //+ " , " + cKPSItem.nSeq + " \n" + + " , (SELECT ISNULL(MAX(SEQ), 0) + 1 FROM POSMST..MST_KPS_ORD_MSG \n" + + " WHERE TRAIN_MODE_YN = '" + cKPSItem.sTrainMode + "' \n" + + " AND ORD_DIV = '" + cKPSItem.sOrderType + "' \n" + + " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' \n" + + " AND TBL_NO = '" + cKPSItem.sTableNo + "' \n" + + " AND SUB_STOR_CD = '" + cKPSItem.sSubShopCd + "' \n" + + " AND KTCH_SYS_CD = '" + cKPSItem.sKtchSysCd + "') \n" + + " , '" + cKPSItem.sOrderNo + "' \n" + + " , '" + cKPSItem.sPosType + "' \n" + + " , '" + cKPSItem.sItemCd + "' \n" + + " , '" + cKPSItem.sItemDiv + "' \n" + + " , N'" + cKPSItem.sItemNm + "' \n" + + " , " + cKPSItem.nQty + " \n" + + " , '" + cKPSItem.sPackDiv + "' \n" + + " , '" + cKPSItem.sSetMenuCd + "' \n" + + " , '" + cKPSItem.sOrdTime + "' \n" + + " , '" + cKPSItem.sCancelDiv + "' \n" + + " , '" + cKPSItem.sSendYn + "' \n" + + " , '" + cKPSItem.sResendYn + "' \n" + + " , '" + cKPSItem.sKtchSysUseDiv + "' \n" + + " , " + cKPSItem.nKpsComPort + " \n" + + " , " + cKPSItem.nKpsComBaudrate + " \n" + + " , '" + cKPSItem.sKpsOposName + "' \n" + + " , '" + cKPSItem.sKpsIp + "' \n" + + " , '" + cKPSItem.sKpsPort + "' \n" + + " , '" + cKPSItem.sErrorCd + "' \n" + + " , '" + cKPSItem.sFiller1 + "' \n" + + " , '" + cKPSItem.sFiller2 + "' \n" + + " , '" + cKPSItem.sFiller3 + "' \n" + + " , '" + cKPSItem.sFiller4 + "' \n" + + " , '" + cKPSItem.sFiller5 + "' \n" + + " , N'" + ConvertDBStr(cKPSItem.sItemMemo) + "' \n" // Add, 2017.03.21 + + " , N'" + ConvertDBStr(cKPSItem.sKtchMemo) + "' \n" + + " , N'" + ConvertDBStr(cKPSItem.sOrdPicNm) + "' \n" // Add, 2017.03.28, 주문담당자 + + " , '" + cKPSItem.sOrdPosNo + "' \n" // Add, 2017.04.10 + + " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n" + + " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n" + //#20180515 KPS 출력시 라벨프린터 출력 start + + " , '" + cKPSItem.sLblSendYn + "' \n" + //#20180515 KPS 출력시 라벨프린터 출력 end + ; + #endregion + + #region ### POSMST..MST_KTCH_ORD_MSG + sql[1] = "UPDATE POSMST..MST_KTCH_ORD_MSG \n" + + " SET SEND_YN = '1' \n" + + " WHERE TRAIN_MODE_YN = '" + cKPSItem.sTrainMode + "' \n" + + " AND ORD_DIV = '" + cKPSItem.sOrderType + "' \n" + + " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' \n" + + " AND TBL_NO = '" + cKPSItem.sTableNo + "' \n" + + " AND SEQ = " + cKPSItem.nSeq + " \n" + ; + #endregion + + if (sqlDb.DBExecuteNonQuery(sql, CommandType.Text, (SqlParameter[])null) != UserCom.OK) + { + // Rollback + sqlDb.DBTransactionRollback(); + return false; + } + } + // Commit + sqlDb.DBTransactionCommit(); + } + + bRet = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + + private void GetKPSSendItem(ref Hashtable htKPSSendingItem) + { + string sQuery = string.Empty; + + DataTable dtData = null; + + try + { + #region (주석) 복합매장 적용 이전 + //sQuery = " SELECT ORD_DIV, FLOOR_CD, TBL_NO, KTCH_SYS_CD, SEQ "; + //sQuery += " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM "; + //sQuery += " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV "; + //sQuery += " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED "; + //sQuery += " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD, KTCH_PRINTER_BAK1, KTCH_PRINTER_BAK2 "; + //sQuery += " , KTCH_PRINTER_BAK3, KTCH_PRINTER_BAK4, KTCH_PRINTER_BAK5, KTCH_PRINTER_BAK6, FILLER1 "; + //sQuery += " , FILLER2, FILLER3, FILLER4, FILLER5 "; + //sQuery += " , MSG "; + //sQuery += " FROM POSMST..MST_KPS_ORD_MSG "; + //sQuery += " WHERE SEND_YN = '0' "; + //sQuery += " ORDER BY KTCH_SYS_CD, ORD_DIV, FLOOR_CD, TBL_NO, CANCEL_DIV, SEQ "; + #endregion + + #region (주석) 연습모드 적용 이전, 2017.03.03 + //sQuery = "SELECT ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n" + // + " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM \n" + // + " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV \n" + // + " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED \n" + // + " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD \n" + // + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, MSG \n" + // + " FROM POSMST..MST_KPS_ORD_MSG \n" + // + " WHERE SEND_YN = '0' \n" + // + " ORDER BY SUB_STOR_CD, KTCH_SYS_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ \n" + // ; + #endregion + + #region (주석) + // Mod, 2017.03.03, 연습모드 + //sQuery = "SELECT TRAIN_MODE_YN, ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n" + // + " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM \n" + // + " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV \n" + // + " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED \n" + // + " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD \n" + // + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, MSG, KTCH_MSG \n" + // + " , ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + // + " FROM POSMST..MST_KPS_ORD_MSG \n" + // + " WHERE SEND_YN = '0' \n" + // + " ORDER BY TRAIN_MODE_YN, SUB_STOR_CD, KTCH_SYS_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ \n" + // ; + #endregion + + #region (주석) 이전코드 2017.09.06 + /* + sQuery = "SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.SEQ \n" + + " , A.ORDER_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV \n" + + " , A.SEND_YN, A.RESEND_YN, A.KTCH_SYS_USE_DIV, A.KTCH_PRINTER_COMM_PORT, A.KTCH_PRINTER_COMM_SPEED \n" + + " , A.KTCH_PRINTER_OPOS_NM, A.KTCH_PRINTER_IP, A.KTCH_PRINTER_PORT, A.ERROR_CD \n" + + " , A.FILLER1, A.FILLER2, A.FILLER3, A.FILLER4, A.FILLER5, A.MSG \n" + + " , B.POS_NO \n" // Add, 2017.06.13, POS별 주방프린터 설정 + + " , A.KTCH_MSG \n" + + " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + + " , B.KTCH_SYS_NM \n" // Add, 2017.04.07 + + " , A.ORD_POS_NO \n" // Add, 2017.04.10 + + " FROM POSMST..MST_KPS_ORD_MSG A \n" + + " LEFT JOIN POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n" + + " ON A.SUB_STOR_CD = B.SUB_STOR_CD \n" + + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n" + + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" // Add, 2017.06.12 POS별 주방프린터 설정 + + " WHERE A.SEND_YN = '0' \n" + + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10 + + " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n" + ; + */ +#endregion + + sQuery = "SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.SEQ \n" + + " , A.ORDER_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n" + + " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV \n" + + " , A.SEND_YN, A.RESEND_YN, A.KTCH_SYS_USE_DIV, A.KTCH_PRINTER_COMM_PORT, A.KTCH_PRINTER_COMM_SPEED \n" + + " , A.KTCH_PRINTER_OPOS_NM, A.KTCH_PRINTER_IP, A.KTCH_PRINTER_PORT, A.ERROR_CD \n" + + " , A.FILLER1, A.FILLER2, A.FILLER3, A.FILLER4, A.FILLER5, A.MSG \n" + + " , B.POS_NO \n" // Add, 2017.06.13, POS별 주방프린터 설정 + + " , A.KTCH_MSG \n" + + " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자 + + " , B.KTCH_SYS_NM \n" // Add, 2017.04.07 + + " , A.ORD_POS_NO \n" // Add, 2017.04.10 + + " , C.ITEM_INFO \n" // Add, 2017.09.06 레시피 추가 + + " FROM POSMST..MST_KPS_ORD_MSG A \n" + + " LEFT JOIN POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n" + + " ON A.SUB_STOR_CD = B.SUB_STOR_CD \n" + + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n" + + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" // Add, 2017.06.12 POS별 주방프린터 설정 + + " LEFT JOIN POSMST..MST_KTCH_ITEM_INFO C WITH(NOLOCK) \n" + + " ON A.ITEM_CD = C.ITEM_CD \n" + + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + + " WHERE A.SEND_YN = '0' \n" + + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10 + //#20171102 start + + //#20171103 주방영수증 출력시 부가메뉴가 위로 출력되는 증상 start + //기존 + //+ " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ DESC \n"; + //변경 + + " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n"; + //#20171103 주방영수증 출력시 부가메뉴가 위로 출력되는 증상 end + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + { + return; + } + + string itemKey = string.Empty; + + Hashtable htKPSSendingItemTemp = new Hashtable(); + + DataRow[] arRows = null; + arRows = dtData.Select("POS_NO = '" + m_cPosStatus.Base.PosNo + "'"); + if (arRows.Length == 0) + arRows = dtData.Select("POS_NO = '00'"); + + //foreach (DataRow dr in dtData.Rows) + foreach (DataRow dr in arRows) + { + KPSItem cKPSItem = new KPSItem(); + + cKPSItem.sTrainMode = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); // Add, 2017.03.03, 연습모드 + + cKPSItem.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV"); + cKPSItem.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD"); + cKPSItem.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO"); + + cKPSItem.sSubShopCd = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"); // Add, 2017.02.07 + cKPSItem.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"); + cKPSItem.sKtchSysNm = CmUtil.GetDataRowStr(dr, "KTCH_SYS_NM"); // Add, 2017.04.07 + + cKPSItem.nSeq = CmUtil.GetDataRowInt(dr, "SEQ"); + cKPSItem.sOrderNo = CmUtil.GetDataRowStr(dr, "ORDER_NO"); + cKPSItem.sPosType = CmUtil.GetDataRowStr(dr, "POS_TYPE"); + cKPSItem.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD"); + cKPSItem.sItemDiv = CmUtil.GetDataRowStr(dr, "ITEM_DIV"); + cKPSItem.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM"); + cKPSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY"); + cKPSItem.sPackDiv = CmUtil.GetDataRowStr(dr, "PACK_DIV"); + cKPSItem.sSetMenuCd = CmUtil.GetDataRowStr(dr, "SET_MENU_CD"); + cKPSItem.sOrdTime = CmUtil.GetDataRowStr(dr, "ORD_TIME"); + cKPSItem.sCancelDiv = CmUtil.GetDataRowStr(dr, "CANCEL_DIV"); + cKPSItem.sResendYn = CmUtil.GetDataRowStr(dr, "RESEND_YN"); + cKPSItem.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV"); + cKPSItem.nKpsComPort = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_PORT"); + cKPSItem.nKpsComBaudrate = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_SPEED"); + cKPSItem.sKpsOposName = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_OPOS_NM"); + cKPSItem.sKpsIp = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_IP"); + cKPSItem.sKpsPort = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_PORT"); + cKPSItem.sErrorCd = CmUtil.GetDataRowStr(dr, "ERROR_CD"); + cKPSItem.sFiller1 = CmUtil.GetDataRowStr(dr, "FILLER1"); + cKPSItem.sFiller2 = CmUtil.GetDataRowStr(dr, "FILLER2"); + cKPSItem.sFiller3 = CmUtil.GetDataRowStr(dr, "FILLER3"); + cKPSItem.sFiller4 = CmUtil.GetDataRowStr(dr, "FILLER4"); + cKPSItem.sFiller5 = CmUtil.GetDataRowStr(dr, "FILLER5"); + + //cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "MSG"); + cKPSItem.sItemMemo = CmUtil.GetDataRowStr(dr, "MSG"); // Mod, 2017.03.21 + cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "KTCH_MSG"); // Add, 2017.03.21 + cKPSItem.sOrdPicNm = CmUtil.GetDataRowStr(dr, "ORD_PIC_NM"); // Add, 2017.03.27, 주문담당자 + cKPSItem.sOrdPosNo = CmUtil.GetDataRowStr(dr, "ORD_POS_NO"); // Add, 2017.04.10 + //2017.09.06 레시피 추가. + cKPSItem.sRecipe = CmUtil.GetDataRowStr(dr, "ITEM_INFO"); // Add, 2017.09.06 + + cKPSItem.sSendYn = "0"; + + // Mod, 2017.03.03, 연습모드 + //string checkKey = cKPSItem.sSubShopCd + cKPSItem.sKtchSysCd + cKPSItem.sFloorCd + cKPSItem.sTableNo; + string checkKey = cKPSItem.sTrainMode + cKPSItem.sSubShopCd + cKPSItem.sKtchSysCd + cKPSItem.sFloorCd + cKPSItem.sTableNo; + if (itemKey != checkKey) + { + if (htKPSSendingItemTemp.Count != 0) + { + htKPSSendingItem.Add(htKPSSendingItem.Count, htKPSSendingItemTemp); + } + itemKey = checkKey; + + htKPSSendingItemTemp = new Hashtable(); + } + + htKPSSendingItemTemp.Add(htKPSSendingItemTemp.Count, cKPSItem); + } + + if (htKPSSendingItemTemp.Count != 0) + { + htKPSSendingItem.Add(htKPSSendingItem.Count, htKPSSendingItemTemp); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 주방 주문서 출력 + /// + /// + /// + /// + private void KPSPrintProc(ref Hashtable htKPSSendingItem, ref Hashtable htKtchDeviceStatus ,ref string ktchErrorCode) + { + try + { + var nReturn = 0; + var nPrintOkIndex = 0; + var bKtchDeviceStatusSerchFlag = false; + + //string sCancelFlag = string.Empty; + //string sResendFlag = string.Empty; + + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + Hashtable htKPSSendingItemTemp = (Hashtable)htKPSSendingItem[nLoop]; + + if (htKPSSendingItemTemp.Count == 0) + { + continue; + } + + KPSItem cKPSItem = (KPSItem)htKPSSendingItemTemp[0]; + var sTrainMode = cKPSItem.sTrainMode; // Add, 2017.03.03, 연습모드 + var sSubShopCd = cKPSItem.sSubShopCd; + var sKtchSysCd = cKPSItem.sKtchSysCd; + var sKtchUseDiv = cKPSItem.sKtchSysUseDiv; + var nKpsComPort = cKPSItem.nKpsComPort; + var nKpsComBaudrate = cKPSItem.nKpsComBaudrate; + var sKpsIp = cKPSItem.sKpsIp; + var sKpsPort = cKPSItem.sKpsPort; + var sResendFlag = "0"; + + // Add, 2017.02.14, 주방프린트와 영수증프린트(시리얼)가 동일장비 인경우 + if (m_cDevStatus.Printer.UseYn == true) + { + bool isEquals = true; + + if (m_cPosStatus.Base.OlePosPrinterController != PosConst.POS_DEVICE_CONTROLLER.RS232) isEquals = false; + if (cKPSItem.sKtchSysUseDiv != PosConst.KTCH_SYS_USE_DIV.RS232) isEquals = false; + if (m_cPosStatus.Base.OlePosPrinterSerialPortNumber.ToUpper().Trim() != "COM" + cKPSItem.nKpsComPort.ToString()) isEquals = false; + + if (isEquals) + { + for (var i = 0; i < htKPSSendingItemTemp.Count; i ++) + { + ((KPSItem)htKPSSendingItemTemp[i]).sSendYn = "7"; + } + if (string.IsNullOrWhiteSpace(ktchErrorCode)) ktchErrorCode = "XXXX"; + + continue; + } + } + + // 지정취소 + var sCancelFlag = cKPSItem.sCancelDiv; + + // Add, 2017.02.10, 반복출력횟수 + var prtCnt = CmUtil.IntParse(cKPSItem.sFiller1); + if (prtCnt == 0) prtCnt = 1; + + nPrintOkIndex = -1; + if (sKtchUseDiv == PosConst.KTCH_SYS_USE_DIV.RS232) // Serial + { + nReturn = KPSSerialPrintProc(sCancelFlag, sResendFlag, nKpsComPort, nKpsComBaudrate, prtCnt, ref nPrintOkIndex, ref htKPSSendingItemTemp); + } + else if (sKtchUseDiv == PosConst.KTCH_SYS_USE_DIV.SOCK) // LAN + { + nReturn = KPSLanPrintProc(sCancelFlag, sResendFlag, sKpsIp, sKpsPort, prtCnt, ref nPrintOkIndex, ref htKPSSendingItemTemp); + } + + bKtchDeviceStatusSerchFlag = false; + for (int i = 0; i < htKtchDeviceStatus.Count; i++) + { + KTCH_SYS_STATUS cKtchSysStatus = (KTCH_SYS_STATUS)htKtchDeviceStatus[i]; + + //if(cKtchSysStatus.sKtchSysCd == sKtchSysCd) + if (cKtchSysStatus.sSubShopCd == sSubShopCd || cKtchSysStatus.sKtchSysCd == sKtchSysCd) + { + cKtchSysStatus.nErrorCd = nReturn; + htKtchDeviceStatus[i] = cKtchSysStatus; + bKtchDeviceStatusSerchFlag = true; + break; + } + } + + if (bKtchDeviceStatusSerchFlag == false) + { + KTCH_SYS_STATUS cKtchSysStatus = new KTCH_SYS_STATUS(); + cKtchSysStatus.sSubShopCd = sSubShopCd; + cKtchSysStatus.sKtchSysCd = sKtchSysCd; + cKtchSysStatus.nErrorCd = nReturn; + htKtchDeviceStatus.Add(htKtchDeviceStatus.Count, cKtchSysStatus); + } + + if (nReturn != 0 && nPrintOkIndex >= 0) + { + for (int i = 0; i <= nPrintOkIndex; i++) + { + if (htKPSSendingItemTemp.Contains(i) == true) + { + KPSItem cKPSTemp = (KPSItem)htKPSSendingItemTemp[i]; + cKPSTemp.sSendYn = "1"; + cKPSTemp.sErrorCd = "0000"; + htKPSSendingItemTemp[i] = cKPSTemp; + } + } + } + + if (nReturn == 0) // 정상 + { + for (int i = 0; i < htKPSSendingItemTemp.Count; i++) + { + if (htKPSSendingItemTemp.Contains(i) == true) + { + KPSItem cKPSTemp = (KPSItem)htKPSSendingItemTemp[i]; + cKPSTemp.sSendYn = "1"; + cKPSTemp.sErrorCd = "0000"; + htKPSSendingItemTemp[i] = cKPSTemp; + } + } + } + else // 에러 + { + for (int i = nPrintOkIndex + 1; i < htKPSSendingItemTemp.Count; i++) + { + KPSItem cKPSTemp = (KPSItem)htKPSSendingItemTemp[i]; + + // Mod, 2017.02.14 + //cKPSTemp.sSendYn = "0"; + cKPSTemp.sSendYn = (cKPSTemp.sSendYn == "0") ? "8" : cKPSTemp.sSendYn; + + if (string.IsNullOrWhiteSpace(cKPSTemp.sErrorCd) || cKPSTemp.sErrorCd == "0000") + { + switch (nReturn) + { + case -1: cKPSTemp.sErrorCd = "0001"; break; // Print Open Error + case -2: cKPSTemp.sErrorCd = "0002"; break; // Print Claim Error + case -3: cKPSTemp.sErrorCd = "0003"; break; // Print Power Off Error + case -4: cKPSTemp.sErrorCd = "0004"; break; // Cover Open Error + case -5: cKPSTemp.sErrorCd = "0005"; break; // No Paper Error + default: cKPSTemp.sErrorCd = "9999"; break; // Etc Error + } + } + + // Add, 2017.02.15 + //ktchErrorCode = cKPSTemp.sErrorCd; + ktchErrorCode = string.Format("{0}|{1}|{2}", cKPSTemp.sErrorCd, cKPSTemp.sKtchSysCd, cKPSTemp.sKtchSysNm); + + htKPSSendingItemTemp[i] = cKPSTemp; + } + } + + htKPSSendingItem[nLoop] = htKPSSendingItemTemp; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + /// + /// 주방 메시지 출력 + /// + /// + /// + /// + private void KPSOrderMessagePrintProc(ref Hashtable htKPSSendingItem, ref Hashtable htKtchDeviceStatus, ref string ktchErrorCode) + { + try + { + var nPrintOkIndex = 0; + var nReturn = 0; + + var bKtchDeviceStatusSearchFlag = false; + htKtchDeviceStatus = new Hashtable(); + + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + Hashtable htKPSSendingITemp = (Hashtable)htKPSSendingItem[nLoop]; + if (htKPSSendingITemp.Count == 0) continue; + + KPSOrderMessage cKPSOrderMessage = (KPSOrderMessage)htKPSSendingITemp[0]; + + var sSubShopCd = cKPSOrderMessage.sSubShopCd; // Add, 2017.02.07 + var sKtchSysCd = cKPSOrderMessage.sKtchSysCd; + var sKtchSysUseDiv = cKPSOrderMessage.sKtchSysUseDiv; + var sKpsIp = cKPSOrderMessage.sKpsIp; + var sKpsPort = cKPSOrderMessage.sKpsPort; + var nKpsComPort = cKPSOrderMessage.nKpsComPort; + var nKpsComBaudrate = cKPSOrderMessage.nKpsComBaudrate; + var sResendFlag = "0"; + + // Add, 2017.02.14, 주방프린트와 영수증프린트(시리얼)가 동일장비 인경우 + if (m_cDevStatus.Printer.UseYn == true) + { + bool isEquals = true; + + if (m_cPosStatus.Base.OlePosPrinterController != PosConst.POS_DEVICE_CONTROLLER.RS232) isEquals = false; + if (cKPSOrderMessage.sKtchSysUseDiv != PosConst.KTCH_SYS_USE_DIV.RS232) isEquals = false; + if (m_cPosStatus.Base.OlePosPrinterSerialPortNumber.ToUpper().Trim() != "COM" + cKPSOrderMessage.nKpsComPort.ToString()) isEquals = false; + + if (isEquals) + { + for (var i = 0; i < htKPSSendingITemp.Count; i++) + { + ((KPSOrderMessage)htKPSSendingITemp[i]).sSendYn = "7"; + } + if (string.IsNullOrWhiteSpace(ktchErrorCode)) ktchErrorCode = "XXXX"; + + continue; + } + } + + nPrintOkIndex = -1; + + if (sKtchSysUseDiv == PosConst.KTCH_SYS_USE_DIV.RS232) // Serial + { + nReturn = KPSOrderMessageSerialPrintProc(sResendFlag, nKpsComPort, nKpsComBaudrate, cKPSOrderMessage.printCount, ref nPrintOkIndex, ref htKPSSendingITemp); + } + else if (sKtchSysUseDiv == PosConst.KTCH_SYS_USE_DIV.SOCK) // LAN + { + nReturn = KPSOrderMessageLanPrintProc(sResendFlag, sKpsIp, sKpsPort, cKPSOrderMessage.printCount, ref nPrintOkIndex, ref htKPSSendingITemp); + } + + bKtchDeviceStatusSearchFlag = false; + for (int i = 0; i < htKtchDeviceStatus.Count; i++) + { + KTCH_SYS_STATUS cKtchSysStatus = (KTCH_SYS_STATUS)htKtchDeviceStatus[i]; + + //if (cKtchSysStatus.sKtchSysCd == sKtchSysCd) + if (cKtchSysStatus.sSubShopCd != sSubShopCd || cKtchSysStatus.sKtchSysCd != sKtchSysCd) // Add, 2017.02.07 + { + cKtchSysStatus.nErrorCd = nReturn; + htKtchDeviceStatus[i] = cKtchSysStatus; + bKtchDeviceStatusSearchFlag = true; + break; + } + } + + if (bKtchDeviceStatusSearchFlag == false) + { + KTCH_SYS_STATUS cKtchSysStatus = new KTCH_SYS_STATUS(); + cKtchSysStatus.sSubShopCd = sSubShopCd; + cKtchSysStatus.sKtchSysCd = sKtchSysCd; + cKtchSysStatus.nErrorCd = nReturn; + htKtchDeviceStatus.Add(htKtchDeviceStatus.Count, cKtchSysStatus); + } + + if (nReturn != 0 && nPrintOkIndex >= 0) + { + for (var i = 0; i <= nPrintOkIndex; i++) + { + if (htKPSSendingITemp.Contains(i)) + { + KPSOrderMessage cTemp = (KPSOrderMessage)htKPSSendingITemp[i]; + cTemp.sSendYn = "1"; + cTemp.sErrorCd = "0000"; + htKPSSendingITemp[i] = cTemp; + } + } + } + + if (nReturn == 0) // 정상 + { + for (var i = 0; i < htKPSSendingITemp.Count; i++) + { + if (htKPSSendingITemp.Contains(i)) + { + KPSOrderMessage cTemp = (KPSOrderMessage)htKPSSendingITemp[i]; + cTemp.sSendYn = "1"; + cTemp.sErrorCd = "0000"; + htKPSSendingITemp[i] = cTemp; + } + } + } + else + { + for (var i = nPrintOkIndex + 1; i < htKPSSendingITemp.Count; i++) + { + KPSOrderMessage cTemp = (KPSOrderMessage)htKPSSendingITemp[i]; + + // Mod, 2017.02.14 + //cTemp.sSendYn = "0"; + cTemp.sSendYn = (cTemp.sSendYn == "0") ? "8" : cTemp.sSendYn; + + if (string.IsNullOrWhiteSpace(cTemp.sErrorCd) || cTemp.sErrorCd == "0000") + { + switch (nReturn) + { + case -1: cTemp.sErrorCd = "0001"; break; // Print Open Error + case -2: cTemp.sErrorCd = "0002"; break; // Print Claim Error + case -3: cTemp.sErrorCd = "0003"; break; // Print Power Off Error + case -4: cTemp.sErrorCd = "0004"; break; // Cover Open Error + case -5: cTemp.sErrorCd = "0005"; break; // No Paper Error + default: cTemp.sErrorCd = "9999"; break; // Etc Error + } + } + + // Add, 2017.02.15 + //ktchErrorCode = cTemp.sErrorCd; + ktchErrorCode = string.Format("{0}|{1}|{2}", cTemp.sErrorCd, cTemp.sKtchSysCd, cTemp.sKtchSysNm); + + htKPSSendingITemp[i] = cTemp; + } + } + htKPSSendingItem[nLoop] = htKPSSendingITemp; + + if (nReturn != 0) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + string.Format("Print Error = [{0}][{1}]", cKPSOrderMessage.sKtchSysUseDiv, nReturn)); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + + /// + /// KPS Status Update + /// + /// + /// + private void KPSPrintStatusUpdate(Hashtable htKPSSendingItem, Hashtable htKtchDeviceStatus) + { + try + { + // KPS 인쇄 데이터 전송상태 갱신 + for(int nLoop = 0;nLoop < htKPSSendingItem.Count;nLoop++) + { + Hashtable htKPSSendingItemTemp = (Hashtable)htKPSSendingItem[nLoop]; + + for(int nLoop2 = 0;nLoop2 < htKPSSendingItemTemp.Count;nLoop2++) + { + KPSItem cKPSItem = (KPSItem)htKPSSendingItemTemp[nLoop2]; + + string sQuery = "UPDATE POSMST..MST_KPS_ORD_MSG \n" + + " SET SEND_YN = '" + cKPSItem.sSendYn + "' \n" + + " , RESEND_YN = '" + cKPSItem.sResendYn + "' \n" + + " , ERROR_CD = '" + cKPSItem.sErrorCd + "' \n" + + " WHERE TRAIN_MODE_YN = '" + cKPSItem.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + + " AND ORD_DIV = '" + cKPSItem.sOrderType + "' \n" + + " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' \n" + + " AND TBL_NO = '" + cKPSItem.sTableNo + "' \n" + + " AND SUB_STOR_CD = '" + cKPSItem.sSubShopCd + "' \n" // Add, 2017.02.07 + + " AND KTCH_SYS_CD = '" + cKPSItem.sKtchSysCd + "' \n" + + " AND SEQ = " + cKPSItem.nSeq.ToString() + "\n" + ; + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null, true) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Query=" + sQuery); + } + } + } + + for(int nLoop = 0;nLoop < htKtchDeviceStatus.Count;nLoop++) + { + KTCH_SYS_STATUS cKtchSysStatus = (KTCH_SYS_STATUS)htKtchDeviceStatus[nLoop]; + + string sErrorCd = "0000"; + if(cKtchSysStatus.nErrorCd != 0) + { + switch(cKtchSysStatus.nErrorCd) + { + case -1: sErrorCd = "0001"; break; // Print Open Error + case -2: sErrorCd = "0002"; break; // Print Claim Error + case -3: sErrorCd = "0003"; break; // Print Power Off Error + case -4: sErrorCd = "0004"; break; // Cover Open Error + case -5: sErrorCd = "0005"; break; // No Paper Error + default: sErrorCd = "9999"; break; // Etc Error + } + } + string sQuery = "UPDATE POSMST..MST_KTCH_DEVICE \n" + + " SET FILLER1 = '" + sErrorCd + "' \n" + + " WHERE KTCH_SYS_CD = '" + cKtchSysStatus.sKtchSysCd + "' \n" + + " AND SUB_STOR_CD = '" + cKtchSysStatus.sSubShopCd + "' \n" // Add, 2017.02.07 + ; + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null, true) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Query=" + sQuery); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + private void KPSOrderMessagePrintStatusDelete(Hashtable htKPSSendingItem, Hashtable htKtchDeviceStatus) + { + try + { + for(var i = 0; i < htKPSSendingItem.Count;i++) + { + Hashtable htTemp = (Hashtable)htKPSSendingItem[i]; + + for (var j= 0; j < htTemp.Count; j++) + { + string sql = string.Empty; + KPSOrderMessage cKPSOrderMessage = (KPSOrderMessage)htTemp[j]; + if (cKPSOrderMessage.sSendYn != "1") + { + sql = "UPDATE POSMST..MST_KTCH_ORD_MSG_ADD \n" + + " SET SEND_YN = '" + cKPSOrderMessage.sSendYn + "' \n" + + " WHERE TRAIN_MODE_YN = '" + cKPSOrderMessage.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + + " AND ORD_DIV = '" + cKPSOrderMessage.sOrderType + "' \n" + + " AND FLOOR_CD = '" + cKPSOrderMessage.sFloorCd + "' \n" + + " AND TBL_NO = '" + cKPSOrderMessage.sTableNo + "' \n" + + " AND SEQ = " + cKPSOrderMessage.nSeq + " \n" + ; + } + else + { + sql = "DELETE FROM POSMST..MST_KTCH_ORD_MSG_ADD \n" + + " WHERE TRAIN_MODE_YN = '" + cKPSOrderMessage.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + + " AND ORD_DIV = '" + cKPSOrderMessage.sOrderType + "' \n" + + " AND FLOOR_CD = '" + cKPSOrderMessage.sFloorCd + "' \n" + + " AND TBL_NO = '" + cKPSOrderMessage.sTableNo + "' \n" + + " AND SEQ = " + cKPSOrderMessage.nSeq + " \n" + ; + } + + if(sqlDb.DBExecuteNonQuery(new string[] {sql}, CommandType.Text, (SqlParameter[])null, true) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Query=" + sql); + } + } + } + + for(int nLoop = 0;nLoop < htKtchDeviceStatus.Count;nLoop++) + { + KTCH_SYS_STATUS cKtchSysStatus = (KTCH_SYS_STATUS)htKtchDeviceStatus[nLoop]; + + string sErrorCode = "0000"; + if(cKtchSysStatus.nErrorCd != 0) + { + switch(cKtchSysStatus.nErrorCd) + { + case -1: sErrorCode = "0001"; break; // Print Open Error + case -2: sErrorCode = "0002"; break; // Print Claim Error + case -3: sErrorCode = "0003"; break; // Print Power Off Error + case -4: sErrorCode = "0004"; break; // Cover Open Error + case -5: sErrorCode = "0005"; break; // No Paper Error + default: sErrorCode = "9999"; break; // Etc Error + } + } + + string sQuery = " UPDATE POSMST..MST_KTCH_DEVICE \n" + + " SET FILLER1 = '" + sErrorCode + "' \n" + + " WHERE KTCH_SYS_CD = '" + cKtchSysStatus.sKtchSysCd + "' \n" + + " AND SUB_STOR_CD = '" + cKtchSysStatus.sSubShopCd + "' \n" // Add, 2017.02.07 + ; + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null, true) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Query=" + sQuery); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + /// + /// Get KPS Order Message + /// + /// + private void GetKPSOrderMessage(ref Hashtable htKPSSendingItem) + { + string sQuery = string.Empty; + + DataTable dtData = null; + + try + { + #region (주석) 복합매장 적용 이전 버전 + //sQuery = " SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.KTCH_SYS_CD "; + //sQuery += " , A.ITEM_CD, A.SHTCUT_ITEMNM, A.MSG_DIV, A.MSG1, A.MSG2 "; + //sQuery += " , A.MSG3, A.MSG_REG_TIME, B.KTCH_SYS_USE_DIV, B.KTCH_PRINTER_COMM_PORT, B.KTCH_PRINTER_COMM_SPEED "; + //sQuery += " , B.KTCH_PRINTER_OPOS_NM, B.KTCH_PRINTER_IP, B.KTCH_PRINTER_PORT, B.KTCH_PRINTER_BAK1, B.KTCH_PRINTER_BAK2 "; + //sQuery += " , B.KTCH_PRINTER_BAK3, B.KTCH_PRINTER_BAK4, B.KTCH_PRINTER_BAK5, B.KTCH_PRINTER_BAK6 "; + //sQuery += " FROM POSMST..MST_KTCH_ORD_MSG_ADD A "; + //sQuery += " , POSMST..MST_KTCH_DEVICE B "; + //sQuery += " WHERE A.SEND_YN = '0' "; + //sQuery += " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD "; + //sQuery += " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + //sQuery += " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + //sQuery += " AND B.KTCH_SYS_DIV = '1' "; + //sQuery += " ORDER BY B.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ "; + #endregion + + #region (주석) 연습모드 적용 이전 버전, 2017.03.03 + //sQuery = " SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.SUB_STOR_CD, A.KTCH_SYS_CD \n" + // + " , A.ITEM_CD, A.SHTCUT_ITEMNM, A.MSG_DIV, A.MSG1, A.MSG2 \n" + // + " , A.MSG3, A.MSG_REG_TIME, B.KTCH_SYS_USE_DIV, B.KTCH_PRINTER_COMM_PORT, B.KTCH_PRINTER_COMM_SPEED \n" + // + " , B.KTCH_PRINTER_OPOS_NM, B.KTCH_PRINTER_IP, B.KTCH_PRINTER_PORT, ISNULL(B.PRT_CNT, 1) PRT_CNT, A.REG_DT \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG_ADD A \n" + // + " , POSMST..MST_KTCH_DEVICE B \n" + // + " WHERE A.SEND_YN = '0' \n" + // + " AND A.SUB_STOR_CD = B.SUB_STOR_CD \n" // Add, 2017.02.06 + // + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n" + // + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND B.KTCH_SYS_DIV = '1' \n" + // + " AND B.KTCH_SYS_CD <> '99' \n" + // + " ORDER BY A.SUB_STOR_CD, B.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n" + // ; + #endregion + + #region (주석) + // Mod, 2017.03.03, 연습모드 + //sQuery = " SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.SUB_STOR_CD, A.KTCH_SYS_CD \n" + // + " , A.ITEM_CD, A.SHTCUT_ITEMNM, A.MSG_DIV, A.MSG1, A.MSG2 \n" + // + " , A.MSG3, A.MSG_REG_TIME, B.KTCH_SYS_USE_DIV, B.KTCH_PRINTER_COMM_PORT, B.KTCH_PRINTER_COMM_SPEED \n" + // + " , B.KTCH_PRINTER_OPOS_NM, B.KTCH_PRINTER_IP, B.KTCH_PRINTER_PORT, ISNULL(B.PRT_CNT, 1) PRT_CNT, A.REG_DT \n" + // + " FROM POSMST..MST_KTCH_ORD_MSG_ADD A \n" + // + " , POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n" + // + " WHERE A.SEND_YN = '0' \n" + // + " AND A.SUB_STOR_CD = B.SUB_STOR_CD \n" + // + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n" + // + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + // + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + // + " AND B.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n" + // + " AND B.KTCH_SYS_CD <> '99' \n" + // + " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, B.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n" + // ; + #endregion + + sQuery = " SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.SUB_STOR_CD, A.KTCH_SYS_CD \n" + + " , A.ITEM_CD, A.SHTCUT_ITEMNM, A.MSG_DIV, A.MSG1, A.MSG2 \n" + + " , A.MSG3, A.MSG_REG_TIME, B.KTCH_SYS_USE_DIV, B.KTCH_PRINTER_COMM_PORT, B.KTCH_PRINTER_COMM_SPEED \n" + + " , B.KTCH_PRINTER_OPOS_NM, B.KTCH_PRINTER_IP, B.KTCH_PRINTER_PORT, ISNULL(B.PRT_CNT, 1) PRT_CNT, A.REG_DT \n" + + " , B.KTCH_SYS_NM \n" + + " , A.ORD_POS_NO \n" + + " FROM POSMST..MST_KTCH_ORD_MSG_ADD A \n" + + " , POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n" + + " WHERE A.SEND_YN = '0' \n" + + " AND A.SUB_STOR_CD = B.SUB_STOR_CD \n" + + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n" + + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" + + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" // Add, 20170612 POS별 주방프린터 설정 + + " AND B.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n" + + " AND B.KTCH_SYS_CD <> '99' \n" + + " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, B.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n" + ; + + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + { + return; + } + + var itemKey = string.Empty; + + Hashtable htTemp = new Hashtable(); + foreach (DataRow dr in dtData.Rows) + { + KPSOrderMessage cKPSOrderMsg = new KPSOrderMessage(); + + cKPSOrderMsg.sTrainMode = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); // Add, 2017.03.03, 연습모드 + + cKPSOrderMsg.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV"); + cKPSOrderMsg.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD"); + cKPSOrderMsg.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO"); + cKPSOrderMsg.nSeq = CmUtil.GetDataRowInt(dr, "SEQ"); + + cKPSOrderMsg.sSubShopCd = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"); // Add, 2017.02.06 + cKPSOrderMsg.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"); + cKPSOrderMsg.sKtchSysNm = CmUtil.GetDataRowStr(dr, "KTCH_SYS_NM"); // Add, 2017.04.07 + + cKPSOrderMsg.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD"); + cKPSOrderMsg.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM"); + cKPSOrderMsg.sMsgId = CmUtil.GetDataRowStr(dr, "MSG_DIV"); + cKPSOrderMsg.sMsg1 = CmUtil.GetDataRowStr(dr, "MSG1"); + cKPSOrderMsg.sMsg2 = CmUtil.GetDataRowStr(dr, "MSG2"); + cKPSOrderMsg.sMsg3 = CmUtil.GetDataRowStr(dr, "MSG3"); + cKPSOrderMsg.sMsgRegTime = CmUtil.GetDataRowStr(dr, "MSG_REG_TIME"); + cKPSOrderMsg.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV"); + cKPSOrderMsg.nKpsComPort = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_PORT"); + cKPSOrderMsg.nKpsComBaudrate = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_SPEED"); + cKPSOrderMsg.sKpsOposName = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_OPOS_NM"); + cKPSOrderMsg.sKpsIp = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_IP"); + cKPSOrderMsg.sKpsPort = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_PORT"); + + cKPSOrderMsg.sSendYn = "0"; + + // Add, 2017.02.14, 반복출력횟수 + cKPSOrderMsg.printCount = CmUtil.GetDataRowInt(dr, "PRT_CNT"); + if (cKPSOrderMsg.printCount == 0) cKPSOrderMsg.printCount = 1; + + //cKPSOrderMsg.sKpsCdBackup1 = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_BAK1"); + //cKPSOrderMsg.sKpsCdBackup2 = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_BAK2"); + //cKPSOrderMsg.sKpsCdBackup3 = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_BAK3"); + //cKPSOrderMsg.sKpsCdBackup4 = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_BAK4"); + //cKPSOrderMsg.sKpsCdBackup5 = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_BAK5"); + //cKPSOrderMsg.sKpsCdBackup6 = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_BAK6"); + + // Add, 2017.02.14 + var temp = CmUtil.GetDataRowStr(dr, "REG_DT").Trim(); + cKPSOrderMsg.sRegDate = temp.Length > 8 ? temp.Substring(0, 8) : m_cPosStatus.Base.SaleDate; + + // Mod, 2017.02.10 + //htKPSSendingItem.Add(htKPSSendingItem.Count, cKPSOrderMsg); + //var checkKey = cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId; + //var checkKey = cKPSOrderMsg.sTrainMode + cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId; + + var checkKey = string.Empty; + switch (cKPSOrderMsg.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: + //case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: + checkKey = cKPSOrderMsg.sTrainMode + cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId + cKPSOrderMsg.sItemCd; + break; + case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: + default: + checkKey = cKPSOrderMsg.sTrainMode + cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId; + break; + } + + if (itemKey != checkKey) + { + if (htTemp.Count != 0) + { + htKPSSendingItem.Add(htKPSSendingItem.Count, htTemp); + } + + itemKey = checkKey; + + htTemp = new Hashtable(); + } + htTemp.Add(htTemp.Count, cKPSOrderMsg); + } + + if (htTemp.Count != 0) + { + htKPSSendingItem.Add(htKPSSendingItem.Count, htTemp); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + + /// + /// Get KPS Send Ok Count (미사용) + /// + /// + /// + /// + /// + /// + private int GetKpsSendOkCount(string sOrderType, string sFloorCd, string sTableNo) + { + int nKpsSendCount = 0; + string sDbSource = string.Empty; + string sDbCatalog = string.Empty; + string sDbUserId = string.Empty; + string sDbPassword = string.Empty; + DataTable dtData = null; + try + { + + string sQuery = string.Empty; + sQuery = " SELECT COUNT(1) AS COUNT"; + sQuery += " FROM POSMST..MST_KTCH_ORD_MSG "; + sQuery += " WHERE ORD_DIV = '" + sOrderType + "' "; + sQuery += " AND FLOOR_CD = '" + sFloorCd + "' "; + sQuery += " AND TBL_NO = '" + sTableNo + "' "; + sQuery += " AND SEND_YN = '1' "; + + // 조회 + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + { + nKpsSendCount = CmUtil.GetDataRowInt(dtData.Rows[0], "COUNT"); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + + return nKpsSendCount; + } + + private int KPSSerialPrintProc(string sCancelFlag, string sResendFlag, int iKpsComPort, int iKpsComBaudrate, int prtCount, ref int nPrintOkIndex, ref Hashtable htKPSSendingItem) + { + var iRet = -99; + + var sPrtBar1 = new string('-', 42); + var sPrtBar2 = new string('=', 42); + var sPrtDat1 = string.Empty; + var sPrtDat2 = string.Empty; + + SerialPrint cPrint = new SerialPrint(); + + try + { + nPrintOkIndex = -1; + + cPrint.DeviceOpen("COM" + iKpsComPort.ToString(), iKpsComBaudrate); + + if (cPrint.IsPortOpened == false) + { + cPrint.DeviceClose(); + return -9; + } + + // Cover Check + iRet = cPrint.PrinterStatusCheckBySerial("CHK1"); + if (iRet != UserCom.OK) + { + cPrint.DeviceClose(); + return -4; + } + + // Paper Check + iRet = cPrint.PrinterStatusCheckBySerial("CHK2"); + if (iRet != UserCom.OK) + { + cPrint.DeviceClose(); + return -5; + } + + for (var cnt = 0; cnt < prtCount; cnt++) + { + var itemKey = string.Empty; + var ktchMemo = string.Empty; + var orderNo1 = string.Empty; + var orderNo2 = string.Empty; + + // 주문상품 인쇄 + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + KPSItem cKPSItem = (KPSItem)htKPSSendingItem[nLoop]; + + // 이미 전송 완료 건 제외 + if (cKPSItem.sSendYn == "1") + { + continue; + } + + // Add, 2017.03.03, 연습모드 + //var checkKey = cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo; + var checkKey = cKPSItem.sTrainMode + cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo; + if (itemKey != checkKey) + { + //if (sOrgOrderType != "") + if (string.IsNullOrWhiteSpace(itemKey) == false) + { + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.CutPaper(4); + + // 인쇄 완료 인덱스 + nPrintOkIndex = nLoop - 1; + } + + // 원정보 설정 + itemKey = checkKey; + + // 제목 + sPrtDat1 = string.Format("<< {0} >>", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0154)); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_2, true); + + // 연습모드 // Add, 2017.03.03, + if (cKPSItem.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES) + { + sPrtDat1 = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + // 복합매장-서브매장명 + if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNm) == false) + { + sPrtDat1 = m_cPosStatus.Base.SubShopNm; + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + cPrint.TextPrint("", PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + // 반복횟수 + var prtCnt = prtCount > 1 ? string.Format(" ({0}/{1})", cnt + 1, prtCount) : string.Empty; + // 주문시간 + sPrtDat1 = string.Format("{0} : {1} {2} {3}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0155) + , m_cPosStatus.Global.DateToCulture(m_cPosStatus.Base.SaleDate) + , CmUtil.StrToTime(cKPSItem.sOrdTime) + , prtCnt); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + // 주문번호 + if (cKPSItem.sFiller2 == "2") + { + // 해피오더 + sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0158), cKPSItem.sOrderNo); + } + //else if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + //{ + // // 후불 + // sPrtDat1 = string.Format("{0} : {1}-{2}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0156), cKPSItem.sFloorCd, cKPSItem.sTableNo); + //} + else + { + sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0156), cKPSItem.sOrderNo); + } + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + // 주문담당자 + if (string.IsNullOrWhiteSpace(cKPSItem.sOrdPicNm) == false) + { + sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0189), cKPSItem.sOrdPicNm.Trim()); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + + // 인원 + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + { + sPrtDat1 = GetCustInfo(cKPSItem.sTrainMode, cKPSItem.sFloorCd, cKPSItem.sTableNo); + if (string.IsNullOrWhiteSpace(sPrtDat1) == false) + { + sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0157), sPrtDat1); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // 주문번호/테이블 + // Mod, 2017.05.08, 주분번호 후불=상단, 선불=하단 출력 + sPrtDat1 = string.Empty; + sPrtDat2 = string.Empty; + orderNo1 = string.Empty; + orderNo2 = string.Empty; + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + { + #region (주문번호 상단 출력) + + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && string.IsNullOrWhiteSpace(cKPSItem.sFiller2)) + { + sPrtDat1 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0148)); + sPrtDat2 = string.Format("{0}-{1}", GetFloorName(cKPSItem.sFloorCd), GetTableName(cKPSItem.sFloorCd, cKPSItem.sTableNo)); + } + else if (string.IsNullOrWhiteSpace(cKPSItem.sOrderNo) == false) + { + sPrtDat1 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097)); + sPrtDat2 = string.Format("{0}", cKPSItem.sOrderNo); + } + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + cPrint.TextPrint(sPrtDat2, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_2 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + #endregion + } + else + { + #region (주문번호 하단 출력) + + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && string.IsNullOrWhiteSpace(cKPSItem.sFiller2)) + { + orderNo1 = string.Format("{0}-{1}", GetFloorName(cKPSItem.sFloorCd), GetTableName(cKPSItem.sFloorCd, cKPSItem.sTableNo)); + orderNo2 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0148)); + + } + else if (string.IsNullOrWhiteSpace(cKPSItem.sOrderNo) == false) + { + orderNo1 = string.Format("{0}", cKPSItem.sOrderNo); + orderNo2 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097)); + } + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + #endregion + } + } + + // 상품/수량 + var sign = cKPSItem.sCancelDiv == "1" ? -1 : 1; + var type = GetAddOrderString(cKPSItem.sFiller3); + var qty = cKPSItem.nQty == 0 ? string.Empty : (sign * cKPSItem.nQty).ToString(); + sPrtDat1 = CmUtil.RPadH(cKPSItem.sItemNm, 30) + CmUtil.RPadH(type, 5) + CmUtil.LPadH(qty, 6); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + //2017.09.07 레시피 출력 + if(cKPSItem.sRecipe.ToString().Trim().Length > 0) + { + string Recipe = cKPSItem.sRecipe.Replace("@", "\r").Replace("$","\n").ToString(); + string[] RecipeData = Recipe.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.None); + + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + foreach(var dt in RecipeData) + { + cPrint.TextPrint(dt.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // Add, 2017.03.21, 상품메모 + if (string.IsNullOrWhiteSpace(cKPSItem.sItemMemo) == false) + { + var lst = this.GetParserMemo(cKPSItem.sItemMemo); + foreach (var msg in lst) + { + cPrint.TextPrint(" " + msg.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // Add, 2017.04.10, 상품구분라인 + var nextIdx = nLoop + 1; + if (nextIdx < htKPSSendingItem.Count) + { + var NextItemDiv = ((KPSItem)htKPSSendingItem[nextIdx]).sItemDiv; + switch (NextItemDiv) + { + case ItemConst.PLU_ITEM_DIV.NORMAL: + case ItemConst.PLU_ITEM_DIV.SET_MAIN: + case ItemConst.PLU_ITEM_DIV.SET_DIS: + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + } + + #region Mod, 2017.04.25, 주방메모 출력 + // Add, 2017.01.23 + // 주방프린터 수동출력(상품선택) 옵션시 주방메모 + //if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2") + //{ + // ktchMemo = cKPSItem.sKtchMemo; + //} + #endregion + ktchMemo = cKPSItem.sKtchMemo; + } + + // Add, 2017.01.23, 수동출력옵션 시 주방메모 출력 + if (string.IsNullOrWhiteSpace(ktchMemo) == false) + { + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("Memo: ", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + var lst = this.GetParserMemo(ktchMemo); + foreach (var msg in lst) + { + cPrint.TextPrint(" " + msg.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // Add, 2017.04.07 + if (string.IsNullOrWhiteSpace(orderNo1) == false) + { + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(orderNo1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_2 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + cPrint.TextPrint(orderNo2, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + // Cutting + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.CutPaper(4); + } + + // 인쇄 완료 인덱스 설정 + nPrintOkIndex = htKPSSendingItem.Count - 1; + + // Port Close + cPrint.DeviceClose(); + } + catch (Exception ex) + { + cPrint.DeviceClose(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + return -99; + } + + return 0; + } + + private int KPSOrderMessageSerialPrintProc(string sResendFlag, int iKpsComPort, int iKpsComBaudrate, int prtCount, ref int nPrintOkIndex, ref Hashtable htKPSOrderMessage) + { + var iRet = UserCom.NG; + + var sPrtBar1 = new string('-', 42); + var sPrtData = string.Empty; + + SerialPrint cPrint = new SerialPrint(); + + try + { + nPrintOkIndex = -1; + + iRet = cPrint.DeviceOpen("COM" + iKpsComPort.ToString(), iKpsComBaudrate); + if (iRet != UserCom.OK) + { + cPrint.DeviceClose(); + return -9; + } + + // Cover Check + iRet = cPrint.PrinterStatusCheckBySerial("CHK1"); + if (iRet != UserCom.OK) + { + cPrint.DeviceClose(); + return -4; + } + + // Paper Check + iRet = cPrint.PrinterStatusCheckBySerial("CHK2"); + if (iRet != UserCom.OK) + { + cPrint.DeviceClose(); + return -5; + } + + + for (var cnt = 0; cnt < prtCount; cnt++) + { + var itemKey = string.Empty; + + for (int nLoop = 0; nLoop < htKPSOrderMessage.Count; nLoop++) + { + KPSOrderMessage cKPSMessage = (KPSOrderMessage)htKPSOrderMessage[nLoop]; + + if (cKPSMessage.sSendYn == "1") + { + continue; + } + + var checkKey = cKPSMessage.sTrainMode + cKPSMessage.sOrderType + cKPSMessage.sFloorCd + cKPSMessage.sTableNo + cKPSMessage.sMsgId; + if (itemKey != checkKey) + { + if (itemKey != "") + { + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.CutPaper(4); + + // 인쇄 완료 인덱스 + nPrintOkIndex = nLoop - 1; + } + + itemKey = checkKey; + + + #region ### 헤더 출력 + string sPrintTitle = this.GetOrderMessageTitle(cKPSMessage.sMsgId); + switch (cKPSMessage.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE: + case PosConst.KPS_ORD_MSG_ID.TABLE_MOVE: + case PosConst.KPS_ORD_MSG_ID.MENU_MOVE: + sPrtData = string.Format("[{0}{1}]", sPrintTitle, (sResendFlag == "1") ? " (R)" : ""); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + // 연습모드 // Add, 2017.03.03, + if (cKPSMessage.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES) + { + sPrtData = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + cPrint.TextPrint("", PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + sPrtData = sPrintTitle + " : " + + GetFloorName(cKPSMessage.sFloorCd) + "-" + GetTableName(cKPSMessage.sFloorCd, cKPSMessage.sTableNo) + " -> " + + GetFloorName(cKPSMessage.sMsg1) + "-" + GetTableName(cKPSMessage.sMsg1, cKPSMessage.sMsg2); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + default: + sPrtData = string.Format("[{0}{1}]", sPrintTitle, (sResendFlag == "1") ? " (R)" : ""); + if (cKPSMessage.sMsgId == PosConst.KPS_ORD_MSG_ID.FIRE_KEY) + { + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.ReverseMode, true); + } + else + { + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + + // 연습모드 // Add, 2017.03.03, + if (cKPSMessage.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES) + { + sPrtData = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + cPrint.TextPrint("", PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + sPrtData = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0176) + " : " + + GetFloorName(cKPSMessage.sFloorCd) + "-" + GetTableName(cKPSMessage.sFloorCd, cKPSMessage.sTableNo); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + #endregion + + #region ### 상품정보 출력 + switch (cKPSMessage.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: + //case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: + cPrint.TextPrint(cKPSMessage.sItemNm.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + + case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: // Add, 2017.03.22 + for (var i = nLoop; i < htKPSOrderMessage.Count; i++) + { + KPSOrderMessage cKPSOrderSubMsg = (KPSOrderMessage)htKPSOrderMessage[i]; + + sPrtData = string.Format("{0}{1}", CmUtil.RPadH(cKPSOrderSubMsg.sItemNm, 37), CmUtil.LPadH(cKPSOrderSubMsg.sMsg1, 5)); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + // Main Index 동기화 + nLoop = i; + } + break; + + case PosConst.KPS_ORD_MSG_ID.MENU_MOVE: + for (var i = nLoop; i < htKPSOrderMessage.Count; i++) + { + KPSOrderMessage cKPSOrderSubMsg = (KPSOrderMessage)htKPSOrderMessage[i]; + if (cKPSOrderSubMsg.sSendYn == "1") break; ; + if (cKPSMessage.sMsgId != cKPSOrderSubMsg.sMsgId) break; + if (cKPSMessage.sFloorCd != cKPSOrderSubMsg.sFloorCd) break; + if (cKPSMessage.sTableNo != cKPSOrderSubMsg.sTableNo) break; + if (cKPSMessage.sOrderType != cKPSOrderSubMsg.sOrderType) break; + if (cKPSMessage.sKtchSysCd != cKPSOrderSubMsg.sKtchSysCd) break; + if (cKPSMessage.sMsg1.Trim() != cKPSOrderSubMsg.sMsg1.Trim()) break; + if (cKPSMessage.sMsg2.Trim() != cKPSOrderSubMsg.sMsg2.Trim()) break; + + // 메뉴이동 상품정보 출력 + sPrtData = string.Format("{0}{1}", CmUtil.RPadH(cKPSOrderSubMsg.sItemNm, 37), CmUtil.LPadH(cKPSOrderSubMsg.sMsg3, 5)); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + //// 전송완료설정 + //cKPSOrderSubMsg.sSendYn = "1"; + + // Main Index 동기화 + nLoop = i; + } + + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + #endregion + + #region ### 메시지 출력 + switch (cKPSMessage.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: + //case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: // Del, 2017.03.22 + case PosConst.KPS_ORD_MSG_ID.SEAT_MEMO: + if (cKPSMessage.sMsg1.Trim() != "") + { + cPrint.TextPrint(" " + cKPSMessage.sMsg1.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + if (cKPSMessage.sMsg2.Trim() != "") + { + cPrint.TextPrint(" " + cKPSMessage.sMsg2.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + if (cKPSMessage.sMsg3.Trim() != "") + { + cPrint.TextPrint(" " + cKPSMessage.sMsg3.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + #endregion + + #region ### 꼬리 출력 + // 반복횟수 + var prtCnt = prtCount > 1 ? string.Format(" ({0}/{1})", cnt + 1, prtCount) : string.Empty; + // 주문시간 + sPrtData = string.Format("{0} : {1} {2} {3}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0085) + , m_cPosStatus.Global.DateToCulture(cKPSMessage.sRegDate) + , CmUtil.StrToTime(cKPSMessage.sMsgRegTime) + , prtCnt); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + #endregion + + // Cutting + cPrint.CutPaper(4); + } + //// 전송완료설정 + //cKPSMessage.sSendYn = "1"; + } + } + + // 인쇄 완료 인덱스 + nPrintOkIndex = htKPSOrderMessage.Count - 1; + + // Port Close + Thread.Sleep(200); + cPrint.DeviceClose(); + } + catch (Exception ex) + { + cPrint.DeviceClose(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + return -99; + } + + return 0; + } + + + private int KPSLanPrintProc(string sCancelFlag, string sResendFlag, string sKpsIp, string sKpsPort, int prtCount, ref int nPrintOkIndex, ref Hashtable htKPSSendingItem) + { + var iRet = UserCom.NG; + + var sPrtBar1 = new string('-', 42); + var sPrtBar2 = new string('=', 42); + var sPrtDat1 = string.Empty; + var sPrtDat2 = string.Empty; + + LANPrint cPrint = new LANPrint(); + + try + { + iRet = cPrint.OpenDevice(sKpsIp, int.Parse(sKpsPort)); + if (iRet != UserCom.OK) + { + cPrint.CloseDevice(); + return -9; + } + + // Cover Check + iRet = cPrint.PrinterStatusCheckByLan("CHK1"); + if (iRet != UserCom.OK) + { + cPrint.CloseDevice(); + return -4; + } + + // Paper Check + iRet = cPrint.PrinterStatusCheckByLan("CHK2"); + if (iRet != UserCom.OK) + { + cPrint.CloseDevice(); + return -5; + } + + for (var cnt = 0; cnt < prtCount; cnt++) + { + var ktchMemo = string.Empty; + var itemKey = string.Empty; + var orderNo1 = string.Empty; + var orderNo2 = string.Empty; + + // 주문상품 인쇄(주방장치코드가 같은 상품들) + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + KPSItem cKPSItem = (KPSItem)htKPSSendingItem[nLoop]; + + // 이미 전송 완료 건 제외 + if (cKPSItem.sSendYn == "1") + { + continue; + } + + // Add, 2017.03.03, 연습모드 + //var checkKey = cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo; + var checkKey = cKPSItem.sTrainMode + cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo; + if (itemKey != checkKey) + { + //if (sOrgOrderType != "") + if (string.IsNullOrWhiteSpace(itemKey) == false) + { + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.CutPaper(4); + + // 인쇄 완료 인덱스 + nPrintOkIndex = nLoop - 1; + } + + // 원정보 설정 + itemKey = checkKey; + + // 제목 + sPrtDat1 = string.Format("<< {0} >>", "주 문 서"); //MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0154)); + + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_2, true); + + cPrint.TextPrint(cKPSItem.sOrderNo, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_3, PrinterCommand.CharactersizeH.H_3 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + + + // 연습모드 Add, 2017.03.03, + if (cKPSItem.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES) + { + sPrtDat1 = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + // 복합매장-서브매장명 + if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNm) == false) + { + sPrtDat1 = m_cPosStatus.Base.SubShopNm; + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + cPrint.TextPrint("", PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + // 반복횟수 + var prtCnt = prtCount > 1 ? string.Format(" ({0}/{1})", cnt + 1, prtCount) : string.Empty; + // 주문시간 + sPrtDat1 = string.Format("{0} : {1} {2} {3}", "주문시간" //MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0155) + , m_cPosStatus.Global.DateToCulture(m_cPosStatus.Base.SaleDate) + , CmUtil.StrToTime(cKPSItem.sOrdTime) + , prtCnt); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + // 주문번호 + if (cKPSItem.sFiller2 == "2") + { + // 해피오더 + sPrtDat1 = string.Format("{0} : {1}", "주문번호" //MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0158) + , cKPSItem.sOrderNo); + } + //else if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + //{ + // // 후불 + // sPrtDat1 = string.Format("{0} : {1}-{2}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0156), cKPSItem.sFloorCd, cKPSItem.sTableNo); + //} + else + { + sPrtDat1 = string.Format("{0} : {1}", "주문번호"// MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0156) + , cKPSItem.sOrderNo); + } + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + // 주문담당자 + if (string.IsNullOrWhiteSpace(cKPSItem.sOrdPicNm) == false) + { + sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0189), cKPSItem.sOrdPicNm.Trim()); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + + // 인원 + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + { + sPrtDat1 = GetCustInfo(cKPSItem.sTrainMode, cKPSItem.sFloorCd, cKPSItem.sTableNo); + if (string.IsNullOrWhiteSpace(sPrtDat1) == false) + { + sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0157), sPrtDat1); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // 주문번호/테이블 + // Mod, 2017.05.08, 주분번호 후불=상단, 선불=하단 출력 + sPrtDat1 = string.Empty; + sPrtDat2 = string.Empty; + orderNo1 = string.Empty; + orderNo2 = string.Empty; + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT) + { + #region (주문번호 상단 출력) + + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && string.IsNullOrWhiteSpace(cKPSItem.sFiller2)) + { + sPrtDat1 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0148)); + sPrtDat2 = string.Format("{0}-{1}", GetFloorName(cKPSItem.sFloorCd), GetTableName(cKPSItem.sFloorCd, cKPSItem.sTableNo)); + } + else if (string.IsNullOrWhiteSpace(cKPSItem.sOrderNo) == false) + { + sPrtDat1 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097)); + sPrtDat2 = string.Format("{0}", cKPSItem.sOrderNo); + } + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + cPrint.TextPrint(sPrtDat2, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_2 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + #endregion + } + else + { + #region (주문번호 하단 출력) + if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && string.IsNullOrWhiteSpace(cKPSItem.sFiller2)) + { + orderNo1 = string.Format("{0}-{1}", GetFloorName(cKPSItem.sFloorCd), GetTableName(cKPSItem.sFloorCd, cKPSItem.sTableNo)); + orderNo2 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0148)); + + } + else if (string.IsNullOrWhiteSpace(cKPSItem.sOrderNo) == false) + { + orderNo1 = string.Format("{0}", cKPSItem.sOrderNo); + orderNo2 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097)); + } + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + #endregion + } + } + + // 상품/수량 + var sign = cKPSItem.sCancelDiv == "1" ? -1 : 1; + var type = GetAddOrderString(cKPSItem.sFiller3); + var qty = cKPSItem.nQty == 0 ? string.Empty : (sign * cKPSItem.nQty).ToString(); + sPrtDat1 = CmUtil.RPadH(cKPSItem.sItemNm, 30) + CmUtil.RPadH(type, 5) + CmUtil.LPadH(qty, 6); + cPrint.TextPrint(sPrtDat1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + + //2017.09.07 레시피 출력 + if (cKPSItem.sRecipe.ToString().Trim().Length > 0) + { + string Recipe = cKPSItem.sRecipe.Replace("@", "\r").Replace("$", "\n").ToString(); + string[] RecipeData = Recipe.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.None); + + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + foreach (var dt in RecipeData) + { + cPrint.TextPrint(dt.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + } + + + + // Add, 2017.03.21, 상품메모 + if (string.IsNullOrWhiteSpace(cKPSItem.sItemMemo) == false) + { + var lst = this.GetParserMemo(cKPSItem.sItemMemo); + foreach (var msg in lst) + { + cPrint.TextPrint(" " + msg.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // Add, 2017.04.10, 상품구분라인 + var nextIdx = nLoop + 1; + if (nextIdx < htKPSSendingItem.Count) + { + var NextItemDiv = ((KPSItem)htKPSSendingItem[nextIdx]).sItemDiv; + switch (NextItemDiv) + { + case ItemConst.PLU_ITEM_DIV.NORMAL: + case ItemConst.PLU_ITEM_DIV.SET_MAIN: + case ItemConst.PLU_ITEM_DIV.SET_DIS: + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + } + + #region Mod, 2017.04.25, 주방메모 출력 + // Add, 2017.01.23 + // 주방프린터 수동출력(상품선택) 옵션시 주방메모 + //if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2") + //{ + // ktchMemo = cKPSItem.sKtchMemo; + //} + #endregion + ktchMemo = cKPSItem.sKtchMemo; + } + + // Add, 2017.01.23, 수동출력옵션 시 주방메모 출력 + if (string.IsNullOrWhiteSpace(ktchMemo) == false) + { + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("Memo: ", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + var lst = this.GetParserMemo(ktchMemo); + foreach (string msg in lst) + { + cPrint.TextPrint(" " + msg.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + } + + // Add, 2017.04.07 + if (string.IsNullOrWhiteSpace(orderNo1) == false) + { + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(orderNo1, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_3, PrinterCommand.CharactersizeH.H_3 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + cPrint.TextPrint(orderNo2, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + // Cutting + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + cPrint.TextPrint("", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint("", PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + + cPrint.CutPaper(12); + } + + // 인쇄 완료 인덱스 설정 + nPrintOkIndex = htKPSSendingItem.Count - 1; + + // Port Close + + + cPrint.CloseDevice(); + } + catch (Exception ex) + { + cPrint.CloseDevice(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + return -99; + } + + return 0; + } + + private int KPSOrderMessageLanPrintProc(string sResendFlag, string sKpsIp, string sKpsPort, int prtCount, ref int nPrintOkIndex, ref Hashtable htKPSOrderMessage) + { + var iRet = UserCom.NG; + + var sPrtBar1 = new string('-', 42); + var sPrtBar2 = new string('=', 42); + var sPrtData = string.Empty; + + LANPrint cPrint = new LANPrint(); + + try + { + nPrintOkIndex = -1; + + iRet = cPrint.OpenDevice(sKpsIp, int.Parse(sKpsPort)); + if (iRet != UserCom.OK) + { + cPrint.CloseDevice(); + return -9; + } + + // Cover Check + iRet = cPrint.PrinterStatusCheckByLan("CHK1"); + if (iRet != UserCom.OK) + { + cPrint.CloseDevice(); + return -4; + } + + // Paper Check + iRet = cPrint.PrinterStatusCheckByLan("CHK2"); + if (iRet != UserCom.OK) + { + cPrint.CloseDevice(); + return -5; + } + + for (var cnt = 0; cnt < prtCount; cnt++) + { + var itemKey = string.Empty; + + for (int nLoop = 0; nLoop < htKPSOrderMessage.Count; nLoop++) + { + KPSOrderMessage cKPSMessage = (KPSOrderMessage)htKPSOrderMessage[nLoop]; + + if (cKPSMessage.sSendYn == "1") + { + continue; + } + + var checkKey = cKPSMessage.sTrainMode + cKPSMessage.sOrderType + cKPSMessage.sFloorCd + cKPSMessage.sTableNo + cKPSMessage.sMsgId; + if (itemKey != checkKey) + { + if (itemKey != "") + { + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.CutPaper(4); + + // 인쇄 완료 인덱스 + nPrintOkIndex = nLoop - 1; + } + + itemKey = checkKey; + + #region ### 헤더 출력 + string sPrintTitle = this.GetOrderMessageTitle(cKPSMessage.sMsgId); + switch (cKPSMessage.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE: + case PosConst.KPS_ORD_MSG_ID.TABLE_MOVE: + case PosConst.KPS_ORD_MSG_ID.MENU_MOVE: + sPrtData = string.Format("[{0}{1}]", sPrintTitle, (sResendFlag == "1") ? " (R)" : ""); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + // 연습모드 Add, 2017.03.03, + if (cKPSMessage.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES) + { + sPrtData = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + cPrint.TextPrint("", PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + sPrtData = sPrintTitle + " : " + GetFloorName(cKPSMessage.sFloorCd) + "-" + GetTableName(cKPSMessage.sFloorCd, cKPSMessage.sTableNo) + " -> " + + GetFloorName(cKPSMessage.sMsg1) + "-" + GetTableName(cKPSMessage.sMsg1, cKPSMessage.sMsg2); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + default: + sPrtData = string.Format("[{0}{1}]", sPrintTitle, (sResendFlag == "1") ? " (R)" : ""); + if (cKPSMessage.sMsgId == PosConst.KPS_ORD_MSG_ID.FIRE_KEY) + { + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.ReverseMode, true); + } + else + { + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + + // 연습모드 Add, 2017.03.03, + if (cKPSMessage.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES) + { + sPrtData = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1 + , PrinterCommand.TextBold.Bold, PrinterCommand.TextUnderLine.Nomal, true); + } + + cPrint.TextPrint("", PrinterCommand.Alignment.Center, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + sPrtData = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0176) + " : " + + GetFloorName(cKPSMessage.sFloorCd) + "-" + GetTableName(cKPSMessage.sFloorCd, cKPSMessage.sTableNo); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar2, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + #endregion + + #region ### 상품정보 출력 + switch (cKPSMessage.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: + //case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: + cPrint.TextPrint(cKPSMessage.sItemNm.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + + case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: // Add, 2017.03.22 + for (var i = nLoop; i < htKPSOrderMessage.Count; i++) + { + KPSOrderMessage cKPSOrderSubMsg = (KPSOrderMessage)htKPSOrderMessage[i]; + sPrtData = string.Format("{0}{1}", CmUtil.RPadH(cKPSOrderSubMsg.sItemNm, 37), CmUtil.LPadH(cKPSOrderSubMsg.sMsg1, 5)); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + // Main Index 동기화 + nLoop = i; + } + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + + case PosConst.KPS_ORD_MSG_ID.MENU_MOVE: + for (var i = nLoop; i < htKPSOrderMessage.Count; i++) + { + KPSOrderMessage cKPSOrderSubMsg = (KPSOrderMessage)htKPSOrderMessage[i]; + if (cKPSOrderSubMsg.sSendYn == "1") break; ; + if (cKPSMessage.sMsgId != cKPSOrderSubMsg.sMsgId) break; + if (cKPSMessage.sFloorCd != cKPSOrderSubMsg.sFloorCd) break; + if (cKPSMessage.sTableNo != cKPSOrderSubMsg.sTableNo) break; + if (cKPSMessage.sOrderType != cKPSOrderSubMsg.sOrderType) break; + if (cKPSMessage.sKtchSysCd != cKPSOrderSubMsg.sKtchSysCd) break; + if (cKPSMessage.sMsg1.Trim() != cKPSOrderSubMsg.sMsg1.Trim()) break; + if (cKPSMessage.sMsg2.Trim() != cKPSOrderSubMsg.sMsg2.Trim()) break; + + // 메뉴이동 상품정보 출력 + sPrtData = string.Format("{0}{1}", CmUtil.RPadH(cKPSOrderSubMsg.sItemNm, 37), CmUtil.LPadH(cKPSOrderSubMsg.sMsg3, 5)); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + + //// 전송완료설정 + //cKPSOrderSubMsg.sSendYn = "1"; + + // Main Index 동기화 + nLoop = i; + } + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + #endregion + + #region ### 메시지 출력 + switch (cKPSMessage.sMsgId) + { + case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: + //case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: // Del, 2017.03.22 + case PosConst.KPS_ORD_MSG_ID.SEAT_MEMO: + var memo = (string.IsNullOrWhiteSpace(cKPSMessage.sMsg1) ? "" : cKPSMessage.sMsg1.Trim() + Environment.NewLine) + + (string.IsNullOrWhiteSpace(cKPSMessage.sMsg2) ? "" : cKPSMessage.sMsg2.Trim() + Environment.NewLine) + + (string.IsNullOrWhiteSpace(cKPSMessage.sMsg3) ? "" : cKPSMessage.sMsg3.Trim()); + if (string.IsNullOrWhiteSpace(memo) == false) + { + var lst = GetParserMemo(memo.Trim()); + foreach (var msg in lst) + { + cPrint.TextPrint(" " + msg.Trim(), PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_2, PrinterCommand.CharactersizeH.H_1, true); + } + } + cPrint.TextPrint(sPrtBar1, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + break; + } + #endregion + + #region ### 꼬리 출력 + // 반복횟수 + var prtCnt = prtCount > 1 ? string.Format(" ({0}/{1})", cnt + 1, prtCount) : string.Empty; + // 주문시간 + sPrtData = string.Format("{0} : {1} {2} {3}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0085) + , m_cPosStatus.Global.DateToCulture(cKPSMessage.sRegDate) + , CmUtil.StrToTime(cKPSMessage.sMsgRegTime) + , prtCnt); + cPrint.TextPrint(sPrtData, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, true); + #endregion + + // Cutting + cPrint.CutPaper(4); + } + //// 전송완료설정 + //cKPSMessage.sSendYn = "1"; + } + } + + // 인쇄 완료 인덱스 + nPrintOkIndex = htKPSOrderMessage.Count - 1; + + // Port Close + Thread.Sleep(200); + cPrint.CloseDevice(); + } + catch (Exception ex) + { + cPrint.CloseDevice(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + return -99; + } + + return 0; + } + + private int PrinterStatusCheckByLan(TcpSocket socket, string sType) + { + int iRet = 0; + string sRet = string.Empty; + + byte[] recvData = null; + + try + { + #region Printer CHK1 + if (sType == "CHK1") + { + iRet = socket.SendReceiveFoodPrintData(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS, ref recvData, 5000); + + if (recvData != null) + { + if (recvData[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + iRet = UserCom.OK; + } + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "COVER Opened"); + } + } + return iRet; + } + #endregion + + #region Printer CHK2 + if (sType == "CHK2") + { + iRet = socket.SendReceiveFoodPrintData(PosConst.ESCP_COMMAND.TRANSMIT_CONTINUOUS_PAPER_DETECTOR_STATUS, ref recvData, 5000); + + if (recvData != null) + { + if (recvData[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + iRet = UserCom.OK; + } + else + { + string sRecvData = Encoding.Default.GetString(recvData); + + string NEAR_END = Encoding.Default.GetString(new byte[] { 0x1E }); + string NOT_PRESENT = Encoding.Default.GetString(new byte[] { 0x72 }); + + string sErrMsg = string.Empty; + if (sRecvData == NEAR_END) sErrMsg = "PAPER_NEAR_END"; + else if (sRecvData == NOT_PRESENT) sErrMsg = "PAPER_NOT_PRESENT"; + else sErrMsg = "ETC_ERROR"; + + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sErrMsg); + } + } + + return iRet; + } + #endregion + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "StatusCheck 실패"); + } + return iRet; + } + + public bool KPSLanStatusCheck(string sKpsIp, string sKpsPort) + { + int iRet = UserCom.NG; + + // 용지 센서 상태 송신 명령어 + byte[] ESC_REQ_SUATUS_PAPER_SENSOR = { 0x1D, 0x72, 0x01 }; + byte[] reqByte = new byte[2049]; + + TcpSocket socket = null; + + try + { + socket = new TcpSocket(sKpsIp, CmUtil.IntParse(sKpsPort)); + if (socket == null) + { + return false; + } + + // 주방프린터 접속 3회 시도 + //for (int nLoop = 0; nLoop < 3; nLoop++) + for (int nLoop = 0; nLoop < 1; nLoop++) + { + try + { + iRet = socket.Connect(5000); + } + catch (Exception ex) + { + socket.Close(); + continue; + } + + // 접속 실패 + if (iRet != UserCom.OK) + { + socket.Close(); + continue; + } + + break; + } + + if (iRet != UserCom.OK) return false; + + // 성공하면 주방프린터 상태 체크함 + iRet = socket.SendReceiveFoodPrintData(ESC_REQ_SUATUS_PAPER_SENSOR, ref reqByte, 10); + return iRet == UserCom.OK ? true : false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + return false; + } + finally + { + if (socket != null) socket.Close(); + } + } + + private string GetOrderMessageTitle(string msgId) + { + string retValue = string.Empty; + try + { + switch (msgId) + { + //case PosConst.KPS_ORD_MSG_ID.TRADE_STOP: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0232); break; + case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0233); break; + case PosConst.KPS_ORD_MSG_ID.SEAT_MEMO: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0234); break; + case PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0235); break; + case PosConst.KPS_ORD_MSG_ID.TABLE_MOVE: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0236); break; + case PosConst.KPS_ORD_MSG_ID.MENU_MOVE: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0124); break; + case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0628); break; + } + } + catch { } + return retValue; + } + + private List GetParserMemo(string memo, string headChar = "") + { + List retValue = new List(); + try + { + const int COL_LEN = 40; + + var tmp = memo; + var lines = tmp.Trim().Split(new string[] { Environment.NewLine }, StringSplitOptions.None); + + for (var i = 0; i < lines.Length; i++) + { + var line = lines[i].Trim(); + while (string.IsNullOrWhiteSpace(line) == false) + { + var msg = CmUtil.LeftH(line, COL_LEN).Trim(); + if (string.IsNullOrWhiteSpace(msg) == false) retValue.Add(msg); + + var start = CmUtil.LenH(msg); + var length = CmUtil.LenH(line) - CmUtil.LenH(msg); + line = CmUtil.MidH(line, start, length); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + return retValue; + } + + private string ConvertDBStr(string str) + { + return str.Replace("'", "''"); + } + + //#20180515 KPS 출력시 라벨프린터 출력 start + private void GetLBLPRTSendItem(ref Hashtable htKPSSendingItem) + { + string sQuery = string.Empty; + + DataTable dtData = null; + + try + { + sQuery = "WITH LBLTEMP AS \n" + + "( \n" + + "SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SUB_STOR_CD \n" + + " , MAX(A.ORDER_NO) AS ORDER_NO, MAX(A.ITEM_CD) AS ITEM_CD, MAX(A.SHTCUT_ITEMNM) AS SHTCUT_ITEMNM \n" + + " , MAX(A.SET_MENU_CD) AS SET_MENU_CD, MAX(A.FILLER2) AS FILLER2 \n" + + " , MAX(A.SALE_QTY) AS SALE_QTY, MAX(A.SEQ) AS SEQ, MAX(A.ITEM_DIV) AS ITEM_DIV, MAX(C.ITEM_INFO) AS ITEM_INFO \n" + + " , MAX(C.LBL_QRCODE_URL) AS LBL_QRCODE_URL, MAX(C.LBL_QRCODE_MSG) AS LBL_QRCODE_MSG \n" + + " , MAX(C.LBL_TOP_MSG) AS LBL_TOP_MSG, MAX(C.LBL_BTM_MSG) AS LBL_BTM_MSG \n" + + " FROM POSMST..MST_KPS_ORD_MSG A \n" + + " LEFT JOIN POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n" + + " ON A.SUB_STOR_CD = B.SUB_STOR_CD \n" + + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n" + + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + + " LEFT JOIN POSMST..MST_KTCH_ITEM_INFO C WITH(NOLOCK) \n" + + " ON A.ITEM_CD = C.ITEM_CD \n" + + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" + + " WHERE A.LBLSEND_YN IN ('0','9') \n" + + " AND A.CANCEL_DIV = '0' \n" + + " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" + + " GROUP BY A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SUB_STOR_CD, A.SEQ \n" + + ") \n" + + + "SELECT E.TRAIN_MODE_YN, E.ORD_DIV, E.FLOOR_CD, E.TBL_NO, E.SUB_STOR_CD \n" + + " , E.ORDER_NO, E.ITEM_CD, E.SHTCUT_ITEMNM, E.SALE_QTY, E.SEQ \n" + + " , E.LBL_QRCODE_URL, E.LBL_QRCODE_MSG, E.LBL_TOP_MSG, E.LBL_BTM_MSG \n" + + " , E.ITEM_INFO, E.ITEM_DIV, E.FILLER2 \n" + + " , (CASE WHEN E.SET_MENU_CD = '' THEN E.ITEM_CD ELSE E.SET_MENU_CD END) AS SET_MENU_CD \n" + + " , (SELECT ISNULL(SUM(SALE_QTY),0) FROM LBLTEMP \n" + + " WHERE TRAIN_MODE_YN = E.TRAIN_MODE_YN \n" + + " AND ORD_DIV = E.ORD_DIV \n" + + " AND FLOOR_CD = E.FLOOR_CD \n" + + " AND TBL_NO = E.TBL_NO \n" + + " AND SUB_STOR_CD = E.SUB_STOR_CD \n" + + " AND ITEM_DIV = '0') AS TOTCNT \n" + + " FROM LBLTEMP E \n" + + " ORDER BY E.TRAIN_MODE_YN, E.ORD_DIV, E.FLOOR_CD, E.TBL_NO, E.SUB_STOR_CD, E.SEQ \n"; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) != UserCom.OK) + { + return; + } + + string itemKey = string.Empty; + + Hashtable htKPSSendingItemTemp = new Hashtable(); + + //if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtData) == UserCom.OK) + //{ + // foreach (DataRow dr in dtData.Rows) + // { + + + //DataRow[] arRows = null; + //arRows = dtData.Select(); + //arRows = dtData.Select("POS_NO = '" + m_cPosStatus.Base.PosNo + "'"); + //if (arRows.Length == 0) + // arRows = dtData.Select("POS_NO = '00'"); + + //foreach (DataRow dr in dtData.Rows) + foreach (DataRow dr in dtData.Rows) + { + KPSItem cKPSItem = new KPSItem(); + + cKPSItem.sTrainMode = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); + cKPSItem.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV"); + cKPSItem.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD"); + cKPSItem.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO"); + cKPSItem.sSubShopCd = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"); + + //cKPSItem.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"); + //cKPSItem.sKtchSysNm = CmUtil.GetDataRowStr(dr, "KTCH_SYS_NM"); + cKPSItem.nSeq = CmUtil.GetDataRowInt(dr, "SEQ"); + cKPSItem.sOrderNo = CmUtil.GetDataRowStr(dr, "ORDER_NO"); + //cKPSItem.sPosType = CmUtil.GetDataRowStr(dr, "POS_TYPE"); + + cKPSItem.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD"); + cKPSItem.sItemDiv = CmUtil.GetDataRowStr(dr, "ITEM_DIV"); + cKPSItem.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM"); + cKPSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY"); + //cKPSItem.sPackDiv = CmUtil.GetDataRowStr(dr, "PACK_DIV"); + + cKPSItem.sSetMenuCd = CmUtil.GetDataRowStr(dr, "SET_MENU_CD"); + //cKPSItem.sOrdTime = CmUtil.GetDataRowStr(dr, "ORD_TIME"); + //cKPSItem.sCancelDiv = CmUtil.GetDataRowStr(dr, "CANCEL_DIV"); + //cKPSItem.sResendYn = CmUtil.GetDataRowStr(dr, "RESEND_YN"); + //cKPSItem.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV"); + + //cKPSItem.nKpsComPort = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_PORT"); + //cKPSItem.nKpsComBaudrate = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_SPEED"); + //cKPSItem.sKpsOposName = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_OPOS_NM"); + //cKPSItem.sKpsIp = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_IP"); + //cKPSItem.sKpsPort = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_PORT"); + + //cKPSItem.sErrorCd = CmUtil.GetDataRowStr(dr, "ERROR_CD"); + //cKPSItem.sFiller1 = CmUtil.GetDataRowStr(dr, "FILLER1"); + //cKPSItem.sFiller2 = CmUtil.GetDataRowStr(dr, "FILLER2"); + //cKPSItem.sFiller3 = CmUtil.GetDataRowStr(dr, "FILLER3"); + //cKPSItem.sFiller4 = CmUtil.GetDataRowStr(dr, "FILLER4"); + + //cKPSItem.sFiller5 = CmUtil.GetDataRowStr(dr, "FILLER5"); + //cKPSItem.sItemMemo = CmUtil.GetDataRowStr(dr, "MSG"); + //cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "KTCH_MSG"); + //cKPSItem.sOrdPicNm = CmUtil.GetDataRowStr(dr, "ORD_PIC_NM"); + //cKPSItem.sOrdPosNo = CmUtil.GetDataRowStr(dr, "ORD_POS_NO"); + + cKPSItem.sRecipe = CmUtil.GetDataRowStr(dr, "ITEM_INFO"); + //cKPSItem.sSendYn = "0"; + cKPSItem.sLblSendYn = CmUtil.GetDataRowStr(dr, "LBLSEND_YN"); //라벨프린터 출력여부(0:미전송, 1:전송) + cKPSItem.iTOTCNT = CmUtil.GetDataRowInt(dr, "TOTCNT"); //라벨프린터 총출력 해야 할 건수 + + cKPSItem.sQrcodeUrl = CmUtil.GetDataRowStr(dr, "LBL_QRCODE_URL"); //라벨프린터 QRCODE URL + cKPSItem.sQrcodeMsg = CmUtil.GetDataRowStr(dr, "LBL_QRCODE_MSG"); //라벨프린터 QRCODE MSG + cKPSItem.sTopMsg = CmUtil.GetDataRowStr(dr, "LBL_TOP_MSG"); //라벨프린터 TOP MSG + cKPSItem.sBtmMsg = CmUtil.GetDataRowStr(dr, "LBL_BTM_MSG"); //라벨프린터 BTM MSG + + string checkKey = cKPSItem.sTrainMode + cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo + cKPSItem.sSubShopCd + cKPSItem.sSetMenuCd; + if (itemKey != checkKey) + { + if (htKPSSendingItemTemp.Count != 0) + { + htKPSSendingItem.Add(htKPSSendingItem.Count, htKPSSendingItemTemp); + } + itemKey = checkKey; + + htKPSSendingItemTemp = new Hashtable(); + } + + htKPSSendingItemTemp.Add(htKPSSendingItemTemp.Count, cKPSItem); + } + + if (htKPSSendingItemTemp.Count != 0) + { + htKPSSendingItem.Add(htKPSSendingItem.Count, htKPSSendingItemTemp); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + //#20180515 KPS 출력시 라벨프린터 출력 end + + //#20180515 KPS 출력시 라벨프린터 출력 start + /// + /// KPS Status Update + /// + /// + /// + private void LBLPRTPrintStatusUpdate(Hashtable htKPSSendingItem, Hashtable htKtchDeviceStatus) + { + try + { + // Label Print 인쇄 데이터 전송상태 갱신 + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + Hashtable htKPSSendingItemTemp = (Hashtable)htKPSSendingItem[nLoop]; + + for (int nLoop2 = 0; nLoop2 < htKPSSendingItemTemp.Count; nLoop2++) + { + KPSItem cKPSItem = (KPSItem)htKPSSendingItemTemp[nLoop2]; + + string sQuery = "UPDATE POSMST..MST_KPS_ORD_MSG \n" + + " SET LBLSEND_YN = '" + cKPSItem.sLblSendYn + "' \n" + + " , RESEND_YN = '" + cKPSItem.sResendYn + "' \n" + + " , ERROR_CD = '" + cKPSItem.sErrorCd + "' \n" + + " WHERE TRAIN_MODE_YN = '" + cKPSItem.sTrainMode + "' \n" // Add, 2017.03.03, 연습모드 + + " AND ORD_DIV = '" + cKPSItem.sOrderType + "' \n" + + " AND FLOOR_CD = '" + cKPSItem.sFloorCd + "' \n" + + " AND TBL_NO = '" + cKPSItem.sTableNo + "' \n" + + " AND SUB_STOR_CD = '" + cKPSItem.sSubShopCd + "' \n" // Add, 2017.02.07 + //+ " AND KTCH_SYS_CD = '" + cKPSItem.sKtchSysCd + "' \n" + + " AND SEQ = " + cKPSItem.nSeq.ToString() + "\n" + ; + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null, true) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Query=" + sQuery); + } + } + } + + /* + for (int nLoop = 0; nLoop < htKtchDeviceStatus.Count; nLoop++) + { + KTCH_SYS_STATUS cKtchSysStatus = (KTCH_SYS_STATUS)htKtchDeviceStatus[nLoop]; + + string sErrorCd = "0000"; + if (cKtchSysStatus.nErrorCd != 0) + { + switch (cKtchSysStatus.nErrorCd) + { + case -1: sErrorCd = "0001"; break; // Print Open Error + case -2: sErrorCd = "0002"; break; // Print Claim Error + case -3: sErrorCd = "0003"; break; // Print Power Off Error + case -4: sErrorCd = "0004"; break; // Cover Open Error + case -5: sErrorCd = "0005"; break; // No Paper Error + default: sErrorCd = "9999"; break; // Etc Error + } + } + string sQuery = "UPDATE POSMST..MST_KTCH_DEVICE \n" + + " SET FILLER1 = '" + sErrorCd + "' \n" + + " WHERE KTCH_SYS_CD = '" + cKtchSysStatus.sKtchSysCd + "' \n" + + " AND SUB_STOR_CD = '" + cKtchSysStatus.sSubShopCd + "' \n" // Add, 2017.02.07 + ; + if (sqlDb.DBExecuteNonQuery(new string[] { sQuery }, CommandType.Text, (SqlParameter[])null, true) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Query=" + sQuery); + } + } + */ + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + //#20180515 KPS 출력시 라벨프린터 출력 end + + //#20180515 KPS 출력시 라벨프린터 출력 start + /// + /// 라벨프린터 출력 + /// + /// + private void LBLPRTPrintProc(ref Hashtable htKPSSendingItem) + { + try + { + bool nReturn = false; + int LblPrtCnt = 0; + + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + Hashtable htKPSSendingItemTemp = (Hashtable)htKPSSendingItem[nLoop]; + + if (htKPSSendingItemTemp.Count == 0) + { + continue; + } + + // 수량 만큼 출력 하기 위해 + KPSItem cKPSTemp = (KPSItem)htKPSSendingItemTemp[0]; + + for (int i = 1; i <= cKPSTemp.nQty; i++) + { + LblPrtCnt = LblPrtCnt + 1; + + nReturn = LBLPRTSerialPrintProc(htKPSSendingItemTemp, LblPrtCnt); + + if (nReturn == true) + { + cKPSTemp.sLblSendYn = "1"; + htKPSSendingItemTemp[0] = cKPSTemp; + } + else + { + cKPSTemp.sLblSendYn = "9"; + htKPSSendingItemTemp[0] = cKPSTemp; + } + + htKPSSendingItem[nLoop] = htKPSSendingItemTemp; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + //#20180515 KPS 출력시 라벨프린터 출력 end + + //#20180515 KPS 출력시 라벨프린터 출력 start + #region 라벨프린터 출력 함수 + public bool LBLPRTSerialPrintProc(Hashtable htKPSSendingItem, int LblPrtCnt) + { + bool bRet = false; + string sPrtData = ""; + string sEnter = "\r\n"; + + string sOrdGB = ""; + string sCntOfTotCnt = ""; + string sWaitNo = ""; + string sItemNm = ""; + string[] sItemNmA = new string[2]; + string[] sSubItemNmA = new string[3]; + string sQRcode = ""; + string sQRcodeMsg = ""; + string sTopMsgTemp = ""; + string[] sTopMsg = new string[2]; + string[] sTopMsgA = new string[2]; + string sBtmMsg = ""; + string sOptionTemp = ""; + string[] sOption = new string[8]; + string[] sOptionA = new string[8]; + string sPrtTime = ""; + int iSubCnt = 0; + + try + { + // 라벨프린터 Open + bRet = m_cLabelPrtDevice.OpenLabelPrinter(m_cPosStatus.Base.OlePosLabelPrinterSerialPortNumber, m_cPosStatus.Base.OlePosLabelPrinterSerialBaudRate); + + if (bRet == false) + { + return bRet; + } + + // 주문상품 인쇄 + for (int nLoop = 0; nLoop < htKPSSendingItem.Count; nLoop++) + { + KPSItem cKPSItem = (KPSItem)htKPSSendingItem[nLoop]; + + //메인 상품 + if (cKPSItem.sItemDiv == "0") + { + sOrdGB = (cKPSItem.sFiller2 == "2") ? "> H <" : "> P <"; + sCntOfTotCnt = LblPrtCnt.ToString() + " of " + cKPSItem.iTOTCNT.ToString(); + sWaitNo = cKPSItem.sOrderNo; + + // 상품명 + sItemNm = cKPSItem.sItemNm; + if (sItemNm.Length > 12) + { + sItemNmA[0] = sItemNm.Substring(0, 12); + sItemNmA[1] = sItemNm.Substring(12, sItemNm.Length - sItemNmA[0].Length); + } + else + { + sItemNmA[0] = sItemNm.Substring(0, sItemNm.Length); + sItemNmA[1] = ""; + } + + // qr코드 + sQRcode = cKPSItem.sQrcodeUrl; + + // qr코드 하단 메세지 + /* + if (cKPSItem.sQrcodeMsg.Length > 12) + { + sQRcodeMsg = cKPSItem.sQrcodeMsg.Substring(0, 12); + } + */ + sQRcodeMsg = cKPSItem.sQrcodeMsg; + + // 주방상품정보 + //sOptionTemp = cKPSItem.sRecipe.Replace("@$", "|"); + //sOption = sOptionTemp.Split('|'); + + sOptionTemp = cKPSItem.sRecipe.Replace("@", "\r").Replace("$", "\n").ToString(); + sOption = sOptionTemp.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.None); + + // 상단메세지 + //sTopMsgTemp = cKPSItem.sTopMsg.Replace("@$", "|"); + //sTopMsg = sTopMsgTemp.Split('|'); + + sTopMsgTemp = cKPSItem.sTopMsg.Replace("@", "\r").Replace("$", "\n").ToString(); + sTopMsg = sTopMsgTemp.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.None); + + //하단 메세지 + /* + if (cKPSItem.sBtmMsg.Length > 12) + { + sBtmMsg = cKPSItem.sBtmMsg.Substring(0, 12); + } + */ + sBtmMsg = cKPSItem.sBtmMsg; + + // 출력시간 + sPrtTime = DateTime.Now.ToString("HH:mm:ss tt"); + } + + //부가 상품 + if (cKPSItem.sItemDiv == "3") + { + /* + if (cKPSItem.sItemNm.Length > 11) + { + sSubItemNmA[iSubCnt] = cKPSItem.sItemNm.Substring(0, 11); + } + */ + sSubItemNmA[iSubCnt] = cKPSItem.sItemNm; + iSubCnt = iSubCnt + 1; + } + } + + for (int i = sItemNmA.Length; i < 2; i++) + { + sItemNmA[i] = ""; + } + + for (int i = sSubItemNmA.Length; i < 3; i++) + { + sSubItemNmA[i] = ""; + } + + for (int i = 0; i < 2; i++) + { + sTopMsgA[i] = ""; + } + + for (int i = 0; i < sTopMsg.Length; i++) + { + sTopMsgA[i] = sTopMsg[i]; + } + + for (int i = 0; i < 8; i++) + { + sOptionA[i] = ""; + } + + for (int i = 0; i < sOption.Length; i++) + { + sOptionA[i] = sOption[i]; + } + + sPrtData = "CLL"; + sPrtData += sEnter + "NEW"; + sPrtData += sEnter + "SETUP \"MEDIA,MEDIA SIZE,WIDTH,300\""; + sPrtData += sEnter + "SETUP \"MEDIA,MEDIA SIZE,LENGTH,1200\""; + sPrtData += sEnter + "SETUP \"MEDIA,MEDIA SIZE,XSTART,0\""; + + sPrtData += sEnter + "CLIP ON"; + sPrtData += sEnter + "NASC 949"; + + sPrtData += sEnter + "FONT \"HYGothic-Medium\",9"; + sPrtData += sEnter + "PP 5, 360:PT \"" + sWaitNo + "\""; + + sPrtData += sEnter + "PP 225, 360:PT \"" + sCntOfTotCnt + "\""; + + sPrtData += sEnter + "PP 5, 350:DIR 1:PL 300,1"; + + sPrtData += sEnter + "PP 0, 315:PT \"" + sItemNmA[0] + "\""; + sPrtData += sEnter + "PP 0, 285:PT \"" + sItemNmA[1] + "\""; + + sPrtData += sEnter + "PP 5, 275:DIR 1:PL 300,1"; + + sPrtData += sEnter + "FONT \"HYGothic-Medium\",8"; + sPrtData += sEnter + "PP 5, 240:PT \"" + sSubItemNmA[0] + "\""; + sPrtData += sEnter + "PP 5, 210:PT \"" + sSubItemNmA[1] + "\""; + sPrtData += sEnter + "PP 5, 180:PT \"" + sSubItemNmA[2] + "\""; + + if (sQRcode != "") + { + sPrtData += sEnter + "BF OFF"; + sPrtData += sEnter + "PP 5,70"; + sPrtData += sEnter + "BARSET \"QRCODE\",1,1,4,2,2"; + sPrtData += sEnter + "PB \"" + sQRcode + "\""; + + sPrtData += sEnter + "FONT \"HYGothic-Medium\",7"; + sPrtData += sEnter + "PP 5, 40:PT \"" + sQRcodeMsg + "\""; + } + else + { + sPrtData += sEnter + "FONT \"HYGothic-Medium\",10"; + sPrtData += sEnter + "PP 5,100:PT \"" + sTopMsgA[0] + "\""; + sPrtData += sEnter + "PP 5, 70:PT \"" + sTopMsgA[1] + "\""; + + sPrtData += sEnter + "FONT \"HYGothic-Medium\",7"; + sPrtData += sEnter + "PP 5, 40:PT \"" + sBtmMsg + "\""; + } + + sPrtData += sEnter + "PP 5, 40:DIR 1:PL 300,1"; + + sPrtData += sEnter + "FONT \"HYGothic-Medium\",9"; + sPrtData += sEnter + "PP 5,5:PT \"" + sPrtTime + "\""; + + sPrtData += sEnter + "PP 240,5:PT \"" + sOrdGB + "\""; + + sPrtData += sEnter + "PP 260,240:PT \"" + sOptionA[0] + "\""; + sPrtData += sEnter + "PP 260,212:PT \"" + sOptionA[1] + "\""; + sPrtData += sEnter + "PP 260,184:PT \"" + sOptionA[2] + "\""; + sPrtData += sEnter + "PP 260,156:PT \"" + sOptionA[3] + "\""; + sPrtData += sEnter + "PP 260,128:PT \"" + sOptionA[4] + "\""; + sPrtData += sEnter + "PP 260,100:PT \"" + sOptionA[5] + "\""; + sPrtData += sEnter + "PP 260,72:PT \"" + sOptionA[6] + "\""; + sPrtData += sEnter + "PP 260,44:PT \"" + sOptionA[7] + "\""; + + sPrtData += sEnter + "PF"; + sPrtData += sEnter; + + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ LabelPrt: [" + sPrtData + "]"); + + m_cLabelPrtDevice.PrintLabelInfo(sPrtData); + + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE]"); + + // 라벨프린터 Close + bRet = m_cLabelPrtDevice.CloseLabelPrinter(); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + #endregion + //#20180515 KPS 출력시 라벨프린터 출력 end + + } +} diff --git a/Agent/KPS/LANPrint.cs b/Agent/KPS/LANPrint.cs new file mode 100644 index 0000000..259395d --- /dev/null +++ b/Agent/KPS/LANPrint.cs @@ -0,0 +1,548 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.Common; +using Cosmos.UserFrame; +using Cosmos.BaseFrame; + +namespace Cosmos.KPS +{ + class LANPrint + { + PrinterCommand prtCmd = new PrinterCommand(); + + private TcpSocket m_cKtchSocket = null; + + #region Printer OPEN / CLOSE + public int OpenDevice(string sIp, int iPort) + { + int iRet = UserCom.NG; + try + { + // PING 테스트로 프린터 가능여부 확인(2017.05.30) + if (CmUtil.PingTest(sIp) == false) + { + if (CmUtil.PingTest(sIp) == false) return iRet; + } + + m_cKtchSocket = new TcpSocket(sIp, iPort, 5000); + + if(m_cKtchSocket == null) + { + return -9; + } + + // 주방프린터 접속 3회 시도 + for(int nLoop = 0;nLoop < 1;nLoop++) + { + try + { + iRet = m_cKtchSocket.Connect(-1); + } + catch (Exception ex) + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "KPS Exception Error=" + ex.Message); + m_cKtchSocket.Close(); + continue; + } + // 접속 실패 + if (iRet != UserCom.OK) + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "KPS(Ethernet) Connect Error"); + m_cKtchSocket.Close(); + continue; + } + /* + // Cover Check + iRet = PrinterStatusCheckByLan("CHK1"); + if (iRet != UserCom.OK) + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "KPS(Ethernet) Cover Check Error"); + m_cKtchSocket.Close(); + continue; + } + + // Paper Check + iRet = PrinterStatusCheckByLan("CHK2"); + if (iRet != UserCom.OK) + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "KPS(Ethernet) Paper Check Error"); + m_cKtchSocket.Close(); + continue; + } + */ + break; + } + + return iRet; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + return -99; + } + } + + public void CloseDevice() + { + try + { + if(m_cKtchSocket != null) + { + m_cKtchSocket.Close(); + m_cKtchSocket = null; + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region Status Check + public int PrinterStatusCheckByLan(string sType) + { + int iRet = 0; + string sRet = string.Empty; + + byte[] recvData = null; + + try + { + #region Printer CHK1 + if (sType == "CHK1") + { + iRet = m_cKtchSocket.SendReceiveFoodPrintData(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS, ref recvData, 5000); + + if (recvData != null) + { + if (recvData[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + iRet = UserCom.OK; + } + else + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "COVER Opened"); + } + } + return iRet; + } + #endregion + + #region Printer CHK2 + if (sType == "CHK2") + { + iRet = m_cKtchSocket.SendReceiveFoodPrintData(PosConst.ESCP_COMMAND.TRANSMIT_CONTINUOUS_PAPER_DETECTOR_STATUS, ref recvData, 5000); + + if (recvData != null) + { + if (recvData[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + iRet = UserCom.OK; + } + else + { + iRet = UserCom.NG; + string sRecvData = Encoding.Default.GetString(recvData); + + string NEAR_END = Encoding.Default.GetString(new byte[] { 0x1E }); + string NOT_PRESENT = Encoding.Default.GetString(new byte[] { 0x72 }); + + string sErrMsg = string.Empty; + if (sRecvData == NEAR_END) + { + iRet = UserCom.OK; + sErrMsg = "PAPER_NEAR_END"; + } + else if (sRecvData == NOT_PRESENT) sErrMsg = "PAPER_NOT_PRESENT"; + else sErrMsg = "ETC_ERROR"; + + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + } + } + + return iRet; + } + #endregion + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "StatusCheck Failed"); + } + return iRet; + } + #endregion + + #region Cut Paper + public bool CutPaper(int LineFeedCnt) + { + long nRet = -1; + try + { + for(int i = 0;i < LineFeedCnt;i++) + { + nRet = m_cKtchSocket.SendFoodPrintData(Encoding.Default.GetBytes("\r\n")); + } + + if(m_cKtchSocket.SendFoodPrintData(PosConst.ESCP_COMMAND.PAPER_CUT) == BaseCom.OK) + { + nRet = m_cKtchSocket.SendFoodPrintData(Encoding.Default.GetBytes("\r\n")); + } + + // BEEP 커맨더 전송(2017.05.30) + byte[] bytBEEP = new byte[] { 0x1B, 0x70, 0x01, 0x20, 0x80 }; + m_cKtchSocket.SendFoodPrintData(bytBEEP); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Cut Paper Exception"); + } + return nRet == BaseCom.OK ? true : false; + } + #endregion + + #region 문자열 출력 + /// + /// Print Text + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize, PrinterCommand.TextBold eBold, PrinterCommand.TextUnderLine eTextUnderLine, PrinterCommand.TextReverseMode eTextReverseMode, bool bLineFeed) + { + bool bRet = false; + string sCmdctrlTmp = ""; + + try + { + // 확대 Command를 설정 + sCmdctrlTmp = GetCharactersizeCmd(eVerticalSize, eHorizontalSize); + + // UnerLine + sCmdctrlTmp += GetUnderLineCmd(eTextUnderLine); + + // Bold + sCmdctrlTmp += GetBoldCmd(eBold); + + // 정렬 + sCmdctrlTmp += GetAlignment(eAlignment); + + // Reverse + sCmdctrlTmp += GetReverseCmd(eTextReverseMode); + + // 출력 + byte[] byteCmdctrl = Encoding.Default.GetBytes(sCmdctrlTmp); + if (m_cKtchSocket.SendFoodPrintData(byteCmdctrl) != BaseCom.OK) bRet = false; // Command 전송 + + byte[] byteData = Encoding.Default.GetBytes(sValue); + if (m_cKtchSocket.SendFoodPrintData(byteData) != BaseCom.OK) bRet = false; // 출력 Data 전송 + + if (bLineFeed == true && m_cKtchSocket.SendFoodPrintData(Encoding.Default.GetBytes("\n")) != BaseCom.OK) bRet = false; + } + catch(Exception ex) + { + + } + + return bRet; + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize, PrinterCommand.TextBold eBold, PrinterCommand.TextUnderLine eTextUnderLine, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, eVerticalSize, eHorizontalSize, eBold, eTextUnderLine, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + public bool TextPrint(string sValue, bool bLineFeed) + { + return TextPrint(sValue, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, eVerticalSize, eHorizontalSize, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.TextBold eBold, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, eBold, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.TextUnderLine eTextUnderLine, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, eTextUnderLine, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.TextReverseMode eTextReverseMode, bool bLineFeed) + { + return TextPrint(sValue, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, eTextReverseMode, bLineFeed); + } + + private string GetCharactersizeCmd(PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize) + { + string sRet = ""; + + try + { + int Hvalue = 0; + int Vvalue = 0; + + switch(eVerticalSize) + { + case PrinterCommand.CharactersizeV.V_1: Vvalue = 0; break; + case PrinterCommand.CharactersizeV.V_2: Vvalue = 1; break; + case PrinterCommand.CharactersizeV.V_3: Vvalue = 2; break; + case PrinterCommand.CharactersizeV.V_4: Vvalue = 3; break; + case PrinterCommand.CharactersizeV.V_5: Vvalue = 4; break; + case PrinterCommand.CharactersizeV.V_6: Vvalue = 5; break; + case PrinterCommand.CharactersizeV.V_7: Vvalue = 6; break; + case PrinterCommand.CharactersizeV.V_8: Vvalue = 7; break; + default: Vvalue = 0; break; + } + + switch(eHorizontalSize) + { + case PrinterCommand.CharactersizeH.H_1: Hvalue = 16 * 0; break; + case PrinterCommand.CharactersizeH.H_2: Hvalue = 16 * 1; break; + case PrinterCommand.CharactersizeH.H_3: Hvalue = 16 * 2; break; + case PrinterCommand.CharactersizeH.H_4: Hvalue = 16 * 3; break; + case PrinterCommand.CharactersizeH.H_5: Hvalue = 16 * 4; break; + case PrinterCommand.CharactersizeH.H_6: Hvalue = 16 * 5; break; + case PrinterCommand.CharactersizeH.H_7: Hvalue = 16 * 6; break; + case PrinterCommand.CharactersizeH.H_8: Hvalue = 16 * 7; break; + default: Hvalue = 16 * 0; break; + } + sRet = Encoding.Default.GetString(prtCmd.ESC_VHMAG) + Convert.ToChar(Vvalue + Hvalue).ToString(); + } + catch (Exception ex) + { + + } + + return sRet; + } + /// + /// 진한 문자(Bold) + /// + /// + /// + private string GetBoldCmd(PrinterCommand.TextBold eBold) + { + string sRet = ""; + try + { + switch(eBold) + { + case PrinterCommand.TextBold.Nomal: sRet = Encoding.Default.GetString(prtCmd.ESC_BOLD_OFF); break; + case PrinterCommand.TextBold.Bold: sRet = Encoding.Default.GetString(prtCmd.ESC_BOLD_ON); break; + default: sRet = Encoding.Default.GetString(prtCmd.ESC_BOLD_OFF); break; + } + } + catch (Exception ex) + { + + } + + return sRet; + } + /// + /// UnderLine + /// + /// + /// + /// + private string GetUnderLineCmd(PrinterCommand.TextUnderLine eUnderLine, int nDot) + { + string sRet = ""; + try + { + if(eUnderLine == PrinterCommand.TextUnderLine.UnderLine) + { + if(nDot == 2) + { + sRet = Encoding.Default.GetString(prtCmd.ESC_UNDERLINEON1DOT); + } + else + { + sRet = Encoding.Default.GetString(prtCmd.ESC_UNDERLINEON2DOT); + } + } + else + { + sRet = Encoding.Default.GetString(prtCmd.ESC_UNDERLINEOFF); + } + } + catch(Exception ex) + { + + } + + return sRet; + } + /// + /// UnderLine Text + /// + /// + /// + private string GetUnderLineCmd(PrinterCommand.TextUnderLine eUnderLine) + { + return GetUnderLineCmd(eUnderLine, 1); + } + /// + /// 반전 텍스트 + /// + /// + /// + private string GetReverseCmd(PrinterCommand.TextReverseMode eTextReverseMode) + { + string sRet = ""; + try + { + switch(eTextReverseMode) + { + case PrinterCommand.TextReverseMode.ReverseMode: sRet = Encoding.Default.GetString(prtCmd.ESC_REVERSE_MODE_ON); break; + default: sRet = Encoding.Default.GetString(prtCmd.ESC_REVERSE_MODE_OFF); break; + } + } + catch(Exception ex) + { + + } + + return sRet; + } + /// + /// 정렬 Command를 가져온다. + /// + /// + /// + private string GetAlignment(PrinterCommand.Alignment eAlignment) + { + string sRet = ""; + try + { + switch(eAlignment) + { + case PrinterCommand.Alignment.Center: + sRet = Encoding.Default.GetString(prtCmd.ESC_CENTER); + break; + case PrinterCommand.Alignment.Right: + sRet = Encoding.Default.GetString(prtCmd.ESC_RIGHT); + break; + case PrinterCommand.Alignment.Left: + default: + sRet = Encoding.Default.GetString(prtCmd.ESC_LEFT); + break; + } + } + catch (Exception ex) + { + + } + + return sRet; + } + #endregion + } +} diff --git a/Agent/KPS/LabelPrinter.cs b/Agent/KPS/LabelPrinter.cs new file mode 100644 index 0000000..0439891 --- /dev/null +++ b/Agent/KPS/LabelPrinter.cs @@ -0,0 +1,385 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO.Ports; +using System.ComponentModel; + +using Cosmos.CommonManager; +using Cosmos.UserFrame; + +namespace Cosmos.KPS +{ + public class LabelPrinter + { + #region 클래스 변수 선언 + private static SerialPort m_cSerialPort = null; + #endregion 클래스 변수 선언 + + #region 생성자 + public LabelPrinter() + { + + } + #endregion 생성자 + + #region OPEN / CLOSE 처리 함수 + public bool OpenLabelPrinter(string sSerialPort, long lBaudrate) + { + bool bRet = false; + + try + { + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]"); + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + if (m_cSerialPort != null) + { + //grayber@20180307 시리얼 포트 flush 추가 start - Open 함수 Input Output 버퍼 삭제 (주석처리) + // 추가 + if (m_cSerialPort.IsOpen != true) // 시리얼포트 오픈 실패 + { + m_cSerialPort.Open(); // 시리얼포트 오픈 + } + //m_cSerialPort.DiscardOutBuffer(); + //m_cSerialPort.DiscardInBuffer(); + //UserLog.WriteLogFile(UserCom.LOG_OP, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // "▶▶ [Open InOut Buffer Clear]"); + + bRet = true; + //grayber@20180307 시리얼 포트 flush 추가 end + return bRet; + } + + if(m_cSerialPort == null) + { + m_cSerialPort = new SerialPort(); + if(m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT ERROR"); + return bRet; + } + + m_cSerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + m_cSerialPort.PinChanged += new SerialPinChangedEventHandler(serialPort_PinChanged); + m_cSerialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + + m_cSerialPort.NewLine = "\r\n"; + m_cSerialPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + + m_cSerialPort.WriteBufferSize = 1024 * 1024; + m_cSerialPort.PortName = sSerialPort; + m_cSerialPort.BaudRate = (int)lBaudrate; + m_cSerialPort.DataBits = 8; + m_cSerialPort.StopBits = StopBits.One; + m_cSerialPort.Parity = Parity.None; + m_cSerialPort.Handshake = Handshake.None; + m_cSerialPort.ReadTimeout = 500; + m_cSerialPort.WriteTimeout = 2000; + + m_cSerialPort.Open(); + if(m_cSerialPort.IsOpen == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT OPEN ERROR"); + + return bRet; + } + + bRet = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]" + bRet); + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + return bRet; + } + + public bool CloseLabelPrinter() + { + bool bRet = false; + try + { + if (m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_cSerialPort == null)"); + return bRet; + } + + //grayber@20180307 시리얼 포트 flush 추가 start - Close 함수 Input Output 버퍼 삭제 + // 추가 + m_cSerialPort.DiscardOutBuffer(); + m_cSerialPort.DiscardInBuffer(); + //grayber@20180307 시리얼 포트 flush 추가 end + + m_cSerialPort.Close(); + bRet = true; + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (기존) + //m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE] Close InOut Buffer Clear :" + bRet); + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (변경) + m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + + return bRet; + } + #endregion OPEN / CLOSE 처리 함수 + + #region SerialPort 이벤트 + private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + SerialPort serialPort = (SerialPort)sender; + + try + { + byte[] bytRecvBuf = new byte[serialPort.BytesToRead]; + + //grayber@20180307 시리얼 포트 flush 추가 start - DataReceived 시리얼 포트 null check + // 기존 + //serialPort.Read(bytRecvBuf, 0, bytRecvBuf.Length); + // 변경 + if (serialPort != null && serialPort.IsOpen == true) // 시리얼포트 객체 및 오픈 확인 + { + serialPort.Read(bytRecvBuf, 0, bytRecvBuf.Length); + + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [RECV] " + Encoding.UTF8.GetString(bytRecvBuf)); + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + } + //grayber@20180307 시리얼 포트 flush 추가 end + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void serialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + + } + + private void serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + + } + #endregion SerialPort 이벤트 + + #region 출력 함수 + /// + /// 중량 출력 + /// + /// 상품명 : 중량g + /// 중량 + /// YYYY-MM-DD HH:MM:SS + /// 점포명 + public void PrintLabelInfoPrintWeightInfo(string sContent, string sDateTime, string sStoreNm) + { + string[] sCommands = null; + + try + { + + sCommands = new string[] { "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "FONT \"HYGothic-Medium\",12\r\n" + , "NASC 949\r\n" // intermec 한글폰트 설정 + , "PRPOS 0,150\r\n" + , "PRTXT \"" + sContent + "\"\r\n" + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 0,110\r\n" + , "PRTXT \"" + sDateTime + "\"\r\n" + , "PRPOS 0,70\r\n" + , "PRTXT \"" + sStoreNm + "\"\r\n" + , "PRPOS 0,30\r\n" + , "PRTXT \"배달은 해피오더 / 1670-3131\"\r\n" //#10856_[BR] 저울 중량 라벨프린터 양식 변경_hs + , "PF\r\n" }; + + if (sCommands != null) + WriteCommand(sCommands); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void PrintWeightInfo(string sContent, string sFlavour1, string sFlavour2, string sOrdDateTime, string sPckDateTime) + { + string[] sCommands = null; + + try + { + // EX) + // 패밀리 / 980g (5516) + // 플레이버1/플레이버2/플레이버3 + // 플레이버4/플레이버5/플레이버6 + // + // 주문 YYYY-MM-DD HH시MM분 + // 포장 YYYY-MM-DD HH시MM분 + sCommands = new string[] { "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "FONT \"HYGothic-Medium\",12\r\n" + , "NASC 949\r\n" + , "PRPOS 0,190\r\n" + , "PRTXT \"" + sContent + "\"\r\n" + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 0,150\r\n" + , "PRTXT \"" + sFlavour1 + "\"\r\n" + , "PRPOS 0,110\r\n" + , "PRTXT \"" + sFlavour2 + "\"\r\n" + , "PRPOS 0,50\r\n" + , "PRTXT \"" + sOrdDateTime + "\"\r\n" + , "PRPOS 0,10\r\n" + , "PRTXT \"" + sPckDateTime + "\"\r\n" + , "PF\r\n" }; + + if (sCommands != null) + WriteCommand(sCommands); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 출력 함수 + + //#20180515 KPS 출력시 라벨프린터 출력 start + #region KPS 출력시 라벨프린터 출력 함수 + /// + /// 중량 출력KPS 출력시 라벨프린터 출력 + /// + /// 출력데이터 + public void PrintLabelInfo(string sContent) + { + string[] sCommands = null; + + try + { + sCommands = new string[] { sContent }; + + if (sCommands != null) + WriteCommand(sCommands); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 출력 함수 + //#20180515 KPS 출력시 라벨프린터 출력 end + + #region 명령어 전송 함수 + /// + /// 시리얼포트에 명령어를 전송 + /// + /// + private void WriteCommand(string[] sCommands) + { + try + { + foreach(string cmd in sCommands) + { + m_cSerialPort.Write(cmd); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 명령어 전송 함수 + } +} diff --git a/Agent/KPS/OPOSPrint.cs b/Agent/KPS/OPOSPrint.cs new file mode 100644 index 0000000..a44610d --- /dev/null +++ b/Agent/KPS/OPOSPrint.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Cosmos.KPS +{ + class OPOSPrint + { + #region 위치 + public enum Position + { + Top, + Buttom, + TopAndButtom + } + public enum Alignment + { + Center, + Left, + Right + } + #endregion + + #region Character size/Filter + /// + /// Character size horizontal [넓이 배율 1~8] + /// + public enum CharactersizeH + { + H_1, + H_2, + H_3, + H_4, + H_5, + H_6, + H_7, + H_8 + } + /// + /// Character size vertical [높이 배율 1~8] + /// + public enum CharactersizeV + { + V_1, + V_2, + V_3, + V_4, + V_5, + V_6, + V_7, + V_8 + } + + /// + /// Bold 체 여부 + /// + public enum TextBold + { + Nomal, + Bold + } + + /// + /// 밑줄(UnderLine) + /// + public enum TextUnderLine + { + Nomal, + UnderLine + } + + /// + /// 반전 Text 효과 + /// + public enum TextReverseMode + { + Nomal, + ReverseMode + } + + #endregion + + #region OposPrint + /// + /// Text Print + /// 문자열을 출력 합니다. + /// + /// 출력할 문자 + /// 정렬(Left, Center, Right) + /// 세로확대(1배~8배) + /// 가로확대(1배~8배) + /// 굵은글씨(BOLD) + /// 밑줄(UnderLine) + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, CharactersizeV eVerticalSize, CharactersizeH eHorizontalSize, TextBold eBold, TextUnderLine eTextUnderLine, TextReverseMode eTextReverseMode, bool bLineFeed) + { + bool bRet = false; + string sCmdctrlTmp = ""; + + string ESC = String.Format("{0}", (char)27); + string SP = String.Format("{0}", (char)20); + //string ESC_CUT = Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + ESC + "|P"; + //string ESC_FEEDCUT = Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + ESC + "|fP"; + string ESC_CUT = ESC + "|50P"; + string ESC_FEEDCUT = ESC + "|100fP"; + + string ESC_BITMAP1 = ESC + "|1B"; + string ESC_BITMAP2 = ESC + "|2B"; + string ESC_TOPLOGO = ESC + "|tL"; + string ESC_BTMLOGO = ESC + "|bL"; + string ESC_LINEFEED = ESC + "|lF"; + string ESC_FEED = ESC + "|uF"; + //string ESC_BOLD = ESC + "|bC"; + //string ESC_NOT_BOLD = ESC + "|!bC"; + string ESC_UNDERLINE = ESC + "|uC"; + string ESC_COLOR = ESC + "|rC"; + //string ESC_REVERSE = ESC + "|rvC"; + //string ESC_NOT_REVERSE = ESC + "|!rvC"; + string ESC_1MAG = ESC + "|1C"; + string ESC_2MAG = ESC + "|4C"; + string ESC_HMAG = ESC + "|2C"; + string ESC_VMAG = ESC + "|3C"; + + string ESC_H1MAG = ESC + "|1hC"; + string ESC_V1MAG = ESC + "|1vC"; + string ESC_H2MAG = ESC + "|2hC"; + string ESC_V2MAG = ESC + "|2vC"; + string ESC_H3MAG = ESC + "|3hC"; + string ESC_V3MAG = ESC + "|3vC"; + string ESC_H4MAG = ESC + "|4hC"; + string ESC_V4MAG = ESC + "|4vC"; + string ESC_H5MAG = ESC + "|5hC"; + string ESC_V5MAG = ESC + "|5vC"; + string ESC_H6MAG = ESC + "|6hC"; + string ESC_V6MAG = ESC + "|6vC"; + string ESC_H7MAG = ESC + "|7hC"; + string ESC_V7MAG = ESC + "|7vC"; + string ESC_H8MAG = ESC + "|8hC"; + string ESC_V8MAG = ESC + "|8vC"; + string ESC_CENTER = ESC + "|cA"; + string ESC_RIGHT = ESC + "|rA"; + string ESC_NORMAL = ESC + "|N"; + + + sCmdctrlTmp = ""; + + //정렬 + switch (eAlignment) + { + case Alignment.Center: sCmdctrlTmp += ESC_CENTER; break; + case Alignment.Right: sCmdctrlTmp += ESC_RIGHT; break; + case Alignment.Left: sCmdctrlTmp += ESC_NORMAL; break; + } + + //확대 Command를 설정. + //sCmdctrlTmp = GetCharactersizeCmd(eVerticalSize, eHorizontalSize); + + switch (eVerticalSize) + { + case CharactersizeV.V_2: sCmdctrlTmp += ESC_V2MAG; break; + case CharactersizeV.V_3: sCmdctrlTmp += ESC_V3MAG; break; + case CharactersizeV.V_4: sCmdctrlTmp += ESC_V3MAG; break; + case CharactersizeV.V_5: sCmdctrlTmp += ESC_V4MAG; break; + case CharactersizeV.V_6: sCmdctrlTmp += ESC_V5MAG; break; + case CharactersizeV.V_7: sCmdctrlTmp += ESC_V7MAG; break; + case CharactersizeV.V_8: sCmdctrlTmp += ESC_V8MAG; break; + default: sCmdctrlTmp += ESC_V1MAG; break; + } + switch (eHorizontalSize) + { + case CharactersizeH.H_2: sCmdctrlTmp += ESC_H2MAG; break; + case CharactersizeH.H_3: sCmdctrlTmp += ESC_H3MAG; break; + case CharactersizeH.H_4: sCmdctrlTmp += ESC_H3MAG; break; + case CharactersizeH.H_5: sCmdctrlTmp += ESC_H4MAG; break; + case CharactersizeH.H_6: sCmdctrlTmp += ESC_H5MAG; break; + case CharactersizeH.H_7: sCmdctrlTmp += ESC_H7MAG; break; + case CharactersizeH.H_8: sCmdctrlTmp += ESC_H8MAG; break; + default: sCmdctrlTmp += ESC_H1MAG; break; + } + + //UnderLine + if (eTextUnderLine == TextUnderLine.UnderLine) + sCmdctrlTmp += ESC_UNDERLINE; + + //Bold + //if (TextBold.Bold == eBold) + // sCmdctrlTmp += ESC_BOLD; + //else + // sCmdctrlTmp += ESC_NOT_BOLD; + + //Reverse + //if (TextReverseMode.ReverseMode == eTextReverseMode) + // sCmdctrlTmp += ESC_REVERSE; + //else + // sCmdctrlTmp += ESC_NOT_REVERSE; + + if (sValue != "") + { + + } + + if (bLineFeed == true) + { + sValue = sCmdctrlTmp + sValue + "\r\n"; + } + + //출력 + int nRet = pOPOSPrint.PrintNormal(OPOS.PTR_S_RECEIPT, sValue); + + return bRet; + } + + /// + /// Text Print + /// 문자열을 출력 합니다. + /// + /// 출력할 문자 + /// 정렬(Left, Center, Right) + /// 세로확대(1배~8배) + /// 가로확대(1배~8배) + /// 굵은글씨(BOLD) + /// 밑줄(UnderLine) + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, CharactersizeV eVerticalSize, CharactersizeH eHorizontalSize, TextBold eBold, TextUnderLine eTextUnderLine, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, eAlignment, eVerticalSize, eHorizontalSize, eBold, eTextUnderLine, TextReverseMode.Nomal, bLineFeed); + } + /// + /// 문자열을 출력 합니다. + /// + /// 출력할 문자 + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, Alignment.Left, CharactersizeV.V_1, CharactersizeH.H_1, TextBold.Nomal, TextUnderLine.Nomal, TextReverseMode.Nomal, bLineFeed); + } + /// + /// 문자열을 출력 합니다. + /// + /// 출력할 문자 + /// 정렬(Left, Center, Right) + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, eAlignment, CharactersizeV.V_1, CharactersizeH.H_1, TextBold.Nomal, TextUnderLine.Nomal, TextReverseMode.Nomal, bLineFeed); + } + /// + /// 문자열을 출력 합니다. + /// + /// 출력할 문자 + /// 정렬(Left, Center, Right) + /// 세로확대(1배~8배) + /// 가로확대(1배~8배) + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, CharactersizeV eVerticalSize, CharactersizeH eHorizontalSize, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, eAlignment, eVerticalSize, eHorizontalSize, TextBold.Nomal, TextUnderLine.Nomal, TextReverseMode.Nomal, bLineFeed); + } + /// + /// 문자열을 출력 합니다. + /// 진한문자열을 출력 할 수 있습니다. + /// + /// 출력할 문자 + /// 정렬(Left, Center, Right) + /// 굵은글씨(BOLD) + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, TextBold eBold, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, eAlignment, CharactersizeV.V_1, CharactersizeH.H_1, eBold, TextUnderLine.Nomal, TextReverseMode.Nomal, bLineFeed); + } + /// + /// 문자열을 출력 합니다. + /// 진한문자열을 출력 할 수 있습니다. + /// + /// 출력할 문자 + /// 정렬(Left, Center, Right) + /// 굵은글씨(BOLD) + /// LineFeed 여부 + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, TextUnderLine eTextUnderLine, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, eAlignment, CharactersizeV.V_1, CharactersizeH.H_1, TextBold.Nomal, eTextUnderLine, TextReverseMode.Nomal, bLineFeed); + } + + /// + /// 문자열을 출력 합니다. + /// 역상 출력을 합니다. + /// + /// 출력 할 문자 + /// 정렬(Left, Center, Right) + /// 반전출력 모드 설정(Reverse Mode) + /// + /// + public static bool OposTextPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue, Alignment eAlignment, TextReverseMode eTextReverseMode, bool bLineFeed) + { + return OposTextPrint(pOPOSPrint, sValue, Alignment.Left, CharactersizeV.V_1, CharactersizeH.H_1, TextBold.Nomal, TextUnderLine.Nomal, eTextReverseMode, bLineFeed); + } + #endregion + + + /// + /// 문자열을 출력 합니다. + /// 역상 출력을 합니다. + /// + /// 출력 할 문자 + /// 정렬(Left, Center, Right) + /// 반전출력 모드 설정(Reverse Mode) + /// + /// + public static bool OposBarPrint(AxOposPOSPrinter_CCO.AxOPOSPOSPrinter pOPOSPrint, string sValue) + { + int nStat = 0; + + if (sValue.Length % 2 == 0) + { + nStat = pOPOSPrint.PrintBarCode(OPOS.PTR_S_RECEIPT, sValue, OPOS.PTR_BCS_ITF, 50, 368, OPOS.PTR_BC_CENTER, OPOS.PTR_BC_TEXT_BELOW); + } + else + { + nStat = pOPOSPrint.PrintBarCode(OPOS.PTR_S_RECEIPT, "0" + sValue, OPOS.PTR_BCS_ITF, 50, 368, OPOS.PTR_BC_CENTER, OPOS.PTR_BC_TEXT_BELOW); + } + + return true; + } + } +} diff --git a/Agent/KPS/PrinterCommand.cs b/Agent/KPS/PrinterCommand.cs new file mode 100644 index 0000000..fe2dbea --- /dev/null +++ b/Agent/KPS/PrinterCommand.cs @@ -0,0 +1,878 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace Cosmos.KPS +{ + [Serializable] + public class PrinterCommand + { + #region 위치 + public enum Position + { + Top, + Buttom, + TopAndButtom, + None + } + public enum Alignment + { + Center, + Left, + Right + } + #endregion + + #region Character size/Filter + /// + /// Character size horizontal [넓이 배율 1~8] + /// + public enum CharactersizeH + { + H_1, + H_2, + H_3, + H_4, + H_5, + H_6, + H_7, + H_8 + } + /// + /// Character size vertical [높이 배율 1~8] + /// + public enum CharactersizeV + { + V_1, + V_2, + V_3, + V_4, + V_5, + V_6, + V_7, + V_8 + } + + /// + /// Bold 체 여부 + /// + public enum TextBold + { + Nomal, + Bold + } + + /// + /// 밑줄(UnderLine) + /// + public enum TextUnderLine + { + Nomal, + UnderLine + } + + /// + /// 반전 Text 효과 + /// + public enum TextReverseMode + { + Nomal, + ReverseMode + } + + #endregion + + #region Barcode Type + /// + /// Print Barcode + /// 1Dh, 6BH, m, d1, ...dk, 00H [0 ≤ m ≤ 6, 32 ≤ k ≤ 126, 1 ≤ k ≤ 255] + /// 1Dh, 6BH, m, n, d1, ...dn [65 ≤ m ≤ 73, 1 ≤ n ≤ 255, 0 ≤ d ≤ 127] + /// + public enum BarcodeType : int + { + UPC_A = 0, //m = 0, 65, + UPC_E = 1, //m = 1, 66 + EAN13_KAN13 = 2, //m = 2, 67 + EAN8_KAN8 = 3, //m = 3, 68 + COE39 = 4, //m = 4, 69 + ITF = 5, //m = 5, 70 + CODEBAR = 6, //m = 6, 71 + CODE93 = 72, //m = 72 + CODE128 = 73 //m = 73 + } + #endregion + + #region Error Code + public const int PRT_SUCCESS = 0; + #endregion + + #region "StatusUpdateEvent" Event: "Data" Parameter Constants + public const int PTR_SUE_COVER_OPEN = 11; + public const int PTR_SUE_COVER_OK = 12; + public const int PTR_SUE_JRN_EMPTY = 21; + public const int PTR_SUE_JRN_NEAREMPTY = 22; + public const int PTR_SUE_JRN_PAPEROK = 23; + public const int PTR_SUE_REC_EMPTY = 24; + public const int PTR_SUE_REC_NEAREMPTY = 25; + public const int PTR_SUE_REC_PAPEROK = 26; + public const int PTR_SUE_SLP_EMPTY = 27; + public const int PTR_SUE_SLP_NEAREMPTY = 28; + public const int PTR_SUE_SLP_PAPEROK = 29; + public const int PTR_SUE_JRN_CARTRIDGE_EMPTY = 41; + public const int PTR_SUE_JRN_CARTRIDGE_NEAREMPTY = 42; + public const int PTR_SUE_JRN_HEAD_CLEANING = 43; + public const int PTR_SUE_JRN_CARTRIDGE_OK = 44; + public const int PTR_SUE_REC_CARTRIDGE_EMPTY = 45; + public const int PTR_SUE_REC_CARTRIDGE_NEAREMPTY = 46; + public const int PTR_SUE_REC_HEAD_CLEANING = 47; + public const int PTR_SUE_REC_CARTRIDGE_OK = 48; + public const int PTR_Sue_Slp_CARTRIDGE_EMPTY = 49; + public const int PTR_Sue_Slp_CARTRIDGE_NEAREMPTY = 50; + public const int PTR_SUE_SLP_HEAD_CLEANING = 51; + public const int PTR_SUE_SLP_CARTRIDGE_OK = 52; + + public const int PTR_SUE_IDLE = 1001; + #endregion + + #region Default + public byte ESC = 0x1B; + public byte SP = 0x14; + + public byte ESC_CR = 0x0D; + public byte ESC_LF = 0x0A; + public byte ESC_FF = 0xFF; + + public byte[] ESC_INITPRINTER = { 0x1B, 0x40 }; //Printer 초기화 + + //1BH, 74H, n n=1(Katakana) + //1BH, 52H, n n=0(USA), n=8(Japan), n=13(korea) 'Select an international characer set + //1CH, 43H, n n=0,48 JIS code system , n=1,49 Shift JIS code system. + public byte[] ESC_LANGE = { 0x1B, 0x74, 0x01, + 0x1B, 0x52, 0x08, + 0x1C, 0x43, 0x01, + 0x1C, 0x26 }; + + /// + /// Buffer clear + /// [10H, 14H, 08H, d1......d7] + /// [d1=1, d2=3, d3=20, d4=1, d5=6, d6=2, d7=8] + /// + public byte[] ESC_BUFFERCLEAR = { 0x10, 0x14, 0x08, 0x01, 0x03, 0x14, 0x01, 0x06, 0x02, 0x08 }; + #endregion + + #region Request Status (상태 전송) + public byte[] ESC_REQ_SUATUS_PAPER_SENSOR = { 0x1D, 0x72, 0x01 }; //용지 센서 상태를 송신합니다 + public byte[] ESC_REQ_SUATUS_PAPER_SENSOR1 = { 0x1D, 0x72, 0x31 }; //용지 센서 상태를 송신합니다 + + public byte[] ESC_REQ_SUATUS_DRAW_CON = { 0x1D, 0x72, 0x02 }; //캐쉬 드로어 커넥터 상태를 송신 합니다. + public byte[] ESC_REQ_SUATUS_DRAW_CON1 = { 0x1D, 0x72, 0x32 }; //캐쉬 드로어 커넥터 상태를 송신 합니다. + + //public byte[] ESC_REQ_SUATUS_PAPER_SENSOR2 = { 0x1B, 0x63, 0x33 }; //용지 센서 상태를 송신합니다 + #endregion + + #region BarCode Commad + //Select printing position for HRI character + /// + /// HRI Print 안함 + /// + public byte[] ESC_HRI_NOTPRINT = { 0x1D, 0x48, 0x00 }; + /// + /// Barcode 상단에 HRI Print + /// + public byte[] ESC_HRI_TOPPRINT = { 0x1D, 0x48, 0x01 }; + /// + /// Barcode 아래에 HRI Print + /// + public byte[] ESC_HRI_BELOWPRINT = { 0x1D, 0x48, 0x02 }; + /// + /// Barcode 위,아래에 HRI Print + /// + public byte[] ESC_HRI_TOPANDBELOWPRINT = { 0x1D, 0x48, 0x03 }; + + #endregion + + #region Alignment + public byte[] ESC_CENTER = { 0x1B, 0x61, 0x01 }; // CENTER 정렬 + public byte[] ESC_RIGHT = { 0x1B, 0x61, 0x02 }; // 오른쪽 정렬 + public byte[] ESC_LEFT = { 0x1B, 0x61, 0x00 }; // 왼쪽 정렬 + #endregion + + #region Text + + public byte[] ESC_NORMAL = { 0x1B, 0x21, 0x00, 0x1C, 0x21, 0x00 }; //보통문자 + + #region Select print mode + // [Format] 1BH, 21H, n + // [Valid limits] 0<=n<=255 + // [Initial value] n=0 + //┌──┬────────────┬────────────────────┐ + //│ │ │ Value │ + //│Bit │ Function ├─────────┬──────────┤ + //│ │ │ 0 │ 1 │ + //├──┼────────────┼─────────┼──────────┤ + //│ 0 │Character font │Font A is selected│Font B/C is selected│ + //├──┼────────────┼─────────┼──────────┤ + //│ 1 │To be defined │ -- │ -- │ + //├──┼────────────┼─────────┼──────────┤ + //│ 2 │To be defined │ -- │ -- │ + //├──┼────────────┼─────────┼──────────┤ + //│ 3 │Emphasized printing │ Candel │ Specify │ + //├──┼────────────┼─────────┼──────────┤ + //│ 4 │Double character height │ Candel │ Specify │ + //├──┼────────────┼─────────┼──────────┤ + //│ 5 │Double character width │ Candel │ Specify │ + //├──┼────────────┼─────────┼──────────┤ + //│ 6 │To be defined │ -- │ -- │ + //├──┼────────────┼─────────┼──────────┤ + //│ 7 │Underline │ Candel │ Specify │ + //└──┴────────────┴─────────┴──────────┘ + + + public byte[] ESC_FontA = { 0x1B, 0x21, 0x00 }; // Font A 인쇄 + public byte[] ESC_FontBC = { 0x1B, 0x21, 0x01 }; // Font B/C 인쇄 + + public byte[] ESC_DOUBLE = { 0x1B, 0x21, 0x30, 0x1C, 0x57, 0x01 }; // 가로세로 2배 확대 + public byte[] ESC_DBLHEIGH = { 0x1B, 0x21, 0x10, 0x1C, 0x21, 0x08 }; // 세로 2배 확대 + public byte[] ESC_DBLWIDTH = { 0x1B, 0x21, 0x20, 0x1C, 0x21, 0x04 }; // 가로 2배 확대 ESC + "|2hC" + + public byte[] ESC_UNDERLINE = { 0x1B, 0x21, 0x80 }; // UnderLine ESC + "|uC" + public byte[] ESC_UNDERLINEON1DOT = { 0x1B, 0x2D, 0x01 }; // UnderLine Mode On 1Dot + public byte[] ESC_UNDERLINEON2DOT = { 0x1B, 0x2D, 0x02 }; // UnderLine Mode On 2Dot + public byte[] ESC_UNDERLINEOFF = { 0x1B, 0x2D, 0x00 }; // UnderLine Mode Off + #endregion + + #region Set Character size + public byte[] ESC_VHMAG = { 0x1D, 0x21 }; // 배율확대확대 인쇄(FontSize) + + public byte[] ESC_H1MAG = { 0x1D, 0x21, 0x00 }; // 가로 1배확대 인쇄(FontSize) + public byte[] ESC_V1MAG = { 0x1D, 0x21, 0x00 }; // 세로 1배확대 인쇄(FontSize) + + public byte[] ESC_H2Y2MAG = { 0x1D, 0x21, 0x11 }; // 가로/세로 2배 확대 + public byte[] ESC_H2MAG = { 0x1D, 0x21, 0x10 }; // 가로 2배확대 인쇄(FontSize) + public byte[] ESC_V2MAG = { 0x1D, 0x21, 0x01 }; // 세로 2배확대 인쇄(FontSize) + + public byte[] ESC_H3MAG = { 0x1D, 0x21, 0x20 }; // 가로 3배확대 인쇄(FontSize) + public byte[] ESC_V3MAG = { 0x1D, 0x21, 0x02 }; // 세로 3배확대 인쇄(FontSize) + + public byte[] ESC_H4MAG = { 0x1D, 0x21, 0x30 }; // 가로 4배확대 인쇄(FontSize) + public byte[] ESC_V4MAG = { 0x1D, 0x21, 0x03 }; // 세로 4배확대 인쇄(FontSize) + + public byte[] ESC_H5MAG = { 0x1D, 0x21, 0x40 }; // 가로 5배확대 인쇄(FontSize) + public byte[] ESC_V5MAG = { 0x1D, 0x21, 0x04 }; // 세로 5배확대 인쇄(FontSize) + + public byte[] ESC_H6MAG = { 0x1D, 0x21, 0x50 }; // 가로 6배확대 인쇄(FontSize) + public byte[] ESC_V6MAG = { 0x1D, 0x21, 0x05 }; // 세로 6배확대 인쇄(FontSize) + + public byte[] ESC_H7MAG = { 0x1D, 0x21, 0x60 }; // 가로 7배확대 인쇄(FontSize) + public byte[] ESC_V7MAG = { 0x1D, 0x21, 0x06 }; // 세로 7배확대 인쇄(FontSize) + + public byte[] ESC_H8MAG = { 0x1D, 0x21, 0x70 }; // 가로 8배확대 인쇄(FontSize) + public byte[] ESC_V8MAG = { 0x1D, 0x21, 0x07 }; // 세로 8배확대 인쇄(FontSize) + #endregion + + #region Set Bold On/Off + public byte[] ESC_BOLD_ON = { 0x1B, 0x45, 0x01 }; // 진하게 인쇄선언 + public byte[] ESC_BOLD_OFF = { 0x1B, 0x45, 0x00 }; // 진하게 인쇄선언해제 + public byte[] ESC_BOLD = { 0x1B, 0x21, 0x08 }; //'진하게 ESC + "|bC" + #endregion + + #region Set Reverse Mode On/Off + /// + /// On Reverse Mode + /// + public byte[] ESC_REVERSE_MODE_ON = { 0x1D, 0x42, 0x01 };//ESC + "|rvC" + /// + /// Off Revers Mode + /// + public byte[] ESC_REVERSE_MODE_OFF = { 0x1D, 0x42, 0x00 };//ESC + "|!rvC" + #endregion + + /* + 'ESC_CUT = Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + ESC + "|P" + ESC_CUT = ESC + "|50P" + 'ESC_FEEDCUT = Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + Chr(&HA) + ESC + "|fP" + ESC_FEEDCUT = ESC + "|100fP" + + + ESC_BITMAP1 = ESC + "|1B" + ESC_BITMAP2 = ESC + "|2B" + ESC_TOPLOGO = ESC + "|tL" + ESC_BTMLOGO = ESC + "|bL" + ESC_LINEFEED = ESC + "|lF" + ESC_FEED = ESC + "|uF" + + ESC_NOT_BOLD = ESC + "|!bC" + ESC_COLOR = ESC + "|rC" + + ESC_1MAG = ESC + "|1C" + ESC_2MAG = ESC + "|4C" + ESC_HMAG = ESC + "|2C" + ESC_VMAG = ESC + "|3C" + ESC_CENTER = ESC + "|cA" + ESC_RIGHT = ESC + "|rA" + + */ + + #endregion + + #region Cut paper + [Browsable(false), Category("Exception"), + Description("Cutting Command"), + DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + [AmbientValue("")] + public byte[] ESC_CUT = { 0x1D, 0x56, 0x31 }; //Convert.ToByte(49) }; + public byte[] ESC_FULLCUT = { 0x1B, 0x69 }; + public byte[] ESC_PARTCUT = { 0x1B, 0x6D }; + + #endregion + + #region Paper sensor to outpu paper out signals + //용지부족/용지없음 Sensor + public byte[] ESC_PAPERSENSOR_OFF = { 0x1B, 0x63, 0x33, 0x00 }; + public byte[] ESC_PAPERSENSOR_ON = { 0x1B, 0x63, 0x33, 0x0F }; + #endregion + + #region Paper sensor to stop printing + /// + /// Paper near end detector Valid + /// + public byte[] ESC_PAPER_NEAREND_0N = { 0x1B, 0x63, 0x34, 0x01 }; + /// + /// Paper near end detector InValid + /// + public byte[] ESC_PAPER_NEAREND_0FF = { 0x1B, 0x63, 0x34, 0x01 }; + #endregion + + #region Real-time status transmission + public byte[] ESC_TRANS_STATUS = { 0x10, 0x04, 0x01 }; + /// + /// Cover 상태 체크 명령어 + /// + public byte[] ESC_TRANS_OFFLINE = { 0x10, 0x04, 0x02 }; + public byte[] ESC_TRANS_ERR_STUS = { 0x10, 0x04, 0x03 }; + /// + /// Paper 상태 체크 명령어 + /// + public byte[] ESC_TRANS_CONTI_STATUS = { 0x10, 0x04, 0x04 }; + #endregion + + #region Enable/disable automatic status back + public byte[] ESC_STATUSBACK = { 0x1d, 0x61, 0xCF }; + #endregion + + #region Select peripheral device + public byte[] ESC_DEVICE_PRT = { 0x1B, 0x3D, 0x01 }; + #endregion + + #region Open CashDrawer + public byte[] cmd_OpenCashDraerBox = { 0x1B, 0x70, 0x30 }; + #endregion + + #region Print Type + public enum PRT_CMD + { + NONE, //미지원 형식 + PRT_IMG, //Image + PRT_BAR, //바코드 + PRT_CUT, //CUT + PRT_NOR, //일반 문자 + PRT_BLD, //진하게 + PRT_VER, //세로확대 + PRT_HOR, //가로확대 + PRT_BIG, //가로/세로확대 + PRT_CNT, //가로확대+가운데 정렬 + PRT_JNL, //저널데이터 + PRT_DRW, //돈통열림 + ERROR //Error + } + + public string PRT_IMG = "[IMG]"; //Image + public string PRT_BAR = "[BAR]"; //바코드 + public string PRT_CUT = "[CUT]"; //CUT + public string PRT_NOR = "[NOR]"; //일반 문자 + public string PRT_BLD = "[BLD]"; //진하게 + public string PRT_VER = "[VER]"; //세로확대 + public string PRT_HOR = "[HOR]"; //가로확대 + public string PRT_BIG = "[BIG]"; //가로/세로확대 + public string PRT_CNT = "[CNT]"; //가로확대+가운데 정렬 + public string PRT_JNL = "[JNL]"; //저널데이터 + public string PRT_DRW = "[DRW]"; //돈통열림 + #endregion + + #region 상태체크 + /// + /// 상태체크(Paper, Drawer 상태 ) + /// Drawer 상태는 상태체크가 가능한 돈통에 한함. + /// + public enum CHK_PRT_STATUS + { + CHK_PAPER, + CHK_DRAWER + } + #endregion + } + + + /// + /// Printer Status Information + /// + [Serializable] + public class PrinterInformation + { + #region Printer Event + private bool[,] Infomation = new bool[8 * 4, 2]; + private enum eStatusInfo : int + { + //Event First Byte + /// + /// State of the drawer kick connector pin 3 [false:Low, true: High] + /// + DrwKickLH = 7 - 2, + /// + /// Online.offline [false: Online, true: Offline] + /// + OnOffLine = 7 - 3, + /// + /// Cover state [false:Closed, true : Open] + /// + Coverstate = 7 - 5, + /// + /// Paper feed by paper feed switch [false:Stopped, true : Operation] + /// + feedswitch = 7 - 6, + + //Event Second Byte(error information) + /// + /// Macro executing [false:Not execute, true : execute] + /// + MacroExecuting = 8 + 7 - 0, + /// + /// Panel switch[false:Off, true:On] + /// + Panelswitch = 8 + 7 - 1, + /// + /// Mechanical error(cover Open, Cutter Jam) [false:No, true: Yes] + /// + MechanicalErr = 8 * 7 - 2, + /// + /// Cutter jam [false:No, true: Yes] + /// + CutterJam = 8 * 7 - 3, + /// + /// Unrecoverable error[false:No, true:Yes] + /// + UnrecoverableErr = 8 + 7 - 5, + /// + /// Auto-recoverrable error detected [false:No, true:Yes] + /// + AutoRecoverableErr = 8 + 7 - 6, + + //Third byte(paper detector information) + /// + /// Roll Paper Near end detecter[false:Paper present, true Nopaper] + /// + PaperNearEnd_1 = 16 + 7 - 0, + /// + /// Roll Paper Near end detecter[false:Paper present, true Nopaper] + /// + PaperNearEnd_2 = 16 + 7 - 0, + /// + /// Roll Paper end detecter[false:Paper present, true Nopaper] + /// + PaperEnd_1 = 16 + 7 - 2, + /// + /// Roll Paper end detecter[false:Paper present, true Nopaper] + /// + PaperEnd_2 = 16 + 7 - 3, + + //Fourth byte (paper detector information) + /// + /// F/W down load Fail[false: Not Fail, true: Fail] + /// + FWdownLoadFail = 24 + 7 - 5 + } + public enum eSetStatusType : int + { + /// + /// PRINTER STATUS[First Byte] + /// + PRT_PRINTERINFOMATION, + /// + /// ERROR INFOMATION[Second Byte] + /// + PRT_ERRINFOMATION, + /// + /// Paper Status[Third Byte] + /// + PRT_PAPERINFOMATION, + /// + /// Firm Ware[Fourth Byte] + /// + PRT_FIRMWAREDOWN + } + #endregion + + #region All Set + public void SetAllData(char[] szData) + { + char[] szEvt = szData; + + //string bitStringFirst = str2bitstr(szData[0].ToString(), 1); + //string bitStringSecond = str2bitstr(szData[1].ToString(), 1); + //string bitStringThird = str2bitstr(szData[2].ToString(), 1); + //string bitStringFourth = str2bitstr(szData[3].ToString(), 1); + //string sBitInfo = bitStringFirst + bitStringSecond + bitStringThird + bitStringFourth; + + string sBitInfo = ""; + sBitInfo = str2bitstr(szData[0].ToString(), 1); + sBitInfo += str2bitstr(szData[1].ToString(), 1); + sBitInfo += str2bitstr(szData[2].ToString(), 1); + sBitInfo += str2bitstr(szData[3].ToString(), 1); + + + string sValue = ""; + for (int nRow = 0; nRow < Infomation.GetLength(0); nRow++) + { + sValue = sBitInfo.Substring(nRow, 1); + + Infomation[nRow, 1] = Infomation[nRow, 0] == (sValue == "1" ? true : false) ? false : true; + Infomation[nRow, 0] = sValue == "1" ? true : false; + } + + //bool DrawerKick = Infomation[eStatusInfo.DrwKickLH]; + } + public char[] GetAllData() + { + string sRet = ""; + string szTemp = ""; + + for (int nRow = 0; nRow < Infomation.Length; nRow++) + { + szTemp += Infomation[nRow, 1] == true ? "1" : "0"; + } + return sRet.ToCharArray(); + } + #endregion + + #region Printer Status First/Second/Third/Fourth Byte Set + public void SetPrintStatus(eSetStatusType eType, char szData) + { + string sBitInfo = str2bitstr(szData.ToString(), 1); + + int nStart = 0; + switch (eType) + { + case eSetStatusType.PRT_PRINTERINFOMATION: nStart = 0; break; + case eSetStatusType.PRT_ERRINFOMATION: nStart = 8; break; + case eSetStatusType.PRT_PAPERINFOMATION: nStart = 16; break; + case eSetStatusType.PRT_FIRMWAREDOWN: nStart = 24; break; + default: return; + } + string sValue = ""; + for (int nRow = 0; nRow < 8; nRow++) + { + sValue = sBitInfo.Substring(nRow, 1); + + Infomation[nStart + nRow, 1] = Infomation[nStart + nRow, 0] == (sValue == "1" ? true : false) ? false : true; + Infomation[nStart + nRow, 0] = sValue == "1" ? true : false; + } + } + #endregion + + #region First Byte(Printer Infomation) + /// + /// [Printer Status Infomation] + /// State of the drawer kick connector pin3 + /// FALSE: Low, TRUE : High + /// + public bool IsDrawerKickLoHi { get { return Infomation[(int)eStatusInfo.DrwKickLH, 0]; } set { Infomation[(int)eStatusInfo.DrwKickLH, 0] = value; } } + public bool IsDrawerKickLoHiChange { get { bool bRet = Infomation[(int)eStatusInfo.DrwKickLH, 1]; Infomation[(int)eStatusInfo.DrwKickLH, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.DrwKickLH, 1] = value; } } + /// + /// [Printer Status Infomation] + /// OnLine / OffLine + /// FALSE : OnLine, TRUE ; OffLine + /// + public bool IsOffLine { get { return Infomation[(int)eStatusInfo.OnOffLine, 0]; } set { Infomation[(int)eStatusInfo.OnOffLine, 0] = value; } } + public bool IsOffLineChange { get { bool bRet = Infomation[(int)eStatusInfo.OnOffLine, 1]; Infomation[(int)eStatusInfo.OnOffLine, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.OnOffLine, 1] = value; } } + /// + /// [Printer Status Infomation] + /// Cover Open + /// FALSE : Closed, TRUE : Open + /// + public bool IsCoverOpen { get { return Infomation[(int)eStatusInfo.Coverstate, 0]; } set { Infomation[(int)eStatusInfo.Coverstate, 0] = value; } } + public bool IsCoverOpenChange { get { bool bRet = Infomation[(int)eStatusInfo.Coverstate, 1]; Infomation[(int)eStatusInfo.Coverstate, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.Coverstate, 1] = value; } } + /// + /// [Printer Status Infomation] + /// Feed Switch + /// FALSE : stop, TRUE : operating + /// + public bool Isfeedswitch { get { return Infomation[(int)eStatusInfo.feedswitch, 0]; } set { Infomation[(int)eStatusInfo.feedswitch, 0] = value; } } + public bool IsfeedswitchChange { get { bool bRet = Infomation[(int)eStatusInfo.feedswitch, 1]; Infomation[(int)eStatusInfo.feedswitch, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.feedswitch, 1] = value; } } + #endregion + + #region Second Byte(error information) + /// + /// [Error Information] + /// IsMacroExecuting + /// FALSE : Not Excuting, TRUE : Excuting + /// + public bool IsMacroExecuting { get { return Infomation[(int)eStatusInfo.MacroExecuting, 0]; } set { Infomation[(int)eStatusInfo.MacroExecuting, 0] = value; } } + public bool IsMacroExecutingChange { get { bool bRet = Infomation[(int)eStatusInfo.MacroExecuting, 1]; Infomation[(int)eStatusInfo.MacroExecuting, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.MacroExecuting, 1] = value; } } + /// + /// [Error Information] + /// Panel switch + /// FALSE : OFF, TRUE : ON + /// + public bool IsPanelswitch { get { return Infomation[(int)eStatusInfo.Panelswitch, 0]; } set { Infomation[(int)eStatusInfo.Panelswitch, 0] = value; } } + public bool IsPanelswitchChange { get { bool bRet = Infomation[(int)eStatusInfo.Panelswitch, 1]; Infomation[(int)eStatusInfo.Panelswitch, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.Panelswitch, 1] = value; } } + /// + /// [Error Information] + /// Mechanical Error + /// (Cover oen, Cutter jam) + /// FALSE : No, TRUE : Yes + /// + public bool IsMechanicalError { get { return Infomation[(int)eStatusInfo.MechanicalErr, 0]; } set { Infomation[(int)eStatusInfo.MechanicalErr, 0] = value; } } + public bool IsMechanicalErrorChange { get { bool bRet = Infomation[(int)eStatusInfo.MechanicalErr, 1]; Infomation[(int)eStatusInfo.MechanicalErr, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.MechanicalErr, 1] = value; } } + /// + /// [Error Information] + /// Cutter jam + /// FALSE : No, TRUE : Yes + /// + public bool IsCutterJam { get { return Infomation[(int)eStatusInfo.CutterJam, 0]; } set { Infomation[(int)eStatusInfo.CutterJam, 0] = value; } } + public bool IsCutterJamChange { get { bool bRet = Infomation[(int)eStatusInfo.CutterJam, 1]; Infomation[(int)eStatusInfo.CutterJam, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.CutterJam, 1] = value; } } + /// + /// [Error Information] + /// Unrecoverable Error + /// FALSE : No, TRUE : Yes + /// + public bool IsUnrecoverableErr { get { return Infomation[(int)eStatusInfo.UnrecoverableErr, 0]; } set { Infomation[(int)eStatusInfo.UnrecoverableErr, 0] = value; } } + public bool IsUnrecoverableErrChange { get { bool bRet = Infomation[(int)eStatusInfo.UnrecoverableErr, 1]; Infomation[(int)eStatusInfo.UnrecoverableErr, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.UnrecoverableErr, 1] = value; } } + /// + /// [Error Information] + /// Auto-Recoverable Error detected + /// FALSE : No, TRUE : Yes + /// + public bool IsAutoRecoverableErr { get { return Infomation[(int)eStatusInfo.AutoRecoverableErr, 0]; } set { Infomation[(int)eStatusInfo.AutoRecoverableErr, 0] = value; } } + public bool IsAutoRecoverableErrChange { get { bool bRet = Infomation[(int)eStatusInfo.AutoRecoverableErr, 1]; Infomation[(int)eStatusInfo.AutoRecoverableErr, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.AutoRecoverableErr, 1] = value; } } + #endregion + + #region Third byte(paper detector information) + /// + /// [paper detector information] + /// Roll paper near end detector + /// FALSE : Paper present , TRUE : No paper + /// + private bool IsPaperNearEnd_1 { get { return Infomation[(int)eStatusInfo.PaperNearEnd_1, 0]; } set { Infomation[(int)eStatusInfo.PaperNearEnd_1, 0] = value; } } + private bool IsPaperNearEnd_1Change { get { bool bRet = Infomation[(int)eStatusInfo.PaperNearEnd_1, 1]; Infomation[(int)eStatusInfo.PaperNearEnd_1, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.PaperNearEnd_1, 1] = value; } } + /// + /// [paper detector information] + /// Roll paper near end detector + /// FALSE : Paper present , TRUE : No paper + /// + private bool IsPaperNearEnd_2 { get { return Infomation[(int)eStatusInfo.PaperNearEnd_2, 0]; } set { Infomation[(int)eStatusInfo.PaperNearEnd_2, 0] = value; } } + private bool IsPaperNearEnd_2Change { get { bool bRet = Infomation[(int)eStatusInfo.PaperNearEnd_2, 1]; Infomation[(int)eStatusInfo.PaperNearEnd_2, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.PaperNearEnd_2, 1] = value; } } + /// + /// [paper detector information] + /// Roll paper near end detector + /// FALSE : Paper present , TRUE : No paper + /// + public bool IsPaperNearEnd { get { if (IsPaperNearEnd_1 && IsPaperNearEnd_2)return true; else return false; } set { IsPaperNearEnd_1 = value; IsPaperNearEnd_2 = value; } } + public bool IsPaperNearEndChange { get { if (IsPaperNearEnd_1Change && IsPaperNearEnd_2Change)return true; else return false; } set { IsPaperNearEnd_1Change = value; IsPaperNearEnd_2Change = value; } } + + /// + /// [paper detector information] + /// Roll paper end detector + /// FALSE : Paper present , TRUE : No paper + /// + private bool IsPaperEnd_1 { get { return Infomation[(int)eStatusInfo.PaperEnd_1, 0]; } set { Infomation[(int)eStatusInfo.PaperEnd_1, 0] = value; } } + private bool IsPaperEnd_1Change { get { bool bRet = Infomation[(int)eStatusInfo.PaperEnd_1, 1]; Infomation[(int)eStatusInfo.PaperEnd_1, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.PaperEnd_1, 1] = value; } } + /// + /// [paper detector information] + /// Roll paper end detector + /// FALSE : Paper present, TRUE : No paper + /// + private bool IsPaperEnd_2 { get { return Infomation[(int)eStatusInfo.PaperEnd_2, 0]; } set { Infomation[(int)eStatusInfo.PaperEnd_2, 0] = value; } } + private bool IsPaperEnd_2Change { get { bool bRet = Infomation[(int)eStatusInfo.PaperEnd_2, 1]; Infomation[(int)eStatusInfo.PaperEnd_2, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.PaperEnd_2, 1] = value; } } + /// + /// [paper detector information] + /// Roll paper end detector + /// FALSE : Paper present, TRUE : No paper + /// + public bool IsPaperEnd { get { if (IsPaperEnd_1 && IsPaperEnd_2) return true; else return false; } set { IsPaperEnd_1 = value; IsPaperEnd_2 = value; } } + public bool IsPaperEndChange { get { if (IsPaperEnd_1Change && IsPaperEnd_2Change) return true; else return false; } set { IsPaperEnd_1Change = value; IsPaperEnd_2Change = value; } } + #endregion + + #region Fourth byte (paper detector information) + /// + /// [paper detector information] + /// paper detector information + /// FW down load Fail + /// FALSE : Not Fail, TRUE : Fail + /// + public bool IsFWdownLoadFail { get { return Infomation[(int)eStatusInfo.FWdownLoadFail, 0]; } set { Infomation[(int)eStatusInfo.FWdownLoadFail, 0] = value; } } + public bool IsFWdownLoadFailChange { get { bool bRet = Infomation[(int)eStatusInfo.FWdownLoadFail, 1]; Infomation[(int)eStatusInfo.FWdownLoadFail, 1] = false; return bRet; } set { Infomation[(int)eStatusInfo.FWdownLoadFail, 1] = value; } } + #endregion + + #region 형변환 + private long chararry2Hexstr(char[] src, int st, out string dest) + { + long nRet = 0; + char[] temp = null; + + dest = ""; + + if (src.Length < 1) + return 0; + + temp = new char[src.Length - st]; + for (int i = 0; i < src.Length - st; i++) + { + temp[i] = src[i + st]; + string tt = src[i + st].ToString(); + dest += String.Format("{0:X}", tt); + } + //temp.CopyTo(src, st); + + //bit + //string sbit = int.Parse("0100", System.Globalization.NumberStyles.AllowHexSpecifier) & (2 ^ 0); + + return nRet; + } + + // String To Hex + private int string2Hex(string src) + { + return int.Parse(src, System.Globalization.NumberStyles.HexNumber); + } + public string string2Hexstr(string src) + { + string sRet = ""; + char[] values = src.ToCharArray(); + foreach (char letter in values) + { + uint value = Convert.ToUInt32(letter); + string hexstr = string.Format("{0:X2}", value); + sRet += hexstr; + } + return sRet; + } + // Hex To String + private string Hex2string(int number) + { + return Convert.ToString(number, 16).ToUpper().PadLeft(2, '0'); + } + // Byte[] To UInt32 + private UInt32 Byte2UInt32SmallEndian(byte[] src, int i) + { + return Convert.ToUInt32(src[i] + (src[i + 1] << 8) + (src[i + 2] << 16) + (src[i + 3] << 24)); + } + // Byte[] To UInt32 + private UInt32 Byte2UInt32BigEndian(byte[] src, int i) + { + return Convert.ToUInt32(src[i + 3] + (src[i + 2] << 8) + (src[i + 1] << 16) + (src[i] << 24)); + } + + //UInt32 To Byte[] Small-Endian + private void Uint322Byte(byte[] dstByte, UInt32 srcuint, int start) + { + dstByte[3 + start] = (byte)((srcuint & 0xff000000) >> 24); + dstByte[2 + start] = (byte)((srcuint & 0x00ff0000) >> 16); + dstByte[1 + start] = (byte)((srcuint & 0x0000ff00) >> 8); + dstByte[0 + start] = (byte)((srcuint & 0x000000ff)); + } + //UInt32 To Byte[] Big-Endian + private void UInt32ToByteBif(byte[] dstByte, UInt32 srcuint, int start) + { + dstByte[0 + start] = (byte)((srcuint & 0xff000000) >> 24); + dstByte[1 + start] = (byte)((srcuint & 0x00ff0000) >> 16); + dstByte[2 + start] = (byte)((srcuint & 0x0000ff00) >> 8); + dstByte[3 + start] = (byte)((srcuint & 0x000000ff)); + } + + //byte[] To string + public String Byte2string(byte[] src) + { + //string sRet = Encoding.Default.GetString(src); + return Encoding.Default.GetString(src);// UnicodeEncoding.ASCII.GetString(src); + } + public String Byte2string(byte[] src, int index, int size) + { + string sRet = ""; + char sz; + for (int i = index; i < src.Length; i++) + { + sz = Convert.ToChar(src[i]); + sRet += sz.ToString(); + } + return sRet;// UnicodeEncoding.ASCII.GetString(src, index, size); + } + + //string To Byte[] + public Byte[] string2byte(String src) + { + return Encoding.Default.GetBytes(src); //UnicodeEncoding.ASCII.GetBytes(src); + } + //string To Byte[] + public int string2byte(String src, int sindex, int slength, byte[] dst, int bindex) + { + return UnicodeEncoding.ASCII.GetBytes(src, sindex, slength, dst, bindex); + } + + /// + /// 문자열을 byte[]으로 변환 + /// + /// + /// + private byte[] ConvertToByteArrayFromString(string str) + { + byte[] temp = Encoding.Default.GetBytes(str); + + if (temp.Length % 16 != 0) + { + byte[] temp2 = new byte[((temp.Length / 16) + 1) * 16]; + Buffer.BlockCopy(temp, 0, temp2, 0, temp.Length); + return temp2; + } + else + { + return temp; + } + } + + public byte[] hex2Byte(string hex) + { + byte[] bytes = new byte[hex.Length / 2]; + for (int i = 0; i < bytes.Length; i++) + { + try + { + bytes[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16); + } + catch + { + throw new ArgumentException("hex is not a valid hex number!", "hex"); + } + } return bytes; + } + + public string str2bitstr(string sValue, int nByteLen) + { + //char bit; + + string sRet = ""; + + string hexstr = string2Hexstr(sValue); + long value = string2Hex(hexstr); + sRet += Convert.ToString(value, 2).PadLeft(8, '0'); + + int d = Math.Abs((sRet.Length % 8) - 8); + if (d != 8 && d != 0) + sRet = sRet.PadLeft(d + sRet.Length, '0'); + + return sRet; + } + #endregion + } +} diff --git a/Agent/KPS/Properties/AssemblyInfo.cs b/Agent/KPS/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d468b1d --- /dev/null +++ b/Agent/KPS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("KPS")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("KPS")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("aff75872-6f40-425a-8ddc-1126ea9b3a9c")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/KPS/SerialPrint.cs b/Agent/KPS/SerialPrint.cs new file mode 100644 index 0000000..71ec4ef --- /dev/null +++ b/Agent/KPS/SerialPrint.cs @@ -0,0 +1,587 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO.Ports; + +using Cosmos.Common; +using Cosmos.UserFrame; +using Cosmos.BaseFrame; + +namespace Cosmos.KPS +{ + class SerialPrint + { + PrinterCommand prtCmd = new PrinterCommand(); + + private SerialPort ComPort; + public bool IsPortOpened + { + get { if (ComPort == null) { return false; } else { return ComPort.IsOpen; } } + } + + #region Printer OPEN / CLOSE + public int DeviceOpen(string sPortNum, int iBaudRate) + { + int iRet = UserCom.NG; + try + { + if(ComPort == null) + { + ComPort = new SerialPort(); + + ComPort.DataReceived += new SerialDataReceivedEventHandler(ComPort_DataReceived); + ComPort.PinChanged += new SerialPinChangedEventHandler(ComPort_PinChanged); + ComPort.ErrorReceived += new SerialErrorReceivedEventHandler(ComPort_ErrorReceived); + + ComPort.NewLine = "\r\n"; + ComPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + } + + if (!IsPortOpened) DeviceClose(); + + ComPort.WriteBufferSize = 1024 * 1024; + ComPort.PortName = sPortNum; + ComPort.BaudRate = iBaudRate; + ComPort.DataBits = 8; + ComPort.StopBits = StopBits.One; + ComPort.Parity = Parity.None; + ComPort.Handshake = Handshake.RequestToSend; + + ComPort.ReadTimeout = 500; + ComPort.WriteTimeout = 2000; + + ComPort.RtsEnable = true; + ComPort.DtrEnable = true; + + if(!ComPort.IsOpen) + { + ComPort.Open(); + } + + iRet = ComPort.IsOpen == true ? UserCom.OK : UserCom.NG; + + return iRet; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + return -99; + } + } + + public int DeviceClose() + { + int iRet = UserCom.NG; + try + { + if(!IsPortOpened) + { + return UserCom.OK; + } + + ComPort.Close(); + if(IsPortOpened) + { + System.Threading.Thread.Sleep(1000); + ComPort.Close(); + } + + iRet = IsPortOpened == false ? UserCom.OK : UserCom.NG; + + return iRet; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + return -99; + } + } + #endregion + + #region Serial Port Event + void ComPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + + } + + void ComPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + } + + void ComPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + } + #endregion + + #region Status Check + public int PrinterStatusCheckBySerial(string sType) + { + int iRet = UserCom.NG; + string sResp = ""; + + try + { + #region Printer CHK1 + if(sType == "CHK1") + { + // 프린터 초기화 + TransmitCommand(PosConst.ESCP_COMMAND.INITIALIZE_PRINTER); + System.Threading.Thread.Sleep(50); + + // Cover Check + TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS); + System.Threading.Thread.Sleep(50); + sResp = ComPort.ReadExisting(); + if(sResp.Length > 0) + { + byte[] respByte = Encoding.Default.GetBytes(sResp); + if(respByte[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + iRet = UserCom.OK; + } + else + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "COVER Opened"); + } + } + return iRet; + } + #endregion + + #region Printer CHK2 + if(sType == "CHK2") + { + // 프린터 초기화 + TransmitCommand(PosConst.ESCP_COMMAND.INITIALIZE_PRINTER); + System.Threading.Thread.Sleep(50); + + // Paper Check + TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_CONTINUOUS_PAPER_DETECTOR_STATUS); + System.Threading.Thread.Sleep(50); + sResp = ComPort.ReadExisting(); + if(sResp.Length > 0) + { + byte[] respByte = Encoding.Default.GetBytes(sResp); + if(respByte[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + iRet = UserCom.OK; + } + else + { + iRet = UserCom.NG; + + String sRecvData = Encoding.Default.GetString(respByte); + + string NEAR_END = Encoding.Default.GetString(new byte[] { 0x1E }); + string NOT_PRESENT = Encoding.Default.GetString(new byte[] { 0x72 }); + + string sErrMsg = ""; + if (sRecvData == NEAR_END) sErrMsg = "PAPER_NEAR_END"; + else if (sRecvData == NOT_PRESENT) sErrMsg = "PAPER_NOT_PRESENT"; + else sErrMsg = "ERC_ERROR"; + + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sErrMsg); + } + } + return iRet; + } + #endregion + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "StatusCheck 실패"); + } + return iRet; + } + #endregion + + #region 공통 모듈 + private void TransmitCommand(byte[] aCmd) + { + if(IsPortOpened) + { + ComPort.Write(aCmd, 0, aCmd.Length); + } + } + #endregion + + #region Cut Paper + public bool CutPaper(int LineFeedCnt) + { + long nRet = -1; + try + { + for (int i = 0; i < LineFeedCnt; i++) + { + TransmitCommand(PosConst.ESCP_COMMAND.LINE_FEED); + } + + TransmitCommand(PosConst.ESCP_COMMAND.PAPER_CUT); + System.Threading.Thread.Sleep(10); + TransmitCommand(PosConst.ESCP_COMMAND.LINE_FEED); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Cut Paper Exception"); + } + return nRet == BaseCom.OK ? true : false; + } + #endregion + + #region 문자열 출력 + /// + /// Print Text + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize, PrinterCommand.TextBold eBold, PrinterCommand.TextUnderLine eTextUnderLine, PrinterCommand.TextReverseMode eTextReverseMode, bool bLineFeed) + { + bool bRet = false; + string sCmdctrlTmp = ""; + + try + { + // 확대 Command를 설정 + sCmdctrlTmp = GetCharactersizeCmd(eVerticalSize, eHorizontalSize); + + // UnerLine + sCmdctrlTmp += GetUnderLineCmd(eTextUnderLine); + + // Bold + sCmdctrlTmp += GetBoldCmd(eBold); + + // 정렬 + sCmdctrlTmp += GetAlignment(eAlignment); + + // Reverse + sCmdctrlTmp += GetReverseCmd(eTextReverseMode); + + // 출력 + byte[] byteCmdctrl = Encoding.Default.GetBytes(sCmdctrlTmp); + TransmitCommand(byteCmdctrl); // Command 전송 + + byte[] byteData = Encoding.Default.GetBytes(sValue); + TransmitCommand(byteData); // 출력 Data 전송 + + if(bLineFeed == true) + { + TransmitCommand(PosConst.ESCP_COMMAND.LINE_FEED); + + } + + bRet = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize, PrinterCommand.TextBold eBold, PrinterCommand.TextUnderLine eTextUnderLine, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, eVerticalSize, eHorizontalSize, eBold, eTextUnderLine, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + public bool TextPrint(string sValue, bool bLineFeed) + { + return TextPrint(sValue, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, eVerticalSize, eHorizontalSize, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.TextBold eBold, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, eBold, PrinterCommand.TextUnderLine.Nomal, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.TextUnderLine eTextUnderLine, bool bLineFeed) + { + return TextPrint(sValue, eAlignment, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, eTextUnderLine, PrinterCommand.TextReverseMode.Nomal, bLineFeed); + } + /// + /// Print Text + /// + /// + /// + /// + /// + /// + public bool TextPrint(string sValue, PrinterCommand.Alignment eAlignment, PrinterCommand.TextReverseMode eTextReverseMode, bool bLineFeed) + { + return TextPrint(sValue, PrinterCommand.Alignment.Left, PrinterCommand.CharactersizeV.V_1, PrinterCommand.CharactersizeH.H_1, PrinterCommand.TextBold.Nomal, PrinterCommand.TextUnderLine.Nomal, eTextReverseMode, bLineFeed); + } + + private string GetCharactersizeCmd(PrinterCommand.CharactersizeV eVerticalSize, PrinterCommand.CharactersizeH eHorizontalSize) + { + string sRet = ""; + + try + { + int Hvalue = 0; + int Vvalue = 0; + + switch (eVerticalSize) + { + case PrinterCommand.CharactersizeV.V_1: Vvalue = 0; break; + case PrinterCommand.CharactersizeV.V_2: Vvalue = 1; break; + case PrinterCommand.CharactersizeV.V_3: Vvalue = 2; break; + case PrinterCommand.CharactersizeV.V_4: Vvalue = 3; break; + case PrinterCommand.CharactersizeV.V_5: Vvalue = 4; break; + case PrinterCommand.CharactersizeV.V_6: Vvalue = 5; break; + case PrinterCommand.CharactersizeV.V_7: Vvalue = 6; break; + case PrinterCommand.CharactersizeV.V_8: Vvalue = 7; break; + default: Vvalue = 0; break; + } + + switch (eHorizontalSize) + { + case PrinterCommand.CharactersizeH.H_1: Hvalue = 16 * 0; break; + case PrinterCommand.CharactersizeH.H_2: Hvalue = 16 * 1; break; + case PrinterCommand.CharactersizeH.H_3: Hvalue = 16 * 2; break; + case PrinterCommand.CharactersizeH.H_4: Hvalue = 16 * 3; break; + case PrinterCommand.CharactersizeH.H_5: Hvalue = 16 * 4; break; + case PrinterCommand.CharactersizeH.H_6: Hvalue = 16 * 5; break; + case PrinterCommand.CharactersizeH.H_7: Hvalue = 16 * 6; break; + case PrinterCommand.CharactersizeH.H_8: Hvalue = 16 * 7; break; + default: Hvalue = 16 * 0; break; + } + sRet = Encoding.Default.GetString(prtCmd.ESC_VHMAG) + Convert.ToChar(Vvalue + Hvalue).ToString(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + /// + /// 진한 문자(Bold) + /// + /// + /// + private string GetBoldCmd(PrinterCommand.TextBold eBold) + { + string sRet = ""; + try + { + switch (eBold) + { + case PrinterCommand.TextBold.Nomal: sRet = Encoding.Default.GetString(prtCmd.ESC_BOLD_OFF); break; + case PrinterCommand.TextBold.Bold: sRet = Encoding.Default.GetString(prtCmd.ESC_BOLD_ON); break; + default: sRet = Encoding.Default.GetString(prtCmd.ESC_BOLD_OFF); break; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + /// + /// UnderLine + /// + /// + /// + /// + private string GetUnderLineCmd(PrinterCommand.TextUnderLine eUnderLine, int nDot) + { + string sRet = ""; + try + { + if (eUnderLine == PrinterCommand.TextUnderLine.UnderLine) + { + if (nDot == 2) + { + sRet = Encoding.Default.GetString(prtCmd.ESC_UNDERLINEON1DOT); + } + else + { + sRet = Encoding.Default.GetString(prtCmd.ESC_UNDERLINEON2DOT); + } + } + else + { + sRet = Encoding.Default.GetString(prtCmd.ESC_UNDERLINEOFF); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + /// + /// UnderLine Text + /// + /// + /// + private string GetUnderLineCmd(PrinterCommand.TextUnderLine eUnderLine) + { + return GetUnderLineCmd(eUnderLine, 1); + } + /// + /// 반전 텍스트 + /// + /// + /// + private string GetReverseCmd(PrinterCommand.TextReverseMode eTextReverseMode) + { + string sRet = ""; + try + { + switch (eTextReverseMode) + { + case PrinterCommand.TextReverseMode.ReverseMode: sRet = Encoding.Default.GetString(prtCmd.ESC_REVERSE_MODE_ON); break; + default: sRet = Encoding.Default.GetString(prtCmd.ESC_REVERSE_MODE_OFF); break; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + /// + /// 정렬 Command를 가져온다. + /// + /// + /// + private string GetAlignment(PrinterCommand.Alignment eAlignment) + { + string sRet = ""; + try + { + switch (eAlignment) + { + case PrinterCommand.Alignment.Center: + sRet = Encoding.Default.GetString(prtCmd.ESC_CENTER); + break; + case PrinterCommand.Alignment.Right: + sRet = Encoding.Default.GetString(prtCmd.ESC_RIGHT); + break; + case PrinterCommand.Alignment.Left: + default: + sRet = Encoding.Default.GetString(prtCmd.ESC_LEFT); + break; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + #endregion + } +} diff --git a/Agent/KPS/frmKPS.Designer.cs b/Agent/KPS/frmKPS.Designer.cs new file mode 100644 index 0000000..5eb7b29 --- /dev/null +++ b/Agent/KPS/frmKPS.Designer.cs @@ -0,0 +1,64 @@ +namespace Cosmos.KPS +{ + partial class frmKPS + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmKPS)); + this.oposPrinter = new AxOposPOSPrinter_CCO.AxOPOSPOSPrinter(); + ((System.ComponentModel.ISupportInitialize)(this.oposPrinter)).BeginInit(); + this.SuspendLayout(); + // + // oposPrinter + // + this.oposPrinter.Enabled = true; + this.oposPrinter.Location = new System.Drawing.Point(30, 46); + this.oposPrinter.Name = "oposPrinter"; + this.oposPrinter.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("oposPrinter.OcxState"))); + this.oposPrinter.Size = new System.Drawing.Size(129, 52); + this.oposPrinter.TabIndex = 0; + // + // frmKPS + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 262); + this.Controls.Add(this.oposPrinter); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "frmKPS"; + this.ShowInTaskbar = false; + this.Text = "frmKPS"; + ((System.ComponentModel.ISupportInitialize)(this.oposPrinter)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private AxOposPOSPrinter_CCO.AxOPOSPOSPrinter oposPrinter; + } +} \ No newline at end of file diff --git a/Agent/KPS/frmKPS.cs b/Agent/KPS/frmKPS.cs new file mode 100644 index 0000000..8716620 --- /dev/null +++ b/Agent/KPS/frmKPS.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Cosmos.KPS +{ + public partial class frmKPS : Form + { + public frmKPS() + { + InitializeComponent(); + + base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); + //this.UpdateStyles(); + } + + public AxOposPOSPrinter_CCO.AxOPOSPOSPrinter OposPrinter + { + get + { + return this.oposPrinter; + } + } + } +} diff --git a/Agent/KPS/frmKPS.resx b/Agent/KPS/frmKPS.resx new file mode 100644 index 0000000..081181b --- /dev/null +++ b/Agent/KPS/frmKPS.resx @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAIQAAAAIB + AAAAAQAAAAAAAAAAAAAAAAwAAAAACQAAVQ0AAGAFAAAL + + + \ No newline at end of file diff --git a/Agent/MasterDown/Activator.cs b/Agent/MasterDown/Activator.cs new file mode 100644 index 0000000..6a7e45b --- /dev/null +++ b/Agent/MasterDown/Activator.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : MasterDown 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + public class Activator : InitServiceAbstract + { + /// + /// Define main entrance point of project load. (프로젝트 로드의 주진입점을 정의합니다.) + /// + public Activator() + { + + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_BACKGROUND_DOWN.BACKGROUND_DOWN_MAIN: + { + Cosmos.BackgroundDown.BackgroundDownMain agentClass = new Cosmos.BackgroundDown.BackgroundDownMain(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} diff --git a/Agent/MasterDown/BackgroundDown.csproj b/Agent/MasterDown/BackgroundDown.csproj new file mode 100644 index 0000000..2a4c691 --- /dev/null +++ b/Agent/MasterDown/BackgroundDown.csproj @@ -0,0 +1,110 @@ + + + + + Debug + AnyCPU + {791617B7-64DA-4743-B8F1-CA413607FC31} + Library + Properties + Cosmos.BackgroundDown + Agent.BackgroundDown + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + ..\..\..\BIN\Cosmos.UserFrame.dll + + + False + ..\..\..\BIN\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + Form + + + frmPosIrtMessage.cs + + + + + + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + frmPosIrtMessage.cs + + + + + + + + copy .\IC\Agent.BackgroundDown.dll .\Agent.BackgroundDown.dll + + + copy .\Agent.BackgroundDown.dll .\IC\Agent.BackgroundDown.dll + + + \ No newline at end of file diff --git a/Agent/MasterDown/BackgroundDownMain.cs b/Agent/MasterDown/BackgroundDownMain.cs new file mode 100644 index 0000000..3e4ee1f --- /dev/null +++ b/Agent/MasterDown/BackgroundDownMain.cs @@ -0,0 +1,2300 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; +using System.Threading; +using System.Reflection; + +using Newtonsoft.Json; + +using Cosmos.Common; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using System.Data; +using Cosmos.CommonManager; +using System.IO; + +namespace Cosmos.BackgroundDown +{ + class BackgroundDownMain : IWatcher, IWatcherBack + { + #region 클래스 변수 선언 + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + /// + /// Master Down Thread (Master Down 스레드) + /// + private Thread m_tBGDownProc = null; + + /// + /// Master Down Proc Operation Yes/No (Master Down Proc 작동여부) + /// + private bool m_BGDOWNProcRunning = false; + + /// + /// Thread Waiting Time (스레드 대기시간 ms) + /// + private int m_ThreadSleepTerm = 1000 * 60 * 60; + + /// + /// 다운로드 모듈 + /// + private Svr2Tran m_cSvr2Tran = null; + /// + /// 데이터베이스 모듈 + /// + private DatabaseMssql m_cSqlDbService = null; + /// + /// FTP 모듈 + /// + private NetworkFtp m_cNetworkFTP = null; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + /// + /// POS 프로그램 재기동 여부 체크용 + /// + private static bool m_bPGMReboot = false; + + // 전송 소켓 + private static TcpSocket m_sendSocket = null; + + private Hashtable m_htBGMasterList = null; + #endregion 클래스 변수 선언 + + #region 생성자 + public BackgroundDownMain() + { + SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + + m_cPosStatus = (PosStatus)StateObject.POS; + + m_cSqlDbService = new DatabaseMssql(); + m_cSvr2Tran = new Svr2Tran(); + m_cNetworkFTP = new NetworkFtp(); + } + #endregion + + #region Master Down 데몬 기동/종료 + public void Start() + { + try + { + m_tBGDownProc = new Thread(new ThreadStart(ThreadBackgroundDownRun)); + m_BGDOWNProcRunning = true; + m_tBGDownProc.Start(); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void Stop() + { + try + { + m_BGDOWNProcRunning = false; + + int count = 0; + while(count < 10) + { + if (m_tBGDownProc != null && m_tBGDownProc.IsAlive) m_BGDOWNProcRunning = false; + else break; + + count++; + Thread.Sleep(100); + } + + if (count == 10) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force BackgroundDown Service Stop!!!"); + m_tBGDownProc.Abort(); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region 프로그램 적용을 위한 재부팅 채크 + public bool PGMReBootCheck() + { + return m_bPGMReboot; + } + #endregion + + #region BackgroundDown Main + private void ThreadBackgroundDownRun() + { + int iResult = UserCom.NG1; + string sRet = UserCom.RST_ERR; + try + { + while(m_BGDOWNProcRunning) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Backgroup Master Down Running"); + + #region 1 - 마스터 Download + // 선불POS 이거나 후불MAIN POS 일 경우에만 백그라운드 마스터 다운로드 + if (m_cPosStatus.Base.PosType != PosConst.POS_TYPE.DEFERRED_PAYMENT || + (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS)) + { + if (m_cPosStatus.Base.MasterDown == "1") + { + // 마스터 배치 적용 성공 시 갱신될 시간 + String sToBeMstBatchDownTime = DateTime.Now.ToString("yyyyMMddHHmmss"); + Hashtable htBackgroundMaster = MasterListManager.GetBackgroundMaster(); + int nFailedCnt = 0; + int nSuccessCnt = 0; + bool bResult = false; + + int nTotalMstCnt = htBackgroundMaster.Count; + for (int nLoop = 0; nLoop < nTotalMstCnt; nLoop++) + { + // Dynamically call method. + Type type = typeof(BackgroundDownMain); + MethodInfo method = type.GetMethod(htBackgroundMaster[nLoop].ToString()); + + iResult = (int)method.Invoke(this, new object[] { m_cPosStatus.Base.MstBatchDownDate + , m_cPosStatus.Base.StoreNo + , m_cPosStatus.Base.BrandCd + , m_cPosStatus.Base.StoreNo }); + if (iResult < 0) + { + nFailedCnt++; + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + htBackgroundMaster[nLoop].ToString() + " Master(Background) download and insert failure"); + } + else if (iResult > 0) + { + nSuccessCnt++; + } + } + + if (nFailedCnt == 0 && nSuccessCnt > 0) + { + m_cPosStatus.Base.MstBatchDownDate = sToBeMstBatchDownTime; + + // PosSaleInfo.ini 저장 + UpdatePosSaleInfo(); + } + } + } + #endregion + + #region 2 - 프로그램 Download + { + sRet = UserCom.RST_ERR; + sRet = LF_ProgramDownLoad_Search(); // DownLoad 목록 조회 + sRet = LF_ProgramDownLoad(); // DownLoad 실행 + //sRet = PGMUpdate_Apply(PosConst.PGM_UPDATE_DOWN_DIV.UPDATE); // 프로그램 적용 + } + #endregion + + #region 마스터 수신 SQL 보정시 삭제 + // update by wani(20170818) - Background Master Download Break; + m_BGDOWNProcRunning = false; + #endregion + + int nNowSleepTerm = 0; + while(nNowSleepTerm < m_ThreadSleepTerm) + { + if (m_BGDOWNProcRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region 마스터 요청 전문 생성 + private Hashtable GetPosMasterReqData(string sMasterDiv, string sUpdDt, string sStoreCd, string sSubStoreCd, string ProcCd) + { + Hashtable htReqData = null; + try + { + htReqData = new Hashtable(); + + // INQ Type 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.InqType, ItemConst.IRT_INQ_TYPE.POSMASTER_REQ); + // 마스터 요청 구분 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.MasterDiv, sMasterDiv); + // 점포코드 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.StorCd, sStoreCd); + // SUB 점포코드 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.SubStorCd, sSubStoreCd); + // 변경 일시 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.UpdDt, sUpdDt); + // 전송데이터 Count 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.DataCount, string.Empty); + // 요청코드 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.ProcCd, ProcCd); + // 응답코드 설정 + htReqData.Add(Column.IQ_POSMASTER_REQ.DATA.ResCd, string.Empty); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return htReqData; + } + #endregion 마스터 요청 전문 생성 + + #region 마스터 요청/응답 전문 송수신 모듈 + /// + /// 마스터 요청 전문 SEND / RECEIVE + /// + /// + /// + /// + /// + /// + /// + /// + private int MstIRTSendReceive(string sIp, int iPort, int iTimeout, string sCommData, Hashtable htData, ref StringBuilder sbRecvData) + { + int nStat = BaseCom.NG1; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + try + { + string sJsonSendData = ""; + string sJsonReceiveData = ""; + Hashtable htRecvData = null; + + sbRecvData = new StringBuilder(); + + m_sendSocket = new TcpSocket(sIp, iPort, iTimeout); + + // Delay time to close connection is unlimited. + nStat = m_sendSocket.Connect(-1); + + if(nStat == BaseCom.OK) + { + while(true) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + // sJsonSendData 암호화 처리는 이 곳에서... + + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + // 마스터 송수신 로그 제거(20170524) + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // CmUtil.RPadH("[SEND" + ":" + sIp + ":" + iPort, 27) + "] " + sCommData + sJsonSendData); + + // 전문 송신 + nStat = SendReceiveMstData(sCommData + sJsonSendData, ref sJsonReceiveData); + if(nStat == BaseCom.OK) + { + // 마스터 송수신 로그 제거(20170524) + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // CmUtil.RPadH("[RECV" + ":" + sIp + ":" + iPort, 27) + "] " + sJsonReceiveData); + + if(sJsonReceiveData != null && sJsonReceiveData != string.Empty) + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + + // sRecvData 복호화 처리는 이 곳에서... + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + if(int.Parse(htRecvData[Column.IQ_POSMASTER_RSP.DATA.Count].ToString().Trim()) != 0) + { + // StringBuilder에 추가 + sbRecvData.Append(htRecvData[Column.IQ_POSMASTER_RSP.DATA.Data].ToString()); + } + else + { + break; + } + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + } + else + { + return BaseCom.NG1; + } + } + + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.IRTSendReceive()", e.ToString()); + } + finally + { + m_sendSocket.Close(); + } + + return nStat; + } + private int SendReceiveMstData(string pSendData, ref string pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + try + { + nRecvLen = m_sendSocket.SendReceiveMstData(pSendData, ref pRecvData); + if (nRecvLen > 0) + { + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + e.ToString()); + } + + return nStat; + } + #endregion 마스터 요청/응답 전문 송수신 모듈 + + #region 긴급공지 상태 변경 + /// + /// 긴급공지 상태 변경 + /// + /// + /// + /// + /// + private int EmgNoteFlgUpdate(string sStartDT, string sMsgCode, string sMsgDiv, string sDownFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + + if (sStartDT.Trim() == "" || sMsgCode.Trim() == "" || sMsgDiv.Trim() == "") return iRet; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + sQuery += " UPDATE POSMST..MST_EMG_NOTE \n"; + sQuery += " SET DOWN_YN = '" + sDownFlag + "' \n"; + sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n"; + + sQuery += " WHERE 1 = 1 \n"; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += " AND START_DT = '" + sStartDT + "' \n"; + sQuery += " AND MSG_CODE = '" + sMsgCode + "' \n"; + sQuery += " AND MSG_DIV = '" + sMsgDiv + "' \n"; + sQuery = sQuery.Replace("\t", " "); + + //iRet = m_cSqlDbService.DBExecuteNonQuery (sQuery); + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + #endregion + + #region Master Download 처리 + + #region 19 - 상품 마스터 Download / Insert + public int MST_ITEM(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_ITEM.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if(iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_ITEM(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_ITEM(string[] aRowDatas) + { + string sQuery = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string sSQL = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_ITEM \n" + + " SET L_CLSS = '{4}', M_CLSS = '{5}', S_CLSS = '{6}', FLAVOUR_DIV = '{7}', FLAVOUR_QTY = {8} \n" + + " , FLAVOUR_STOCK = {9}, SHTCUT_ITEMNM = N'{10}', ITEM_NM = N'{11}', TAKE_IN_SALE_AMT = {12}, TAKE_OUT_SALE_AMT = {13} \n" + + " , IF_MENU1 = '{14}', IF_MENU2 = '{15}', OPEN_ITEM_DIV = '{16}', DISPO_ITEM_DIV = '{17}', SUB_SET_MNG_TYPE = '{18}' \n" + + " , ITEM_TAX_AMT_DIV = '{19}', TAKE_IN_VAT_CD = '{20}', TAKE_OUT_VAT_CD = '{21}', ITEM_COST = {22} \n" + + " , SALE_PRMT_YN = '{23}', SALE_NOQ = {24}, FREE_GIFT_YN = '{25}', DC_PRMT_YN = '{26}', ACCUM_PRMT_YN = '{27}' \n" + + " , SVC_FEE_TRGT_YN = '{28}', BTN_ITEM_IMG = '{29}', NEW_ITEM_START_DT = '{30}', NEW_ITEM_FNSH_DT = '{31}', ITEM_TYPE = '{32}' \n" + + " , TIME_BAR_CD_YN = '{33}', DISTBT_EXPIRE_NOD = '{34}', ALCOHOL_ITEM_TYPE = '{35}', SALE_START_DT = '{36}', SALE_FNSH_DT = '{37}' \n" + + " , COOP_CARD_DC_NOADM_YN = '{38}', CAKE_EXCHNG_CPN_USE_POSS_YN = '{39}', ITEM_INFO = N'{40}', CALORY_INFO = N'{41}', SALE_IMG_FILE_NM = '{42}' \n" + + " , FILLER1 = '{43}', FILLER2 = '{44}', FILLER3 = '{45}', FILLER4 = '{46}', FILLER5 = '{47}' \n" + + " , USE_YN = '{48}', UPD_DT = '{49}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND SUB_STOR_CD = '{2}' \n" + + " AND ITEM_CD = '{3}' \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_ITEM \n" + + " ( CMP_CD, STOR_CD, SUB_STOR_CD, ITEM_CD, L_CLSS \n" + + " , M_CLSS, S_CLSS, FLAVOUR_DIV, FLAVOUR_QTY, FLAVOUR_STOCK \n" + + " , SHTCUT_ITEMNM, ITEM_NM, TAKE_IN_SALE_AMT, TAKE_OUT_SALE_AMT, IF_MENU1 \n" + + " , IF_MENU2, OPEN_ITEM_DIV, DISPO_ITEM_DIV, SUB_SET_MNG_TYPE, ITEM_TAX_AMT_DIV \n" + + " , TAKE_IN_VAT_CD, TAKE_OUT_VAT_CD, ITEM_COST, SALE_PRMT_YN, SALE_NOQ \n" + + " , FREE_GIFT_YN, DC_PRMT_YN, ACCUM_PRMT_YN, SVC_FEE_TRGT_YN, BTN_ITEM_IMG \n" + + " , NEW_ITEM_START_DT, NEW_ITEM_FNSH_DT, ITEM_TYPE, TIME_BAR_CD_YN, DISTBT_EXPIRE_NOD \n" + + " , ALCOHOL_ITEM_TYPE, SALE_START_DT, SALE_FNSH_DT, COOP_CARD_DC_NOADM_YN, CAKE_EXCHNG_CPN_USE_POSS_YN \n" + + " , ITEM_INFO, CALORY_INFO, SALE_IMG_FILE_NM, FILLER1, FILLER2 \n" + + " , FILLER3, FILLER4, FILLER5, USE_YN, REG_DT ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', '{3}', '{4}' \n" + + " , '{5}', '{6}', '{7}', {8}, {9} \n" + + " , N'{10}', N'{11}', {12}, {13}, '{14}' \n" + + " , '{15}', '{16}', '{17}', '{18}', '{19}' \n" + + " , '{20}', '{21}', {22}, '{23}', {24} \n" + + " , '{25}', '{26}', '{27}', '{28}', '{29}' \n" + + " , '{30}', '{31}', '{32}', '{33}', '{34}' \n" + + " , '{35}', '{36}', '{37}', '{38}', '{39}' \n" + + " , N'{40}', N'{41}', '{42}', '{43}', '{44}' \n" + + " , '{45}', '{46}', '{47}', '{48}', '{49}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], m_cPosStatus.Base.StoreNo, aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], aParams[11], aParams[12], aParams[13], aParams[14] + , aParams[15], aParams[16], aParams[17], aParams[18], aParams[19] + , aParams[20], aParams[21], aParams[22], aParams[23], aParams[24] + , aParams[25], aParams[26], aParams[27], aParams[28], aParams[29] + , aParams[30], aParams[31], aParams[32], aParams[33], aParams[34] + , aParams[35], aParams[36], aParams[37], aParams[38], aParams[39] + , aParams[40], aParams[41], aParams[42], aParams[43], aParams[44] + , aParams[45], aParams[46], aParams[47], aParams[48], DateTime.Now.ToString("yyyyMMddHHmmsss")); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 19 - 상품 마스터 Download / Insert + + #region 36 - 캠페인 상품 그룹관리 마스터 Download / Insert + public int MST_CPI_COMPNT(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI_COMPNT.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI_COMPNT(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI_COMPNT(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI_COMPNT \n" + + " SET CPI_COND_TYPE = '{4}', QTY_AMT = {5}, CPI_DC_TYPE = '{6}', DC_RATE_QTY_AMT = {7}, DC_MAX_AMT = {8} \n" + + " , FILLER1 = '{9}', FILLER2 = '{10}', FILLER3 = '{11}', FILLER4 = '{12}', FILLER5 = '{13}' \n" + + " , USE_YN = '{14}', UPD_DT = '{15}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + " AND CPI_ITEM_GRP_CD = '{3}' \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI_COMPNT \n" + + " ( CMP_CD, STOR_CD, CPI_CD, CPI_ITEM_GRP_CD, CPI_COND_TYPE \n" + + " , QTY_AMT, CPI_DC_TYPE, DC_RATE_QTY_AMT, DC_MAX_AMT, FILLER1 \n" + + " , FILLER2, FILLER3, FILLER4, FILLER5, USE_YN \n" + + " , REG_DT ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', '{3}', '{4}' \n" + + " , {5}, '{6}', {7}, {8}, '{9}' \n" + + " , '{10}', '{11}', '{12}', '{13}', '{14}' \n" + + " , '{15}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], aParams[1], aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], aParams[11], aParams[12], aParams[13], aParams[14] + , DateTime.Now.ToString("yyyyMMddHHmmsss")); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 36 - 캠페인 상품 그룹관리 마스터 Download / Insert + + #region 37 - 캠페인 마스터 Download / Insert + public int MST_CPI(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI \n" + + " SET CPI_NM = N'{3}', STARTDAY = '{4}', FNSHDAY = '{5}', REPT_YN = '{6}', REPT_APPNT_TYPE = '{7}' \n" + + " , REPT_WEEK = '{8}', REPT_DT = '{9}', DUP_APPLY_YN = '{10}', BASIC_RULE_EXCEP_YN = '{11}', TELECOM_COOP_DUP_PRMT_YN = '{12}' \n" + + " , PRRTY = {13}, TRGT_CUST_TYPE = '{14}', CPI_CUST_BNFT_TYPE = '{15}', ITEM_APPLY_METHD = '{16}', CUST_PAY_TYPE = '{17}' \n" + + " , TRGT_AMT_TYPE = '{18}', TRGT_AMT = {19}, QTY_LMT_YN = '{20}', LMT_QTY = {21}, QTY_LMT_STD = '{22}' \n" + + " , HP_CUST_JOIN_LMT_YN = '{23}', HP_CUST_MAX_JOIN_CNT = {24}, HP_CUST_JOIN_LMT_STD = '{25}', BASIC_HP_ACCUM_YN = '{26}', BASIC_HP_ACCUM_STD = '{27}' \n" + + " , ADD_HP_ACCUM_TELECOM_DIV = '{28}', ADD_HP_ACCUM_TRGT_STD = '{29}', ADD_HP_ACCUM_RATE = {30}, ADD_HP_ACCUM_AF_DIV = '{31}', ADD_HP_ACCUM_CD1 = '{32}' \n" + + " , ADD_HP_ACCUM_CD2 = '{33}', OFFER_ID = '{34}', FREE_GIFT_PROVD_STD = '{35}', FREE_GIFT_STD_AMT = {36}, FREE_GIFT_PROVD_QTY = {37} \n" + + " , FREE_GIFT_ADD_SALE_YN = '{38}', CPI_INFO = N'{39}', CPI_EXPLN = N'{40}', LTTR_MAX_GRADE = {41}, CUST_DSP_FILE_DIV = '{42}' \n" + + " , CUST_DSP_FILENM = '{43}', STAMP_QTY = {44}, SOUND_FILE_DIV = '{45}', SOUND_FILE_NM = '{46}', TTS_DSCRP = N'{47}' \n" + + " , SOUND_FILE_PLAY_CHK_PNT = '{48}', USE_YN = '{49}', FILLER1 = '{50}', FILLER2 = '{51}', FILLER3 = '{52}' \n" + + " , FILLER4 = '{53}', FILLER5 = '{54}', UPD_DT = '{55}', JOIN_QUSTN_YN = '{56}', PRGRS_STATUS = '{57}' \n" + + " , ITEM_DUP_PRMT_YN = '{58}', LTTR_MULTI_PRT_YN = '{59}', CPI_DC_PAY_WAY = '{60}', CPI_BILL_NM = N'{61}', QTY_LIMIT_MSG = N'{62}' \n" + + " , HP_CUST_LVL = '{63}', DC_NOADM_PASS_YN = '{64}' \n" + + //#15583 캠페인 기능 개선 요청 start + + " , MOBILE_CPN_DUP_PRMT_YN = '{65}', HPY_CPN_DUP_PRMT_YN = '{66}' \n" + //#15583 캠페인 기능 개선 요청 end + + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI \n" + + " ( CMP_CD, STOR_CD, CPI_CD, CPI_NM, STARTDAY \n" + + " , FNSHDAY, REPT_YN, REPT_APPNT_TYPE, REPT_WEEK, REPT_DT \n" + + " , DUP_APPLY_YN, BASIC_RULE_EXCEP_YN, TELECOM_COOP_DUP_PRMT_YN, PRRTY, TRGT_CUST_TYPE \n" + + " , CPI_CUST_BNFT_TYPE, ITEM_APPLY_METHD, CUST_PAY_TYPE, TRGT_AMT_TYPE, TRGT_AMT \n" + + " , QTY_LMT_YN, LMT_QTY, QTY_LMT_STD, HP_CUST_JOIN_LMT_YN, HP_CUST_MAX_JOIN_CNT \n" + + " , HP_CUST_JOIN_LMT_STD, BASIC_HP_ACCUM_YN, BASIC_HP_ACCUM_STD, ADD_HP_ACCUM_TELECOM_DIV, ADD_HP_ACCUM_TRGT_STD \n" + + " , ADD_HP_ACCUM_RATE, ADD_HP_ACCUM_AF_DIV, ADD_HP_ACCUM_CD1, ADD_HP_ACCUM_CD2, OFFER_ID \n" + + " , FREE_GIFT_PROVD_STD, FREE_GIFT_STD_AMT, FREE_GIFT_PROVD_QTY, FREE_GIFT_ADD_SALE_YN, CPI_INFO \n" + + " , CPI_EXPLN, LTTR_MAX_GRADE, CUST_DSP_FILE_DIV, CUST_DSP_FILENM, STAMP_QTY \n" + + " , SOUND_FILE_DIV, SOUND_FILE_NM, TTS_DSCRP, SOUND_FILE_PLAY_CHK_PNT, USE_YN \n" + + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n" + + " , REG_DT, JOIN_QUSTN_YN, PRGRS_STATUS, ITEM_DUP_PRMT_YN, LTTR_MULTI_PRT_YN \n" + + //#15583 캠페인 기능 개선 요청 start + //기존 + //+ " , CPI_DC_PAY_WAY, CPI_BILL_NM, QTY_LIMIT_MSG, HP_CUST_LVL, DC_NOADM_PASS_YN ) \n" + //변경 + + " , CPI_DC_PAY_WAY, CPI_BILL_NM, QTY_LIMIT_MSG, HP_CUST_LVL, DC_NOADM_PASS_YN \n" + + " , MOBILE_CPN_DUP_PRMT_YN, HPY_CPN_DUP_PRMT_YN ) \n" + //#15583 캠페인 기능 개선 요청 end + + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', N'{3}', '{4}' \n" + + " , '{5}', '{6}', '{7}', '{8}', '{9}' \n" + + " , '{10}', '{11}', '{12}', {13}, '{14}' \n" + + " , '{15}', '{16}', '{17}', '{18}', {19} \n" + + " , '{20}', {21}, '{22}', '{23}', {24} \n" + + " , '{25}', '{26}', '{27}', '{28}', '{29}' \n" + + " , {30}, '{31}', '{32}', '{33}', '{34}' \n" + + " , '{35}', {36}, {37}, '{38}', N'{39}' \n" + + " , N'{40}', {41}, '{42}', '{43}', {44} \n" + + " , '{45}', '{46}', N'{47}', '{48}', '{49}' \n" + + " , '{50}', '{51}', '{52}', '{53}', '{54}' \n" + + " , '{55}', '{56}', '{57}', '{58}', '{59}' \n" + + //#15583 캠페인 기능 개선 요청 start + //기존 + //+ " , '{60}', N'{61}', N'{62}', {63}, '{64}' ) \n"; + //변경 + + " , '{60}', N'{61}', N'{62}', {63}, '{64}' \n" + + " , '{65}', '{66}' ) \n"; + //#15583 캠페인 기능 개선 요청 end + + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], aParams[1], aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], aParams[11], aParams[12], aParams[13], aParams[14] + , aParams[15], aParams[16], aParams[17], aParams[18], aParams[19] + , aParams[20], aParams[21], aParams[22], aParams[23], aParams[24] + , aParams[25], aParams[26], aParams[27], aParams[28], aParams[29] + , aParams[30], aParams[31], aParams[32], aParams[33], aParams[34] + , aParams[35], aParams[36], aParams[37], aParams[38], aParams[39] + , aParams[40], aParams[41], aParams[42], aParams[43], aParams[44] + , aParams[45], aParams[46], aParams[47], aParams[48], aParams[49] + , aParams[50], aParams[51], aParams[52], aParams[53], aParams[54] + , DateTime.Now.ToString("yyyyMMddHHmmsss"), aParams[57], aParams[58], aParams[59], aParams[60] + + //#15583 캠페인 기능 개선 요청 start + //기존 + //, aParams[61], aParams[62], aParams[63], aParams[64], aParams[65]); + //변경 + , aParams[61], aParams[62], aParams[63], aParams[64], aParams[65] + , aParams[66], aParams[67]); + //#15583 캠페인 기능 개선 요청 end + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 37 - 캠페인 마스터 Download / Insert + + #region 38 - 캠페인 시간 마스터 Download / Insert + public int MST_CPI_HOUR(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI_HOUR.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI_HOUR(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI_HOUR(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI_HOUR \n" + + " SET START_HOUR = '{4}', FNSH_HOUR = '{5}', FILLER1 = '{6}', FILLER2 = '{7}', FILLER3 = '{8}' \n" + + " , FILLER4 = '{9}', FILLER5 = '{10}', UPD_DT = '{11}', USE_YN = '{12}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + " AND DOW_DIV = '{3}' \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI_HOUR \n" + + " ( CMP_CD, STOR_CD, CPI_CD, DOW_DIV, START_HOUR \n" + + " , FNSH_HOUR, FILLER1, FILLER2, FILLER3, FILLER4 \n" + + " , FILLER5, REG_DT, USE_YN ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', '{3}', '{4}' \n" + + " , '{5}', '{6}', '{7}', '{8}', '{9}' \n" + + " , '{10}', '{11}', '{12}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], aParams[1], aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], DateTime.Now.ToString("yyyyMMddHHmmsss"), aParams[13]); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 38 - 캠페인 시간 마스터 Download / Insert + + #region 39 - 캠페인 상품 마스터 Download / Insert + public int MST_CPI_ITEM(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI_ITEM.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI_ITEM(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI_ITEM(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI_ITEM \n" + + " SET CPI_DC_TYPE = '{7}', DC_RATE_AMT = {8}, FILLER1 = '{9}', FILLER2 = '{10}', FILLER3 = '{11}' \n" + + " , FILLER4 = '{12}', FILLER5 = '{13}', UPD_DT = '{14}', USE_YN = '{15}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + " AND SUB_STOR_CD = '{3}' \n" + + " AND CPI_ITEM_GRP_CD = '{4}' \n" + + " AND ITEM_LVL = '{5}' \n" + + " AND ITEM_CD = '{6}' \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI_ITEM \n" + + " ( CMP_CD, STOR_CD, CPI_CD, SUB_STOR_CD, CPI_ITEM_GRP_CD \n" + + " , ITEM_LVL, ITEM_CD, CPI_DC_TYPE, DC_RATE_AMT, FILLER1 \n" + + " , FILLER2, FILLER3, FILLER4, FILLER5, REG_DT \n" + + " , USE_YN ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', '{3}', '{4}' \n" + + " , '{5}', '{6}', '{7}', {8}, '{9}' \n" + + " , '{10}', '{11}', '{12}', '{13}', '{14}' \n" + + " , '{15}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], m_cPosStatus.Base.StoreNo, aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], aParams[11], aParams[12], aParams[13], DateTime.Now.ToString("yyyyMMddHHmmsss") + , aParams[16]); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 39 - 캠페인 상품 마스터 Download / Insert + + #region 40 - 캠페인 출력메시지 마스터 Download / Insert + public int MST_CPI_PRT_MSG(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI_PRT_MSG.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI_PRT_MSG(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI_PRT_MSG(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI_PRT_MSG \n" + + " SET PRT_EXPAND_TYPE = '{5}', BOLD_YN = '{6}', ALIGN_TYPE = '{7}', MSG_VAL = N'{8}', FILLER1 = '{9}' \n" + + " , FILLER2 = '{10}', FILLER3 = '{11}', FILLER4 = '{12}', FILLER5 = '{13}', UPD_DT = '{14}', PRT_YN = '{15}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + " AND CPI_BILL_PRT_AREA_TYPE = '{3}' \n" + + " AND PRT_SEQ = {4} \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI_PRT_MSG \n" + + " ( CMP_CD, STOR_CD, CPI_CD, CPI_BILL_PRT_AREA_TYPE, PRT_SEQ \n" + + " , PRT_EXPAND_TYPE, BOLD_YN, ALIGN_TYPE, MSG_VAL, FILLER1 \n" + + " , FILLER2, FILLER3, FILLER4, FILLER5, REG_DT \n" + + " , PRT_YN ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', '{3}', {4} \n" + + " , '{5}', '{6}', '{7}', N'{8}', '{9}' \n" + + " , '{10}', '{11}', '{12}', '{13}', '{14}' \n" + + " , '{15}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], aParams[1], aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], aParams[11], aParams[12], aParams[13], DateTime.Now.ToString("yyyyMMddHHmmsss") + , aParams[16]); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 40 - 캠페인 출력메시지 마스터 Download / Insert + + #region 41 - 캠페인 카드 마스터 Downlaod / Insert + public int MST_CPI_CARD(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI_CARD.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI_CARD(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI_CARD(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI_CARD \n" + + " SET CHECK_VAL = '{4}', LOC = {5}, FILLER1 = '{6}', FILLER2 = '{7}', FILLER3 = '{8}' \n" + + " , FILLER4 = '{9}', FILLER5 = '{10}', UPD_DT = '{11}', USE_YN = '{12}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + " AND CARD_PRFX_CD = '{3}' \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI_CARD \n" + + " ( CMP_CD, STOR_CD, CPI_CD, CARD_PRFX_CD, CHECK_VAL \n" + + " , LOC, FILLER1, FILLER2, FILLER3, FILLER4 \n" + + " , FILLER5, REG_DT, USE_YN ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', '{3}', '{4}' \n" + + " , {5}, '{6}', '{7}' ,'{8}', '{9}' \n" + + " , '{10}', '{11}', '{12}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], aParams[1], aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], DateTime.Now.ToString("yyyyMMddHHmmsss"), aParams[13]); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 41 - 캠페인 카드 마스터 Downlaod / Insert + + #region 42 - 캠페인 복권 출력 메시지 관리 마스터 Download / Insert + public int MST_CPI_LTTR_PRT(string sUpdateDT, string sStoreCd, string sSubBrandCd, string sSubStoreCd) + { + string sIrtData = string.Empty; + string sRecvData = string.Empty; + Hashtable htReqData = null; + StringBuilder sbRecvData = null; + int iReturn = BaseCom.NG; + + try + { + htReqData = new Hashtable(); + + // 마스터 요청 Hashtable Data 생성 + htReqData = GetPosMasterReqData(MasterLists.MST_CPI_LTTR_PRT.DIV, sUpdateDT, sStoreCd, sSubStoreCd, "0"); + + // 마스터 전문 송수신 + iReturn = this.MstIRTSendReceive(m_cPosStatus.Base.CommSvrIp, + (int)m_cPosStatus.Base.MstPort, + 10000, + ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.MSTIRT, sSubBrandCd), + htReqData, + ref sbRecvData); + + if (iReturn == BaseCom.OK) + { + // 행구분자(#~)로 구분한 Row Data를 string array에 저장 + string[] aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + + //System.Console.WriteLine("{0} - start({1})", DateTime.Now.ToString("HH:mm:ss.fff"), aRowDatas.Length.ToString()); + + // DB Insert + iReturn = UpdateMST_CPI_LTTR_PRT(aRowDatas); + + //System.Console.WriteLine("{0} - end)", DateTime.Now.ToString("HH:mm:ss.fff")); + } + + return iReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + + private int UpdateMST_CPI_LTTR_PRT(string[] aRowDatas) + { + string sQuery = string.Empty; + string sSQL = string.Empty; + //string sInsQuery = string.Empty; + //string sUpdQuery = string.Empty; + string[] aParams = null; + + try + { + #region UPDATE / INSERT Query + sQuery = "UPDATE POSMST..MST_CPI_LTTR_PRT \n" + + " SET MSG_VAL = N'{5}', PRT_EXPAND_TYPE = '{6}', BOLD_YN = '{7}', ALIGN_TYPE = '{8}', FILLER1 = '{9}' \n" + + " , FILLER2 = '{10}', FILLER3 = '{11}', FILLER4 = '{12}', FILLER5 = '{13}', PRT_YN = '{14}' \n" + + " , UPD_DT = '{15}' \n" + + " WHERE CMP_CD = '{0}' \n" + + " AND STOR_CD = '{1}' \n" + + " AND CPI_CD = '{2}' \n" + + " AND GRADE = {3} \n" + + " AND PRT_SEQ = {4} \n" + + "IF @@ROWCOUNT = 0 \n" + + "INSERT INTO POSMST..MST_CPI_LTTR_PRT \n" + + " ( CMP_CD, STOR_CD, CPI_CD, GRADE, PRT_SEQ \n" + + " , MSG_VAL, PRT_EXPAND_TYPE, BOLD_YN, ALIGN_TYPE, FILLER1 \n" + + " , FILLER2, FILLER3, FILLER4, FILLER5, PRT_YN \n" + + " , REG_DT ) \n" + + "VALUES \n" + + " ( '{0}', '{1}', '{2}', {3}, {4} \n" + + " , N'{5}', '{6}', '{7}', '{8}', '{9}' \n" + + " , '{10}', '{11}', '{12}', '{13}', '{14}' \n" + + " , '{15}' ) \n"; + #endregion UPDATE / INSERT Query + + if (aRowDatas.Length > 0) + { + // 현재 Row Counting + int nCnt = 0; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + int iRet = UserCom.NG; + + foreach (string sRowData in aRowDatas) + { + nCnt++; + aParams = sRowData.Split('|'); + + sSQL = string.Format( sQuery + , aParams[0], aParams[1], aParams[2], aParams[3], aParams[4] + , aParams[5], aParams[6], aParams[7], aParams[8], aParams[9] + , aParams[10], aParams[11], aParams[12], aParams[13], aParams[14] + , DateTime.Now.ToString("yyyyMMddHHmmsss")); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if (iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSQL); + + return UserCom.NG1; + } + } + return UserCom.OK; + } + else + { + return UserCom.NG; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + + return UserCom.NG1; + } + } + #endregion 42 - 캠페인 복권 출력 메시지 관리 마스터 Download / Insert + + #endregion Master Download 처리 + + #region PosSaleInfo.INI 저장 처리 + private string UpdatePosSaleInfo() + { + string sRet = UserCom.RST_ERR; + try + { + CmMessage cmPosSaleInfo = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo); + + cmPosSaleInfo.GetMessage("CHECKOVER").MakeMessageOverWrite("MstBatchDownDate", m_cPosStatus.Base.MstBatchDownDate); + + // 파일저장 + cmPosSaleInfo.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo); + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region 프로그램 백그라운드 다운로드 대상 조회 요청 + /// + /// 프로그램 백그라운드 다운로드 대상 조회 요청 + /// + /// + private string LF_ProgramDownLoad_Search() + { + string sGroup = PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20; + string sKind = PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20_DIV.ALL_PGM; + string sDownDiv = "A"; + + Hashtable htRecvData = new Hashtable(); // 프로그램 업데이트 FTP 서버 정보 + string[] sRecvData = {""}; // 프로그램 업데이트 목록 + + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + string sQuery = ""; + string sLocalPath = BaseCom.NxDownPath; + + string[] aRecvData = null; + + string sFTP_IP = ""; + int iFTP_Port = 0; + string sFTP_ID = ""; + string sFTP_Pwd = ""; + + string sApplyDate = ""; + string sApplyTime = ""; + string sFilePath = ""; + string sFileNm = ""; + string sFileVer = ""; + string sFileSeq = ""; + string sDeployDate = ""; + string sDeployTime = ""; + string sDeployDT = ""; + string sUseYn = ""; + string sData = ""; + + int iRet = -1; + + try + { + // DB Connect + //m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + // 프로그램 배포 조회 + sQuery = ""; + sQuery += "SELECT * \n"; + sQuery += " FROM POSMST..MST_EMG_NOTE \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.EMG + "' \n"; + sQuery += " AND MSG_TYPE = '1' \n"; // 구분 (0:일반, 1:재시작) + sQuery += " AND DOWN_YN <> '1' \n"; // 다운로드 구분 (1:다운로드 완료, 0:미처리) + sQuery += " AND START_DT >= '" + DateTime.Now.ToString("yyyyMMdd") + "' \n"; // 영업일로 하게되면 개점 이전에 적용되지 않아 서버에서 받은 시스템 일자로 조회 + sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += " ORDER BY REG_DT \n"; + sQuery = sQuery.Replace("\t", " "); + + //iRet = m_cSqlDbService.DBSelect(sQuery, out dtData); + + iRet = sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + + if (dtData != null && dtData.Rows.Count > 0) + { + foreach (DataRow dr in dtData.Rows) + { + // 서버 조회 + sRet = m_cSvr2Tran.PGMUpdate(sGroup + sKind, sDownDiv, ref sRecvData, ref htRecvData); + if (sRet == UserCom.RST_OK) + { + sData = htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.VALUE].ToString(); + if (CmUtil.IsNull(sData) == true || sData.Trim().Length <= 0) + { + // 상태값 변경 + // 프로그램이 아니고 일반 재시작 필요시 + EmgNoteFlgUpdate(CmUtil.GetDataRowStr(dr, "START_DT"), CmUtil.GetDataRowStr(dr, "MSG_CODE"), CmUtil.GetDataRowStr(dr, "MSG_DIV"), "1"); + } + + for (int iLoop = 0; iLoop < sRecvData.Length; iLoop++) + { + sData = sRecvData[iLoop].ToString(); + if (CmUtil.IsNull(sData) == true || sData.Trim().Length <= 0) continue; + + sFTP_IP = htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.FTP_IP].ToString(); + iFTP_Port = CmUtil.IntParse(htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.FTP_PORT].ToString()); + sFTP_ID = htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.FTP_ID].ToString(); + sFTP_Pwd = htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.FTP_PWD].ToString(); + + aRecvData = sRecvData[iLoop].Split(new string[] { "|" }, StringSplitOptions.None); + sGroup = aRecvData[0].ToString(); // 그룹 + sKind = aRecvData[1].ToString(); // 배포구분 : 01:프로그램, 02:프로그램(기타), 03:객면 컨텐츠, 04:상품이미지, 20:영수증 로고 이미지, 21:서명패드 펌웨어, 22:서명패드 동영상, 23:서명패드 이미지 + sApplyDate = aRecvData[3].ToString(); // 적용일자 + sApplyTime = aRecvData[10].ToString(); // 적용시간 + sFilePath = aRecvData[4].ToString(); // 파일위치 + if (CmUtil.RightH(sFilePath, 1) != "/") sFilePath += "/"; + sFileNm = aRecvData[5].ToString(); // 파일명 + sFileVer = aRecvData[6].ToString(); // 파일버전 + sFileSeq = aRecvData[7].ToString(); // 파일Seq + sDeployDate = aRecvData[8].ToString(); // 다운일자 + sDeployTime = aRecvData[9].ToString(); // 다운시간 + sDeployDT = aRecvData[11].ToString(); // 배포일자 + sUseYn = "1"; // 사용유무 + + // 다운로드 이력 저장 + sRet = m_cSvr2Tran.PGMUpdate_History_Isert(sGroup + sKind, sFileSeq, sFileVer, sFileNm, sApplyDate, sApplyTime, "", sDeployDate, sDeployTime, sFTP_IP, iFTP_Port.ToString(), sFTP_ID, sFTP_Pwd, sFilePath, "0", sDeployDT, sUseYn); + } + + if (sRet != UserCom.RST_ERR) + { + // 다운로드 목록 체크 + sRet = LF_ProgramDownLoad(); + + if (sRet != UserCom.RST_ERR) + { + // 상태값 변경 + EmgNoteFlgUpdate(CmUtil.GetDataRowStr(dr, "START_DT"), CmUtil.GetDataRowStr(dr, "MSG_CODE"), CmUtil.GetDataRowStr(dr, "MSG_DIV"), "1"); + } + } + } + else + { + // 프로그램이 아니고 일반 재시작 필요시 + EmgNoteFlgUpdate(CmUtil.GetDataRowStr(dr, "START_DT"), CmUtil.GetDataRowStr(dr, "MSG_CODE"), CmUtil.GetDataRowStr(dr, "MSG_DIV"), "1"); + } + } + } + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region 프로그램 백그라운드 다운로드 + /// + /// 프로그램 백그라운드 다운로드 대상 조회 요청 + /// + /// + private string LF_ProgramDownLoad() + { + string sKind = ""; + string sDownDiv = "A"; + + string sRet = UserCom.RST_ERR; + DataTable dtData = new DataTable(); + string sQuery = ""; + string sLocalPath = BaseCom.NxDownPath; + string sApplyType = ""; + + string sFTP_IP = ""; + int iFTP_Port = 0; + string sFTP_ID = ""; + string sFTP_Pwd = ""; + + string sApplyDate = ""; + string sApplyTime = ""; + string sFilePath = ""; + string sFileNm = ""; + string sFileVer = ""; + string sFileSeq = ""; + string sDeployDate = ""; + string sDeployTime = ""; + string sDeployDT = ""; + string sUseYn = ""; + int iRet = -1; + + string sMsg = ""; + + try + { + // DB Connect + //m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + // 프로그램 다운로드 이력조회 후 다운로드 시작 + sQuery = ""; + sQuery += "SELECT * \n"; + sQuery += " FROM POSMST..MST_PGM_VER_NEW \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'\n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'\n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'\n"; + sQuery += " AND APP_TYPE NOT IN('2') \n"; // 적용구분(1:다운완료, 2:적용완료, F:다운실패, E:적용실패) + sQuery += " AND DOWN_DIV <> '1' \n"; + sQuery += " AND ISNULL(DEPLOY_DATE, '') + ISNULL(DEPLOY_TIME, '') <= '" + DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmm") + "'\n"; + sQuery += " AND ISNULL(USE_YN, '1') = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += " ORDER BY 1, 2, 3, 4, 5, 6 \n"; + sQuery = sQuery.Replace("\t", " "); + + //iRet = m_cSqlDbService.DBSelect(sQuery, out dtData); + iRet = sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + + if (dtData != null && dtData.Rows.Count > 0) + { + foreach (DataRow dr in dtData.Rows) + { + sKind = CmUtil.GetDataRowStr(dr, PosMst.MST_PGM_VER.DATA.KIND); + + sFTP_IP = CmUtil.GetDataRowStr(dr, "FTP_IP"); + iFTP_Port = CmUtil.IntParse(CmUtil.GetDataRowStr(dr, "FTP_PORT")); + sFTP_ID = CmUtil.GetDataRowStr(dr, "FTP_ID"); + sFTP_Pwd = CmUtil.GetDataRowStr(dr, "FTP_PWD"); + + sApplyDate = CmUtil.GetDataRowStr(dr, "APPLY_DATE"); // 적용일자 + sApplyTime = CmUtil.GetDataRowStr(dr, "APPLY_TIME"); // 적용시간 + sFilePath = CmUtil.GetDataRowStr(dr, "FTP_FILEPATH"); // 파일위치 + if (CmUtil.RightH(sFilePath, 1) != "/") sFilePath += "/"; + sFileNm = CmUtil.GetDataRowStr(dr, "FILE_NM"); // 파일명 + sFileVer = CmUtil.GetDataRowStr(dr, "FILE_VER"); // 파일버전 + sFileSeq = CmUtil.GetDataRowStr(dr, "FILE_SEQ"); // 파일Seq + sDeployDate = CmUtil.GetDataRowStr(dr, "DEPLOY_DATE"); // 다운로드일자 + sDeployTime = CmUtil.GetDataRowStr(dr, "DEPLOY_TIME"); // 다운로드시간 + sDeployDT = CmUtil.GetDataRowStr(dr, "DEPLOY_DT"); // 배포일자 + sUseYn = "1"; // 사용유무 + + // 이전에 받은파일이 있는지 체크 + if (CmUtil.Exists(BaseCom.NxBackPath + PosConst.BACKUP_PATH.PGM + sFileNm) != true) + { + if (m_cNetworkFTP.Connect(sFTP_IP, sFTP_ID, sFTP_Pwd, 10, iFTP_Port) == 0) + { + // FTP 다운로드 + CmUtil.FileDelete(sLocalPath + sFileNm); + iRet = m_cNetworkFTP.Download(sFilePath, sLocalPath, sFileNm, ref sMsg, m_cPosStatus.Base.FtpConnType); + + if (iRet != 0) + { + sApplyType = ItemConst.PGM_DOWN_STATE.DownLoad_Fail; + + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0282) + "\n" + sMsg); + } + else + { + // 다운로드만 적용 + sApplyType = ItemConst.PGM_DOWN_STATE.DownLoad_OK; + } + } + else + { + // 다운로드 실패 + sApplyType = ItemConst.PGM_DOWN_STATE.DownLoad_Fail; + } + } + else + { + // 다운로드만 적용 + sApplyType = ItemConst.PGM_DOWN_STATE.DownLoad_OK; + + // 백업된 파일을 다운로드 폴더에 복사 + CmUtil.FileCopy(sFileNm, BaseCom.NxBackPath + PosConst.BACKUP_PATH.PGM, sLocalPath, ""); + } + + // 다운로드 이력 저장 + sRet = m_cSvr2Tran.PGMUpdate_History_Isert(sKind, sFileSeq, sFileVer, sFileNm, sApplyDate, sApplyTime, sApplyType, sDeployDate, sDeployTime, sFTP_IP, iFTP_Port.ToString(), sFTP_ID, sFTP_Pwd, sFilePath, "1", sDeployDT, sUseYn); + + // 수신 상태 전송 + sRet = m_cSvr2Tran.PGMUpdate_Complete(sKind, sApplyType, sFileNm, sFileSeq, sFileVer, sDownDiv, sDeployDate, sDeployDT); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region 다운로드 프로그램 적용 + /// + /// 다운로드 프로그램 적용 + /// + /// + private string PGMUpdate_Apply(string sDownDiv) + { + string sRet = UserCom.RST_ERR; + string sApplyType = ""; + int iRet = -1; + + string sUnzip_RCPTLOGO_Path = BaseCom.NxImgPath + @"RCPTLOGO\"; + string sUnzip_SIGNPAD_Path = BaseCom.NxDonglePath; + string sUnzip_PGM_Path = BaseCom.NxDownPath + @"PGM\"; + string sUnzip_IMG_Path = BaseCom.NxDownPath; + + string sDelete_CAMPAIGN_Path = BaseCom.NxDownPath + @"CDP\CAMPAIGN\"; + string sDelete_CDP_COM_Path = BaseCom.NxDownPath + @"CDP\CDP_COM\"; + string sDelete_CUSTOMER_Path = BaseCom.NxDownPath + @"CDP\CUSTOMER\"; + string sDelete_ITEM_Path = BaseCom.NxDownPath + @"CDP\ITEM\"; + string sDelete_TEST_MODE_Path = BaseCom.NxDownPath + @"CDP\TEST_MODE\"; + string sDelete_ETC_Path = BaseCom.NxDownPath + @"CDP\ETC\"; + string sUnzipPath = ""; + DataTable dtData = new DataTable(); + + string sGroup = ""; + string sKind = ""; + + string sFTP_IP = ""; + int iFTP_Port = 0; + string sFTP_ID = ""; + string sFTP_Pwd = ""; + + string sApplyDate = ""; + string sApplyTime = ""; + string sFilePath = ""; + string sFileNm = ""; + string sFileVer = ""; + string sFileSeq = ""; + string sDeployDate = ""; + string sDeployTime = ""; + string sDeployDT = ""; + string sUseYn = ""; + + bool bUnZIp = false; + try + { + // DB Connect + m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + string sQuery = ""; + sQuery = ""; + sQuery += "SELECT * \n"; + sQuery += " FROM POSMST..MST_PGM_VER_NEW \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += " AND APP_TYPE = '1' \n"; // 적용구분(1:다운완료, 2:적용완료, F:다운실패, E:적용실패) + //sQuery += " AND ISNULL(APPLY_DATE, '') <= '" + m_cPosStatus.Base.SaleDate + "'\n"; // 영업일로 하게되면 개점 이전에 적용되지 않아 서버에서 받은 시스템 일자로 조회 + //sQuery += " AND ISNULL(APPLY_DATE, '') + ISNULL(APPLY_TIME, '0000') <= '" + m_cPosStatus.Base.SaleDate + DateTime.Now.ToString("HHmm") + "'\n"; // 영업일로 하게되면 개점 이전에 적용되지 않아 서버에서 받은 시스템 일자로 조회 + sQuery += " AND ISNULL(APPLY_DATE, '') + ISNULL(APPLY_TIME, '') <= '" + DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmm") + "'\n"; // 영업일로 하게되면 개점 이전에 적용되지 않아 서버에서 받은 시스템 일자로 조회 + sQuery += " AND ISNULL(USE_YN, '1') = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += " ORDER BY 1, 2, 3, 4, 5, 6 \n"; + sQuery = sQuery.Replace("\t", " "); + + iRet = m_cSqlDbService.DBSelect(sQuery, out dtData); + + if (dtData != null && dtData.Rows.Count > 0) + { + foreach (DataRow dr in dtData.Rows) + { + sGroup = CmUtil.MidH(CmUtil.GetDataRowStr(dr, PosMst.MST_PGM_VER.DATA.KIND), 0, 2); + sKind = CmUtil.GetDataRowStr(dr, PosMst.MST_PGM_VER.DATA.KIND); + + sFTP_IP = CmUtil.GetDataRowStr(dr, "FTP_IP"); + iFTP_Port = CmUtil.IntParse(CmUtil.GetDataRowStr(dr, "FTP_PORT")); + sFTP_ID = CmUtil.GetDataRowStr(dr, "FTP_ID"); + sFTP_Pwd = CmUtil.GetDataRowStr(dr, "FTP_PWD"); + + sApplyDate = CmUtil.GetDataRowStr(dr, "APPLY_DATE"); // 적용일자 + sApplyTime = CmUtil.GetDataRowStr(dr, "APPLY_TIME"); // 적용시간 + sFilePath = CmUtil.GetDataRowStr(dr, "FTP_FILEPATH"); // 파일위치 + if (CmUtil.RightH(sFilePath, 1) != "/") sFilePath += "/"; + sFileNm = CmUtil.GetDataRowStr(dr, "FILE_NM"); // 파일명 + sFileVer = CmUtil.GetDataRowStr(dr, "FILE_VER"); // 파일버전 + sFileSeq = CmUtil.GetDataRowStr(dr, "FILE_SEQ"); // 파일Seq + sDeployDate = CmUtil.GetDataRowStr(dr, "DEPLOY_DATE"); // 다운로드일자 + sDeployTime = CmUtil.GetDataRowStr(dr, "DEPLOY_TIME"); // 다운로드시간 + sDeployDT = CmUtil.GetDataRowStr(dr, "DEPLOY_DT"); // 배포일자 + sUseYn = "1"; // 사용유무 + + if (sFileNm.Trim() == "") continue; + + CmUtil.CreateDirectory(sUnzip_PGM_Path); + CmUtil.CreateDirectory(sUnzip_IMG_Path); + CmUtil.CreateDirectory(BaseCom.NxBackPath + PosConst.BACKUP_PATH.PGM); + + if (CmUtil.RightH(sFileNm, 3).ToUpper() == "ZIP") + { + if (sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_10) + sUnzipPath = sUnzip_IMG_Path; // 이미지 + else if (sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20) + sUnzipPath = sUnzip_PGM_Path; // POS 프로그램 + else if (sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_30) + sUnzipPath = sUnzip_RCPTLOGO_Path; // 영수증 로고 이미지 + else if (sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_40 || sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_50 || sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_60) + sUnzipPath = sUnzip_SIGNPAD_Path; // 서명패드 + else sUnzipPath = sUnzip_PGM_Path; // 프로그램 + + + // 파일 존재 여부 체크 + if (File.Exists(BaseCom.NxDownPath + sFileNm) != true) + { + // 적용 상태 + sApplyType = ItemConst.PGM_DOWN_STATE.Update_Fail; + + // 다운로드 이력 저장 + sRet = m_cSvr2Tran.PGMUpdate_History_Isert(sKind, sFileSeq, sFileVer, sFileNm, sApplyDate, sApplyTime, sApplyType, sDeployDate, sDeployTime, sFTP_IP, iFTP_Port.ToString(), sFTP_ID, sFTP_Pwd, sFilePath, "1", sDeployDT, sUseYn); + if (sRet != UserCom.RST_OK) continue; + + // 수신 상태 전송 + sRet = m_cSvr2Tran.PGMUpdate_Complete(sKind, sApplyType, sFileNm, sFileSeq, sFileVer, sDownDiv, sDeployDate, sDeployDT); + if (sRet != UserCom.RST_OK) continue; + + continue; + } + + // 압축 해제 + CmUtil.UnZipFile(sUnzipPath, BaseCom.NxDownPath + sFileNm); + + + // 압축 파일 BACKUP으로 이동 + if (sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20) + { + // PGM인 경우 차후 복구용으로 별도 위치로 이동한다. + CmUtil.FileMove(BaseCom.NxDownPath + sFileNm, BaseCom.NxBackPath + PosConst.BACKUP_PATH.PGM + sFileNm); + + // POSSTART.EXE가 존재하면 BIN폴더에 덮어쓴다. + CmUtil.FileCopy("PosStart.exe", sUnzipPath, BaseCom.NxBinPath, ""); + + bUnZIp = true; + } + else + { + // 적용후 zip 파일 삭제 + CmUtil.FileDelete(BaseCom.NxDownPath + sFileNm); + } + } + else + { + // 일반 파일이면 적용폴더로 그대로 이동 + CmUtil.FileMove(BaseCom.NxDownPath + sFileNm, sUnzipPath + sFileNm); + } + + // 적용 상태 + sApplyType = ItemConst.PGM_DOWN_STATE.Update_OK; + + // 다운로드 이력 저장 + sRet = m_cSvr2Tran.PGMUpdate_History_Isert(sKind, sFileSeq, sFileVer, sFileNm, sApplyDate, sApplyTime, sApplyType, sDeployDate, sDeployTime, sFTP_IP, iFTP_Port.ToString(), sFTP_ID, sFTP_Pwd, sFilePath, "1", sDeployDT, sUseYn); + if (sRet != UserCom.RST_OK) continue; + + // 수신 상태 전송 + sRet = m_cSvr2Tran.PGMUpdate_Complete(sKind, sApplyType, sFileNm, sFileSeq, sFileVer, sDownDiv, sDeployDate, sDeployDT); + if (sRet != UserCom.RST_OK) continue; + + if (sGroup == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20) + { + // 이전 파일 삭제 + PGM_FileDelete(sKind, sFileVer, sFileSeq); + + // 프로그램 버전정보 설정 + SetProgramVerIni(sKind, sFileVer, sFileSeq); + } + } + } + + // 사용자 알림 메시지 체크용 설정 + m_bPGMReboot = bUnZIp; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + + // 수신 상태 전송 + sApplyType = ItemConst.PGM_DOWN_STATE.Update_Fail; + sRet = m_cSvr2Tran.PGMUpdate_Complete(sKind, sApplyType, sFileNm, sFileSeq, sFileVer, sDownDiv, sDeployDate, sDeployDT); + } + return sRet; + } + #endregion + + #region 다운로드 프로그램 삭제 (현재 버전과 이전 버전 이외 삭제) + /// + /// 다운로드 프로그램 삭제 (현재 버전과 이전 버전 이외 삭제) + /// + /// + private string PGM_FileDelete(string sKind, string sFileVer, string sFileSeq) + { + string sRet = UserCom.RST_ERR; + string sUnzipPath = BaseCom.NxBackPath + PosConst.BACKUP_PATH.PGM; + int iRet = -1; + DataTable dtData = new DataTable(); + + string sFileNm = ""; + + try + { + // DB Connect + m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource + , m_cPosStatus.Base.LocalDbCatalog + , m_cPosStatus.Base.LocalDbUserID + , m_cPosStatus.Base.LocalDbPassword); + string sQuery = ""; + sQuery = ""; + sQuery += "SELECT \n"; + sQuery += " KIND \n"; + sQuery += " , FILE_VER \n"; + sQuery += " , FILE_SEQ \n"; + sQuery += " , FILE_NM \n"; + sQuery += "FROM POSMST..MST_PGM_VER_NEW \n"; + sQuery += "WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'\n"; + sQuery += "AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'\n"; + sQuery += "AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'\n"; + sQuery += "AND KIND = '" + sKind + "'\n"; + sQuery += "AND APP_TYPE <> '1' \n"; // 적용구분(1:다운완료, 2:적용완료, F:다운실패, E:적용실패) + sQuery += "AND FILE_VER + CONVERT(VARCHAR(5), FILE_SEQ) < '" + sFileVer + sFileSeq + "'\n"; + sQuery += "AND FILE_VER + CONVERT(VARCHAR(5), FILE_SEQ) NOT IN(SELECT ISNULL(MAX(FILE_VER + CONVERT(VARCHAR(5), FILE_SEQ)), 0) \n"; + sQuery += " FROM POSMST..MST_PGM_VER_NEW \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'\n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'\n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'\n"; + sQuery += " AND KIND = '" + sKind + "'\n"; + sQuery += " AND APP_TYPE <> '1' \n"; // 적용구분(1:다운완료, 2:적용완료, F:다운실패, E:적용실패) + sQuery += " AND FILE_VER + CONVERT(VARCHAR(5), FILE_SEQ) <> '" + sFileVer + sFileSeq + "'\n"; + sQuery += " AND ISNULL(USE_YN, '1') = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += " ) \n"; + sQuery += "AND ISNULL(USE_YN, '1') = '" + PosConst.MST_USE_YN.YES + "' \n"; + sQuery += "ORDER BY 1, 2, 3 \n"; + + sQuery = sQuery.Replace("\t", " "); + + iRet = m_cSqlDbService.DBSelect(sQuery, out dtData); + + if (dtData != null && dtData.Rows.Count > 0) + { + foreach (DataRow dr in dtData.Rows) + { + sKind = CmUtil.GetDataRowStr(dr, PosMst.MST_PGM_VER.DATA.KIND); + sFileNm = CmUtil.GetDataRowStr(dr, PosMst.MST_PGM_VER.DATA.FILE_NM); + + if (sFileNm.Trim() == "") continue; + + // 이전 파일 삭제 + CmUtil.FileDelete(sUnzipPath + sFileNm); + } + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region 프로그램 버전 ini 저장 + private string SetProgramVerIni(string sKind, string sVer, string sSeq) + { + string sRet = UserCom.RST_ERR; + + try + { + // 프로그램 버전정보 설정 + switch (sKind) + { + case PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20 + PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_20_DIV.POS_PGM10: + { + m_cPosStatus.Ver.ProgramVer = sVer; + m_cPosStatus.Ver.ProgramVerSeq = sSeq; + break; + } + } + + // 프로그램 버전 INI 파일 설정 + CmMessage cmPosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); + cmPosConfig.GetMessage("PGMVER").MakeMessageOverWrite("ProgramVer" + CmUtil.MidH(sKind, 2, 2), sVer); + cmPosConfig.GetMessage("PGMVER").MakeMessageOverWrite("ProgramVerSeq" + CmUtil.MidH(sKind, 2, 2), sSeq); + cmPosConfig.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); + sRet = UserCom.RST_OK; + + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + + return sRet; + } + #endregion + } +} diff --git a/Agent/MasterDown/DatabaseMssql.cs b/Agent/MasterDown/DatabaseMssql.cs new file mode 100644 index 0000000..7639925 --- /dev/null +++ b/Agent/MasterDown/DatabaseMssql.cs @@ -0,0 +1,132 @@ +using System.Data.SqlClient; +using System.Data; +using System.Diagnostics; + +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : MSSQL DB 관련 처리 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.BackgroundDown +{ + public class DatabaseMssql + { + private SqlDB sqlDb = null; + + public bool Begin() + { + return sqlDb.DBBeginTransaction(); + } + + public bool Commit() + { + return sqlDb.DBTransactionCommit(); + } + + public bool Rollback() + { + return sqlDb.DBTransactionRollback(); + } + + public void Close() + { + sqlDb.DBClose(); + } + + /// + /// SQL DataTable를 이용한 Select + /// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음 + /// + /// + /// + /// + public int DBSelect(string sQuery, out DataTable outDtReturn) + { + int iReturn = -9; + DataTable dtReturn = null; + + string strCommand = sQuery; + CommandType sqlCommandType = CommandType.Text; + + //System.Diagnostics.Debug.Print("SQL=" + sQuery); + iReturn = sqlDb.DBDataTableSelect(strCommand, sqlCommandType, (SqlParameter[])null, out dtReturn); + + outDtReturn = dtReturn; + return iReturn; + } + + /// + /// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음 + /// + /// + /// + public int DBExecuteNonQuery(string sQuery) + { + int iReturn = 0; + + CommandType sqlCommandType = CommandType.Text; + + iReturn = sqlDb.DBExecuteNonQuery(sQuery, sqlCommandType, (SqlParameter[])null); + + return iReturn; + } + + /// + /// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음 + /// + /// + /// + public int DBExecuteNonQuery(string[] sQuery) + { + int iReturn = 0; + + CommandType sqlCommandType = CommandType.Text; + + iReturn = sqlDb.DBExecuteNonQuery(sQuery, sqlCommandType, (SqlParameter[])null); + + return iReturn; + } + + /// + /// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음 + /// + /// + /// + public int DBExecuteNonQuery(string[] sQuery, bool bStandAlone) + { + int iReturn = 0; + + CommandType sqlCommandType = CommandType.Text; + + iReturn = sqlDb.DBExecuteNonQuery(sQuery, sqlCommandType, (SqlParameter[])null, bStandAlone); + + return iReturn; + } + + /// + /// MSSQL Database Conntction String + /// + /// + /// + /// + /// + public bool SetDBConnectionString(string pDataSource, string pInitialCatalog, string pUID, string pPassword) + { + bool bReturn = false; + + if(sqlDb != null) + { + if (sqlDb.IsDBOpen()) sqlDb.DBClose(); + } + + sqlDb = new SqlDB(pDataSource, pInitialCatalog, pUID, pPassword); + + bReturn = sqlDb.IsDBOpen(); + + return bReturn; + } + + } +} diff --git a/Agent/MasterDown/NetworkFtp.cs b/Agent/MasterDown/NetworkFtp.cs new file mode 100644 index 0000000..ab58574 --- /dev/null +++ b/Agent/MasterDown/NetworkFtp.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Net; +using System.Collections; +using System.Diagnostics; +using System.Runtime.Serialization.Formatters.Binary; +using System.Data; + +using System.Net.Sockets; +using System.Threading; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : FTP 다운로드 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.BackgroundDown +{ + public class NetworkFtp : INetworkFTP + { + private readonly string LOCAL_DOWN_PATH = BaseCom.NxRootPath + @"DOWN\"; //Download File Location (다운로드 파일위치) + + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + private FTP m_ClsFtp; + + public NetworkFtp() + { + m_cPosStatus = (PosStatus)StateObject.POS; + } + + /// + /// FTP 서버에 Connect + /// + /// + /// + /// + /// + /// + /// 0 : 정상접속, -1:시간초과, -2:로그인 실패, -3:서버접속 실패, -4:지원하지 않는 시스템 + public int Connect(string sServer, string sUserId, string sPassword, int iTimeOutSeconds, int iPort) + { + int nReturn = -9; + + try + { + m_ClsFtp = new FTP((iPort == 0) ? sServer : sServer + ":" + iPort, sUserId, sPassword); + + if (m_ClsFtp != null) nReturn = 0; + else nReturn = -1; + + ////m_ClsFtp = new ClsFtp(sServer, sUserId, sPassword, iTimeOutSeconds, iPort); + + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// //MessageBox.Show("FTP Server Connect Error !!! [" + nReturn.ToString() + "]"); + //// return nReturn; + ////} + + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Connect()", e.Message); + return nReturn; + } + + return nReturn; + } + + /// + /// + /// + /// + /// + /// + /// 0:정상종료, -1:Not Connected, -2:Binary Mode set failed, -3: failed local file Create, -4:socket 에러, -5:remote file 없슴, -6:정상수신실패, -7: 파일사이즈 틀림 + public int Download(string sSvrDirectory, string sLocalDirectory, string sFileNm, string sFtpMode = PosConst.FTP_CONN_TYPE.PASSIVE) + { + string sMsg = ""; + return Download(sSvrDirectory, sLocalDirectory, sFileNm, ref sMsg, sFtpMode); + } + public int Download(string sSvrDirectory, string sLocalDirectory, string sFileNm, ref string sMsg, string sFtpMode = PosConst.FTP_CONN_TYPE.PASSIVE) + { + int nReturn = -9; + bool bRet = false; + try + { + if (CmUtil.RightH(sLocalDirectory, 1) != "\\") sLocalDirectory += "\\"; + + if (Directory.Exists(sLocalDirectory) == false) Directory.CreateDirectory(sLocalDirectory); + + bRet = m_ClsFtp.Download(sSvrDirectory + sFileNm, sLocalDirectory + sFileNm, ref sMsg, sFtpMode); + + if (bRet) nReturn = 0; + else nReturn = -1; + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// return nReturn; + ////} + + ////string sDir = m_ClsFtp.ChangeDir(sSvrDirectory); + + ////nReturn = m_ClsFtp.Download(sLocalDirectory, sFileNm, true); + ////if (nReturn < 0 && File.Exists(BaseCom.NxDownPath + sFileNm + ".ftp") == true) + ////{ + //// File.Delete(BaseCom.NxDownPath + sFileNm + ".ftp"); + ////} + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Download()", e.Message); + + sMsg = sFileNm + " " + e.Message; + return nReturn; + } + + return nReturn; + } + + /// + /// FTP서버와의 연결을 종료 + /// + public void Disconnect() + { + //m_ClsFtp.Close(); + //m_ClsFtp.cleanup(); + } + + /// + /// 정해진 디렉토리에 정해진 파일을 업로드 + /// + /// + /// + /// + /// 0:정상완료, -1:Not Connected, -2: data socket create error, -3: file write 실패, -4:socket error, -5: 정상처리 실패(서버) + public int Upload(string sSvrDirectory, string sLocalDirectory, string sFileNm) + { + int nReturn = -9; + bool bRet = false; + + try + { + bRet = m_ClsFtp.Upload(sLocalDirectory + sFileNm, sSvrDirectory + sFileNm); + + if (bRet) nReturn = 0; + else nReturn = -1; + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// return nReturn; + ////} + + ////string sDir = m_ClsFtp.ChangeDir(sSvrDirectory); + + ////nReturn = m_ClsFtp.Upload(sLocalDirectory, sFileNm, true); + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Upload()", e.Message); + + return nReturn; + } + return nReturn; + } + } +} diff --git a/Agent/MasterDown/NetworkIRT.cs b/Agent/MasterDown/NetworkIRT.cs new file mode 100644 index 0000000..f2bd159 --- /dev/null +++ b/Agent/MasterDown/NetworkIRT.cs @@ -0,0 +1,669 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Collections; +using System.Net.NetworkInformation; +using System.Runtime.InteropServices; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : SC / HQ IRT Request (SC / 본부 IRT 요청) +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.BackgroundDown +{ + public class NetworkIRT + { + private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus; // 기본정보 참조 + private DeviceStatus m_cDevStatus; // 장비정보 참조 + + /// + /// Sending Socket (전송 소켓) + /// + private static TcpSocket m_IrtSocket = null; + + /// + /// IP + /// + private string m_ServerIp = ""; + + /// + /// Port + /// + private int m_ServerPort = 0; + + /// + /// TimeOut + /// + private int m_ServerTimeout = 10000; + + /// --------------------------------------------------------------------------------------------- + /// + /// Constructor (생성자) + /// + /// --------------------------------------------------------------------------------------------- + public NetworkIRT() + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS 장치정보 (PDA) + } + + #region OnLine 상태체크 + /// + /// Get network online status with Ping check. (Ping체크로 network Online상태를 취득한다,) + /// + /// Ip address + /// True : online false : Offline + private int CheckNetworkOnline(string pHostAddress) + { + //Ping Check (Ping 체크) + Ping pingSender = new Ping(); + PingOptions optins = new PingOptions(); + optins.DontFragment = true; + string data = "aaa"; + byte[] buffer = Encoding.ASCII.GetBytes(data); + int timeout = 120; + PingReply reply = pingSender.Send(pHostAddress, timeout, buffer, optins); + + if (reply.Status == IPStatus.Success) + return UserCom.OK; + else + return UserCom.NG; + } + #endregion + + #region 암호화 편집 + /// + /// 암호화 위해 전문 편집 + /// + /// 평문 + /// 암호문, 에러시 평문 리턴 + private byte[] EncryptData(byte[] plainData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, plainData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] byteEncryptData = null; + byte[] editedAllData = null; + + if (sEncType == "0") // "0" 평문 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[plainData.Length - nNowPos]; + + Array.Copy(plainData, nNowPos, tranBytes, 0, plainData.Length - nNowPos); + + //암호화 + byteEncryptData = AES.DynamicKeyEncrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + byteEncryptData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "1"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + byte[] byteCommHeader = Encoding.UTF8.GetBytes(sChangedCommHeader); + + editedAllData = new byte[iMsgLen]; + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(byteEncryptData, 0, editedAllData, byteCommHeader.Length, byteEncryptData.Length); + + return editedAllData; + } + else // "1" 암호문 + { + return plainData; + } + + } + + #endregion + + #region 복호화 편집 + /// + /// 복호화 위해 전문 편집 + /// + /// + /// + private byte[] DecryptData(byte[] EncryptData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, EncryptData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] bytePlainData = null; + byte[] editedAllData = null; + + if (sEncType == "1") //복호화 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[EncryptData.Length - nNowPos]; + + Array.Copy(EncryptData, nNowPos, tranBytes, 0, tranBytes.Length); + + //복호화 + bytePlainData = AES.DynamicKeyDecrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + bytePlainData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "0"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + + byte[] byteCommHeader = Encoding.Default.GetBytes(sChangedCommHeader); + editedAllData = new byte[byteCommHeader.Length + bytePlainData.Length]; + + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(bytePlainData, 0, editedAllData, byteCommHeader.Length, bytePlainData.Length); + + return editedAllData; + + } + else + { + return EncryptData; + } + + } + + #endregion + + #region IRT Send/Receive + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(byte[] pSendData, ref byte[] pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + byte[] rRecvData = null; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = null; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(string pSendData, ref string pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + string rRecvData = ""; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = ""; + nStat = nRecvLen; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + #endregion + + #region IRT 암호화/복화화 전송 + /// + /// IRT String로의 Send/Recv + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, string sComm, ref string sRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + byte[] bEditedSendData = null; + + if (m_ServerIp != "" && m_ServerPort != 0) + { + //암호화 + if (sComm.Length != 0) + { + //bEditedSendData = EncryptData(Encoding.Default.GetBytes(sComm)); + bEditedSendData = Encoding.Default.GetBytes(sComm); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sComm); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] SendData is Null"); + } + + //SendReceive + nStat = SendReceiveData(Encoding.Default.GetString(bEditedSendData, 0, bEditedSendData.Length), ref sReturn); + + //복호화 + if (sReturn.Length != 0) + { + byte[] byteRecv = DecryptData(Encoding.Default.GetBytes(sReturn)); + sRecvData = Encoding.Default.GetString(byteRecv, 0, byteRecv.Length); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] RecvData Is Null"); + } + } + + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, byte[] comm, ref byte[] sRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + byte[] bEditedSendData = null; + + if (m_ServerIp != "" && m_ServerPort != 0) + { + //암호화 + if (comm != null) + { + bEditedSendData = EncryptData(comm); + + string sTmpLog = Encoding.Default.GetString(comm, 0, comm.Length); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sTmpLog); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] SendData Is Null"); + } + + //SendReceive + nStat = SendReceiveData(bEditedSendData, ref sRecvData); + + //복호화 + if (sRecvData != null) + { + byte[] sDecryptRecvData = DecryptData(sRecvData); + + sRecvData = sDecryptRecvData; + + string sTmpLog = Encoding.Default.GetString(sDecryptRecvData, 0, sDecryptRecvData.Length); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sTmpLog); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] RecvData Is Null"); + } + } + + return nStat; + } + #endregion + + #region IRT 전송 - 외부 VAN + /// + /// IRT String로의 Send/Recv - 외부 Van + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveEx(string sIP, int iPort, int iTimeOut, string sSendData, ref string sRecvData, int nRecvDataLen, string sAckData) + { + return IRTSendReceiveEx(sIP, iPort, iTimeOut, sSendData, ref sRecvData, nRecvDataLen, sAckData, false); + } + + public int IRTSendReceiveEx(string sIP, int iPort, int iTimeOut, string sSendData, ref string sRecvData, int nRecvDataLen, string sAckData, bool bErrorSkip) + { + int nStat = BaseCom.NG; + try + { + sRecvData = ""; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveEx()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sSendData); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + sSendData); + nStat = m_IrtSocket.SendReceiveData(sSendData, ref sRecvData, m_ServerTimeout, nRecvDataLen, sAckData, bErrorSkip); + System.Diagnostics.Debug.Print("응답=" + sRecvData); + + if (nStat > 0) nStat = BaseCom.OK; + + m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveSEx()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataEx()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv - 외부 Van + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveEx(string sIP, int iPort, int iTimeOut, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen, byte[] sAckData) + { + int nStat = BaseCom.NG; + try + { + bRecvData[0] = 0; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveEx()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + nStat = m_IrtSocket.SendReceiveData(bSendData, ref bRecvData, m_ServerTimeout, nRecvDataLen, sAckData); + System.Diagnostics.Debug.Print("응답=" + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + if (nStat > 0) nStat = BaseCom.OK; + + m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveEx()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataEx()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + return nStat; + } + #endregion + + #region IRT 전송 - 외부 VAN (전문길이 위치지정) + + /// + /// IRT String로의 Send/Recv - 외부 Van (길이 위치지정) + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveLen(string sIP, int iPort, int iTimeOut, string sSendData, ref string sRecvData, bool bFullSize, int nRecvDataLen, int nRecvDataStartPosion) + { + int nStat = BaseCom.NG; + try + { + sRecvData = ""; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sSendData); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + sSendData); + nStat = m_IrtSocket.SendReceiveData(sSendData, ref sRecvData, m_ServerTimeout, bFullSize, nRecvDataLen, "", nRecvDataStartPosion, false ); + System.Diagnostics.Debug.Print("응답=" + sRecvData); + + if (nStat > 0) nStat = BaseCom.OK; + + m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataEx()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv - 외부 Van (전문길이 위치지정) + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveLen(string sIP, int iPort, int iTimeOut, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen, int nRecvDataStartPosion) + { + int nStat = BaseCom.NG; + try + { + bRecvData[0] = 0; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + nStat = m_IrtSocket.SendReceiveData(bSendData, ref bRecvData, m_ServerTimeout, nRecvDataLen, null, nRecvDataStartPosion); + System.Diagnostics.Debug.Print("응답=" + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + if (nStat > 0) nStat = BaseCom.OK; + + m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataLen()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + return nStat; + } + #endregion + + #region IRT Byte로의 Send/Recv - 외부 Van (Bypass Byte) + /// + /// IRT Byte로의 Send/Recv - 외부 Van (Bypass Byte) + /// + /// + /// + /// + /// + /// + /// + /// + public int ByPassSendReceiveData(string sIP, int iPort, int iTimeOut, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen) + { + int nStat = BaseCom.NG; + try + { + //bRecvData[0] = 0; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + nStat = m_IrtSocket.ByPassSendReceiveData(bSendData, nRecvDataLen, ref bRecvData, m_ServerTimeout); + System.Diagnostics.Debug.Print("응답=" + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + if (nStat > 0) nStat = BaseCom.OK; + + m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataLen()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + return nStat; + } + #endregion + } +} diff --git a/Agent/MasterDown/NetworkJSON.cs b/Agent/MasterDown/NetworkJSON.cs new file mode 100644 index 0000000..f117dfa --- /dev/null +++ b/Agent/MasterDown/NetworkJSON.cs @@ -0,0 +1,581 @@ +//#define LOG_TRACE //@@ 2017.11.01;로그 확인시 사용;girak.kim +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Collections; +using System.Net.NetworkInformation; +using System.Runtime.InteropServices; + +using Newtonsoft.Json; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : SC / HQ IRT Request (SC / 본부 IRT 요청) +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.BackgroundDown +{ + public class NetworkJSON + { + private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus; // 기본정보 참조 + private DeviceStatus m_cDevStatus; // 장비정보 참조 + + /// + /// Sending Socket (전송 소켓) + /// + private static TcpSocket m_IrtSocket = null; + + /// + /// IP + /// + private string m_ServerIp = ""; + + /// + /// Port + /// + private int m_ServerPort = 0; + + /// + /// Recv Timeout + /// + private int m_ServerTimeout = 5000; + + + /// --------------------------------------------------------------------------------------------- + /// + /// Constructor (생성자) + /// + /// --------------------------------------------------------------------------------------------- + public NetworkJSON() + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS 장치정보 + } + + /// + /// Get network online status with Ping check. (Ping체크로 network Online상태를 취득한다,) + /// + /// Ip address + /// True : online false : Offline + private int CheckNetworkOnline(string pHostAddress) + { + //Ping Check (Ping 체크) + Ping pingSender = new Ping(); + PingOptions optins = new PingOptions(); + optins.DontFragment = true; + string data = "aaa"; + byte[] buffer = Encoding.ASCII.GetBytes(data); + int timeout = 120; + PingReply reply = pingSender.Send(pHostAddress, timeout, buffer, optins); + + if (reply.Status == IPStatus.Success) + return UserCom.OK; + else + return UserCom.NG; + } +/* + #region 암호화 편집 + /// + /// 암호화 위해 전문 편집 + /// + /// 평문 + /// 암호문, 에러시 평문 리턴 + private byte[] EncryptData(byte[] plainData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, plainData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] byteEncryptData = null; + byte[] editedAllData = null; + + if (sEncType == "0") // "0" 평문 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[plainData.Length - nNowPos]; + + Array.Copy(plainData, nNowPos, tranBytes, 0, plainData.Length - nNowPos); + + //암호화 + byteEncryptData = AES.DynamicKeyEncrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + byteEncryptData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "1"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + byte[] byteCommHeader = Encoding.Default.GetBytes(sChangedCommHeader); + + editedAllData = new byte[iMsgLen]; + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(byteEncryptData, 0, editedAllData, byteCommHeader.Length, byteEncryptData.Length); + + return editedAllData; + } + else // "1" 암호문 + { + return plainData; + } + + } + + #endregion + + #region 복호화 편집 + /// + /// 복호화 위해 전문 편집 + /// + /// + /// + private byte[] DecryptData(byte[] EncryptData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, EncryptData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] bytePlainData = null; + byte[] editedAllData = null; + + if (sEncType == "1") //복호화 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[EncryptData.Length - nNowPos]; + + Array.Copy(EncryptData, nNowPos, tranBytes, 0, tranBytes.Length); + + //복호화 + bytePlainData = AES.DynamicKeyDecrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + bytePlainData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "0"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + + byte[] byteCommHeader = Encoding.Default.GetBytes(sChangedCommHeader); + editedAllData = new byte[byteCommHeader.Length + bytePlainData.Length]; + + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(bytePlainData, 0, editedAllData, byteCommHeader.Length, bytePlainData.Length); + + return editedAllData; + + } + else + { + return EncryptData; + } + + } + + #endregion +*/ + /// + /// POS 마스터 요청 시 사용하는 Connect 함수 + /// + /// + private int Connect(int iKeepTime = 5000) + { + int iReturn = BaseCom.NG; + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Delay time to close connection is 5 sec. + iReturn = m_IrtSocket.Connect(iKeepTime); + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.Connect()", e.ToString()); + } + + return iReturn; + } + + private void Close() + { + m_IrtSocket.Close(); + } + + + + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(byte[] pSendData, ref byte[] pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + byte[] rRecvData = null; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = null; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(string pSendData, ref string pRecvData, bool bIsDmbIf = false) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + string rRecvData = ""; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + //System.Diagnostics.Debug.Print("요청:" + pSendData); + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout, bIsDmbIf); + //System.Diagnostics.Debug.Print("응답:" + rRecvData); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = ""; + nStat = nRecvLen; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + private int SendReceiveMstData(string pSendData, ref string pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + try + { + nRecvLen = m_IrtSocket.SendReceiveMstData(pSendData, ref pRecvData); + if (nRecvLen > 0) + { + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + e.ToString()); + } + + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv + /// (공통헤더의 전문길이 0으로 세팅해서 송신. 자동 계산) + /// + /// + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref Hashtable htRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = ""; + string sJsonReceiveData = ""; + + try + { + if (m_ServerIp != "" && m_ServerPort != 0) + { + if (htData != null) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + } + + //Send Receive + nStat = SendReceiveData(sCommData + sJsonSendData, ref sJsonReceiveData); + + if (sJsonReceiveData != null && sJsonReceiveData != "") + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + //sJsonReceiveData 복호화 처리 ... + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvCommHeader + sRecvData); + } + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.IRTSendReceive()", e.ToString()); + } + + return nStat; + } + /// + /// 디지털메뉴보드 I/F용 send/receive + /// + /// + /// + /// + /// + /// + /// + /// + public int DmbIRTSendReceive(string sIP, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref string sRecvedData) + { + int nStat = 9; + string sReturn = string.Empty; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = ""; + string sJsonReceiveData = ""; + + try + { + if (m_ServerIp != "" && m_ServerPort != 0) + { + if (htData != null) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + } + + byte[] bytes = Encoding.UTF8.GetBytes(sCommData + sJsonSendData); + string sUTF8String = Encoding.UTF8.GetString(bytes); + + //Send Receive + //nStat = SendReceiveData(sCommData + sJsonSendData, ref sJsonReceiveData, true); + nStat = SendReceiveData(sUTF8String, ref sJsonReceiveData, true); + + if (sJsonReceiveData != null && sJsonReceiveData != "") + { + sRecvCommHeader = sJsonReceiveData.Substring(0, 60); + sRecvData = sJsonReceiveData.Substring(60); + + sRecvedData = sRecvCommHeader; + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvCommHeader + sRecvData); + } + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.IRTSendReceive()", e.ToString()); + } + + return nStat; + } + + /// + /// 마스터 요청을 위한 string으로의 send/receive + /// + /// + /// + /// + /// + /// + /// + /// + public int MstIRTSendReceive(string sIp, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref StringBuilder sbRecvData) + { + int nStat = BaseCom.NG; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + try + { + m_ServerIp = sIp; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = string.Empty; + string sJsonReceiveData = string.Empty; + Hashtable htRecvData = null; + + sbRecvData = new StringBuilder(); + + nStat = Connect(-1); + + if(nStat == BaseCom.OK) + { + while (true) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + // 마스터 송수신 로그 제거(20170520) + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + + #if(LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "Background NetJson SendData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sCommData + sJsonSendData); + #endif + // 전문 송신 + nStat = SendReceiveMstData(sCommData + sJsonSendData, ref sJsonReceiveData); + + #if(LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "Background NetJson RecvData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sJsonReceiveData); + #endif + + if (nStat == BaseCom.OK) + { + // 마스터 송수신 로그 제거(20170520) + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sJsonReceiveData); + + if (sJsonReceiveData != null && sJsonReceiveData != string.Empty) + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + + //sRecvData 복호화 처리 ... + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + if (int.Parse(htRecvData[Column.IQ_POSMASTER_RSP.DATA.Count].ToString().Trim()) != 0) + { + // StringBuilder에 추가 + sbRecvData.Append(htRecvData[Column.IQ_POSMASTER_RSP.DATA.Data].ToString()); + } + else + { + break; + } + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + } + else + { + return BaseCom.NG1; + } + } + + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.MstIRTSendReceive()", e.ToString()); + } + finally + { + Close(); + } + + return nStat; + } + } +} diff --git a/Agent/MasterDown/Properties/AssemblyInfo.cs b/Agent/MasterDown/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0177548 --- /dev/null +++ b/Agent/MasterDown/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("MasterDown")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MasterDown")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("47a0e994-6a5c-41dd-b706-354c244b7380")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/MasterDown/Svr2Tran.cs b/Agent/MasterDown/Svr2Tran.cs new file mode 100644 index 0000000..4d79d24 --- /dev/null +++ b/Agent/MasterDown/Svr2Tran.cs @@ -0,0 +1,436 @@ +using System; +using System.Text; +using System.Collections; +using System.Data; + +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using Cosmos.BaseFrame; +using System.Threading; + +using Newtonsoft.Json; +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : 영수증 반품 / 서버 시간 조회 처리 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.BackgroundDown +{ + class Svr2Tran + { + #region 변수 선언 및 생성자 + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + private NetworkJSON m_cNetJSONService; + private DatabaseMssql m_cSqlDbService = null; + Hashtable m_htRecvData = null; // 통신 수신 데이터 (JSON) + private frmPosIrtMessage m_cfPosIrtMsg = null; + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + private bool m_bIRTComplete = false; + /// + /// 생성자 + /// + public Svr2Tran() + { + SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + + m_cPosStatus = (PosStatus)StateObject.POS; + + m_cNetJSONService = new NetworkJSON(); + m_cSqlDbService = new DatabaseMssql(); + m_cfPosIrtMsg = new frmPosIrtMessage(); + + m_bIRTComplete = false; + } + #endregion + + #region 서버 시간 조회 + /// + /// 서버 시간 조회 + /// + /// + public string ServerSysDateTime() + { + Hashtable htRecvData = new Hashtable(); + Hashtable htSendData = new Hashtable(); + + string sRet = UserCom.RST_ERR; + string sGetDate = ""; + + try + { + // 서버 조회 + htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.SYSDATETIME); + htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.RES_CD, ""); + htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.POS_HOUR, ""); + htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.REG_NO, ""); + htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.TRADE_NO, ""); + htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.SYS_YMDHMS, ""); + + sRet = ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 5000, htSendData, ref htRecvData, false); + if (sRet == UserCom.RST_OK) + { + if (htRecvData[Column.IQ_SYSDATE_REQ.DATA.RES_CD].ToString() == "00") + { + sGetDate = htRecvData[Column.IQ_SYSDATE_REQ.DATA.SYS_YMDHMS].ToString(); + + if (sGetDate.Trim().Length == 14) BsUtil.SetSystemDateTime(sGetDate); + + sRet = UserCom.RST_OK; + } + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region 프로그램 업데이트 목록 조회 + /// + /// 프로그램 업데이트 목록 조회 + /// + /// + /// + /// + /// + /// + public string PGMUpdate(string sKind, string sDownDiv, ref string[] aRecvData, ref Hashtable htRecvData) + { + Hashtable htSendData = new Hashtable(); + + string sRet = UserCom.RST_ERR; + + try + { + // 서버 조회 + htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.PGMUPDATE); + htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_GROUP, CmUtil.MidH(sKind, 0, 2)); + htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_KIND, CmUtil.MidH(sKind, 2, 2)); + htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_APP_TY, "0"); + htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_YMDHMS, DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss")); + htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.DOWN_DIV, sDownDiv); + + sRet = ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 10000, htSendData, ref htRecvData, false); + if (sRet == UserCom.RST_OK) + { + if (htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.RES_CD].ToString() == "00" || htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.RES_CD].ToString() == "01") + { + // 00:정상, 01:데이터 없음 + aRecvData = htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.VALUE].ToString().Split(new string[] { "#~" }, StringSplitOptions.None); + + sRet = UserCom.RST_OK; + } + else + { + sRet = UserCom.RST_ERR; + } + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region 파일 변경 완료 요청 + /// + /// 파일 변경 완료 요청 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public string PGMUpdate_Complete(string sKind, string sAppType, string sFileName, string sFileSeq, string sFileVer, string sDownDiv, string sDeployDate, string sDeployDT) + { + Hashtable htSendData = new Hashtable(); + Hashtable htRecvData = new Hashtable(); + + string sRet = UserCom.RST_ERR; + + try + { + if (sFileVer.Trim() == "") return sRet; + + // 서버 조회 + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.PGMUPDATECOMPLTE); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_GROUP, CmUtil.MidH(sKind, 0, 2)); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_KIND, CmUtil.MidH(sKind, 2, 2)); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_APP_TY, sAppType); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_NM, sFileName); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_VER, sFileVer); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_SEQ, sFileSeq); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.RES_CD, ""); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.DOWN_DIV, sDownDiv); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.DEPLOY_DT, sDeployDate); + htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.REG_DT, sDeployDT); + + sRet = ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 10000, htSendData, ref htRecvData, false); + if (sRet == UserCom.RST_OK) + { + if (htRecvData[Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.RES_CD].ToString() == "00") + { + sRet = UserCom.RST_OK; + } + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region 프로그램 적용 및 이력 관리 + /// + /// 프로그램 이력 관리 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public string PGMUpdate_History_Isert(string sKind, string sFileSeq, string sFileVer, string sFileNm, string sApplyDate, string sApplyTime, string sApplyType, string sDeployDate, string sDeployTime, string sFTP_IP, string sFTP_Port, string sFTP_ID, string sFTP_Pwd, string sFTP_FILEPATH, string sDOWN_DIV, string sDeployDT, string sUseYn) + { + string sRet = UserCom.RST_ERR; + int iRet = -1; + + try + { + string sQuery = ""; + sQuery = ""; + sQuery += "IF EXISTS(SELECT CMP_CD \n"; + sQuery += " FROM POSMST..MST_PGM_VER_NEW \n"; + sQuery += " WHERE \n"; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += " AND KIND = '" + sKind.Trim() + "' \n"; + sQuery += " AND FILE_SEQ = '" + sFileSeq.Trim() + "' \n"; + sQuery += " AND FILE_VER = '" + sFileVer.Trim() + "') \n"; + sQuery += " BEGIN \n"; + sQuery += " UPDATE POSMST..MST_PGM_VER_NEW \n"; + sQuery += " SET \n"; + sQuery += " FILE_NM = '" + sFileNm.Trim() + "' \n"; + sQuery += " , APPLY_DATE = '" + sApplyDate.Trim() + "' \n"; + sQuery += " , APPLY_TIME = '" + sApplyTime.Trim() + "' \n"; + sQuery += " , APP_TYPE = '" + sApplyType + "' \n"; + sQuery += " , DEPLOY_DATE = '" + sDeployDate.Trim() + "' \n"; + sQuery += " , DEPLOY_TIME = '" + sDeployTime.Trim() + "' \n"; + sQuery += " , FTP_IP = '" + sFTP_IP.Trim() + "' \n"; + sQuery += " , FTP_PORT = '" + sFTP_Port.Trim() + "' \n"; + sQuery += " , FTP_ID = '" + sFTP_ID.Trim() + "' \n"; + sQuery += " , FTP_PWD = '" + sFTP_Pwd.Trim() + "' \n"; + sQuery += " , FTP_FILEPATH = '" + sFTP_FILEPATH.Trim() + "' \n"; + sQuery += " , DOWN_DIV = '" + sDOWN_DIV.Trim() + "' \n"; + sQuery += " , UPD_DT = CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '') \n"; + sQuery += " , DEPLOY_DT = '" + sDeployDT.Trim() + "' \n"; + sQuery += " , USE_YN = '" + sUseYn.Trim() + "' \n"; + sQuery += " WHERE \n"; ; + sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += " AND KIND = '" + sKind.Trim() + "' \n"; + sQuery += " AND FILE_SEQ = '" + sFileSeq.Trim() + "' \n"; + sQuery += " AND FILE_VER = '" + sFileVer.Trim() + "' \n"; + sQuery += " END \n"; + sQuery += "ELSE \n"; + sQuery += " BEGIN \n"; + sQuery += " INSERT INTO POSMST..MST_PGM_VER_NEW \n"; + sQuery += " (CMP_CD, STOR_CD, POS_NO, KIND, FILE_SEQ, FILE_VER, FILE_NM, APPLY_DATE, APPLY_TIME, APP_TYPE, DEPLOY_DATE, DEPLOY_TIME, FTP_IP, FTP_PORT, FTP_ID, FTP_PWD, FTP_FILEPATH, DOWN_DIV, REG_DT, DEPLOY_DT, USE_YN) \n"; + sQuery += " VALUES( \n"; + sQuery += " '" + m_cPosStatus.Base.CmpCd + "' \n"; + sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' \n"; + sQuery += " , '" + m_cPosStatus.Base.PosNo + "' \n"; + sQuery += " , '" + sKind.Trim() + "' \n"; + sQuery += " , '" + sFileSeq.Trim() + "' \n"; + sQuery += " , '" + sFileVer.Trim() + "' \n"; + sQuery += " , '" + sFileNm.Trim() + "' \n"; + sQuery += " , '" + sApplyDate.Trim() + "' \n"; + sQuery += " , '" + sApplyTime.Trim() + "' \n"; + sQuery += " , '" + sApplyType + "' \n"; + sQuery += " , '" + sDeployDate.Trim() + "' \n"; + sQuery += " , '" + sDeployTime.Trim() + "' \n"; + sQuery += " , '" + sFTP_IP.Trim() + "' \n"; + sQuery += " , '" + sFTP_Port.Trim() + "' \n"; + sQuery += " , '" + sFTP_ID.Trim() + "' \n"; + sQuery += " , '" + sFTP_Pwd.Trim() + "' \n"; + sQuery += " , '" + sFTP_FILEPATH.Trim() + "' \n"; + sQuery += " , '" + sDOWN_DIV.Trim() + "' \n"; + sQuery += " , CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '') \n"; + sQuery += " , '" + sDeployDT.Trim() + "' \n"; + sQuery += " , '" + sUseYn.Trim() + "' \n"; + sQuery += " ) \n"; + sQuery += " END \n"; + sQuery = sQuery.Replace("\t", " "); + + m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }); + + if (iRet == 1) sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region POS IRT 전문 송/수신 + /// + /// POS IRT 전문 송/수신(점포서버 송수신: 제이슨 이용) + /// + public string ExecutePosIrt(string sMsgType, string sSvrIP, int nSvrPort, int nTimeout, Hashtable htSendData, ref Hashtable htRecvData, bool bVisibleMode) + { + string sRet = UserCom.RST_ERR; + + try + { + string sCommHead = ItemColumn.MakeCommHeader(0, sMsgType); // 통신해더 생성 + + if (bVisibleMode == false) + { + // 팝업 화면 미표시 + m_bIRTComplete = true; + m_htRecvData = null; + + Thread thrSecondDisp = new Thread(() => sRet = OnNetworkIRT(sSvrIP, nSvrPort, nTimeout, sCommHead, htSendData)); + thrSecondDisp.Start(); + + while (m_bIRTComplete == true) + { + Thread.Sleep(100); + } + htRecvData = m_htRecvData; + } + else + { + string sDispName = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), ""); + + m_cfPosIrtMsg.PosMessageStr = sDispName; + m_cfPosIrtMsg.ServerIp = sSvrIP; + m_cfPosIrtMsg.ServerPort = nSvrPort; + m_cfPosIrtMsg.TimeOut = nTimeout; + m_cfPosIrtMsg.CommHead = sCommHead; + m_cfPosIrtMsg.SendData = htSendData; + + m_cfPosIrtMsg.ShowDialog(); + + if (m_cfPosIrtMsg.RecvRet != UserCom.OK) + { + sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); + // 통신 실패 로그 + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + string.Format("SOCKET ERROR,{0},{1}, RET={2}", sSvrIP, nSvrPort, m_cfPosIrtMsg.RecvRet)); + return sRet; + } + htRecvData = m_cfPosIrtMsg.RecvData; + + sRet = UserCom.RST_OK; + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + + #region POS IRT 전문 송수신 - 화면 미표시용 + private string OnNetworkIRT(string sServerIp, int nServerPort, int nTimeOut, string sCommHead, Hashtable htSendData) + { + string sRet = UserCom.RST_ERR; + int nRecvRet = -1; + try + { + m_bIRTComplete = true; + + nRecvRet = m_cNetJSONService.IRTSendReceive(sServerIp, nServerPort, nTimeOut, sCommHead, htSendData, ref m_htRecvData); + + if (nRecvRet == BaseCom.OK) sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Process Exception !!! " + ex.Message); + } + finally + { + m_bIRTComplete = false; + } + return sRet; + } + #endregion + + #region 설정 파일 읽기 + /// + /// 설정 파일 읽기 + /// + /// + /// + /// + /// + private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName) + { + return GetConfigInfo(cCfgInfo, sGroup, sValueName, ""); + } + private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName, string sDefault) + { + try + { + string sValue = cCfgInfo.GetMessage(sGroup).GetMessageValue(sValueName); + if (sValue == null) + return sDefault; + else + return sValue; + } + catch { } + + return sDefault; + } + #endregion + } + + +} diff --git a/Agent/MasterDown/frmPosIrtMessage.Designer.cs b/Agent/MasterDown/frmPosIrtMessage.Designer.cs new file mode 100644 index 0000000..c0e6223 --- /dev/null +++ b/Agent/MasterDown/frmPosIrtMessage.Designer.cs @@ -0,0 +1,99 @@ +namespace Cosmos.BackgroundDown +{ + partial class frmPosIrtMessage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tmrStart = new System.Windows.Forms.Timer(this.components); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.lblMessage = new System.Windows.Forms.Label(); + this.picSearchMessage = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.picSearchMessage)).BeginInit(); + this.SuspendLayout(); + // + // tmrStart + // + this.tmrStart.Interval = 50; + this.tmrStart.Tick += new System.EventHandler(this.tmrStart_Tick); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(697, 274); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(73, 21); + this.textBox1.TabIndex = 1; + // + // lblMessage + // + this.lblMessage.BackColor = System.Drawing.Color.White; + this.lblMessage.Font = new System.Drawing.Font("나눔스퀘어 Bold", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lblMessage.Location = new System.Drawing.Point(12, 16); + this.lblMessage.Name = "lblMessage"; + this.lblMessage.Size = new System.Drawing.Size(764, 179); + this.lblMessage.TabIndex = 5; + this.lblMessage.Text = "조회 중 입니다. 잠시만 기다려 주세요."; + this.lblMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // picSearchMessage + // + this.picSearchMessage.BackColor = System.Drawing.Color.White; + this.picSearchMessage.Location = new System.Drawing.Point(0, 0); + this.picSearchMessage.Name = "picSearchMessage"; + this.picSearchMessage.Size = new System.Drawing.Size(788, 212); + this.picSearchMessage.TabIndex = 4; + this.picSearchMessage.TabStop = false; + // + // frmPosIrtMessage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.BackColor = System.Drawing.Color.Black; + this.ClientSize = new System.Drawing.Size(788, 212); + this.Controls.Add(this.lblMessage); + this.Controls.Add(this.picSearchMessage); + this.Controls.Add(this.textBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "frmPosIrtMessage"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.Text = "조회중"; + this.Load += new System.EventHandler(this.frmPosIrtMessage_Load); + ((System.ComponentModel.ISupportInitialize)(this.picSearchMessage)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Timer tmrStart; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label lblMessage; + private System.Windows.Forms.PictureBox picSearchMessage; + } +} \ No newline at end of file diff --git a/Agent/MasterDown/frmPosIrtMessage.cs b/Agent/MasterDown/frmPosIrtMessage.cs new file mode 100644 index 0000000..72d58fd --- /dev/null +++ b/Agent/MasterDown/frmPosIrtMessage.cs @@ -0,0 +1,224 @@ +using System; +using System.Windows.Forms; +using System.Threading; +using System.Collections; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : 점포서버 IRT 통신 처리(제이슨 방식) +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.BackgroundDown +{ + public partial class frmPosIrtMessage : Form + { + private SManager sManager = new SManager(); //이 객체를 통해 업무 Service 호출 + + private INetworkJSON m_cNetService = null; + + private bool m_bSecondDisp = false; //초 표시여부 + private int m_nSecondCount = 0; //초(경과) + + string m_sMessageStr; + /// + /// 화면표시 메시지 + /// + public string PosMessageStr + { + get { return this.m_sMessageStr; } + set + { + this.m_sMessageStr = value; + try + { + lblMessage.Text = m_sMessageStr; + } + catch { } + } + } + + string m_sServerIp; + /// + /// 서버IP + /// + public string ServerIp + { + get { return this.m_sServerIp; } + set { this.m_sServerIp = value; } + } + + int m_nServerPort; + /// + /// 서버PORT + /// + public int ServerPort + { + get { return this.m_nServerPort; } + set { this.m_nServerPort = value; } + } + + int m_nTimeOut; + /// + /// 서버 Timeout + /// + public int TimeOut + { + get { return this.m_nTimeOut; } + set { this.m_nTimeOut = value; } + } + + string m_sCommHead; + /// + /// 송신데이터(공통해더) + /// + public string CommHead + { + get { return this.m_sCommHead; } + set { this.m_sCommHead = value; } + } + + Hashtable m_htSendData; + /// + /// 송신데이터 + /// + public Hashtable SendData + { + get { return this.m_htSendData; } + set { this.m_htSendData = value; } + } + + Hashtable m_htRecvData; + /// + /// 수신데이터 + /// + public Hashtable RecvData + { + get { return this.m_htRecvData; } + set { this.m_htRecvData = value; } + } + + int m_nRecvRet; + /// + /// 수신리턴값 + /// + public int RecvRet + { + get { return this.m_nRecvRet; } + set { this.m_nRecvRet = value; } + } + + public frmPosIrtMessage() + { + InitializeComponent(); + + base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); + //this.UpdateStyles(); + + m_cNetService = (INetworkJSON)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_JSON); + } + + private void frmPosIrtMessage_Load(object sender, EventArgs e) + { + try + { + CmMessage m_PosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosConfig.INI"); + string sFont = m_PosConfig.GetMessage("GLOBAL").GetMessageValue("Font"); + FormManager.SetFormAllControlFont(this, sFont); + long nScreenSizeUser = CmUtil.LongParse(m_PosConfig.GetMessage("GLOBAL").GetMessageValue("ScreenSizeUser")); + FormManager.MovePopUpForm(this, false, nScreenSizeUser); + + picSearchMessage.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.SCH_MESSAGE_BOX); + + if (m_sMessageStr != "") lblMessage.Text = m_sMessageStr; + + this.m_htRecvData = null; + this.m_nRecvRet = 0; + this.TopMost = true; + + tmrStart.Enabled = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Process Exception !!! " + ex.Message); + } + } + + private void tmrStart_Tick(object sender, EventArgs e) + { + try + { + tmrStart.Enabled = false; + + m_bSecondDisp = true; + m_nSecondCount = 0; + + Thread thrSecondDisp = new Thread(new ThreadStart(OnNetworkIRT)); + thrSecondDisp.Start(); + + OnSecondDisplay(); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Process Exception !!! " + ex.Message); + } + finally + { + this.Close(); + } + } + + private void OnSecondDisplay() + { + try + { + while(m_bSecondDisp == true) + { + m_nSecondCount++; + if(m_nSecondCount % 10 == 0) + { + lblMessage.Text = m_sMessageStr + " (" + (int)(m_nSecondCount / 10) + ")"; + lblMessage.Update(); + } + Thread.Sleep(100); + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Process Exception !!! " + ex.Message); + } + } + + private void OnNetworkIRT() + { + try + { + m_bSecondDisp = true; + if (m_cNetService == null) m_cNetService = (INetworkJSON)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_IRT); + m_nRecvRet = m_cNetService.IRTSendReceive(m_sServerIp, m_nServerPort, m_nTimeOut, m_sCommHead, m_htSendData, ref m_htRecvData); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Process Exception !!! " + ex.Message); + } + finally + { + m_bSecondDisp = false; + } + } + + } +} diff --git a/Agent/MasterDown/frmPosIrtMessage.resx b/Agent/MasterDown/frmPosIrtMessage.resx new file mode 100644 index 0000000..731c392 --- /dev/null +++ b/Agent/MasterDown/frmPosIrtMessage.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Agent/Measuring/Activator.cs b/Agent/Measuring/Activator.cs new file mode 100644 index 0000000..a292bec --- /dev/null +++ b/Agent/Measuring/Activator.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : 전자저울->라벨프린터 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + public class Activator : InitServiceAbstract + { + public Activator() + { + + } + + public override object InitServiceInstance(string sClassNm) + { + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_MEASURING.MEASURING_MAIN: + { + Cosmos.Measuring.MeasuringMain agentClass = new Cosmos.Measuring.MeasuringMain(); + retObj = agentClass; + break; + } + } + + return retObj; + } + } +} diff --git a/Agent/Measuring/LabelPrinter.cs b/Agent/Measuring/LabelPrinter.cs new file mode 100644 index 0000000..3073061 --- /dev/null +++ b/Agent/Measuring/LabelPrinter.cs @@ -0,0 +1,355 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO.Ports; +using System.ComponentModel; + +using Cosmos.CommonManager; +using Cosmos.UserFrame; + +namespace Cosmos.Measuring +{ + public class LabelPrinter + { + #region 클래스 변수 선언 + private static SerialPort m_cSerialPort = null; + #endregion 클래스 변수 선언 + + #region 생성자 + public LabelPrinter() + { + + } + #endregion 생성자 + + #region OPEN / CLOSE 처리 함수 + public bool OpenLabelPrinter(string sSerialPort, long lBaudrate) + { + bool bRet = false; + + try + { + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]"); + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + if (m_cSerialPort != null) + { + //grayber@20180307 시리얼 포트 flush 추가 start - Open 함수 Input Output 버퍼 삭제 (주석처리) + // 추가 + if (m_cSerialPort.IsOpen != true) // 시리얼포트 오픈 실패 + { + m_cSerialPort.Open(); // 시리얼포트 오픈 + } + //m_cSerialPort.DiscardOutBuffer(); + //m_cSerialPort.DiscardInBuffer(); + //UserLog.WriteLogFile(UserCom.LOG_OP, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // "▶▶ [Open InOut Buffer Clear]"); + + bRet = true; + //grayber@20180307 시리얼 포트 flush 추가 end + return bRet; + } + + if(m_cSerialPort == null) + { + m_cSerialPort = new SerialPort(); + if(m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT ERROR"); + return bRet; + } + + m_cSerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + m_cSerialPort.PinChanged += new SerialPinChangedEventHandler(serialPort_PinChanged); + m_cSerialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + + m_cSerialPort.NewLine = "\r\n"; + m_cSerialPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + + m_cSerialPort.WriteBufferSize = 1024 * 1024; + m_cSerialPort.PortName = sSerialPort; + m_cSerialPort.BaudRate = (int)lBaudrate; + m_cSerialPort.DataBits = 8; + m_cSerialPort.StopBits = StopBits.One; + m_cSerialPort.Parity = Parity.None; + m_cSerialPort.Handshake = Handshake.None; + m_cSerialPort.ReadTimeout = 500; + m_cSerialPort.WriteTimeout = 2000; + + m_cSerialPort.Open(); + if(m_cSerialPort.IsOpen == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT OPEN ERROR"); + + return bRet; + } + + bRet = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]" + bRet); + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + return bRet; + } + + public bool CloseLabelPrinter() + { + bool bRet = false; + try + { + if (m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_cSerialPort == null)"); + return bRet; + } + + //grayber@20180307 시리얼 포트 flush 추가 start - Close 함수 Input Output 버퍼 삭제 + // 추가 + m_cSerialPort.DiscardOutBuffer(); + m_cSerialPort.DiscardInBuffer(); + //grayber@20180307 시리얼 포트 flush 추가 end + + m_cSerialPort.Close(); + bRet = true; + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (기존) + //m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE] Close InOut Buffer Clear :" + bRet); + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (변경) + m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + + return bRet; + } + #endregion OPEN / CLOSE 처리 함수 + + #region SerialPort 이벤트 + private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + SerialPort serialPort = (SerialPort)sender; + byte[] bytRecvBuf = new byte[serialPort.BytesToRead]; + + try + { + //grayber@20180307 시리얼 포트 flush 추가 start - DataReceived 시리얼 포트 null check + // 기존 + //serialPort.Read(bytRecvBuf, 0, bytRecvBuf.Length); + // 변경 + if (serialPort != null && serialPort.IsOpen == true) // 시리얼포트 객체 및 오픈 확인 + { + serialPort.Read(bytRecvBuf, 0, bytRecvBuf.Length); + + #region log + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [RECV] " + Encoding.UTF8.GetString(bytRecvBuf)); + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + #endregion + } + //grayber@20180307 시리얼 포트 flush 추가 end + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void serialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + + } + + private void serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + + } + #endregion SerialPort 이벤트 + + #region 출력 함수 + /// + /// 중량 출력 + /// + /// 상품명 : 중량g + /// 중량 + /// YYYY-MM-DD HH:MM:SS + /// 점포명 + public void PrintWeightInfo(string sContent, string sDateTime, string sStoreNm) + { + string[] sCommands = null; + + try + { + + sCommands = new string[] { "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "FONT \"HYGothic-Medium\",12\r\n" + , "NASC 949\r\n" // intermec 한글폰트 설정 + , "PRPOS 0,150\r\n" + , "PRTXT \"" + sContent + "\"\r\n" + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 0,110\r\n" + , "PRTXT \"" + sDateTime + "\"\r\n" + , "PRPOS 0,70\r\n" + , "PRTXT \"" + sStoreNm + "\"\r\n" + , "PRPOS 0,30\r\n" + , "PRTXT \"배달은 해피오더 / 1670-3131\"\r\n" //#10856_[BR] 저울 중량 라벨프린터 양식 변경_hs + , "PF\r\n" }; + + if (sCommands != null) + WriteCommand(sCommands); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void PrintWeightInfo(string sContent, string sFlavour1, string sFlavour2, string sOrdDateTime, string sPckDateTime) + { + string[] sCommands = null; + + try + { + // EX) + // 패밀리 / 980g (5516) + // 플레이버1/플레이버2/플레이버3 + // 플레이버4/플레이버5/플레이버6 + // + // 주문 YYYY-MM-DD HH시MM분 + // 포장 YYYY-MM-DD HH시MM분 + sCommands = new string[] { "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "FONT \"HYGothic-Medium\",12\r\n" + , "NASC 949\r\n" + , "PRPOS 0,190\r\n" + , "PRTXT \"" + sContent + "\"\r\n" + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 0,150\r\n" + , "PRTXT \"" + sFlavour1 + "\"\r\n" + , "PRPOS 0,110\r\n" + , "PRTXT \"" + sFlavour2 + "\"\r\n" + , "PRPOS 0,50\r\n" + , "PRTXT \"" + sOrdDateTime + "\"\r\n" + , "PRPOS 0,10\r\n" + , "PRTXT \"" + sPckDateTime + "\"\r\n" + , "PF\r\n" }; + + if (sCommands != null) + WriteCommand(sCommands); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 출력 함수 + + #region 명령어 전송 함수 + /// + /// 시리얼포트에 명령어를 전송 + /// + /// + private void WriteCommand(string[] sCommands) + { + try + { + foreach(string cmd in sCommands) + { + m_cSerialPort.Write(cmd); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 명령어 전송 함수 + } +} diff --git a/Agent/Measuring/Measuring.csproj b/Agent/Measuring/Measuring.csproj new file mode 100644 index 0000000..d158ec4 --- /dev/null +++ b/Agent/Measuring/Measuring.csproj @@ -0,0 +1,86 @@ + + + + + Debug + AnyCPU + {C1D7E706-7F5B-4DF3-85DD-E3F2A097144B} + Library + Properties + Cosmos.Measuring + Agent.Measuring + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + + + + + + + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.Measuring.dll .\Agent.Measuring.dll + + + copy .\Agent.Measuring.dll .\IC\Agent.Measuring.dll + + + \ No newline at end of file diff --git a/Agent/Measuring/MeasuringMain.cs b/Agent/Measuring/MeasuringMain.cs new file mode 100644 index 0000000..356d095 --- /dev/null +++ b/Agent/Measuring/MeasuringMain.cs @@ -0,0 +1,696 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.IO.Ports; +using System.ComponentModel; + +using Cosmos.Common; +using Cosmos.CommonManager; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; + + +namespace Cosmos.Measuring +{ + public class MeasuringMain : IMeasuring + { + #region 클래스 변수 선언 + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + /// + /// POS 주변장치 + /// + private DeviceStatus m_cDevStatus = null; + + /// + /// 중량 출력 모드 + /// + private PosConst.MEASURING_AGENT_PRINT_MODE PrintMode; + + /// + /// 출력용 핸드폰번호 + /// + private string m_sCPNum = ""; + public string CPNum { get { return m_sCPNum; } set { m_sCPNum = value; } } + /// + /// 출력용 플레이버 + /// + private string m_sFlavour1 = ""; + public string Flavour1 { get { return m_sFlavour1; } set { m_sFlavour1 = value; } } + private string m_sFlavour2 = ""; + public string Flavour2 { get { return m_sFlavour2; } set { m_sFlavour2 = value; } } + /// + /// 출력용 주문시간 + /// + private string m_sOrdDT = ""; + public string OrdDT { get { return m_sOrdDT; } set { m_sOrdDT = value; } } + + private Scale m_cScaleDevice = null; + private LabelPrinter m_cLabelPrtDevice = null; + private ScalePoleDisplay m_cScalePoleDisplay = null; + + private string m_sOldOrdDate = ""; + private string m_sOldOrdTime = ""; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + /// + /// Measuring Thread 작동 여부 + /// + private bool m_MeasuringRunning = true; + + /// + /// Measuring Thread + /// + private Thread m_tMeasuring = null; + + /// + /// 대기시간 + /// + private int WAIT_TIME = 60000 * 30; + + /// + /// 저울 델리게이트 + /// + /// + /// + /// + /// + public delegate void DelegateScaleDevice(bool bPrintYn, int iWeight, string sUnit, string sItemNm); + + public delegate void DelegateScaleDeviceRaw(string sScaleData); + + public static DelegateScaleDevice m_delegateScaleDev = null; + public static DelegateScaleDeviceRaw m_delegateScaleDevRaw = null; + + private bool m_bOncePrint = false; + #endregion 클래스 변수 선언 + + #region 생성자 + public MeasuringMain() + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + + m_cScaleDevice = new Scale(); + m_cLabelPrtDevice = new LabelPrinter(); + m_cScalePoleDisplay = new ScalePoleDisplay(); + } + + public void Initialize() + { + // Default 출력 모드는 일반중량출력 + PrintMode = PosConst.MEASURING_AGENT_PRINT_MODE.NORMAL; + + CPNum = ""; + Flavour1 = ""; + Flavour2 = ""; + OrdDT = ""; + } + #endregion 생성자 + + #region Measuring 데몬 기동/종료 + public void StartMeasuring() + { + try + { + Initialize(); + + // 저울 델리게이트 생성 + m_delegateScaleDev = new DelegateScaleDevice(OnScaleDeviceEvent); + // 저울 RAW Data 델리게이트 생성 + m_delegateScaleDevRaw = new DelegateScaleDeviceRaw(OnScaleDataEvent); + + if (m_tMeasuring == null) + { + m_tMeasuring = new Thread(new ThreadStart(ThreadMeasuringRun)); + m_MeasuringRunning = true; + m_tMeasuring.Start(); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void StopMeasuring() + { + try + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Measuring Service Stop!!!"); + + m_MeasuringRunning = false; + + int count = 0; + while(count < 10) + { + if (m_tMeasuring != null && m_tMeasuring.IsAlive) m_MeasuringRunning = false; + else break; + + count++; + Thread.Sleep(300); + } + + if(count >= 10) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force Measuring Service Stop!!!"); + m_tMeasuring.Abort(); + } + + m_tMeasuring = null; + + // 저울 델리게이트 Release + m_delegateScaleDev = null; + + // 전자저울 SerialPort Close + m_cScaleDevice.CloseScale(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion Measuring 데몬 기동/종료 + + #region Measuring Main + private void ThreadMeasuringRun() + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Measuring Service Run!!"); + + while(m_MeasuringRunning) + { + try + { + // 전자저울 SerialPort Open + bool bReturn = m_cScaleDevice.OpenScale(m_cPosStatus.Base.OlePosScaleSerialPortNumber, m_cPosStatus.Base.OlePosScaleSerialBaudRate); + // 2017.05.17 + Thread.Sleep(500); + + if (bReturn == true) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Scale port open succeed"); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Scale port open failed"); + } + + int nNowSleepTerm = 0; + while(nNowSleepTerm < WAIT_TIME) + { + if (m_MeasuringRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + m_cScaleDevice.CloseScale(); + + // 2017.05.17 + Thread.Sleep(500); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Measuring Service Exception : " + ex.Message); + break; + } + } + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Measuring Service Exit!!"); + } + #endregion + + #region 중량 출력 모드 변경 + public void SetPrintMode(PosConst.MEASURING_AGENT_PRINT_MODE sMode) + { + try + { + PrintMode = sMode; + + if(PrintMode == PosConst.MEASURING_AGENT_PRINT_MODE.NORMAL) + { + Initialize(); + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 중량 출력 모드 변경 + + #region 플레이버 내용 등록(출력용) + public void SetHappyOrderData(string[] sData) + { + try + { + if (sData.Length == 1) + { + CPNum = sData[0]; + Flavour1 = ""; + Flavour2 = ""; + } + else if (sData.Length == 2) + { + CPNum = sData[0]; + Flavour1 = sData[1]; + Flavour2 = ""; + } + else if(sData.Length > 2) + { + CPNum = sData[0]; + Flavour1 = sData[1]; + Flavour2 = sData[2]; + OrdDT = sData[3]; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 플레이버 내용 등록(출력용) + + #region Scale Device Event 관련 + public void OnScaleDeviceEvent(bool bPrintYn, int iWeight, string sUnit, string sItemNm) + { + try + { + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + if (m_bOncePrint == false) + { + m_bOncePrint = true; + string sCurDT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + string sScaleDate = sCurDT.Substring(0, 10).Replace("-", ""); + string sScaleTime = sCurDT.Substring(11, 8).Replace(":", ""); + + if (m_sOldOrdTime == "" || (m_sOldOrdTime.Equals(sScaleTime) == false)) + { + m_sOldOrdDate = sScaleDate; + m_sOldOrdTime = sScaleTime; + + // 정상중량일 경우에만 라벨프린터 출력함 + if (bPrintYn == true) + { + if (PrintMode == PosConst.MEASURING_AGENT_PRINT_MODE.NORMAL) + ProcWeightInfo(sItemNm, iWeight, sUnit, sCurDT); + else + ProcWeightInfoOnHappyOrder(sItemNm, iWeight, sUnit, sCurDT); + } + + // 저울 데이터 저장 + // 중량 미달일 경우에도 저울 데이터는 저장 + InsertScaleLog(sScaleDate, sScaleTime, iWeight, sItemNm, bPrintYn ? "1" : "0"); + } + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + finally + { + m_bOncePrint = false; + } + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + } + + public void OnScaleDataEvent(string sScaleData) + { + try + { + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + // ScalePoleDisplay 사용일 경우에만 출력 + if(m_cDevStatus.ScalePoleDisplay.UseYn == true) + { + ProcScalePoleDisplay(sScaleData); + } + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion Device Event 관련 + + #region DB 관련 + public void InsertScaleLog(string sDate, string sTime, int iWeight, string sItemNm, string sNormalYn) + { + string sQuery = ""; + string sInsQuery = ""; + sqlDb = null; + + try + { + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + sQuery = "INSERT INTO POSLOG..ETC_SCALE_LOG "; + sQuery += " ( CMP_CD, BRAND_CD, SALE_DT, STOR_CD, POS_NO "; + sQuery += " , SCALE_DT, SCALE_TM, WEIGHT, ITEM_NM, NORMAL_YN "; + sQuery += " , SEND_YN, REG_DATE, UPD_DATE ) "; + sQuery += "VALUES "; + sQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}' "; + sQuery += " , '{5}', '{6}', {7}, N'{8}', '{9}' "; + sQuery += " , '{10}', '{11}', '{12}' ) "; + + sInsQuery = string.Format( sQuery + , m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.SaleDate, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo + , sDate, sTime, iWeight, sItemNm, sNormalYn + , "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); + + int iRet = sqlDb.DBExecuteNonQuery(sInsQuery, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + if(iRet != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Insert Failed!! " + "[" + sInsQuery + "]"); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + finally + { + if (sqlDb != null) + { + sqlDb.DBClose(); + } + } + } + #endregion + + #region 라벨프린터 출력 함수 + public void ProcWeightInfo(string sItemNm, int iWeight, string sUnit, string sCurTime) + { + bool bRet = false; + try + { + //if (m_bOncePrint == false) + //{ + + // 라벨프린터 Open + bRet = m_cLabelPrtDevice.OpenLabelPrinter(m_cPosStatus.Base.OlePosLabelPrinterSerialPortNumber, m_cPosStatus.Base.OlePosLabelPrinterSerialBaudRate); + + if(bRet == false) + { + return; + } + + //m_bOncePrint = true; + //grayber@20180228 중량 라벨 출력 변경 start + //기존 + //string sContent = sItemNm + " : " + iWeight.ToString() + sUnit; + //변경 + string sContent = sItemNm + " : " + string.Format( "{0:#,###}",iWeight) + sUnit; + //grayber@20180228 중량 라벨 출력 변경 start + + string sDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ LabelPrt: [" + sContent + "]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + // 중량정보 출력 + + //grayber@20180228 중량 라벨 출력 변경 start + // 기존 + //m_cLabelPrtDevice.PrintWeightInfo(sContent, sDateTime, CmUtil.GetDataRowStr(PosMstManager.GetMstStore(), PosMst.MST_STORE.DATA.STORNM)); + // 변경 + m_cLabelPrtDevice.PrintWeightInfo(sContent, sDateTime, CmUtil.GetDataRowStr(PosMstManager.GetMstStore(), PosMst.MST_STORE.DATA.STORNM) + " 점"); + //grayber@20180228 중량 라벨 출력 변경 end + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + + // 라벨프린터 Close + bRet = m_cLabelPrtDevice.CloseLabelPrinter(); + + //m_bOncePrint = false; + //} + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void ProcWeightInfoOnHappyOrder(string sItemNm, int iWeight, string sUnit, string sCurTime) + { + bool bRet = false; + try + { + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + // 라벨프린터 Open + bRet = m_cLabelPrtDevice.OpenLabelPrinter(m_cPosStatus.Base.OlePosLabelPrinterSerialPortNumber, m_cPosStatus.Base.OlePosLabelPrinterSerialBaudRate); + + if (bRet == false) + { + return; + } + + m_bOncePrint = true; + + string sContent = sItemNm + " / " + iWeight.ToString() + sUnit + " (" + CPNum + ")"; + string sOrdDateTime = "주문 " + OrdDT; + string sPckDateTime = "포장 " + sCurTime; + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ LabelPrt: [" + sContent + "]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + + // 중량정보 출력 + m_cLabelPrtDevice.PrintWeightInfo(sContent, Flavour1, Flavour2, sOrdDateTime, sPckDateTime); + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [CLOSE]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + + // 라벨프린터 Close + bRet = m_cLabelPrtDevice.CloseLabelPrinter(); + + m_bOncePrint = false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 라벨프린터 출력 함수 + + #region ScalePoleDisplay 출력 함수 + /// + /// ScalePoleDisplay 출력 + /// + /// 저울에서 입력된 값 Ex) ST,+00000.00__g + public void ProcScalePoleDisplay(string sScaleData) + { + try + { + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + m_cScalePoleDisplay.OpenScalePoleDisplay(m_cPosStatus.Base.OleScalePoleDisplayPortNumber, m_cPosStatus.Base.OleScalePoleDisplayBaudRate); + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ " + "PoleDisplay: " + "[" + sScaleData + "]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + + m_cScalePoleDisplay.WriteToScalePoleDisplay(sScaleData); + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ CLOSE"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + + m_cScalePoleDisplay.CloseScalePoleDisplay(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion ScalePoleDisplay 출력 함수 + } +} diff --git a/Agent/Measuring/Properties/AssemblyInfo.cs b/Agent/Measuring/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..01708f2 --- /dev/null +++ b/Agent/Measuring/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("Measuring")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Measuring")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("652f0e60-5407-4be2-b7c4-62bff0636cf2")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/Measuring/Scale.cs b/Agent/Measuring/Scale.cs new file mode 100644 index 0000000..71bb718 --- /dev/null +++ b/Agent/Measuring/Scale.cs @@ -0,0 +1,425 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO.Ports; +using System.ComponentModel; + +using Cosmos.CommonManager; +using Cosmos.UserFrame; + +namespace Cosmos.Measuring +{ + public class Scale + { + #region 클래스 변수 선언 + /// + /// 전자저울과의 RS232 통신을 위한 시리얼포트 객체 + /// + private SerialPort m_cSerialPort = null; + /// + /// 전자저울 이벤트 수신 후 처리할 작업용 스레드 작업(라벨프린터 출력) + /// + private BackgroundWorker bw = null; + #endregion 클래스 변수 선언 + + #region 생성자 + public Scale() + { + bw = new BackgroundWorker(); + } + #endregion 생성자 + + #region OPEN / CLOSE 처리 함수 + public bool OpenScale(string sSerialPort, long lBaudrate) + { + bool bRet = false; + + try + { + if (m_cSerialPort != null) + { + //grayber@20180307 시리얼 포트 flush 추가 start - Open 함수 Input Output 버퍼 삭제 (주석처리) + //m_cSerialPort.DiscardInBuffer(); + //m_cSerialPort.DiscardOutBuffer(); + //grayber@20180307 시리얼 포트 flush 추가 end + m_cSerialPort.Close(); + System.Threading.Thread.Sleep(50); + m_cSerialPort = null; + } + + if (m_cSerialPort == null) + { + m_cSerialPort = new SerialPort(); + if (m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT ERROR"); + return bRet; + } + + m_cSerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + m_cSerialPort.PinChanged += new SerialPinChangedEventHandler(serialPort_PinChanged); + m_cSerialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + + m_cSerialPort.NewLine = "\r\n"; + m_cSerialPort.Encoding = Encoding.ASCII; + m_cSerialPort.WriteBufferSize = 512; + m_cSerialPort.PortName = sSerialPort; + m_cSerialPort.BaudRate = (int)lBaudrate; + m_cSerialPort.DataBits = 7; + m_cSerialPort.StopBits = StopBits.One; + m_cSerialPort.Parity = Parity.Even; + m_cSerialPort.Handshake = Handshake.None; + m_cSerialPort.ReadTimeout = 5000; + m_cSerialPort.WriteTimeout = 5000; + + m_cSerialPort.Open(); + if (m_cSerialPort.IsOpen == false) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT OPEN ERROR"); + + return bRet; + } + + // BackgroundWorker 이벤트 함수 등록 + bw.DoWork += DeviceEventHandler; + bRet = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + + public bool CloseScale() + { + bool bRet = false; + try + { + if (m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_cSerialPort_Scale == null)"); + return bRet; + } + //grayber@20180307 시리얼 포트 flush 추가 start - Close 함수 Input Output 버퍼 삭제 + m_cSerialPort.DiscardInBuffer(); + m_cSerialPort.DiscardOutBuffer(); + //grayber@20180307 시리얼 포트 flush 추가 end + + m_cSerialPort.Close(); + bRet = true; + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (기존) + //m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + // BackgroundWorker 이벤트 함수 제거 + bw.DoWork -= DeviceEventHandler; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (변경) + m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + + return bRet; + } + #endregion OPEN / CLOSE 처리 함수 + + #region SerialPort Alive 체크 + public bool IsPortOpend() + { + bool bRet = false; + try + { + if(m_cSerialPort == null) + { + return false; + } + + if(m_cSerialPort.IsOpen == false) + { + return false; + } + + bRet = true; + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + bRet = false; + } + + return bRet; + } + #endregion + + #region SerialPort 이벤트 + private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + SerialPort serialPort = (SerialPort)sender; + string sHeader = ""; + + try + { + if ((SerialPort)sender == m_cSerialPort) + { + if (!bw.IsBusy) + { + // 데이터의 Terminator는 개행문자(\r\n)이므로 개행문자 까지 값을 읽는 ReadLine으로 수신 + string sScaleData = serialPort.ReadLine(); + sHeader = sScaleData.Substring(0, 2); + + // ST:계량모드, QT:계수모드, US:데이터가 안정되지 않다, OL:데이터가 오버되어 있다.(계량범위를 넘었다.) + if (sHeader.Equals("ST")) + { + bw.RunWorkerAsync(sScaleData); + } + else if (sHeader.Equals("QT")) + { + + } + else + { + + } + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ " + "Recv: " + "[" + sScaleData + "]"); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + } + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "저울 이벤트 처리 전 이벤트 발생 불가"); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void serialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + + } + + private void serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + + } + #endregion SerialPort 이벤트 + + #region Event Handler + private void DeviceEventHandler(object sender, DoWorkEventArgs e) + { + string sScaleData = ""; + string sHeader = ""; + string sWeight = ""; + string sUnit = ""; + string sItemNm = ""; + bool bPrintYn = false; + + try + { + // Ex) ST,+00000.00__g + sScaleData = (string)e.Argument; + + sHeader = sScaleData.Substring(0, 2); + sWeight = sScaleData.Substring(3, 9); + sUnit = sScaleData.Substring(12, 3).Trim(); + bPrintYn = GetItemNameByWeight(Convert.ToInt32(sWeight), ref sItemNm); + + // 저울 입력 이벤트 전달 + if (MeasuringMain.m_delegateScaleDev != null) + MeasuringMain.m_delegateScaleDev(bPrintYn, Convert.ToInt32(sWeight), sUnit, sItemNm); + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "MeasuringMain.m_delegateScaleDev is null."); + } + + // 저울 입력 데이터 전달 + if(MeasuringMain.m_delegateScaleDevRaw != null) + { + MeasuringMain.m_delegateScaleDevRaw(sScaleData); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "MeasuringMain.m_delegateScaleDevRaw is null."); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion Event Handler + + #region 중량데이터로 상품명 얻기 + /// + /// 측정된 중량으로 상품명 가져오기 + /// + /// + /// + /// + private bool GetItemNameByWeight(int iWeight, ref string sItemNm) + { + bool bIsOk = false; + sItemNm = string.Empty; + try + { + if (iWeight >= 236 && iWeight <= 335) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0545); + bIsOk = false; + } + + //else if (iWeight >= 336 && iWeight <= 434) + //{ + // sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0545); + // bIsOk = true; + //} + //else if (iWeight >= 435 && iWeight <= 534) + //{ + // sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0546); + // bIsOk = true; + //} + //#10856] (신규) [BR] 저울 중량 라벨프린터 양식 변경 + //스타워즈 파인트 제외 + else if (iWeight >= 336 && iWeight <= 534) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0545); + bIsOk = true; + } + else if (iWeight >= 545 && iWeight <= 642) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0547); + bIsOk = false; + } + else if (iWeight >= 643 && iWeight <= 742) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0547); + bIsOk = true; + } + else if (iWeight >= 889 && iWeight <= 988) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0548); + bIsOk = false; + } + else if (iWeight >= 989 && iWeight <= 1088) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0548); + bIsOk = true; + } + //grayber@20180213 [BR] 핸드팩 중량 출력 대상 제품 추가 요청 start + // 추가 + else if (iWeight >= 1104 && iWeight <= 1199) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1095); + bIsOk = true; + } + // 기존 + //else if (iWeight >= 1137 && iWeight <= 1236) + // 변경 + else if (iWeight >= 1200 && iWeight <= 1236) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0549); + bIsOk = false; + } + //grayber@20180213 [BR] 핸드팩 중량 출력 대상 제품 추가 요청 end + + else if (iWeight >= 1237 && iWeight <= 1536) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0549); + bIsOk = true; + } + else if (iWeight >= 1700 && iWeight <= 1999) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0550); + bIsOk = false; + } + else if (iWeight >= 2000 && iWeight <= 2300) + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0550); + bIsOk = true; + } + else + { + sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0551); + bIsOk = false; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bIsOk; + } + #endregion + } +} diff --git a/Agent/Measuring/ScalePoleDisplay.cs b/Agent/Measuring/ScalePoleDisplay.cs new file mode 100644 index 0000000..7a3a5ef --- /dev/null +++ b/Agent/Measuring/ScalePoleDisplay.cs @@ -0,0 +1,155 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO.Ports; + +using Cosmos.UserFrame; + +namespace Cosmos.Measuring +{ + class ScalePoleDisplay + { + #region 클래스 변수 선언 + private static SerialPort m_cSerialPort = null; + #endregion 클래스 변수 선언 + + #region 생성자 + #endregion 생성자 + + #region OPEN / CLOSE 처리 함수 + public bool OpenScalePoleDisplay(string sSerialPort, long lBaudrate) + { + bool bRet = false; + + try + { + if(m_cSerialPort != null) + { + //grayber@20180307 시리얼 포트 flush 추가 start - Open 함수 Input Output 버퍼 삭제(주석처리) + m_cSerialPort.DiscardInBuffer(); + m_cSerialPort.DiscardOutBuffer(); + //grayber@20180307 시리얼 포트 flush 추가 end + + m_cSerialPort.Close(); + System.Threading.Thread.Sleep(50); + m_cSerialPort = null; + } + + m_cSerialPort = new SerialPort(); + + m_cSerialPort.NewLine = "\r\n"; + m_cSerialPort.Encoding = Encoding.Default; + m_cSerialPort.WriteBufferSize = 512; + m_cSerialPort.PortName = sSerialPort; + m_cSerialPort.BaudRate = (int)lBaudrate; + m_cSerialPort.ReadTimeout = 500; + m_cSerialPort.WriteTimeout = 2000; + m_cSerialPort.DataBits = 8; + m_cSerialPort.StopBits = StopBits.One; + m_cSerialPort.Parity = Parity.None; + m_cSerialPort.Handshake = Handshake.None; + + m_cSerialPort.Open(); + if(m_cSerialPort.IsOpen == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SERIAL PORT OPEN ERROR"); + return bRet; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 start +#if true // 로그추가 + //grayber@20171222 디버그 로그 추가 - 저울 디버그 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶ [OPEN]" + bRet); +#endif + //grayber@20171222 저울,라벨프린터, PoleDisplay 디버그 로그 추가 end + + return bRet; + } + + public bool CloseScalePoleDisplay() + { + bool bRet = false; + try + { + if(m_cSerialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_cSerialPort_Scale == null)"); + return bRet; + } + + //grayber@20180307 시리얼 포트 flush 추가 start - Close 함수 Input Output 버퍼 삭제 + m_cSerialPort.DiscardInBuffer(); + m_cSerialPort.DiscardOutBuffer(); + //grayber@20180307 시리얼 포트 flush 추가 end + + m_cSerialPort.Close(); + bRet = true; + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (기존) + //m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + //grayber@20180307 시리얼 포트 flush 추가 start - try 문 밖으로 이동 (변경) + m_cSerialPort = null; + //grayber@20180307 시리얼 포트 flush 추가 end + return bRet; + } + #endregion OPEN / CLOSE 처리 함수 + + #region 출력 함수 + public void WriteToScalePoleDisplay(string sScaleData) + { + try + { + + m_cSerialPort.WriteLine(sScaleData); + System.Threading.Thread.Sleep(500); + + m_cSerialPort.WriteLine(sScaleData); + System.Threading.Thread.Sleep(500); + + m_cSerialPort.WriteLine(sScaleData); + System.Threading.Thread.Sleep(500); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 출력 함수 + } +} diff --git a/Agent/Network/Activator.cs b/Agent/Network/Activator.cs new file mode 100644 index 0000000..cfc38b2 --- /dev/null +++ b/Agent/Network/Activator.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : Network 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + /// + /// Load BaseFrame and save information (BaseFrame의 로드하고 정보를 보관한다) + /// + public class Activator : InitServiceAbstract + { + /// + /// Define main entrance point of project load. (프로젝트 로드의 주진입점을 정의합니다.) + /// + public Activator() + { + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_NETWORK.NETWORK_FTP: + { + Cosmos.Network.NetworkFtp agentClass = new Cosmos.Network.NetworkFtp(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_NETWORK.NETWORK_IRT: + { + Cosmos.Network.NetworkIRT agentClass = new Cosmos.Network.NetworkIRT(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_NETWORK.NETWORK_JSON: + { + Cosmos.Network.NetworkJSON agentClass = new Cosmos.Network.NetworkJSON(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_NETWORK.NETWORK_VAN_SPCN: + { + Cosmos.Network.NetworkVanSPCN agentClass = new Cosmos.Network.NetworkVanSPCN(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_NETWORK.NETWORK_HTTP: + { + Cosmos.Network.NetworkHttp agentClass = new Cosmos.Network.NetworkHttp(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + } + } +} diff --git a/Agent/Network/Network.csproj b/Agent/Network/Network.csproj new file mode 100644 index 0000000..b6583bf --- /dev/null +++ b/Agent/Network/Network.csproj @@ -0,0 +1,93 @@ + + + + + Debug + AnyCPU + {233E83BF-BFFE-495D-9E3C-3583F9CD2773} + Library + Properties + Cosmos.Network + Agent.Network + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + ..\..\..\BIN\Agent.Network.XML + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + False + ..\..\..\BIN\Cosmos.UserFrame.dll + + + False + ..\..\..\BIN\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.Network.dll .\Agent.Network.dll + + + copy .\Agent.Network.dll .\IC\Agent.Network.dll + + + \ No newline at end of file diff --git a/Agent/Network/NetworkFtp.cs b/Agent/Network/NetworkFtp.cs new file mode 100644 index 0000000..092b8b6 --- /dev/null +++ b/Agent/Network/NetworkFtp.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Net; +using System.Collections; +using System.Diagnostics; +using System.Runtime.Serialization.Formatters.Binary; +using System.Data; + +using System.Net.Sockets; +using System.Threading; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : FTP 다운로드 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Network +{ + public class NetworkFtp : INetworkFTP + { + private readonly string LOCAL_DOWN_PATH = BaseCom.NxRootPath + @"DOWN\"; //Download File Location (다운로드 파일위치) + + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + private FTP m_ClsFtp; + + public NetworkFtp() + { + m_cPosStatus = (PosStatus)StateObject.POS; + } + + /// + /// FTP 서버에 Connect + /// + /// + /// + /// + /// + /// + /// 0 : 정상접속, -1:시간초과, -2:로그인 실패, -3:서버접속 실패, -4:지원하지 않는 시스템 + public int Connect(string sServer, string sUserId, string sPassword, int iTimeOutSeconds, int iPort) + { + int nReturn = -9; + + try + { + m_ClsFtp = new FTP((iPort == 0) ? sServer : sServer + ":" + iPort, sUserId, sPassword); + + if (m_ClsFtp != null) nReturn = 0; + else nReturn = -1; + + ////m_ClsFtp = new ClsFtp(sServer, sUserId, sPassword, iTimeOutSeconds, iPort); + + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// //MessageBox.Show("FTP Server Connect Error !!! [" + nReturn.ToString() + "]"); + //// return nReturn; + ////} + + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Connect()", e.Message); + return nReturn; + } + + return nReturn; + } + + /// + /// + /// + /// + /// + /// + /// 0:정상종료, -1:Not Connected, -2:Binary Mode set failed, -3: failed local file Create, -4:socket 에러, -5:remote file 없슴, -6:정상수신실패, -7: 파일사이즈 틀림 + public int Download(string sSvrDirectory, string sLocalDirectory, string sFileNm, string sFtpMode = PosConst.FTP_CONN_TYPE.PASSIVE) + { + string sMsg = ""; + return Download(sSvrDirectory, sLocalDirectory, sFileNm, ref sMsg, sFtpMode); + } + public int Download(string sSvrDirectory, string sLocalDirectory, string sFileNm, ref string sMsg, string sFtpMode = PosConst.FTP_CONN_TYPE.PASSIVE) + { + int nReturn = -9; + bool bRet = false; + try + { + if (CmUtil.RightH(sLocalDirectory, 1) != "\\") sLocalDirectory += "\\"; + + if (Directory.Exists(sLocalDirectory) == false) Directory.CreateDirectory(sLocalDirectory); + + bRet = m_ClsFtp.Download(sSvrDirectory + sFileNm, sLocalDirectory + sFileNm, ref sMsg, sFtpMode); + + if (bRet) nReturn = 0; + else nReturn = -1; + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// return nReturn; + ////} + + ////string sDir = m_ClsFtp.ChangeDir(sSvrDirectory); + + ////nReturn = m_ClsFtp.Download(sLocalDirectory, sFileNm, true); + ////if (nReturn < 0 && File.Exists(BaseCom.NxDownPath + sFileNm + ".ftp") == true) + ////{ + //// File.Delete(BaseCom.NxDownPath + sFileNm + ".ftp"); + ////} + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Download()", e.Message); + + sMsg = sFileNm + " " + e.Message; + return nReturn; + } + + return nReturn; + } + + /// + /// FTP서버와의 연결을 종료 + /// + public void Disconnect() + { + //m_ClsFtp.Close(); + //m_ClsFtp.cleanup(); + } + + /// + /// 정해진 디렉토리에 정해진 파일을 업로드 + /// + /// + /// + /// + /// 0:정상완료, -1:Not Connected, -2: data socket create error, -3: file write 실패, -4:socket error, -5: 정상처리 실패(서버) + public int Upload(string sSvrDirectory, string sLocalDirectory, string sFileNm) + { + int nReturn = -9; + bool bRet = false; + + try + { + bRet = m_ClsFtp.Upload(sLocalDirectory + sFileNm, sSvrDirectory + sFileNm); + + if (bRet) nReturn = 0; + else nReturn = -1; + ////if ((nReturn = m_ClsFtp.Connect()) != 0) + ////{ + //// return nReturn; + ////} + + ////string sDir = m_ClsFtp.ChangeDir(sSvrDirectory); + + ////nReturn = m_ClsFtp.Upload(sLocalDirectory, sFileNm, true); + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkFtp.Upload()", e.Message); + + return nReturn; + } + return nReturn; + } + } +} diff --git a/Agent/Network/NetworkHttp.cs b/Agent/Network/NetworkHttp.cs new file mode 100644 index 0000000..d7888f5 --- /dev/null +++ b/Agent/Network/NetworkHttp.cs @@ -0,0 +1,564 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Collections; +using System.Net; +using System.IO; + +using Newtonsoft.Json; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; + + +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; + + +namespace Cosmos.Network +{ + public class NetworkHttp : INetworkHttp + { + private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus; // 기본정보 참조 + private DeviceStatus m_cDevStatus; // 장비정보 참조 + + public NetworkHttp() + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS 장치정보 + } + + /// + /// 해피오더 POST방식 Request + /// + /// + /// + /// + /// + /// + public int HttpJsonPOST_SendReceive(string sUrl, string sWorkType, Hashtable htReqData, ref Hashtable htRspData, ref string sRespJsonData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType); + + string sSendJsonData = JsonConvert.SerializeObject(htReqData); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sSendJsonData); + + byte[] reqByte = Encoding.UTF8.GetBytes(sSendJsonData); + + req.Method = "POST"; + req.ContentType = "application/json"; + req.ContentLength = reqByte.Length; + + // create our stream to send + Stream webDataStream = req.GetRequestStream(); + webDataStream.Write(reqByte, 0, reqByte.Length); + + // get thre response from our stream + WebResponse resp = req.GetResponse(); + webDataStream = resp.GetResponseStream(); + + // convert the result into a string + StreamReader respStreamReader = new StreamReader(webDataStream); + string respFromServer = respStreamReader.ReadToEnd(); + + respStreamReader.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + respFromServer); + + Hashtable temp = JsonConvert.DeserializeObject(respFromServer); + + foreach (string key in temp.Keys) + { + string jsonString = temp[key].ToString(); + if (key.Equals("status")) + { + Hashtable htHeader = JsonConvert.DeserializeObject(jsonString); + if (htHeader["status"].ToString().Equals("200")) + { + iRet = BaseCom.OK; + } + htRspData = htHeader; + } + else + { + sRespJsonData = jsonString; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + /// + /// 해피오더 GET방식 Request + /// + /// 서버URL + /// 작업구분 + /// 요청Data + /// JSON String 형태의 응답 데이터 + /// + public int HttpJsonGET_SendReceive(string sUrl, string sWorkType, string sReqData, ref string sRespJsonData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType + "?" + sReqData); + req.Method = "GET"; + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sUrl + sWorkType + "?" + sReqData); + + using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) + { + Stream stream = resp.GetResponseStream(); + //StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("UTF-8")); + StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("ks_c_5601-1987")); + sRespString = streamReader.ReadToEnd(); + streamReader.Close(); + } + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sRespString); + + Hashtable temp = JsonConvert.DeserializeObject(sRespString); + + foreach (string key in temp.Keys) + { + string jsonString = temp[key].ToString(); + if (key.Equals("status")) + { + Hashtable htHeader = JsonConvert.DeserializeObject(jsonString); + if (htHeader["status"].ToString().Equals("200")) + { + iRet = BaseCom.OK; + } + } + else + { + sRespJsonData = jsonString; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + + /// + /// GET방식 Request + /// + /// 서버URL + /// 작업구분 + /// 요청Data + /// JSON String 형태의 응답 데이터 + /// + public int HttpGET_SendReceive(string sUrl, string sWorkType, string sReqData, string sEncodingFlag, ref string sRespData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + StreamReader streamReader = null; + + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType + "?" + sReqData); + req.Method = "GET"; + + using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) + { + Stream stream = resp.GetResponseStream(); + + if (sEncodingFlag == PosConst.ENCODING_FLAG.UTF) + { + streamReader = new StreamReader(stream, Encoding.GetEncoding("UTF-8")); + } + else + { + streamReader = new StreamReader(stream, Encoding.GetEncoding("ks_c_5601-1987")); + } + + sRespString = streamReader.ReadToEnd(); + streamReader.Close(); + } + + iRet = BaseCom.OK; + + sRespData = sRespString; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + + /// + /// 해피버즈 http 통신 + /// + /// + /// + /// + /// + /// + /// + public int HttpJsonPOST_SendReceiveForBuzz(string sUrl, string sWorkType, Hashtable htReqData, ref Hashtable htRspData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType); + + string sSendJsonData = JsonConvert.SerializeObject(htReqData); + byte[] reqByte = Encoding.UTF8.GetBytes(sSendJsonData); + + req.Method = "POST"; + req.ContentType = "application/json"; + req.ContentLength = reqByte.Length; + + // create our stream to send + Stream webDataStream = req.GetRequestStream(); + webDataStream.Write(reqByte, 0, reqByte.Length); + + // get thre response from our stream + WebResponse resp = req.GetResponse(); + webDataStream = resp.GetResponseStream(); + + // convert the result into a string + StreamReader respStreamReader = new StreamReader(webDataStream); + string respFromServer = respStreamReader.ReadToEnd(); + + respStreamReader.Close(); + + htRspData = JsonConvert.DeserializeObject(respFromServer); + + if (htRspData["result"].Equals(true)) + { + iRet = BaseCom.OK; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + + /// + /// 관공서 방문 알림 통신 + /// + /// + /// + /// + /// + /// + /// + public int HttpPOST_SendReceiveForGoverVisit(string sUrl, string sWorkType, Hashtable htReqData, ref Hashtable htRspData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + + try + { + // 요청 String -> 요청 Byte 변환 + byte[] byteDataParams = UTF8Encoding.UTF8.GetBytes(htReqData.ToString()); + + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType); + + req.Method = "POST"; // 기본값 "GET" + req.ContentType = "application/x-www-form-urlencoded"; + req.ContentLength = byteDataParams.Length; + + // 요청 Byte -> 요청 Stream 변환 + Stream stDataParams = req.GetRequestStream(); + stDataParams.Write(byteDataParams, 0, byteDataParams.Length); + stDataParams.Close(); + + // 요청, 응답 받기 + HttpWebResponse response = (HttpWebResponse)req.GetResponse(); + + + if (response.StatusCode == HttpStatusCode.OK) + { + iRet = BaseCom.OK; + } + + //HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType); + + //string sSendJsonData = JsonConvert.SerializeObject(htReqData); + //byte[] reqByte = Encoding.UTF8.GetBytes(sSendJsonData); + + //req.Method = "POST"; + //req.ContentType = "application/json"; + //req.ContentLength = reqByte.Length; + + //// create our stream to send + //Stream webDataStream = req.GetRequestStream(); + //webDataStream.Write(reqByte, 0, reqByte.Length); + + //// get thre response from our stream + //WebResponse resp = req.GetResponse(); + //webDataStream = resp.GetResponseStream(); + + //// convert the result into a string + //StreamReader respStreamReader = new StreamReader(webDataStream); + //string respFromServer = respStreamReader.ReadToEnd(); + + //respStreamReader.Close(); + + //htRspData = JsonConvert.DeserializeObject(respFromServer); + + //if (htRspData["result"].Equals(true)) + //{ + // iRet = BaseCom.OK; + //} + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + + // #20170616, 해피앱 스탬프 Start + /// + /// 해피앱 스탬프 http 통신 + /// + /// + /// + /// + /// + public int HttpJsonPOST_SendReceiveForStamp(string sUrl, Hashtable htReqData, ref Hashtable htRspData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl); + + string sSendJsonData = JsonConvert.SerializeObject(htReqData); + UserLog.WriteLogFile(UserCom.LOG_SOCK, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // project name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // class name (class name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // function name (function name (함수명)) + sSendJsonData); + + byte[] reqByte = Encoding.UTF8.GetBytes(sSendJsonData); + + req.Method = "post"; + req.ContentType = "application/json"; + req.ContentLength = reqByte.Length; + //#20171117 해피앱 스탬프 timeout 설정 start + req.Timeout = 3000; + //#20171117 해피앱 스탬프 timeout 설정 end + + // create our stream to send + Stream webDataStream = req.GetRequestStream(); + webDataStream.Write(reqByte, 0, reqByte.Length); + + // get thre response from our stream + + WebResponse resp = req.GetResponse(); + webDataStream = resp.GetResponseStream(); + + // convert the result into a string + StreamReader respStreamReader = new StreamReader(webDataStream); + string respFromServer = respStreamReader.ReadToEnd(); + + respStreamReader.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // project name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // class name (class name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // function name (function name (함수명)) + respFromServer); + + htRspData = JsonConvert.DeserializeObject(respFromServer); + + if (htRspData["result"].Equals("00")) + { + iRet = BaseCom.OK; + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + // #20170616, 해피앱 스탬프 End + + //contentType 에 따른 HTTP Post 전송, girak.kim , 2017.09.11 + + public static bool CheckValidationResult(object sender, X509Certificate certficate, X509Chain chain, SslPolicyErrors errors) + { + return true; + } + + + #region HTTP Post 전송 + + //#20170911.001, Http post 통신 추가 start;girak.kim; + + /// + /// + /// + /// 경로 + /// 전송 컨텐츠 타입 + /// 전송 데이타 + /// 결과 데이타 + /// + public int HttpPOST_SendReceive(string sUrl, string sContentType, string sReqString, ref string sRespData) + { + int iRet = BaseCom.NG; + + string result = ""; + int nConnecLimit = 200; + + HttpWebRequest request = null; + HttpWebResponse response = null; + Stream reqStream = null; + + try + { + ServicePointManager.DefaultConnectionLimit = nConnecLimit;//동시 연결 + if (sUrl.StartsWith("https", StringComparison.OrdinalIgnoreCase))//ssl 일 경우 인증서 무시 + { + ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); + } + + Uri uri = new Uri(sUrl); + + request = (HttpWebRequest)WebRequest.Create(uri); + request.Method = "POST"; + request.Timeout = 30000;//30sec + request.ContentType = sContentType;// "text/xml";// "text/xml; encoding='UTF-8'"; + + //request.KeepAlive = false; + + byte[] bData = System.Text.Encoding.UTF8.GetBytes(sReqString); + request.ContentLength = bData.Length; + + reqStream = request.GetRequestStream(); + reqStream.Write(bData, 0, bData.Length); + reqStream.Close(); + + response = (HttpWebResponse)request.GetResponse(); + + StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); + result = sr.ReadToEnd().Trim(); + sr.Close(); + + sRespData = result; + iRet = BaseCom.OK; + + } + catch (System.Threading.ThreadAbortException e) + { + //e.Message + // System.Threading.Thread.ResetAbort(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + e.ToString()); + } + catch (WebException e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + e.ToString()); + + if (e.Status == WebExceptionStatus.ProtocolError) + { + // (HttpWebResponse)e.Response).StatusCode; + //(HttpWebResponse)e.Response).StatusDescription; + } + //throw new Exception(e.ToString()); + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + e.ToString()); + //throw new Exception(e.ToString()); + } + finally + { + if (response != null) response.Close(); + if (request != null) request.Abort(); + } + + sRespData = result; + return iRet; + + } + + //#20170911.001, Http post 통신 추가 end;girak.kim; + #endregion + } +} diff --git a/Agent/Network/NetworkIRT.cs b/Agent/Network/NetworkIRT.cs new file mode 100644 index 0000000..48e02fa --- /dev/null +++ b/Agent/Network/NetworkIRT.cs @@ -0,0 +1,670 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Collections; +using System.Net.NetworkInformation; +using System.Runtime.InteropServices; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : SC / HQ IRT Request (SC / 본부 IRT 요청) +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Network +{ + public class NetworkIRT : INetworkIRT + { + private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus; // 기본정보 참조 + private DeviceStatus m_cDevStatus; // 장비정보 참조 + + /// + /// Sending Socket (전송 소켓) + /// + private TcpSocket m_IrtSocket = null; + //private static TcpSocket m_IrtSocket = null; + + /// + /// IP + /// + private string m_ServerIp = ""; + + /// + /// Port + /// + private int m_ServerPort = 0; + + /// + /// TimeOut + /// + private int m_ServerTimeout = 10000; + + /// --------------------------------------------------------------------------------------------- + /// + /// Constructor (생성자) + /// + /// --------------------------------------------------------------------------------------------- + public NetworkIRT() + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS 장치정보 (PDA) + } + + #region OnLine 상태체크 + /// + /// Get network online status with Ping check. (Ping체크로 network Online상태를 취득한다,) + /// + /// Ip address + /// True : online false : Offline + private int CheckNetworkOnline(string pHostAddress) + { + //Ping Check (Ping 체크) + Ping pingSender = new Ping(); + PingOptions optins = new PingOptions(); + optins.DontFragment = true; + string data = "aaa"; + byte[] buffer = Encoding.ASCII.GetBytes(data); + int timeout = 120; + PingReply reply = pingSender.Send(pHostAddress, timeout, buffer, optins); + + if (reply.Status == IPStatus.Success) + return UserCom.OK; + else + return UserCom.NG; + } + #endregion + + #region 암호화 편집 + /// + /// 암호화 위해 전문 편집 + /// + /// 평문 + /// 암호문, 에러시 평문 리턴 + private byte[] EncryptData(byte[] plainData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, plainData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] byteEncryptData = null; + byte[] editedAllData = null; + + if (sEncType == "0") // "0" 평문 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[plainData.Length - nNowPos]; + + Array.Copy(plainData, nNowPos, tranBytes, 0, plainData.Length - nNowPos); + + //암호화 + byteEncryptData = AES.DynamicKeyEncrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + byteEncryptData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "1"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + byte[] byteCommHeader = Encoding.UTF8.GetBytes(sChangedCommHeader); + + editedAllData = new byte[iMsgLen]; + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(byteEncryptData, 0, editedAllData, byteCommHeader.Length, byteEncryptData.Length); + + return editedAllData; + } + else // "1" 암호문 + { + return plainData; + } + + } + + #endregion + + #region 복호화 편집 + /// + /// 복호화 위해 전문 편집 + /// + /// + /// + private byte[] DecryptData(byte[] EncryptData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, EncryptData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] bytePlainData = null; + byte[] editedAllData = null; + + if (sEncType == "1") //복호화 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[EncryptData.Length - nNowPos]; + + Array.Copy(EncryptData, nNowPos, tranBytes, 0, tranBytes.Length); + + //복호화 + bytePlainData = AES.DynamicKeyDecrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + bytePlainData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "0"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + + byte[] byteCommHeader = Encoding.Default.GetBytes(sChangedCommHeader); + editedAllData = new byte[byteCommHeader.Length + bytePlainData.Length]; + + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(bytePlainData, 0, editedAllData, byteCommHeader.Length, bytePlainData.Length); + + return editedAllData; + + } + else + { + return EncryptData; + } + + } + + #endregion + + #region IRT Send/Receive + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(byte[] pSendData, ref byte[] pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + byte[] rRecvData = null; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = null; + } + //m_IrtSocket.Close(); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(string pSendData, ref string pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + string rRecvData = ""; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = ""; + nStat = nRecvLen; + } + //m_IrtSocket.Close(); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + #endregion + + #region IRT 암호화/복화화 전송 + /// + /// IRT String로의 Send/Recv + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, string sComm, ref string sRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + byte[] bEditedSendData = null; + + if (m_ServerIp != "" && m_ServerPort != 0) + { + //암호화 + if (sComm.Length != 0) + { + //bEditedSendData = EncryptData(Encoding.Default.GetBytes(sComm)); + bEditedSendData = Encoding.Default.GetBytes(sComm); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sComm); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] SendData is Null"); + } + + //SendReceive + nStat = SendReceiveData(Encoding.Default.GetString(bEditedSendData, 0, bEditedSendData.Length), ref sReturn); + + //복호화 + if (sReturn.Length != 0) + { + byte[] byteRecv = DecryptData(Encoding.Default.GetBytes(sReturn)); + sRecvData = Encoding.Default.GetString(byteRecv, 0, byteRecv.Length); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] RecvData Is Null"); + } + } + + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, byte[] comm, ref byte[] sRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + byte[] bEditedSendData = null; + + if (m_ServerIp != "" && m_ServerPort != 0) + { + //암호화 + if (comm != null) + { + bEditedSendData = EncryptData(comm); + + string sTmpLog = Encoding.Default.GetString(comm, 0, comm.Length); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sTmpLog); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] SendData Is Null"); + } + + //SendReceive + nStat = SendReceiveData(bEditedSendData, ref sRecvData); + + //복호화 + if (sRecvData != null) + { + byte[] sDecryptRecvData = DecryptData(sRecvData); + + sRecvData = sDecryptRecvData; + + string sTmpLog = Encoding.Default.GetString(sDecryptRecvData, 0, sDecryptRecvData.Length); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sTmpLog); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] RecvData Is Null"); + } + } + + return nStat; + } + #endregion + + #region IRT 전송 - 외부 VAN + /// + /// IRT String로의 Send/Recv - 외부 Van + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveEx(string sIP, int iPort, int iTimeOut, string sSendData, ref string sRecvData, int nRecvDataLen, string sAckData) + { + return IRTSendReceiveEx(sIP, iPort, iTimeOut, sSendData, ref sRecvData, nRecvDataLen, sAckData, false); + } + + public int IRTSendReceiveEx(string sIP, int iPort, int iTimeOut, string sSendData, ref string sRecvData, int nRecvDataLen, string sAckData, bool bErrorSkip) + { + int nStat = BaseCom.NG; + try + { + sRecvData = ""; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveEx()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sSendData); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + sSendData); + nStat = m_IrtSocket.SendReceiveData(sSendData, ref sRecvData, m_ServerTimeout, nRecvDataLen, sAckData, bErrorSkip); + System.Diagnostics.Debug.Print("응답=" + sRecvData); + + if (nStat > 0) nStat = BaseCom.OK; + + //m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveSEx()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataEx()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv - 외부 Van + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveEx(string sIP, int iPort, int iTimeOut, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen, byte[] sAckData) + { + int nStat = BaseCom.NG; + try + { + bRecvData[0] = 0; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveEx()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + nStat = m_IrtSocket.SendReceiveData(bSendData, ref bRecvData, m_ServerTimeout, nRecvDataLen, sAckData); + System.Diagnostics.Debug.Print("응답=" + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + if (nStat > 0) nStat = BaseCom.OK; + + //m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveEx()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataEx()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + return nStat; + } + #endregion + + #region IRT 전송 - 외부 VAN (전문길이 위치지정) + + /// + /// IRT String로의 Send/Recv - 외부 Van (길이 위치지정) + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveLen(string sIP, int iPort, int iTimeOut, string sSendData, ref string sRecvData, bool bFullSize, int nRecvDataLen, int nRecvDataStartPosion) + { + int nStat = BaseCom.NG; + try + { + sRecvData = ""; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sSendData); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + sSendData); + nStat = m_IrtSocket.SendReceiveData(sSendData, ref sRecvData, m_ServerTimeout, bFullSize, nRecvDataLen, "", nRecvDataStartPosion, false ); + System.Diagnostics.Debug.Print("응답=" + sRecvData); + + if (nStat > 0) nStat = BaseCom.OK; + + //m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataEx()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv - 외부 Van (전문길이 위치지정) + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int IRTSendReceiveLen(string sIP, int iPort, int iTimeOut, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen, int nRecvDataStartPosion) + { + int nStat = BaseCom.NG; + try + { + bRecvData[0] = 0; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + nStat = m_IrtSocket.SendReceiveData(bSendData, ref bRecvData, m_ServerTimeout, nRecvDataLen, null, nRecvDataStartPosion); + System.Diagnostics.Debug.Print("응답=" + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + if (nStat > 0) nStat = BaseCom.OK; + + //m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataLen()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + return nStat; + } + #endregion + + #region IRT Byte로의 Send/Recv - 외부 Van (Bypass Byte) + /// + /// IRT Byte로의 Send/Recv - 외부 Van (Bypass Byte) + /// + /// + /// + /// + /// + /// + /// + /// + public int ByPassSendReceiveData(string sIP, int iPort, int iTimeOut, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen) + { + int nStat = BaseCom.NG; + try + { + //bRecvData[0] = 0; + if (sIP == "" || iPort == 0) return nStat; + + // Connect 설정 + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청=" + Encoding.Default.GetString(bSendData, 0, bSendData.Length)); + nStat = m_IrtSocket.ByPassSendReceiveData(bSendData, nRecvDataLen, ref bRecvData, m_ServerTimeout); + System.Diagnostics.Debug.Print("응답=" + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + if (nStat > 0) nStat = BaseCom.OK; + + //m_IrtSocket.Close(); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkIRT.IRTSendReceiveLen()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + Encoding.Default.GetString(bRecvData, 0, bRecvData.Length)); + } + catch (Exception e) + { + //if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkIRT.SendReceiveDataLen()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + return nStat; + } + #endregion + } +} diff --git a/Agent/Network/NetworkJSON.cs b/Agent/Network/NetworkJSON.cs new file mode 100644 index 0000000..f21292c --- /dev/null +++ b/Agent/Network/NetworkJSON.cs @@ -0,0 +1,1087 @@ +//#define LOG_TRACE //@@ 로그 확인시 사용;girak.kim;20171011 + +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Collections; +using System.Net.NetworkInformation; +using System.Runtime.InteropServices; + +using Newtonsoft.Json; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : SC / HQ IRT Request (SC / 본부 IRT 요청) +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Network +{ + public class NetworkJSON : INetworkJSON + { + private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus; // 기본정보 참조 + private DeviceStatus m_cDevStatus; // 장비정보 참조 + + /// + /// Sending Socket (전송 소켓) + /// + private static TcpSocket m_IrtSocket = null; + + /// + /// IP + /// + private string m_ServerIp = ""; + + /// + /// Port + /// + private int m_ServerPort = 0; + + /// + /// Recv Timeout + /// + private int m_ServerTimeout = 5000; + + + /// --------------------------------------------------------------------------------------------- + /// + /// Constructor (생성자) + /// + /// --------------------------------------------------------------------------------------------- + public NetworkJSON() + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS 장치정보 + } + + /// + /// Get network online status with Ping check. (Ping체크로 network Online상태를 취득한다,) + /// + /// Ip address + /// True : online false : Offline + private int CheckNetworkOnline(string pHostAddress) + { + //Ping Check (Ping 체크) + Ping pingSender = new Ping(); + PingOptions optins = new PingOptions(); + optins.DontFragment = true; + string data = "aaa"; + byte[] buffer = Encoding.ASCII.GetBytes(data); + int timeout = 120; + PingReply reply = pingSender.Send(pHostAddress, timeout, buffer, optins); + + if (reply.Status == IPStatus.Success) + return UserCom.OK; + else + return UserCom.NG; + } +/* + #region 암호화 편집 + /// + /// 암호화 위해 전문 편집 + /// + /// 평문 + /// 암호문, 에러시 평문 리턴 + private byte[] EncryptData(byte[] plainData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, plainData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] byteEncryptData = null; + byte[] editedAllData = null; + + if (sEncType == "0") // "0" 평문 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[plainData.Length - nNowPos]; + + Array.Copy(plainData, nNowPos, tranBytes, 0, plainData.Length - nNowPos); + + //암호화 + byteEncryptData = AES.DynamicKeyEncrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + byteEncryptData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "1"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + byte[] byteCommHeader = Encoding.Default.GetBytes(sChangedCommHeader); + + editedAllData = new byte[iMsgLen]; + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(byteEncryptData, 0, editedAllData, byteCommHeader.Length, byteEncryptData.Length); + + return editedAllData; + } + else // "1" 암호문 + { + return plainData; + } + + } + + #endregion + + #region 복호화 편집 + /// + /// 복호화 위해 전문 편집 + /// + /// + /// + private byte[] DecryptData(byte[] EncryptData) + { + int nNowPos = 0; + + //통신헤더전문편집 + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + ItemColumn.ParseMessage(Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE, EncryptData, ref nNowPos, ref aCommHead); + + string sPosNo = aCommHead[Column.COMM_HEADER.SEQ.PosNo].ToString(); + //string sRegNo = aCommHead[Column.COMM_HEADER.SEQ.RegNo].ToString(); + string sRegNo = ""; + string sMsgLen = aCommHead[Column.COMM_HEADER.SEQ.MsgLen].ToString(); + string sEncType = aCommHead[Column.COMM_HEADER.SEQ.EncType].ToString(); + byte[] bytePlainData = null; + byte[] editedAllData = null; + + if (sEncType == "1") //복호화 + { + //Tran헤더 포함 전문 데이터 + byte[] tranBytes = new byte[EncryptData.Length - nNowPos]; + + Array.Copy(EncryptData, nNowPos, tranBytes, 0, tranBytes.Length); + + //복호화 + bytePlainData = AES.DynamicKeyDecrypt(sPosNo, sRegNo, tranBytes); + + int iMsgLen = nNowPos + bytePlainData.Length; + + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = iMsgLen.ToString(); //공통헤더와 암호문 더해진 길이 + aCommHead[Column.COMM_HEADER.SEQ.EncType] = "0"; //0:평문 1:암호화 + + string sChangedCommHeader = ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + + byte[] byteCommHeader = Encoding.Default.GetBytes(sChangedCommHeader); + editedAllData = new byte[byteCommHeader.Length + bytePlainData.Length]; + + Array.Copy(byteCommHeader, editedAllData, byteCommHeader.Length); + Array.Copy(bytePlainData, 0, editedAllData, byteCommHeader.Length, bytePlainData.Length); + + return editedAllData; + + } + else + { + return EncryptData; + } + + } + + #endregion +*/ + /// + /// POS 마스터 요청 시 사용하는 Connect 함수 + /// + /// + private int Connect(int iKeepTime = 5000) + { + int iReturn = BaseCom.NG; + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Delay time to close connection is 5 sec. + iReturn = m_IrtSocket.Connect(iKeepTime); + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.Connect()", e.ToString()); + } + + return iReturn; + } + + private void Close() + { + m_IrtSocket.Close(); + } + + + + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(byte[] pSendData, ref byte[] pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + byte[] rRecvData = null; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = null; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT전문의 Send/Receive + /// + /// + /// + /// + private int SendReceiveData(string pSendData, ref string pRecvData, bool bIsDmbIf = false) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + string rRecvData = ""; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + //System.Diagnostics.Debug.Print("요청:" + pSendData); + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout, bIsDmbIf); + //System.Diagnostics.Debug.Print("응답:" + rRecvData); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = ""; + nStat = nRecvLen; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + /// + /// IRT전문의 Send/Receive (고정사이즈) + /// + /// + /// + /// + /// + /// + /// + private int SendReceiveDataFixSiz(string pSendData, ref string pRecvData, bool bIsDmbIf = false, bool bFix = false, int nFixSize = 0) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + string rRecvData = ""; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + //System.Diagnostics.Debug.Print("요청:" + pSendData); + if (bFix == true) + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout, nFixSize, "", true); + else + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout, bIsDmbIf); + //System.Diagnostics.Debug.Print("응답:" + rRecvData); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = ""; + nStat = nRecvLen; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + + private int SendReceiveMstData(string pSendData, ref string pRecvData) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + try + { + nRecvLen = m_IrtSocket.SendReceiveMstData(pSendData, ref pRecvData); + if (nRecvLen > 0) + { + nStat = BaseCom.OK; + } + else + { + //2018.01.11;수신 데이터 길이가 0 이하일 경우 로그 추가;girak.kim;Start + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "[SendData] : " + pSendData + + "[RecvData(Head)] : " + pRecvData + + "[RecvLen] : " + nRecvLen.ToString()); + //2018.01.11;수신 데이터 길이가 0 이하일 경우 로그 추가;girak.kim;End + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + e.ToString()); + } + + return nStat; + } + + /// + /// IRT Byte로의 Send/Recv + /// (공통헤더의 전문길이 0으로 세팅해서 송신. 자동 계산) + /// + /// + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref Hashtable htRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = ""; + string sJsonReceiveData = ""; + + try + { + if (m_ServerIp != "" && m_ServerPort != 0) + { + if (htData != null) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + } + + //Send Receive + nStat = SendReceiveData(sCommData + sJsonSendData, ref sJsonReceiveData); + + if (sJsonReceiveData != null && sJsonReceiveData != "") + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + //sJsonReceiveData 복호화 처리 ... + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvCommHeader + sRecvData); + } + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.IRTSendReceive()", e.ToString()); + } + + return nStat; + } + /// + /// 디지털메뉴보드 I/F용 send/receive + /// + /// + /// + /// + /// + /// + /// + /// + public int DmbIRTSendReceive(string sIP, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref string sRecvedData) + { + int nStat = 9; + string sReturn = string.Empty; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = ""; + string sJsonReceiveData = ""; + + try + { + if (m_ServerIp != "" && m_ServerPort != 0) + { + if (htData != null) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + } + + byte[] bytes = Encoding.UTF8.GetBytes(sCommData + sJsonSendData); + string sUTF8String = Encoding.UTF8.GetString(bytes); + + //Send Receive + //nStat = SendReceiveData(sCommData + sJsonSendData, ref sJsonReceiveData, true); + nStat = SendReceiveData(sUTF8String, ref sJsonReceiveData, true); + + if (sJsonReceiveData != null && sJsonReceiveData != "") + { + sRecvCommHeader = sJsonReceiveData.Substring(0, 60); + sRecvData = sJsonReceiveData.Substring(60); + + //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start + //기존 + /* + sRecvedData = sRecvCommHeader; + */ + //변경 + sRecvedData = sRecvCommHeader + sRecvData; + //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvCommHeader + sRecvData); + } + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.IRTSendReceive()", e.ToString()); + } + + return nStat; + } + + /// + /// 마스터 요청을 위한 string으로의 send/receive + /// + /// + /// + /// + /// + /// + /// + /// + public int MstIRTSendReceive(string sIp, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref StringBuilder sbRecvData) + { + int nStat = BaseCom.NG; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + IMasterDownUs cMstDownSrv = null; + + try + { + m_ServerIp = sIp; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = string.Empty; + string sJsonReceiveData = string.Empty; + Hashtable htRecvData = null; + + sbRecvData = new StringBuilder(); + + nStat = Connect(-1); + + if(nStat == BaseCom.OK) + { + cMstDownSrv = (IMasterDownUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.MASTER_DOWN); + + while (true) + { + if (cMstDownSrv.IsAborted == true) + { + return BaseCom.NG2; + } + + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + // 마스터 송수신 로그 제거(20170520) + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + + // 전문 송신 + +#if(LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "NetJson SendData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sCommData + sJsonSendData); +#endif + + nStat = SendReceiveMstData(sCommData + sJsonSendData, ref sJsonReceiveData); + +#if(LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "NetJson RecvData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sJsonReceiveData); +#endif + + if (nStat == BaseCom.OK) + { + // 마스터 송수신 로그 제거(20170520) + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sJsonReceiveData); + + if (sJsonReceiveData != null && sJsonReceiveData != string.Empty) + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + + //sRecvData 복호화 처리 ... + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + if (int.Parse(htRecvData[Column.IQ_POSMASTER_RSP.DATA.Count].ToString().Trim()) != 0) + { + // StringBuilder에 추가 + sbRecvData.Append(htRecvData[Column.IQ_POSMASTER_RSP.DATA.Data].ToString()); + } + else + { + break; + } + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + } + else + { + return BaseCom.NG1; + } + } + + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.MstIRTSendReceive()", e.ToString()); + } + finally + { + Close(); + } + + return nStat; + } + + + + /// + /// 2019-03-20 - 1997fx11 : Kiosk 관련 요청을 위한 string으로의 send/receive + /// 고객구매이력 외 + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int CmsIRTSendReceive(string sIp, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref StringBuilder sbRecvData, ref string sUpDate) + { + int nStat = BaseCom.NG; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + IMasterDownUs cMstDownSrv = null; + + try + { + m_ServerIp = sIp; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = string.Empty; + string sJsonReceiveData = string.Empty; + Hashtable htRecvData = null; + + sbRecvData = new StringBuilder(); + + nStat = Connect(-1); + + if (nStat == BaseCom.OK) + { + cMstDownSrv = (IMasterDownUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.MASTER_DOWN); + + if (cMstDownSrv.IsAborted == true) + { + return BaseCom.NG2; + } + + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + // 전문 송신 + +#if (LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "NetJson SendData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sCommData + sJsonSendData); +#endif + + nStat = SendReceiveMstData(sCommData + sJsonSendData, ref sJsonReceiveData); + +#if (LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "NetJson RecvData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sJsonReceiveData); +#endif + + if (nStat == BaseCom.OK) + { + if (sJsonReceiveData != null && sJsonReceiveData != string.Empty) + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + + //sRecvData 복호화 처리 ... + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + // IRQ_TYPE - 01 : 고객구매이력, 02 : 신상품목록 + if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "01") + { + if ((htData[Column.IQ_KIOSK_REQ.DATA.HpcCustCd].ToString() == htRecvData[Column.IQ_KIOSK_REQ.DATA.HpcCustCd].ToString())) + { + sbRecvData.Append(htRecvData["VALUE"].ToString()); + } + + if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + { + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + else + { + return BaseCom.NG1; + } + } + else if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "02") + { + sbRecvData.Append(htRecvData["VALUE"].ToString()); + sUpDate = htRecvData["LAST_UPD_TIME"].ToString(); // Last Update Date + + if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + { + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + else + { + return BaseCom.NG1; + } + } + else if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "04") + { + if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + { + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + else + { + return BaseCom.NG1; + } + } + else if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "05") + { + if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + { + // 요청전문의 요청 코드 변경 + htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + } + else + { + return BaseCom.NG1; + } + } + + //if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + //{ + // // 요청전문의 요청 코드 변경 + // htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + //} + //else + //{ + // return BaseCom.NG1; + //} + } + } + else + { + return BaseCom.NG1; + } + + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,"NetworkJSON.CmsIRTSendReceive()", e.ToString()); + } + finally + { + Close(); + } + + return nStat; + } + + + /// + /// 중국 - 알리페이/위챗페이 승인 데몬과 통신 + /// + /// + /// + /// + /// + /// + /// + public int ChinaIRTSendReceive(string sIP, int iPort, int iTimeOut, string sData, ref Hashtable htRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = ""; + string sJsonReceiveData = ""; + + try + { + if (m_ServerIp != "" && m_ServerPort != 0) + { + if (sData != "") + { + sJsonSendData = sData; + //sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.ChinaIRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sJsonSendData); + } + + byte[] bytes = Encoding.UTF8.GetBytes(sJsonSendData); + string sUTF8String = Encoding.UTF8.GetString(bytes); + + //Send Receive + //nStat = SendReceiveData(sUTF8String, ref sJsonReceiveData, false); + nStat = SendReceiveDataFixSiz(sUTF8String, ref sJsonReceiveData, false, true, 4096); + + if (sJsonReceiveData != null && sJsonReceiveData != "") + { + sRecvData = sJsonReceiveData; + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.ChinaIRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + } + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.ChinaIRTSendReceive()", e.ToString()); + } + + return nStat; + } + + //#20180322 휴게소pos매출연동 start,phj + /// + /// JSON 파일 생성 + /// + /// 자료 형태 + /// 경로 + 파일 + /// 자료 + /// string + public string SaveJsonFile(string sType, string sFile, string sJsonData) + { + string sRet = UserCom.RST_ERR; + try + { + using (System.IO.StreamWriter file = new System.IO.StreamWriter(sFile)) + { + file.WriteLine(sJsonData); + } + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SaveJsonFile()", ex.ToString()); + } + + return sRet; + } + + /// + /// HashTable 데이터를 JSON String 으로 변환 + /// + /// + /// + /// string + public string HashToJsonString(Hashtable htData, ref string sJson) + { + string sRet = UserCom.RST_ERR; + try + { + sJson = JsonConvert.SerializeObject(htData); + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.HashToJsonString()", ex.ToString()); + } + + return sRet; + } + //#20180322 휴게소pos매출연동 end,phj + + /// + /// 2019-05-29 - 1997fx11 : 알림톡 전송 + /// + /// + /// + public int Send_NoticeTalk(string sIp, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref string sUpDate, ref StringBuilder sbRecvData) + { + int nStat = BaseCom.NG; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + sbRecvData = new StringBuilder(); + + IMasterDownUs cMstDownSrv = null; + + try + { + m_ServerIp = sIp; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = string.Empty; + string sJsonReceiveData = string.Empty; + Hashtable htRecvData = null; + + nStat = Connect(-1); + + if (nStat == BaseCom.OK) + { + cMstDownSrv = (IMasterDownUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.MASTER_DOWN); + + if (cMstDownSrv.IsAborted == true) + { + return BaseCom.NG2; + } + + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + // 전문 송신 + +#if (LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "NetJson SendData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sCommData + sJsonSendData); +#endif + + nStat = SendReceiveMstData(sCommData + sJsonSendData, ref sJsonReceiveData); + +#if (LOG_TRACE) ////@@ 로그 확인 용 + UserLog.WriteLogFile(UserCom.LOG_OP, "NetJson RecvData : ", System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + "," + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sJsonReceiveData); +#endif + + if (nStat == BaseCom.OK) + { + //if (sJsonReceiveData != null && sJsonReceiveData != string.Empty) + //{ + // sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + // sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + + // //sRecvData 복호화 처리 ... + // htRecvData = JsonConvert.DeserializeObject(sRecvData); + + // // IRQ_TYPE - 01 : 고객구매이력, 02 : 신상품목록 + // if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "01") + // { + // if ((htData[Column.IQ_KIOSK_REQ.DATA.HpcCustCd].ToString() == htRecvData[Column.IQ_KIOSK_REQ.DATA.HpcCustCd].ToString())) + // { + // sbRecvData.Append(htRecvData["VALUE"].ToString()); + // } + + // if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + // { + // // 요청전문의 요청 코드 변경 + // htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + // } + // else + // { + // return BaseCom.NG1; + // } + // } + // else if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "02") + // { + // sbRecvData.Append(htRecvData["VALUE"].ToString()); + // sUpDate = htRecvData["LAST_UPD_TIME"].ToString(); // Last Update Date + + // if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + // { + // // 요청전문의 요청 코드 변경 + // htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + // } + // else + // { + // return BaseCom.NG1; + // } + // } + // else if (htRecvData[Column.IQ_KIOSK_REQ.DATA.InqType].ToString() == "04") + // { + // if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + // { + // // 요청전문의 요청 코드 변경 + // htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + // } + // else + // { + // return BaseCom.NG1; + // } + // } + + // //if (htRecvData[Column.IQ_KIOSK_REQ.DATA.ResCd].ToString() == "00") + // //{ + // // // 요청전문의 요청 코드 변경 + // // htData[Column.IQ_POSMASTER_REQ.DATA.ProcCd] = "1"; + // //} + // //else + // //{ + // // return BaseCom.NG1; + // //} + //} + } + else + { + return BaseCom.NG1; + } + + nStat = BaseCom.OK; + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, "NetworkJSON.CmsIRTSendReceive()", e.ToString()); + } + finally + { + Close(); + } + + return nStat; + } + } +} diff --git a/Agent/Network/NetworkVanSPCN.cs b/Agent/Network/NetworkVanSPCN.cs new file mode 100644 index 0000000..82bf97f --- /dev/null +++ b/Agent/Network/NetworkVanSPCN.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Collections; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +namespace Cosmos.Network +{ + class NetworkVanSPCN : INetworkVanSPCN + { + //카드 리더 처리 클래스 통합 2016-06-17 SBSEO + + } +} diff --git a/Agent/Network/Properties/AssemblyInfo.cs b/Agent/Network/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e3d401e --- /dev/null +++ b/Agent/Network/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("Network")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Network")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("6c2b4bd7-4335-44af-a2d7-f89369063e96")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/NetworkCheckOver/Activator.cs b/Agent/NetworkCheckOver/Activator.cs new file mode 100644 index 0000000..0c77f01 --- /dev/null +++ b/Agent/NetworkCheckOver/Activator.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +namespace Cosmos.Service +{ + /// + /// Load BaseFrame and save information (BaseFrame의 로드하고 정보를 보관한다) + /// + public class Activator : InitServiceAbstract + { + /// + /// Define main entrance point of project load. (프로젝트 로드의 주진입점을 정의합니다.) + /// + public Activator() + { + + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_NETWORK_CHECKOVER.NetworkCheckOver: + { + Cosmos.Network.NetworkCheckOver agentClass = new Cosmos.Network.NetworkCheckOver(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} diff --git a/Agent/NetworkCheckOver/CheckOverDetail.cs b/Agent/NetworkCheckOver/CheckOverDetail.cs new file mode 100644 index 0000000..8bfa627 --- /dev/null +++ b/Agent/NetworkCheckOver/CheckOverDetail.cs @@ -0,0 +1,553 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; +using Cosmos.CommonManager; + +namespace Cosmos.Network +{ + class CheckOverDetail : ICheckOverUs + { + private PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조 + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + + /// + /// 생성자 + /// + public CheckOverDetail() + { + m_cPosStatus = (PosStatus)StateObject.POS; + } + + /// + /// 해피오더 - 주문 상태별 건수 조회 + /// + /// + /// + ///grayber@20180306 해피오더 주문가능 상태 추가 start - 함수 인자 추가 SelectHappyOrderCountByOrderStatus HashTable 인자추가 + /// 기존 + ///public string SelectHappyOrderCountByOrderStatus(Hashtable[] htOrderStatus) + /// 변경 + public string SelectHappyOrderCountByOrderStatus(Hashtable[] htOrderStatus , ref Hashtable htRspData) + //grayber@20180306 해피오더 주문가능 상태 추가 end + { + // 주문접수-일반 + int iOrderRegNormalCnt = 0; + // 주문접수-배달 + int iOrderRegDeliveryCnt = 0; + // 주문접수-예약 + int iOrderRegReservedCnt = 0; + // 총 주문접수 건수 + int iTotOrderRegCnt = 0; + int iProductReadyCnt = 0; + int iPreReservedCnt = 0; + int iPickupWaitCnt = 0; + int iPickupDelayCnt = 0; + int iNoPickupAndDelayCnt = 0; + int iDeliveryRequestCnt = 0; + int iDeliveryRegCnt = 0; + int iDeliveryingCnt = 0; + + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start + int iDeliveryDirectCnt = 0; + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end + + //#20180605 해피오더 개선 start + + //즉시주문, 예약주문 알림 + //즉시픽업 건수 + int iOrdCnt_Direct = 0; + //즉시배달 건수 + int iOrdCnt_Reserv = 0; + + //#20180605 해피오더 개선 end + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + int iDeliveryProductReadyCnt = 0; + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + string sRet = UserCom.RST_ERR; + try + { + foreach(Hashtable htData in htOrderStatus) + { + string sOrderType = htData["type"].ToString(); + + switch(htData["status"].ToString()) + { + case ItemConst.HAPPYORDER_STATUS.ORDER_REG: // "4" : 주문접수 + // 일반 주문건수 계산 + if(sOrderType == ItemConst.ORDER_TYPE.SHOP_DIRECT || + sOrderType == ItemConst.ORDER_TYPE.SHOP_TIME) + { + iOrderRegNormalCnt += int.Parse(htData["count"].ToString()); + } + // 배달 주문건수 계산 + else if(sOrderType == ItemConst.ORDER_TYPE.INNER_DELIVERY || + sOrderType == ItemConst.ORDER_TYPE.OUTTER_DELIVERY) + { + iOrderRegDeliveryCnt += int.Parse(htData["count"].ToString()); + } + // 예약 주문건수 계산 + else if(sOrderType == ItemConst.ORDER_TYPE.RESERVED_ORDER || + sOrderType == ItemConst.ORDER_TYPE.PRE_RESERVED) + { + iOrderRegReservedCnt += int.Parse(htData["count"].ToString()); + } + + //#20180605 해피오더 개선 start + //즉시주문, 예약주문 알림 + //즉시픽업 건수 계산 + else if(sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) + { + iOrdCnt_Direct += int.Parse(htData["count"].ToString()); + } + //즉시배달 건수 계산 + else if(sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER) + { + iOrdCnt_Reserv += int.Parse(htData["count"].ToString()); + } + //#20180605 해피오더 개선 end + + break; + case ItemConst.HAPPYORDER_STATUS.PRODUCT_READY: // "5" : 상품준비 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + //기존 + //iProductReadyCnt += int.Parse(htData["count"].ToString()); + //변경 + if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) + { + iProductReadyCnt += int.Parse(htData["count"].ToString()); + } + else + { + iDeliveryProductReadyCnt += int.Parse(htData["count"].ToString()); + } + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + break; + case ItemConst.HAPPYORDER_STATUS.PRE_RESERVED: // "6" : 사전예약 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + iPreReservedCnt += int.Parse(htData["count"].ToString()); + break; + case ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT: // "7" : 픽업대기 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + iPickupWaitCnt += int.Parse(htData["count"].ToString()); + break; + case ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY: // "2000" : 픽업지연 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + iPickupDelayCnt += int.Parse(htData["count"].ToString()); + break; + case ItemConst.HAPPYORDER_STATUS.NO_PICKUP_AND_DELAY: // "2018" : 픽업지연미픽업 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + iNoPickupAndDelayCnt += int.Parse(htData["count"].ToString()); + break; + case ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ: // "9004" : 배달요청 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue; + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + iDeliveryRequestCnt += int.Parse(htData["count"].ToString()); + break; + case ItemConst.HAPPYORDER_STATUS.DELIVERY_REG: // "9005" : 배달접수 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue; + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + iDeliveryRegCnt += int.Parse(htData["count"].ToString()); + break; + case ItemConst.HAPPYORDER_STATUS.DELIVERY_ING: // "9007" : 배달중 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue; + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + iDeliveryingCnt += int.Parse(htData["count"].ToString()); + break; + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start + case ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT: // "9003" : 직접배달 + //#20180905 즉시픽업,즉시배달 제외 start + if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue; + //#20180905 즉시픽업,즉시배달 제외 end + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue; + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + iDeliveryDirectCnt += int.Parse(htData["count"].ToString()); + break; + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end + } + } + + iTotOrderRegCnt = iOrderRegNormalCnt + iOrderRegDeliveryCnt + iOrderRegReservedCnt; + + // 신규 주문 알림 팝업 Show 여부 + // 최초 신규 주문 건수 가져올 시 주문 알림 팝업 Show - 문성진D 요청(BR, PC 합의 사항) + //if((m_cPosStatus.Sale.HappyOrderRegCnt != string.Empty && int.Parse(m_cPosStatus.Sale.HappyOrderRegCnt) != iOrderRegCnt) || + // (m_cPosStatus.Sale.HappyOrderPickupDelayCnt != string.Empty && int.Parse(m_cPosStatus.Sale.HappyOrderPickupDelayCnt) != iPickupDelayCnt)) + // 신규 주문 건수 타입 별 변경 체크 + //if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) != iTotOrderRegCnt) || + // (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderPickupDelayCnt, "0")) != iPickupDelayCnt)) + // PC, BRK 에 따라 상단 문구와 팝업알림 로직이 달라짐(2017/03/14) + //if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderRegCnt, "0")) != iOrderRegNormalCnt) || + // (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) != iOrderRegDeliveryCnt) || + // (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservedRegCnt, "0")) != iOrderRegReservedCnt)) + //{ + // m_cPosStatus.Sale.HappyOrderAlarm = true; + //} + // 연습모드일 경우에는 해피오더 알림팝업이 뜨지 않도록 처리(20170619) + if (m_cPosStatus.Base.TrainingFlag != "1") + { + if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC) + { + // 신규주문 건수, 픽업미처리 건수, 배달미처리 건수 변경 시 팝업 알림 + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start + //기존 + /* + if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) != iOrderRegNormalCnt + iOrderRegReservedCnt + iOrderRegDeliveryCnt) || + (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderProductReadyCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderPickupWaitCnt, "0")) != iProductReadyCnt + iPickupWaitCnt) || + (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryingCnt, "0")) != iDeliveryRequestCnt + iDeliveryRegCnt + iDeliveryingCnt)) + { + m_cPosStatus.Sale.HappyOrderAlarm = true; + } + */ + //변경 + if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) != iOrderRegNormalCnt + iOrderRegReservedCnt + iOrderRegDeliveryCnt) || + (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderProductReadyCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderPickupWaitCnt, "0")) != iProductReadyCnt + iPickupWaitCnt) || + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + //기존 + /* + (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt, "0")) + + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) + + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryingCnt, "0")) + + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt, "0")) != iDeliveryRequestCnt + iDeliveryRegCnt + iDeliveryingCnt + iDeliveryDirectCnt)) + */ + //변경 + (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt, "0")) + + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) + + //int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryingCnt, "0")) + + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt, "0")) + + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryProductReadyCnt, "0")) != + iDeliveryRequestCnt + + iDeliveryRegCnt + + //iDeliveryingCnt + + iDeliveryDirectCnt + + iDeliveryProductReadyCnt)) + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + { + m_cPosStatus.Sale.HappyOrderAlarm = true; + } + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end + + } + else + { + // 일반 건수, 배달 건수, 예약 건수 변경 시 팝업 알림 + if (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderRegCnt, "0")) != iOrderRegNormalCnt || + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryOrderRegCnt, "0")) != iOrderRegDeliveryCnt || + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservedRegCnt, "0")) != iOrderRegReservedCnt) + { + m_cPosStatus.Sale.HappyOrderAlarm = true; + } + } + } + + // 해피오더 일반 주문접수 건수 갱신 + m_cPosStatus.Sale.HappyOrderRegCnt = Convert.ToString(iOrderRegNormalCnt); + // 해피오더 예약 주문접수 건수 갱신 + m_cPosStatus.Sale.HappyOrderReservedRegCnt = Convert.ToString(iOrderRegReservedCnt); + // 해피오더 배달 주문접수 건수 갱신 + m_cPosStatus.Sale.HappyOrderDeliveryOrderRegCnt = Convert.ToString(iOrderRegDeliveryCnt); + // 해피오더 총 주문접수 건수 갱신 + m_cPosStatus.Sale.HappyOrderTotRegCnt = Convert.ToString(iTotOrderRegCnt); + + // 해피오더 상품준비 건수 갱신 + m_cPosStatus.Sale.HappyOrderProductReadyCnt = Convert.ToString(iProductReadyCnt); + + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start + m_cPosStatus.Sale.HappyOrderDeliveryProductReadyCnt = Convert.ToString(iDeliveryProductReadyCnt); + //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end + + // 해피오더 픽업대기 건수 갱신 + m_cPosStatus.Sale.HappyOrderPickupWaitCnt = Convert.ToString(iPickupWaitCnt); + // 해피오더 픽업지연 건수 갱신 + m_cPosStatus.Sale.HappyOrderPickupDelayCnt = Convert.ToString(iPickupDelayCnt); + // 해피오더 픽업지연미픽업 건수 갱신 + m_cPosStatus.Sale.HappyOrderNoPickupAndDelayCnt = Convert.ToString(iNoPickupAndDelayCnt); + // 해피오더 배달요청 건수 갱신 + m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt = Convert.ToString(iDeliveryRequestCnt); + // 해피오더 배달접수 건수 갱신 + m_cPosStatus.Sale.HappyOrderDeliveryRegCnt = Convert.ToString(iDeliveryRegCnt); + + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start + // 해피오더 직접배달 건수 갱신 + m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt = Convert.ToString(iDeliveryDirectCnt); + //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end + + // 해피오더 배달중 건수 갱신 + m_cPosStatus.Sale.HappyOrderDeliveryingCnt = Convert.ToString(iDeliveryingCnt); + + //grayber@20180306 해피오더 주문가능 상태 추가 start - 해피오더 배달 가능 상태 전역변수에 값 설정 + m_cPosStatus.Sale.DeliverySupport = string.Empty; // 기본값 string.Empty + if (CmUtil.IsNull(htRspData) != true ) + { + if (CmUtil.IsNull(htRspData["deliverySupport"]) != true) + {// 전역변수에 값 추가 + m_cPosStatus.Sale.DeliverySupport = htRspData["deliverySupport"].ToString(); // Y:N + } + } + //System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " ▶▶▶ m_cPosStatus.Sale.DeliverySupport:" + m_cPosStatus.Sale.DeliverySupport); // Debug output console + //grayber@20180306 해피오더 주문가능 상태 추가 end + + //#20180605 해피오더 개선 start + + //즉시주문, 예약주문 알림 + // 즉시픽업 건수 + m_cPosStatus.Sale.HappyOrderDirectCnt = Convert.ToString(iOrdCnt_Direct); + // 즉시배달 건수 + m_cPosStatus.Sale.HappyOrderReservCnt = Convert.ToString(iOrdCnt_Reserv); + + ////#15058 해피오더 버튼 변경 start,phj + //m_cPosStatus.Sale.SaleMainRepeat = true; + //m_cPosStatus.Sale.PosMainRepeat = true; + //m_cPosStatus.Sale.TableMainRepeat = true; + ////#15058 해피오더 버튼 변경 end,phj + + //#20180605 해피오더 개선 end + + + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + /// + /// 빚은몰 주문 건수 조회 + /// + /// + /// + public string SelectBizeunOrderCount(string sRespData) + { + string sRet = UserCom.RST_ERR; + try + { + if(CmUtil.IsNumber(sRespData.Trim()) == true) + { + m_cPosStatus.Sale.BizeunOrderCnt = sRespData.Trim(); + } + else + { + m_cPosStatus.Sale.BizeunOrderCnt = "0"; + } + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + /// + /// 이지웰 주문건수 조회 + /// + /// + /// + public string SelectEzwelOrderCount(string sRespData) + { + string sRet = UserCom.RST_ERR; + try + { + if (CmUtil.IsNumber(sRespData.Trim()) == true) + { + m_cPosStatus.Sale.EzwelOrderCnt = sRespData.Trim(); + } + else + { + m_cPosStatus.Sale.EzwelOrderCnt = "0"; + } + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + + /// + /// 온도정보 Http 통신 + /// + /// + /// + public string SelectStoreTempInfo (string sRespData) + { + string sRet = UserCom.RST_ERR; + string sTempInfo = string.Empty; + string[] sTempSep = null; + int iTotCnt = 0; + + int iStartCnt = 0; + int iEndCnt = 0; + + try + { + string sResp = string.Empty; + if (sRespData.Trim().Length > 0) + { + iTotCnt = Convert.ToInt16(sRespData.Substring(0, 2)); + + sRespData = sRespData.Remove(0, 2); + + if (iTotCnt > 2) + { + // 첫번째 온도 정보 + iStartCnt = sRespData.IndexOf("["); + iEndCnt = sRespData.IndexOf("]"); + + if (iEndCnt != 0) + { + sTempInfo = sRespData.Substring(iStartCnt, iEndCnt + 1).Replace("[", "").Replace("]", ""); + + sTempSep = sTempInfo.Split('|'); + + // 코드1 + m_cPosStatus.Temp.Code1 = sTempSep[0]; + // 이름1 + m_cPosStatus.Temp.Name1 = sTempSep[1]; + // 온도1 + m_cPosStatus.Temp.Temperature1 = sTempSep[2]; + // 알람1 + m_cPosStatus.Temp.Alarm1 = sTempSep[3]; + // 경고1 + m_cPosStatus.Temp.Warning1 = sTempSep[4]; + // 미수신1 + m_cPosStatus.Temp.receiveYN1 = sTempSep[5]; + // 최종온도수집1 + m_cPosStatus.Temp.CollectionTime1 = sTempSep[6]; + + sRespData = sRespData.Remove(iStartCnt, iEndCnt + 1); + } + + // 두번째 온도 정보 + iStartCnt = sRespData.IndexOf("["); + iEndCnt = sRespData.IndexOf("]"); + + if (iEndCnt != 0) + { + sTempInfo = sRespData.Substring(iStartCnt, iEndCnt + 1).Replace("[", "").Replace("]", ""); + + sTempSep = sTempInfo.Split('|'); + + // 코드2 + m_cPosStatus.Temp.Code2 = sTempSep[0]; + // 이름2 + m_cPosStatus.Temp.Name2 = sTempSep[1]; + // 온도2 + m_cPosStatus.Temp.Temperature2 = sTempSep[2]; + // 알람2 + m_cPosStatus.Temp.Alarm2 = sTempSep[3]; + // 경고2 + m_cPosStatus.Temp.Warning2 = sTempSep[4]; + // 미수신2 + m_cPosStatus.Temp.receiveYN2 = sTempSep[5]; + // 최종온도수집2 + m_cPosStatus.Temp.CollectionTime2 = sTempSep[6]; + + sRespData = sRespData.Remove(iStartCnt, iEndCnt + 1); + } + + iStartCnt = sRespData.IndexOf("["); + iEndCnt = sRespData.IndexOf("]"); + + if (iEndCnt != 0) + { + sTempInfo = sRespData.Substring(iStartCnt, iEndCnt + 1).Replace("[", "").Replace("]", ""); + + sTempSep = sTempInfo.Split('|'); + + // 세번째 온도 정보 + // 코드3 + m_cPosStatus.Temp.Code3 = sTempSep[0]; + // 이름3 + m_cPosStatus.Temp.Name3 = sTempSep[1]; + // 온도3 + m_cPosStatus.Temp.Temperature3 = sTempSep[2]; + // 알람3 + m_cPosStatus.Temp.Alarm3 = sTempSep[3]; + // 경고3 + m_cPosStatus.Temp.Warning3 = sTempSep[4]; + // 미수신3 + m_cPosStatus.Temp.receiveYN3 = sTempSep[5]; + // 최종온도수집3 + m_cPosStatus.Temp.CollectionTime3 = sTempSep[6]; + + sRespData = sRespData.Remove(iStartCnt, iEndCnt + 1); + } + } + } + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + } +} diff --git a/Agent/NetworkCheckOver/NetworkCheckOver.cs b/Agent/NetworkCheckOver/NetworkCheckOver.cs new file mode 100644 index 0000000..60b79c5 --- /dev/null +++ b/Agent/NetworkCheckOver/NetworkCheckOver.cs @@ -0,0 +1,2833 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; +using System.Threading; +using System.Net; +using System.IO; +using System.Data; + +using Newtonsoft.Json; + +using Cosmos.Common; +using Cosmos.CommonManager; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using ICSharpCode.SharpZipLib.Zip; + + +namespace Cosmos.Network +{ + public class NetworkCheckOver : IWatcher + { + private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + /// + /// Sending Socket (전송 소켓) + /// + private static TcpSocket m_sendSocket = null; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + private ICheckOverUs m_cCheckOverDetail = null; + + /// + /// 웹정보 서비스 + /// + private IDataServiceUs m_cWebBiz = null; + + /// + /// Server SEND Thread (Server SEND 스레드) + /// + private Thread m_tCheckOver = null; + + /// + /// Thread Waiting Time (스레드 대기시간 ms) + /// + private int m_ThreadSleepTerm = 60000; + + /// + /// Network CheckOver Operation Yes/No (작동여부) + /// + private bool m_NetworkCheckOverRunning = true; + + /// + /// 해피오더 조회/상태변경/취소 URL + /// + private string m_sHappyOrderURL; + /// + /// 빚은몰 주문 건수 조회 URL + /// + private string m_sBizeunSelectURL; + /// + /// 이지웰 주문 건수 조회 URL + /// + private string m_sEzwelSelectURL; + /// + /// 온도정보 URL + /// + private string m_sTempURL; + + //17.08.22 dkshin SS 해피오더 + Hashtable[] m_htOrderLists; + IHappyOrderList m_cHappyOrder = null;// 해피오더 서비스 처리 + private TranStatus m_cTrnStatus;//거래정보 참조 + + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start + private IDataCommonUs m_cDataCommon = null; + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end + + //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 start + private int iInventoryDispCnt = -1; + //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 end + + public NetworkCheckOver() + { + m_cPosStatus = (PosStatus)StateObject.POS; + + m_cWebBiz = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.WEB_POS); + + m_cCheckOverDetail = new CheckOverDetail(); + + // 승인업체 코드 조회 + string sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ORDER_ITEM, ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); + // 승인 URL 조회 + m_sHappyOrderURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP); + + sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.BIZEUN, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); + m_sBizeunSelectURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP); + + sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.EZWEL, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); + m_sEzwelSelectURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP); + + m_sTempURL = (string)m_cWebBiz.GetData(new string[] { PosKey.MENU_KEY.WEB_TMPRT }); + + //17.08.22 dkshin SS 해피오더 + m_cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST); + m_cTrnStatus = (TranStatus)StateObject.TRAN; //거래정보 + + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end + } + + #region CheckOver Thread START / STOP + public void Start() + { + try + { + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, + m_cPosStatus.Base.LocalDbCatalog, + m_cPosStatus.Base.LocalDbUserID, + m_cPosStatus.Base.LocalDbPassword); + + m_tCheckOver = new Thread(new ThreadStart(ThreadCheckOverRun)); + m_NetworkCheckOverRunning = true; + m_tCheckOver.Start(); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + public void Stop() + { + try + { + // 통신서버 Send Terminated (SC Send 종료) + m_NetworkCheckOverRunning = false; + + int count = 0; + while (count < 10) + { + if (m_tCheckOver != null && m_tCheckOver.IsAlive) m_NetworkCheckOverRunning = false; + else break; + + count++; + Thread.Sleep(100); + } + + if (count == 10) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force NetworkTranSend Service Stop!!!"); + m_tCheckOver.Abort(); + } + + // DB Close + sqlDb.DBClose(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion CheckOver Thread START / STOP + + #region CheckOver Main + private void ThreadCheckOverRun() + { + string sReqData = string.Empty; + string sRespData = string.Empty; + string sReturn = string.Empty; + int iRet = 0; + int iSubCount_1 = 0; + int iSubCount_2 = 0; + Hashtable htSendData = null; + Hashtable htRecvData = null; + try + { + while (m_NetworkCheckOverRunning) + { + try + { + // 해피오더 제일 먼저 조회 - 문성진D 요청 + #region 5 - 해피오더 주문 건수 조회 + // 4 - 해피오더 + + if (PosMstManager.GetPosOption(POS_OPTION.OPT035) == "1") + { + //#20180228 해피오더 주문 건수 조회 기능 에러시 다른 기능 동작 되도록 수정 start + //기존 + /* + sReqData = string.Format("storeCode={0}&deviceType=POS", m_cPosStatus.Base.StoreNo); + //sReqData = string.Format("storeCode={0}&deviceType=POS", "11101"); + iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT, sReqData, ref sRespData); + if (iRet == BaseCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sRespData); + + sReturn = m_cCheckOverDetail.SelectHappyOrderCountByOrderStatus(JsonConvert.DeserializeObject(sRespData)); + } + */ + //변경 + HappyOrderCntChk(); + //#20180228 해피오더 주문 건수 조회 기능 에러시 다른 기능 동작 되도록 수정 end + } + + + #endregion + + #region 1 - 공지사항 요청(점주/알바모드, 위해상품 메시지, 입고등록 확인, 배송정보, 기념일 배송) - 30분 단위 + // 1 - 공지사항 요청(점주/알바모드, 위해상품 메시지, 입고등록 확인, 배송정보, 기념일 배송) + if (iSubCount_1 == 10) + { + // 전문 생성 + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.NOTICE_INQ_REQ, null); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_NOTICE_INQ_RSP.DATA.RES_CD].ToString() == "00") + { + DataTable dtNotice = ParseMsgValueField(htRecvData[Column.IQ_NOTICE_INQ_RSP.DATA.MSG_VALUE].ToString()); + + // 서브 업무 처리 + DoSubProc(dtNotice); + } + } + } + #endregion 1 - 공지사항 요청(점주/알바모드, 위해상품 메시지, 입고등록 확인, 배송정보, 기념일 배송) + + #region 2 - 일반 공지사항 요청 + // 2 - 일반 공지사항 요청 + if(iSubCount_2 == 30) + { + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.MSG_TRANSFER_REQ, new string[] { "0" + , m_cPosStatus.Base.RegularNoticeUpdateDT + , m_cPosStatus.Base.EmergencyNoticeUpdateDT + , m_cPosStatus.Base.SaleNoticeUpdateDT1 + , m_cPosStatus.Base.SaleNoticeUpdateDT2 }); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.SysInfoPort), + (int)5000, htSendData, ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_MSG_SND_RSP.DATA.RES_CD].ToString() == "00") + { + if (InsertIntoEMG_NOTE(htRecvData) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to insert into MST_EMG_NOTE ( " + + "[MSG_CD]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CD].ToString() + + "[MSG_DIV]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString() + + "[MSG_TITLE]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TITLE].ToString() + " )"); + } + else + { + // 업데이트 시간 갱신 + UpdateNoticesDateTime(htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString(), htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE].ToString(), htRecvData[Column.IQ_MSG_SND_RSP.DATA.UPD_DATE].ToString()); + + // MSG_DIV = '00'(긴급) 이고 MSG_TYPE = '1'(마스터) 이면 + // 긴급 적용 마스터 리스트 Update + if (htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString() == "00" && + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE].ToString() == "1") + { + + htSendData.Clear(); + htSendData = MakePOSMASTERLISTReqData(); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, + ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_POSMASTERLIST_REQ.DATA.DOWN_DIV].ToString() == "2") + { + string[] arMasterList = (htRecvData[Column.IQ_POSMASTERLIST_REQ.DATA.MASTER_LIST].ToString()).Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + + if (UpdateMasterTableList(arMasterList) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to update emergency master list [" + htRecvData[Column.IQ_POSMASTERLIST_REQ.DATA.MASTER_LIST].ToString() + "]"); + } + } + } + } + } + } + } + } + #endregion 2 - 긴급 공지 요청(긴급공지, 주문긴급공지, 관공서 방문 점검 공지, 오늘의 할 일) + + #region 3 - 긴급 공지사항 요청 + // 3 - 긴급 공지사항 요청 + { + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.MSG_TRANSFER_REQ, new string[] { "2" + , m_cPosStatus.Base.RegularNoticeUpdateDT + , m_cPosStatus.Base.EmergencyNoticeUpdateDT + , m_cPosStatus.Base.SaleNoticeUpdateDT1 + , m_cPosStatus.Base.SaleNoticeUpdateDT2 }); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.SysInfoPort), + (int)5000, htSendData, ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_MSG_SND_RSP.DATA.RES_CD].ToString() == "00") + { + if (InsertIntoEMG_NOTE(htRecvData) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to insert into MST_EMG_NOTE ( " + + "[MSG_CD]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CD].ToString() + + "[MSG_DIV]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString() + + "[MSG_TITLE]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TITLE].ToString() + " )"); + } + else + { + // 업데이트 시간 갱신 + UpdateNoticesDateTime(htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString(), htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE].ToString(), htRecvData[Column.IQ_MSG_SND_RSP.DATA.UPD_DATE].ToString()); + + // MSG_DIV = '00'(긴급) 이고 MSG_TYPE = '1'(마스터) 이면 + // 긴급 적용 마스터 리스트 Update + if (htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString() == "00" && + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE].ToString() == "1") + { + + htSendData.Clear(); + htSendData = MakePOSMASTERLISTReqData(); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, + ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_POSMASTERLIST_REQ.DATA.DOWN_DIV].ToString() == "2") + { + string[] arMasterList = (htRecvData[Column.IQ_POSMASTERLIST_REQ.DATA.MASTER_LIST].ToString()).Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + + if (UpdateMasterTableList(arMasterList) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to update emergency master list [" + htRecvData[Column.IQ_POSMASTERLIST_REQ.DATA.MASTER_LIST].ToString() + "]"); + } + } + } + } + } + } + } + } + #endregion 3 - 긴급 공지사항 요청 + + #region 4 - 영업 공지 요청(오늘의 할 일, 식품 안전 메시지) - 10분 단위 + // 3 - 영업 공지 요청(오늘의 할 일, 식품 안전 메시지) 1 + if (iSubCount_1 == 10) + { + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.MSG_TRANSFER_REQ, new string[] { "1" + , m_cPosStatus.Base.RegularNoticeUpdateDT + , m_cPosStatus.Base.EmergencyNoticeUpdateDT + , m_cPosStatus.Base.SaleNoticeUpdateDT1 + , m_cPosStatus.Base.SaleNoticeUpdateDT2 }); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.SysInfoPort), + (int)5000, htSendData, ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_MSG_SND_RSP.DATA.RES_CD].ToString() == "00") + { + if (InsertIntoEMG_NOTE(htRecvData) != UserCom.OK) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to insert into MST_EMG_NOTE ( " + + "[MSG_CD]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CD].ToString() + + "[MSG_DIV]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString() + + "[MSG_TITLE]=" + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TITLE].ToString() + " )"); + } + else + { + // 업데이트 시간 갱신 + UpdateNoticesDateTime(htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV].ToString(), htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE].ToString(), htRecvData[Column.IQ_MSG_SND_RSP.DATA.UPD_DATE].ToString()); + } + } + } + } + #endregion 4 - 영업 공지 요청(오늘의 할 일, 식품 안전 메시지) + + + #region 6 - 빚은몰 주문 건수 조회 + // 5 - 빚은몰 + if (PosMstManager.GetPosOption(POS_OPTION.OPT036) == "1") + { + sReqData = string.Format("AMACODE={0}", m_cPosStatus.Base.StoreNo); + iRet = this.HttpGET_SendReceive(m_sBizeunSelectURL, string.Empty, sReqData, PosConst.ENCODING_FLAG.KSC, ref sRespData); + if (iRet == BaseCom.OK) + { + sReturn = m_cCheckOverDetail.SelectBizeunOrderCount(sRespData); + } + } + #endregion + + #region 7 - 이지웰 주문 건수 조회 + // 6 - 이지웰 + if (PosMstManager.GetPosOption(POS_OPTION.OPT037) == "1") + { + sReqData = string.Format("AMACODE={0}", m_cPosStatus.Base.StoreNo); + iRet = this.HttpGET_SendReceive(m_sEzwelSelectURL, string.Empty, sReqData, PosConst.ENCODING_FLAG.KSC, ref sRespData); + if (iRet == BaseCom.OK) + { + sReturn = m_cCheckOverDetail.SelectEzwelOrderCount(sRespData); + } + } + #endregion + + if (m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS) //메인포스만 전송 처리! + { + #region 7 - 점포 방문 이력 전송(제조기사 타임 바코드) + { + + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + htSendData = new Hashtable(); + + //전송 내역 확인 + DataTable dt = SelectSendDataList(ItemConst.IRT_INQ_TYPE.STOR_VISIT); + + if (!(dt == null || dt.Rows.Count == 0)) + { + DataRow dr = dt.Rows[0]; + + for (int iRow = 0; iRow < dr.Table.Columns.Count; iRow++) + { + htSendData.Add(dr.Table.Columns[iRow].ColumnName, dr[iRow].ToString()); + } + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, ref htRecvData); + string sFlag = "9"; + + if (iRet == BaseCom.OK) + { + if (htRecvData["RES_CD"].ToString() == "00") + { + sFlag = "1"; + } + } + UpdateTableSend(ItemConst.IRT_INQ_TYPE.STOR_VISIT, sFlag, htSendData); + } + + + + } + #endregion 7 - 점포 방문 이력 전송(제조기사 타임 바코드) + + #region 8 - 근태 등록 요청/응답 + { + + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + htSendData = new Hashtable(); + + //전송 내역 확인 + DataTable dt = SelectSendDataList(ItemConst.IRT_INQ_TYPE.EMP_COMMUTE); + + if (!(dt == null || dt.Rows.Count == 0)) + { + + DataRow dr = dt.Rows[0]; + + // 전문 생성 + for (int iRow = 0; iRow < dr.Table.Columns.Count; iRow++) + { + htSendData.Add(dr.Table.Columns[iRow].ColumnName, dr[iRow].ToString()); + } + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, ref htRecvData); + string sFlag = "9"; + + if (iRet == BaseCom.OK) + { + if (htRecvData["RES_CD"].ToString() == "00") + { + sFlag = "1"; + } + } + UpdateTableSend(ItemConst.IRT_INQ_TYPE.EMP_COMMUTE, sFlag, htSendData); + } + } + #endregion 8 - 근태 등록 요청/응답 + + #region 9 - 점주/알바 모드 전송 + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + htSendData = new Hashtable(); + + //전송 내역 확인 + DataTable dt = SelectSendDataList(ItemConst.IRT_INQ_TYPE.ONWER_MODE); + + if (!(dt == null || dt.Rows.Count == 0)) + { + + DataRow dr = dt.Rows[0]; + + // 전문 생성 + for (int iRow = 0; iRow < dr.Table.Columns.Count; iRow++) + { + htSendData.Add(dr.Table.Columns[iRow].ColumnName, dr[iRow].ToString()); + } + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, ref htRecvData); + string sFlag = "9"; + + if (iRet == BaseCom.OK) + { + if (htRecvData["RES_CD"].ToString() == "00") + { + sFlag = "1"; + } + } + UpdateTableSend(ItemConst.IRT_INQ_TYPE.ONWER_MODE, sFlag, htSendData); + } + } + #endregion 9 - 점주/알바 모드 전송 + } + + #region 10 - 유해 상품 읽음 전송 + { + + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + htSendData = new Hashtable(); + + //전송 내역 확인 + + DataTable dt = SelectSendDataList(ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ); + + if (!(dt == null || dt.Rows.Count == 0)) + { + DataRow dr = dt.Rows[0]; + + for (int iRow = 0; iRow < dr.Table.Columns.Count; iRow++) + { + htSendData.Add(dr.Table.Columns[iRow].ColumnName, dr[iRow].ToString()); + } + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.SysInfoPort), + (int)5000, htSendData, ref htRecvData); + string sFlag = "9"; + + if (iRet == BaseCom.OK) + { + if (htRecvData["RES_CD"].ToString() == "00") + { + sFlag = "2"; + } + } + UpdateTableSend(ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ, sFlag, htSendData); + } + + } + #endregion 10 - 유해 상품 읽음 전송 + + #region 11 - 온도정보 조회 + // 11 - 온도정보 + if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT039), "0") == "1") + { + string TempURL = string.Empty; + + if (m_sTempURL.Length > 100) + { + TempURL = CmUtil.MidH(m_sTempURL, 31, 100).Trim(); + + sRespData = string.Empty; + + if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.CN) + { + if (m_cPosStatus.Base.StoreNo.Length >= 7) + sReqData = string.Format("COMP_CD=CP&BRAND_CD={0}&STORE_CD={1}", m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.StoreNo.Substring(2, 5)); + else + sReqData = string.Format("COMP_CD=CP&BRAND_CD={0}&STORE_CD={1}", m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.StoreNo); + // 중국 http://si1.paris.co.kr/posLink?COMP_CD=CP&BRAND_CD=5000&STORE_CD=00001 + } + else + { + if (m_cPosStatus.Base.StoreNo.Length >= 7) + sReqData = string.Format("COMP_CD={0}&BRAND_CD={1}&STORE_CD={2}", m_cPosStatus.Base.CmpCd.Substring(0, 2), m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.StoreNo.Substring(2, 5)); + else + sReqData = string.Format("COMP_CD={0}&BRAND_CD={1}&STORE_CD={2}", m_cPosStatus.Base.CmpCd.Substring(0, 2), m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.StoreNo); + //iRet = this.HttpGET_SendReceive("http://si1.paris.co.kr", "/posLink", "COMP_CD=PC&BRAND_CD=002&STORE_CD=17496", PosConst.ENCODING_FLAG.UTF, ref sRespData); + //iRet = this.HttpGET_SendReceive("http://si1.paris.co.kr", "/posLink", sReqData, PosConst.ENCODING_FLAG.UTF, ref sRespData); + //iRet = this.HttpGET_SendReceive("http://si1.paris.co.kr", "/posLink", "COMP_CD=PC&BRAND_CD=002&STORE_CD=17859", PosConst.ENCODING_FLAG.UTF, ref sRespData); + } + iRet = this.HttpGET_SendReceive(TempURL, string.Empty, sReqData, PosConst.ENCODING_FLAG.UTF, ref sRespData); + if (iRet == BaseCom.OK) + { + sReturn = m_cCheckOverDetail.SelectStoreTempInfo(sRespData); + } + } + } + #endregion + + #region 12 - BR팝업 업무 처리 + if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR) + BrPopUpBiz(); + #endregion + + #region 13 - LOG 전송 처리 + { + // 전문 생성 + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.POS_LOGFILE_REQ, new string[] { PosConst.POS_LOGFILE_REQ_TYPE.LOGFILE_REQ, "" }); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.PayInqPort), + (int)5000, htSendData, ref htRecvData); + if(iRet == BaseCom.OK) + { + // 전송할 LOG 데이터 있음 + if(htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.RES_CD].ToString() == "00") + { + string sFileNm = ""; + + iRet = UploadLogFileProc(htRecvData, ref sFileNm); + + if(iRet == BaseCom.OK) + { + // Upload 성공 + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.POS_LOGFILE_REQ, new string[] { PosConst.POS_LOGFILE_REQ_TYPE.LOGFILE_UPLOAD, htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.LOG_DT].ToString() }); + } + else if(iRet == BaseCom.NG1) + { + // Upload 파일 존재하지 않음 + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.POS_LOGFILE_REQ, new string[] { PosConst.POS_LOGFILE_REQ_TYPE.NO_LOGFILE, htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.LOG_DT].ToString() }); + } + else + { + // Upload 실패 + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.POS_LOGFILE_REQ, new string[] { PosConst.POS_LOGFILE_REQ_TYPE.LOGFILE_UPLOAD_FAIL, htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.LOG_DT].ToString() }); + } + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.PayInqPort), + (int)5000, htSendData, ref htRecvData); + } + } + } + #endregion 13 - LOG 전송 처리 + + //17.08.22 dkshin SS 해피오더 + #region 14 - SS 해피오더 자동 처리 + //#20171124 해당 옵션 웹에서 등록 안한 경우 동작 안하도록 수정 start + //기존 + //if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0") + //변경 + if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0" && + PosMstManager.GetPosOption(POS_OPTION.OPT048) != "") + //#20171124 해당 옵션 웹에서 등록 안한 경우 동작 안하도록 수정 end + { + SSHappyOrderAutoProcess(); + } + #endregion + + //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 start + #region 해피오더 실시간 재고 알람 + + //**************************************************************************************** + //WEB에서 재고 미등록 상태일 때 포스로 Y값을 내려주고 Y로 내려오면 판매화면 상단에 깜빡이는 패널 생성해줌. + //10분마다 조회하고 1분동안 패널 표시해줌 + //**************************************************************************************** + if (PosMstManager.GetPosOption(POS_OPTION.OPT518) == "1") + { + //// 타이머시작 + //iInventoryDispCnt = iInventoryDispCnt + 1; + //// 타이머 전역변수 (초) + //m_cPosStatus.Sale.HappyOrderInventoryTime = iInventoryDispCnt.ToString(); + //// (처음한번)실시간재고알람Y/N 읽어오기 + //if (iInventoryDispCnt == 0) + //{ + // HappyOrderInventoryAlram(); + //} + //// (10분마다)실시간재고알람Y/N 읽어오기 + //else if (iInventoryDispCnt >= 60 * 10) + //{ + // iInventoryDispCnt = 0; + // HappyOrderInventoryAlram(); + //} + + HappyOrderInventoryAlram(); + } + + #endregion + //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 end + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.ERROR_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception in NetworkCheckOver Thread" + ex.Message); + } + + int nNowSleepTerm = 0; + while (nNowSleepTerm < m_ThreadSleepTerm) + { + if (m_NetworkCheckOverRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + if (iSubCount_1 == 10) iSubCount_1 = 0; + else iSubCount_1++; + if (iSubCount_2 == 30) iSubCount_2 = 0; + else iSubCount_2++; + //System.Threading.Thread.Sleep(m_ThreadSleepTerm); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void UpdateNoticesDateTime(string sMsgDiv, string sMsgType, string sDateTime) + { + try + { + // 업데이트 시간 갱신 + switch (sMsgDiv) + { + case "00": // 긴급 공지 + m_cPosStatus.Base.EmergencyNoticeUpdateDT = sDateTime; + break; + case "01": // 일반 공지 + m_cPosStatus.Base.RegularNoticeUpdateDT = sDateTime; + break; + case "02": // 영업 공지 + if (sMsgType == "1") + { + // 오늘의 할 일 + m_cPosStatus.Base.SaleNoticeUpdateDT1 = sDateTime; + } + else + { + // 식품안전 메시지 + m_cPosStatus.Base.SaleNoticeUpdateDT2 = sDateTime; + } + break; + } + + // PosSaleInfo.ini 저장 + IServiceUs cSaveConfigInfo = (IServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.SAVE_CONFIGINFO); + string sRet = cSaveConfigInfo.Execute(new string[] { PosConst.INI_FILE_NAME.PosSaleInfo }); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + //#20180228 해피오더 주문 건수 조회 기능 에러시 다른 기능 동작 되도록 수정 start + private void HappyOrderCntChk() + { + string sReqData = string.Empty; + string sRespData = string.Empty; + string sReturn = string.Empty; + int iRet = 0; + //grayber@20180306 해피오더 주문가능 상태 추가 start - HashTable 추가 + Hashtable htRspData = null; + //grayber@20180306 해피오더 주문가능 상태 추가 end + try + { + + sReqData = string.Format("storeCode={0}&deviceType=POS", m_cPosStatus.Base.StoreNo); + //sReqData = string.Format("storeCode={0}&deviceType=POS", "11101"); + + + + //#20180605 해피오더 개선 start - 20180618 + //기존 + /* + //grayber@20180306 해피오더 주문가능 상태 추가 start - 공통사용 함수가 아닌 NetworkCheckOver class 의 함수를 사용를 수정 + // 기존 + //iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT, sReqData, ref sRespData); + // 변경 + iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT, sReqData, ref sRespData, ref htRspData); + //grayber@20180306 해피오더 주문가능 상태 추가 end + */ + + //변경 + if (m_cPosStatus.Base.BrandCd == PosConst.MST_BRAND_CODE.PC_PB) + { + iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT_PB, sReqData, ref sRespData, ref htRspData); + } + else + { + iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT, sReqData, ref sRespData, ref htRspData); + } + //#20180605 해피오더 개선 end - 20180618 + + + + if (iRet == BaseCom.OK) + { + //grayber@20180306 해피오더 주문가능 상태 추가 start - 함수 HashTable 값 추가 + //기존 + //sReturn = m_cCheckOverDetail.SelectHappyOrderCountByOrderStatus(JsonConvert.DeserializeObject(sRespData)); + //변경 + sReturn = m_cCheckOverDetail.SelectHappyOrderCountByOrderStatus(JsonConvert.DeserializeObject(sRespData) , ref htRspData); + //grayber@20180306 해피오더 주문가능 상태 추가 end + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + //#20180228 해피오더 주문 건수 조회 기능 에러시 다른 기능 동작 되도록 수정 end + + #endregion CheckOver Main + + #region 공지사항 조회 - 서브 업무 처리 + private void DoSubProc(DataTable dtList) + { + int iRet = UserCom.NG; + try + { + for (int nLoop = 0; nLoop < dtList.Rows.Count; nLoop++) + { + DataRow dr = dtList.Rows[nLoop]; + + switch(CmUtil.GetDataRowStr(dr, "MSG_CODE")) + { + case "01": // 점주/알바 모드 + iRet = InsertIntoNOTICE_MNG(new string[] { "01", CmUtil.GetDataRowStr(dr, "VALUE_1"), CmUtil.GetDataRowStr(dr, "VALUE_2") }); + break; + case "02": // 위해상품 메시지 등록 + if (CmUtil.GetDataRowInt(dr, "VALUE_1") > 0) + { + iRet = ProcHarmfulItemMsgReg(); + } + break; + case "03": // 입고등록 확인 + iRet = InsertIntoNOTICE_MNG(new string[] { "03", CmUtil.GetDataRowStr(dr, "VALUE_3"), CmUtil.GetDataRowStr(dr, "VALUE_4") }); + break; + case "04": // 배송 정보 + iRet = InsertIntoNOTICE_MNG(new string[] { "04", CmUtil.GetDataRowStr(dr, "VALUE_3"), CmUtil.GetDataRowStr(dr, "VALUE_4") }); + break; + case "05": // 기념일 배송 + iRet = InsertIntoNOTICE_MNG(new string[] { "05", CmUtil.GetDataRowStr(dr, "VALUE_1") }); + break; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private int ProcHarmfulItemMsgReg() + { + int iRet = BaseCom.NG; + Hashtable htSendData = null; + Hashtable htRecvData = null; + try + { + // 전문 생성 + htSendData = this.MakeMessageSendingReqData(ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ, null); + + // 전문 요청 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.SysInfoPort), + (int)5000, htSendData, ref htRecvData); + + if (iRet == BaseCom.OK) + { + if (htRecvData[Column.IQ_FOODMSG_RSP.DATA.RES_CD].ToString() == "00") + { + // DB Insert + iRet = InsertIntoNOTICE_MNG(new string[] { "02", htRecvData[Column.IQ_FOODMSG_RSP.DATA.ISPCTN_ORGAN_CD].ToString(), htRecvData[Column.IQ_FOODMSG_RSP.DATA.DOC_NO].ToString() + , htRecvData[Column.IQ_FOODMSG_RSP.DATA.SEQ].ToString(), htRecvData[Column.IQ_FOODMSG_RSP.DATA.ITEM_NM].ToString() + , htRecvData[Column.IQ_FOODMSG_RSP.DATA.BAR_CD].ToString() }); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + #endregion + + #region 공지사항 조회 응답 中 공지사항구분 필드 파싱 처리 + private DataTable ParseMsgValueField(string sMsgValue) + { + DataTable dtMsgValue = null; + + try + { + dtMsgValue = new DataTable(); + dtMsgValue.Columns.Add(new DataColumn("MSG_CODE", typeof(string))); + dtMsgValue.Columns.Add(new DataColumn("VALUE_1", typeof(string))); + dtMsgValue.Columns.Add(new DataColumn("VALUE_2", typeof(string))); + dtMsgValue.Columns.Add(new DataColumn("VALUE_3", typeof(string))); + dtMsgValue.Columns.Add(new DataColumn("VALUE_4", typeof(string))); + dtMsgValue.Clear(); + + string[] sRows = sMsgValue.Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); + foreach(string sRow in sRows) + { + string[] sColumns = sRow.Split(new string[] { "|" }, StringSplitOptions.None); + + DataRow drNew = dtMsgValue.NewRow(); + drNew["MSG_CODE"] = sColumns[0]; + drNew["VALUE_1"] = sColumns[1]; + drNew["VALUE_2"] = sColumns[2]; + drNew["VALUE_3"] = sColumns[3]; + drNew["VALUE_4"] = sColumns[4]; + dtMsgValue.Rows.Add(drNew); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return dtMsgValue; + } + #endregion + + #region IRT 요청 Data 생성 + private Hashtable MakeMessageSendingReqData(string sInqType, string[] sParams) + { + Hashtable htData = new Hashtable(); + + try + { + if (sInqType == ItemConst.IRT_INQ_TYPE.MSG_TRANSFER_REQ) + { + // 01 - INQ 종별("05":공지메시지) + htData.Add(Column.IQ_MSG_SND_REQ.DATA.INQ_TYPE, sInqType); + // 02 - 영업 일자 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.SALE_DT, m_cPosStatus.Base.SaleDate); + // 03 - 점포 코드 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo); + // 04 - 사용자 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.USER_ID, m_cPosStatus.Base.CashierNo); + // 05 - 반환용 메시지 코드 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.MSG_CD, string.Empty); + // 통신서버 측 조회 쿼리가 무거워서 일반과 긴급을 나눔(2017.07.28) + //// 06 - 메시지 구분("0":일반/긴급공지, "1":영업공지) + // 06 - 메시지 구분("0":일반공지, "1":영업공지, "2":긴급공지) + htData.Add(Column.IQ_MSG_SND_REQ.DATA.MSG_DIV, sParams[0]); + // 07 - 업데이트 일자1 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.UPD_DT1, sParams[1]); + // 08 - 업데이트 일자2 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.UPD_DT2, sParams[2]); + // 09 - 업데이트 일자3 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.UPD_DT3, sParams[3]); + // 10 - 업데이트 일자4 + htData.Add(Column.IQ_MSG_SND_REQ.DATA.UPD_DT4, sParams[4]); + } + else if(sInqType == ItemConst.IRT_INQ_TYPE.NOTICE_INQ_REQ) + { + // 01 - INQ 종별("49":공지사항) + htData.Add(Column.IQ_NOTICE_INQ_REQ.DATA.INQ_TYPE, sInqType); + // 02 - 점포 코드 + htData.Add(Column.IQ_NOTICE_INQ_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo); + // 03 - 영업 일자 + htData.Add(Column.IQ_NOTICE_INQ_REQ.DATA.SALE_DT, m_cPosStatus.Base.SaleDate); + // 04 - POS 번호 + htData.Add(Column.IQ_NOTICE_INQ_REQ.DATA.POS_NO, m_cPosStatus.Base.PosNo); + // 05 - 메시지 등록 코드 + htData.Add(Column.IQ_NOTICE_INQ_REQ.DATA.MSG_VALUE, ""); + // 06 - 응답 코드 + htData.Add(Column.IQ_NOTICE_INQ_REQ.DATA.RES_CD, "00"); + } + else if(sInqType == ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ) + { + // 01 - INQ 종별("20":공지메시지) + htData.Add(Column.IQ_FOODMSG_REQ.DATA.INQ_TYPE, sInqType); + // 02 - 영업일자 + htData.Add(Column.IQ_FOODMSG_REQ.DATA.SALE_DT, m_cPosStatus.Base.SaleDate); + // 03 - 점포코드 + htData.Add(Column.IQ_FOODMSG_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo); + // 04 - 요청구분 + htData.Add(Column.IQ_FOODMSG_REQ.DATA.REQ_DIV, "1"); + // 05 - 검사 기간코드 + htData.Add(Column.IQ_FOODMSG_REQ.DATA.ISPCTN_ORGAN_CD, ""); + // 06 - 문서번호 + htData.Add(Column.IQ_FOODMSG_REQ.DATA.DOC_NO, ""); + // 07 - 일련번호 + htData.Add(Column.IQ_FOODMSG_REQ.DATA.SEQ, ""); + + } + else if(sInqType == ItemConst.IRT_INQ_TYPE.POS_LOGFILE_REQ) + { + // 01 - INQ 종별("69":POS 로그 파일 송신요청) + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.INQ_TYPE, sInqType); + // 02 - 점포코드 + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo); + // 03 - POS번호 + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.POS_NO, m_cPosStatus.Base.PosNo); + // 04 - 요청 LOG 일자 + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.LOG_DT, sParams[1]); + // 05 - 요청구분("1":로그요청 확인, "2":POS수신완료, "3":FTP송신완료) + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.REQ_DIV, sParams[0]); + // 06 - 전송할 FTP PATH + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.FTP_PATH, ""); + // 07 - FILE_NM + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.FILE_NM, ""); + // 08 - 응답코드 + htData.Add(Column.IQ_POS_LOGFILE_REQ.DATA.RES_CD, "00"); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + private Hashtable MakePOSMASTERLISTReqData() + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - INQ 종별 + htData.Add(Column.IQ_POSMASTERLIST_REQ.DATA.INQ_TYPE, "44"); + // 02 - 다운 구분 + htData.Add(Column.IQ_POSMASTERLIST_REQ.DATA.DOWN_DIV, "1"); + // 03 - 다운 마스터 항목 + htData.Add(Column.IQ_POSMASTERLIST_REQ.DATA.MASTER_LIST, ""); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + #endregion + + #region DB 관련 처리 + private int InsertIntoNOTICE_MNG(string[] aParam) + { + int iRet = UserCom.NG; + string sUpdQuery = string.Empty; + string sInsQuery = string.Empty; + string sSeqQuery = string.Empty; + string sCntQuery = string.Empty; + string sSql = string.Empty; + + DataTable dtData = null; + + try + { + sUpdQuery = " UPDATE POSLOG..ETC_NOTICE_MNG "; + sUpdQuery += " SET VAL_ENTRY_01 = N'{0}' "; + sUpdQuery += " , VAL_ENTRY_02 = N'{1}' "; + sUpdQuery += " , VAL_ENTRY_03 = N'{2}' "; + sUpdQuery += " , VAL_ENTRY_04 = N'{3}' "; + sUpdQuery += " , VAL_ENTRY_05 = N'{4}' "; + sUpdQuery += " , VAL_ENTRY_06 = N'{5}' "; + sUpdQuery += " , VAL_ENTRY_07 = N'{6}' "; + sUpdQuery += " , VAL_ENTRY_08 = N'{7}' "; + sUpdQuery += " , VAL_ENTRY_09 = N'{8}' "; + sUpdQuery += " , VAL_ENTRY_10 = N'{9}' "; + sUpdQuery += " , SEND_FLAG = '0' "; + sUpdQuery += " WHERE CMP_CD = '{10}' "; + sUpdQuery += " AND STOR_CD = '{11}' "; + sUpdQuery += " AND POS_NO = '{12}' "; + sUpdQuery += " AND MSG_DIV = '{13}' "; + + sSeqQuery = " SELECT MAX(ISNULL(SEQ, 0)) AS SEQ "; + sSeqQuery += " FROM POSLOG..ETC_NOTICE_MNG "; + sSeqQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sSeqQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sSeqQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' "; + sSeqQuery += " AND MSG_DIV = '02' "; + + sCntQuery = " SELECT COUNT(1) AS CNT "; + sCntQuery += " FROM POSLOG..ETC_NOTICE_MNG "; + sCntQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sCntQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sCntQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' "; + sCntQuery += " AND MSG_DIV = '{0}' "; + + sInsQuery = " INSERT INTO POSLOG..ETC_NOTICE_MNG "; + sInsQuery += " ( CMP_CD, STOR_CD, POS_NO, MSG_DIV, SEQ "; + sInsQuery += " , VAL_ENTRY_01, VAL_ENTRY_02, VAL_ENTRY_03, VAL_ENTRY_04, VAL_ENTRY_05 "; + sInsQuery += " , VAL_ENTRY_06, VAL_ENTRY_07, VAL_ENTRY_08, VAL_ENTRY_09, VAL_ENTRY_10 "; + sInsQuery += " , REG_DATE, UPD_DATE, SEND_FLAG ) "; + sInsQuery += " VALUES "; + sInsQuery += " ( '{0}', '{1}', '{2}', '{3}', {4} "; + sInsQuery += " , N'{5}', N'{6}', N'{7}', N'{8}', N'{9}' "; + sInsQuery += " , N'{10}', N'{11}', N'{12}', N'{13}', N'{14}' "; + sInsQuery += " , '{15}', '{16}', '0' ) "; + + switch(aParam[0]) + { + case "01": // 점주/알바 모드 + case "03": // 입고등록 확인 + case "04": // 배송정보 + sSql = string.Format(sCntQuery, aParam[0]); + sqlDb.DBDataTableSelect(sSql, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + if(dtData != null && dtData.Rows.Count > 0) + { + if(CmUtil.GetDataRowInt(dtData.Rows[0], "CNT") == 0) + { + sSql = string.Format(sInsQuery, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, aParam[0], "1" + , aParam[1], aParam[2], "", "", "" + , "", "", "", "", "" + , DateTime.Now.ToString("yyyyMMddHHmmss"), ""); + } + else + { + sSql = string.Format(sUpdQuery, aParam[1], aParam[2], "", "", "", "", "", "", "", "" + , m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, aParam[0]); + } + } + break; + case "02": // 위해상품 메시지 등록 + int iSeq = 0; + + sqlDb.DBDataTableSelect(sSeqQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + if(dtData != null && dtData.Rows.Count > 0) + { + iSeq = CmUtil.GetDataRowInt(dtData.Rows[0], "SEQ") + 1; + } + + sSql = string.Format(sInsQuery, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, aParam[0], iSeq + , aParam[1], aParam[2], aParam[3], aParam[4], aParam[5] + , "", "", "", "", "" + , DateTime.Now.ToString("yyyyMMddHHmmss"), ""); + break; + case "05": // 기념일 배송 + sSql = string.Format(sCntQuery, aParam[0]); + sqlDb.DBDataTableSelect(sSql, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + if(dtData != null && dtData.Rows.Count > 0) + { + if(CmUtil.GetDataRowInt(dtData.Rows[0], "CNT") == 0) + { + sSql = string.Format(sInsQuery, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, aParam[0], "1" + , aParam[1], "", "", "", "" + , "", "", "", "", "" + , DateTime.Now.ToString("yyyyMMddHHmmss"), ""); + } + else + { + sSql = string.Format(sUpdQuery, aParam[1], "", "", "", "", "", "", "", "", "" + , m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, aParam[0]); + } + } + + break; + } + + iRet = sqlDb.DBExecuteNonQuery(sSql, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + private int InsertIntoEMG_NOTE(Hashtable htRecvData) + { + int iRet = UserCom.NG; + //string sUpdQuery = string.Empty; + //string sInsQuery = string.Empty; + string sQuery = string.Empty; + string sSql = string.Empty; + + try + { + //sUpdQuery = " UPDATE POSMST..MST_EMG_NOTE "; + //sUpdQuery += " SET MSG_TITLE = '{0}' "; + //sUpdQuery += " , MSG_CONTENTS = '{1}' "; + //sUpdQuery += " , POS_EXEC_TYPE = '{2}' "; + //sUpdQuery += " , POPUP_YN = '{3}' "; + //sUpdQuery += " , FNSH_HOUR = '{4}' "; + //sUpdQuery += " , READ_YN = '{5}' "; + //sUpdQuery += " , DOWN_YN = '{14}' "; + //sUpdQuery += " , UPD_DT = '{6}' "; + //sUpdQuery += " WHERE CMP_CD = '{7}' "; + //sUpdQuery += " AND STOR_CD = '{8}' "; + //sUpdQuery += " AND POS_NO = '{9}' "; + //sUpdQuery += " AND START_DT = '{10}' "; + //sUpdQuery += " AND MSG_CODE = '{11}' "; + //sUpdQuery += " AND MSG_DIV = '{12}' "; + //sUpdQuery += " AND MSG_TYPE = '{13}' "; + + //sInsQuery = "INSERT INTO POSMST..MST_EMG_NOTE "; + //sInsQuery += " ( CMP_CD, STOR_CD, POS_NO, START_DT, MSG_CODE "; + //sInsQuery += " , MSG_DIV, MSG_TYPE, MSG_TITLE, MSG_CONTENTS, POS_EXEC_TYPE "; + //sInsQuery += " , POPUP_YN, FNSH_HOUR, READ_YN, DOWN_YN, UPD_DT, REG_DT ) "; + //sInsQuery += "VALUES "; + //sInsQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}' "; + //sInsQuery += " , '{5}', '{6}', '{7}', '{8}', '{9}' "; + //sInsQuery += " , '{10}', '{11}', '{12}', '{13}', '{14}', '{15}' ) "; + + sQuery += "UPDATE POSMST..MST_EMG_NOTE "; + sQuery += " SET MSG_TITLE = N'{7}' "; + sQuery += " , MSG_CONTENTS = N'{8}' "; + sQuery += " , POS_EXEC_TYPE = '{9}' "; + sQuery += " , POPUP_YN = '{10}' "; + sQuery += " , FNSH_HOUR = '{11}' "; + sQuery += " , READ_YN = '{12}' "; + sQuery += " , DOWN_YN = '{13}' "; + sQuery += " , UPD_DT = '{14}' "; + sQuery += " , USE_YN = '{15}' "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND STOR_CD = '{1}' "; + sQuery += " AND POS_NO = '{2}' "; + sQuery += " AND START_DT = '{3}' "; + sQuery += " AND MSG_CODE = '{4}' "; + sQuery += " AND MSG_DIV = '{5}' "; + sQuery += " AND MSG_TYPE = '{6}' "; + sQuery += "IF @@ROWCOUNT = 0 "; + sQuery += "INSERT INTO POSMST..MST_EMG_NOTE "; + sQuery += " ( CMP_CD, STOR_CD, POS_NO, START_DT, MSG_CODE "; + sQuery += " , MSG_DIV, MSG_TYPE, MSG_TITLE, MSG_CONTENTS, POS_EXEC_TYPE "; + sQuery += " , POPUP_YN, FNSH_HOUR, READ_YN, DOWN_YN, REG_DT "; + sQuery += " , USE_YN ) "; + sQuery += "VALUES "; + sQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}' "; + sQuery += " , '{5}', '{6}', N'{7}', N'{8}', '{9}' "; + sQuery += " , '{10}', '{11}', '{12}', '{13}', '{14}' "; + sQuery += " , '{15}' ) "; + + //sSql = string.Format(sUpdQuery, + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TITLE], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CONT], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.POS_EXEC_TYPE], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_POPUP], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.FNSH_DT], + // "0", + // DateTime.Now.ToString("yyyyMMddHHmmss"), + // m_cPosStatus.Base.CmpCd, + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.STOR_CD], + // m_cPosStatus.Base.PosNo, + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.START_DT], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CD], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV], + // htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE], + // "0"); + //iRet = sqlDb.DBExecuteNonQuery(sSql, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + //if (iRet != UserCom.OK) + //{ + // sSql = string.Format(sInsQuery, + //m_cPosStatus.Base.CmpCd, htRecvData[Column.IQ_MSG_SND_RSP.DATA.STOR_CD], m_cPosStatus.Base.PosNo, htRecvData[Column.IQ_MSG_SND_RSP.DATA.START_DT], htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CD], htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV], + //htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE], htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TITLE], htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CONT], htRecvData[Column.IQ_MSG_SND_RSP.DATA.POS_EXEC_TYPE], + //htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_POPUP], htRecvData[Column.IQ_MSG_SND_RSP.DATA.FNSH_DT], "0", "0", DateTime.Now.ToString("yyyyMMddHHmmss"), DateTime.Now.ToString("yyyyMMddHHmmss")); + + // iRet = sqlDb.DBExecuteNonQuery(sSql, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + //} + sSql = string.Format(sQuery, + m_cPosStatus.Base.CmpCd, + htRecvData[Column.IQ_MSG_SND_RSP.DATA.STOR_CD], + m_cPosStatus.Base.PosNo, + htRecvData[Column.IQ_MSG_SND_RSP.DATA.START_DT], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CD], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_DIV], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TYPE], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_TITLE], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_CONT], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.POS_EXEC_TYPE], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.MSG_POPUP], + htRecvData[Column.IQ_MSG_SND_RSP.DATA.FNSH_DT], + "0", + "0", + DateTime.Now.ToString("yyyyMMddHHmmss"), + htRecvData[Column.IQ_MSG_SND_RSP.DATA.USE_YN]); + + iRet = sqlDb.DBExecuteNonQuery(sSql, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + private int UpdateMasterTableList(string[] arList) + { + int iRet = UserCom.NG; + string sSql = string.Empty; + + try + { + sSql = "UPDATE POSMST..MST_POSMST_TABLE_LST "; + sSql += " SET EMG_DIV = '1' "; + sSql += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sSql += " WHERE 1 = 1 "; + sSql += " AND MST_TBL_CD IN ("; + + int i = 0; + foreach(string sMasterCd in arList) + { + if (i == 0) + { + sSql += " '" + sMasterCd + "'"; + } + else + { + sSql += ", '" + sMasterCd + "'"; + } + + i++; + } + + sSql += " )"; + + iRet = sqlDb.DBExecuteNonQuery(sSql, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return iRet; + } + + /// + /// 전송 내역 조회 + /// + /// 전문타입 + /// + private DataTable SelectSendDataList(string sInqType) + { + string sSQL = string.Empty; + + string sSerchTableName = ""; + string sSearchDate = ""; + string sCoumn = ""; + + DataTable dtData = null; + + try + { + + //if (sInqType == ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ) //유해 상품이면.... + //{ + // sSQL = " SELECT STOR_CD, '2' AS 'REQ_DIV', '0' AS 'DATA_CNT', VAL_ENTRY_01 AS 'ISPCTN_ORGAN_CD', VAL_ENTRY_02 AS 'DOC_NO' "; + // sSQL += " ,VAL_ENTRY_03 AS 'SEQ', VAL_ENTRY_04 AS '', VAL_ENTRY_05 AS 'ITEM_NM', VAL_ENTRY_06 AS 'BAR_CD','' AS RES_CD "; + // sSQL += " ,CMP_CD, POS_NO,MSG_DIV,SEQ AS 'DISP_SEQ' "; + // sSQL += " FROM POSLOG.dbo.ETC_NOTICE_MNG"; + // sSQL += " WHERE CMP_CD = '{0}'"; + // sSQL += " AND STOR_CD = '{1}'"; + // sSQL += " AND POS_NO = '{2}'"; + // sSQL += " AND MSG_DIV IN ('02') "; + // sSQL += " AND SUBSTRING(REG_DATE,1,8) BETWEEN CONVERT(VARCHAR,GETDATE() - 31,112) AND CONVERT(VARCHAR,GETDATE(),112) "; + // sSQL += " AND SEND_FLAG IN ('1', '9') "; + // sSQL += " ORDER BY SEND_FLAG "; + + // if (sSQL != "") + // { + // sSQL = string.Format(sSQL, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo); + // sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + // } + //} + //else + //{ + sSQL = " SELECT TOP 1 '{0}' AS INQ_TYPE, {1} "; + sSQL += " FROM {2} "; + sSQL += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sSQL += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + + if (sInqType == ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ) //유해상품이면 + { + sSQL += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' "; + sSQL += " AND MSG_DIV IN ('02') "; + sSQL += " AND SUBSTRING(REG_DATE,1,8) BETWEEN CONVERT(VARCHAR,GETDATE() - 31,112) AND CONVERT(VARCHAR,GETDATE(),112) "; + sSQL += " AND SEND_FLAG IN ('1', '9') "; + sSQL += " ORDER BY SEND_FLAG "; + } + else + { + sSQL += " AND {3} BETWEEN CONVERT(VARCHAR,GETDATE()-2,112) AND CONVERT(VARCHAR,GETDATE(),112) "; //-2일 전부터 + sSQL += " AND SEND_YN <> '1' "; + sSQL += " ORDER BY SEND_YN "; + } + + + + if (sInqType == ItemConst.IRT_INQ_TYPE.STOR_VISIT) //방문,제조기사 타임바코드 + { + sCoumn = " STOR_CD,VISIT_DT,POS_NO,MNG_CARD_NO,VISIT_START_HOUR,VISIT_FNSH_HOUR,VISIT_USER_ID,JOB_TYPE,PCSMM_SEND_YN,MSR_DIV,ORG_BAR_CD_NO,'' AS SEND_YN "; + sSerchTableName = "POSLOG.dbo.TR_STORE_VISIT "; + sSearchDate = "VISIT_DT"; + } + else if (sInqType == ItemConst.IRT_INQ_TYPE.EMP_COMMUTE) //근태 + { + sCoumn = " STOR_CD,EMP_NO,WORK_DT,ROS_CD,SEQ,HOUR_STAMP,ROS_HOUR,'' AS RES_CD "; + sSerchTableName = "POSLOG.dbo.TR_STOR_EMP "; + sSearchDate = "WORK_DT"; + } + else if (sInqType == ItemConst.IRT_INQ_TYPE.ONWER_MODE) //점주,알바 모드 + { + sCoumn = " STOR_CD,WORK_DT,WORK_HOUR,EMP_DIV,POS_NO,'' AS RES_CD "; + sSerchTableName = "POSLOG.dbo.TR_STOR_EMP_WORK "; + sSearchDate = "WORK_DT"; + } + else if (sInqType == ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ) //유해 상품이면.... + { + sCoumn = " STOR_CD, '2' AS REQ_DIV, '0' AS DATA_CNT, VAL_ENTRY_01 AS ISPCTN_ORGAN_CD, VAL_ENTRY_02 AS DOC_NO "; + sCoumn += ",VAL_ENTRY_03 AS SEQ, VAL_ENTRY_04 AS ITEM_NM, VAL_ENTRY_05 AS BAR_CD,'' AS RES_CD "; + //sCoumn += " ,POS_NO,MSG_DIV,SEQ AS 'DISP_SEQ' "; + sSerchTableName = "POSLOG.dbo.ETC_NOTICE_MNG "; + sSearchDate = ""; + } + else + { + sSQL = ""; + } + + //쿼리 실행! + if (sSQL != "") + { + sSQL = string.Format(sSQL, sInqType, sCoumn, sSerchTableName, sSearchDate); + sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + } + } + //} + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return dtData; + } + + /// + /// 전송 플래그 업데이트 + /// + /// 전송구분 + /// 파라미터 + /// + private int UpdateTableSend(string sInqType, string sFlag, Hashtable htSendData) + { + int iRet = UserCom.NG; + string sSQL = string.Empty; + + try + { + if (sInqType == ItemConst.IRT_INQ_TYPE.STOR_VISIT) //방문,제조기사 타임바코드 + { + sSQL = " UPDATE POSLOG.dbo.TR_STORE_VISIT SET SEND_YN = '" + sFlag + "'"; + sSQL += " WHERE 1 = 1 "; + sSQL += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sSQL += " AND STOR_CD = '" + htSendData["STOR_CD"] + "'"; + sSQL += " AND VISIT_DT = '" + htSendData["VISIT_DT"] + "'"; + sSQL += " AND POS_NO = '" + htSendData["POS_NO"] + "'"; + sSQL += " AND MNG_CARD_NO = '" + htSendData["MNG_CARD_NO"] + "'"; + sSQL += " AND VISIT_START_HOUR = '" + htSendData["VISIT_START_HOUR"] + "'"; + + } + else if (sInqType == ItemConst.IRT_INQ_TYPE.EMP_COMMUTE) //근태 + { + sSQL = " UPDATE POSLOG.dbo.TR_STOR_EMP SET SEND_YN = '" + sFlag + "'"; + sSQL += " WHERE 1 = 1 "; + sSQL += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sSQL += " AND STOR_CD = '" + htSendData["STOR_CD"] + "'"; + sSQL += " AND EMP_NO = '" + htSendData["EMP_NO"] + "'"; + sSQL += " AND WORK_DT = '" + htSendData["WORK_DT"] + "'"; + sSQL += " AND ROS_CD = '" + htSendData["ROS_CD"] + "'"; + sSQL += " AND SEQ = '" + htSendData["SEQ"] + "'"; + sSQL += " AND HOUR_STAMP = '" + htSendData["HOUR_STAMP"] + "'"; + + } + else if (sInqType == ItemConst.IRT_INQ_TYPE.ONWER_MODE) //점주,알바 모드 + { + sSQL = " UPDATE POSLOG.dbo.TR_STOR_EMP_WORK SET SEND_YN = '" + sFlag + "'"; + sSQL += " WHERE 1 = 1 "; + sSQL += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sSQL += " AND STOR_CD = '" + htSendData["STOR_CD"] + "'"; + sSQL += " AND WORK_DT = '" + htSendData["WORK_DT"] + "'"; + sSQL += " AND WORK_HOUR = '" + htSendData["WORK_HOUR"] + "'"; + sSQL += " AND EMP_DIV = '" + htSendData["EMP_DIV"] + "'"; + sSQL += " AND POS_NO = '" + htSendData["POS_NO"] + "'"; + } + else if (sInqType == ItemConst.IRT_INQ_TYPE.HARMFUL_ITEM_MSG_REQ) //유해상품 + { + sSQL = " UPDATE POSLOG.dbo.ETC_NOTICE_MNG SET SEND_FLAG = '" + sFlag + "'"; + sSQL += " WHERE 1 = 1 "; + sSQL += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sSQL += " AND STOR_CD = '" + htSendData["STOR_CD"] + "'"; + sSQL += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; + sSQL += " AND MSG_DIV = '02'"; + sSQL += " AND VAL_ENTRY_01 = '" + htSendData["ISPCTN_ORGAN_CD"] + "'"; + sSQL += " AND VAL_ENTRY_02 = '" + htSendData["DOC_NO"] + "'"; + sSQL += " AND VAL_ENTRY_03 = '" + htSendData["SEQ"] + "'"; + } + else + { + sSQL = ""; + } + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return iRet; + } + + + #endregion + + #region 통신서버 전송 모듈 + /// + /// IRT Json Send/Recv + /// + /// + /// + /// Time to keep the connection(ms) + /// + /// + /// + private int IRTSendReceive(string sSvrIp, int iPort, int iTimeout, Hashtable htSendData, ref Hashtable htRecvData) + { + int nStat = BaseCom.NG; + + try + { + // 전송 데이터를 JSON 객체로 변환 + string sJsonSendData = JsonConvert.SerializeObject(htSendData); + // JSON string 길이를 구하기 위해 byte 변환 + Byte[] arTempData = Encoding.UTF8.GetBytes(sJsonSendData); + // 통신헤더 전문 생성 + string sCommHeader = ItemColumn.MakeCommHeader(arTempData.Length, ItemConst.COMM_MSG_TYPE.POSIRT); + + string sJsonRecvData = string.Empty; + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + CmUtil.RPadH("[SEND" + ":" + sSvrIp + ":" + iPort, 27) + "] " + sCommHeader + sJsonSendData); + + nStat = SendReceiveData(sSvrIp, iPort, iTimeout, sCommHeader + sJsonSendData, ref sJsonRecvData); + + if (sJsonRecvData != null && sJsonRecvData != "") + { + string sRecvCommHeader = sJsonRecvData.Substring(0, TcpSocket.COMM_HEAD_LEN); + string sRecvData = sJsonRecvData.Substring(TcpSocket.COMM_HEAD_LEN); + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + CmUtil.RPadH("[RECV" + ":" + sSvrIp + ":" + iPort, 27) + "] " + sJsonRecvData); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nStat; + } + /// + /// IRT Send/Receive + /// + /// + /// + /// Time to keep the connection(ms) + /// + /// + /// + private int SendReceiveData(string sSvrIp, int iPort, int iTimeout, string sSendData, ref string sRecvData) + { + int nStat = BaseCom.NG; + int nRecvLen = 0; + + try + { + m_sendSocket = new TcpSocket(sSvrIp, iPort); + + // Data Send & Receive + nRecvLen = m_sendSocket.SendReceiveData(sSendData, ref sRecvData, iTimeout); + + if(nRecvLen > 0) + { + nStat = BaseCom.OK; + } + else + { + sRecvData = string.Empty; + nStat = BaseCom.NG; + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + finally + { + if (m_sendSocket != null) m_sendSocket.Close(); + } + + return nStat; + } + #endregion + + #region Http 전송 모듈 + /// + /// 해피오더 GET방식 Request + /// + /// URL + /// 메시지 타입 + /// 요청Data + /// 응답Data(Json) + /// + ///grayber@20180306 해피오더 주문가능 상태 추가 start - 함수 인자 추가 NetworkCheckOver.HttpJsonGET_SendReceive 함수 HashTable 인자추가 + /// 기존 + /// public int HttpJsonGET_SendReceive(string sUrl, string sWorkType, string sReqData, ref string sRespJsonData) + /// 변경 + public int HttpJsonGET_SendReceive(string sUrl, string sWorkType, string sReqData, ref string sRespJsonData, ref Hashtable htRspData) + //grayber@20180306 해피오더 주문가능 상태 추가 end + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + + try + { + if (sUrl.Trim() == "") return iRet; + + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType + "?" + sReqData); + req.Method = "GET"; + + using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) + { + Stream stream = resp.GetResponseStream(); + StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("UTF-8")); + sRespString = streamReader.ReadToEnd(); + } + + //#20180228 해피오더 주문 건수 조회 기능 에러시 다른 기능 동작 되도록 수정 start + //건수 조회 응답값 로그 추가 + UserLog.WriteLogFile(UserCom.LOG_DEBUG, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sRespString); + //#20180228 해피오더 주문 건수 조회 기능 에러시 다른 기능 동작 되도록 수정 end + + Hashtable temp = JsonConvert.DeserializeObject(sRespString); + + foreach (string key in temp.Keys) + { + string jsonString = temp[key].ToString(); + if (key.Equals("status")) + { + Hashtable htHeader = JsonConvert.DeserializeObject(jsonString); + if (htHeader["status"].ToString().Equals("200")) + { + iRet = BaseCom.OK; + } + } + //grayber@20180306 해피오더 주문가능 상태 추가 start - deliverySupport 처리 추가 + + // 20180306 수신 데이터 sample + // http://api.celectory.com/api/ // 리얼 + // {"status":{"status":200,"code":"20000","message":"조회 완료","devMessage":"success","moreInfo":null,"orderNum":null},"orderStatusCount":[{"status":"0","count":1,"type":"5"},{"status":"8","count":110,"type":"1"},{"status":"8","count":453,"type":"2"},{"status":"8","count":223,"type":"3"},{"status":"8","count":122,"type":"6"},{"status":"2000","count":2,"type":"5"},{"status":"2008","count":31,"type":"2"},{"status":"2008","count":10,"type":"3"},{"status":"2008","count":46,"type":"6"},{"status":"9007","count":8,"type":"5"},{"status":"9009","count":126,"type":"5"},{"status":"300000","count":42,"type":"1"},{"status":"300000","count":177,"type":"2"},{"status":"300000","count":501,"type":"3"},{"status":"300000","count":279,"type":"5"},{"status":"300000","count":110,"type":"6"}]} + // http://121.254.240.198:8092/api/ // 개발 + // {"status":{"status":200,"code":"20000","message":"조회 완료","devMessage":"success","moreInfo":null,"orderNum":null},"orderStatusCount":[{"status":"8","count":1,"type":"3"},{"status":"2008","count":1,"type":"3"},{"status":"9007","count":3,"type":"5"},{"status":"9009","count":12,"type":"5"},{"status":"300000","count":25,"type":"3"},{"status":"300000","count":8,"type":"5"}],"deliverySupport":"Y"} + + // 기존 + //else + //{ + // sRespJsonData = jsonString; + //} + // 변경 + else if (key.Equals("deliverySupport")) + { + if (CmUtil.IsNull(htRspData)) + { + htRspData = new Hashtable(); + } + htRspData.Add(key.ToString(), temp[key].ToString()); + } + else if (key.Equals("orderStatusCount")) + { + sRespJsonData = jsonString; + } + //grayber@20180306 해피오더 주문가능 상태 추가 end + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + + /// + /// GET방식 Request + /// + /// 서버URL + /// 작업구분 + /// 요청Data + /// JSON String 형태의 응답 데이터 + /// + public int HttpGET_SendReceive(string sUrl, string sWorkType, string sReqData, string sEncodingFlag, ref string sRespData) + { + int iRet = BaseCom.NG; + string sRespString = string.Empty; + StreamReader streamReader = null; + + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType + "?" + sReqData); + req.Method = "GET"; + + using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) + { + Stream stream = resp.GetResponseStream(); + + if (sEncodingFlag == PosConst.ENCODING_FLAG.UTF) + { + streamReader = new StreamReader(stream, Encoding.GetEncoding("UTF-8")); + } + else + { + streamReader = new StreamReader(stream, Encoding.GetEncoding("ks_c_5601-1987")); + } + sRespString = streamReader.ReadToEnd(); + } + + iRet = BaseCom.OK; + + sRespData = sRespString; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.ToString()); + } + + return iRet; + } + #endregion + + #region BR 팝업메세지 처리 + private void BrPopUpBiz() + { + string sSQL = ""; + DataTable dtData = null; + + try + { + sSQL = " SELECT * "; + sSQL += " FROM POSLOG.dbo.ETC_BR_POPUP"; + sSQL += " WHERE CMP_CD = '{0}'"; + sSQL += " AND BRAND_CD = '{1}'"; + sSQL += " AND SALE_DT = '{2}'"; + sSQL += " AND STOR_CD = '{3}'"; + sSQL += " AND POS_NO = '{4}'"; + sSQL += " AND READ_FLAG = '0'"; + sSQL += " AND '{5}' BETWEEN START_TM AND END_TM "; + + sSQL = string.Format(sSQL + , m_cPosStatus.Base.CmpCd + , m_cPosStatus.Base.BrandCd + , DateTime.Now.ToString("yyyyMMdd") + , m_cPosStatus.Base.StoreNo + , m_cPosStatus.Base.PosNo + , DateTime.Now.ToString("HHmmss")); + + sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtData); + + + if (dtData == null || dtData.Rows.Count == 0) + { + //처리없음! + } + else + { + foreach (DataRow dr in dtData.Rows) + { + if (dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0015 || dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0018) + { + ExecuteHostIrt(dr); + } + else if (dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0016 || dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0019) + { + + if (dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0016 ) + { + string[] aStr = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0570).ToString().Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); + + dr["SHOW_MSG1"] = aStr[0]; + dr["SHOW_MSG2"] = aStr[1]; + dr["SHOW_MSG3"] = aStr[2]; + } + else + { + dr["SHOW_MSG1"] = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0571); + } + + dr["READ_FLAG"] = "1"; + + BrPopupUpdate(dr); + } + } + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 디비 업데이트 + /// + /// + /// + private bool BrPopupUpdate(DataRow dr) + { + + bool bRet = false; + string sSQL = ""; + + try + { + sSQL = " UPDATE POSLOG.dbo.ETC_BR_POPUP "; + sSQL += " SET READ_FLAG = '" + dr["READ_FLAG"] + "'"; + sSQL += " ,SHOW_MSG1 = N'" + dr["SHOW_MSG1"] + "'"; + sSQL += " ,SHOW_MSG2 = N'" + dr["SHOW_MSG2"] + "'"; + sSQL += " ,SHOW_MSG3 = N'" + dr["SHOW_MSG3"] + "'"; + sSQL += " WHERE CMP_CD = '" + dr["CMP_CD"] + "'"; + sSQL += " AND BRAND_CD = '" + dr["BRAND_CD"] + "'"; + sSQL += " AND SALE_DT = '" + dr["SALE_DT"] + "'"; + sSQL += " AND STOR_CD = '" + dr["STOR_CD"] + "'"; + sSQL += " AND POS_NO = '" + dr["POS_NO"] + "'"; + sSQL += " AND CMM_GRP_CD = '" + dr["CMM_GRP_CD"] + "'"; + sSQL += " AND CMM_CD = '" + dr["CMM_CD"] + "'"; + + int iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + + if (iRet == 1) + bRet = true; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + + return bRet; + } + + /// + /// 전문 송수신 + /// + /// + /// + /// + /// + /// + /// + /// + private string ExecuteHostIrt(DataRow dr) + { + string sRet = UserCom.RST_ERR; + Hashtable htSendData = new Hashtable(); + Hashtable htRecvData = new Hashtable(); + + try + { + // 조회 + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.SERVER_INTERFACE_SCH); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.POS_NO, m_cPosStatus.Base.PosNo); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.STOR_TY, m_cPosStatus.Mst.DrtFrcsDiv); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.PRT_DIV, dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0015 ? "100" : "101"); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.START_DT, dr["SALE_DT"].ToString()); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.END_DT, dr["SALE_DT"].ToString()); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.ORD_SEQ, ""); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.ORD_GRP, ""); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.DATA_CNT, "0"); + htSendData.Add(Column.IQ_DATA_SEARCH_REQ.DATA.RES_DATA, ""); + + + // 전문 요청 + int iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.BizInqPort), + (int)5000, htSendData, ref htRecvData); + + if (iRet != BaseCom.OK || htRecvData.Count == 0) + { + sRet = UserCom.RST_ERR; + return ""; + } + + if (CmUtil.DoubleParse(htRecvData[Column.IQ_DATA_SEARCH_REQ.DATA.DATA_CNT].ToString()) <= 0) + { + //sRet = UserCom.RST_ERR; + //return ""; + string sLogtemp = string.Format("BizCmmcd : {0}, RecvCount : {1} >> Skip", dr["CMM_GRP_CD"], htRecvData[Column.IQ_DATA_SEARCH_REQ.DATA.DATA_CNT]); + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + sLogtemp); + } + + sRet = htRecvData[Column.IQ_DATA_SEARCH_REQ.DATA.RES_DATA].ToString(); + + if (dr["CMM_GRP_CD"].ToString() == PosConst.COMMON_CODE_GROUP.Z0015) + { + if (sRet.StartsWith("N") == true) // CmUtil.MidH(sRet, 0, 1) == "N") + { + dr["SHOW_MSG1"] = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0572); + dr["READ_FLAG"] = "1"; + } + else + { + dr["READ_FLAG"] = "2"; + } + } + else + { + if (sRet.StartsWith("Y") == true) + { + dr["SHOW_MSG1"] = sRet.Substring(2); + dr["READ_FLAG"] = "1"; + } + else + { + dr["READ_FLAG"] = "2"; + } + } + + BrPopupUpdate(dr); + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region 로그파일 업로드 처리 + private int UploadLogFileProc(Hashtable htRecvData, ref string sFileNm) + { + int iRet = BaseCom.NG; + string sUploadedFileNm = ""; + ZipFile zip = null; + + try + { + // 01 - 요청 받은 로그 파일 압축 + string[] sFiles = Directory.GetFiles(BaseCom.NxLogPath, "*" + htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.LOG_DT].ToString().Substring(2) + ".log*"); + + if(sFiles.Length > 0) + { + sUploadedFileNm = htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.LOG_DT].ToString() + "_" + m_cPosStatus.Base.StoreNo + "_" + m_cPosStatus.Base.PosNo + ".zip"; + zip = ZipFile.Create(BaseCom.NxLogPath + sUploadedFileNm); + + zip.BeginUpdate(); + foreach(string sFile in sFiles) + { + zip.Add(sFile, Path.GetFileName(sFile)); + } + zip.CommitUpdate(); + zip.Close(); + zip = null; + } + else + { + // 요청받은 일자의 로그가 없음 + return BaseCom.NG1; + } + + // 02 - 압축 파일 Upload + string sIp = htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.FTP_IP].ToString(); + string sPort = htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.FTP_PORT].ToString(); + string sUserId = htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.FTP_ID].ToString(); + string sUserPwd = htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.FTP_PWD].ToString(); + + FTP cFtp = new FTP(sIp, sUserId, sUserPwd); + + bool bRtn = cFtp.Upload(BaseCom.NxLogPath + sUploadedFileNm, htRecvData[Column.IQ_POS_LOGFILE_REQ.DATA.FTP_PATH].ToString() + @"/" + sUploadedFileNm ); + + if (bRtn == true) + iRet = BaseCom.OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + finally + { + if (zip != null) + zip.Close(); + + if(File.Exists(BaseCom.NxLogPath + sUploadedFileNm) == true) + { + File.Delete(BaseCom.NxLogPath + sUploadedFileNm); + } + } + + return iRet; + } + #endregion 로그파일 업로드 처리 + + //17.08.22 dkshin SS 해피오더 + #region SS 해피오더 자동 처리 + /// + /// 최종 거래번호 설정 + /// + /// + public string LoadLastPosTradeNo(string SSPosno) + { + string sQuery = ""; + string sRet = UserCom.RST_ERR; + DataTable dtTradeInfo = null; + + try + { + // 최종거래번호 로딩 + sQuery = " SELECT ISNULL(MAX(TRADE_NO),0) TRADE_NO FROM POSLOG..TR_SALE_HEADER "; + sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "' "; + sQuery += " AND POS_NO = '" + SSPosno + "' "; + //sQuery += " AND TRADE_KINDPER NOT IN('90','91','92','93') "; + + //DataTable dtTradeInfo = m_cMstService.Select(new string[] { sQuery }); + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (System.Data.SqlClient.SqlParameter[])null, out dtTradeInfo); + + if (dtTradeInfo != null && dtTradeInfo.Rows.Count > 0) + { + DataRow dr = dtTradeInfo.Rows[0]; + + int nTradeNo = (int)CmUtil.LongParse(CmUtil.GetDataRowStr(dr, "TRADE_NO")); + //if (CmUtil.LongParse(m_cPosStatus.Base.TradeNo) <= nTradeNo) + { + m_cPosStatus.Base.TradeNo = string.Format("{0:D5}", nTradeNo + 1); + } + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + + return sRet; + } + + private void SSHappyOrderList() + { + Hashtable htRequest = new Hashtable(); + Hashtable htResponse = new Hashtable(); + int iReturn = BaseCom.NG; + + htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo); + htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_REG); + htRequest.Add("deviceType", "POS"); + + //해피오더 주문내역 조회 - 픽업시간 + m_htOrderLists = null; + m_htOrderLists = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_ORDER_LIST, htRequest }, ref htResponse, ref iReturn); + + if (iReturn != BaseCom.OK) + { + return; + } + } + + private void SSHappyOrderStatusChange(Column.TR_HPORD.HPORD_HEADER cHeader, string statusValue) + { + Hashtable htRequest = new Hashtable(); + Hashtable htResponse = new Hashtable(); + + int iReturn = BaseCom.NG; + ArrayList m_cHappyOrderItem = new ArrayList(); + + htRequest.Add("deviceType", "POS"); + htRequest.Add("orderNum", cHeader.OrderNum); + //#12504 해피오더 외부채널 직접 주문 관련 수정 start, phj + //htRequest.Add("channel", cHeader.Channel); + //#12504 해피오더 외부채널 직접 주문 관련 수정 end, phj + htRequest.Add("cancelReasonType", ""); + htRequest.Add("status", statusValue); + + // 주문상태변경 + m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.UPDATE_STATUS, htRequest }, ref htResponse, ref iReturn); + + if (htResponse == null || htResponse.ContainsKey("status") == false) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "OrderNum = " + cHeader.OrderNum + ", 상태변경 처리 실패"); + + //return false; + } + if (htResponse["status"].ToString().Equals("200") == false) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "OrderNum = " + cHeader.OrderNum + ", 상태변경 처리 실패(" + htResponse["message"].ToString() + ")"); + + //return false; + } + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "OrderNum = " + cHeader.OrderNum + ", 상태변경 처리 완료"); + + // 정상 처리 + //bReturn = true; + + //#20171019 SS해피오더 배달 start + //기존 + //if (statusValue == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT) + //변경 + if ((statusValue == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT) || (statusValue == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ)) + //#20171019 SS해피오더 배달 end + { + //영양정보 저장? + Hashtable[] aResponse = null; + Hashtable htRequestForNutrition = new Hashtable(); + htResponse = null; + + htRequestForNutrition.Add("orderNum", cHeader.OrderNum); + + aResponse = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_PRODUCT_NUTRITION, htRequestForNutrition }, ref htResponse, ref iReturn); + + if (aResponse != null && aResponse.Length > 0) + { + string sMsg = m_cHappyOrder.ParseNutritionMsg(aResponse); + if (sMsg != "") + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "OrderNum = " + cHeader.OrderNum + ", 영양정보 = " + sMsg); + + // 영양정보 저장 + //#20180129 SS해피오더 자동처리 DB작업 수정 start + //기존 + //m_cHappyOrder.UpdateHappyOrderData(new string[] { "Message", sMsg, cHeader.OrderNum, cHeader.OrderDate }); + //변경 + UpdateHappyOrderData(new string[] { "Message", sMsg, cHeader.OrderNum, cHeader.OrderDate }); + //#20180129 SS해피오더 자동처리 DB작업 수정 end + } + } + + //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 영양정보 호출 함수 처리 + //m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, sOrderDt); + //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end + + //매출처리 + //해피오더 리스트 상세 조회 + m_cHappyOrder.GetHappyOrderListDetail(cHeader.OrderNum, m_sHappyOrderURL, ref m_cHappyOrderItem, ref m_htOrderLists); + + int itemCnt = m_cHappyOrderItem.Count; + ArrayList itemList = new ArrayList(); + for (int i = 0; i < itemCnt; i++) + { + Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[i]; + item.PickupTime = cHeader.PickupTime; + itemList.Add(item); + } + m_cHappyOrderItem.Clear(); + m_cHappyOrderItem = new ArrayList(itemList); + + + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start + + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정 + //if (statusValue == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ) + //{ + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정 + bool bLandomBoxCheck = false; + + DataTable dtData = null; + for (int nLoop = 0; nLoop < m_cHappyOrderItem.Count; nLoop++) + { + Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[nLoop]; + + dtData = m_cDataCommon.SeletCommonCode(PosConst.COMMON_CODE_GROUP.T0039, ""); + if (dtData != null && dtData.Rows.Count > 0) + { + foreach (DataRow dr in dtData.Rows) + { + if (item.GoodsCode == CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01)) + { + bLandomBoxCheck = true; + break; + } + } + } + + if (bLandomBoxCheck == true) + { + return; + } + } + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정 + //} + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정 + + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end + + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start + //기존 + //string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem); + //변경 + string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, null); + //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end + + if (sRet == UserCom.RST_OK) + { + m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O; + + //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj + //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING; + //#20171227 인천공항 포스연동 end, phj - 20180310 해피오더 결제완료 end,phj + + m_cTrnStatus.Head.OrderNo = cHeader.DailyCode;//판매POS의 매출처리시 대기번호도 해당 대기번호로 저장해야 함. + String sPosno = m_cPosStatus.Base.PosNo; + String sTradeNo = m_cPosStatus.Base.TradeNo; + m_cPosStatus.Base.PosNo = PosMstManager.GetPosOption(POS_OPTION.OPT048); + LoadLastPosTradeNo(PosMstManager.GetPosOption(POS_OPTION.OPT048));//별도 포스번호별 거래번호 처리 + m_cTrnStatus.Sale.SSHappyOrderSalePrint = true;//매출 처리 시 영수증 출력 하지 않음 설정. + m_cTrnStatus.Head.HPOrderPickupTime = cHeader.PickupTime;//20170918 dkshin 해피오더 중복 거래 완료처리 수정 + + + IPaymentUs cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYORDER); + + //#11054_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청 + sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP, cHeader.PayMoney, cHeader.OrderNum, cHeader.OrderDate }); + + if (sRet != UserCom.RST_OK) + return; + + // 거래 완료 처리 + ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE); + sRet = cSaleComplete.PosSaleExecute(new string[] { }); + if (sRet != UserCom.RST_OK) + return; + + // 해피오더 데이터 삭제 + //#20180129 SS해피오더 자동처리 DB작업 수정 start + //기존 + //m_cHappyOrder.DeleteSSHappyOrderData(cHeader.DailyCode, cHeader.OrderDate.Substring(0, 10).Replace("-", "")); + //변경 + DeleteSSHappyOrderData(cHeader.DailyCode, cHeader.OrderDate.Substring(0, 10).Replace("-", "")); + //#20180129 SS해피오더 자동처리 DB작업 수정 end + + // KDS전송 + //20170918 dkshin 해피오더 중복 거래 완료처리 수정 + // 거래완료처리에서 주방주문 데이타 작성 + //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem); + + // 판매상태 변경 + //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj + //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT; + //#20171227 인천공항 포스연동 end, phj - 20180310 해피오더 결제완료 end,phj + m_cPosStatus.Base.PosNo = sPosno; + m_cPosStatus.Base.TradeNo = sTradeNo; + + } + else + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0638)); + } + } + } + + + } + + private void SSHappyOrderAutoProcess() + { + Hashtable htRequest = new Hashtable(); + Hashtable htResponse = new Hashtable(); + ArrayList m_alPickupLists = new ArrayList(); + + DateTime pickupTenMinAgo; + DateTime pickupSevenMinAgo; + DateTime pickuptime; + DateTime nowTime = DateTime.Now; + //DateTime tenMinAgoTime = DateTime.Now.AddMinutes(-10); + //DateTime sevenMinAgoTime = DateTime.Now.AddMinutes(-7); + string s_Pickuptime; + int yyyy, mm, dd, hh, mi; + + SSHappyOrderList();//해피오더 주문내역 조회 - 픽업시간 + + //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 Start + // 해피오더 헤더정보 DB 삭제 + + //#20180129 SS해피오더 자동처리 DB작업 수정 start + //기존 + //m_cHappyOrder.DeleteHappyOrderAllData(); + //변경 + DeleteHappyOrderAllData(); + //#20180129 SS해피오더 자동처리 DB작업 수정 end + + //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 End + + if (m_htOrderLists != null && m_htOrderLists.Length > 0) + { + foreach (Hashtable htData in m_htOrderLists) + { + Column.TR_HPORD.HPORD_HEADER header; + header = m_cHappyOrder.ParseHappyOrderList(htData); + //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 Start + // 해피오더 헤더정보 DB 처리 + + //#20180129 SS해피오더 자동처리 DB작업 수정 start + //기존 + //m_cHappyOrder.SaveHappyOrderData(header); + //변경 + SaveHappyOrderData(header); + //#20180129 SS해피오더 자동처리 DB작업 수정 end + + //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 End + m_alPickupLists.Add(header); + } + } + + Column.TR_HPORD.HPORD_HEADER cHeader; + for (int i = 0; i < m_alPickupLists.Count; i++) + { + s_Pickuptime = ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[i]).PickupTime; + yyyy = Convert.ToInt32(s_Pickuptime.Substring(0, 4)); + mm = Convert.ToInt32(s_Pickuptime.Substring(5, 2)); + dd = Convert.ToInt32(s_Pickuptime.Substring(8, 2)); + hh = Convert.ToInt32(s_Pickuptime.Substring(14, 2)); + mi = Convert.ToInt32(s_Pickuptime.Substring(17, 2)); + + + pickuptime = new DateTime(yyyy, mm, dd, hh, mi, 00); + pickupTenMinAgo = pickuptime.AddMinutes(-10); + pickupSevenMinAgo = pickuptime.AddMinutes(-7); + + //픽업시간 10분전 '상품준비'로 상태 변경 + if (DateTime.Compare(pickupTenMinAgo, nowTime) < 0) + { + cHeader = null; + cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[i]; + + if (cHeader.OrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG) + SSHappyOrderStatusChange(cHeader, ItemConst.HAPPYORDER_STATUS.PRODUCT_READY); + } + //픽업시간 7분전 '픽업대기'로 상태 변경 + if (DateTime.Compare(pickupSevenMinAgo, nowTime) < 0) + { + cHeader = null; + cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[i]; + + //OrderStatus 상태값(주문접수:4, 상품준비:5, 픽업대기:7, 픽업완료:8) + //'상품준비' 상태가 아니면 '상품준비'로 상태 변경 (픽업시간 10분전을 지나고 판매포스를 킨경우 상태값이 주문접수이므로 상품준비로 변경) + if (cHeader.OrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG) + { + SSHappyOrderStatusChange(cHeader, ItemConst.HAPPYORDER_STATUS.PRODUCT_READY); + } + + //'상품준비' 상태이면 '픽업대기'로 상태 변경 -> 매출처리 -> KDS 전송 + if (cHeader.OrderStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY) + { + //#20171019 SS해피오더 배달 start + //기존 + //SSHappyOrderStatusChange(cHeader, ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT); + //변경 + if ((cHeader.OrderType == ItemConst.ORDER_TYPE.INNER_DELIVERY) || (cHeader.OrderType == ItemConst.ORDER_TYPE.OUTTER_DELIVERY)) + { + SSHappyOrderStatusChange(cHeader, ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ); + } + else + { + SSHappyOrderStatusChange(cHeader, ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT); + } + //#20171019 SS해피오더 배달 end + } + + //if (cHeader.OrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT) + { + // SSHappyOrderStatusChange(cHeader, ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED); + } + } + + + } + + } + + //#20180129 SS해피오더 자동처리 DB작업 수정 start + + /// + /// 해피오더 데이터 갱신 + /// + /// + /// + public int UpdateHappyOrderData(string[] aParam) + { + int iRet = UserCom.NG; + string sUpdQuery = ""; + + try + { + sUpdQuery = " UPDATE POSMST..MST_HPORD "; + if (aParam[0] == "PRINT") + { + sUpdQuery += "SET PRT_YN = '" + aParam[1] + "' "; + } + else + { + //sUpdQuery += "SET NUTRITION_MSG = REPLACE('" + aParam[1] + "', CHAR(10), CHAR(13) + CHAR(10))"; + sUpdQuery += "SET NUTRITION_MSG = '" + aParam[1] + "' "; + } + sUpdQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sUpdQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sUpdQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sUpdQuery += " AND ORD_DT = '" + aParam[3] + "' "; + sUpdQuery += " AND ORD_NO = '" + aParam[2] + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sUpdQuery, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + /// + /// 해피오더 데이터 삭제 MST_HPORD + /// + /// + /// + public int DeleteSSHappyOrderData(string sOrderNum, string sOrderDt) + { + int iRet = UserCom.NG; + string sQuery = ""; + + try + { + sQuery = " DELETE FROM POSMST..MST_HPORD \n" + + " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND ORD_DT = '" + sOrderDt + "' \n" + + " AND ORD_NO = '" + sOrderNum + "' \n"; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + /// + /// 해피오더 데이터 전체 삭제 + /// + /// + public int DeleteHappyOrderAllData() + { + int iRet = UserCom.NG; + string sQuery = ""; + + try + { + sQuery = "TRUNCATE TABLE POSMST..MST_HPORD \n"; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + /// + /// 해피오더 데이터 저장 + /// + /// + /// + public int SaveHappyOrderData(Column.TR_HPORD.HPORD_HEADER header) + { + int iRet = UserCom.NG; + string sQuery = ""; + string sSQL = ""; + + try + { + sQuery = "UPDATE POSMST..MST_HPORD "; + sQuery += " SET ORD_STS = '{0}' "; + sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND ORD_NO = '{3}' "; + sQuery += "IF @@ROWCOUNT = 0 "; + sQuery += "INSERT INTO POSMST..MST_HPORD "; + sQuery += " ( CMP_CD, STOR_CD, ORD_DT, ORD_NO, ORD_STS "; + sQuery += " , PRT_YN, NUTRITION_MSG, FILLER1, FILLER2, FILLER3 "; + sQuery += " , FILLER4, FILLER5, UPD_DT, REG_DT ) "; + sQuery += "VALUES "; + sQuery += " ( '{4}', '{5}', '{6}', '{7}', '{8}' "; + sQuery += " , '{9}', '{10}', '{11}', '{12}', '{13}' "; + sQuery += " , '{14}', '{15}' ,'{16}', '{17}' ) "; + + //17.08.22 dkshin SS 해피오더 - dailyCode값 대기번호가 TBL_NO으로 저장되므로 ORDER_NO에 대기번호 저장 + string orderNum = header.OrderNum; + if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0" || PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1") + { + orderNum = header.DailyCode; + } + sSQL = string.Format(sQuery, + header.OrderStatus, + m_cPosStatus.Base.CmpCd, + m_cPosStatus.Base.StoreNo, + //17.08.22 dkshin SS 해피오더 + //header.OrderNum, + orderNum, + + m_cPosStatus.Base.CmpCd, + m_cPosStatus.Base.StoreNo, + header.OrderDate.Substring(0, 10).Replace("-", ""), + //17.08.22 dkshin SS 해피오더 + //header.OrderNum, + orderNum, + + header.OrderStatus, + "0", + "", + "", "", "", "", "", + DateTime.Now.ToString("yyyyMMddHHmmss"), + DateTime.Now.ToString("yyyyMMddHHmmss")); + + iRet = sqlDb.DBExecuteNonQuery(sSQL, System.Data.CommandType.Text, (System.Data.SqlClient.SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + //#20180129 SS해피오더 자동처리 DB작업 수정 end + + #endregion + + //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 start + #region 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 + /// + /// 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 + /// + private void HappyOrderInventoryAlram() + { + Hashtable htRecvData = new Hashtable(); + Hashtable htSendData = new Hashtable(); + + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 start + //기존 + //string sRet = UserCom.RST_ERR; + //변경 + int iRet = 0; + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 end + + string sHPO_Inventory_YN = ""; + try + { + htSendData.Add(Column.IQ_HPO_INVENTORY_ALRAM.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.HPO_INVENTORY_ALARM); + htSendData.Add(Column.IQ_HPO_INVENTORY_ALRAM.DATA.RES_YN, ""); + htSendData.Add(Column.IQ_HPO_INVENTORY_ALRAM.DATA.RES_CD, ""); + + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 start + //기존 + //sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 5000, htSendData, ref htRecvData, false); + //변경 + iRet = IRTSendReceive(m_cPosStatus.Base.CommSvrIp, Convert.ToInt32(m_cPosStatus.Base.SysInfoPort), (int)5000, htSendData, ref htRecvData); + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 end + + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 start + //기존 + //if (sRet == UserCom.RST_OK) + //변경 + if (iRet == BaseCom.OK) + { + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 end + + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 start + if (htRecvData != null) + { + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 end + + if (htRecvData[Column.IQ_HPO_INVENTORY_ALRAM.DATA.RES_CD].ToString() == "00") + { + sHPO_Inventory_YN = htRecvData[Column.IQ_HPO_INVENTORY_ALRAM.DATA.RES_YN].ToString(); + } + + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 start + } + //#17317 PB 안산성포 외- 포스사용중 [고객센터로 연락주세요] 팝업뜨는 증상 end + } + + m_cPosStatus.Sale.HappyOrderInventoryYN = sHPO_Inventory_YN.Trim(); + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + ex.Message); + } + } + #endregion + //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 end + } +} diff --git a/Agent/NetworkCheckOver/NetworkCheckOver.csproj b/Agent/NetworkCheckOver/NetworkCheckOver.csproj new file mode 100644 index 0000000..6a3440f --- /dev/null +++ b/Agent/NetworkCheckOver/NetworkCheckOver.csproj @@ -0,0 +1,96 @@ + + + + + Debug + AnyCPU + {D7F0F611-E694-47D5-AB09-8C5514B04B6F} + Library + Properties + Cosmos.Network + Agent.NetworkCheckOver + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + False + ..\..\..\BIN\Cosmos.UserFrame.dll + + + False + ..\..\..\BIN\ICSharpCode.SharpZipLib.dll + + + False + ..\..\..\BIN\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.NetworkCheckOver.dll .\Agent.NetworkCheckOver.dll + + + copy .\Agent.NetworkCheckOver.dll .\IC\Agent.NetworkCheckOver.dll + + + \ No newline at end of file diff --git a/Agent/NetworkCheckOver/Properties/AssemblyInfo.cs b/Agent/NetworkCheckOver/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..19db2ed --- /dev/null +++ b/Agent/NetworkCheckOver/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("NetworkCheckOver")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("NetworkCheckOver")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("e0c7ddd1-3d25-472c-ad5c-7373ebeb2640")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/NetworkTranSend/Activator.cs b/Agent/NetworkTranSend/Activator.cs new file mode 100644 index 0000000..fbba075 --- /dev/null +++ b/Agent/NetworkTranSend/Activator.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : Network 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + /// + /// Load BaseFrame and save information (BaseFrame의 로드하고 정보를 보관한다) + /// + public class Activator : InitServiceAbstract + { + /// + /// Define main entrance point of project load. (프로젝트 로드의 주진입점을 정의합니다.) + /// + public Activator() + { + + } + + /// + /// + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + //클래스 찾아오기 위함 + switch (sClassNm) + { + case ServiceLists.AGENT_NETWORK_TRANSEND.NetworkTranSend: + { + Cosmos.Network.NetworkTranSend agentClass = new Cosmos.Network.NetworkTranSend(); + retObj = agentClass; + break; + } + } + + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!"); + + return retObj; + + } + } +} diff --git a/Agent/NetworkTranSend/NetworkTranSend.cs b/Agent/NetworkTranSend/NetworkTranSend.cs new file mode 100644 index 0000000..2915e3f --- /dev/null +++ b/Agent/NetworkTranSend/NetworkTranSend.cs @@ -0,0 +1,7145 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Data; +using System.Data.SqlClient; + +using Cosmos.Common; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.CommonManager; +using Cosmos.ServiceProvider; + +using Newtonsoft.Json; +using System.Xml; +using System.IO; +using System.Net; +using System.Runtime.InteropServices; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : 통신서버로 +// 01:Tran/02:저널/03:서명/04:전자영수증/05:현금IC/06:기타서명 데이터 100ms간격, 전송 +// 실패시 에러카운트증가시켜 1회 이상부터 5초로 조정. +// 실패시 에러카운트증가시켜 5회 이상부터 1분으로 조정. +// 성공시 에러카운트감소시켜 0으로 초기화 되면 다시 100ms로 조정. +// 전송할 데이터 없을 시 5초로 조정. +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Network +{ + public class NetworkTranSend : INetworkTranSend + { + #region 한국공항공사 I/F 관련 MKACCLT.dll 함수정의 + ///// + ///// 프로그램 시작 + ///// + ///// + //[DllImport("MKACCLT.dll")] + //public static extern int MKACCLTOpen(); + ///// + ///// 매출저장 + ///// + ///// 매출구분(4) + ///// 계약구분(10) + ///// 영업일자(8) + ///// 매장정보(10) + ///// POS번호(10) + ///// 영수증번호(30) + ///// 매출정보(Variable) + ///// 아이템건수(4) + ///// 아이템정보(Variable) + ///// + //[DllImport("MKACCLT.dll")] + //public static extern int ReceiptDB(string pSendType, string pConNo, string pSaleDt, string pStorCd, string pPosNo, string pReceiptNo, string sTranHeader, int iItemCount, string sTranItem); + ///// + ///// 프로그램 종료 + ///// + ///// + //[DllImport("MKACCLT.dll")] + //public static extern int MKACCLTClose(); + + #endregion 한국공항공사 I/F 관련 MKACCLT.dll 함수정의 + + #region 클래스 변수 선언 + /// + /// Sending Socket (전송 소켓) + /// + private static TcpSocket m_sendSocket = null; + + /// + /// IP + /// + private string m_ServerIp = ""; + + /// + /// Port + /// + private int m_ServerPort = 0; + + /// + /// + /// + private int m_ServerTimeout = 1; + + protected SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + + /// + /// StateServer Object (StateServer 객체) + /// + private StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// POS Status Value (POS 상태값) + /// + private PosStatus m_cPosStatus = null; + + + //#20180322 휴게소pos매출연동 start,phj + private IDataCommonUs m_cDataCommon = null; + //#20180322 휴게소pos매출연동 end,phj + + /// + /// IRT 통신 + /// + private bool m_bIRTComplete = false; // 통신 완료 상태 + Hashtable m_htRecvData = null; // 통신 수신 데이터 (JSON) + /// + /// Sending Socket (전송 소켓) + /// + private static TcpSocket m_IrtSocket = null; + + /// + /// Thread Waiting Time (스레드 대기시간) + /// + private int m_ThreadSleepTerm = 100; + + /// + /// Recv Timeout 정의 + /// + //private int m_RecvTimeout = 10000; + + /// + /// Server Send Operation Yes/No (SVR Send 작동여부) + /// + private bool m_TranSVRSendRunning = true; + + /// + /// Server SEND Thread (Server SEND 스레드) + /// + private Thread m_tSVRSend = null; + /// + /// 전송할 데이터 건수가 0 일 때, 0 설정 + /// + private int iSendDataCnt = 0; + /// + /// CommHeader 길이 + /// + private int CommHeadLen = 0; + + /// + /// TranSend 응답 에러발생이 지속될 경우 ThreadTerm을 조정하기 위함 + /// iErrorCount 가 5 이상이면 Thread Term을 1분으로 조정하며, 다시 0으로 돌아가면 1초로 조정 + /// + private int iErrorCount = 0; + + private int iOldErrorCount = 0; + + /// + /// 기동하면서 읽어 온 통신서버 IP + /// + private string sCommSvrIp = string.Empty; + + /// + /// MSSQL DB 관련 객체 + /// + private static SqlDB sqlDb = null; + + ///// + ///// 고속도로 휴게소 POS 매출DATA 전송 URL + ///// + //private string sExTranUrl = string.Empty; + + ///// + ///// 고속도로 휴게소 POS 정산DATA 전송 URL + ///// + //private string sExCalcUrl = string.Empty; + + #endregion + + #region 생성자 + public NetworkTranSend() + { + m_cPosStatus = (PosStatus)StateObject.POS; + CommHeadLen = ItemColumn.LenMessage(Column.COMM_HEADER.LEN); + + //#20180322 휴게소pos매출연동 end,phj + CommHeadLen = ItemColumn.LenMessage(Column.COMM_HEADER.LEN); + //m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + + //#20180322 휴게소pos매출연동 start,phj + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + //#20180322 휴게소pos매출연동 end,phj + } + #endregion + + #region TranSend Thread Start/Stop + /// + /// Server Send Thread Start + /// + public void StartTranSend() + { + this.sCommSvrIp = m_cPosStatus.Base.CommSvrIp; + + sqlDb = new SqlDB(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); + + //SetExUrl(); + + // 한국공항공사 매출 I/F 프로그램 실행 + //if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_02) + //{ + // int iRet = MKACCLTOpen(); + // if(iRet == 0) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // "* 공항공사 MKACCLT.dll [ MKACCLT.dll Open Call. ]"); + // } + //} + + m_tSVRSend = new Thread(new ThreadStart(ThreadSVRSendRun)); + m_TranSVRSendRunning = true; + m_tSVRSend.Start(); + } + + /// + /// NetworkTranSend Thread Stop시 처리 + /// + public void StopTranSend() + { + try + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "NetworkTranSend Service Stop!!!"); + // 통신서버 Send Terminated (SC Send 종료) + m_TranSVRSendRunning = false; + + int count = 0; + while (count < 10) + { + if (m_tSVRSend != null && m_tSVRSend.IsAlive) m_TranSVRSendRunning = false; + else break; + + count++; + Thread.Sleep(300); + } + + if (count >= 10) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force NetworkTranSend Service Stop!!!"); + m_tSVRSend.Abort(); + } + + // DB Close + sqlDb.DBClose(); + + // 한국공항공사 매출 I/F 프로그램 종료 + //if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_02) + //{ + // int iRet = MKACCLTClose(); + // if (iRet == 0) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // UserCom.WARNING_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // "* 공항공사 MKACCLT.dll [ MKACCLT.dll Close Call. ]"); + // } + //} + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + if (m_tSVRSend != null && m_tSVRSend.IsAlive) + m_tSVRSend.Abort(); + } + } + #endregion + + //#region 초기화 + //private void SetExUrl() + //{ + // try + // { + // CmMessage PosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); + + // sExTranUrl = PosConfig.GetMessage("SERVER").GetMessageValue("ExTranUrl"); + // sExCalcUrl = PosConfig.GetMessage("SERVER").GetMessageValue("ExCalcUrl"); + + // //if (string.IsNullOrWhiteSpace(sExTranUrl)) sExTranUrl = @"http://skhiway.com/SvrApp/SL000.java"; + // //if (string.IsNullOrWhiteSpace(sExCalcUrl)) sExCalcUrl = @"http://skhiway.com/SvrApp/PS000.java"; + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + //} + //#endregion + + #region TranSend Main + /// + /// Server Send Run + /// + private void ThreadSVRSendRun() + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ThreadSVRSendRun Run!!"); + + while(m_TranSVRSendRunning) + { + try + { + // 전송 데이터 건수 초기화 + iSendDataCnt = 0; + + #region 01 - 선불 또는 후불메인 일 경우에만 전송 + if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.PRE_PAYMENT || + (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS)) + { + // 1 - TranLog Send (TranLog 전송) + this.TranLogSendProcess(); + // 2 - Journal Send (Journal 전송) + this.JournalSendProcess(); + // 3 - ApprovalLog Send (승인로그 전송) + this.ApprovalLogSendProcess(); + // 4 - ETC TRAN Send (ETC TRAN 전송) + this.ETCTranLogSendProcess(); + // 5 - ETC Journal Send (ETC Journal 전송) + this.ETCJournalSendProcess(); + // 6 - Cashier Test Log Send (계산원 시험Log 전송) + this.CashierTestLogSendProcess(); + // 외부업체 I/F 의 경우 실 OPEN 전 까지 주석 처리 함(20170213) + // 고속도로 휴게소 입점 POS + //if(m_cPosStatus.Base.ExPos == "1") + if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_01) + { + // 7 - 도로공사(고속도로 휴게소 입점POS) 매출 I/F XML 파일 생성 + this.MakeTranToExProcess(); + + // 8 - 도로공사(고속도로 휴게소 입점POS) 매출 전송 + //this.TranSendToExProcess(); + } + + //#20180322 휴게소pos매출연동 start,phj + else if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_03) + { + // 17 - 휴게소pos매출연동 I/F JSON 파일 생성 + this.MakeTranToRestArea(); + } + //#20180322 휴게소pos매출연동 end,phj + + //else if (m_cPosStatus.Mst.ETC_IF_DIV == ItemConst.TranInterfaceOutside.IF_KOR_02) + //// 한국공항공사 관리 공항 입점 POS + //{ + // // 9 - 한국공항공사 매출 전송 + // this.TranSendToKacProcess(); + //} + // 11. 점포점검 내역 전송 + this.StoreCheckSendProcess(); + + // 12. 일일점검 내역 전송 + this.StoreEquipCheckSendProcess(); + + // 13. Scale Log Send (Scale Log 전송) + this.ScaleLogSendProcess(); + + // 14. 보류 로그 이력 (ETC_HOLD_LOG 전송) + this.HoldLogSendProcess(); + + //#해피앱 추후적립 start, sskim + // 15. 해피앱 추후적립 내역 전송(TR_HPAPP_AFTER_SAVE 전송) + this.HpAppAfterSaveSendProcess(); + //#해피앱 추후적립 end, sskim + + //#20171120 유통기한 바코드 인식률 start, phj + // 16. 유통기한 바코드 인식률 전송 (TR_BAR_SUCESS_RATE 전송) + this.BarcodeSucessRateSendProcess(); + //#20171120 유통기한 바코드 인식률 end, phj + + //#15945 해피오더 자동주문 상세기능 start + // 해피오더 자동주문 로그 전송(HPO_AUTOORDER_LOG) + this.HappyOrderAutoOrderLogSendProcess(); + //#15945 해피오더 자동주문 상세기능 end + + } + #endregion + + #region 02 - 상시 전송 + // 10. 긴급메세지 전송 + this.EmgNoteSendProcess(); + #endregion + + // 기본 : 100ms, 에러 5건 이상 : 5000ms, 에러 10회 이상 발생 시 : 60000ms, 데이터 없을 때 : 5000ms + if(iErrorCount >= 10) + { + iErrorCount = 10; + m_ThreadSleepTerm = 60000; + } + else if (iErrorCount == 5 || iSendDataCnt == 0) + { + m_ThreadSleepTerm = 5000; + } + else if(iErrorCount == 0) + { + m_ThreadSleepTerm = 100; + } + + // Error Count 감소로 전환 시 기본 ThreadTerm으로 설정 + if(iOldErrorCount > iErrorCount) + { + iErrorCount = 0; + m_ThreadSleepTerm = 100; + } + + iOldErrorCount = iErrorCount; + + int nNowSleepTerm = 0; + while (nNowSleepTerm < m_ThreadSleepTerm) + { + if (m_TranSVRSendRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ThreadSVRSendRun Exception : " + ex.Message); + break; + } + } + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ThreadSVRSendRun Exit!!"); + } + #endregion + + #region TRAN / 승인로그 / JOURNAL / ETC TRAN / ETC JOURNAL 전송 모듈 + private string MakeCommHeader(int nMsgLen, string sMsgType, string sEncType, string sCmpCd, string sBrandCd, string sStorCd, string sSaleDt, string sPosNo, string sTradeNo, string sSysYmd, string sSysHms) + { + try + { + string[] aCommHead = new string[Column.COMM_HEADER.LEN.Length]; + + // 통신헤더의 전문 길이는 통신헤더길이 제외 + // 박동철B, 조충연K - 2016.0818 + //int nHeadLen = nMsgLen + LenMessage(Column.COMM_HEADER.LEN); + int nHeadLen = nMsgLen; + aCommHead[Column.COMM_HEADER.SEQ.MsgLen] = nHeadLen.ToString(); + aCommHead[Column.COMM_HEADER.SEQ.MsgType] = sMsgType; + aCommHead[Column.COMM_HEADER.SEQ.CmpCd] = sCmpCd; + aCommHead[Column.COMM_HEADER.SEQ.BrandCd] = sBrandCd; + aCommHead[Column.COMM_HEADER.SEQ.StoreCd] = sStorCd; + aCommHead[Column.COMM_HEADER.SEQ.PosNo] = sPosNo; + aCommHead[Column.COMM_HEADER.SEQ.TradeNo] = sTradeNo; + aCommHead[Column.COMM_HEADER.SEQ.TranYmd] = sSaleDt; + aCommHead[Column.COMM_HEADER.SEQ.SysYmd] = sSysYmd; + aCommHead[Column.COMM_HEADER.SEQ.SysHms] = sSysHms; + aCommHead[Column.COMM_HEADER.SEQ.EncType] = sEncType; + aCommHead[Column.COMM_HEADER.SEQ.ErrCd] = "000"; + + return ItemColumn.MakeMessage(aCommHead, Column.COMM_HEADER.LEN, Column.COMM_HEADER.TYPE); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return ""; + } + + private string SendProcess(string sSvrIp, int iPort, int iTimeout, string[] aKey, string sMsgType, Hashtable htSendData) + { + string sRet = UserCom.RST_ERR; + + try + { + // JSON 객체로 변환 + string sJsonSendData = JsonConvert.SerializeObject(htSendData); + + string sJsonRecvData = string.Empty; + + string sCmpCd = aKey[0]; + string sBrandCd = aKey[1]; + string sStorCd = aKey[2]; + string sSaleDt = aKey[3]; + string sPosNo = aKey[4]; + string sTradeNo = aKey[5]; + string sSysYmd = DateTime.Now.ToString("yyyyMMdd"); + string sSysHms = DateTime.Now.ToString("HHmmss"); + + if(sPosNo.Length < 2) + { + sPosNo = sPosNo.PadLeft(2, ' '); + } + + // 암호화 데이터로 변환 + string sEncryptedSendData = UserLog.UserAES.DynamicKeyEncrypt(sPosNo, sSysYmd + sSysHms, sJsonSendData); + // JSON string 길이를 구하기 위해 byte 변환 + Byte[] arTempData = Encoding.UTF8.GetBytes(sEncryptedSendData); + + string sCommHeader = this.MakeCommHeader(arTempData.Length, sMsgType, PosConst.ENCRYPT_MODE.ENC_ON, sCmpCd, sBrandCd, sStorCd, sSaleDt, sPosNo, sTradeNo, sSysYmd, sSysHms); + + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.INFO_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)), + // CmUtil.RPadH("[SEND" + ":" + sSvrIp + ":" + iPort, 27) + "] " + sCommHeader + sJsonSendData); + + int iRet = DataSendReceive(sSvrIp, iPort, iTimeout, sCommHeader + sEncryptedSendData); + + if (iRet == UserCom.OK) + { + // 성공 시 Thread Term 조정 위한 Error 발생 카운트 감소. 0 이상일 경우만 감소. + if (iErrorCount > 0) + iErrorCount -= 1; + + sRet = UserCom.RST_OK; + } + else + { + // 실패 시 Thread Term 조정 위해 Error 발생 카운트 증가 + iErrorCount += 1; + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed sending Tran/Log. [MsgType:" + sMsgType + + "][CmpCd:" + sCmpCd + "][BrandCd:" + sBrandCd + + "][StoreCd:" + sStorCd + "][SaleDt:" + sSaleDt + + "][Pos:" + sPosNo + "][TradeNo:" + sTradeNo + "]"); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + + private int DataSendReceive(string sIP, int iPort, int iTimeout, string sSendData) + { + int iRet = UserCom.NG; + try + { + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeout; + + iRet = SendReceiveData(sSendData); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + private int SendReceiveData(string sSendData) + { + int iRet = UserCom.NG; + int nRecvLen = 0; + string sRecvData = string.Empty; + + try + { + m_sendSocket = new TcpSocket(m_ServerIp, m_ServerPort); + + // Data Send & Receive + nRecvLen = m_sendSocket.SendReceiveData(sSendData, ref sRecvData, m_ServerTimeout); + + //UserLog.WriteLogFile(UserCom.LOG_SOCK, + // UserCom.INFO_LEVEL, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)), + // CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvData); + + if (sRecvData.Length == TcpSocket.COMM_HEAD_LEN) + { + if (sRecvData.Substring(56, 3).Equals("000")) + { + iRet = UserCom.OK; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "NetworkTranSend Error : Exception !!! " + ex.Message); + } + return iRet; + } + #endregion + + #region 점포점검 저장 데이터 전송 + #region POS IRT 전문 송/수신 + public string ExecutePosIrt(string sMsgType, string sSvrIP, int nSvrPort, int nTimeout, Hashtable htSendData, ref Hashtable htRecvData, bool bVisibleMode) + { + string sRet = UserCom.RST_ERR; + Hashtable m_htRecvData = null; // 통신 수신 데이터 (JSON) + + try + { + string sCommHead = ItemColumn.MakeCommHeader(0, sMsgType); // 통신해더 생성 + + if (bVisibleMode == false) + { + // 팝업 화면 미표시 + m_bIRTComplete = true; + m_htRecvData = null; + + Thread thrSecondDisp = new Thread(() => sRet = OnNetworkIRT(sSvrIP, nSvrPort, nTimeout, sCommHead, htSendData)); + thrSecondDisp.Start(); + + while (m_bIRTComplete == true) + { + Thread.Sleep(100); + } + htRecvData = m_htRecvData; + } + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region POS IRT 전문 송수신 - 화면 미표시용 + private string OnNetworkIRT(string sServerIp, int nServerPort, int nTimeOut, string sCommHead, Hashtable htSendData) + { + string sRet = UserCom.RST_ERR; + + int nRecvRet = -1; + try + { + m_bIRTComplete = true; + + //if (m_cNetService == null) m_cNetJSONService = (INetworkJSON)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_IRT); + nRecvRet = IRTSendReceive(sServerIp, nServerPort, nTimeOut, sCommHead, htSendData, ref m_htRecvData); + + if (nRecvRet == BaseCom.OK) sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "Process Exception !!! " + ex.Message); + } + finally + { + m_bIRTComplete = false; + } + return sRet; + } + #endregion + + #region IRT Byte로의 Send/Recv (공통헤더의 전문길이 0으로 세팅해서 송신. 자동 계산) + public int IRTSendReceive(string sIP, int iPort, int iTimeOut, string sCommData, Hashtable htData, ref Hashtable htRecvData) + { + int nStat = 9; + string sReturn = string.Empty; + string sRecvCommHeader = string.Empty; + string sRecvData = string.Empty; + + m_ServerIp = sIP; + m_ServerPort = iPort; + m_ServerTimeout = iTimeOut; + + string sJsonSendData = ""; + string sJsonReceiveData = ""; + + try + { + if (m_ServerIp != "" && m_ServerPort != 0) + { + if (htData != null) + { + sJsonSendData = JsonConvert.SerializeObject(htData); + + //sJsonSendData 암호화 처리 ... + + Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sJsonSendData); + string sDataLen = string.Format("{0:000000}", sBytTempBuff.Length); + + sCommData = sDataLen + sCommData.Substring(TcpSocket.COMM_MSGLEN); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[SEND" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sCommData + sJsonSendData); + } + + //Send Receive + nStat = SendReceiveData(sCommData + sJsonSendData, ref sJsonReceiveData); + + if (sJsonReceiveData != null && sJsonReceiveData != "") + { + sRecvCommHeader = sJsonReceiveData.Substring(0, TcpSocket.COMM_HEAD_LEN); + sRecvData = sJsonReceiveData.Substring(TcpSocket.COMM_HEAD_LEN); + //sJsonReceiveData 복호화 처리 ... + + htRecvData = JsonConvert.DeserializeObject(sRecvData); + + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (Project Name (프로젝트명)) + "NetworkJSON.IRTSendReceive()", CmUtil.RPadH("[RECV" + ":" + m_ServerIp + ":" + m_ServerPort, 27) + "] " + sRecvCommHeader + sRecvData); + } + } + } + catch (Exception e) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.IRTSendReceive()", e.ToString()); + } + + return nStat; + } + #endregion + + #region IRT전문의 Send/Receive + private int SendReceiveData(string pSendData, ref string pRecvData, bool bIsDmbIf = false) + { + int nRecvLen = 0; + int nStat = BaseCom.NG; + string rRecvData = ""; + + try + { + m_IrtSocket = new TcpSocket(m_ServerIp, m_ServerPort, m_ServerTimeout); + + // Data Send & Receive + System.Diagnostics.Debug.Print("요청:" + pSendData); + nRecvLen = m_IrtSocket.SendReceiveData(pSendData, ref rRecvData, m_ServerTimeout, bIsDmbIf); + System.Diagnostics.Debug.Print("응답:" + rRecvData); + + if (nRecvLen > 0) + { + pRecvData = rRecvData; + nStat = BaseCom.OK; + } + else + { + pRecvData = ""; + nStat = nRecvLen; + } + m_IrtSocket.Close(); + } + catch (Exception e) + { + if (m_IrtSocket != null) m_IrtSocket.Close(); + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + "NetworkJSON.SendReceiveData()", "NetworkIrt Error : ThreadNetworkIrt Exception !!! " + e.ToString()); + } + finally + { + } + + System.Threading.Thread.Sleep(100); + return nStat; + } + #endregion + #endregion + + //*----------------------------------------------------------------------------------------------------------*/ + // TranLog / Journal / ApprovalLog / ETC Tran / ETC Journal 데이터 생성 + //*----------------------------------------------------------------------------------------------------------*/ + + #region 01 - TranLog 전송 + /// + /// TranLog Sending Execution (TranLog 전송 실행) + /// + public void TranLogSendProcess() + { + string sendFlag = string.Empty; + string sCMP_CD = string.Empty; + string sSTOR_CD = string.Empty; + string sSALE_DT = string.Empty; + string sPOS_NO = string.Empty; + string sTRADE_NO = string.Empty; + + string sREG_NO = string.Empty; + string sTRADE_DIV = string.Empty; + string sTRAIN_MODE_YN = string.Empty; + string sTRADE_KINDPER = string.Empty; + string sSYS_DT = string.Empty; + string sPAY_TIME = string.Empty; + string sORG_SALE_DT = string.Empty; + string sORG_POS_NO = string.Empty; + string sORG_TRADE_NO = string.Empty; + string sQTY = string.Empty; + string sTOTSALE_AMT = string.Empty; + string sTOTDC_AMT = string.Empty; + string sNET_SALE_AMT = string.Empty; + DataTable dtReturn = null; + try + { + // 전송할 TR 데이터 생성 + string sTranLog = GetTranLog(ref dtReturn); + + if(sTranLog == "" || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sendFlag = "0"; // 0:미전송, 1:전송, 9:에러 + + DataRow dr = dtReturn.Rows[0]; + sCMP_CD = CmUtil.GetDataRowStr(dr, "CMP_CD"); + sSTOR_CD = CmUtil.GetDataRowStr(dr, "STOR_CD"); + sSALE_DT = CmUtil.GetDataRowStr(dr, "SALE_DT"); + sPOS_NO = CmUtil.GetDataRowStr(dr, "POS_NO"); + sTRADE_NO = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + + sREG_NO = CmUtil.GetDataRowStr(dr, "REG_NO"); + sTRADE_DIV = CmUtil.GetDataRowStr(dr, "TRADE_DIV"); + sTRAIN_MODE_YN = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); + sTRADE_KINDPER = CmUtil.GetDataRowStr(dr, "TRADE_KINDPER"); + sSYS_DT = CmUtil.GetDataRowStr(dr, "SYS_DT"); + sPAY_TIME = CmUtil.GetDataRowStr(dr, "PAY_TIME"); + sORG_SALE_DT = CmUtil.GetDataRowStr(dr, "ORG_BILLDT"); + sORG_POS_NO = CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO"); + sORG_TRADE_NO = CmUtil.GetDataRowStr(dr, "ORG_BILL_NO"); + sQTY = CmUtil.GetDataRowStr(dr, "QTY"); + sTOTSALE_AMT = CmUtil.GetDataRowStr(dr, "TOTSALE_AMT"); + sTOTDC_AMT = CmUtil.GetDataRowStr(dr, "TOTDC_AMT"); + sNET_SALE_AMT = CmUtil.GetDataRowStr(dr, "NET_SALE_AMT"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.TranPort), + 10000, + new string[] { sCMP_CD, m_cPosStatus.Base.BrandCd, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO }, + ItemConst.COMM_MSG_TYPE.TRAN, + MakeTranLogJsonData(dr, sTranLog)); + + if(sReturn == UserCom.RST_OK) + { + sendFlag = "1"; // 정상 전송 + + // 전송 건수 증가 + if( sSTOR_CD == m_cPosStatus.Base.StoreNo && sSALE_DT == m_cPosStatus.Base.SaleDate) + { + m_cPosStatus.Sale.TranSndCount++; + } + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sendFlag = "9"; + } + finally + { + // Flag Update + TranLogFlgUpdate(sCMP_CD, sSTOR_CD, sPOS_NO, sSALE_DT, sTRADE_NO, sendFlag); + } + } + + private Hashtable MakeTranLogJsonData(DataRow drData, string sTranLog) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - 회사코드 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.CmpCd, CmUtil.GetDataRowStr(drData, "CMP_CD")); + // 02 - 판매일자 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.SaleDt, CmUtil.GetDataRowStr(drData, "SALE_DT")); + // 03 - 점포코드 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.StorCd, CmUtil.GetDataRowStr(drData, "STOR_CD")); + // 04 - 포스번호 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.PosNo, CmUtil.GetDataRowStr(drData, "POS_NO")); + // 05 - 거래번호 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.TradeNo, CmUtil.GetDataRowStr(drData, "TRADE_NO")); + // 06 - 등록번호 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.RegNo, CmUtil.GetDataRowStr(drData, "REG_NO")); + // 07 - 거래구분 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.TradeDiv, CmUtil.GetDataRowStr(drData, "TRADE_DIV")); + // 08 - 연습모드 여부 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.TrainModeYn, CmUtil.GetDataRowStr(drData, "TRAIN_MODE_YN")); + // 09 - 거래종별 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.TradeKindper, CmUtil.GetDataRowStr(drData, "TRADE_KINDPER")); + // 10 - 시스템 일시 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.SysDt, CmUtil.GetDataRowStr(drData, "SYS_DT")); + // 11 - 결제 시간 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.PayTime, CmUtil.GetDataRowStr(drData, "PAY_TIME")); + // 12 - 원거래판매 일자 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.OrgSaleDt, CmUtil.GetDataRowStr(drData, "ORG_BILLDT")); + // 13 - 원거래포스번호 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.OrgPosNo, CmUtil.GetDataRowStr(drData, "ORG_BILL_POSNO")); + // 14 - 원거래 거래번호 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.OrgTradeNo, CmUtil.GetDataRowStr(drData, "ORG_BILL_NO")); + // 15 - 수량 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.Qty, CmUtil.GetDataRowStr(drData, "QTY")); + // 16 - 총매출금액 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.TotSaleAmt, CmUtil.GetDataRowStr(drData, "TOTSALE_AMT")); + // 17 - 총할인금액 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.TotDcAmt, CmUtil.GetDataRowStr(drData, "TOTDC_AMT")); + // 18 - 순매출금액 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.NetSaleAmt, CmUtil.GetDataRowStr(drData, "NET_SALE_AMT")); + // 19 - 거래데이터 + htData.Add(Column.IQ_TRAN_LOG_REQ.DATA.DealData, sTranLog); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ThreadSVRSendRun Exception : " + ex.Message); + } + + return htData; + } + + /// + /// 정상으로 송신한 경우 Flg추가용 쿼리 + /// + /// + /// + /// + /// + /// + /// + /// + public int TranLogFlgUpdate(string pCompanyCd, string pStoreNo, string pPosNo, string pSaleDate, string pTradeNo, string pSendFlag) + { + int iRet = UserCom.NG; + string sQuery = ""; + + try + { + if (pCompanyCd.Trim() == "") return iRet; + if (pSaleDate.Trim() == "") return iRet; + if (pStoreNo.Trim() == "") return iRet; + if (pPosNo.Trim() == "") return iRet; + if (pTradeNo.Trim() == "") return iRet; + + sQuery = "UPDATE POSLOG..TR_SALE_HEADER "; + sQuery += " SET SEND_YN = '" + pSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + pCompanyCd + "' "; + sQuery += " AND STOR_CD = '" + pStoreNo + "' "; + sQuery += " AND SALE_DT = '" + pSaleDate + "' "; + sQuery += " AND POS_NO = '" + pPosNo + "' "; + sQuery += " AND TRADE_NO = '" + pTradeNo + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + /// + /// TranLog 조회 + /// + /// 0:미전송, 1:전송, 9:에러 + /// + public string GetTranLog(ref DataTable dtReturn) + { + string sQuery = ""; + string sCMP_CD = ""; + string sSTOR_CD = ""; + string sSALE_DT = ""; + string sPOS_NO = ""; + string sTRADE_NO = ""; + + string sTranData = ""; + DataTable dtTempReturn = null; + + try + { + sQuery = " SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO "; + sQuery += " , '' AS REG_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT "; + sQuery += " , PAY_TIME, ORG_BILLDT, ORG_BILL_POSNO, ORG_BILL_NO, QTY "; + sQuery += " , TOTSALE_AMT, TOTDC_AMT, NET_SALE_AMT "; + sQuery += " FROM POSLOG..TR_SALE_HEADER "; + sQuery += " WHERE SEND_YN <> '1' "; + //#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 start + //grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 start + if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) != true) + sQuery += " AND SEND_YN <> 'A' "; + //grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 end + //#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 end + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT, TRADE_NO "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + sCMP_CD = drTempReturn["CMP_CD"].ToString(); + sSTOR_CD = drTempReturn["STOR_CD"].ToString(); + sSALE_DT = drTempReturn["SALE_DT"].ToString(); + sPOS_NO = drTempReturn["POS_NO"].ToString(); + sTRADE_NO = drTempReturn["TRADE_NO"].ToString(); + + sTranData = GetTranHeader(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranDetail(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranPay(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + //+ GetTranDC(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranCpiRslt(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranEtc(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + //+ GetTranDpst(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranAdmt(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranGuestCnt(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO) + + GetTranReservInfo(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + sTranData = ""; + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sTranData; + } + + private string GetTranHeader(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '" + ItemConst.IRT_TRAN_TYPE.TranHeader + "' + '|' + '000000' + '|' + '0' + '|' + ISNULL(TRADE_DIV, '') + '|' + ISNULL(TRAIN_MODE_YN, '') + '|' + ISNULL(TRADE_KINDPER, '') + '|' + ISNULL(SYS_DT, '') + '|' + ISNULL(ORD_TIME, '') + '|' + "; + sQuery += " ISNULL(PAY_TIME, '') + '|' + ISNULL(PIC_NO, '') + '|' + ISNULL(ORD_PIC_NO, '') + '|' + ISNULL(STOR_OWN_PART_TIME_DIV, '') + '|' + ISNULL(ORG_BILL_POSNO, '') + '|' + "; + sQuery += " ISNULL(ORG_BILLDT, '') + '|' + ISNULL(ORG_BILL_NO, '') + '|' + ISNULL(RTN_RSN_CD, '') + '|' + ISNULL(RTN_RSN_MEMO, '') + '|' + ISNULL(NONSALES_RSN_CD, '') + '|' + "; + sQuery += " ISNULL(RESERV_NO, '') + '|' + ISNULL(RESERV_DT, '') + '|' + ISNULL(CUST_NO, '') + '|' + ISNULL(ORD_DIV, '') + '|' + ISNULL(FLOOR_CD, '') + '|' + "; + sQuery += " ISNULL(TBL_NO, '') + '|' + ISNULL(GUESTFLOOR, '') + '|' + ISNULL(FRGNR_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(CUSTCNT, 0)) + '|' + ISNULL(PAY_GNDR_DIV, '') + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(PAY_AGE, 0)) + '|' + CONVERT(VARCHAR, ISNULL(MAN_CMPNPSN_CNT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(WOMAN_CMPNPSN_CNT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(TOTSALE_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(TOTDC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(NET_SALE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ITEM_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(COOP_CARD_DC_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(POINT_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPN_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(EMP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SET_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ETC_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(EXCEP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(TOT_VAT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_VAT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ETC_VAT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AF_ACCUM_POINT_AMT, 0)) + '|' + ISNULL(AF_ACCUM_POINT_INFO, '') + '|' + ISNULL(PPCARD_CUSTNM, '') + '|' + ISNULL(AMT_DUTCHPAY_YN, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_CNT, 0)) + '|'+ ISNULL(ORDER_NO, '') + '|' + "; + + + //#20170828 해피포인트 적립 제외 버튼 추가 phj, start + //기존 + //sQuery += " ISNULL(SLACK_FIELD, '') + '|' + ISNULL(MID_CLOSE_SEQ, '') + '|' + ISNULL(PPCARD_CUSTID, '') + '|' + ISNULL(PACK_TRADE_DIV, '') + '|' + ISNULL(VIP_TY, '') "; + //변경 + sQuery += " ISNULL(SLACK_FIELD, '') + '|' + ISNULL(MID_CLOSE_SEQ, '') + '|' + ISNULL(PPCARD_CUSTID, '') + '|' + ISNULL(PACK_TRADE_DIV, '') + '|' + ISNULL(VIP_TY, '') + '|' + ISNULL(HP_EXCLUDE_YN, '0')"; + //#20170828 해피포인트 적립 제외 버튼 추가 phj, end + + sQuery += " AS TR_HEADER "; + sQuery += " FROM POSLOG..TR_SALE_HEADER "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetTranDetail(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranDetail + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(ORD_TIME, '') + '|' + ISNULL(FLOOR_CD, '') + '|' + ISNULL(TBL_NO, '') + '|' + "; + sQuery += " ISNULL(SUB_SHOP_CD, '') + '|' + ISNULL(ITEM_PLU_CD, '') + '|' + ISNULL(ITEM_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(SALE_QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SALE_PRC, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(SALE_AMT, 0)) + '|' + ISNULL(FLAVOUR_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(FLAVOUR_WEIGHT, 0)) + '|' + ISNULL(ITEM_INPUT_DIV, '') + '|' + ISNULL(ITEM_BAR_CD, '') + '|' + "; + sQuery += " ISNULL(TAKE_IN_OUT_DIV, '') + '|' + ISNULL(ITEM_TAX_DIV, '') + '|' + ISNULL(TAX_AMT_INCLUDE_YN, '') + '|' + ISNULL(TAXRATE_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(APPLY_TAX_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_VAT, 0)) + '|' + "; + sQuery += " ISNULL(SVC_TAXREATE_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(BILL_AMT, 0)) + '|' + ISNULL(NONSALES_RSN_CD, '') + '|' + ISNULL(DC_DIV, '') + '|' + ISNULL(DC_TYPE, '') + '|' + CONVERT(VARCHAR, ISNULL(DC_RATE, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ITEM_DC_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(SUM_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_AMT, 0)) + '|' + ISNULL(COOP_CARD_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(COOP_CARD_DC_AMT, 0)) + '|' + ISNULL(POINT_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(POINT_DC_AMT, 0)) + '|' + "; + sQuery += " ISNULL(CPN_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(CPN_DC_AMT, 0)) + '|' + ISNULL(EMP_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(EMP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SET_DC_AMT, 0)) + '|' + ISNULL(ETC_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(ETC_DC_AMT, 0)) + '|' + "; + sQuery += " ISNULL(EXCEP_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(EXCEP_DC_AMT, 0)) + '|' + ISNULL(PACK_DIV, '') + '|' + ISNULL(SET_MENU_CD, '') + '|' + ISNULL(SUBPRC_MENU_KEY_DIV, '') + '|' + "; + //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start + //기존 + //sQuery += " ISNULL(CPI_PRESENT_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(SALE_GIFT_NO, '') + '|' + ISNULL(CPN_NO, '') + '|' + ISNULL(SLACK_FIELD, '') + '|' + ISNULL(DISPO_ITEM_DIV, '') + '|' + ISNULL(CANCEL_DIV, '0') + '|' + ISNULL(NOTAX_DIV, '') AS TR_DETAIL"; + //변경 + sQuery += " ISNULL(CPI_PRESENT_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(SALE_GIFT_NO, '') + '|' + ISNULL(CPN_NO, '') + '|' + ISNULL(SLACK_FIELD, '') + '|' + ISNULL(DISPO_ITEM_DIV, '') + '|' + ISNULL(CANCEL_DIV, '0') + '|' + ISNULL(NOTAX_DIV, '') + '|' + ISNULL(HPO_REG_YN, '') AS TR_DETAIL"; + //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end + + sQuery += " FROM POSLOG..TR_SALE_DETAIL "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetTranPay(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranPay + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(PAY_WAY_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(PAY_AMT, 0)) + '|' + ISNULL(PAY_DTL_CD_01, '') + '|' + ISNULL(PAY_DTL_CD_02, '') + '|' + "; + sQuery += " ISNULL(PAY_DTL_CD_03, '') + '|' + ISNULL(PAY_DTL_CD_04, '') + '|' + ISNULL(PAY_DTL_CD_05, '') + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_02, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(QTY_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_05, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_02, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_05, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_06, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_07, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_08, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_09, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_10, 0)) + '|' + ISNULL(OCCUR_ENTRY_01, '') + '|' + ISNULL(OCCUR_ENTRY_02, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_03, '') + '|' + ISNULL(OCCUR_ENTRY_04, '') + '|' + ISNULL(OCCUR_ENTRY_05, '') + '|' + ISNULL(OCCUR_ENTRY_06, '') + '|' + ISNULL(OCCUR_ENTRY_07, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_08, '') + '|' + ISNULL(OCCUR_ENTRY_09, '') + '|' + ISNULL(OCCUR_ENTRY_10, '') + '|' + ISNULL(OCCUR_ENTRY_11, '') + '|' + ISNULL(OCCUR_ENTRY_12, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_13, '') + '|' + ISNULL(OCCUR_ENTRY_14, '') + '|' + ISNULL(OCCUR_ENTRY_15, '') + '|' + ISNULL(OCCUR_ENTRY_16, '') + '|' + ISNULL(OCCUR_ENTRY_17, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_18, '') + '|' + ISNULL(OCCUR_ENTRY_19, '') + '|' + ISNULL(OCCUR_ENTRY_20, '') + '|' + ISNULL(OCCUR_ENTRY_21, '') + '|' + ISNULL(OCCUR_ENTRY_22, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_23, '') + '|' + ISNULL(OCCUR_ENTRY_24, '') + '|' + ISNULL(OCCUR_ENTRY_25, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(CANCEL_DIV, '') AS TR_PAY"; + sQuery += " FROM POSLOG..TR_SALE_PAY "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + //private string GetTranDC(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + //{ + // StringBuilder sbTranData = new StringBuilder(); + // string sQuery = ""; + // string sSQL = ""; + // DataTable dtTempReturn = null; + + // try + // { + // sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranDC + "' + '|' + DC_WAY_CD + '|' + CONVERT(VARCHAR, DC_AMT) + '|' + DC_DTL_CD_01 + '|' + DC_DTL_CD_02 + '|' + "; + // sQuery += " DC_DTL_CD_03 + '|' + DC_DTL_CD_04 + '|' + DC_DTL_CD_05 + '|' + CONVERT(VARCHAR, QTY_ENTRY_01) + '|' + CONVERT(VARCHAR, QTY_ENTRY_02) + '|' + "; + // sQuery += " CONVERT(VARCHAR, QTY_ENTRY_03) + '|' + CONVERT(VARCHAR, QTY_ENTRY_04) + '|' + CONVERT(VARCHAR, QTY_ENTRY_05) + '|' + CONVERT(VARCHAR, AMT_ENTRY_01) + '|' + CONVERT(VARCHAR, AMT_ENTRY_02) + '|' + "; + // sQuery += " CONVERT(VARCHAR, AMT_ENTRY_03) + '|' + CONVERT(VARCHAR, AMT_ENTRY_04) + '|' + CONVERT(VARCHAR, AMT_ENTRY_05) + '|' + CONVERT(VARCHAR, AMT_ENTRY_06) + '|' + CONVERT(VARCHAR, AMT_ENTRY_07) + '|' + "; + // sQuery += " CONVERT(VARCHAR, AMT_ENTRY_08) + '|' + CONVERT(VARCHAR, AMT_ENTRY_09) + '|' + CONVERT(VARCHAR, AMT_ENTRY_10) + '|' + OCCUR_ENTRY_01 + '|' + OCCUR_ENTRY_02 + '|' + "; + // sQuery += " OCCUR_ENTRY_03 + '|' + OCCUR_ENTRY_04 + '|' + OCCUR_ENTRY_05 + '|' + OCCUR_ENTRY_06 + '|' + OCCUR_ENTRY_07 + '|' + "; + // sQuery += " OCCUR_ENTRY_08 + '|' + OCCUR_ENTRY_09 + '|' + OCCUR_ENTRY_10 + '|' + OCCUR_ENTRY_11 + '|' + OCCUR_ENTRY_12 + '|' + "; + // sQuery += " OCCUR_ENTRY_13 + '|' + OCCUR_ENTRY_14 + '|' + OCCUR_ENTRY_15 + '|' + OCCUR_ENTRY_16 + '|' + OCCUR_ENTRY_17 + '|' + "; + // sQuery += " OCCUR_ENTRY_18 + '|' + OCCUR_ENTRY_19 + '|' + OCCUR_ENTRY_20 + '|' + OCCUR_ENTRY_21 + '|' + OCCUR_ENTRY_22 + '|' + "; + // sQuery += " OCCUR_ENTRY_23 + '|' + OCCUR_ENTRY_24 + '|' + OCCUR_ENTRY_25 + '|' + CONVERT(VARCHAR, BILLSPR_NO) + '|' + CANCEL_DIV AS TR_DC"; + // sQuery += " FROM POSLOG..TR_SALE_DC "; + // sQuery += " WHERE CMP_CD = '{0}' "; + // sQuery += " AND STOR_CD = '{1}' "; + // sQuery += " AND SALE_DT = '{2}' "; + // sQuery += " AND POS_NO = '{3}' "; + // sQuery += " AND TRADE_NO = '{4}' "; + + // sSQL = string.Format(sQuery + // , sCMP_CD + // , sSTOR_CD + // , sSALE_DT + // , sPOS_NO + // , sTRADE_NO); + + // if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + // { + // if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + // { + // foreach (DataRow dr in dtTempReturn.Rows) + // { + // sbTranData.Append(dr[0].ToString()); + // } + // } + // } + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return sbTranData.ToString(); + //} + + private string GetTranCpiRslt(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranCpiRslt + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(CPI_TYPE, '') + '|' + CONVERT(VARCHAR, ISNULL(NMTAX_SEQ, 0)) + '|' + ISNULL(CPI_CD, '') + '|' + ISNULL(SUB_SHOP_CD, '') + '|' + "; + sQuery += " ISNULL(ITEM_PLU_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(DC_QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(DC_SUM_AMT, 0)) + '|' + ISNULL(CPI_DIV, '') + '|' + "; + sQuery += " ISNULL(PAYMNT_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(ACCUM_POINT, 0)) + '|' + ISNULL(LTTR_NMPLAT_NO, '') + '|' + ISNULL(CPI_CUST_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + "; + sQuery += " ISNULL(SLACK_FIELD, '') + '|' + ISNULL(CANCEL_DIV, '') AS TR_CPI_RSLT "; + sQuery += " FROM POSLOG..TR_SALE_CPI_RSLT "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetTranEtc(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranEtc + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(ETC_WAY_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(ETC_AMT, 0)) + '|' + "; + sQuery += " ISNULL(ETC_DTL_CD_01, '') + '|' + ISNULL(ETC_DTL_CD_02, '') + '|' + ISNULL(ETC_DTL_CD_03, '') + '|' + ISNULL(ETC_DTL_CD_04, '') + '|' + ISNULL(ETC_DTL_CD_05, '') + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(QTY_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_02, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_05, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_02, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_05, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_06, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_07, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_08, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_09, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_10, 0)) + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_01, '') + '|' + ISNULL(OCCUR_ENTRY_02, '') + '|' + ISNULL(OCCUR_ENTRY_03, '') + '|' + ISNULL(OCCUR_ENTRY_04, '') + '|' + ISNULL(OCCUR_ENTRY_05, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_06, '') + '|' + ISNULL(OCCUR_ENTRY_07, '') + '|' + ISNULL(OCCUR_ENTRY_08, '') + '|' + ISNULL(OCCUR_ENTRY_09, '') + '|' + ISNULL(OCCUR_ENTRY_10, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_11, '') + '|' + ISNULL(OCCUR_ENTRY_12, '') + '|' + ISNULL(OCCUR_ENTRY_13, '') + '|' + ISNULL(OCCUR_ENTRY_14, '') + '|' + ISNULL(OCCUR_ENTRY_15, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_16, '') + '|' + ISNULL(OCCUR_ENTRY_17, '') + '|' + ISNULL(OCCUR_ENTRY_18, '') + '|' + ISNULL(OCCUR_ENTRY_19, '') + '|' + ISNULL(OCCUR_ENTRY_20, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_21, '') + '|' + ISNULL(OCCUR_ENTRY_22, '') + '|' + ISNULL(OCCUR_ENTRY_23, '') + '|' + ISNULL(OCCUR_ENTRY_24, '') + '|' + ISNULL(OCCUR_ENTRY_25, '') + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(CANCEL_DIV, '') AS TR_ETC"; + sQuery += " FROM POSLOG..TR_SALE_ETC "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + //private string GetTranDpst(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + //{ + // StringBuilder sbTranData = new StringBuilder(); + // string sQuery = ""; + // string sSQL = ""; + // DataTable dtTempReturn = null; + + // try + // { + // sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranDpst + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(DPST_WTHDR_TYPE, '') + '|' + ISNULL(DPST_WTHDR_CD, '') + '|' + ISNULL(DPST_WTHDR_ACC_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(DPST_WTHDR_QTY, 0)) + '|' + "; + // sQuery += " CONVERT(VARCHAR, ISNULL(DPST_WTHDR_AMT, 0)) + '|' + ISNULL(DPST_WTHDR_NM, '') + '|' + ISNULL(CUST_NO, '') + '|' + ISNULL(STOR_PAY_TYPE, '') + '|' + ISNULL(ETC_REASON, '') + '|' + ISNULL(SLACK_FIELD_01, '') + '|' + ISNULL(SLACK_FIELD_02, '') + '|' + ISNULL(SLACK_FIELD_03, '') + '|' + "; + // sQuery += " ISNULL(SLACK_FIELD_04, '') + '|' + SLACK_FIELD_05 AS TR_DPST "; + // sQuery += " FROM POSLOG..TR_SALE_DPST_WTHDR "; + // sQuery += " WHERE CMP_CD = '{0}' "; + // sQuery += " AND SALE_DT = '{1}' "; + // sQuery += " AND STOR_CD = '{2}' "; + // sQuery += " AND POS_NO = '{3}' "; + // sQuery += " AND TRADE_NO = '{4}' "; + + // sSQL = string.Format(sQuery + // , sCMP_CD + // , sSALE_DT + // , sSTOR_CD + // , sPOS_NO + // , sTRADE_NO); + + // if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + // { + // if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + // { + // foreach (DataRow dr in dtTempReturn.Rows) + // { + // sbTranData.Append(dr[0].ToString()); + // } + // } + // } + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return sbTranData.ToString(); + //} + + private string GetTranAdmt(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranAdmt + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(ADMT_TYPE, '') + '|' + ISNULL(ADMT_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT, 0)) + '|' + "; + sQuery += " ISNULL(SLACK_FIELD_01, '') + '|' + ISNULL(SLACK_FIELD_02, '') + '|' + ISNULL(SLACK_FIELD_03, '') + '|' + ISNULL(SLACK_FIELD_04, '') + '|' + "; + sQuery += " ISNULL(SLACK_FIELD_05, '') AS TR_ADMT "; + sQuery += " FROM POSLOG..TR_SALE_ADMT "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetTranGuestCnt(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranGuestCnt + "' + '|' + '000000' + '|' + '0' + '|' + CONVERT(VARCHAR, ISNULL(MALE_10L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(MALE_20L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(MALE_30L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(MALE_40L, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(MALE_50L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(FMALE_10L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(FMALE_20L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(FMALE_30L, 0)) + '|' + CONVERT(VARCHAR, ISNULL(FMALE_40L, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(FMALE_50L, 0)) AS TR_GUESTCNT "; + sQuery += " FROM POSLOG..TR_SALE_GUESTCNT "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetTranReservInfo(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sTRADE_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranReservInfo + "' + '|' + '000000' + '|' + '0' + '|' + ISNULL(RESERV_NO, 0) + '|' +ISNULL(RESERV_REG_DT, 0) + '|' + ISNULL(RESERV_REG_TM, 0) + '|' + ISNULL(ONOFF_DIV, 0) + '|' + "; + sQuery += " ISNULL(CUSTNM, 0) + '|' + ISNULL(CUST_PHN_NO, 0) + '|' + ISNULL(RESERV_DT, 0) + '|' + ISNULL(RESERV_TM, 0) + '|' + ISNULL(RESERV_MEMO, 0) AS TR_RESERVINFO "; + sQuery += " FROM POSLOG..TR_RESERV_INFO "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND TRADE_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sTRADE_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + #endregion + + #region 02 - Journal 전송 + /// + /// Journal Sending Execution (Journal 전송 실행) + /// + public void JournalSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + try + { + // 전송할 Journal 데이터 생성 + htData = GetJournalData(ref dtReturn); + + if(dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sTradeNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "TRADE_NO"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + Convert.ToInt32(m_cPosStatus.Base.JrnlTimeout), + new string[] { sCmpCd, m_cPosStatus.Base.BrandCd, sStorCd, sSaleDt, sPosNo, sTradeNo }, + ItemConst.COMM_MSG_TYPE.JOURNAL, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + + // 전송 건수 증가 + if (sStorCd == m_cPosStatus.Base.StoreNo && sSaleDt == m_cPosStatus.Base.SaleDate) + { + m_cPosStatus.Sale.JourSndCount++; + } + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + JournalFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sTradeNo, sSendFlag); + } + } + + private int JournalFlgUpdate(string sCmpCd, string sStorCd, string sPosNo, string sSaleDt, string sTradeNo, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + if (sPosNo.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sTradeNo.Trim() == "") return iRet; + + sQuery += " UPDATE POSLOG..TR_SALE_JOURNAL "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND TRADE_NO = '" + sTradeNo + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + public Hashtable GetJournalData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + string sCmpCd = string.Empty; + string sSaleDt = string.Empty; + string sStorCd = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + + DataTable dtTempReturn = null; + try + { + sQuery += " SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO "; + sQuery += " , '' AS REG_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT "; + sQuery += " , SYS_TIME, PIC_NO, BILL_AMT, JOURNAL_DATA "; + //grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start + sQuery += " , HPC_SAVE_APPR_DT, HPC_SAVE_APPR_NO, HPC_USE_APPR_DT, HPC_USE_APPR_NO "; + //grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end + sQuery += " FROM POSLOG..TR_SALE_JOURNAL "; + sQuery += " WHERE SEND_YN <> '1' "; + //#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 start + //grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 start + if(m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) != true) + sQuery += " AND SEND_YN <> 'A' "; + //grayber@20180228 [BRKR] 인천공항 SEND_YN 매출전송유무 'A' 제거 end + //#20180131 인천공항 통합POS 사용유무가 사용이면 SEND_YN을 A로 설정 end + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT, TRADE_NO "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if(dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeJournalJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + private Hashtable MakeJournalJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - 회사코드 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.CmpCd, CmUtil.GetDataRowStr(drData, "CMP_CD")); + // 02 - 점포코드 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.StorCd, CmUtil.GetDataRowStr(drData, "STOR_CD")); + // 03 - 판매일자 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.SaleDt, CmUtil.GetDataRowStr(drData, "SALE_DT")); + // 04 - 포스번호 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.PosNo, CmUtil.GetDataRowStr(drData, "POS_NO")); + // 05 - 거래번호 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.TradeNo, CmUtil.GetDataRowStr(drData, "TRADE_NO")); + // 06 - 등록번호 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.RegNo, CmUtil.GetDataRowStr(drData, "REG_NO")); + // 07 - 거래구분 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.TradeDiv, CmUtil.GetDataRowStr(drData, "TRADE_DIV")); + // 08 - 연습모드 여부 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.TrainModeYn, CmUtil.GetDataRowStr(drData, "TRAIN_MODE_YN")); + // 09 - 거래종별 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.TradeKindper, CmUtil.GetDataRowStr(drData, "TRADE_KINDPER")); + // 10 - 시스템일자 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.SysDt, CmUtil.GetDataRowStr(drData, "SYS_DT")); + // 11 - 시스템시간 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.SysTime, CmUtil.GetDataRowStr(drData, "SYS_TIME")); + // 12 - 담당자번호 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.PicNo, CmUtil.GetDataRowStr(drData, "PIC_NO")); + // 13 - 영수금액 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.BillAmt, CmUtil.GetDataRowStr(drData, "BILL_AMT")); + // 14 - 저널데이터 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.JournalData, CmUtil.GetDataRowStr(drData, "JOURNAL_DATA")); + + //grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start + // 15 - 해피포인트 적립 승인일자 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.HpcSaveApprDt, CmUtil.GetDataRowStr(drData, "HPC_SAVE_APPR_DT")); + // 16 - 해피포인트 적립 승인번호 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.HpcSaveApprNo, CmUtil.GetDataRowStr(drData, "HPC_SAVE_APPR_NO")); + // 17 - 해피포인트 사용 승인일자 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.HpcUseApprDt, CmUtil.GetDataRowStr(drData, "HPC_USE_APPR_DT")); + // 18 - 해피포인트 사용 승인번호 + htData.Add(Column.IQ_JOURNAL_REQ.DATA.HpcUseApprNo, CmUtil.GetDataRowStr(drData, "HPC_USE_APPR_NO")); + //grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + #endregion + + #region 03 - ApprovalLog 전송 + public void ApprovalLogSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + string sSeq = string.Empty; + try + { + // 전송할 승인로그 데이터 생성 + htData = GetApprovalLog(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sTradeNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "TRADE_NO"); + sSeq = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SEQ"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + Convert.ToInt32(m_cPosStatus.Base.JrnlTimeout), + new string[] { sCmpCd, m_cPosStatus.Base.BrandCd, sStorCd, sSaleDt, sPosNo, sTradeNo }, + ItemConst.COMM_MSG_TYPE.APPRLOG, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + ApprovalLogFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sTradeNo, sSeq, sSendFlag); + } + } + + private int ApprovalLogFlgUpdate(string sCmpCd, string sStorCd, string sPosNo, string sSaleDt, string sTradeNo, string sSeq, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + if (sPosNo.Trim() == "") return iRet; + if (sTradeNo.Trim() == "") return iRet; + if (sSeq.Trim() == "") return iRet; + + sQuery += " UPDATE POSLOG..TR_SALE_APPR_LOG "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND TRADE_NO = '" + sTradeNo + "' "; + sQuery += " AND SEQ = '" + sSeq + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + public Hashtable GetApprovalLog(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + sQuery += " SELECT TOP 1 "; + sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, SEQ, TRADE_DIV "; + sQuery += " , PAY_WAY_CD, PAY_DTL_CD, INQ_TYPE, TRAN_TYPE, CARD_NO, RES_CD, RES_MSG, PAY_AMT "; + sQuery += " , APPR_NO, APPR_DT, APPR_TIME, APPR_LOG, SEND_YN, REG_DATE, REG_ID, UPD_DATE "; + sQuery += " , ISNULL(AMT_ENTRY_01, 0) AMT_ENTRY_01 "; + sQuery += " , ISNULL(AMT_ENTRY_02, 0) AMT_ENTRY_02 "; + sQuery += " , ISNULL(AMT_ENTRY_03, 0) AMT_ENTRY_03 "; + sQuery += " , ISNULL(AMT_ENTRY_04, 0) AMT_ENTRY_04 "; + sQuery += " , ISNULL(AMT_ENTRY_05, 0) AMT_ENTRY_05 "; + + sQuery += " , ISNULL(AMT_ENTRY_06, 0) AMT_ENTRY_06 "; + sQuery += " , ISNULL(AMT_ENTRY_07, 0) AMT_ENTRY_07 "; + sQuery += " , ISNULL(AMT_ENTRY_08, 0) AMT_ENTRY_08 "; + sQuery += " , ISNULL(AMT_ENTRY_09, 0) AMT_ENTRY_09 "; + + sQuery += " , ISNULL(OCCUR_ENTRY_01, '') OCCUR_ENTRY_01 "; + sQuery += " , ISNULL(OCCUR_ENTRY_02, '') OCCUR_ENTRY_02 "; + sQuery += " , ISNULL(OCCUR_ENTRY_03, '') OCCUR_ENTRY_03 "; + sQuery += " , ISNULL(OCCUR_ENTRY_04, '') OCCUR_ENTRY_04 "; + sQuery += " , ISNULL(OCCUR_ENTRY_05, '') OCCUR_ENTRY_05 "; + sQuery += " , ISNULL(OCCUR_ENTRY_06, '') OCCUR_ENTRY_06 "; + sQuery += " , ISNULL(OCCUR_ENTRY_07, '') OCCUR_ENTRY_07 "; + sQuery += " , ISNULL(OCCUR_ENTRY_08, '') OCCUR_ENTRY_08 "; + sQuery += " , ISNULL(OCCUR_ENTRY_09, '') OCCUR_ENTRY_09 "; + + sQuery += " , ISNULL(USE_YN, '1') USE_YN "; + + sQuery += " FROM POSLOG..TR_SALE_APPR_LOG "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT, TRADE_NO, SEQ "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeApprovalLogJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + private Hashtable MakeApprovalLogJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - 회사코드 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.CmpCd, CmUtil.GetDataRowStr(drData, "CMP_CD")); + // 02 - 점포코드 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.StorCd, CmUtil.GetDataRowStr(drData, "STOR_CD")); + // 03 - 판매일자 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.SaleDt, CmUtil.GetDataRowStr(drData, "SALE_DT")); + // 04 - 포스번호 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.PosNo, CmUtil.GetDataRowStr(drData, "POS_NO")); + // 05 - 거래번호 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.TradeNo, CmUtil.GetDataRowStr(drData, "TRADE_NO")); + // 06 - 순번 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.Seq, CmUtil.GetDataRowStr(drData, "SEQ")); + // 07 - 판매구분 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.TradeDiv, CmUtil.GetDataRowStr(drData, "TRADE_DIV")); + // 08 - 결제 구분 코드 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.PayWayCd, CmUtil.GetDataRowStr(drData, "PAY_WAY_CD")); + // 09 - 결제 상세 코드 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.PayDtlCd, CmUtil.GetDataRowStr(drData, "PAY_DTL_CD")); + // 10 - 승인구분 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.InqType, CmUtil.GetDataRowStr(drData, "INQ_TYPE")); + // 11 - 요청구분 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.TranType, CmUtil.GetDataRowStr(drData, "TRAN_TYPE")); + // 12 - 카드번호 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.CardNo, CmUtil.GetDataRowStr(drData, "CARD_NO")); + // 13 - 응답상태값 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.ResCd, CmUtil.GetDataRowStr(drData, "RES_CD")); + // 14 - 응답 메시지 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.ResMsg, CmUtil.GetDataRowStr(drData, "RES_MSG")); + // 15 - 결제금액 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.PayAmt, CmUtil.GetDataRowStr(drData, "PAY_AMT")); + // 16 - 승인번호 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.ApprNo, CmUtil.GetDataRowStr(drData, "APPR_NO")); + // 17 - 승인일자 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.ApprDt, CmUtil.GetDataRowStr(drData, "APPR_DT")); + // 18 - 승인시간 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.ApprTime, CmUtil.GetDataRowStr(drData, "APPR_TIME")); + // 19 - 입력데이터 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.ApprLog, CmUtil.GetDataRowStr(drData, "APPR_LOG")); + // 20 - 등록자ID + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.RegId, CmUtil.GetDataRowStr(drData, "REG_ID")); + // 21 - 금액1 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_01, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_01")); + // 22 - 금액2 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_02, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_02")); + // 23 - 금액3 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_03, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_03")); + // 24 - 금액4 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_04, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_04")); + // 25 - 금액5 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_05, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_05")); + + // 26 - 금액6 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_06, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_06")); + // 27 - 금액7 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_07, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_07")); + // 28 - 금액8 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_08, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_08")); + // 29 - 금액9 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.AMT_ENTRY_09, CmUtil.GetDataRowStr(drData, "AMT_ENTRY_09")); + + // 30 - 입력값1 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_01, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_01")); + // 31 - 입력값2 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_02, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_02")); + // 32 - 입력값3 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_03, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_03")); + // 33 - 입력값4 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_04, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_04")); + // 34 - 입력값5 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_05, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_05")); + // 35 - 입력값6 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_06, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_06")); + // 36 - 입력값7 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_07, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_07")); + // 37 - 입력값8 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_08, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_08")); + // 38 - 입력값9 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.OCCUR_ENTRY_09, CmUtil.GetDataRowStr(drData, "OCCUR_ENTRY_09")); + + // 39 - 사용여부 + htData.Add(Column.IQ_APPROVAL_LOG_REQ.DATA.USE_YN, CmUtil.GetDataRowStr(drData, "USE_YN")); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + #endregion + + #region 04 - ETC TRAN 전송 + public void ETCTranLogSendProcess() + { + string sendFlag = string.Empty; + string sCMP_CD = string.Empty; + string sSTOR_CD = string.Empty; + string sSALE_DT = string.Empty; + string sPOS_NO = string.Empty; + string sTRADE_NO = string.Empty; + + string sREG_NO = string.Empty; + string sTRADE_DIV = string.Empty; + string sTRAIN_MODE_YN = string.Empty; + string sTRADE_KINDPER = string.Empty; + string sSYS_DT = string.Empty; + string sORG_SALE_DT = string.Empty; + string sORG_POS_NO = string.Empty; + string sORG_TRADE_NO = string.Empty; + string sQTY = string.Empty; + string sTOTSALE_AMT = string.Empty; + string sTOTDC_AMT = string.Empty; + string sNET_SALE_AMT = string.Empty; + DataTable dtReturn = null; + try + { + // 전송할 ETC TRAN 데이터 생성 + string sEtcTranLog = GetEtcTranLog(ref dtReturn); + + if (sEtcTranLog == "" || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sendFlag = "0"; // 0:미전송, 1:전송, 9:에러 + + DataRow dr = dtReturn.Rows[0]; + sCMP_CD = CmUtil.GetDataRowStr(dr, "CMP_CD"); + sSTOR_CD = CmUtil.GetDataRowStr(dr, "STOR_CD"); + sSALE_DT = CmUtil.GetDataRowStr(dr, "SALE_DT"); + sPOS_NO = CmUtil.GetDataRowStr(dr, "POS_NO"); + sREG_NO = CmUtil.GetDataRowStr(dr, "REG_NO"); + + sTRADE_NO = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + sTRADE_DIV = CmUtil.GetDataRowStr(dr, "TRADE_DIV"); + sTRAIN_MODE_YN = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); + sTRADE_KINDPER = CmUtil.GetDataRowStr(dr, "TRADE_KINDPER"); + sSYS_DT = CmUtil.GetDataRowStr(dr, "SYS_DT"); + sORG_SALE_DT = CmUtil.GetDataRowStr(dr, "ORG_BILLDT"); + sORG_POS_NO = CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO"); + sORG_TRADE_NO = CmUtil.GetDataRowStr(dr, "ORG_BILL_NO"); + sQTY = CmUtil.GetDataRowStr(dr, "QTY"); + sTOTSALE_AMT = CmUtil.GetDataRowStr(dr, "TOTSALE_AMT"); + sTOTDC_AMT = CmUtil.GetDataRowStr(dr, "TOTDC_AMT"); + sNET_SALE_AMT = CmUtil.GetDataRowStr(dr, "NET_SALE_AMT"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.EtcTranPort), + 8000, + new string[] { sCMP_CD, m_cPosStatus.Base.BrandCd, sSTOR_CD, sSALE_DT, sPOS_NO, sTRADE_NO }, + ItemConst.COMM_MSG_TYPE.ETCTRAN, + MakeTranLogJsonData(dr, sEtcTranLog)); + + if (sReturn == UserCom.RST_OK) + { + sendFlag = "1"; // 정상 전송 + + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sendFlag = "9"; + } + finally + { + // Flag Update + ETCTranLogFlgUpdate(sCMP_CD, sSTOR_CD, sPOS_NO, sSALE_DT, sREG_NO, sendFlag); + } + } + + /// + /// 정상으로 송신한 경우 Flg추가용 쿼리 + /// + /// + /// + /// + /// + /// + /// + /// + public int ETCTranLogFlgUpdate(string pCompanyCd, string pStoreNo, string pPosNo, string pSaleDate, string pRegNo, string pSendFlag) + { + int iRet = UserCom.NG; ; + string sQuery = ""; + + try + { + if (pCompanyCd.Trim() == "") return iRet; + if (pStoreNo.Trim() == "") return iRet; + if (pPosNo.Trim() == "") return iRet; + if (pSaleDate.Trim() == "") return iRet; + if (pRegNo.Trim() == "") return iRet; + + sQuery = "UPDATE POSLOG..ETC_SALE_HEADER "; + sQuery += " SET SEND_YN = '" + pSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + pCompanyCd + "' "; + sQuery += " AND SALE_DT = '" + pSaleDate + "' "; + sQuery += " AND STOR_CD = '" + pStoreNo + "' "; + sQuery += " AND POS_NO = '" + pPosNo + "' "; + sQuery += " AND REG_NO = '" + pRegNo + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + /// + /// ETC TranLog 조회 + /// + /// 0:미전송, 1:전송, 9:에러 + /// + public string GetEtcTranLog(ref DataTable dtReturn) + { + string sQuery = ""; + string sCMP_CD = ""; + string sSTOR_CD = ""; + string sSALE_DT = ""; + string sPOS_NO = ""; + string sREG_NO = ""; + string sTRADE_NO = ""; + + string sTranData = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, REG_NO "; + sQuery += " , TRADE_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT "; + sQuery += " , ORG_BILLDT, ORG_BILL_POSNO, ORG_BILL_NO, QTY, TOTSALE_AMT "; + sQuery += " , TOTDC_AMT, NET_SALE_AMT "; + sQuery += " FROM POSLOG..ETC_SALE_HEADER "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT, REG_NO "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + sCMP_CD = drTempReturn["CMP_CD"].ToString(); + sSTOR_CD = drTempReturn["STOR_CD"].ToString(); + sSALE_DT = drTempReturn["SALE_DT"].ToString(); + sPOS_NO = drTempReturn["POS_NO"].ToString(); + sREG_NO = drTempReturn["REG_NO"].ToString(); + sTRADE_NO = drTempReturn["TRADE_NO"].ToString(); + + sTranData = GetEtcTranHeader(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sREG_NO) + + GetEtcTranDetail(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sREG_NO) + + GetEtcTranPay(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sREG_NO) + + GetEtcTranEtc(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sREG_NO) + + GetEtcTranDpst(sCMP_CD, sSTOR_CD, sSALE_DT, sPOS_NO, sREG_NO); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + sTranData = ""; + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sTranData; + } + + private string GetEtcTranHeader(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sREG_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '" + ItemConst.IRT_TRAN_TYPE.EtcTranHeader + "' + '|' + '000000' + '|' + '0' + '|' + ISNULL(TRADE_DIV, '') + '|' + ISNULL(TRAIN_MODE_YN, '') + '|' + ISNULL(TRADE_KINDPER, '') + '|' + ISNULL(SYS_DT, '') + '|' + ISNULL(ORD_TIME, '') + '|' + "; + sQuery += " ISNULL(PAY_TIME, '') + '|' + ISNULL(PIC_NO, '') + '|' + ISNULL(ORD_PIC_NO, '') + '|' + ISNULL(STOR_OWN_PART_TIME_DIV, '') + '|' + ISNULL(ORG_BILL_POSNO, '') + '|' + "; + sQuery += " ISNULL(ORG_BILLDT, '') + '|' + ISNULL(ORG_BILL_NO, '') + '|' + ISNULL(RTN_RSN_CD, '') + '|' + ISNULL(RTN_RSN_MEMO, '') + '|' + ISNULL(NONSALES_RSN_CD, '') + '|' + "; + sQuery += " ISNULL(RESERV_NO, '') + '|' + ISNULL(RESERV_DT, '') + '|' + ISNULL(CUST_NO, '') + '|' + ISNULL(ORD_DIV, '') + '|' + ISNULL(FLOOR_CD, '') + '|' + "; + sQuery += " ISNULL(TBL_NO, '') + '|' + ISNULL(GUESTFLOOR, '') + '|' + ISNULL(FRGNR_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(CUSTCNT, 0)) + '|' + ISNULL(PAY_GNDR_DIV, '') + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(PAY_AGE, 0)) + '|' + CONVERT(VARCHAR, ISNULL(MAN_CMPNPSN_CNT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(WOMAN_CMPNPSN_CNT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(TOTSALE_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(TOTDC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(NET_SALE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ITEM_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(COOP_CARD_DC_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(POINT_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPN_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(EMP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SET_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ETC_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(EXCEP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(TOT_VAT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_VAT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ETC_VAT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AF_ACCUM_POINT_AMT, 0)) + '|' + ISNULL(AF_ACCUM_POINT_INFO, '') + '|' + ISNULL(PPCARD_CUSTNM, '') + '|' + ISNULL(AMT_DUTCHPAY_YN, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_CNT, 0)) + '|'+ ISNULL(ORDER_NO, '') + '|' + "; + + //#20170828 해피포인트 적립 제외 버튼 추가 phj, start + //기존 + //sQuery += " ISNULL(SLACK_FIELD, '') + '|' + ISNULL(MID_CLOSE_SEQ, '') + '|' + ISNULL(PPCARD_CUSTID, '') + '|' + ISNULL(PACK_TRADE_DIV, '') + '|' + ISNULL(VIP_TY, '') "; + //변경 + sQuery += " ISNULL(SLACK_FIELD, '') + '|' + ISNULL(MID_CLOSE_SEQ, '') + '|' + ISNULL(PPCARD_CUSTID, '') + '|' + ISNULL(PACK_TRADE_DIV, '') + '|' + ISNULL(VIP_TY, '') + '|' + ISNULL(HP_EXCLUDE_YN, '0')"; + //#20170828 해피포인트 적립 제외 버튼 추가 phj, end + + sQuery += " AS ETC_TR_HEADER "; + sQuery += " FROM POSLOG..ETC_SALE_HEADER "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND REG_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sREG_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetEtcTranDetail(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sREG_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.EtcTranDetail + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(ORD_TIME, '') + '|' + ISNULL(FLOOR_CD, '') + '|' + ISNULL(TBL_NO, '') + '|' + "; + sQuery += " ISNULL(SUB_SHOP_CD, '') + '|' + ISNULL(ITEM_PLU_CD, '') + '|' + ISNULL(ITEM_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(SALE_QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SALE_PRC, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(SALE_AMT, 0)) + '|' + ISNULL(FLAVOUR_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(FLAVOUR_WEIGHT, 0)) + '|' + ISNULL(ITEM_INPUT_DIV, '') + '|' + ISNULL(ITEM_BAR_CD, '') + '|' + "; + sQuery += " ISNULL(TAKE_IN_OUT_DIV, '') + '|' + ISNULL(ITEM_TAX_DIV, '') + '|' + ISNULL(TAX_AMT_INCLUDE_YN, '') + '|' + ISNULL(TAXRATE_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(APPLY_TAX_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_VAT, 0)) + '|' + "; + sQuery += " ISNULL(SVC_TAXREATE_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(BILL_AMT, 0)) + '|' + ISNULL(NONSALES_RSN_CD, '') + '|' + ISNULL(DC_DIV, '') + '|' + ISNULL(DC_TYPE, '') + '|' + CONVERT(VARCHAR, ISNULL(DC_RATE, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ITEM_DC_AMT, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(SUM_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_AMT, 0)) + '|' + ISNULL(COOP_CARD_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(COOP_CARD_DC_AMT, 0)) + '|' + ISNULL(POINT_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(POINT_DC_AMT, 0)) + '|' + "; + sQuery += " ISNULL(CPN_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(CPN_DC_AMT, 0)) + '|' + ISNULL(EMP_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(EMP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SET_DC_AMT, 0)) + '|' + ISNULL(ETC_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(ETC_DC_AMT, 0)) + '|' + ISNULL(EXCEP_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(EXCEP_DC_AMT, 0)) + '|' + ISNULL(PACK_DIV, '') + '|' + "; + sQuery += " ISNULL(SET_MENU_CD, '') + '|' + ISNULL(SUBPRC_MENU_KEY_DIV, '') + '|' + ISNULL(CPI_PRESENT_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(SALE_GIFT_NO, '') + '|' + ISNULL(CPN_NO, '') + '|' + ISNULL(SLACK_FIELD, '') + '|' + ISNULL(DISPO_ITEM_DIV, '') + '|' + ISNULL(CANCEL_DIV, '') + '|' + ISNULL(NOTAX_DIV, '0') AS ETC_TR_DETAIL"; + sQuery += " FROM POSLOG..ETC_SALE_DETAIL "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND REG_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sREG_NO); + + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetEtcTranPay(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sREG_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.EtcTranPay + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(PAY_WAY_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(PAY_AMT, 0)) + '|' + ISNULL(PAY_DTL_CD_01, '') + '|' + ISNULL(PAY_DTL_CD_02, '') + '|' + "; + sQuery += " ISNULL(PAY_DTL_CD_03, '') + '|' + ISNULL(PAY_DTL_CD_04, '') + '|' + ISNULL(PAY_DTL_CD_05, '') + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_02, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(QTY_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_05, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_02, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_05, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_06, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_07, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_08, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_09, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_10, 0)) + '|' + ISNULL(OCCUR_ENTRY_01, '') + '|' + ISNULL(OCCUR_ENTRY_02, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_03, '') + '|' + ISNULL(OCCUR_ENTRY_04, '') + '|' + ISNULL(OCCUR_ENTRY_05, '') + '|' + ISNULL(OCCUR_ENTRY_06, '') + '|' + ISNULL(OCCUR_ENTRY_07, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_08, '') + '|' + ISNULL(OCCUR_ENTRY_09, '') + '|' + ISNULL(OCCUR_ENTRY_10, '') + '|' + ISNULL(OCCUR_ENTRY_11, '') + '|' + ISNULL(OCCUR_ENTRY_12, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_13, '') + '|' + ISNULL(OCCUR_ENTRY_14, '') + '|' + ISNULL(OCCUR_ENTRY_15, '') + '|' + ISNULL(OCCUR_ENTRY_16, '') + '|' + ISNULL(OCCUR_ENTRY_17, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_18, '') + '|' + ISNULL(OCCUR_ENTRY_19, '') + '|' + ISNULL(OCCUR_ENTRY_20, '') + '|' + ISNULL(OCCUR_ENTRY_21, '') + '|' + ISNULL(OCCUR_ENTRY_22, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_23, '') + '|' + ISNULL(OCCUR_ENTRY_24, '') + '|' + ISNULL(OCCUR_ENTRY_25, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(CANCEL_DIV, '') AS ETC_TR_PAY"; + sQuery += " FROM POSLOG..ETC_SALE_PAY "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND REG_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sREG_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetEtcTranEtc(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sREG_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.EtcTranEtc + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(ETC_WAY_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(ETC_AMT, 0)) + '|' + "; + sQuery += " ISNULL(ETC_DTL_CD_01, '') + '|' + ISNULL(ETC_DTL_CD_02, '') + '|' + ISNULL(ETC_DTL_CD_03, '') + '|' + ISNULL(ETC_DTL_CD_04, '') + '|' + ISNULL(ETC_DTL_CD_05, '') + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(QTY_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_02, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(QTY_ENTRY_05, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_01, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_02, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_03, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_04, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_05, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(AMT_ENTRY_06, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_07, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_08, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_09, 0)) + '|' + CONVERT(VARCHAR, ISNULL(AMT_ENTRY_10, 0)) + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_01, '') + '|' + ISNULL(OCCUR_ENTRY_02, '') + '|' + ISNULL(OCCUR_ENTRY_03, '') + '|' + ISNULL(OCCUR_ENTRY_04, '') + '|' + ISNULL(OCCUR_ENTRY_05, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_06, '') + '|' + ISNULL(OCCUR_ENTRY_07, '') + '|' + ISNULL(OCCUR_ENTRY_08, '') + '|' + ISNULL(OCCUR_ENTRY_09, '') + '|' + ISNULL(OCCUR_ENTRY_10, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_11, '') + '|' + ISNULL(OCCUR_ENTRY_12, '') + '|' + ISNULL(OCCUR_ENTRY_13, '') + '|' + ISNULL(OCCUR_ENTRY_14, '') + '|' + ISNULL(OCCUR_ENTRY_15, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_16, '') + '|' + ISNULL(OCCUR_ENTRY_17, '') + '|' + ISNULL(OCCUR_ENTRY_18, '') + '|' + ISNULL(OCCUR_ENTRY_19, '') + '|' + ISNULL(OCCUR_ENTRY_20, '') + '|' + "; + sQuery += " ISNULL(OCCUR_ENTRY_21, '') + '|' + ISNULL(OCCUR_ENTRY_22, '') + '|' + ISNULL(OCCUR_ENTRY_23, '') + '|' + ISNULL(OCCUR_ENTRY_24, '') + '|' + ISNULL(OCCUR_ENTRY_25, '') + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(CANCEL_DIV, '') AS ETC_TR_ETC"; + sQuery += " FROM POSLOG..ETC_SALE_ETC "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND REG_NO = '{4}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sREG_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetEtcTranDpst(string sCMP_CD, string sSTOR_CD, string sSALE_DT, string sPOS_NO, string sREG_NO) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.EtcTranDpst + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(DPST_WTHDR_TYPE, '') + '|' + ISNULL(DPST_WTHDR_ACC_CD, '') + '|' + ISNULL(DPST_WTHDR_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(DPST_WTHDR_QTY, 0)) + '|' + "; + sQuery += " CONVERT(VARCHAR, ISNULL(DPST_WTHDR_AMT, 0)) + '|' + ISNULL(DPST_WTHDR_NM, '') + '|' + ISNULL(CUST_NO, '') + '|' + ISNULL(STOR_PAY_TYPE, '') + '|' + ISNULL(ETC_REASON, '') + '|' + ISNULL(SLACK_FIELD_01, '') + '|' + ISNULL(SLACK_FIELD_02, '') + '|' + ISNULL(SLACK_FIELD_03, '') + '|' + "; + sQuery += " ISNULL(SLACK_FIELD_04, '') + '|' + ISNULL(SLACK_FIELD_05, '') AS TR_DPST "; + sQuery += " FROM POSLOG..ETC_SALE_DPST_WTHDR "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND POS_NO = '{3}' "; + sQuery += " AND REG_NO = '{4}' "; + + sSQL = string.Format( sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD + , sPOS_NO + , sREG_NO); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + #endregion + + #region 05 - ETC Journal 전송 + public void ETCJournalSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sRegNo = string.Empty; + string sTradeNo = string.Empty; + try + { + // 전송할 Journal 데이터 생성 + htData = GetEtcJournalData(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sRegNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "REG_NO"); + sTradeNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "TRADE_NO"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + Convert.ToInt32(m_cPosStatus.Base.JrnlTimeout), + new string[] { sCmpCd, m_cPosStatus.Base.BrandCd, sStorCd, sSaleDt, sPosNo, sTradeNo }, + ItemConst.COMM_MSG_TYPE.ETCJNRL, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + EtcJournalFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sRegNo, sSendFlag); + } + } + + private int EtcJournalFlgUpdate(string sCmpCd, string sStorCd, string sPosNo, string sSaleDt, string sRegNo, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + if (sPosNo.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sRegNo.Trim() == "") return iRet; + + sQuery += " UPDATE POSLOG..ETC_SALE_JOURNAL "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND REG_NO = '" + sRegNo + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + public Hashtable GetEtcJournalData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + string sCmpCd = string.Empty; + string sSaleDt = string.Empty; + string sStorCd = string.Empty; + string sPosNo = string.Empty; + string sRegNo = string.Empty; + string sTradeNo = string.Empty; + + DataTable dtTempReturn = null; + try + { + sQuery += " SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, REG_NO "; + sQuery += " , TRADE_NO, TRADE_DIV, TRAIN_MODE_YN, TRADE_KINDPER, SYS_DT "; + sQuery += " , SYS_TIME, PIC_NO, BILL_AMT, JOURNAL_DATA "; + sQuery += " FROM POSLOG..ETC_SALE_JOURNAL "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT, REG_NO "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeJournalJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + #endregion + + #region 06 - Cashier Test Log 전송 + public void CashierTestLogSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sSeq = string.Empty; + try + { + // 전송할 승인로그 데이터 생성 + htData = GetCashierTestLog(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sSeq = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SEQ_NO"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + Convert.ToInt32(m_cPosStatus.Base.JrnlTimeout), + new string[] { sCmpCd, m_cPosStatus.Base.BrandCd, sStorCd, sSaleDt, sPosNo, "00000" }, + ItemConst.COMM_MSG_TYPE.TESTLOG, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + CashierTestLogFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sSeq, sSendFlag); + } + } + + private int CashierTestLogFlgUpdate(string sCmpCd, string sStorCd, string sPosNo, string sSaleDt, string sSeq, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + if (sPosNo.Trim() == "") return iRet; + if (sSeq.Trim() == "") return iRet; + + sQuery = " UPDATE POSLOG..TR_CASHIER_TEST "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND SEQ_NO = '" + sSeq + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + public Hashtable GetCashierTestLog(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + sQuery = " SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, SEQ_NO, TEST_KIND, TEST_DATE "; + sQuery += " , CASHIER_NO, TEST_ENTRY_ID, PASS_CNT, TEST_CNT, TEST_PASS_YN "; + sQuery += " , SEND_YN, REG_DATE, UPD_DATE "; + sQuery += " FROM POSLOG..TR_CASHIER_TEST "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT, SEQ_NO "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeCashierTestLogJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + private Hashtable MakeCashierTestLogJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - 회사코드 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.CmpCd, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.CmpCd)); + // 02 - 판매 일자 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.SaleDt, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.SaleDt)); + // 03 - 점포 코드 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.StorCd, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.StorCd)); + // 04 - 포스 번호 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.PosNo, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.PosNo)); + // 05 - 순번 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.SeqNo, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.SeqNo)); + // 06 - 시험 종류 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestKind, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestKind)); + // 07 - 시험 일시 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestDate, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestDate)); + // 08 - 계산원 번호 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.CashierNo, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.CashierNo)); + // 09 - 시험항목 ID + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestEntryId, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestEntryId)); + // 10 - 정답 항목 수 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.PassCnt, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.PassCnt)); + // 11 - 시험 항목 수 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestCnt, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestCnt)); + // 12 - 시험 합격 여부 + htData.Add(Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestPassYn, CmUtil.GetDataRowStr(drData, Column.IQ_CASHIER_TEST_LOG_REQ.DATA.TestPassYn)); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + #endregion + + #region 07 - 도로공사(고속도로 휴게소 입점 POS) 매출 I/F XML파일 생성 + public void MakeTranToExProcess() + { + string sendFlag = string.Empty; + string sCmpCd = string.Empty; + string sSaleDt = string.Empty; + string sStorCd = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + + DataTable dtReturn = null; + try + { + // 전송할 데이터 조회 + GetTranInfo(ref dtReturn); + + if(dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sendFlag = "0"; // 0:미전송, 1:전송, 8:파일생성, 9:에러 + + DataRow dr = dtReturn.Rows[0]; + sCmpCd = CmUtil.GetDataRowStr(dr, "CMP_CD"); + sSaleDt = CmUtil.GetDataRowStr(dr, "SALE_DT"); + sStorCd = CmUtil.GetDataRowStr(dr, "STOR_CD"); + sPosNo = CmUtil.GetDataRowStr(dr, "POS_NO"); + sTradeNo = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + + DataTable dtTRHeader = GetTranHeaderForEx(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + DataTable dtTRDetail = GetTranDetailForEx(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + DataTable dtTRCashData = GetTranCashDataForEx(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + DataTable dtTRCardData = GetTranCardDataForEx(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + XmlDocument doc = new XmlDocument(); + XmlDeclaration docClaration = doc.CreateXmlDeclaration("1.0", null, null); + XmlElement root = doc.DocumentElement; + doc.InsertBefore(docClaration, root); + + + XmlElement erestNode = doc.CreateElement("EREST"); + doc.AppendChild(erestNode); + + MakeXmlHeader(ref doc, ref erestNode, dtTRHeader); + MakeXmlDetail(ref doc, ref erestNode, dtTRDetail); + MakeXmlCashData(ref doc, ref erestNode, dtTRCashData); + MakeXmlCardData(ref doc, ref erestNode, dtTRCardData); + + // 매출 TRAN XML 파일 생성 + string sFileNm = "H1" + "_" + sCmpCd + "_" + sStorCd + "_" + sPosNo + "_" + sSaleDt + "_" + sTradeNo + ".xml"; + doc.Save(BaseCom.NxDataPath + "SEND\\EX\\" + sFileNm); + + sendFlag = "8"; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 매출XML 파일 생성 에러-" + sSaleDt + "/" + sStorCd + "/" + sPosNo + "/" + sTradeNo + ":" + ex.Message); + sendFlag = "9"; + } + finally + { + // Flag Update + OutsideTranSendFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sTradeNo, sendFlag); + } + } + + private int OutsideTranSendFlgUpdate(string pCompanyCd, string pStoreNo, string pPosNo, string pSaleDate, string pTradeNo, string pSendFlag) + { + int iRet = UserCom.NG; + string sQuery = ""; + + try + { + if (pCompanyCd.Trim() == "") return iRet; + if (pSaleDate.Trim() == "") return iRet; + if (pStoreNo.Trim() == "") return iRet; + if (pPosNo.Trim() == "") return iRet; + if (pTradeNo.Trim() == "" || pTradeNo.Trim() == "99999") return iRet; + + sQuery = "UPDATE POSLOG..TR_SALE_HEADER "; + sQuery += " SET OUT_SEND_YN = '" + pSendFlag + "' "; + sQuery += " WHERE CMP_CD = '" + pCompanyCd + "' "; + sQuery += " AND STOR_CD = '" + pStoreNo + "' "; + sQuery += " AND SALE_DT = '" + pSaleDate + "' "; + sQuery += " AND POS_NO = '" + pPosNo + "' "; + sQuery += " AND TRADE_NO = '" + pTradeNo + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + private void GetTranInfo(ref DataTable dtReturn) + { + string sQuery = string.Empty; + DataTable dtTempReturn = null; + + try + { + sQuery = " SELECT TOP 1 \n" + + " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO \n" + + " FROM POSLOG..TR_SALE_HEADER \n" + + " WHERE TRADE_KINDPER = '00' \n" + + " AND OUT_SEND_YN = '0' \n" + + " AND TRAIN_MODE_YN = '0' \n" + + " AND TRADE_KINDPER = '00' \n" + + " ORDER BY SALE_DT, TRADE_NO, OUT_SEND_YN \n"; + + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn); + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void MakeXmlHeader(ref XmlDocument doc, ref XmlElement upperNode, DataTable dtData) + { + try + { + DataRow dr = dtData.Rows[0]; + //----------------------------------------------------------------------------------------- + // TXJM-FD + //----------------------------------------------------------------------------------------- + XmlElement TXJMNode = doc.CreateElement("TXJM-FD"); + + TXJMNode.SetAttribute("SRID", "SL010"); // 1.전문ID (5) + TXJMNode.SetAttribute("RETCD", "0000"); // 2.전문적합성체크 (4) + TXJMNode.SetAttribute("TRHDR_CNT", "1"); // 3.헤더Count (2) + TXJMNode.SetAttribute("TRDTL_CNT", CmUtil.GetDataRowStr(dr, "TRDTL_CNT")); // 4.디테일Count (2) + TXJMNode.SetAttribute("TRCSH_CNT", CmUtil.GetDataRowStr(dr, "TRCSH_CNT")); // 5.현금Count (2) + TXJMNode.SetAttribute("TRCRD_CNT", CmUtil.GetDataRowStr(dr, "TRCRD_CNT")); // 6.카드Count (2) + TXJMNode.SetAttribute("TRCST_CNT", "0"); + TXJMNode.SetAttribute("TRFOD_CNT", "0"); + TXJMNode.SetAttribute("TRGFT_CNT", "0"); + TXJMNode.SetAttribute("TRJCD_CNT", "0"); + TXJMNode.SetAttribute("TRWES_CNT", "0"); + TXJMNode.SetAttribute("TRPSQ_CNT", "0"); + TXJMNode.SetAttribute("TRCSA_CNT", "0"); + TXJMNode.SetAttribute("TRGFA_CNT", "0"); + TXJMNode.SetAttribute("TRFOA_CNT", "0"); + TXJMNode.SetAttribute("TRRFC_CNT", "0"); + TXJMNode.SetAttribute("RUN_MODE", "T"); // T-테스트, R-정상 + + upperNode.AppendChild(TXJMNode); + + //----------------------------------------------------------------------------------------- + // TRHDR + //----------------------------------------------------------------------------------------- + XmlElement TRHDRNode = doc.CreateElement("TRHDR"); + + //TRHDRNode.SetAttribute("SHOP_CD", m_cPosStatus.Base.ExStoreCd); // 7.매장코드 (9) + //TRHDRNode.SetAttribute("SHOP_CD", m_cPosStatus.Base.OutSDVendConNo); // 7.매장코드 (9) + TRHDRNode.SetAttribute("SHOP_CD", m_cPosStatus.Mst.JOIN_STOR_CD); // 7.매장코드 (9) + TRHDRNode.SetAttribute("SALE_DATE", m_cPosStatus.Base.SaleDate); // 8.영업일자 (8) + TRHDRNode.SetAttribute("POS_NO", m_cPosStatus.Base.PosNo); // 9.포스번호 (2) + TRHDRNode.SetAttribute("BILL_NO", m_cPosStatus.Base.TradeNo.Substring(1, 4)); // 10.영수번호 (4) + TRHDRNode.SetAttribute("REGI_SEQ", "01"); // 11.정산차수 (2) + TRHDRNode.SetAttribute("SALE_YN", CmUtil.GetDataRowStr(dr, "SALE_YN")); // 12.판매여부 (1) + TRHDRNode.SetAttribute("TOT_SALE_AMT", CmUtil.GetDataRowStr(dr, "DCM_SALE_AMT")); // 13.총매출액 (12) AS-IS 에서 TOT_SALE_AMT 가 아닌 DCM_SALE_AMT 로 값을 채움 + TRHDRNode.SetAttribute("TOT_DC_AMT", CmUtil.GetDataRowStr(dr, "TOT_DC_AMT")); // 14.총할인액 (12) + TRHDRNode.SetAttribute("SVC_TIP_AMT", CmUtil.GetDataRowStr(dr, "SVC_TIP_AMT")); // 15.봉사료 (12) + TRHDRNode.SetAttribute("TOT_ETC_AMT", CmUtil.GetDataRowStr(dr, "TOT_ETC_AMT")); // 16.기타에누리액 (12) + TRHDRNode.SetAttribute("DCM_SALE_AMT", CmUtil.GetDataRowStr(dr, "DCM_SALE_AMT")); // 17.실매출액 (12) + TRHDRNode.SetAttribute("VAT_SALE_AMT", CmUtil.GetDataRowStr(dr, "VAT_SALE_AMT")); // 18.과세매출액 (12) + TRHDRNode.SetAttribute("VAT_AMT", CmUtil.GetDataRowStr(dr, "VAT_AMT")); // 19.부가세 (12) + TRHDRNode.SetAttribute("NO_VAT_SALE_AMT", CmUtil.GetDataRowStr(dr, "NO_VAT_SALE_AMT")); // 20.면세매출액 (12) + TRHDRNode.SetAttribute("NO_TAX_SALE_AMT", CmUtil.GetDataRowStr(dr, "NO_TAX_SALE_AMT")); // 21.순매출액 (12) + TRHDRNode.SetAttribute("EXP_PAY_AMT", CmUtil.GetDataRowStr(dr, "EXP_PAY_AMT")); // 22.받을금액 (12) + TRHDRNode.SetAttribute("GST_PAY_AMT", CmUtil.GetDataRowStr(dr, "GST_PAY_AMT")); // 23.받은금액 (12) + TRHDRNode.SetAttribute("RET_PAY_AMT", CmUtil.GetDataRowStr(dr, "RET_PAY_AMT")); // 24.거스름돈 (12) + TRHDRNode.SetAttribute("CASH_AMT", CmUtil.GetDataRowStr(dr, "CASH_AMT")); // 25.결제액-현금 (12) + TRHDRNode.SetAttribute("CRD_CARD_AMT", CmUtil.GetDataRowStr(dr, "CRD_CARD_AMT")); // 26.결제액-신용카드 (12) + TRHDRNode.SetAttribute("WES_AMT", "0"); // 27.결제액-외상 (12) + TRHDRNode.SetAttribute("TK_GFT_AMT", "0"); // 28.결제액-상품권 (12) + TRHDRNode.SetAttribute("TK_FOD_AMT", "0"); // 29.결제액-식권 (12) + TRHDRNode.SetAttribute("CST_POINT_AMT", "0"); // 30.결제액-회원포인트 (12) + TRHDRNode.SetAttribute("JCD_CARD_AMT", "0"); // 31.결제액-제휴카드(사용) (12) + TRHDRNode.SetAttribute("DC_GEN_AMT", CmUtil.GetDataRowStr(dr, "TOT_DC_AMT")); // 32.할인액-일반 (12) + TRHDRNode.SetAttribute("DC_SVC_AMT", "0"); // 33.할인액-서비스 (12) + TRHDRNode.SetAttribute("DC_PCD_AMT", "0"); // 34.할인액-제휴카드 (12) + TRHDRNode.SetAttribute("DC_CPN_AMT", "0"); // 35.할인액-쿠폰 (12) + TRHDRNode.SetAttribute("DC_CST_AMT", "0"); // 36.할인액-회원 (12) + TRHDRNode.SetAttribute("DC_TFD_AMT", "0"); // 37.할인액-식권 (12) + TRHDRNode.SetAttribute("DC_PRM_AMT", "0"); // 38.할인액-프로모션 (12) + TRHDRNode.SetAttribute("DC_CRD_AMT", "0"); // 39.할인액-신용카드현장할인 (12) + TRHDRNode.SetAttribute("DC_PACK_AMT", "0"); // 40.할인액-포장할인 (12) + TRHDRNode.SetAttribute("REPAY_CASH_AMT", CmUtil.GetDataRowStr(dr, "REPAY_CASH_AMT")); + TRHDRNode.SetAttribute("REPAY_TK_GFT_AMT", "0"); + TRHDRNode.SetAttribute("CASH_BILL_AMT", CmUtil.GetDataRowStr(dr, "CASH_BILL_AMT")); + TRHDRNode.SetAttribute("DLV_ORDER_FG", "0"); + TRHDRNode.SetAttribute("FD_TBL_CD", "000"); + TRHDRNode.SetAttribute("FD_GST_CNT_T", "1"); + TRHDRNode.SetAttribute("FD_GST_CNT_1", "1"); + TRHDRNode.SetAttribute("FD_GST_CNT_2", "0"); + TRHDRNode.SetAttribute("FD_GST_CNT_3", "0"); + TRHDRNode.SetAttribute("FD_GST_CNT_4", "0"); + TRHDRNode.SetAttribute("ORG_BILL_NO", CmUtil.GetDataRowStr(dr, "SALE_YN") == "N" ? m_cPosStatus.Base.StoreNo + CmUtil.GetDataRowStr(dr, "ORG_BILL_NO") : ""); + TRHDRNode.SetAttribute("ORDER_NO", m_cPosStatus.Base.TradeNo.Substring(1, 4)); + TRHDRNode.SetAttribute("INS_DT", CmUtil.GetDataRowStr(dr, "INS_DT")); + TRHDRNode.SetAttribute("EMP_NO", "0000"); + TRHDRNode.SetAttribute("PAY_OUT_DT", CmUtil.GetDataRowStr(dr, "PAY_OUT_DT")); + TRHDRNode.SetAttribute("CST_NM", ""); + TRHDRNode.SetAttribute("DLV_EMP_NO", ""); + TRHDRNode.SetAttribute("DLV_START_DT", ""); + TRHDRNode.SetAttribute("DLV_PAYIN_EMP_NO", ""); + TRHDRNode.SetAttribute("DLV_PAYIN_DT", ""); + TRHDRNode.SetAttribute("NEW_DLV_ADDR_YN", "N"); + TRHDRNode.SetAttribute("DLV_ADDR", ""); + TRHDRNode.SetAttribute("DLV_ADDR_DTL", ""); + TRHDRNode.SetAttribute("NEW_DLV_TEL_NO_YN", "N"); + TRHDRNode.SetAttribute("DLV_TEL_NO", ""); + TRHDRNode.SetAttribute("DLV_CL_CD", ""); + TRHDRNode.SetAttribute("DLV_CM_CD", ""); + TRHDRNode.SetAttribute("TRAVEL_CD", ""); + TRHDRNode.SetAttribute("RSV_NO", ""); + TRHDRNode.SetAttribute("PRE_PAY_CASH", "0"); + TRHDRNode.SetAttribute("PRE_PAY_CARD", "0"); + TRHDRNode.SetAttribute("RSV_USER_NM", ""); + TRHDRNode.SetAttribute("RSV_USER_TEL_NO", ""); + TRHDRNode.SetAttribute("PREPAY_AMT", "0"); + TRHDRNode.SetAttribute("COM_AMT", "0"); + + upperNode.AppendChild(TRHDRNode); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private XmlDocument MakeXmlDetail(ref XmlDocument doc, ref XmlElement upperNode, DataTable dtData) + { + try + { + //----------------------------------------------------------------------------------------- + // TRDTL + //----------------------------------------------------------------------------------------- + XmlElement TRDTLNode = doc.CreateElement("TRDTL"); + upperNode.AppendChild(TRDTLNode); + + if (dtData == null) return doc; + + for(int nLoop = 0;nLoop < dtData.Rows.Count;nLoop++) + { + DataRow dr = dtData.Rows[nLoop]; + XmlElement DATADtlNode = doc.CreateElement("DATA-DTL"); + + DATADtlNode.SetAttribute("DTL_NO", string.Format("{0:0000}", nLoop + 1)); // 76.디테일번호 (4) + DATADtlNode.SetAttribute("REGI_SEQ", "01"); // 77.정산차수 (2) + DATADtlNode.SetAttribute("SALE_YN", CmUtil.GetDataRowStr(dr, "SALE_YN")); // 78.판매여부 (1) + DATADtlNode.SetAttribute("PROD_CD", CmUtil.GetDataRowStr(dr, "PROD_CD")); // 79.상품코드 (20) + DATADtlNode.SetAttribute("PROD_TYPE_FG", CmUtil.GetDataRowStr(dr, "PROD_TYPE_FG")); // 80.상품유형구분 (1) + //DATADtlNode.SetAttribute("CORNER_CD", m_cPosStatus.Base.ExCornerCd); // 81.코너코드 (4) + //DATADtlNode.SetAttribute("CORNER_CD", m_cPosStatus.Base.OutSDVendCrnrCd); // 81.코너코드 (4) + DATADtlNode.SetAttribute("CORNER_CD", m_cPosStatus.Mst.JOIN_BRAND_CD); // 81.코너코드 (4) + + DATADtlNode.SetAttribute("CHG_BILL_NO", ""); // 82.교환권번호(외식-푸드코드) (4) + DATADtlNode.SetAttribute("TAX_YN", CmUtil.GetDataRowStr(dr, "TAX_YN")); // 83.과세여부 (1) + DATADtlNode.SetAttribute("DLV_PACK_FG", CmUtil.GetDataRowStr(dr, "DLV_PACK_FG")); // 84.배달포장구분 (1) + DATADtlNode.SetAttribute("ORG_SALE_MG_CD", "0000"); // 85.원천판매마진코드 (4) + DATADtlNode.SetAttribute("ORG_SALE_UPRC", "0"); // 86.원천판매단가 (12) + DATADtlNode.SetAttribute("NORMAL_UPRC", CmUtil.GetDataRowStr(dr, "NORMAL_UPRC")); // 87.정상판매단가 (12) + DATADtlNode.SetAttribute("SALE_MG_CD", "0000"); // 88.판매마진코드 (4) + DATADtlNode.SetAttribute("SALE_QTY", CmUtil.GetDataRowStr(dr, "SALE_QTY")); // 89.판매수량 (9) + DATADtlNode.SetAttribute("SALE_UPRC", CmUtil.GetDataRowStr(dr, "SALE_UPRC")); // 90.판매단가 (12) + DATADtlNode.SetAttribute("SALE_AMT", CmUtil.GetDataRowStr(dr, "SALE_AMT")); // 91.매출액 (12) + DATADtlNode.SetAttribute("DC_AMT", CmUtil.GetDataRowStr(dr, "DC_AMT")); // 92.할인액 (12) + DATADtlNode.SetAttribute("ETC_AMT", CmUtil.GetDataRowStr(dr, "ETC_AMT")); // 93.기타에누리액(식권짜투리/에누리-끝전) (12) + DATADtlNode.SetAttribute("SVC_TIP_AMT", CmUtil.GetDataRowStr(dr, "SVC_TIP_AMT")); // 94.봉사료 (12) + DATADtlNode.SetAttribute("DCM_SALE_AMT", CmUtil.GetDataRowStr(dr, "DCM_SALE_AMT")); // 95.실매출액 (12) + DATADtlNode.SetAttribute("VAT_AMT", CmUtil.GetDataRowStr(dr, "VAT_AMT")); // 96.부가세 (12) + DATADtlNode.SetAttribute("SVC_CD", ""); // 97.서비스코드 (1) + DATADtlNode.SetAttribute("TK_CPN_CD", ""); // 98.쿠폰코드 (3) + DATADtlNode.SetAttribute("DC_AMT_GEN", CmUtil.GetDataRowStr(dr, "DC_AMT")); // 99.할인액-일반 (12) + DATADtlNode.SetAttribute("DC_AMT_SVC", "0"); // 100.할인액-서비스 (12) + DATADtlNode.SetAttribute("DC_AMT_JCD", "0"); // 101.할인액-제휴카드 (12) + DATADtlNode.SetAttribute("DC_AMT_CPN", "0"); // 102.할인액-쿠폰 (12) + DATADtlNode.SetAttribute("DC_AMT_CST", "0"); // 103.할인액-회원 (12) + DATADtlNode.SetAttribute("DC_AMT_FOD", "0"); // 104.할인액-식권 (12) + DATADtlNode.SetAttribute("DC_AMT_PRM", "0"); // 105.할인액-프로모션 (12) + DATADtlNode.SetAttribute("DC_AMT_CRD", "0"); // 106.할인액-신용카드-현장할인 (12) + DATADtlNode.SetAttribute("DC_AMT_PACK", "0"); // 107.할인액-포장 (12) + DATADtlNode.SetAttribute("CST_SALE_POINT", "0"); // 108.회원-매출포인트 (8) + DATADtlNode.SetAttribute("CST_USE_POINT", "0"); // 109.회원-사용포인트 (8) + DATADtlNode.SetAttribute("PRM_PROC_YN", "N"); // 110.프로모션-적용여부 (1) + DATADtlNode.SetAttribute("PRM_CD", ""); // 111.프로모션-코드 (4) + DATADtlNode.SetAttribute("PRM_SEQ", ""); // 112.프로모션-차수 (2) + DATADtlNode.SetAttribute("SDA_CD", ""); // 113.외식-사이드-속성코드 (10) + DATADtlNode.SetAttribute("SDS_ORG_DTL_NO", ""); // 114.외식-사이드-선택메뉴-원천DTLNO(재설정필요) (4) + DATADtlNode.SetAttribute("INS_DT", CmUtil.GetDataRowStr(dr, "INS_DT")); // 115.POS등록일시 (14) + DATADtlNode.SetAttribute("EMP_NO", "0000"); // 116.판매원코드 (4) + DATADtlNode.SetAttribute("PREPAY_AMT", "0"); // 117.선수입금액 (12) + DATADtlNode.SetAttribute("COM_AMT", "0"); // 118.이익금액 (12) + + TRDTLNode.AppendChild(DATADtlNode); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return doc; + } + + private XmlDocument MakeXmlCashData(ref XmlDocument doc, ref XmlElement upperNode, DataTable dtData) + { + try + { + //----------------------------------------------------------------------------------------- + // TRCSH + //----------------------------------------------------------------------------------------- + XmlElement TRCSHNode = doc.CreateElement("TRCSH"); + upperNode.AppendChild(TRCSHNode); + + if (dtData == null) return doc; + + // VAN사 터미널ID 취득 + string sTermNo = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID); + + for (int nLoop = 0; nLoop < dtData.Rows.Count; nLoop++) + { + DataRow dr = dtData.Rows[nLoop]; + XmlElement DATANode = doc.CreateElement("DATA-CSH"); + + DATANode.SetAttribute("LINE_NO", string.Format("{0:0000}", nLoop + 1)); // 119.라인번호 (4) + DATANode.SetAttribute("SEQ_NO", "01"); + DATANode.SetAttribute("REGI_SEQ", "01"); + DATANode.SetAttribute("SALE_YN", CmUtil.GetDataRowStr(dr, "SALE_YN")); // 판매여부 (1) + DATANode.SetAttribute("VAN_CD", "02"); // VAN사코드 (2) + //DATANode.SetAttribute("CORNER_CD", m_cPosStatus.Base.ExCornerCd); // 코너코드 (4) + //DATANode.SetAttribute("CORNER_CD", m_cPosStatus.Base.OutSDVendCrnrCd); // 코너코드 (4) + DATANode.SetAttribute("CORNER_CD", m_cPosStatus.Mst.JOIN_BRAND_CD); // 코너코드 (4) + + DATANode.SetAttribute("CASH_AMT", CmUtil.GetDataRowStr(dr, "APPR_AMT")); + DATANode.SetAttribute("APPR_AMT", CmUtil.GetDataRowStr(dr, "APPR_AMT")); // 승인금액 (12) + DATANode.SetAttribute("SVC_TIP_AMT", CmUtil.GetDataRowStr(dr, "SVC_TIP_AMT")); // 봉사료 (12) + DATANode.SetAttribute("VAT_AMT", CmUtil.GetDataRowStr(dr, "VAT_AMT")); // 부가세 (12) + DATANode.SetAttribute("APPR_PROC_FG", CmUtil.GetDataRowStr(dr, "APPR_PROC_FG"));// 승인처리구분 (1) + DATANode.SetAttribute("APPR_IDT_TYPE", CmUtil.GetDataRowStr(dr, "APPR_IDT_TYPE")); // 승인거래자유형 (1) + DATANode.SetAttribute("APPR_IDT_FG", CmUtil.GetDataRowStr(dr, "APPR_IDT_FG")); // 승인인식구분 (1) + DATANode.SetAttribute("CARD_IN_FG", CmUtil.GetDataRowStr(dr, "CARD_IN_FG")); // 카드입력구분 (1) + DATANode.SetAttribute("APPR_IDT_NO", CmUtil.GetDataRowStr(dr, "APPR_IDT_NO")); // 승인인식번호 (20) + DATANode.SetAttribute("APPR_DATE", CmUtil.GetDataRowStr(dr, "APPR_DATE")); // 승인일자 (8) + DATANode.SetAttribute("APPR_TIME", CmUtil.GetDataRowStr(dr, "APPR_TIME")); // 승인시각 (6) + DATANode.SetAttribute("APPR_NO", CmUtil.GetDataRowStr(dr, "APPR_NO")); // 승인번호 (16) + DATANode.SetAttribute("APPR_MSG", ""); // 승인응답메시지 (200) + DATANode.SetAttribute("VAN_TERM_NO", sTermNo); // VAN사터미널번호 (15) + DATANode.SetAttribute("VAN_SLIP_NO", ""); // VAN사전표번호 (12) + DATANode.SetAttribute("ORG_APPR_DATE", ""); // 원거래승인일자 (8) + DATANode.SetAttribute("ORG_APPR_NO", ""); // 원거래승인번호 (16) + DATANode.SetAttribute("APPR_LOG_NO", ""); // 승인로그번호 (5) + DATANode.SetAttribute("INS_DT", CmUtil.GetDataRowStr(dr, "INS_DT")); // 등록일시 (14) + DATANode.SetAttribute("EMP_NO", "0000"); // 판매원코드 (4) + DATANode.SetAttribute("EX_CD", "0"); // 통화코드 (2) + DATANode.SetAttribute("EX_KRW", "0"); // 환율 (12) + DATANode.SetAttribute("EX_EXP_AMT", "0"); // 통화-받을금액 (12) + DATANode.SetAttribute("EX_IN_AMT", "0"); // 통화-지불액 (12) + DATANode.SetAttribute("EX_RET_AMT", "0"); // 통화-거스름 (12) + DATANode.SetAttribute("KR_RET_AMT", "0"); // 원화-거스름 (12) + DATANode.SetAttribute("EX_PAY_AMT", "0"); // 통화-결제액(통화지불액-통화거스름) (12) + DATANode.SetAttribute("KR_PAY_AMT", "0"); // 원화-결제액(통화결제액*환율) (12) + DATANode.SetAttribute("KR_ETC_AMT", "0"); // 원화-에누리액(원화결제액-현금결제액-원화거스름) (12) + DATANode.SetAttribute("PRE_PAY_FG", "0"); + + TRCSHNode.AppendChild(DATANode); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return doc; + } + + private XmlDocument MakeXmlCardData(ref XmlDocument doc, ref XmlElement upperNode, DataTable dtData) + { + try + { + //----------------------------------------------------------------------------------------- + // TRCRD + //----------------------------------------------------------------------------------------- + XmlElement TRCRDNode = doc.CreateElement("TRCRD"); + upperNode.AppendChild(TRCRDNode); + + if (dtData == null) return doc; + + for (int nLoop = 0; nLoop < dtData.Rows.Count; nLoop++) + { + DataRow dr = dtData.Rows[nLoop]; + XmlElement DATANode = doc.CreateElement("DATA-CRD"); + + DATANode.SetAttribute("LINE_NO", string.Format("{0:0000}", nLoop + 1)); // 라인번호 (4) + DATANode.SetAttribute("SEQ_NO", CmUtil.GetDataRowStr(dr, "SEQ_NO")); // 일련번호 (2) + DATANode.SetAttribute("REGI_SEQ", "01"); // 정산차수 (2) + DATANode.SetAttribute("SALE_YN", CmUtil.GetDataRowStr(dr, "SALE_YN")); // 매출구분 (1) + DATANode.SetAttribute("VAN_CD", CmUtil.GetDataRowStr(dr, "VAN_CD")); // VAN사코드 (2) + //DATANode.SetAttribute("CORNER_CD", m_cPosStatus.Base.ExCornerCd); // 코너코드 (4) + //DATANode.SetAttribute("CORNER_CD", m_cPosStatus.Base.OutSDVendCrnrCd); // 코너코드 (4) + DATANode.SetAttribute("CORNER_CD", m_cPosStatus.Mst.JOIN_BRAND_CD); // 코너코드 (4) + + DATANode.SetAttribute("APPR_PROC_FG", CmUtil.GetDataRowStr(dr, "APPR_PROC_FG"));// 승인구분 (1) + DATANode.SetAttribute("CRD_CARD_NO", CmUtil.GetDataRowStr(dr, "CRD_CARD_NO")); // 카드번호 (20) + DATANode.SetAttribute("APPR_REQ_AMT", CmUtil.GetDataRowStr(dr, "APPR_REQ_AMT"));// 승인요청금액 (12) + DATANode.SetAttribute("SVC_TIP_AMT", CmUtil.GetDataRowStr(dr, "SVC_TIP_AMT")); // 봉사료 (12) + DATANode.SetAttribute("VAT_AMT", CmUtil.GetDataRowStr(dr, "VAT_AMT")); // 부가세 (12) + DATANode.SetAttribute("INST_MM_FG", CmUtil.GetDataRowStr(dr, "INST_MM_FG")); // 할부개월구분 (1) + DATANode.SetAttribute("INST_MM_CNT", CmUtil.GetDataRowStr(dr, "INST_MM_CNT")); // 할부개월수 (2) + DATANode.SetAttribute("VALID_TERM", "000000"); // 유효기간 (6) + DATANode.SetAttribute("SIGN_PAD_YN", CmUtil.GetDataRowStr(dr, "SIGN_PAD_YN")); // 사인패드사용여부 (1) + DATANode.SetAttribute("CARD_IN_FG", CmUtil.GetDataRowStr(dr, "CARD_IN_FG")); // 카드입력구분 (1) + DATANode.SetAttribute("APPR_DATE", CmUtil.GetDataRowStr(dr, "APPR_DATE")); // 승인일자 (8) + DATANode.SetAttribute("APPR_TIME", CmUtil.GetDataRowStr(dr, "APPR_TIME")); // 승인시간 (6) + DATANode.SetAttribute("APPR_NO", CmUtil.GetDataRowStr(dr, "APPR_NO")); // 승인번호 (16) + DATANode.SetAttribute("CRDCP_CD", ""); // 카드사코드 (3) + DATANode.SetAttribute("ISS_CRDCP_CD", ""); // 카드발급사코드 (4) + DATANode.SetAttribute("ISS_CRDCP_NM", ""); // 카드발급사명 (40) + DATANode.SetAttribute("PUR_CRDCP_CD", CmUtil.GetDataRowStr(dr, "PUR_CRDCP_CD"));// 카드매입사코드 (4) + DATANode.SetAttribute("PUR_CRDCP_NM", CmUtil.GetDataRowStr(dr, "PUR_CRDCP_NM").Trim());// 카드매입사명 (40) + DATANode.SetAttribute("APPR_AMT", CmUtil.GetDataRowStr(dr, "APPR_AMT")); // 승인금액(실제승인액) + DATANode.SetAttribute("APPR_DC_AMT", "0"); // 승인현장할인액 (12) + DATANode.SetAttribute("APPR_MSG", ""); // 승인응답메시지 (200) + DATANode.SetAttribute("VAN_TERM_NO", ""); // VAN사터미널번호 (15) + DATANode.SetAttribute("VAN_SLIP_NO", ""); // VAN사전표번호 (12) + DATANode.SetAttribute("CRDCP_TERM_NO", CmUtil.GetDataRowStr(dr, "CRDCP_TERM_NO").Trim()); // 카드사계약번호 (15) + DATANode.SetAttribute("ORG_APPR_DATE", ""); // 원거래승인일자 (8) + DATANode.SetAttribute("ORG_APPR_NO", ""); // 원거래승인번호 (16) + DATANode.SetAttribute("APPR_LOG_NO", ""); // 승인로그번호 (5) + DATANode.SetAttribute("INS_DT", CmUtil.GetDataRowStr(dr, "INS_DT")); // 등록일시 (14) + DATANode.SetAttribute("EMP_NO", "0000"); // 판매원번호 (4) + DATANode.SetAttribute("PRE_PAY_FG", "0"); // 선수금구분자 (1) + + TRCRDNode.AppendChild(DATANode); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return doc; + } + + private DataTable GetTranHeaderForEx(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + { + string sQuery = string.Empty; + string sSelQuery = string.Empty; + StringBuilder sb = new StringBuilder(); + + DataTable dtReturn = null; + try + { + sSelQuery = "SELECT CASE WHEN A.TRADE_DIV = '0' \n" + + " THEN 'Y' \n" + + " ELSE 'N' \n" + + " END AS SALE_YN \n" + + " , ISNULL(A.TOTSALE_AMT, 0) AS TOT_SALE_AMT \n" + + " , ISNULL(A.TOTDC_AMT, 0) AS TOT_DC_AMT \n" + + " , ISNULL(A.SVC_FEE_AMT, 0) AS SVC_TIP_AMT \n" + + " , 0 AS TOT_ETC_AMT \n" + + " , ISNULL(A.NET_SALE_AMT, 0) AS DCM_SALE_AMT \n" + + " , ISNULL(A.TOT_VAT, 0) AS VAT_AMT \n" + + " , ISNULL(A.NET_SALE_AMT, 0) - ISNULL(A.TOT_VAT, 0) AS NO_TAX_SALE_AMT \n" + + " , ISNULL(A.NET_SALE_AMT, 0) AS EXP_PAY_AMT \n" + + " , A.SALE_DT + A.PAY_TIME AS INS_DT \n" + + " , A.SALE_DT + A.PAY_TIME AS PAY_OUT_DT \n" + + " , A.ORG_BILLDT + A.POS_NO + SUBSTRING(A.ORG_BILL_NO, 2, 4) AS ORG_BILL_NO \n" + + " , C.TRDTL_CNT AS TRDTL_CNT \n" + + " , D.TRCSH_CNT AS TRCSH_CNT \n" + + " , B.TRCRD_CNT AS TRCRD_CNT \n" + + " , C.VAT_SALE_AMT AS VAT_SALE_AMT \n" + + " , C.NO_VAT_SALE_AMT AS NO_VAT_SALE_AMT \n" + + " , B.GST_PAY_AMT AS GST_PAY_AMT \n" + + " , B.RET_PAY_AMT AS RET_PAY_AMT \n" + + " , B.CASH_AMT AS CASH_AMT \n" + + " , B.CRD_CARD_AMT AS CRD_CARD_AMT \n" + + " , B.REPAY_CASH_AMT AS REPAY_CASH_AMT \n" + + " , D.CASH_BILL_AMT AS CASH_BILL_AMT \n" + + " FROM POSLOG..TR_SALE_HEADER A \n" + + " , ( \n" + + " SELECT SUM(CASE WHEN TSP.PAY_WAY_CD <> '02' \n" + + " THEN ISNULL(TSP.AMT_ENTRY_01, 0) - ISNULL(TSP.AMT_ENTRY_02, 0) \n" + + " ELSE 0 \n" + + " END) AS CASH_AMT \n" + + " , SUM(CASE WHEN TSP.PAY_WAY_CD = '02' \n" + + " THEN 1 \n" + + " ELSE 0 \n" + + " END) AS TRCRD_CNT \n" + + " , SUM(CASE WHEN TSP.PAY_WAY_CD = '02' \n" + + " THEN ISNULL(TSP.AMT_ENTRY_01, 0) \n" + + " ELSE 0 \n" + + " END) AS CRD_CARD_AMT \n" + + " , SUM(ISNULL(TSP.PAY_AMT, 0)) AS GST_PAY_AMT \n" + + " , SUM(ISNULL(TSP.AMT_ENTRY_02, 0)) AS RET_PAY_AMT \n" + + " , 0 AS REPAY_CASH_AMT \n" + + " FROM POSLOG..TR_SALE_HEADER TSH \n" + + " LEFT JOIN POSLOG..TR_SALE_PAY TSP \n" + + " ON TSH.CMP_CD = TSP.CMP_CD \n" + + " AND TSH.SALE_DT = TSP.SALE_DT \n" + + " AND TSH.STOR_CD = TSP.STOR_CD \n" + + " AND TSH.POS_NO = TSP.POS_NO \n" + + " AND TSH.TRADE_NO = TSP.TRADE_NO \n" + + " AND TSP.PAY_DTL_CD_05 = '1' \n" + + " AND TSP.CANCEL_DIV = '0' \n" + + " WHERE TSH.CMP_CD = '{0}' \n" + + " AND TSH.SALE_DT = '{1}' \n" + + " AND TSH.STOR_CD = '{2}' \n" + + " AND TSH.POS_NO = '{3}' \n" + + " AND TSH.TRADE_NO = '{4}' \n" + + " AND TSH.TRAIN_MODE_YN = '0' \n" + + " AND TSH.TRADE_KINDPER = '00' \n" + + " ) B \n" + + " , ( \n" + + " SELECT SUM(CASE WHEN ISNULL(TSD.SALE_AMT, 0) = 0 \n" + + " THEN 0 \n" + + " ELSE 1 \n" + + " END) AS TRDTL_CNT \n" + + " , SUM(CASE WHEN ISNULL(TSD.APPLY_TAX_AMT, 0) = 0 \n" + + " THEN 0 \n" + + " ELSE ISNULL(TSD.BILL_AMT, 0) - ISNULL(TSD.APPLY_TAX_AMT, 0) \n" + + " END) AS VAT_SALE_AMT \n" + + " , SUM(CASE WHEN ISNULL(TSD.APPLY_TAX_AMT, 0) = 0 \n" + + " THEN ISNULL(TSD.SALE_AMT, 0) \n" + + " ELSE 0 \n" + + " END) AS NO_VAT_SALE_AMT \n" + + " FROM POSLOG..TR_SALE_HEADER TSH \n" + + " LEFT JOIN POSLOG..TR_SALE_DETAIL TSD \n" + + " ON TSH.CMP_CD = TSD.CMP_CD \n" + + " AND TSH.SALE_DT = TSD.SALE_DT \n" + + " AND TSH.STOR_CD = TSD.STOR_CD \n" + + " AND TSH.POS_NO = TSD.POS_NO \n" + + " AND TSH.TRADE_NO = TSD.TRADE_NO \n" + + " AND TSD.CANCEL_DIV = '0' \n" + + " WHERE TSH.CMP_CD = '{0}' \n" + + " AND TSH.SALE_DT = '{1}' \n" + + " AND TSH.STOR_CD = '{2}' \n" + + " AND TSH.POS_NO = '{3}' \n" + + " AND TSH.TRADE_NO = '{4}' \n" + + " AND TSH.TRAIN_MODE_YN = '0' \n" + + " AND TSH.TRADE_KINDPER = '00' \n" + + " ) C \n" + + " , ( \n" + + " SELECT SUM(CASE WHEN TSE.ETC_WAY_CD = '00' \n" + + " THEN 1 \n" + + " ELSE 0 \n" + + " END) AS TRCSH_CNT \n" + + " , ISNULL(SUM(TSE.ETC_AMT), 0) AS CASH_BILL_AMT \n" + + " FROM POSLOG..TR_SALE_HEADER TSH \n" + + " LEFT JOIN POSLOG..TR_SALE_ETC TSE \n" + + " ON TSH.CMP_CD = TSE.CMP_CD \n" + + " AND TSH.SALE_DT = TSE.SALE_DT \n" + + " AND TSH.STOR_CD = TSE.STOR_CD \n" + + " AND TSH.POS_NO = TSE.POS_NO \n" + + " AND TSH.TRADE_NO = TSE.TRADE_NO \n" + + " AND TSE.ETC_WAY_CD = '00' \n" + + " WHERE TSH.CMP_CD = '{0}' \n" + + " AND TSH.SALE_DT = '{1}' \n" + + " AND TSH.STOR_CD = '{2}' \n" + + " AND TSH.POS_NO = '{3}' \n" + + " AND TSH.TRADE_NO = '{4}' \n" + + " AND TSH.TRAIN_MODE_YN = '0' \n" + + " AND TSH.TRADE_KINDPER = '00' \n" + + " ) D \n" + + " WHERE A.CMP_CD = '{0}' \n" + + " AND A.SALE_DT = '{1}' \n" + + " AND A.STOR_CD = '{2}' \n" + + " AND A.POS_NO = '{3}' \n" + + " AND A.TRADE_NO = '{4}' \n" + + " AND A.TRAIN_MODE_YN = '0' \n" + + " AND A.TRADE_KINDPER = '00' \n"; + + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return dtReturn; + } + + private DataTable GetTranDetailForEx(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + { + string sQuery = string.Empty; + string sSelQuery = string.Empty; + StringBuilder sb = new StringBuilder(); + + DataTable dtReturn = null; + try + { + sSelQuery = "SELECT A.SEQ \n" + + " , CASE WHEN B.TRADE_DIV = '0' \n" + + " THEN 'Y' \n" + + " ELSE 'N' \n" + + " END AS SALE_YN \n" + + " , C.ENTR_CMP_ITEM_CD AS PROD_CD \n" + + " , CASE WHEN A.ITEM_DIV = '0' \n" + + " THEN '0' \n" + + " ELSE '1' \n" + + " END AS PROD_TYPE_FG \n" + + " , CASE WHEN A.ITEM_TAX_DIV = '0' OR A.NOTAX_DIV = '1' \n" + + " THEN 'N' \n" + + " ELSE 'Y' \n" + + " END AS TAX_YN \n" + + " , CASE WHEN A.TAKE_IN_OUT_DIV = '0' \n" + + " THEN '0' \n" + + " ELSE '2' \n" + + " END AS DLV_PACK_FG \n" + + " , CASE WHEN A.SALE_AMT = A.BILL_AMT \n" + + " THEN A.SALE_PRC \n" + + " ELSE A.BILL_AMT / A.SALE_QTY \n" + + " END AS NORMAL_UPRC \n" + + " , ISNULL(A.SALE_QTY, 0) AS SALE_QTY \n" + + " , CASE WHEN A.SALE_AMT = A.BILL_AMT \n" + + " THEN A.SALE_PRC \n" + + " ELSE A.BILL_AMT / A.SALE_QTY \n" + + " END AS SALE_UPRC \n" + + " , ISNULL(A.BILL_AMT, 0) AS SALE_AMT \n" + + " , ISNULL(A.ITEM_DC_AMT, 0) + ISNULL(A.SUM_DC_AMT, 0) + \n" + + " ISNULL(A.CPI_DC_AMT, 0) + ISNULL(A.COOP_CARD_DC_AMT, 0) + \n" + + " ISNULL(A.POINT_DC_AMT, 0) + ISNULL(A.CPN_DC_AMT, 0) + \n" + + " ISNULL(A.EMP_DC_AMT, 0) + ISNULL(A.SET_DC_AMT, 0) + \n" + + " ISNULL(A.ETC_DC_AMT, 0) + ISNULL(A.EXCEP_DC_AMT, 0) AS DC_AMT \n" + + " , 0 AS ETC_AMT \n" + + " , 0 AS SVC_TIP_AMT \n" + + " , ISNULL(A.BILL_AMT, 0) AS DCM_SALE_AMT \n" + + " , ISNULL(A.APPLY_TAX_AMT, 0) AS VAT_AMT \n" + + " , B.SALE_DT + B.PAY_TIME AS INS_DT \n" + + " FROM POSLOG..TR_SALE_DETAIL A \n" + + " , POSLOG..TR_SALE_HEADER B \n" + + " , POSMST..MST_OUT_SD_VEND_ITEM C \n" + + " WHERE A.CMP_CD = '{0}' \n" + + " AND A.SALE_DT = '{1}' \n" + + " AND A.STOR_CD = '{2}' \n" + + " AND A.POS_NO = '{3}' \n" + + " AND A.TRADE_NO = '{4}' \n" + + " AND A.CMP_CD = B.CMP_CD \n" + + " AND A.SALE_DT = B.SALE_DT \n" + + " AND A.STOR_CD = B.STOR_CD \n" + + " AND A.POS_NO = B.POS_NO \n" + + " AND A.TRADE_NO = B.TRADE_NO \n" + + " AND A.CMP_CD = C.CMP_CD \n" + + " AND A.ITEM_PLU_CD = C.ITEM_CD \n" + + " AND B.TRAIN_MODE_YN = '0' \n" + + " AND B.TRADE_KINDPER = '00' \n" + + " AND A.CANCEL_DIV = '0' \n" + + " AND C.USE_YN = '1' \n" + + " ORDER BY A.SEQ \n"; + + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return dtReturn; + } + + private DataTable GetTranCashDataForEx(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + { + string sQuery = string.Empty; + string sSelQuery = string.Empty; + StringBuilder sb = new StringBuilder(); + + DataTable dtReturn = null; + try + { + sSelQuery = "SELECT CASE WHEN B.TRADE_DIV = '0' \n" + + " THEN 'Y' \n" + + " ELSE 'N' \n" + + " END AS SALE_YN \n" + + " , ISNULL(A.ETC_AMT, 0) AS APPR_AMT \n" + + " , 0 AS SVC_TIP_AMT \n" + + " , ISNULL(A.AMT_ENTRY_03, 0) AS VAT_AMT \n" + + " , CASE WHEN A.OCCUR_ENTRY_09 = '0' \n" + + " THEN '1' \n" + + " ELSE '2' \n" + + " END AS APPR_PROC_FG \n" + + " , CASE WHEN A.OCCUR_ENTRY_08 = '0' \n" + + " THEN '1' \n" + + " ELSE '2' \n" + + " END AS APPR_IDT_TYPE \n" + + " , CASE WHEN SUBSTRING(A.OCCUR_ENTRY_01, 1, 2) = '01' \n" + + " THEN '2' \n" + + " ELSE '3' \n" + + " END AS APPR_IDT_FG \n" + + " , 'K' AS CARD_IN_FG \n" + + " , A.OCCUR_ENTRY_01 AS APPR_IDT_NO \n" + + " , A.OCCUR_ENTRY_03 AS APPR_DATE \n" + + " , A.OCCUR_ENTRY_04 AS APPR_TIME \n" + + " , A.OCCUR_ENTRY_02 AS APPR_NO \n" + + " , A.OCCUR_ENTRY_03 + A.OCCUR_ENTRY_04 AS INS_DT \n" + + " FROM POSLOG..TR_SALE_ETC A \n" + + " , POSLOG..TR_SALE_HEADER B \n" + + " WHERE A.CMP_CD = '{0}' \n" + + " AND A.SALE_DT = '{1}' \n" + + " AND A.STOR_CD = '{2}' \n" + + " AND A.POS_NO = '{3}' \n" + + " AND A.TRADE_NO = '{4}' \n" + + " AND A.ETC_WAY_CD = '80' \n" + + " AND A.ETC_DTL_CD_01 = '00' \n" + + " AND A.CMP_CD = B.CMP_CD \n" + + " AND A.STOR_CD = B.STOR_CD \n" + + " AND A.POS_NO = B.POS_NO \n" + + " AND A.TRADE_NO = B.TRADE_NO \n" + + " AND B.TRAIN_MODE_YN = '0' \n" + + " AND B.TRADE_KINDPER = '00' \n"; + + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return dtReturn; + } + + private DataTable GetTranCardDataForEx(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + { + string sQuery = string.Empty; + string sSelQuery = string.Empty; + StringBuilder sb = new StringBuilder(); + + DataTable dtReturn = null; + try + { + sSelQuery = "SELECT '01' AS SEQ_NO \n" + + " , '02' AS VAN_CD \n" + + " , CASE WHEN B.TRADE_DIV = '0' \n" + + " THEN 'Y' \n" + + " ELSE 'N' \n" + + " END AS SALE_YN \n" + + " , CASE WHEN A.OCCUR_ENTRY_08 = '0' \n" + + " THEN '1' \n" + + " ELSE '2' \n" + + " END AS APPR_PROC_FG \n" + + " , A.OCCUR_ENTRY_01 AS CRD_CARD_NO \n" + + " , ISNULL(A.PAY_AMT, 0) AS APPR_REQ_AMT \n" + + " , 0 AS SVC_TIP_AMT \n" + + " , ISNULL(A.PAY_AMT, 0) - ROUND(A.PAY_AMT / 1.1, 0) AS VAT_AMT \n" + + " , CASE WHEN A.OCCUR_ENTRY_14 = '00' \n" + + " THEN '0' \n" + + " ELSE '1' \n" + + " END AS INST_MM_FG \n" + + " , A.OCCUR_ENTRY_14 AS INST_MM_CNT \n" + + " , CASE WHEN A.OCCUR_ENTRY_17 = '0' \n" + + " THEN 'N' \n" + + " ELSE 'Y' \n" + + " END AS SIGN_PAD_YN \n" + + " , CASE WHEN A.OCCUR_ENTRY_05 = 'K' \n" + + " THEN 'K' \n" + + " ELSE 'S' \n" + + " END AS CARD_IN_FG \n" + + " , A.OCCUR_ENTRY_03 AS APPR_DATE \n" + + " , A.OCCUR_ENTRY_04 AS APPR_TIME \n" + + " , A.OCCUR_ENTRY_02 AS APPR_NO \n" + + " , A.OCCUR_ENTRY_11 AS PUR_CRDCP_CD \n" + + " , A.OCCUR_ENTRY_12 AS PUR_CRDCP_NM \n" + + " , ISNULL(A.PAY_AMT, 0) AS APPR_AMT \n" + + " , A.OCCUR_ENTRY_18 AS CRDCP_TERM_NO \n" + + " , A.OCCUR_ENTRY_03 + A.OCCUR_ENTRY_04 AS INS_DT \n" + + " FROM POSLOG..TR_SALE_PAY A \n" + + " , POSLOG..TR_SALE_HEADER B \n" + + " WHERE A.CMP_CD = '{0}' \n" + + " AND A.SALE_DT = '{1}' \n" + + " AND A.STOR_CD = '{2}' \n" + + " AND A.POS_NO = '{3}' \n" + + " AND A.TRADE_NO = '{4}' \n" + + " AND A.PAY_WAY_CD = '02' \n" + + " AND A.PAY_DTL_CD_05 = '1' \n" + + " AND A.CANCEL_DIV = '0' \n" + + " AND A.CMP_CD = B.CMP_CD \n" + + " AND A.SALE_DT = B.SALE_DT \n" + + " AND A.STOR_CD = B.STOR_CD \n" + + " AND A.POS_NO = B.POS_NO \n" + + " AND A.TRADE_NO = B.TRADE_NO \n" + + " AND B.TRAIN_MODE_YN = '0' \n" + + " AND B.TRADE_KINDPER = '00' \n"; + + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return dtReturn; + } + + #endregion 07 - 도로공사(고속도로 휴게소 입점 POS) 매출 I/F XML파일 생성 + + #region 08 - 도로공사(고속도로 휴게소 입점 POS) 매출 전송 + public void TranSendToExProcess() + { + string sCmpCd = ""; + string sStoreNo = ""; + string sPosNo = ""; + string sSaleDate = ""; + string sTradeNo = ""; + string sendFlag = "8"; + + try + { + DirectoryInfo di = new DirectoryInfo(BaseCom.NxDataPath + "SEND\\EX\\"); + FileInfo[] xmlFiles = di.GetFiles("*.xml"); + + if(xmlFiles.Length < 1) + { + return; + } + else + { + iSendDataCnt += 1; + } + + for(int nLoop = 0;nLoop < xmlFiles.Length;nLoop++) + { + // 도로공사 매출전송 파일은 한번에 5개씩만 보낸다. + if(nLoop >= 5) + { + break; + } + FileInfo fi = xmlFiles[nLoop]; + + string[] sFile = fi.Name.Split(new char[] {'.'}, StringSplitOptions.RemoveEmptyEntries); + string sFileFullName = fi.FullName; + string[] sFileName = sFile[0].Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries); + string sFileExtension = sFile[1]; + + string sFileType = sFileName[0].Trim(); + sCmpCd = sFileName[1].Trim(); + sStoreNo = sFileName[2].Trim(); + sPosNo = sFileName[3].Trim(); + sSaleDate = sFileName[4].Trim(); + sTradeNo = sFileName[5].Trim(); + + string sUrl = string.Empty; + + if(sFileType == "H1") + { + //sUrl = sExTranUrl; + sUrl = m_cPosStatus.Mst.ETC_IF_URL1; + } + else + { + //sUrl = sExCalcUrl; + sUrl = m_cPosStatus.Mst.ETC_IF_URL2; + } + + XmlDocument doc = new XmlDocument(); + doc.Load(sFileFullName); + + string recvData = string.Empty; + if(Http_SendReceive(sUrl, doc, ref recvData) == BaseCom.OK) + { + if(recvData.IndexOf("RETCD=") > 0) + { + string sRetCd = recvData.Substring(recvData.IndexOf("RETCD=") + 6, 4); + + if(sRetCd == "0000") + { + if (iErrorCount > 0) + iErrorCount -= 1; + sendFlag = "1"; + fi.Delete(); + System.Threading.Thread.Sleep(50); + } + else + { + iErrorCount += 1; + sendFlag = "9"; + } + } + } + else + { + iErrorCount += 1; + sendFlag = "9"; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sendFlag = "9"; + } + finally + { + // Flag Update + OutsideTranSendFlgUpdate(sCmpCd, sStoreNo, sPosNo, sSaleDate, sTradeNo, sendFlag); + } + } + + private int Http_SendReceive(string sUrl, XmlDocument xmlDoc, ref string recvData) + { + int iRet = BaseCom.NG; + try + { + HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl); + + req.Method = "POST"; + req.ContentType = "text/xml"; + req.Timeout = 30 * 1000; + + // create our stream to send + Stream webDataStream = req.GetRequestStream(); + xmlDoc.Save(webDataStream); + webDataStream.Close(); + + // get the response from out stream + WebResponse resp = req.GetResponse(); + webDataStream = resp.GetResponseStream(); + + // convert the result into a string + StreamReader respStreamReader = new StreamReader(webDataStream); + string respFromServer = respStreamReader.ReadToEnd(); + + recvData = respFromServer; + + respStreamReader.Close(); + + iRet = BaseCom.OK; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + #endregion 08 - 도로공사(고속도로 휴게소 입점 POS) 매출 전송 + + #region 09 - 한국공항공사 매출 I/F + //public void TranSendToKacProcess() + //{ + // string sCmpCd = string.Empty; + // string sSaleDt = string.Empty; + // string sStorCd = string.Empty; + // string sPosNo = string.Empty; + // string sTradeNo = string.Empty; + // string sendFlag = "0"; + + // DataTable dtReturn = null; + + // try + // { + // // 전송할 데이터 조회 + // GetTranInfo(ref dtReturn); + + // if(dtReturn == null || dtReturn.Rows.Count == 0) + // { + // return; + // } + // else + // { + // iSendDataCnt += 1; + // } + + // sendFlag = "0"; // 0:미전송, 1:전송, 9:에러 + + // DataRow dr = dtReturn.Rows[0]; + // sCmpCd = CmUtil.GetDataRowStr(dr, "CMP_CD"); + // sSaleDt = CmUtil.GetDataRowStr(dr, "SALE_DT"); + // sStorCd = CmUtil.GetDataRowStr(dr, "STOR_CD"); + // sPosNo = CmUtil.GetDataRowStr(dr, "POS_NO"); + // sTradeNo = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + + // Column.KACReceiptHeader header = new Column.KACReceiptHeader(); + // ArrayList alKACItems = new ArrayList(); + + // // 전송할 매출 데이터 생성 + // MakeTranToKacProcess(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, ref header, ref alKACItems); + + // string sReturn = SaveDataToDb("HEAD", sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, header, alKACItems, null); + + // if(sReturn == UserCom.RST_OK) + // { + // sendFlag = "1"; + // } + // else + // { + // sendFlag = "9"; + // } + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // sendFlag = "9"; + // } + // finally + // { + // // Flag Update + // OutsideTranSendFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sTradeNo, sendFlag); + // } + //} + ///// + ///// 매출저장 + ///// + ///// + ///// + ///// + ///// + ///// + ///// + ///// + ///// + ///// + //public string SaveDataToDb(string sSendType, string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, Column.KACReceiptHeader cHeader, ArrayList alItems, Column.KACCalcData cCalcData) + //{ + // string sReturn = UserCom.RST_ERR; + + // int iItemCount = 0; + // StringBuilder sbTranHeader = new StringBuilder(""); + // StringBuilder sbTranItem = new StringBuilder(""); + // try + // { + // //string sDbConNo = string.Format("{0, -10}", m_cPosStatus.Base.KacConNo); + // //string sDbConNo = string.Format("{0, -10}", m_cPosStatus.Base.OutSDVendConNo); + // string sDbConNo = string.Format("{0, -10}", m_cPosStatus.Mst.JOIN_STOR_CD); + // string sDbStorCd = string.Format("{0, -10}", sStorCd); + // string sDbPosNo = string.Format("{0, -10}", sPosNo); + // string sDbTradeNo = string.Format("{0, -30}", sTradeNo); + + + // if (sSendType == "HEAD") + // { + // sbTranHeader.Append(cHeader.CON_NO); // 계약번호(ERP상의 계약번호) + // sbTranHeader.Append(cHeader.SALE_DT); // 영업일자 + // sbTranHeader.Append(cHeader.STORE_CD); // 점번호 + // sbTranHeader.Append(cHeader.POS_NO); // POS번호 + // sbTranHeader.Append(cHeader.RECEIPT_SEQ); // 순차적으로 증가되는 값 + // sbTranHeader.Append(cHeader.RECEIPT_NO); // 영수증번호 + // sbTranHeader.Append(cHeader.ITEM_QTY); // 아이템 건수 + // sbTranHeader.Append(cHeader.SALE_TM); // 매출시간 + // sbTranHeader.Append(cHeader.CANCEL_YN); // 영수증 취소 여부(0:정상, 1:취소) + // sbTranHeader.Append(cHeader.TOT_AMT); // 총매출금액 + // sbTranHeader.Append(cHeader.SALE_AMT); // 매가금액(공급가액) + // sbTranHeader.Append(cHeader.TAX_AMT); // 부가세금액 + // sbTranHeader.Append(cHeader.CASH_AMT); // 현금금액 + // sbTranHeader.Append(cHeader.CARD_AMT); // 카드금액 + // sbTranHeader.Append(cHeader.ETC_AMT); // 기타금액 + // sbTranHeader.Append(cHeader.CASH_YN); // 복합결제유문 발행 여부(복합결제 : 0, 현금결제만 : 1) + // sbTranHeader.Append(cHeader.CASH_RECEIPT_YN); // 현금영수증 발행 여부(발행 : 0, 미발행 : 1) + // sbTranHeader.Append(cHeader.BUY_NM); // 구매자명 + // sbTranHeader.Append(cHeader.BUY_COUN_CD); // 구매자국가코드 + // sbTranHeader.Append(cHeader.BUY_SEX_CD); // 구매자성별 + // sbTranHeader.Append(cHeader.BUY_BIRTHDAY); // 구매자생년월일 + // sbTranHeader.Append(cHeader.BUY_AGE); // 구매자나이 + // sbTranHeader.Append(cHeader.AIR_NO); // 항공기정보 + // sbTranHeader.Append(cHeader.CREATE_DT); // 영수증생성일자 + + // foreach (Column.KACReceiptItem item in alItems) + // { + // sbTranItem.Append(item.CON_NO); + // sbTranItem.Append(item.SALE_DT); + // sbTranItem.Append(item.STORE_CD); + // sbTranItem.Append(item.POS_NO); + // sbTranItem.Append(item.RECEIPT_NO); + // sbTranItem.Append(item.PROC_SEQ); + // sbTranItem.Append(item.PROD_CD); + // sbTranItem.Append(item.PROD_NM); + // sbTranItem.Append(item.QTY); + // sbTranItem.Append(item.UNIT_PRICE); + // sbTranItem.Append(item.AMT); + // sbTranItem.Append(item.CREATE_DT); + + // iItemCount++; + // } + // } + // else + // { + // sbTranHeader.Append(cCalcData.CON_NO); // 계약번호 + // sbTranHeader.Append(cCalcData.SALE_DT); // 영업일자 + // sbTranHeader.Append(cCalcData.STORE_CD); // 점번호 + // sbTranHeader.Append(cCalcData.POS_NO); // POS번호 + // sbTranHeader.Append(cCalcData.RECEIPT_SEQ); // 순차적으로 증가되는 값 + // sbTranHeader.Append(cCalcData.RECEIPT_NO); // 영수증번호 + // sbTranHeader.Append(cCalcData.SALE_TM); // 매출일시 + // sbTranHeader.Append(cCalcData.RECEIPT_QTY); // 매출건수 + // sbTranHeader.Append(cCalcData.TOTAL_AMT); // 총매출금액 + // sbTranHeader.Append(cCalcData.SALE_AMT); // 총공급가액 + // sbTranHeader.Append(cCalcData.TAX_AMT); // 총부가세금액 + // sbTranHeader.Append(cCalcData.CASH_AMT); // 총현금금액 + // sbTranHeader.Append(cCalcData.CARD_AMT); // 총카드금액 + // sbTranHeader.Append(cCalcData.ETC_AMT); // 총기타금액 + // sbTranHeader.Append(cCalcData.CREATE_DT); // 생성일자 + + // iItemCount = int.Parse(cCalcData.RECEIPT_QTY.Trim()); // 아이템건수(마감은 총매출건수) + // } + + // try + // { + // int iRet = ReceiptDB(sSendType, sDbConNo, sSaleDt, sDbStorCd, sDbPosNo, sDbTradeNo, sbTranHeader.ToString(), iItemCount, sbTranItem.ToString()); + // if(iRet == 0) + // { + // sReturn = UserCom.RST_OK; + // } + // } + // catch(Exception ex){} + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return sReturn; + //} + + //private void MakeTranToKacProcess(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, ref Column.KACReceiptHeader header, ref ArrayList alKACItems) + //{ + // try + // { + // DataTable dtHeader = GetTranHeaderForKac(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + // DataTable dtDetail = GetTranDetailForKac(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + // DataTable dtCash = GetTranCashForKac(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + // double dBillAmt = 0; // 영수금액 + // double dNetAmt = 0; // 순매출액(부가세제외) + // double dVatAmt = 0; // 부가세 + // int iTotalItem = 0; // 아이템 개수 + // int iSaleQty = 0; // 아이템 수량 합계 + // double dSaleUprc = 0; // 아이템 단가 합계 + // double dSaleAmt = 0; // 아이템 영수금액 합계 + + // string sSysDate = CmUtil.GetDataRowStr(dtHeader.Rows[0], "SYS_DT"); + // string sSaleTm = CmUtil.GetDataRowStr(dtHeader.Rows[0], "PAY_TIME"); + + // int iSign = CmUtil.GetDataRowStr(dtHeader.Rows[0], "TRADE_DIV") == "0" ? 1 : -1; + // for (int nLoop = 0; nLoop < dtHeader.Rows.Count; nLoop++) + // { + // // 아이템은 최대 30개 까지만 전송 + // if (nLoop > 29) break; + // DataRow drData = dtHeader.Rows[nLoop]; + + // ////////////////////////////////////////////////////////////// + // // 영수증 정보 item(매출정보) // + // ////////////////////////////////////////////////////////////// + // dBillAmt = iSign * CmUtil.GetDataRowDouble(drData, "BILL_AMT"); + // dNetAmt = iSign * CmUtil.GetDataRowDouble(drData, "NET_TOT_AMT"); + // dVatAmt = iSign * CmUtil.GetDataRowDouble(drData, "TAX_AMT"); + + // Column.KACReceiptItem item = new Column.KACReceiptItem(); + + // //item.CON_NO = m_cPosStatus.Base.KacConNo; + // //item.CON_NO = m_cPosStatus.Base.OutSDVendConNo; + // item.CON_NO = m_cPosStatus.Mst.JOIN_STOR_CD; + // item.SALE_DT = sSaleDt; + // item.STORE_CD = sStorCd; + // item.POS_NO = sPosNo; + // item.RECEIPT_NO = sTradeNo; + // item.PROC_SEQ = CmUtil.GetDataRowStr(drData, "SEQ"); + // string sItemCd = CmUtil.GetDataRowStr(drData, "ITEM_PLU_CD"); + // item.PROD_CD = sItemCd; + // item.PROD_NM = CmUtil.GetDataRowStr(SeletItemMstToItemCode(sItemCd).Rows[0], PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM); + // item.QTY = CmUtil.GetDataRowStr(drData, "SALE_QTY"); + // item.UNIT_PRICE = CmUtil.GetDataRowStr(drData, "SALE_PRC"); + // item.AMT = dBillAmt.ToString(); + // item.CREATE_DT = sSysDate; + + // // ArrayList에 영수증아이템 정보 추가 + // alKACItems.Add(item); + + // iSaleQty = iSaleQty + CmUtil.GetDataRowInt(drData, "SALE_QTY"); + // dSaleUprc = dSaleUprc + CmUtil.GetDataRowDouble(drData, "SALE_PRC"); + // dSaleAmt = dSaleAmt + dBillAmt; + + // iTotalItem++; + // } + + // ////////////////////////////////////////////////////////////// + // // 영수증 정보 item(매출정보) - TOTAL AMOUNT // + // ////////////////////////////////////////////////////////////// + // DataRow drDetail = dtDetail.Rows[0]; + // double dTotAmt = iSign * CmUtil.GetDataRowDouble(drDetail, "TOTAL_AMT"); + // double dCashAmt = iSign * CmUtil.GetDataRowDouble(drDetail, "CASH_AMT"); + // double dCardAmt = iSign * CmUtil.GetDataRowDouble(drDetail, "CARD_AMT"); + // double dEtcAmt = iSign * CmUtil.GetDataRowDouble(drDetail, "ETC_AMT"); + // string sCashYn = CmUtil.GetDataRowStr(drDetail, "CASH_YN"); + + // ////////////////////////////////////////////////////////////// + // // 영수증 정보 item(매출정보) - 현금영수증 발행 FLAG // + // ////////////////////////////////////////////////////////////// + // DataRow drCash = dtCash.Rows[0]; + // string sCashReceiptYn = CmUtil.GetDataRowStr(drCash, "CASH_RECEIPT_YN"); + + // ////////////////////////////////////////////////////////////// + // // 영수증 정보 header(매출정보) // + // ////////////////////////////////////////////////////////////// + // header.TRAN_TYPE = "TRAN"; + // //header.CON_NO = m_cPosStatus.Base.KacConNo; + // //header.CON_NO = m_cPosStatus.Base.OutSDVendConNo; + // header.CON_NO = m_cPosStatus.Mst.JOIN_STOR_CD; + // header.SALE_DT = sSaleDt; + // header.STORE_CD = sStorCd; + // header.POS_NO = sPosNo; + // header.RECEIPT_SEQ = sTradeNo; + // header.RECEIPT_NO = sTradeNo; + // header.ITEM_QTY = iTotalItem.ToString(); + // header.SALE_TM = sSaleTm; + // header.CANCEL_YN = CmUtil.GetDataRowStr(dtHeader.Rows[0], "TRADE_DIV"); + // header.TOT_AMT = dTotAmt.ToString(); + // header.SALE_AMT = dNetAmt.ToString(); + // header.TAX_AMT = dVatAmt.ToString(); + // header.CASH_AMT = dCashAmt.ToString(); + // header.CARD_AMT = dCardAmt.ToString(); + // header.ETC_AMT = dEtcAmt.ToString(); + // header.CASH_YN = sCashYn; + // header.CASH_RECEIPT_YN = sCashReceiptYn; + // header.BUY_NM = ""; + // header.BUY_COUN_CD = ""; + // header.BUY_SEX_CD = "9"; + // header.BUY_BIRTHDAY = ""; + // header.BUY_AGE = ""; + // header.AIR_NO = ""; + // header.CREATE_DT = sSysDate; + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + //} + + //private DataTable GetTranHeaderForKac(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + //{ + // string sQuery = string.Empty; + // StringBuilder sb = new StringBuilder(); + + // DataTable dtReturn = null; + // try + // { + // sb.Append("SELECT TSH.SYS_DT AS SYS_DT "); + // sb.Append(" , TSH.PAY_TIME AS PAY_TIME "); + // sb.Append(" , TSH.TRADE_NO AS TRADE_NO "); + // sb.Append(" , TSH.TRADE_DIV AS TRADE_DIV "); + // sb.Append(" , TSH.ORG_BILL_NO AS VOID_NO "); + // sb.Append(" , TSD.* "); + // sb.Append(" , ISNULL(TSH.NET_SALE_AMT, 0) - ISNULL(TSH.TOT_VAT, 0) AS NET_TOT_AMT "); + // sb.Append(" , ISNULL(TSH.TOT_VAT, 0) AS TAX_AMT "); + // sb.Append(" FROM POSLOG..TR_SALE_HEADER TSH "); + // sb.Append(" , POSLOG..TR_SALE_DETAIL TSD "); + // sb.Append(" WHERE TSH.CMP_CD = '{0}' "); + // sb.Append(" AND TSH.SALE_DT = '{1}' "); + // sb.Append(" AND TSH.STOR_CD = '{2}' "); + // sb.Append(" AND TSH.POS_NO = '{3}' "); + // sb.Append(" AND TSH.TRADE_NO = '{4}' "); + // sb.Append(" AND TSH.CMP_CD = TSD.CMP_CD "); + // sb.Append(" AND TSH.SALE_DT = TSD.SALE_DT "); + // sb.Append(" AND TSH.STOR_CD = TSD.STOR_CD "); + // sb.Append(" AND TSH.POS_NO = TSD.POS_NO "); + // sb.Append(" AND TSH.TRADE_NO = TSD.TRADE_NO "); + + // sQuery = string.Format(sb.ToString(), sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + // sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return dtReturn; + //} + + //private DataTable GetTranDetailForKac(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + //{ + // string sQuery = string.Empty; + // StringBuilder sb = new StringBuilder(); + + // DataTable dtReturn = null; + // try + // { + // sb.Append("SELECT (ISNULL(A.CASH_AMT, 0) + ISNULL(B.CARD_AMT, 0) + ISNULL(C.ETC_AMT, 0)) AS TOTAL_AMT "); + // sb.Append(" , ISNULL(A.CASH_AMT, 0) AS CASH_AMT "); + // sb.Append(" , ISNULL(B.CARD_AMT, 0) AS CARD_AMT "); + // sb.Append(" , ISNULL(C.ETC_AMT, 0) AS ETC_AMT "); + // sb.Append(" , CASE WHEN ((A.CASH_AMT <> 0) AND (B.CARD_AMT = 0) AND (C.ETC_AMT = 0)) "); + // sb.Append(" THEN '1' "); + // sb.Append(" ELSE '0' "); + // sb.Append(" END AS CASH_YN "); + // sb.Append(" FROM ( "); + // sb.Append(" SELECT SUM(ISNULL(PAY_AMT, 0)) AS CASH_AMT "); + // sb.Append(" FROM POSLOG..TR_SALE_PAY "); + // sb.Append(" WHERE CMP_CD = '{0}' "); + // sb.Append(" AND SALE_DT = '{1}' "); + // sb.Append(" AND STOR_CD = '{2}' "); + // sb.Append(" AND POS_NO = '{3}' "); + // sb.Append(" AND TRADE_NO = '{4}' "); + // sb.Append(" AND PAY_WAY_CD = '" + ItemConst.TR_ITEM_ID.CASH_ITEM + "' "); + // sb.Append(" ) A "); + // sb.Append(" , ( "); + // sb.Append(" SELECT SUM(ISNULL(PAY_AMT, 0)) AS CARD_AMT "); + // sb.Append(" FROM POSLOG..TR_SALE_PAY "); + // sb.Append(" WHERE CMP_CD = '{0}' "); + // sb.Append(" AND SALE_DT = '{1}' "); + // sb.Append(" AND STOR_CD = '{2}' "); + // sb.Append(" AND POS_NO = '{3}' "); + // sb.Append(" AND TRADE_NO = '{4}' "); + // sb.Append(" AND PAY_WAY_CD = '" + ItemConst.TR_ITEM_ID.CREDITCARD_ITEM + "' "); + // sb.Append(" ) B "); + // sb.Append(" , ( "); + // sb.Append(" SELECT SUM(ISNULL(PAY_AMT, 0)) AS ETC_AMT "); + // sb.Append(" FROM POSLOG..TR_SALE_PAY "); + // sb.Append(" WHERE CMP_CD = '{0}' "); + // sb.Append(" AND SALE_DT = '{1}' "); + // sb.Append(" AND STOR_CD = '{2}' "); + // sb.Append(" AND POS_NO = '{3}' "); + // sb.Append(" AND TRADE_NO = '{4}' "); + // sb.Append(" AND PAY_WAY_CD <> '" + ItemConst.TR_ITEM_ID.CASH_ITEM + "' "); + // sb.Append(" AND PAY_WAY_CD <> '" + ItemConst.TR_ITEM_ID.CREDITCARD_ITEM + "' "); + // sb.Append(" ) C "); + + // sQuery = string.Format(sb.ToString(), sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + // sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return dtReturn; + //} + + //private DataTable GetTranCashForKac(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo) + //{ + // string sQuery = string.Empty; + // StringBuilder sb = new StringBuilder(); + + // DataTable dtReturn = null; + // try + // { + // sb.Append("SELECT TSH.TRADE_NO AS BILL_NO "); + // sb.Append(" , TSH.ORG_BILL_NO AS VOID_NO "); + // sb.Append(" , TSH.TRADE_DIV AS SALEH_DIV "); + // sb.Append(" , CASE WHEN (ISNULL(TSE.OCCUR_ENTRY_02, 0) = 0) "); + // sb.Append(" THEN '0' "); + // sb.Append(" ELSE '1' "); + // sb.Append(" END AS CASH_RECEIPT_YN "); + // sb.Append(" FROM POSLOG..TR_SALE_HEADER TSH "); + // sb.Append(" LEFT JOIN POSLOG..TR_SALE_ETC TSE "); + // sb.Append(" ON TSH.CMP_CD = TSE.CMP_CD "); + // sb.Append(" AND TSH.SALE_DT = TSE.SALE_DT "); + // sb.Append(" AND TSH.STOR_CD = TSE.STOR_CD "); + // sb.Append(" AND TSH.POS_NO = TSE.POS_NO "); + // sb.Append(" AND TSH.TRADE_NO = TSE.TRADE_NO "); + // sb.Append(" AND TSE.ETC_WAY_CD = '" + ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL + "' "); + // sb.Append(" WHERE TSH.CMP_CD = '{0}' "); + // sb.Append(" AND TSH.SALE_DT = '{1}' "); + // sb.Append(" AND TSH.STOR_CD = '{2}' "); + // sb.Append(" AND TSH.POS_NO = '{3}' "); + // sb.Append(" AND TSH.TRADE_NO = '{4}' "); + + // sQuery = string.Format(sb.ToString(), sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + + // sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return dtReturn; + //} + ///// + ///// 상품마스터 조회 + ///// + ///// + ///// + //private DataTable SeletItemMstToItemCode(string sItemCode) + //{ + // string sQuery = ""; + + // DataTable dtReturn = null; + + // try + // { + // // 상품코드로 상품 마스터 조회 + // sQuery += " SELECT * FROM POSMST..MST_ITEM "; + // sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; + // sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; + // sQuery += " AND SUB_STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; + // sQuery += " AND ITEM_CD = '" + sItemCode + "'"; + // sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; + + // sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // } + + // return dtReturn; + //} + #endregion 09 - 한국공항공사 매출 I/F + + #region 10 - 긴급 메세지 읽음 전송(MST_EMG_NOTE) + /// + /// 긴급메세지 전송 메인 + /// + public void EmgNoteSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sMsgCode = string.Empty; + string sStartDT = string.Empty; + string sMsgDiv = string.Empty; + try + { + // 전송할 Journal 데이터 생성 + htData = GetEmgNoteData(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sStartDT = CmUtil.GetDataRowStr(dtReturn.Rows[0], Column.IQ_EMG_NOTE_SEND.DATA.START_DT); + sMsgCode = CmUtil.GetDataRowStr(dtReturn.Rows[0], Column.IQ_EMG_NOTE_SEND.DATA.MSG_CODE); + sMsgDiv = CmUtil.GetDataRowStr(dtReturn.Rows[0], Column.IQ_EMG_NOTE_SEND.DATA.MSG_DIV); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + Convert.ToInt32(m_cPosStatus.Base.JrnlTimeout), + new string[] { m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.SaleDate, m_cPosStatus.Base.PosNo, m_cPosStatus.Base.TradeNo }, + ItemConst.COMM_MSG_TYPE.EMG_NOTE_SEND, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + EmgNoteFlgUpdate(sStartDT, sMsgCode, sMsgDiv, sSendFlag); + } + } + + /// + /// 전송 완료 업데이트 + /// + /// + /// + /// + /// + private int EmgNoteFlgUpdate(string sStartDT, string sMsgCode, string sMsgDiv, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sStartDT.Trim() == "" || sMsgCode.Trim() == "" || sMsgDiv.Trim() == "") return iRet; + + sQuery += " UPDATE POSMST..MST_EMG_NOTE "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + + //성공한것만 업데이트 시간 변경! + if (sSendFlag == "1") + sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + + sQuery += " WHERE 1 = 1 "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; + sQuery += " AND START_DT = '" + sStartDT + "'"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; + sQuery += " AND MSG_CODE = '" + sMsgCode + "' "; + sQuery += " AND MSG_DIV = '" + sMsgDiv + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + /// + /// 긴급메세지 전송 조회 + /// + /// + /// + public Hashtable GetEmgNoteData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + sQuery += " SELECT TOP 1 "; + sQuery += " CMP_CD, STOR_CD, POS_NO, MSG_CODE, MSG_DIV, START_DT, UPD_DT, READ_YN "; + sQuery += " FROM POSMST..MST_EMG_NOTE "; + sQuery += " WHERE 1 = 1 "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; + sQuery += " AND START_DT BETWEEN CONVERT(VARCHAR,GETDATE()-7,112) AND CONVERT(VARCHAR,GETDATE(),112) "; //-7일 전부터 + sQuery += " AND SEND_YN IN ('0','9') "; + sQuery += " ORDER BY READ_YN, UPD_DT "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeEmgNoteJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + /// + /// 긴급메세지 전송 헤시테이블 담기 + /// + /// + /// + private Hashtable MakeEmgNoteJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - 회사코드 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.CMP_CD, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.CMP_CD)); //"CMP_CD")); + // 02 - 점포코드 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.STOR_CD, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.STOR_CD)); //"STOR_CD")); + // 03 - 포스번호 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.POS_NO, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.POS_NO)); //"POS_NO")); + // 04 - 메세지코드 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.MSG_CODE, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.MSG_CODE)); //"MSG_CODE")); + // 05 - 메시지 구분별 유형 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.MSG_DIV, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.MSG_DIV)); // "MSG_DIV")); + // 06 - 시작 시간 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.START_DT, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.START_DT)); + // 07 - 업데이트 시간 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.UPD_DT, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.UPD_DT)); // "UPD_DT")); + // 08 - 읽음 시간 - 2017-01-24 추가 + htData.Add(Column.IQ_EMG_NOTE_SEND.DATA.READ_YN, CmUtil.GetDataRowStr(drData, Column.IQ_EMG_NOTE_SEND.DATA.READ_YN)); // "READ_YN")); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + #endregion + + #region 11 - 점포점검 내역 전송 (ITR 전송) + public void StoreCheckSendProcess() + { + DataTable dtReturn = null; + + string sSendFlag = ""; + string sCmpCd = ""; + string sStorCd = ""; + string sSaleDt = ""; + string sInspctEntryGrpCd = ""; + + Hashtable htSendData = new Hashtable(); + Hashtable htRecvData = new Hashtable(); + + try + { + // 전송할 점포점검 데이터 생성 + string sStoreCheckLog = GetStoreCheckLog(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + DataRow dr = dtReturn.Rows[0]; + sCmpCd = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.CMP_CD); + sStorCd = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.STOR_CD); + sSaleDt = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.START_DT); + sInspctEntryGrpCd = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.INSPCT_ENTRY_GRP_CD); + + htSendData = MakeStoreCheckLogJsonData(dr, sStoreCheckLog); + + string sReturn = ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.PayInqPort, 10000, htSendData, ref htRecvData, false); + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + StoreCheckFlgUpdate(sCmpCd, sStorCd, sSaleDt, sInspctEntryGrpCd, sSendFlag); + } + } + + private Hashtable MakeStoreCheckLogJsonData(DataRow drData, string sStoreCheckLog) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - INQ 종별 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.STORE_CHECK_SAVE); + // 02 - 점포 코드 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.STOR_CD, CmUtil.GetDataRowStr(drData, Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.STOR_CD)); + // 03 - 요청구분 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.INQ_DIV, "1"); + // 04 - 점포점검 데이터 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.SAVE_DATA, sStoreCheckLog); + // 05 - 응답 코드 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.RES_CD, ""); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + private int StoreCheckFlgUpdate(string sCmpCd, string sStorCd, string sSaleDt, string sInspctEntryGrpCd, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = ""; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + + sQuery = " UPDATE POSLOG..ETC_STOR_INSPCT_ANSWR_STOR "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND START_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND INSPCT_ENTRY_GRP_CD = '" + sInspctEntryGrpCd + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + public string GetStoreCheckLog(ref DataTable dtReturn) + { + string sQuery = ""; + string sCMP_CD = ""; + string sSTOR_CD = ""; + string sSTART_DT = ""; + string sINSPCT_ENTRY_GRP_CD = ""; + + string sStoreCheckData = ""; + + DataTable dtTempReturn = null; + try + { + sQuery = " SELECT TOP 1 "; + sQuery += " CMP_CD, INSPCT_ENTRY_GRP_CD, STOR_CD, START_DT "; + sQuery += " FROM POSLOG..ETC_STOR_INSPCT_ANSWR_STOR "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, START_DT "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + sCMP_CD = drTempReturn[Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.CMP_CD].ToString(); + sSTOR_CD = drTempReturn[Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.STOR_CD].ToString(); + sSTART_DT = drTempReturn[Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.START_DT].ToString(); + sINSPCT_ENTRY_GRP_CD = drTempReturn[Column.ETC_STOR_INSPCT_ANSWR_STOR.NAME.INSPCT_ENTRY_GRP_CD].ToString(); + + + sStoreCheckData = GetStoreCheckHeader(sCMP_CD, sSTOR_CD, sSTART_DT, sINSPCT_ENTRY_GRP_CD) + + GetStoreCheckDetail(sCMP_CD, sSTOR_CD, sSTART_DT, sINSPCT_ENTRY_GRP_CD); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sStoreCheckData; + } + + private string GetStoreCheckHeader(string sCMP_CD, string sSTOR_CD, string sSTART_DT, string sINSPCT_ENTRY_GRP_CD) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '" + ItemConst.IRT_TRAN_TYPE.TranHeader + "' + '|' + ISNULL(CMP_CD, '') + '|' + ISNULL(INSPCT_ENTRY_GRP_CD, '') + '|' + ISNULL(STOR_CD, '') + '|' + ISNULL(START_DT, '') + '|' + ISNULL(ANSWR_YN, '') + '|' + "; + sQuery += " ISNULL(ETC_CTNTS_1, '') + '|' + ISNULL(ETC_CTNTS_2, '') + '|' + ISNULL(ETC_CTNTS_3, '') + '|' + ISNULL(REG_USER_ID, '') + '|' + ISNULL(REG_DATE, '') + '|' + "; + sQuery += " ISNULL(UPD_USER_ID, '') + '|' + ISNULL(UPD_DATE, '') AS STORE_CHECK_HEADER "; + sQuery += " FROM POSLOG..ETC_STOR_INSPCT_ANSWR_STOR "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND START_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND INSPCT_ENTRY_GRP_CD = '{3}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSTART_DT + , sSTOR_CD + , sINSPCT_ENTRY_GRP_CD); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetStoreCheckDetail(string sCMP_CD, string sSTOR_CD, string sSTART_DT, string sINSPCT_ENTRY_GRP_CD) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranDetail + "' + '|' + ISNULL(CMP_CD, '') + '|' + ISNULL(BRAND_CD, '') + '|' + ISNULL(INSPCT_ENTRY_GRP_CD, '') + '|' + ISNULL(STOR_CD, '') + '|' + ISNULL(START_DT, '') + '|' + "; + sQuery += " ISNULL(INSPCT_ENTRY_L_CLSS_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(INSPCT_ENTRY, 0)) + '|' + ISNULL(SEL_ENTRY_1_YN, '') + '|' + ISNULL(SEL_ENTRY_2_YN, '') + '|' + ISNULL(SEL_ENTRY_3_YN, '') + '|' + ISNULL(SEL_ENTRY_4_YN, '') + '|' + ISNULL(SEL_ENTRY_5_YN, '') + '|' +"; + sQuery += " CONVERT(VARCHAR, ISNULL(SCORE_1, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SCORE_2, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SCORE_3, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SCORE_4, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SCORE_5, 0)) + '|' + "; + sQuery += " ISNULL(SEL_ENTRY_1_CTNTS, '') + '|' + ISNULL(SEL_ENTRY_2_CTNTS, '') + '|' + ISNULL(SEL_ENTRY_3_CTNTS, '') + '|' + ISNULL(SEL_ENTRY_4_CTNTS, '') + '|' + ISNULL(SEL_ENTRY_5_CTNTS, 0) + '|' + "; + sQuery += " ISNULL(NOTE, '') + '|' + ISNULL(REG_USER_ID, 0) + '|' + ISNULL(REG_DATE, '') + '|' + ISNULL(UPD_USER_ID, '') + '|' + ISNULL(UPD_DATE, '') AS STORE_CHECK_DETAIL "; + sQuery += " FROM POSLOG..ETC_STOR_INSPCT_ANSWR "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND START_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + sQuery += " AND INSPCT_ENTRY_GRP_CD = '{3}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSTART_DT + , sSTOR_CD + , sINSPCT_ENTRY_GRP_CD); + + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + #endregion + + #region 12 - 점포장비점검 내역 전송 (ITR 전송) + public void StoreEquipCheckSendProcess() + { + DataTable dtReturn = null; + + string sSendFlag = ""; + string sCmpCd = ""; + string sStorCd = ""; + string sSaleDt = ""; + + Hashtable htSendData = new Hashtable(); + Hashtable htRecvData = new Hashtable(); + + try + { + // 전송할 점포점검 데이터 생성 + string sStoreCheckLog = GetStoreEquipCheckLog(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + DataRow dr = dtReturn.Rows[0]; + sCmpCd = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_EQU_CHECK_LIST.NAME.CMP_CD); + sStorCd = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_EQU_CHECK_LIST.NAME.STOR_CD); + sSaleDt = CmUtil.GetDataRowStr(dr, Column.ETC_STOR_EQU_CHECK_LIST.NAME.SALE_DT); + + htSendData = MakeStoreEquipCheckLogJsonData(dr, sStoreCheckLog); + + string sReturn = ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.PayInqPort, 10000, htSendData, ref htRecvData, false); + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + StoreEquipCheckFlgUpdate(sCmpCd, sStorCd, sSaleDt, sSendFlag); + } + } + + private Hashtable MakeStoreEquipCheckLogJsonData(DataRow drData, string sStoreCheckLog) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - INQ 종별 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.STR_EQUIP_CHECK_SAVE); + // 02 - 점포 코드 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.STOR_CD, CmUtil.GetDataRowStr(drData, Column.ETC_STOR_EQU_CHECK_LIST.NAME.STOR_CD)); + // 03 - 요청구분 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.INQ_DIV, "1"); + // 04 - 점포점검 데이터 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.SAVE_DATA, sStoreCheckLog); + // 05 - 응답 코드 + htData.Add(Column.IQ_STOR_CHECK_LIST_INQ.DATA.RES_CD, ""); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + private int StoreEquipCheckFlgUpdate(string sCmpCd, string sStorCd, string sSaleDt, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = ""; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + + sQuery = " UPDATE POSLOG..ETC_STOR_EQU_CHECK_LIST "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + public string GetStoreEquipCheckLog(ref DataTable dtReturn) + { + string sQuery = ""; + string sCMP_CD = ""; + string sSTOR_CD = ""; + string sSTART_DT = ""; + + string sStoreCheckData = ""; + + DataTable dtTempReturn = null; + try + { + sQuery = " SELECT TOP 1 "; + sQuery += " CMP_CD, STOR_CD, SALE_DT "; + sQuery += " FROM POSLOG..ETC_STOR_EQU_CHECK_LIST "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + sCMP_CD = drTempReturn[Column.ETC_STOR_EQU_CHECK_LIST.NAME.CMP_CD].ToString(); + sSTOR_CD = drTempReturn[Column.ETC_STOR_EQU_CHECK_LIST.NAME.STOR_CD].ToString(); + sSTART_DT = drTempReturn[Column.ETC_STOR_EQU_CHECK_LIST.NAME.SALE_DT].ToString(); + + sStoreCheckData = GetStoreEquipCheckHeader(sCMP_CD, sSTOR_CD, sSTART_DT) + + GetStoreEquipCheckDetail(sCMP_CD, sSTOR_CD, sSTART_DT); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sStoreCheckData; + } + + private string GetStoreEquipCheckHeader(string sCMP_CD, string sSTOR_CD, string sSALE_DT) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '" + ItemConst.IRT_TRAN_TYPE.TranHeader + "' + '|' + ISNULL(CMP_CD, '') + '|' + ISNULL(STOR_CD, '') + '|' + ISNULL(SALE_DT, '') + '|' + ISNULL(CHECK_STATE, '') + '|' + "; + sQuery += " ISNULL(REG_USER_ID, '') + '|' + ISNULL(REG_DATE, '') + '|' + ISNULL(UPD_USER_ID, '') + '|' + ISNULL(UPD_DATE, '') AS STORE_EQUIP_CHECK_HEADER "; + sQuery += " FROM POSLOG..ETC_STOR_EQU_CHECK_LIST "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD); + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + private string GetStoreEquipCheckDetail(string sCMP_CD, string sSTOR_CD, string sSALE_DT) + { + StringBuilder sbTranData = new StringBuilder(); + string sQuery = ""; + string sSQL = ""; + DataTable dtTempReturn = null; + + try + { + sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranDetail + "' + '|' + ISNULL(CMP_CD, '') + '|' + ISNULL(STOR_CD, '') + '|' + ISNULL(SALE_DT, '') + '|' + "; + sQuery += " ISNULL(CHECK_DIV_CD, '') + '|' + ISNULL(CHECK_EQU_CD, '') + '|' + ISNULL(CHECK_RESULT, '') + '|' + ISNULL(AS_RESULT, '') + '|' + ISNULL(STOR_RESULT, '') + '|' + "; + sQuery += " ISNULL(REG_USER_ID, 0) + '|' + ISNULL(REG_DATE, '') + '|' + ISNULL(UPD_USER_ID, '') + '|' + ISNULL(UPD_DATE, '') AS STORE_EQUIP_CHECK_DETAIL "; + sQuery += " FROM POSLOG..ETC_STOR_EQU_CHECK_DETAIL "; + sQuery += " WHERE CMP_CD = '{0}' "; + sQuery += " AND SALE_DT = '{1}' "; + sQuery += " AND STOR_CD = '{2}' "; + + sSQL = string.Format(sQuery + , sCMP_CD + , sSALE_DT + , sSTOR_CD); + + + if (sqlDb.DBDataTableSelect(sSQL, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn != null && dtTempReturn.Rows.Count > 0) + { + foreach (DataRow dr in dtTempReturn.Rows) + { + sbTranData.Append(dr[0].ToString()); + } + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sbTranData.ToString(); + } + + #endregion + + #region 13 - SCALE Log 전송 + public void ScaleLogSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sBrandCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sScaleDt = string.Empty; + string sScaleTm = string.Empty; + + try + { + // 전송할 Scale Log 데이터 생성 + htData = GetScaleLogData(ref dtReturn); + + if(dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sBrandCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "BRAND_CD"); + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sScaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SCALE_DT"); + sScaleTm = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SCALE_TM"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.ScaleLogPort), + 5000, + new string[] { sCmpCd, sBrandCd, sStorCd, sSaleDt, sPosNo, "" }, + ItemConst.COMM_MSG_TYPE.SCALE_LOG, + htData); + + if(sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + ScaleLogFlgUpdate(sCmpCd, sBrandCd, sSaleDt, sStorCd, sPosNo, sScaleDt, sScaleTm, sSendFlag); + } + } + + public Hashtable GetScaleLogData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + sQuery += "SELECT TOP 1 "; + sQuery += " CMP_CD, BRAND_CD, SALE_DT, STOR_CD, POS_NO "; + sQuery += " , SCALE_DT, SCALE_TM, WEIGHT, ITEM_NM, NORMAL_YN "; + sQuery += " FROM POSLOG..ETC_SCALE_LOG "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN, SALE_DT "; + + if(sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if(dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeScaleLogJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + private Hashtable MakeScaleLogJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + // 01 - 회사코드 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.CmpCd, CmUtil.GetDataRowStr(drData, "CMP_CD")); + // 02 - 점포코드 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.StorCd, CmUtil.GetDataRowStr(drData, "STOR_CD")); + // 03 - 판매일자 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.SaleDt, CmUtil.GetDataRowStr(drData, "SALE_DT")); + // 04 - 포스번호 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.PosNo, CmUtil.GetDataRowStr(drData, "POS_NO")); + // 05 - 측정일자 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.ScaleDt, CmUtil.GetDataRowStr(drData, "SCALE_DT")); + // 06 - 측정시간 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.ScaleTm, CmUtil.GetDataRowStr(drData, "SCALE_TM")); + // 07 - 중량 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.Weight, CmUtil.GetDataRowStr(drData, "WEIGHT")); + // 08 - 상품명 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.ItemNm, CmUtil.GetDataRowStr(drData, "ITEM_NM")); + // 09 - 정상/미달 구분 + htData.Add(Column.IQ_SCALE_LOG_REQ.DATA.NormalYn, CmUtil.GetDataRowStr(drData, "NORMAL_YN")); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + private int ScaleLogFlgUpdate(string sCmpCd, string sBrandCd, string sSaleDt, string sStorCd, string sPosNo, string sScaleDt, string sScaleTm, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "") return iRet; + if (sBrandCd.Trim() == "") return iRet; + if (sSaleDt.Trim() == "") return iRet; + if (sStorCd.Trim() == "") return iRet; + if (sPosNo.Trim() == "") return iRet; + if (sScaleDt.Trim() == "") return iRet; + if (sScaleTm.Trim() == "") return iRet; + + sQuery += "UPDATE POSLOG..ETC_SCALE_LOG "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND BRAND_CD = '" + sBrandCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND SCALE_DT = '" + sScaleDt + "' "; + sQuery += " AND SCALE_TM = '" + sScaleTm + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + #endregion 13 - SCALE Log 전송 + + #region 14 - 보류 로그 전송 + /// + /// 보류로그 전송 메인 + /// + public void HoldLogSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sBrandCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sRegNo = string.Empty; + string sSeq = string.Empty; + + + try + { + // 전송할 Scale Log 데이터 생성 + htData = GetHoldLogData(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sBrandCd = m_cPosStatus.Base.BrandCd; + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sRegNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "REG_NO"); + sSeq = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SEQ"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.ScaleLogPort), + 5000, + new string[] { sCmpCd, sBrandCd, sStorCd, sSaleDt, sPosNo, "" }, + ItemConst.COMM_MSG_TYPE.HOLD_LOG, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + HoldLogFlgUpdate(sCmpCd, sSaleDt, sStorCd, sPosNo, sRegNo, sSeq, sSendFlag); + } + } + + /// + /// 데이터 조회 + /// + /// + /// + public Hashtable GetHoldLogData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + sQuery += "SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, REG_NO, SEQ, HOLD_STAT, SYS_DT, SYS_TM, REG_SEQ "; + sQuery += " ,ORG_REG_SEQ, PIC_NO, ITEM_QTY, SALE_AMT, AMT_FILLER_01, AMT_FILLER_02, STR_FILLER_01, STR_FILLER_02 "; + sQuery += " FROM POSLOG.dbo.ETC_HOLD_HISTORY "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN ASC "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeHoldLogJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + /// + /// 전문 생성 + /// + /// + /// + private Hashtable MakeHoldLogJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + // 전문 생성 + for (int iRow = 0; iRow < drData.Table.Columns.Count; iRow++) + { + htData.Add(drData.Table.Columns[iRow].ColumnName, drData[iRow].ToString()); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + /// + /// 디비 업데이트 + /// + /// + /// + /// + /// + /// + /// + /// + private int HoldLogFlgUpdate(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sRegNo, string sSeq, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "" || sSaleDt.Trim() == "" || sStorCd.Trim() == "" || sPosNo.Trim() == "" || sRegNo.Trim() == "" || sSeq.Trim() == "") return iRet; + + sQuery += "UPDATE POSLOG.dbo.ETC_HOLD_HISTORY "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND REG_NO = '" + sRegNo + "' "; + sQuery += " AND SEQ = '" + sSeq + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + #endregion 14 - 보류 로그 전송 + + #region 15 - 해피앱 추후적립 내역 전송(TR_HPAPP_AFTER_SAVE 전송) + //#해피앱 추후적립 start, sskim + /// + /// 보류로그 전송 메인 + /// + public void HpAppAfterSaveSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sBrandCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + + + try + { + // 전송할 TR_HpAppAfterSave 데이터 생성 + htData = GetHpAppAfterSaveData(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sBrandCd = m_cPosStatus.Base.BrandCd; + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sTradeNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "TRADE_NO"); + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + 5000, + new string[] { sCmpCd, sBrandCd, sStorCd, sSaleDt, sPosNo, sTradeNo }, + ItemConst.COMM_MSG_TYPE.HPAPP_AFTER_SAVE, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + HpAppAfterSaveUpdate(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, sSendFlag); + } + } + + /// + /// 데이터 조회 + /// + /// + /// + public Hashtable GetHpAppAfterSaveData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + sQuery += "SELECT TOP 1 "; + sQuery += " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO "; + sQuery += " ,BILL_BAR_CD, TMNLNO, TOT_TRADE_AMT, ACCUM_TRGT_AMT, APPR_WAY_CD "; + sQuery += " ,APPR_CARD_NO, ADD_ACCUM_YN, ADD_ACCUM_CD, ADD_ACCUM_HQ_ALLOT_AMT, ADD_ACCUM_STOR_ALLOT_AMT "; + sQuery += " ,SAVE_STATUS "; + sQuery += " FROM POSLOG.dbo.TR_HPAPP_AFTER_SAVE "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " ORDER BY SEND_YN ASC "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeHpAppAfterSaveJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + /// + /// 전문 생성 + /// + /// + /// + private Hashtable MakeHpAppAfterSaveJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + // 전문 생성 + for (int iRow = 0; iRow < drData.Table.Columns.Count; iRow++) + { + htData.Add(drData.Table.Columns[iRow].ColumnName, drData[iRow].ToString()); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + /// + /// 디비 업데이트 + /// + /// + /// + /// + /// + /// + /// + private int HpAppAfterSaveUpdate(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "" || sSaleDt.Trim() == "" || sStorCd.Trim() == "" || sPosNo.Trim() == "" || sTradeNo.Trim() == "") return iRet; + + sQuery += "UPDATE POSLOG.dbo.TR_HPAPP_AFTER_SAVE "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND TRADE_NO = '" + sTradeNo + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + //#해피앱 추후적립 end, sskim + #endregion 15 - 해피앱 추후적립 내역 전송(TR_HPAPP_AFTER_SAVE 전송) + + //#20171120 유통기한 바코드 인식률 start, phj + #region 16 - 유통기한 바코드 인식률 (TR_BAR_SUCESS_RATE 전송) + + public void BarcodeSucessRateSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sBrandCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + string sSeq = string.Empty; + + try + { + // 전송할 TR_BAR_SUCESS_RATE 데이터 생성 + htData = GetBarcodeSucessRateData(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sBrandCd = m_cPosStatus.Base.BrandCd; + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sTradeNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "REG_NO"); + sSeq = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SEQ"); + + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + 5000, + new string[] { sCmpCd, sBrandCd, sStorCd, sSaleDt, sPosNo, sTradeNo }, + ItemConst.COMM_MSG_TYPE.BAR_SUCESS_RATE, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + BarcodeSucessRateUpdate(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, sSendFlag, sSeq); + } + } + + /// + /// 데이터 조회 + /// + /// + /// + public Hashtable GetBarcodeSucessRateData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + sQuery += "SELECT TOP 1 "; + sQuery += " CMP_CD,SALE_DT,STOR_CD,POS_NO,REG_NO,SEQ,BAR_CD,SUCESS_YN,SEND_YN,UPD_DATE,REG_DATE "; + sQuery += " FROM POSLOG.dbo.TR_BAR_SUCESS_RATE "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' "; + sQuery += " ORDER BY SEND_YN ASC "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeBarcodeSucessRateJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + /// + /// 전문 생성 + /// + /// + /// + private Hashtable MakeBarcodeSucessRateJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + // 전문 생성 + for (int iRow = 0; iRow < drData.Table.Columns.Count; iRow++) + { + htData.Add(drData.Table.Columns[iRow].ColumnName, drData[iRow].ToString()); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + /// + /// 디비 업데이트 + /// + /// + /// + /// + /// + /// + /// + private int BarcodeSucessRateUpdate(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, string sSendFlag, string sSeq) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "" || sSaleDt.Trim() == "" || sStorCd.Trim() == "" || sPosNo.Trim() == "" || sTradeNo.Trim() == "") return iRet; + + sQuery += "UPDATE POSLOG.dbo.TR_BAR_SUCESS_RATE "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND REG_NO = '" + sTradeNo + "' "; + sQuery += " AND SEQ = '" + sSeq + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + #endregion 16 - 유통기한 바코드 인식률 + //#20171120 유통기한 바코드 인식률 end, phj + + + //#20180322 휴게소pos매출연동 start,phj + #region 17 - 휴게소pos매출연동 대상거래 조회 + private void GetRestAreaTranInfo(ref DataTable dtReturn) + { + string sQuery = string.Empty; + DataTable dtTempReturn = null; + + try + { + sQuery = " SELECT TOP 1 \n" + + + //20180404 도로공사 재전송 기능을 제외한 기본 스레드 동작에서는 영업일자 기준으로 동작하지 않도록 수정 start, phj + //기본 + //+ " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO \n" + //변경 + + " CMP_CD, SALE_DT, STOR_CD, POS_NO, TRADE_NO, OUT_SEND_YN \n" + //20180404 도로공사 재전송 기능을 제외한 기본 스레드 동작에서는 영업일자 기준으로 동작하지 않도록 수정 end, phj + + + " FROM POSLOG..TR_SALE_HEADER \n" + + " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n" + + " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n" + + " AND TRADE_KINDPER IN ('00','20','21','42') \n" + + " AND OUT_SEND_YN <> '8' \n" + + " AND TRAIN_MODE_YN = '0' \n" + + " ORDER BY SALE_DT desc, TRADE_NO desc, OUT_SEND_YN \n"; + + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn); + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion 17 - 휴게소pos매출연동 + //#20180322 휴게소pos매출연동 end,phj + + //#20180322 휴게소pos매출연동 start,phj + #region 17 - 휴게소pos매출연동 + public void MakeTranToRestArea() + { + bool bRet = false; + string sendFlag = string.Empty; + // 빌정보 + string sCmpCd = string.Empty; + string sSaleDt = string.Empty; + string sStorCd = string.Empty; + string sPosNo = string.Empty; + string sTradeNo = string.Empty; + + //20180404 도로공사 재전송 기능을 제외한 기본 스레드 동작에서는 영업일자 기준으로 동작하지 않도록 수정 start, phj + string sOutSendYN = string.Empty; + //20180404 도로공사 재전송 기능을 제외한 기본 스레드 동작에서는 영업일자 기준으로 동작하지 않도록 수정 end, phj + + // 텍스트 파일 생성 + string sFilename = string.Empty; + string sFileFullname = string.Empty; + string sPath = string.Empty; + // JSON 생성 + string sJsonData = string.Empty; + + DataTable dtReturn = null; + try + { + // 전송할 데이터 조회 + GetRestAreaTranInfo(ref dtReturn); + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + // 0:미전송, 8:파일생성, 9:에러 + sendFlag = "0"; + + DataRow dr = dtReturn.Rows[0]; + + sCmpCd = CmUtil.GetDataRowStr(dr, "CMP_CD"); + sSaleDt = CmUtil.GetDataRowStr(dr, "SALE_DT"); + sStorCd = CmUtil.GetDataRowStr(dr, "STOR_CD"); + sPosNo = CmUtil.GetDataRowStr(dr, "POS_NO"); + sTradeNo = CmUtil.GetDataRowStr(dr, "TRADE_NO"); + + + //20180404 도로공사 재전송 기능을 제외한 기본 스레드 동작에서는 영업일자 기준으로 동작하지 않도록 수정 start, phj + sOutSendYN = CmUtil.GetDataRowStr(dr, "OUT_SEND_YN"); + + + if ((CmUtil.LongParse(sSaleDt) < CmUtil.LongParse(m_cPosStatus.Base.SaleDate)) && sOutSendYN != "R") + { + //20180403 영업일자보다 크거나 같거나 스레드 동작하도록 추가수정 + return; + } + //20180404 도로공사 재전송 기능을 제외한 기본 스레드 동작에서는 영업일자 기준으로 동작하지 않도록 수정 end, phj + + + Hashtable htData = null; + htData = new Hashtable(); + htData.Clear(); + bRet = MakeTrSendData(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, ref htData); + + if (bRet == false) + { + sendFlag = "9"; + return; + } + else + { + // JSON 생성 + m_cDataCommon.HashToJsonString(htData, ref sJsonData); + + //S+영업일자(YYMMDD)+운영업체코드(3자리)+휴게소코드(7자리)+포스그룹코드(2자리)+POS번호(4자리)+영수증번호(8자리).dat + sFilename = string.Format("{0}{1}{2}{3}{4}{5}{6}.dat" + , ItemConst.ROAD_SAVE_TYPE.SALE + , sSaleDt.Substring(2, 6).Trim() //영업일자(YYMMDD) + , m_cPosStatus.RestAreaPos.RestAreaPosGroupCd.PadLeft(3, '0').Trim() //운영업체코드(3자리) + , m_cPosStatus.RestAreaPos.RestAreaPosCd.PadLeft(7, '0').Trim() //휴게소코드(7자리) + , m_cPosStatus.RestAreaPos.RestAreaPosPosGroupCd.PadLeft(2, '0').Trim() //포스그룹코드(2자리) + , m_cPosStatus.RestAreaPos.RestAreaPosPosNo.PadLeft(4, '0').Trim() //POS번호(4자리) + , sTradeNo.PadLeft(8, '0')); //영수증번호(8자리) + + + //#20180410 휴게소매출 경로 없을 경우 자동생성 안함 start,phj + if (m_cPosStatus.RestAreaPos.RestAreaPosDir == "") + { + m_cPosStatus.RestAreaPos.RestAreaPosDir = @"C:\eRest_SPC\Sals\"; + } + //#20180410 휴게소매출 경로 없을 경우 자동생성 안함 end,phj + + sPath = m_cPosStatus.RestAreaPos.RestAreaPosDir; + sFileFullname = sPath + sFilename; + + //if (m_cDataCommon.SaveRoadJson(ItemConst.ROAD_SAVE_TYPE.SALE, dFilename, sJsonData).Equals(UserCom.RST_OK)) + if (CmUtil.WriteTextFile(sFileFullname, sJsonData) == true) + { + //CmUtil.FileCopy(sFilename, dFilename, false); + sendFlag = "8"; + } + else + { + sendFlag = "9"; + + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 Hi-쉼마루 파일 생성 오류 -> " + sFileFullname); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 Hi-쉼마루 파일 생성 오류 -> " + sFileFullname + " : " + ex.Message); + sendFlag = "9"; + } + finally + { + // Flag Update + OutsideTranSendFlgUpdate(sCmpCd, sStorCd, sPosNo, sSaleDt, sTradeNo, sendFlag); + } + } + #endregion 17 - 휴게소pos매출연동 + //#20180322 휴게소pos매출연동 end,phj + + //#20180322 휴게소pos매출연동 start,phj + #region 17 - 휴게소 포스에 보낼 데이터 조립 + private bool MakeTrSendData(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, ref Hashtable htSendData) + { + bool bRet = false; + + Hashtable htData = null; + htData = new Hashtable(); + htData.Clear(); + + try + { + Hashtable ht_Header = null; + ht_Header = new Hashtable(); + ht_Header.Clear(); + bRet = MakeSaleHDData(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, ref ht_Header); + if (bRet == false) + { + return bRet; + } + + + ArrayList Al_Detail = null; + Al_Detail = new ArrayList(); + Al_Detail.Clear(); + bRet = MakeSaleDTData(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, ref Al_Detail); + if (bRet == false) + { + return bRet; + } + + ArrayList Al_Paylist = null; + Al_Paylist = new ArrayList(); + Al_Paylist.Clear(); + bRet = MakePaymentData(sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo, ref Al_Paylist); + if (bRet == false) + { + return bRet; + } + + // JSON 생성 + if (ht_Header.Count > 0) htData.Add(Column.RESTAREA_SALE_HD.ITEM, ht_Header); + if (Al_Detail.Count > 0) htData.Add(Column.RESTAREA_SALE_DT.ITEM, Al_Detail); + if (Al_Paylist.Count > 0) htData.Add(Column.RESTAREA_SALE_SP.ITEM, Al_Paylist); + + htSendData = htData; + + bRet = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 Hi-쉼마루 SEND DATA -> " + ex.Message); + + } + + //return htData; + return bRet; + } + #endregion 17 - 휴게소 포스에 보낼 데이터 조립 + //#20180322 휴게소pos매출연동 end,phj + + //#20180322 휴게소pos매출연동 start,phj + #region 결제조회 + private bool MakePaymentData(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, ref ArrayList AlSaleSPData) + { + bool bRet = false; + string sQuery = string.Empty; + string sSelQuery = string.Empty; + + DataTable dtReturn = new DataTable(); + StringBuilder sb = new StringBuilder(); + + Column.RESTAREA_SALE_SP.RESTAREA_PAY_CASH.DATA Pay_Cash = null; + Column.RESTAREA_SALE_SP.RESTAREA_PAY_CARD.DATA Pay_Card = null; + + Pay_Cash = new Column.RESTAREA_SALE_SP.RESTAREA_PAY_CASH.DATA(); + Pay_Card = new Column.RESTAREA_SALE_SP.RESTAREA_PAY_CARD.DATA(); + + ArrayList al_Payment = null; + al_Payment = new ArrayList(); + al_Payment.Clear(); + + try + { + #region 카드결제조회 + + sQuery = ""; + sSelQuery = ""; + + + //PCKR 02 00 신용카드 + //PCKR 04 02 삼성포인트사용 + //PCKR 04 06 신한포인트사용 + //PCKR 04 07 현대M포인트사용 + //PCKR 07 00 알리페이 + //PCKR 07 01 WechatPay + //PCKR 07 02 스마일페이 + //PCKR 07 03 T-PAY + //PCKR 09 00 T-MONEY + //PCKR 09 01 캐시비 + //PCKR 10 02 해피기프트카드 (신) + + sSelQuery = "SELECT '01' AS SLIP_FG \n" + + " ,ROUND ( CONVERT(VARCHAR, ISNULL(A.PAY_AMT, 0)) ,0) AS APPR_AMT \n" + + " ,A.OCCUR_ENTRY_11 AS PURCHASE_CD \n" + + " ,A.OCCUR_ENTRY_12 AS PURCHASE_CO_NM \n" + + " ,A.OCCUR_ENTRY_02 AS APPR_NO \n" + + " ,'20' + A.OCCUR_ENTRY_03 AS APPR_DAY \n" + + " ,A.OCCUR_ENTRY_04 + '00' AS APPR_TIME \n" + + " ,'0' AS CARD_GB \n" + + //#20180406 도로공사 수정 start + //DDC_GB : 구분되는 값 없을경우 0으로 전송 + //기존 + //" ,'1' AS DDC_GB \n" + + //변경 + " ,'0' AS DDC_GB \n" + + //#20180406 도로공사 수정 end + " ,'' AS STD_CARD_CORD_CD \n" + + " ,'32' AS VAN_CD \n" + + " ,SUBSTRING(A.OCCUR_ENTRY_01,1,6) AS CARD_NO \n" + + " FROM POSLOG..TR_SALE_PAY A \n" + + " , POSLOG..TR_SALE_HEADER B \n" + + " WHERE A.CMP_CD = '{0}' \n" + + " AND A.SALE_DT = '{1}' \n" + + " AND A.STOR_CD = '{2}' \n" + + " AND A.POS_NO = '{3}' \n" + + " AND A.TRADE_NO = '{4}' \n" + + + //2018-04-03 카드기준 추가 + //기존 + //" AND A.PAY_WAY_CD = '02' \n" + + //변경 + " AND A.PAY_WAY_CD + A.PAY_DTL_CD_01 IN ('0200','0402','0406','0407','0700','0701','0702','0703','0900','0901','1002') \n" + + + " AND A.PAY_DTL_CD_05 = '1' \n" + + " AND A.CANCEL_DIV = '0' \n" + + " AND A.CMP_CD = B.CMP_CD \n" + + " AND A.SALE_DT = B.SALE_DT \n" + + " AND A.STOR_CD = B.STOR_CD \n" + + " AND A.POS_NO = B.POS_NO \n" + + " AND A.TRADE_NO = B.TRADE_NO \n" + + " AND B.TRAIN_MODE_YN = '0' \n" + + " AND B.TRADE_KINDPER IN ('00','20','21','42') \n"; + + dtReturn = null; + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + + if (dtReturn != null && dtReturn.Rows.Count != 0) + { + foreach (DataRow dr in dtReturn.Rows) + { + Hashtable ht_PAY_CARD = new Hashtable(); + + ht_PAY_CARD.Add(Pay_Card.SLIP_FG, CmUtil.GetDataRowStr(dr, "SLIP_FG")); + ht_PAY_CARD.Add(Pay_Card.APPR_AMT, CmUtil.GetDataRowStr(dr, "APPR_AMT")); + ht_PAY_CARD.Add(Pay_Card.PURCHASE_CD, CmUtil.GetDataRowStr(dr, "PURCHASE_CD")); + ht_PAY_CARD.Add(Pay_Card.PURCHASE_CO_NM, CmUtil.GetDataRowStr(dr, "PURCHASE_CO_NM")); + ht_PAY_CARD.Add(Pay_Card.APPR_NO, CmUtil.GetDataRowStr(dr, "APPR_NO")); + ht_PAY_CARD.Add(Pay_Card.APPR_DAY, CmUtil.GetDataRowStr(dr, "APPR_DAY")); + ht_PAY_CARD.Add(Pay_Card.APPR_TIME, CmUtil.GetDataRowStr(dr, "APPR_TIME")); + ht_PAY_CARD.Add(Pay_Card.CARD_GB, CmUtil.GetDataRowStr(dr, "CARD_GB")); + ht_PAY_CARD.Add(Pay_Card.DDC_GB, CmUtil.GetDataRowStr(dr, "DDC_GB")); + ht_PAY_CARD.Add(Pay_Card.STD_CARD_CORD_CD, CmUtil.GetDataRowStr(dr, "STD_CARD_CORD_CD")); + ht_PAY_CARD.Add(Pay_Card.VAN_CD, CmUtil.GetDataRowStr(dr, "VAN_CD")); + + al_Payment.Add(ht_PAY_CARD); + ht_PAY_CARD = null; + } + } + + #endregion 카드결제조회 + + + #region 현금승인결제조회 + + //카드 제외한 나머지 결제 금액 - 현금 승인 금액 뺀 거 + sQuery = ""; + sSelQuery = ""; + sSelQuery = " SELECT A.* , ROUND (ISNULL(A.APPR_AMT, 0) - ISNULL(A.ETC_AMT, 0),0) AS RESULT_AMT \n " + + " FROM \n " + + " ( \n " + + //2018-04-03 카드기준 추가 + //기존 + //" SELECT ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 <> '0200' THEN \n " + + //" ISNULL(TSP.AMT_ENTRY_01, 0) - ISNULL(TSP.AMT_ENTRY_02, 0) \n " + + //" ELSE 0 END),0) AS APPR_AMT ,\n " + + + //변경 + " SELECT ROUND (ISNULL(TSP.AMT_ENTRY_01, 0) - ISNULL(TSP.AMT_ENTRY_02, 0) ,0) AS APPR_AMT,\n " + + + " '02' AS SLIP_FG,\n " + + " '00' AS PROC_TYPE,\n " + + " '' AS APPR_NO,\n " + + " '' AS APPR_DAY,\n " + + " '' AS APPR_TYPE,\n " + + " '32' AS VAN_CD, \n" + + " ( SELECT ROUND (CONVERT(VARCHAR, ISNULL(TSE.ETC_AMT, 0)) ,0) AS APPR_AMT \n " + + " FROM POSLOG..TR_SALE_ETC TSE \n " + + " WHERE TSE.CMP_CD = '{0}' \n " + + " AND TSE.SALE_DT = '{1}' \n " + + " AND TSE.STOR_CD = '{2}' \n " + + " AND TSE.POS_NO = '{3}' \n " + + " AND TSE.TRADE_NO = '{4}' \n " + + " AND TSE.ETC_WAY_CD = '80' \n " + + " AND TSE.ETC_DTL_CD_01 = '00' \n " + + " AND TSE.CANCEL_DIV = '0') AS ETC_AMT \n " + + " FROM POSLOG..TR_SALE_HEADER TSH LEFT JOIN POSLOG..TR_SALE_PAY TSP \n " + + " ON TSH.CMP_CD = TSP.CMP_CD \n " + + " AND TSH.SALE_DT = TSP.SALE_DT \n " + + " AND TSH.STOR_CD = TSP.STOR_CD \n " + + " AND TSH.POS_NO = TSP.POS_NO \n " + + " AND TSH.TRADE_NO = TSP.TRADE_NO \n " + + + //2018-04-03 카드기준 추가 + //추가 + " AND TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 NOT IN ('0200','0402','0406','0407','0700','0701','0702','0703','0900','0901','1002') \n" + + + + + " AND TSP.PAY_DTL_CD_05 = '1' \n " + + " AND TSP.CANCEL_DIV = '0' \n " + + " WHERE TSH.CMP_CD = '{0}' \n " + + " AND TSH.SALE_DT = '{1}' \n " + + " AND TSH.STOR_CD = '{2}' \n " + + " AND TSH.POS_NO = '{3}' \n " + + " AND TSH.TRADE_NO = '{4}' \n " + + " AND TSH.TRAIN_MODE_YN = '0' \n " + + " AND TSH.TRADE_KINDPER IN ('00','20','21','42') \n " + + " ) A \n " ; + + dtReturn = null; + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + + if (dtReturn != null && dtReturn.Rows.Count != 0) + { + DataRow dr = dtReturn.Rows[0]; + // 결제 금액 전체를 현금영수증 승인했을 때는 생성하지 않도록 한다. + if (CmUtil.GetDataRowStr(dr, "RESULT_AMT") != "0") + { + Hashtable ht_PAY_CASH = new Hashtable(); + ht_PAY_CASH.Add(Pay_Cash.SLIP_FG, CmUtil.GetDataRowStr(dr, "SLIP_FG")); + ht_PAY_CASH.Add(Pay_Cash.PROC_TYPE, CmUtil.GetDataRowStr(dr, "PROC_TYPE")); + // 전체결제 금액 - 카드결제금액 - 현금영수증 승인금액 + ht_PAY_CASH.Add(Pay_Cash.APPR_AMT, CmUtil.GetDataRowStr(dr, "RESULT_AMT")); + ht_PAY_CASH.Add(Pay_Cash.APPR_NO, CmUtil.GetDataRowStr(dr, "APPR_NO")); + ht_PAY_CASH.Add(Pay_Cash.APPR_DAY, CmUtil.GetDataRowStr(dr, "APPR_DAY")); + ht_PAY_CASH.Add(Pay_Cash.APPR_TIME, CmUtil.GetDataRowStr(dr, "APPR_TIME")); + ht_PAY_CASH.Add(Pay_Cash.VAN_CD, CmUtil.GetDataRowStr(dr, "VAN_CD")); + al_Payment.Add(ht_PAY_CASH); + ht_PAY_CASH = null; + } + } + + + + sQuery = ""; + sSelQuery = ""; + sSelQuery = "SELECT '02' AS SLIP_FG \n " + + " , '00' AS PROC_TYPE \n " + + " , ROUND ( CONVERT(VARCHAR, ISNULL(A.ETC_AMT, 0)) ,0) AS APPR_AMT \n " + + " , A.OCCUR_ENTRY_02 AS APPR_NO \n " + + " , '20' + A.OCCUR_ENTRY_03 AS APPR_DAY \n " + + " , A.OCCUR_ENTRY_04 + '00' AS APPR_TIME \n " + + " , '32' AS VAN_CD \n " + + " , (CASE WHEN A.OCCUR_ENTRY_10 = '1' THEN '0' \n " + + " ELSE CASE WHEN A.OCCUR_ENTRY_11 = '0' THEN '1' \n " + + " ELSE '2' END \n " + + " END) AS APPR_TYPE \n " + + " FROM POSLOG..TR_SALE_ETC A \n " + + " , POSLOG..TR_SALE_HEADER B \n " + + " WHERE A.CMP_CD = '{0}' \n " + + " AND A.SALE_DT = '{1}' \n " + + " AND A.STOR_CD = '{2}' \n " + + " AND A.POS_NO = '{3}' \n " + + " AND A.TRADE_NO = '{4}' \n " + + " AND A.ETC_WAY_CD = '80' \n " + + " AND A.ETC_DTL_CD_01 = '00' \n " + + " AND A.CMP_CD = B.CMP_CD \n " + + " AND A.STOR_CD = B.STOR_CD \n " + + " AND A.SALE_DT = B.SALE_DT \n " + + " AND A.POS_NO = B.POS_NO \n " + + " AND A.TRADE_NO = B.TRADE_NO \n " + + " AND B.TRAIN_MODE_YN = '0' \n " + + " AND B.TRADE_KINDPER IN ('00','20','21','42') \n "; + + dtReturn = null; + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + + if (dtReturn != null && dtReturn.Rows.Count != 0) + { + //foreach (DataRow dr in dtReturn.Rows) + //{ + + DataRow dr = dtReturn.Rows[0]; + + Hashtable ht_PAY_CASH = new Hashtable(); + ht_PAY_CASH.Add(Pay_Cash.SLIP_FG, CmUtil.GetDataRowStr(dr, "SLIP_FG")); + //"00" : 현금, "01" : 상품권, "02" : 모바일쿠폰, "03" : 나이스선불카드, "04" : 마이탐 선불카드 + ht_PAY_CASH.Add(Pay_Cash.PROC_TYPE, CmUtil.GetDataRowStr(dr, "PROC_TYPE")); + ht_PAY_CASH.Add(Pay_Cash.APPR_AMT, CmUtil.GetDataRowStr(dr, "APPR_AMT")); + ht_PAY_CASH.Add(Pay_Cash.APPR_NO, CmUtil.GetDataRowStr(dr, "APPR_NO")); + ht_PAY_CASH.Add(Pay_Cash.APPR_DAY, CmUtil.GetDataRowStr(dr, "APPR_DAY")); + ht_PAY_CASH.Add(Pay_Cash.APPR_TIME, CmUtil.GetDataRowStr(dr, "APPR_TIME")); + ht_PAY_CASH.Add(Pay_Cash.VAN_CD, CmUtil.GetDataRowStr(dr, "VAN_CD")); + al_Payment.Add(ht_PAY_CASH); + ht_PAY_CASH = null; + //} + } + #endregion 현금승인결제조회 + + AlSaleSPData = al_Payment; + + bRet = true; + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 Hi-쉼마루 SaleSP -> " + sQuery + " : " + ex.Message); + + bRet = false; + } + + return bRet; + } + #endregion + //#20180322 휴게소pos매출연동 end,phj + + //#20180322 휴게소pos매출연동 start,phj + #region 상세조회 + private bool MakeSaleDTData(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, ref ArrayList AlSaleDTData) + { + bool bRet = false; + string sQuery = string.Empty; + string sSelQuery = string.Empty; + + DataTable dtReturn = new DataTable(); + StringBuilder sb = new StringBuilder(); + + Column.RESTAREA_SALE_DT.DATA RESTAREA_SALE_DT = null; + RESTAREA_SALE_DT = new Column.RESTAREA_SALE_DT.DATA(); + + ArrayList al_SaleDT = null; + al_SaleDT = new ArrayList(); + al_SaleDT.Clear(); + + try + { + #region SALE_DT + + sQuery = ""; + sSelQuery = ""; + //#20180406 도로공사 수정 start + //LINE_NO : 1자리일 경우 앞에 0채워서 2자리로 생성 + //기존 + //sSelQuery = "SELECT CONVERT(VARCHAR, A.SEQ) AS LINE_NO \n " + //변경 + sSelQuery = "SELECT REPLICATE('0', 2 - LEN(CONVERT(VARCHAR, A.SEQ))) + CONVERT(VARCHAR, A.SEQ) AS LINE_NO \n " + + //#20180406 도로공사 수정 end + //" , A.STOR_CD AS SHOP_CD \n " + + " ,'" + m_cPosStatus.RestAreaPos.RestAreaPosCd.PadLeft(7, '0').Trim() + "' AS SHOP_CD \n " + + //" , CONVERT(VARCHAR, A.SEQ) AS PROD_SEQ \n " + + " , A.ITEM_PLU_CD AS PROD_SEQ \n " + + " , '' AS SOURCE_CD \n " + + " , CONVERT(VARCHAR, ISNULL(A.SALE_QTY, 0)) AS PAN_QTY \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.SALE_AMT, 0)) ,0) AS TOT_PAN_AMT \n " + + " , '00' AS NOZZLE_NO \n " + + " , CONVERT(VARCHAR, ISNULL(A.SALE_PRC, 0)) AS PAN_COST \n " + + " , '0' AS FEE_COST \n " + + " , '0' AS OIL_PROC_GB \n " + + " , ROUND ('0' ,0) AS PRE_PAY_AMT \n " + + " , ROUND ('0' ,0) AS FEE_AMT \n " + + " , ROUND ('0' ,0) AS SC_AMT \n " + + " , ROUND (CONVERT(VARCHAR, A.BILL_AMT) ,0) AS REAL_PAN_AMT \n " + + " , ROUND (CONVERT(VARCHAR, A.APPLY_TAX_AMT) ,0) AS VAT_AMT \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.BILL_AMT, 0) - ISNULL(A.APPLY_TAX_AMT, 0)) ,0) AS NET_PAN_AMT \n " + + " , '0' AS NOZZLE_END_DTIME \n " + + " , '0' AS DUTY_PAN_GB \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.ITEM_DC_AMT, 0) + ISNULL(A.SUM_DC_AMT, 0) + \n " + + " ISNULL(A.CPI_DC_AMT, 0) + ISNULL(A.COOP_CARD_DC_AMT, 0) + \n " + + " ISNULL(A.POINT_DC_AMT, 0) + ISNULL(A.CPN_DC_AMT, 0) + \n " + + " ISNULL(A.EMP_DC_AMT, 0) + ISNULL(A.SET_DC_AMT, 0) + \n " + + " ISNULL(A.ETC_DC_AMT, 0) + ISNULL(A.EXCEP_DC_AMT, 0)) ,0) AS DC_AMT \n " + + //" , ROUND ('0' ,0) AS NORM_DC_AMT \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.ITEM_DC_AMT, 0) + ISNULL(A.SUM_DC_AMT, 0) + \n " + + " ISNULL(A.CPI_DC_AMT, 0) + ISNULL(A.COOP_CARD_DC_AMT, 0) + \n " + + " ISNULL(A.POINT_DC_AMT, 0) + ISNULL(A.CPN_DC_AMT, 0) + \n " + + " ISNULL(A.EMP_DC_AMT, 0) + ISNULL(A.SET_DC_AMT, 0) + \n " + + " ISNULL(A.ETC_DC_AMT, 0) + ISNULL(A.EXCEP_DC_AMT, 0)) ,0) AS NORM_DC_AMT \n " + + " , ROUND ('0' ,0) AS BONUS_DC_AMT \n " + + " , ROUND ('0' ,0) AS RAND_BONUS_DC_AMT \n " + + " FROM POSLOG..TR_SALE_DETAIL A \n " + + " , POSLOG..TR_SALE_HEADER B \n " + + " WHERE A.CMP_CD = '{0}' \n " + + " AND A.SALE_DT = '{1}' \n " + + " AND A.STOR_CD = '{2}' \n " + + " AND A.POS_NO = '{3}' \n " + + " AND A.TRADE_NO = '{4}' \n " + + " AND A.CMP_CD = B.CMP_CD \n " + + " AND A.SALE_DT = B.SALE_DT \n " + + " AND A.STOR_CD = B.STOR_CD \n " + + " AND A.POS_NO = B.POS_NO \n " + + " AND A.TRADE_NO = B.TRADE_NO \n " + + " AND B.TRAIN_MODE_YN = '0' \n " + + " AND B.TRADE_KINDPER IN ('00','20','21','42') \n " + + " AND A.CANCEL_DIV = '0' \n " + + // 판매단가가 0원이 아닌 것만 보냄. + " AND A.SALE_PRC > 0 \n" + + " ORDER BY A.SEQ \n "; + + dtReturn = null; + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + + if (dtReturn != null && dtReturn.Rows.Count != 0) + { + foreach (DataRow dr in dtReturn.Rows) + { + Hashtable tr_SaleDT = new Hashtable(); + + tr_SaleDT.Add(RESTAREA_SALE_DT.LINE_NO, CmUtil.GetDataRowStr(dr, "LINE_NO")); + tr_SaleDT.Add(RESTAREA_SALE_DT.SHOP_CD, CmUtil.GetDataRowStr(dr, "SHOP_CD")); + tr_SaleDT.Add(RESTAREA_SALE_DT.PROD_SEQ, CmUtil.GetDataRowStr(dr, "PROD_SEQ")); + tr_SaleDT.Add(RESTAREA_SALE_DT.SOURCE_CD, CmUtil.GetDataRowStr(dr, "SOURCE_CD")); //cPluItem.ITEM_PLU_CD + tr_SaleDT.Add(RESTAREA_SALE_DT.PAN_QTY, CmUtil.GetDataRowStr(dr, "PAN_QTY")); + tr_SaleDT.Add(RESTAREA_SALE_DT.TOT_PAN_AMT, CmUtil.GetDataRowStr(dr, "TOT_PAN_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.NOZZLE_NO, CmUtil.GetDataRowStr(dr, "NOZZLE_NO")); + tr_SaleDT.Add(RESTAREA_SALE_DT.PAN_COST, CmUtil.GetDataRowStr(dr, "PAN_COST")); + tr_SaleDT.Add(RESTAREA_SALE_DT.FEE_COST, CmUtil.GetDataRowStr(dr, "FEE_COST")); + tr_SaleDT.Add(RESTAREA_SALE_DT.OIL_PROC_GB, CmUtil.GetDataRowStr(dr, "OIL_PROC_GB")); + tr_SaleDT.Add(RESTAREA_SALE_DT.PRE_PAY_AMT, CmUtil.GetDataRowStr(dr, "PRE_PAY_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.FEE_AMT, CmUtil.GetDataRowStr(dr, "FEE_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.SC_AMT, CmUtil.GetDataRowStr(dr, "SC_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.REAL_PAN_AMT, CmUtil.GetDataRowStr(dr, "REAL_PAN_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.VAT_AMT, CmUtil.GetDataRowStr(dr, "VAT_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.NET_PAN_AMT, CmUtil.GetDataRowStr(dr, "NET_PAN_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.NOZZLE_END_DTIME, CmUtil.GetDataRowStr(dr, "NOZZLE_END_DTIME")); + tr_SaleDT.Add(RESTAREA_SALE_DT.DUTY_PAN_GB, CmUtil.GetDataRowStr(dr, "DUTY_PAN_GB")); + tr_SaleDT.Add(RESTAREA_SALE_DT.DC_AMT, CmUtil.GetDataRowStr(dr, "DC_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.NORM_DC_AMT, CmUtil.GetDataRowStr(dr, "NORM_DC_AMT")); + tr_SaleDT.Add(RESTAREA_SALE_DT.BONUS_DC_AMT, CmUtil.GetDataRowStr(dr, "BONUS_DC_AMT")); + + //RAND_BONUS_DC_AMT String 14 Y 1 임의등록 보너스카드 DC 금액(미사용) + tr_SaleDT.Add(RESTAREA_SALE_DT.RAND_BONUS_DC_AMT, CmUtil.GetDataRowStr(dr, "RAND_BONUS_DC_AMT")); + + al_SaleDT.Add(tr_SaleDT); + tr_SaleDT = null; + } + } + + #endregion SALE_DT + + AlSaleDTData = al_SaleDT; + + bRet = true; + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 Hi-쉼마루 SaleDT -> " + sQuery + " : " + ex.Message); + + bRet = false; + } + + return bRet; + } + #endregion + //#20180322 휴게소pos매출연동 end,phj + + //#20180322 휴게소pos매출연동 start,phj + #region 헤더조회 + private bool MakeSaleHDData(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sTradeNo, ref Hashtable htSaleHDData) + { + bool bRet = false; + string sQuery = string.Empty; + string sSelQuery = string.Empty; + + DataTable dtReturn = new DataTable(); + StringBuilder sb = new StringBuilder(); + + Column.RESTAREA_SALE_HD.DATA RESTAREA_SALE_HD = null; + RESTAREA_SALE_HD = new Column.RESTAREA_SALE_HD.DATA(); + + + Hashtable ht_SaleHD = null; + ht_SaleHD = new Hashtable(); + ht_SaleHD.Clear(); + + try + { + #region SALE_HD + + sQuery = ""; + sSelQuery = ""; + sSelQuery = "SELECT A.SALE_DT AS SALE_DAY \n " + + //#20180406 도로공사 수정 start + //BILL_NO : 앞에 0 채워서 8자리로 생성 + //기존 + //" , A.TRADE_NO AS BILL_NO \n " + + //변경 + " , REPLICATE('0', 8 - LEN(A.TRADE_NO)) + A.TRADE_NO AS BILL_NO \n " + + //#20180406 도로공사 수정 end + " , A.TRADE_DIV AS SALE_GB \n " + + " , A.SYS_DT + A.PAY_TIME AS SYS_DTIME \n " + + " , CONVERT(VARCHAR, C.TRDTL_CNT) AS DETAIL_CNT \n " + + //#20180403 도로공사 현금전표 분기에 따른 총전표건수 계산식 변경 start + //기존 + //" , CONVERT(VARCHAR, (CASE WHEN ISNULL(B.CASH_AMT,0) > 0 THEN 1 ELSE 0 END) + B.TRCRD_CNT) AS SLIP_CNT \n " + + //변경 + // 1. 현금처리 금액이 있는지 체크 + // 2. 현금처리 금액 - 현금 영수증 금액 빼서 0보다 크면 현금전표 2건 생성되고 아니면 1건 생성 + // 3. 현금처리 금액이 없으면 현금전표 0건 생성 + " , CONVERT(VARCHAR, (CASE WHEN ISNULL(B.CASH_AMT,0) = 0 THEN 0 \n " + + " ELSE ( CASE WHEN D.TRCSH_CNT = '1' THEN (CASE WHEN ISNULL(B.CASH_AMT,0) - ISNULL(D.CASH_BILL_AMT,0) > 0 THEN 2 ELSE 1 END) \n " + + " ELSE '1' \n " + + " END) \n " + + " END) + B.TRCRD_CNT) AS SLIP_CNT \n " + + //#20180403 도로공사 현금전표 분기에 따른 총전표건수 계산식 변경 end + " , ROUND (CONVERT(VARCHAR, ISNULL(A.TOTSALE_AMT, 0)),0) AS TOT_PAN_AMT \n " + + " , ROUND (CONVERT(VARCHAR, B.CASH_AMT),0) AS CASH_AMT \n " + + " , ROUND (CONVERT(VARCHAR, B.CRD_CARD_AMT),0) AS CARD_AMT \n " + + " , ROUND ('0',0) AS GIFT_AMT \n " + + " , ROUND ('0',0) AS SC_AMT \n " + + " , ROUND ('0',0) AS PRE_PAY_AMT \n " + + " , ROUND ('0',0) AS FEE_PROFIT_AMT \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.NET_SALE_AMT, 0)),0) AS REAL_PAN_AMT \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.TOT_VAT, 0)), 0) AS VAT_AMT \n " + + " , ROUND (CONVERT(VARCHAR, ISNULL(A.NET_SALE_AMT, 0) - ISNULL(A.TOT_VAT, 0)),0) AS NET_PAN_AMT \n " + + " , ROUND (CONVERT(VARCHAR, D.TRCSH_CNT),0) AS CASH_BILL_GB \n " + + " , CASE WHEN TRADE_DIV = '1' THEN \n " + + //#20180406 도로공사 수정 start + //ORB_BILL_NO : 년도 YYYY형식으로 수정, 빌번호 8자리 + //기존 + //" (SUBSTRING(A.ORG_BILLDT,3,6) + \n " + + //변경 + " (A.ORG_BILLDT + \n " + + //#20180406 도로공사 수정 end + //" '000' + \n " + + " '" + m_cPosStatus.RestAreaPos.RestAreaPosGroupCd.PadLeft(3, '0').Trim() + "' + \n " + + //" SUBSTRING(A.STOR_CD, 2, 6) + \n " + 기존6자리에서 7자리로 늘임 + //" SUBSTRING(A.STOR_CD, 1, 7) + \n " + + " '" + m_cPosStatus.RestAreaPos.RestAreaPosCd.PadLeft(7, '0').Trim() + "' + \n " + + //" '00' + \n " + + " '" + m_cPosStatus.RestAreaPos.RestAreaPosPosGroupCd.PadLeft(2, '0').Trim() + "' + \n " + + //" REPLICATE('0', 4 - LEN(A.ORG_BILL_POSNO)) + A.ORG_BILL_POSNO + \n " + + " REPLICATE('0', 4 - LEN('" + m_cPosStatus.RestAreaPos.RestAreaPosPosNo.PadLeft(4, '0').Trim() + "')) + '" + m_cPosStatus.RestAreaPos.RestAreaPosPosNo.PadLeft(4, '0').Trim() + "' + \n " + + " REPLICATE('0', 8 - LEN(A.ORG_BILL_NO)) + A.ORG_BILL_NO) \n " + + " ELSE '' END AS ORG_BILL_NO \n " + + " , '' AS EMP_ID \n " + + " , '' AS OIL_PROC_CB \n " + + " , ROUND ('0',0) AS BONUS_USE_AMT \n " + + " , ROUND (CONVERT(VARCHAR, A.TOTDC_AMT),0) AS DC_AMT \n " + + //" , ROUND ('0',0) AS NORM_DC_AMT \n " + + " , ROUND (CONVERT(VARCHAR, A.TOTDC_AMT),0) AS NORM_DC_AMT \n " + + " , ROUND ('0',0) AS BONUS_DC_AMT \n " + + " , ROUND ('0',0) AS RAND_BONUS_DC_AMT \n " + + " FROM POSLOG..TR_SALE_HEADER A \n " + + " , ( \n " + + + + //2018-04-03 카드기준 추가 + //기존 + //" SELECT ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 <> '0200' \n " + + //" THEN ISNULL(TSP.AMT_ENTRY_01, 0) - ISNULL(TSP.AMT_ENTRY_02, 0) \n " + + //" ELSE 0 \n " + + //" END),0) AS CASH_AMT \n " + + //" , ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 = '0200' \n " + + //" THEN 1 \n " + + //" ELSE 0 \n " + + //" END),0) AS TRCRD_CNT \n " + + //" , ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 = '0200' \n " + + //" THEN ISNULL(TSP.AMT_ENTRY_01, 0) \n " + + //" ELSE 0 \n " + + //" END),0) AS CRD_CARD_AMT \n " + + //변경 + " SELECT ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 NOT IN ('0200','0402','0406','0407','0700','0701','0702','0703','0900','0901','1002') \n " + + " THEN ISNULL(TSP.AMT_ENTRY_01, 0) - ISNULL(TSP.AMT_ENTRY_02, 0) \n " + + " ELSE 0 \n " + + " END),0) AS CASH_AMT \n " + + + + + //2018-04-03 카드기준 추가 + //기존 + //" , ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 = '0200' \n " + + //" THEN 1 \n " + + //" ELSE 0 \n " + + //" END),0) AS TRCRD_CNT \n " + + //변경 + " , ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 IN ('0200','0402','0406','0407','0700','0701','0702','0703','0900','0901','1002') \n " + + " THEN 1 \n " + + " ELSE 0 \n " + + " END),0) AS TRCRD_CNT \n " + + + //2018-04-03 카드기준 추가 + //기존 + //" , ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 = '0200' \n " + + //" THEN ISNULL(TSP.AMT_ENTRY_01, 0) \n " + + //" ELSE 0 \n " + + //" END),0) AS CRD_CARD_AMT \n " + + //변경 + " , ROUND (SUM(CASE WHEN TSP.PAY_WAY_CD + TSP.PAY_DTL_CD_01 IN ('0200','0402','0406','0407','0700','0701','0702','0703','0900','0901','1002') \n " + + " THEN ISNULL(TSP.AMT_ENTRY_01, 0) \n " + + " ELSE 0 \n " + + " END),0) AS CRD_CARD_AMT \n " + + + + " , ROUND (SUM(ISNULL(TSP.PAY_AMT, 0)),0) AS GST_PAY_AMT \n " + + " , ROUND (SUM(ISNULL(TSP.AMT_ENTRY_02, 0)),0) AS RET_PAY_AMT \n " + + " , ROUND (0,0) AS REPAY_CASH_AMT \n " + + " FROM POSLOG..TR_SALE_HEADER TSH \n " + + " LEFT JOIN POSLOG..TR_SALE_PAY TSP \n " + + " ON TSH.CMP_CD = TSP.CMP_CD \n " + + " AND TSH.SALE_DT = TSP.SALE_DT \n " + + " AND TSH.STOR_CD = TSP.STOR_CD \n " + + " AND TSH.POS_NO = TSP.POS_NO \n " + + " AND TSH.TRADE_NO = TSP.TRADE_NO \n " + + " AND TSP.PAY_DTL_CD_05 = '1' \n " + + " AND TSP.CANCEL_DIV = '0' \n " + + " WHERE TSH.CMP_CD = '{0}' \n " + + " AND TSH.SALE_DT = '{1}' \n " + + " AND TSH.STOR_CD = '{2}' \n " + + " AND TSH.POS_NO = '{3}' \n " + + " AND TSH.TRADE_NO = '{4}' \n " + + " AND TSH.TRAIN_MODE_YN = '0' \n " + + " AND TSH.TRADE_KINDPER IN ('00','20','21','42') \n " + + " ) B \n " + + " , ( \n " + + " SELECT SUM(CASE WHEN ISNULL(TSD.SALE_AMT, 0) = 0 \n " + + " THEN 0 \n " + + " ELSE 1 \n " + + " END) AS TRDTL_CNT \n " + + " , ROUND (SUM(CASE WHEN ISNULL(TSD.APPLY_TAX_AMT, 0) = 0 \n " + + " THEN 0 \n " + + " ELSE ISNULL(TSD.BILL_AMT, 0) - ISNULL(TSD.APPLY_TAX_AMT, 0) \n " + + " END),0) AS VAT_SALE_AMT \n " + + " , ROUND (SUM(CASE WHEN ISNULL(TSD.APPLY_TAX_AMT, 0) = 0 \n " + + " THEN ISNULL(TSD.SALE_AMT, 0) \n " + + " ELSE 0 \n " + + " END),0) AS NO_VAT_SALE_AMT \n " + + " FROM POSLOG..TR_SALE_HEADER TSH \n " + + " LEFT JOIN POSLOG..TR_SALE_DETAIL TSD \n " + + " ON TSH.CMP_CD = TSD.CMP_CD \n " + + " AND TSH.SALE_DT = TSD.SALE_DT \n " + + " AND TSH.STOR_CD = TSD.STOR_CD \n " + + " AND TSH.POS_NO = TSD.POS_NO \n " + + " AND TSH.TRADE_NO = TSD.TRADE_NO \n " + + " AND TSD.CANCEL_DIV = '0' \n " + + " WHERE TSH.CMP_CD = '{0}' \n " + + " AND TSH.SALE_DT = '{1}' \n " + + " AND TSH.STOR_CD = '{2}' \n " + + " AND TSH.POS_NO = '{3}' \n " + + " AND TSH.TRADE_NO = '{4}' \n " + + " AND TSH.TRAIN_MODE_YN = '0' \n " + + " AND TSH.TRADE_KINDPER IN ('00','20','21','42') \n " + + " ) C \n " + + " , ( \n " + + " SELECT SUM(CASE WHEN TSE.ETC_DTL_CD_01 = '00' \n " + + " THEN 1 \n " + + " ELSE 0 \n " + + " END) AS TRCSH_CNT \n " + + " , ISNULL(SUM(TSE.ETC_AMT), 0) AS CASH_BILL_AMT \n " + + " FROM POSLOG..TR_SALE_HEADER TSH \n " + + " LEFT JOIN POSLOG..TR_SALE_ETC TSE \n " + + " ON TSH.CMP_CD = TSE.CMP_CD \n " + + " AND TSH.SALE_DT = TSE.SALE_DT \n " + + " AND TSH.STOR_CD = TSE.STOR_CD \n " + + " AND TSH.POS_NO = TSE.POS_NO \n " + + " AND TSH.TRADE_NO = TSE.TRADE_NO \n " + + " AND TSE.ETC_WAY_CD = '80' \n " + + " WHERE TSH.CMP_CD = '{0}' \n " + + " AND TSH.SALE_DT = '{1}' \n " + + " AND TSH.STOR_CD = '{2}' \n " + + " AND TSH.POS_NO = '{3}' \n " + + " AND TSH.TRADE_NO = '{4}' \n " + + " AND TSH.TRAIN_MODE_YN = '0' \n " + + " AND TSH.TRADE_KINDPER IN ('00','20','21','42') \n " + + " ) D \n " + + " WHERE A.CMP_CD = '{0}' \n " + + " AND A.SALE_DT = '{1}' \n " + + " AND A.STOR_CD = '{2}' \n " + + " AND A.POS_NO = '{3}' \n " + + " AND A.TRADE_NO = '{4}' \n " + + " AND A.TRAIN_MODE_YN = '0' \n " + + " AND A.TRADE_KINDPER IN ('00','20','21','42') \n "; + + dtReturn = null; + sQuery = string.Format(sSelQuery, sCmpCd, sSaleDt, sStorCd, sPosNo, sTradeNo); + sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtReturn); + + if (dtReturn != null && dtReturn.Rows.Count != 0) + { + DataRow dr = dtReturn.Rows[0]; + + ht_SaleHD.Add(RESTAREA_SALE_HD.SALE_DAY, CmUtil.GetDataRowStr(dr, "SALE_DAY")); + ht_SaleHD.Add(RESTAREA_SALE_HD.BILL_NO, CmUtil.GetDataRowStr(dr, "BILL_NO")); + ht_SaleHD.Add(RESTAREA_SALE_HD.SALE_GB, CmUtil.GetDataRowStr(dr, "SALE_GB")); + ht_SaleHD.Add(RESTAREA_SALE_HD.SYS_DTIME, CmUtil.GetDataRowStr(dr, "SYS_DTIME")); + ht_SaleHD.Add(RESTAREA_SALE_HD.DETAIL_CNT, CmUtil.GetDataRowStr(dr, "DETAIL_CNT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.SLIP_CNT, CmUtil.GetDataRowStr(dr, "SLIP_CNT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.TOT_PAN_AMT, CmUtil.GetDataRowStr(dr, "TOT_PAN_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.CASH_AMT, CmUtil.GetDataRowStr(dr, "CASH_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.CARD_AMT, CmUtil.GetDataRowStr(dr, "CARD_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.GIFT_AMT, CmUtil.GetDataRowStr(dr, "GIFT_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.SC_AMT, CmUtil.GetDataRowStr(dr, "SC_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.PRE_PAY_AMT, CmUtil.GetDataRowStr(dr, "PRE_PAY_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.FEE_PROFIT_AMT, CmUtil.GetDataRowStr(dr, "FEE_PROFIT_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.REAL_PAN_AMT, CmUtil.GetDataRowStr(dr, "REAL_PAN_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.VAT_AMT, CmUtil.GetDataRowStr(dr, "VAT_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.NET_PAN_AMT, CmUtil.GetDataRowStr(dr, "NET_PAN_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.CASH_BILL_GB, CmUtil.GetDataRowStr(dr, "CASH_BILL_GB")); + ht_SaleHD.Add(RESTAREA_SALE_HD.ORG_BILL_NO, CmUtil.GetDataRowStr(dr, "ORG_BILL_NO")); + ht_SaleHD.Add(RESTAREA_SALE_HD.EMP_ID, CmUtil.GetDataRowStr(dr, "EMP_ID")); + ht_SaleHD.Add(RESTAREA_SALE_HD.OIL_PROC_CB, CmUtil.GetDataRowStr(dr, "OIL_PROC_CB")); + ht_SaleHD.Add(RESTAREA_SALE_HD.BONUS_USE_AMT, CmUtil.GetDataRowStr(dr, "BONUS_USE_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.DC_AMT, CmUtil.GetDataRowStr(dr, "DC_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.NORM_DC_AMT, CmUtil.GetDataRowStr(dr, "NORM_DC_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.BONUS_DC_AMT, CmUtil.GetDataRowStr(dr, "BONUS_DC_AMT")); + ht_SaleHD.Add(RESTAREA_SALE_HD.RAND_BONUS_DC_AMT, CmUtil.GetDataRowStr(dr, "RAND_BONUS_DC_AMT")); + } + + #endregion SALE_HD + + htSaleHDData = ht_SaleHD; + + bRet = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "도로공사 Hi-쉼마루 SaleHD -> " + sQuery + " : " + ex.Message); + + bRet = false; + } + + return bRet; + } + #endregion + //#20180322 휴게소pos매출연동 end,phj + + //#15945 해피오더 자동주문 상세기능 start + //해피오더 자동주문 로그 전송(HPO_AUTOORDER_LOG) + public void HappyOrderAutoOrderLogSendProcess() + { + DataTable dtReturn = null; + Hashtable htData = null; + + string sSendFlag = string.Empty; + string sCmpCd = string.Empty; + string sBrandCd = string.Empty; + string sStorCd = string.Empty; + string sSaleDt = string.Empty; + string sPosNo = string.Empty; + string sStatus = string.Empty; + string sOrderNo = string.Empty; + string sOrderType = string.Empty; + + try + { + // 전송할 HPO_AUTOORDER_LOG 데이터 생성 + htData = GetHappyOrderAutoOrderLogData(ref dtReturn); + + + if (dtReturn == null || dtReturn.Rows.Count == 0) + { + return; + } + else + { + iSendDataCnt += 1; + } + + sCmpCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "CMP_CD"); + sBrandCd = m_cPosStatus.Base.BrandCd; + sSaleDt = CmUtil.GetDataRowStr(dtReturn.Rows[0], "SALE_DT"); + sStorCd = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STOR_CD"); + sPosNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "POS_NO"); + sOrderType = CmUtil.GetDataRowStr(dtReturn.Rows[0], "ORDER_TYPE"); + sOrderNo = CmUtil.GetDataRowStr(dtReturn.Rows[0], "ORDER_NO"); + sStatus = CmUtil.GetDataRowStr(dtReturn.Rows[0], "STATUS"); + + + + string sReturn = SendProcess(m_cPosStatus.Base.CommSvrIp, + Convert.ToInt32(m_cPosStatus.Base.JrnlPort), + 5000, + new string[] { sCmpCd, sBrandCd, sStorCd, sSaleDt, sPosNo, "" }, + ItemConst.COMM_MSG_TYPE.HPO_AUTOORDER_LOG, + htData); + + if (sReturn == UserCom.RST_OK) + { + sSendFlag = "1"; // 정상 전송 + + m_cPosStatus.Sale.OnLineStatus = "1"; + } + else + { + sSendFlag = "9"; // 에러 + + m_cPosStatus.Sale.OnLineStatus = "0"; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sSendFlag = "9"; + } + finally + { + // Flag Update + HappyOrderAutoOrderLogUpdate(sCmpCd, sSaleDt, sStorCd, sPosNo, sOrderNo, sStatus, sSendFlag); + } + } + + + /// + /// 데이터 조회 + /// + /// + /// + public Hashtable GetHappyOrderAutoOrderLogData(ref DataTable dtReturn) + { + Hashtable htReturn = null; + string sQuery = string.Empty; + + DataTable dtTempReturn = null; + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + //00013523PCKR002 0000007 201808025400002201807301740181000{"ORDER_NO":"A100","STATUS":"5","PRE_STATUS":"4", "CLOUD_RES":"200", "GUBUN":"P", "CASHIER_ID":"0000007123", "REG_DATE":"201808031159"} + sQuery += "SELECT TOP 1 "; + sQuery += " CMP_CD,SALE_DT,STOR_CD,POS_NO,ORDER_NO,PRE_STATUS,STATUS,ORDER_TYPE,CLOUD_RES,GUBUN,CASHIER_ID,REG_DATE "; + sQuery += " FROM POSLOG.dbo.TR_AUTOMATICSHIPMENT_LOG "; + sQuery += " WHERE SEND_YN <> '1' "; + sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; + sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; + sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' "; + sQuery += " ORDER BY SEND_YN ASC "; + + if (sqlDb.DBDataTableSelect(sQuery, CommandType.Text, (SqlParameter[])null, out dtTempReturn) == UserCom.OK) + { + if (dtTempReturn.Rows.Count == 1) + { + DataRow drTempReturn = dtTempReturn.Rows[0]; + + htReturn = MakeHappyOrderAutoOrderLogJsonData(drTempReturn); + } + } + + dtReturn = dtTempReturn; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htReturn; + } + + /// + /// 전문 생성 + /// + /// + /// + private Hashtable MakeHappyOrderAutoOrderLogJsonData(DataRow drData) + { + Hashtable htData = new Hashtable(); + + try + { + ///////////////////////////////////////////////////////////////// + /// 중요! 테이블 컬럼명 갯수와 명칭은 동일 해야함! + ///////////////////////////////////////////////////////////////// + + // 전문 생성 + for (int iRow = 0; iRow < drData.Table.Columns.Count; iRow++) + { + if (drData.Table.Columns[iRow].ColumnName == "CMP_CD" || + drData.Table.Columns[iRow].ColumnName == "SALE_DT" || + drData.Table.Columns[iRow].ColumnName == "STOR_CD" || + drData.Table.Columns[iRow].ColumnName == "POS_NO" || + drData.Table.Columns[iRow].ColumnName == "ORDER_TYPE") continue; + + htData.Add(drData.Table.Columns[iRow].ColumnName, drData[iRow].ToString()); + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return htData; + } + + /// + /// 디비 업데이트 + /// + /// + /// + /// + /// + /// + /// + private int HappyOrderAutoOrderLogUpdate(string sCmpCd, string sSaleDt, string sStorCd, string sPosNo, string sOrderNo, string sStatus, string sSendFlag) + { + int iRet = UserCom.NG; + string sQuery = string.Empty; + try + { + if (sCmpCd.Trim() == "" || sSaleDt.Trim() == "" || sStorCd.Trim() == "" || sPosNo.Trim() == "" || sOrderNo.Trim() == "" || sStatus.Trim() == "") return iRet; + + sQuery += "UPDATE POSLOG.dbo.TR_AUTOMATICSHIPMENT_LOG "; + sQuery += " SET SEND_YN = '" + sSendFlag + "' "; + sQuery += " , UPD_DATE = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; + sQuery += " WHERE CMP_CD = '" + sCmpCd + "' "; + sQuery += " AND SALE_DT = '" + sSaleDt + "' "; + sQuery += " AND STOR_CD = '" + sStorCd + "' "; + sQuery += " AND POS_NO = '" + sPosNo + "' "; + sQuery += " AND ORDER_NO = '" + sOrderNo + "' "; + sQuery += " AND STATUS = '" + sStatus + "' "; + + iRet = sqlDb.DBExecuteNonQuery(sQuery, CommandType.Text, (SqlParameter[])null); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return iRet; + } + + //#15945 해피오더 자동주문 상세기능 end + } +} diff --git a/Agent/NetworkTranSend/NetworkTranSend.csproj b/Agent/NetworkTranSend/NetworkTranSend.csproj new file mode 100644 index 0000000..7b56ff3 --- /dev/null +++ b/Agent/NetworkTranSend/NetworkTranSend.csproj @@ -0,0 +1,88 @@ + + + + + Debug + AnyCPU + {B709B5A7-A4F0-4B18-8E07-1EA3541DDB01} + Library + Properties + Cosmos.Network + Agent.NetworkTranSend + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + ..\..\..\BIN\Cosmos.UserFrame.dll + + + False + ..\..\..\BIN\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.NetworkTranSend.dll .\Agent.NetworkTranSend.dll + + + copy .\Agent.NetworkTranSend.dll .\IC\Agent.NetworkTranSend.dll + + + \ No newline at end of file diff --git a/Agent/NetworkTranSend/Properties/AssemblyInfo.cs b/Agent/NetworkTranSend/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ed652f1 --- /dev/null +++ b/Agent/NetworkTranSend/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("NetworkTranSend")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("NetworkTranSend")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("2786bf88-f09e-4e7c-9875-0653209757e1")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/OLEDevice/Activator.cs b/Agent/OLEDevice/Activator.cs new file mode 100644 index 0000000..dded7db --- /dev/null +++ b/Agent/OLEDevice/Activator.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : OLEDevice 관련 클래스 Activator +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.Service +{ + /// + /// Load BaseFrame and save information (BaseFrame의 로드하고 정보를 보관한다) + /// + public class Activator : InitServiceAbstract + { + /// + /// Class별 객체를 리턴 + /// + /// + /// + public override object InitServiceInstance(string sClassNm) + { + //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!"); + + object retObj = null; + + switch (sClassNm) + { + case ServiceLists.AGENT_OLEDEVICE.DEVICE_MSR: + { + Cosmos.OLEDevice.DeviceMsr agentClass = new Cosmos.OLEDevice.DeviceMsr(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_POSPRINTER: + { + Cosmos.OLEDevice.DevicePosPrinter agentClass = new Cosmos.OLEDevice.DevicePosPrinter(); + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_SCANNER: + { + Cosmos.OLEDevice.DeviceScanner agentclass = new Cosmos.OLEDevice.DeviceScanner(); + retObj = agentclass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_CASHDRAWER: + { + Cosmos.OLEDevice.DeviceCashdrawer agentClass = new Cosmos.OLEDevice.DeviceCashdrawer(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_CATTERMINAL: + { + Cosmos.OLEDevice.DeviceCatTerminal agentClass = new Cosmos.OLEDevice.DeviceCatTerminal(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER: + { + Cosmos.OLEDevice.DeviceICReader agentClass = new Cosmos.OLEDevice.DeviceICReader(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_SIGNPAD: + { + Cosmos.OLEDevice.DeviceSignPad agentClass = new Cosmos.OLEDevice.DeviceSignPad(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_SCALE: + { + Cosmos.OLEDevice.DeviceScale agentClass = new Cosmos.OLEDevice.DeviceScale(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_LABELPRINTER: + { + Cosmos.OLEDevice.DeviceLabelPrinter agentClass = new Cosmos.OLEDevice.DeviceLabelPrinter(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_OURHOME: + { + Cosmos.OLEDevice.DeviceOurHome agentClass = new Cosmos.OLEDevice.DeviceOurHome(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.DEVICE_TPAYGLE: + { + Cosmos.OLEDevice.DeviceTPaygle agentClass = new Cosmos.OLEDevice.DeviceTPaygle(); + + retObj = agentClass; + break; + } + case ServiceLists.AGENT_OLEDEVICE.OCB_DIRECT: + { + Cosmos.OLEDevice.OCBDirect agentClass = new Cosmos.OLEDevice.OCBDirect(); + + retObj = agentClass; + break; + } + } + + return retObj; + } + } +} diff --git a/Agent/OLEDevice/DeviceCashdrawer.cs b/Agent/OLEDevice/DeviceCashdrawer.cs new file mode 100644 index 0000000..3611e1d --- /dev/null +++ b/Agent/OLEDevice/DeviceCashdrawer.cs @@ -0,0 +1,552 @@ +using System; +using System.Threading; +using System.Runtime.InteropServices; +using System.IO.Ports; + +using Cosmos.UserFrame; +using Cosmos.Common; +using Cosmos.ServiceProvider; + +using Microsoft.PointOfService; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : CahsDrawer 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + /// + /// CASHDRAWER 제어 CLASS + /// + public class DeviceCashdrawer : ICashdrawerUs + { + #region VctDraw2kSs.dll 제어 함수 + [DllImport("VctDraw2kSs.dll", EntryPoint = "OpenDrawPort")] + public static extern int OpenDrawPortFor9700(); + + [DllImport("VctDraw2kSs.dll", EntryPoint = "CloseDrawPort")] + public static extern int CloseDrawPortFor9700(); + + [DllImport("VctDraw2kSs.dll", EntryPoint = "OpenDraw")] + public static extern void OpenDrawFor9700(); + #endregion + + #region TgDrawA.dll 제어 함수 + [DllImport("TgDrawA.dll", EntryPoint = "OpenDrawPort")] + public static extern int OpenDrawPortForTg(); + + [DllImport("TgDrawA.dll", EntryPoint = "CloseDrawPort")] + public static extern int CloseDrawPortForTg(); + + [DllImport("TgDrawA.dll", EntryPoint = "OpenDraw")] + public static extern void OpenDrawForTg(); + #endregion + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = new DeviceStatus(); + /// + /// POS 기본 정보 + /// + public PosStatus m_cPosStatus = null; + /// + /// Pos for .Net CashDrawer 객체 + /// + private CashDrawer cashdrawer = null; + /// + /// Pos for .Net의 Device 정보를 가져오기 위한 객체 + /// + private PosExplorer posExplorer = null; + /// + /// RS232통신을 위한 시리얼포트 객체 + /// + private SerialPort m_serialPort = null; + + private IPosPrinterUs objPosPrinter = null; + /// + /// + /// g + private int m_sUpdateStatus = 0; + + /// + /// 0:OPOS, 1:RS232(프린터에 연결), 2:IBM본체에 연결하는 돈통 + /// DRAWER_TYPE 참고 + /// + private int drawerType = 0; + + #region 초기화 + /// + /// 생성자 + /// + public DeviceCashdrawer() + { + try + { + try + { + posExplorer = new PosExplorer(); + } + catch (Exception ex) { } + devStatus = (DeviceStatus)StateObject.DEVICE; + m_cPosStatus = (PosStatus)StateObject.POS; + objPosPrinter = (IPosPrinterUs)(new SManager()).InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_POSPRINTER); + DeviceStatusInit(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 초기화 + /// + private void DeviceStatusInit() + { + devStatus.Cashdrawer.Status = ""; + devStatus.Cashdrawer.DeviceName = ""; + devStatus.Cashdrawer.Open = false; + } + #endregion + + #region 디바이스 OPEN/CLOSE 처리 + /// + /// 디바이스 Open시 처리함수 + /// + /// 장비종류(ex- "Msr","PosPrinter","Scanner"...) + /// 레지스트리 항목(ex- "DefaultMsr","DefaultPosPrinter","DefaultScanner"...) + /// + public bool OpenDevice(string sDeviceType, string sLogicalName) + { + bool bRet = false; + + try + { + if(devStatus.Cashdrawer.UseYn == false) + { + return false; + } + + if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._1_PRINTER) + { + if(devStatus.Printer.UseYn == false) + { + return false; + } + devStatus.Cashdrawer.Open = true; + devStatus.Cashdrawer.Status = "SUCCESS"; + } + else if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._2_OPOS_IBM) + { + OpenDeviceByOPOS(sDeviceType, sLogicalName); + } + else if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._3_DLL_TPS8700) + { + OpenDrawForTg(); + bRet = true; + } + else if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._4_DLL_VPS9700) + { + OpenDrawFor9700(); + bRet = true; + } + else if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._5_IBM_MAIN) + { + OpenDeviceByRS232(m_cPosStatus.Base.OlePosCashDrawerSerialPortNumber, m_cPosStatus.Base.OlePosCashDrawerBaudRate); + } + + bRet = true; + } + catch (Exception ex) + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "CashDrawer Device Open Exception"; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status + "/" + ex.Message); + return bRet; + } + return bRet; + } + + public bool OpenDeviceByOPOS(string sDeviceType, string sLogicalName) + { + bool bRet = false; + + try + { + DeviceInfo devInfo = null; + + if (sDeviceType == DeviceType.CashDrawer && sLogicalName == PosConst.OPOS_LDN.CASHDRAWER) + { + devInfo = posExplorer.GetDevice(DeviceType.CashDrawer, PosConst.OPOS_LDN.CASHDRAWER); + } + else + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "DEVICE INFO ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceCashdrawer.OpenDeviceByOPOS()", devStatus.Printer.Status); + return bRet; + } + + if(devInfo == null) + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "DEVICE INFO ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceCashdrawer.OpenDeviceByOPOS()", devStatus.Printer.Status); + return bRet; + } + + cashdrawer = (CashDrawer)posExplorer.CreateInstance(devInfo); + + if(cashdrawer != null) + { + cashdrawer.StatusUpdateEvent += new StatusUpdateEventHandler(CashDrawer_StatusUpdateEventDataEvent); + + try + { + cashdrawer.Open(); + } + catch(Exception ex) + { + devStatus.Cashdrawer.Status = "OPEN FAIL"; + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceCashdrawer.OpenDeviceByOPOS()", devStatus.Printer.Status); + return bRet; + } + + try + { + cashdrawer.Claim(1000); + } + catch(Exception ex) + { + devStatus.Cashdrawer.Status = "CLAIM FAIL"; + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceCashdrawer.OpenDeviceByOPOS()", devStatus.Printer.Status); + return bRet; + } + + try + { + cashdrawer.DeviceEnabled = true; + } + catch(Exception ex) + { + devStatus.Cashdrawer.Status = "DEVICE ENABLED FAIL"; + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceCashdrawer.OpenDeviceByOPOS()", devStatus.Printer.Status); + return bRet; + } + + devStatus.Cashdrawer.DeviceName = devInfo.ServiceObjectName; + devStatus.Cashdrawer.Open = true; + devStatus.Cashdrawer.Status = "Success"; + bRet = true; + } + } + catch (Exception ex) + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "CashDrawer Device Open Exception"; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status + "/" + ex.Message); + } + + return bRet; + } + + public bool OpenDeviceByRS232(string sSerialPort, long lBaudrate) + { + bool bRet = false; + + try + { + if(m_serialPort != null) + { + m_serialPort.Close(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + + if(m_serialPort == null) + { + m_serialPort = new SerialPort(); + if(m_serialPort == null) + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status); + return bRet; + } + + m_serialPort.NewLine = "\r\n"; + m_serialPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + + m_serialPort.WriteBufferSize = 1024 * 3; + m_serialPort.PortName = sSerialPort; + m_serialPort.BaudRate = (int)lBaudrate; + m_serialPort.DataBits = 8; + m_serialPort.StopBits = StopBits.One; + m_serialPort.Parity = Parity.None; + + m_serialPort.Open(); + if(m_serialPort.IsOpen == false) + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "SERIAL PORT OPEN ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status); + return bRet; + } + + devStatus.Cashdrawer.Open = true; + devStatus.Cashdrawer.Status = "SUCCESS"; + bRet = true; + } + } + catch (Exception ex) + { + devStatus.Cashdrawer.Open = false; + devStatus.Cashdrawer.Status = "CashDrawer Device Open Exception"; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + + /// + /// 디바이스 Close시 처리함수 + /// + /// + public bool CloseDevice() + { + bool bRet = false; + + try + { + if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._2_OPOS_IBM) + { + if (cashdrawer == null) + return bRet; + + cashdrawer.DeviceEnabled = false; + cashdrawer.Release(); + cashdrawer.Close(); + cashdrawer = null; + } + else if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._3_DLL_TPS8700) + { + CloseDrawPortForTg(); + } + else if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._4_DLL_VPS9700) + { + CloseDrawPortFor9700(); + } + else if(m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._5_IBM_MAIN) + { + if(m_serialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceCashdrawer.CloseDevice()", "m_serialPort == null"); + return bRet; + } + + m_serialPort.Close(); + m_serialPort = null; + } + bRet = true; + + devStatus.Cashdrawer.Status = "CLOSE"; + devStatus.Cashdrawer.Open = false; + } + catch (Exception ex) + { + devStatus.Cashdrawer.Status = "CLOSE EXCEPTION"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status + "/" + ex.Message); + } + + return bRet; + } + #endregion + + #region POS for .NET 이벤트 처리 + /// + /// Cashdrawer 상태 변경에 따른 이벤트 처리 + /// + /// + /// + private void CashDrawer_StatusUpdateEventDataEvent(object sender, StatusUpdateEventArgs e) + { + try + { + m_sUpdateStatus = e.Status; + + switch (m_sUpdateStatus) + { + case CashDrawer.StatusOpen: + devStatus.Cashdrawer.Status = "DRAWER OPENED"; + break; + case CashDrawer.StatusClosed: + devStatus.Cashdrawer.Status = "DRAWER CLOSED"; + break; + } + + if (PosOLEDevice.m_delegateOlePos != null) + PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.CASHDRAWER, devStatus.Cashdrawer.Status, string.Empty, string.Empty); + } + catch (Exception ex) + { + devStatus.Cashdrawer.Status = "STATUS UPDATE EVENT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status + "-" + ex.Message); + } + } + #endregion + + #region 돈통 개방 처리 + /// + /// 돈통 개방 + /// + public void OpenCashDrawer() + { + bool bRet = false; + + try + { + if (devStatus.Cashdrawer.Open == false) + { + OpenDevice(DeviceType.CashDrawer, PosConst.OPOS_LDN.CASHDRAWER); + } + + if (devStatus.Cashdrawer.Open == true) + { + if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._1_PRINTER) + { + objPosPrinter.OpenCashDrawer(); + bRet = true; + } + else if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._2_OPOS_IBM) + { + cashdrawer.OpenDrawer(); + bRet = true; + } + else if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._3_DLL_TPS8700) + { + OpenDrawForTg(); + bRet = true; + } + else if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._4_DLL_VPS9700) + { + OpenDrawFor9700(); + bRet = true; + } + else if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._5_IBM_MAIN) + { + TransmitCommand(PosConst.ESCP_COMMAND.CASHDRAWER_OPEN_IBMHOST, true); + bRet = true; + } + else + { + devStatus.Cashdrawer.Status = "DRAWER TYPE ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status); + } + devStatus.Cashdrawer.Status = "DRAWER OPEN"; + } + } + catch (Exception ex) + { + devStatus.Cashdrawer.Status = "DRAWER OPEN ERROR"; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Cashdrawer.Status + "/" + ex.Message); + } + + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Open Drawer=" + (bRet ? "SUCCESS" : "FAIL")); + } + #endregion + + #region SerialPort 전송 + private void TransmitCommand(byte[] aCmd, bool bSleepOn = true) + { + if (m_serialPort.IsOpen == true) + { + int iOffset = 0; + //int iReadBuf = 2048; + int iReadBuf = m_serialPort.WriteBufferSize; + + while (true) + { + if (iOffset >= aCmd.Length) + { + break; + } + if (iReadBuf + iOffset > aCmd.Length) + { + iReadBuf = aCmd.Length - iOffset; + } + m_serialPort.Write(aCmd, iOffset, iReadBuf); + + iOffset += iReadBuf; + System.Threading.Thread.Sleep(10); + } + //m_serialPort.Write(Encoding.Default.GetString(aCmd, 0, aCmd.Length)); + + if (bSleepOn == true) System.Threading.Thread.Sleep(30); + } + } + #endregion + } +} diff --git a/Agent/OLEDevice/DeviceCatTerminal.cs b/Agent/OLEDevice/DeviceCatTerminal.cs new file mode 100644 index 0000000..f560567 --- /dev/null +++ b/Agent/OLEDevice/DeviceCatTerminal.cs @@ -0,0 +1,335 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.UserFrame; +using Cosmos.Common; +using System.Runtime.InteropServices; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : CAT 단말기 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + /// + /// CAT 단말기 제어 CLASS + /// + public class DeviceCatTerminal : ICatTerminalUs + { + + /// + /// 단말기와 승인/취소 통신을 처리하는 함수 + /// + /// + /// + /// + /// + /// + [DllImport("SPCNSecuCAT.dll")] + public static extern int SPCNSecuCAT_Payment(int comport, int baud, byte[] input_msg, byte[] output_msg); + + /// + /// 단말기에 저장된 미전송 내역을 받아오는 함수 + /// + /// + /// + /// + /// + [DllImport("SPCNSecuCAT.dll")] + public static extern int SPCNSecuCAT_GetRemain(int comport, int baud, byte[] output_msg); + + /// + /// 중국 - 샨더 단말기와 승인/취소 통신을 처리하는 함수 + /// + /// + /// + /// + [DllImport("LibSand.dll")] + public static extern void card_trans(int comport, byte[] input_msg, byte[] output_msg); + + /// + /// 중국 - 은련 단말기와 승인/취소 통신을 처리하는 함수 + /// + /// + /// + /// + [DllImport("posinf.dll")] + public static extern int bankall(byte[] request, byte[] response); + + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus m_cdevStatus = null; + + /// + /// Pos 상태 정보 객체 + /// + public PosStatus m_cPosStatus = null; + + /// + /// 생성자 + /// + public DeviceCatTerminal() + { + try + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cdevStatus = (DeviceStatus)StateObject.DEVICE; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + + #region 연결확인 + /// + /// 연결확인(가동시 체크) + /// + public bool SPCNSecuCatStatus() + { + bool bRet = false; + string sSendData = string.Empty; + string sRecvData = string.Empty; + + try + { + if (m_cPosStatus.Base.OlePosCATModel == PosConst.CAT_MODEL_DIV._KOR_SPCN) + { + sSendData = CmUtil.RPadH("Z0A0 000000000000000000000000000", 360); + if (SPCNSecuCatApprove(sSendData, ref sRecvData) > 0) + bRet = true; + } + else if (m_cPosStatus.Base.OlePosCATModel == PosConst.CAT_MODEL_DIV._CHN_SAND || m_cPosStatus.Base.OlePosCATModel == PosConst.CAT_MODEL_DIV._CHN_UNION) + { + // 중국산은 상태 체크 없어 패스 + //if (SPCNSecuCatApprove(sSendData, ref sRecvData) >= 0) + bRet = true; + } + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRet; + } + #endregion + + + #region 연결 상태 확인 및 CAT 단말기 정보 확인 + /// + /// 연결 상태 및 CAT 단말기 정보 확인 + /// + public int SPCNSecuCatInfo(string sSendData, ref string sRecvData) + { + int nReturn = -99; + + try + { + nReturn = SPCNSecuCatApprove(sSendData, ref sRecvData); + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return nReturn; + } + #endregion + + #region 승인/취소 요청 + /// + /// 승인/취소 요청 + /// + /// + /// + /// + public int SPCNSecuCatApprove(string sSendData, ref string sRecvData) + { + int nReturn = -99; + + try + { + + byte[] bytInputMsg = null; + byte[] bytOutput = new byte[4096]; + + sRecvData = string.Empty; + Array.Clear(bytOutput, 0, bytOutput.Length); + + bytInputMsg = Encoding.Default.GetBytes(sSendData); + + switch (m_cPosStatus.Base.OlePosCATModel) + { + case PosConst.CAT_MODEL_DIV._KOR_SPCN: + { + nReturn = SPCNSecuCAT_Payment(CmUtil.IntParse(m_cPosStatus.Base.OlePosCATSerialPortNumber.Replace("COM", "")), (int)m_cPosStatus.Base.OlePosCATSerialBaudRate, bytInputMsg, bytOutput); // 승인조회 + + if (nReturn < 0) //승인실퍠 + { + //실패경우 + sRecvData = ErrCodeToMsg(nReturn); + } + else + { + sRecvData = ByteToString(bytOutput); + } + break; + } + case PosConst.CAT_MODEL_DIV._CHN_SAND: + { + // 중국 샨더 단말기 + card_trans(CmUtil.IntParse(m_cPosStatus.Base.OlePosCATSerialPortNumber.Replace("COM", "")), bytInputMsg, bytOutput); // 승인조회 + + sRecvData = ByteToString(bytOutput); + + if (sRecvData.Length > 0) nReturn = 0; + break; + } + case PosConst.CAT_MODEL_DIV._CHN_UNION: + { + // 중국 은련 단말기 + bankall(bytInputMsg, bytOutput); // 승인조회 + + sRecvData = ByteToString(bytOutput); + + if (sRecvData.Length > 0) nReturn = 0; + break; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + #endregion + + + #region 승인/취소 요청 + /// + /// 단말기에 저장된 미전송 내역을 받아오는 함수 + /// + /// + /// + public int SPCNSecuCatRemain(ref string sRecvData) + { + int nReturn = -99; + + try + { + byte[] bytOutput = new byte[4096]; + + sRecvData = string.Empty; + Array.Clear(bytOutput, 0, bytOutput.Length); + + nReturn = SPCNSecuCAT_GetRemain(CmUtil.IntParse(m_cPosStatus.Base.OlePosCATSerialPortNumber.Replace("COM", "")), (int)m_cPosStatus.Base.OlePosCATSerialBaudRate, bytOutput); + + if (nReturn < 0) //승인실퍠 + { + //실패경우 + sRecvData = ErrCodeToMsg(nReturn); + } + else + { + sRecvData = ByteToString(bytOutput); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + #endregion + + /// + /// Byte배열을 string으로 변환 (Byte배열의 null(0x00)값 제거) + /// + /// + /// + private string ByteToString(byte[] data) + { + int inx = Array.FindIndex(data, 0, (x) => x == 0x0); + if (inx >= 0) + { + return Encoding.Default.GetString(data, 0, inx); + } + else + { + return Encoding.Default.GetString(data); + } + } + + /// + /// 응답코드 + /// + /// + /// + private string ErrCodeToMsg(int nErrCode) + { + string sMsg = string.Empty; + + try + { + switch (nErrCode) + { + case -101: sMsg = "시리얼포트번호오류"; break; + case -102: sMsg = "통신속도오류"; break; + case -103: sMsg = "전문길이오류"; break; + case -210: sMsg = "할부개월오류"; break; + case -211: sMsg = "금액봉사료세금오류"; break; + case -212: sMsg = "원거래일자오류"; break; + case -213: sMsg = "포인트거래구분오류"; break; + case -301: sMsg = "거래중카드제거"; break; + case -302: sMsg = "단말기 사용자 강제종료"; break; + case -303: sMsg = "기타단말기오류"; break; + case -304: sMsg = "카드삽입되어있음"; break; + case -305: sMsg = "사용자강제취소"; break; + case -401: sMsg = "시리얼포트오픈오류"; break; + case -402: sMsg = "시리얼쓰기오류"; break; + case -403: sMsg = "시리얼읽기오류"; break; + case -404: sMsg = "시리얼닫기오류"; break; + case -405: sMsg = "시리얼타임아웃"; break; + case -411: sMsg = "미전송내역없음"; break; + default: sMsg = "정의되어 있지 않은 메세지" + "[" + nErrCode + "]"; break; + } + } + catch { } + return sMsg; + } + + } +} diff --git a/Agent/OLEDevice/DeviceICReader.cs b/Agent/OLEDevice/DeviceICReader.cs new file mode 100644 index 0000000..e8804cb --- /dev/null +++ b/Agent/OLEDevice/DeviceICReader.cs @@ -0,0 +1,2757 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; + +using Cosmos.Common; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.CommonManager; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : IC 리더기 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + /// + /// IC 리더기 제어 CLASS + /// + public class DeviceICReader : IICReaderUs + { + #region SpcnPos.DLL 을 이용한 IC리더기 제어 함수 + + + /// + /// 배출 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderCardExhaust(int tranType, int mediaType, byte[] maintainType, byte[] backFeeding, byte[] etcData, byte[] output_msg); + + + + /// + /// 승인 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcPos(byte[] input_msg, int input_msg_len, byte[] signData, byte[] icData, byte[] oilData, byte[] authInfo, byte[] output_msg); + + /// + /// 망취소 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnReversal(byte[] req_msg, byte[] res_msg, byte[] authInfo, byte[] output_msg); + + /// + /// [IC리더기] 초기화 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderInit(); + + /// + /// [IC리더기] 시간설정 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderSetTime(); + + // 환경설정 정보 가져오기 + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetFlag(byte[] appName, byte[] keyName, byte[] output, int outputMaxLen); + + // 환경설정 정보 설정하기 + [DllImport("SpcnPos.dll")] + public static extern int SpcnSetFlag(byte[] appName, byte[] keyName, byte[] value); + + /// + /// [IC리더기] 상호인증 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderKeyDownload(byte[] inTrmlId, byte[] inAuthInfo); + + /// + /// [IC리더기] 무결성검사 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderIntegrity(byte[] outResTime); + + /// + /// [IC리더기] 상태확인 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderStatus(byte[] outHwStatus, byte[] outIntegrityStatus, byte[] outCardInStatus, byte[] outReaderName, byte[] outReaderVersion, byte[] outModuleId); + + /// + /// [IC리더기] 카드 정보 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderCardInfo(int tranType, byte[] trmlId, int amount, byte[] output_msg); + + /// + /// [IC리더기] 발급사 인증 요청 함수 + /// IcChipData는 ARC / (FS) / Additional Response Data / (FS) / Issuer Authentication Data / (FS) / Issuer Script 형태를 맞춰야 함 + /// 승인응답일 경우에는 정상적으로 데이터가 넘어오나 승인취소일 경우에는 ARC만 들어오므로 FS갯수만 맞추면 됨. + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderCardIssuer(byte[] inIcChipData, byte[] output_msg); + + /// + /// [IC리더기] 카드번호 암호화 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderCardEncrypt(byte[] inCardNum, byte[] output_msg); + + // (RF) RF카드 정보 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardInfo(byte[] output_msg); + + /// + /// (RF) 후불 결제 거래 카드 정보 요청 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfCreditCardInfo(byte[] terminalNo, byte[] samType, byte[] amount, byte[] msg1, byte[] msg2, byte[] msg3, byte[] output_msg); + + // (RF) [미보안] 후불 결제 거래 카드 정보 요청 + [DllImport("SpcnPosEx.dll")] + public static extern int SpcnRfCreditCardInfoEx(byte[] terminalNo, byte[] samType, byte[] amount, byte[] msg1, byte[] msg2, byte[] msg3, byte[] output_msg); + + //20171013 dkshin 해피기프트(신) IC/RF 충전 및 승인 + /// + /// (RF) 해피기프트카드(코나머니) 정보 읽기 조회 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfEtcCardInfo(byte[] terminalNo, byte[] samType, byte[] amount, byte[] msg1, byte[] msg2, byte[] msg3, byte[] output_msg); + + /// + /// RF 초기화 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfReaderInit(); + + /// + /// RF 시간 설정 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfReaderSetTime(); + + // RF 상호인증 요청 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfReaderKeyDownload(byte[] inTrmlId, byte[] inAuthInfo); + + // RF 무결성 요청 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfReaderIntegrity(byte[] outResTime); + + // RF 상태확인 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfReaderStatus(byte[] outHwStatus, byte[] outIntegrityStatus, byte[] outCardInStatus, byte[] outReaderName, byte[] outReaderVersion, byte[] outModuleId); + + // RF 사원카드 정보 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfEmployeeCardInfo(byte[] output); + + /// + /// IC 리더 콜백 호출 요청 + /// + /// + [DllImport("SpcnPos.dll", CallingConvention = CallingConvention.Cdecl)] + public static extern void SpcnRegIcCallback(IntPtr callback); + /// + /// IC 리더 콜백 호출 해지 + /// + [DllImport("SpcnPos.dll", CallingConvention = CallingConvention.Cdecl)] + public static extern void SpcnUnRegIcCallback(); + /// + /// IC 리더 설정 + /// + /// + /// + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderSettingDevice(byte[] type, byte[] value); + /// + /// MSR 신용카드 요청 - 미인증 POS 사용 + /// + /// + /// + /// + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnPos(byte[] input_msg, int input_msg_len, byte[] output_msg); + + /// + /// + /// + /// + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnStopProcess(int type); + + /// + /// IC 리더기 펌웨어 업데이트 + /// + /// + /// + /// + /// + /// + [DllImport("DeFWDownloadDll.dll")] + public static extern int DE_DownloadFW(int checkfwtout, int downfwtout, int nPort, byte[] DCheck); + /// + /// IC 리더기 펌웨어 이전 버전 업데이트 + /// + /// + /// + /// + /// + [DllImport("DeFWDownloadDll.dll")] + public static extern int DE_BacktoFW(int checkfwtout, int downfwtout, int nPort); + + //#20171016 IC리더기 펌웨어 업데이트 Start, srlee + /// + /// IC 리더기 펌웨어 업데이트_NEW + /// + /// + /// + /// + /// + /// + [DllImport("VANDeDownloadDll.dll")] + public static extern int DE_FWDOWN(int nPort, int nBaud, byte[] cPW, byte[] filepath); + /// + /// IC 리더기 펌웨어 다운로드 상태 확인하는 callback 함수 등록 + /// + /// + /// + [DllImport("VANDeDownloadDll.dll")] + public static extern void DE_CallBackFunReg(IntPtr callback); + //#20171016 IC리더기 펌웨어 업데이트 End, srlee + #endregion + + /// + /// 등록제 정보 + /// (0~15 : IC리더기 정보, 16~31 : POS S/W명 과 Version) + /// + private StringBuilder m_sAuthInfo_IC = new StringBuilder(); + public StringBuilder AuthInfo_IC { get { return m_sAuthInfo_IC; } } + + /// + /// 등록제 정보 + /// (0~15 : RF리더기 정보, 16~31 : POS S/W명 과 Version) + /// + private StringBuilder m_sAuthInfo_RF = new StringBuilder(); + public StringBuilder AuthInfo_RF { get { return m_sAuthInfo_RF; } } + + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus m_cDevStatus = null; + + /// + /// Pos 상태 정보 객체 + /// + public PosStatus m_cPosStatus = null; + + // VAN IP, PORT Update 체크 여부 + private static bool m_bUpdateIni = false; + + /// + /// IC리더 콜백 처리 여부 + /// + private bool m_bIcReaderCallBack = false; + + //#20171024 START, PHJ + + private string m_sPAY_WAY_CD; + /// + /// 결제수단코드 + /// + public string PAY_WAY_CD { set { this.m_sPAY_WAY_CD = value; } } + + private string m_sPAY_DTL_CD; + /// + /// 결제수단상세코드 + /// + public string PAY_DTL_CD { set { this.m_sPAY_DTL_CD = value; } } + + //#20171024 END, PHJ + + /// + /// 생성자 + /// + public DeviceICReader() + { + try + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + + //InitializeDevice(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// IC리더기 초기화 작업 + /// + public void InitializeDevice() + { + //UpdateIniConfig(m_cDevStatus.ICReader.VanIP, m_cDevStatus.ICReader.VanPort); + UpdateIniConfig(); + + if (m_cDevStatus.ICReader.UseYn == true) + { + SetAuthInfoString(PosConst.POS_CARD_READER_DEVICE_TYPE.IC_READER); + } + + + } + /// + /// SpcnPos.dll 이 사용하는 SpcnPosCfg.ini 파일 update + /// + private void UpdateIniConfig() + { + StringBuilder sbGetText = new StringBuilder(); + CmMessage m_PosDevice = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosDevice.INI"); + string sPortNumber = string.Empty; + long lBaudrate = 0; + bool bRtn = false; + try + { + sPortNumber = CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "ICREADER", "SerialPortNumber")); + lBaudrate = CmUtil.LongParse(CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "ICREADER", "SerialBaudRate"))); + + if (sPortNumber.Length < 3 || lBaudrate <= 0) + { + new Exception("PosDevice.INI IC리더기 설정 오류"); + return; + } + + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_ICREADER_CONFIG.APPNAME, + PosConst.POS_ICREADER_CONFIG.KEY_READER_PORT, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + + if (sbGetText.ToString() != sPortNumber.Substring(3, sPortNumber.Length - 3))//Yoo modify 20160613 + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_ICREADER_CONFIG.APPNAME, + PosConst.POS_ICREADER_CONFIG.KEY_READER_PORT, + sPortNumber.Substring(3, sPortNumber.Length - 3), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig);//Yoo modify 20160613 + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_ICREADER_CONFIG.KEY_READER_PORT + " 쓰기 실패"); + } + } + + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_ICREADER_CONFIG.APPNAME, + PosConst.POS_ICREADER_CONFIG.KEY_READER_BAUDRATE, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (sbGetText.ToString() != Convert.ToString(lBaudrate)) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_ICREADER_CONFIG.APPNAME, + PosConst.POS_ICREADER_CONFIG.KEY_READER_BAUDRATE, + Convert.ToString(lBaudrate), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_ICREADER_CONFIG.KEY_READER_BAUDRATE + " 쓰기 실패"); + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + public void UpdateIniConfig(string sSvrIP, string sPort) + { + StringBuilder sbGetText = new StringBuilder(); + CmMessage m_PosDevice = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosDevice.INI"); + bool bRtn1 = false; + bool bRtn2 = false; + try + { + // IP, PORT 설정 (SPCN) + if (sSvrIP.Trim() != "" && sPort.Trim() != "") + { + bRtn1 = WinAPI.WritePrivateProfileString(PosConst.POS_ICREADER_CONFIG.APPNAME, "SPCN_IP", + sSvrIP.Trim(), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn1 == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + sSvrIP + " SPCN_IP 쓰기 실패"); + } + + bRtn2 = WinAPI.WritePrivateProfileString(PosConst.POS_ICREADER_CONFIG.APPNAME, "SPCN_PORT", + sPort.Trim(), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn2 == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + sPort + " SPCN_PORT 쓰기 실패"); + } + + if (bRtn1 == true && bRtn2 == true) + { + // VAN IP, PORT Update flag 설정 + m_bUpdateIni = true; + } + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 설정 파일 읽기 + /// + /// + /// + /// + /// + private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName) + { + return GetConfigInfo(cCfgInfo, sGroup, sValueName, ""); + } + private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName, string sDefault) + { + try + { + string sValue = cCfgInfo.GetMessage(sGroup).GetMessageValue(sValueName); + if (sValue == null) + return sDefault; + else + return sValue; + } + catch { } + + return sDefault; + } + + /// + /// Byte배열을 string으로 변환 (Byte배열의 null(0x00)값 제거) + /// + /// + /// + private string ByteToString(byte[] data) + { + int inx = Array.FindIndex(data, 0, (x) => x == 0x0); + if (inx >= 0) + { + return Encoding.Default.GetString(data, 0, inx); + } + else + { + return Encoding.Default.GetString(data); + } + } + + /// + /// Byte배열을 string으로 변환 (Byte배열의 null(0x00)값 제거) - 카드번호 전용 + /// + /// + /// + /// + private void ByteToString(byte[] data, ref string sData) + { + int inx = Array.FindIndex(data, 0, (x) => x == 0x0); + if (inx >= 0) + { + sData = Encoding.Default.GetString(data, 0, inx); + } + else + { + sData = Encoding.Default.GetString(data); + } + + + } + + /// + /// 등록제 정보 설정 + /// + /// + /// + public StringBuilder SetAuthInfoString(string sDeviceType) + { + string[] arICReaderStatus = null; + string sPosSwInfo = string.Empty; + try + { + if (m_bUpdateIni == false) + { + UpdateIniConfig(m_cDevStatus.ICReader.VanIP, m_cDevStatus.ICReader.VanPort); + } + + arICReaderStatus = GetStatus_ICReader(sDeviceType); + + sPosSwInfo = m_cPosStatus.Base.Auth_POS_SW_Ver; //PosConst.IC_AUTH_POS_SW_INFO; + sPosSwInfo = sPosSwInfo.PadLeft(16, '#'); + + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + // RF리더기 + m_sAuthInfo_RF = new StringBuilder(); + + // 무결성 실패시 리턴 + if (arICReaderStatus[1] != "0") return m_sAuthInfo_RF; + + m_sAuthInfo_RF.Clear(); + m_sAuthInfo_RF.Append(arICReaderStatus[3].PadLeft(12, '#')); + m_sAuthInfo_RF.Append(arICReaderStatus[4]); + m_sAuthInfo_RF.Append(sPosSwInfo); + } + else + { + // IC리더기 + m_sAuthInfo_IC = new StringBuilder(); + + // 무결성 실패시 리턴 + if (arICReaderStatus[1] != "0") return m_sAuthInfo_IC; + + m_sAuthInfo_IC.Clear(); + m_sAuthInfo_IC.Append(arICReaderStatus[3].PadLeft(12, '#')); + m_sAuthInfo_IC.Append(arICReaderStatus[4]); + m_sAuthInfo_IC.Append(sPosSwInfo); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + return m_sAuthInfo_RF; + else + return m_sAuthInfo_IC; + } + + #region SpcnPos.DLL 모듈 호출 함수 + /// + /// [IC리더기] 상태확인 요청 + /// + /// + /// + public string[] GetStatus_ICReader(string sDeviceType) + { + int iRet = 0; + string[] arReturn = null; + byte[] outHwStatus = new byte[2049]; + byte[] outIntegrityStatus = new byte[2049]; + byte[] outCardInStatus = new byte[2049]; + byte[] outReaderName = new byte[2049]; + byte[] outReaderVersion = new byte[2049]; + byte[] outModuleId = new byte[2049]; + + try + { + if (m_bUpdateIni == false) + { + UpdateIniConfig(m_cDevStatus.ICReader.VanIP, m_cDevStatus.ICReader.VanPort); + } + + Array.Clear(outHwStatus, 0x0, outHwStatus.Length); + Array.Clear(outIntegrityStatus, 0x0, outIntegrityStatus.Length); + Array.Clear(outCardInStatus, 0x0, outCardInStatus.Length); + Array.Clear(outReaderName, 0x0, outReaderName.Length); + Array.Clear(outReaderVersion, 0x0, outReaderVersion.Length); + Array.Clear(outModuleId, 0x0, outModuleId.Length); + + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnRfReaderStatus.Start."); + + if (m_cDevStatus.SignPad.UseYn == false) return arReturn; + + iRet = SpcnRfReaderStatus(outHwStatus, outIntegrityStatus, outCardInStatus, outReaderName, outReaderVersion, outModuleId); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnIcReaderStatus.Start."); + + if (m_cDevStatus.ICReader.UseYn == false) return arReturn; + + iRet = SpcnIcReaderStatus(outHwStatus, outIntegrityStatus, outCardInStatus, outReaderName, outReaderVersion, outModuleId); + } + + if (iRet > 0) + { + arReturn = new string[] { ByteToString(outHwStatus) + , ByteToString(outIntegrityStatus) + , ByteToString(outCardInStatus) + , ByteToString(outReaderName) + , ByteToString(outReaderVersion) + , ByteToString(outModuleId)}; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Success. "); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Error. " + iRet); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception. " + ex.Message); + } + + return arReturn; + } + + /// + /// 카드번호 암호화 + /// + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + //기존 + //public string GetEncryptedCardNo(string sPlainCardNo) + //변경 + public string GetEncryptedCardNo(string sPlainCardNo, string sEncGB = "1") + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + { + int iRtn = -1; + string sRtn = string.Empty; + byte[] outEncryptedCardNo; + try + { + outEncryptedCardNo = new byte[2049]; + Array.Clear(outEncryptedCardNo, 0x0, outEncryptedCardNo.Length); + +#if !DEVICE_MSR_VER + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.UseYn == false) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0389); + return sRtn; + } + if (m_cDevStatus.ICReader.Integrity_IC_Status != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + return sRtn; + } + + //#20171024 START, PHJ + + if ( + (m_sPAY_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM) && + (m_sPAY_DTL_CD == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL) && + (sPlainCardNo.Length >= 16) && + (sPlainCardNo.StartsWith(PosConst.HP_CARD_PRIFIX))) + { + sPlainCardNo = CmUtil.MidH(sPlainCardNo, 0, 16); + + //#20171024 START, PHJ - 20171027 + m_sPAY_WAY_CD = ""; + m_sPAY_DTL_CD = ""; + //#20171024 END, PHJ - 20171027 + } + + //#20171024 END, PHJ + + iRtn = SpcnIcReaderCardEncrypt(Encoding.Default.GetBytes(sPlainCardNo), outEncryptedCardNo); + if (iRtn == -161 || iRtn == -162) + { + SpcnStopProcess(0); // 이전 진행중인 처리가 있다면 중지 후 암호화 처리(2017.06.01) + iRtn = SpcnIcReaderCardEncrypt(Encoding.Default.GetBytes(sPlainCardNo), outEncryptedCardNo); + } + if (iRtn <= 0) return sRtn; + + sRtn = ByteToString(outEncryptedCardNo); + + //#20171123 서명패드로 입력받는 경우 마스킹 미처리 start + + if (sEncGB == "0") + { + sRtn = CmUtil.MidH(sRtn, 0, 514) + sPlainCardNo; + } + + //#20171123 서명패드로 입력받는 경우 마스킹 미처리 end + +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.UseYn == false) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0389); + return sRtn; + } + if (m_cDevStatus.ICReader.Integrity_IC_Status != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + return sRtn; + } + + //#20171024 START, PHJ + + if ( + (m_sPAY_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM) && + (m_sPAY_DTL_CD == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL) && + (sPlainCardNo.Length >= 16) && + (sPlainCardNo.StartsWith(PosConst.HP_CARD_PRIFIX))) + { + sPlainCardNo = CmUtil.MidH(sPlainCardNo, 0, 16); + + //#20171024 START, PHJ - 20171027 + m_sPAY_WAY_CD = ""; + m_sPAY_DTL_CD = ""; + //#20171024 END, PHJ - 20171027 + } + + //#20171024 END, PHJ + + iRtn = SpcnIcReaderCardEncrypt(Encoding.Default.GetBytes(sPlainCardNo), outEncryptedCardNo); + if (iRtn == -161 || iRtn == -162) + { + SpcnStopProcess(0); // 이전 진행중인 처리가 있다면 중지 시킨다. + iRtn = SpcnIcReaderCardEncrypt(Encoding.Default.GetBytes(sPlainCardNo), outEncryptedCardNo); + } + if (iRtn <= 0) return sRtn; + + sRtn = ByteToString(outEncryptedCardNo); + } + else + { + // MSR + string sInputType = ""; + + //#20171024 START, PHJ + //기존 + //sPlainCardNo = MSR_CardNoCheck(sPlainCardNo, "", ref sInputType); + + //변경 + sPlainCardNo = MSR_CardNoCheck(sPlainCardNo, "", ref sInputType, m_sPAY_WAY_CD, m_sPAY_DTL_CD); + //#20171024 END, PHJ + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + //기존 + //sRtn = "00" + CmUtil.MidH(sPlainCardNo, 0, 512) + CmUtil.MidH(sPlainCardNo, 0, 6) + "********"; + //변경 + + if (sEncGB == "0") + { + sRtn = "00" + CmUtil.MidH(sPlainCardNo, 0, 512) + sPlainCardNo; + } + else + { + sRtn = "00" + CmUtil.MidH(sPlainCardNo, 0, 512) + CmUtil.MidH(sPlainCardNo, 0, 6) + "********"; + } + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + } +#endif + } + catch (Exception ex) + { + sRtn = sPlainCardNo; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRtn; + } + + + /// + /// [IC리더기] 배출 요청 + /// + public bool Exhaust_ICCard() + { + int iRtn = 0; + bool bRtn = false; + + byte[] maintainType = Encoding.Default.GetBytes("2"); + byte[] backFeeding = Encoding.Default.GetBytes("00"); + byte[] etcData = Encoding.Default.GetBytes(""); + byte[] output_msg = Encoding.Default.GetBytes(""); + + iRtn = SpcnIcReaderCardExhaust(3, 0, maintainType, backFeeding, etcData, output_msg); + if (iRtn > 0) + { + bRtn = true; + } + return bRtn; + } + + + /// + /// [IC리더기] 초기화 요청 + /// + public bool Init_ICReader(string sDeviceType) + { + int iRtn = 0; + bool bRtn = false; + + try + { + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + // 서명패드 초기화 + iRtn = SpcnRfReaderInit(); + } + else + { + if (m_bUpdateIni == false) + { + UpdateIniConfig(m_cDevStatus.ICReader.VanIP, m_cDevStatus.ICReader.VanPort); + } + + // IC 리더기 초기화 + iRtn = SpcnIcReaderInit(); + } + if (iRtn > 0) + { + bRtn = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// [IC리더기] 시간설정 요청 + /// + public bool SetTime_ICReader(string sDeviceType) + { + int iRtn = 0; + bool bRtn = false; + + try + { + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + if (m_cDevStatus.SignPad.UseYn != true) return bRtn; + + // 서명패드 시간설정 요청 + iRtn = SpcnRfReaderSetTime(); + } + else + { + if (m_cDevStatus.ICReader.UseYn == false) return bRtn; + + // IC 리더기 시간설정 요청 + iRtn = SpcnIcReaderSetTime(); + } + if (iRtn > 0) + { + bRtn = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// [IC리더기] 상호인증 요청 + /// + /// + /// + /// + public string KeyDownload_ICReader(string sDeviceType, string sTerminerID) + { + int iRtn = 0; + string sRet = UserCom.RST_ERR; + + try + { + // 서명패드 무결성 검사시 + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + if (m_cDevStatus.SignPad.UseYn == false) return sRet; + + // 상태 확인 + SetAuthInfoString(sDeviceType); + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnRfReaderKeyDownload.Start. " + AuthInfo_RF.ToString()); + // 상호인증 + iRtn = SpcnRfReaderKeyDownload(Encoding.Default.GetBytes(sTerminerID), Encoding.Default.GetBytes(AuthInfo_RF.ToString())); + } + else + { + if (m_cDevStatus.ICReader.UseYn == false) return sRet; + + if (m_bUpdateIni == false) + { + UpdateIniConfig(m_cDevStatus.ICReader.VanIP, m_cDevStatus.ICReader.VanPort); + } + + // 상태 확인 + SetAuthInfoString(sDeviceType); + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnIcReaderKeyDownload.Start. " + AuthInfo_IC.ToString()); + + // 상호인증 + iRtn = SpcnIcReaderKeyDownload(Encoding.Default.GetBytes(sTerminerID), Encoding.Default.GetBytes(AuthInfo_IC.ToString())); + } + + if (iRtn > 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Success. "); + sRet = UserCom.RST_OK; + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Error. " + iRtn); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + + /// + /// [IC리더기] 무결성검사 요청 + /// + /// 장비구분:IC/ SignPad + /// 응답 결과 시간 + /// true:정상처리, false:에러 + public string IntegrityCheck_ICReader(string sDeviceType, ref string sRsltTime) + { + int iRtn = 0; + string sRet = UserCom.RST_ERR; + byte[] outResTime = new byte[2049]; + + // 무결성 검사 상태값 설정 + DeviceStatus m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + + try + { + sRsltTime = string.Empty; + Array.Clear(outResTime, 0x0, outResTime.Length); + + // 상태 확인 + SetAuthInfoString(sDeviceType); + + // 시간설정 + SetTime_ICReader(sDeviceType); + + // 서명패드 무결성 검사시 + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + if (m_cDevStatus.SignPad.UseYn == false) return sRet; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnRfReaderIntegrity.Start. "); + // 무결성 검사 + iRtn = SpcnRfReaderIntegrity(outResTime); + } + else + { + if (m_cDevStatus.ICReader.UseYn == false) return sRet; + + if (m_bUpdateIni == false) + { + UpdateIniConfig(m_cDevStatus.ICReader.VanIP, m_cDevStatus.ICReader.VanPort); + } + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnIcReaderIntegrity.Start. "); + // 무결성 검사 + iRtn = SpcnIcReaderIntegrity(outResTime); + } + + if (iRtn > 0) + { + sRsltTime = ByteToString(outResTime); + sRet = UserCom.RST_OK; + + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.IC_READER) m_cDevStatus.ICReader.Integrity_IC_Status = true; + else if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) m_cDevStatus.ICReader.Integrity_SignPad_Status = true; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Success. "); + } + else + { + sRsltTime = string.Empty; + + // 무결성 실패시 인증번호 삭제 + if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.IC_READER) + { + m_sAuthInfo_IC.Clear(); + m_cDevStatus.ICReader.Integrity_IC_Status = false; + } + else if (sDeviceType == PosConst.POS_CARD_READER_DEVICE_TYPE.SAIGNPAD) + { + m_sAuthInfo_RF.Clear(); + m_cDevStatus.ICReader.Integrity_SignPad_Status = false; + } + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Error. " + iRtn); + } + } + catch (Exception ex) + { + sRsltTime = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sRet; + } + + /// + /// [IC리더기] 카드 정보 요청 + /// + public bool GetCardInfo_ICReader(int iTranType, int iAmount, ref string sRsltMsg) + { + return GetCardInfo_ICReader(iTranType, iAmount, ref sRsltMsg, false); + } + public bool GetCardInfo_ICReader(int iTranType, int iAmount, ref string sRsltMsg, bool bMask) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[4096]; + + try + { +#if !DEVICE_MSR_VER + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.UseYn == false) + { + //Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0389); + return bRtn; + } + else if (m_cDevStatus.ICReader.Integrity_IC_Status != true) + { + //Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + return bRtn; + } + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SpcnIcReaderCardInfo.Start. "); + + iRtn = SpcnIcReaderCardInfo(iTranType, Encoding.Default.GetBytes(m_cPosStatus.Base.OlePosICReaderSerialNumber), iAmount, outMsg); + if (iRtn > 0) + { + //카드번호 뒷 4자리 *로 치환 - 여전법대응! (마스킹 필요한 카드 필요시 사용) + if (outMsg.Length > 1046 && bMask == false) + { + for (int iRow = 1042; iRow < 1046; iRow++) + { + if (outMsg[iRow] != ((byte)0x20)) //스페이스 아니면! + { + outMsg[iRow] = (byte)0x2A; //*로 치환 + } + } + } + + ByteToString(outMsg, ref sRsltMsg); + bRtn = true; + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Success. "); + } + else + { + //Block된 카드인경우 에러 메세지! + //if (iRtn == -144) + // WinManager.ErrorMessage(ErrCodeToMsg(iRtn)); + + if (iRtn != -118) + { + string sErrMsg = ErrCodeToMsg(iRtn); + //Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn); + } + sRsltMsg = string.Empty; + } +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.UseYn == false) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0389); + return bRtn; + } + else if (m_cDevStatus.ICReader.Integrity_IC_Status != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + return bRtn; + } + + iRtn = SpcnIcReaderCardInfo(iTranType, Encoding.Default.GetBytes(m_cPosStatus.Base.OlePosICReaderSerialNumber), iAmount, outMsg); + if (iRtn > 0) + { + //카드번호 뒷 4자리 *로 치환 - 여전법대응! (마스킹 필요한 카드 필요시 사용) + if (outMsg.Length > 1046 && bMask == false) + { + for (int iRow = 1042; iRow < 1046; iRow++) + { + if (outMsg[iRow] != ((byte)0x20)) //스페이스 아니면! + { + outMsg[iRow] = (byte)0x2A; //*로 치환 + } + } + } + + ByteToString(outMsg, ref sRsltMsg); + bRtn = true; + } + else + { + //Block된 카드인경우 에러 메세지! + //if (iRtn == -144) + // WinManager.ErrorMessage(ErrCodeToMsg(iRtn)); + + if (iRtn != -118) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + sRsltMsg = string.Empty; + } + } +#endif + } + catch (Exception ex) + { + sRsltMsg = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// [IC리더기] 발급사 인증 요청 + /// + public bool CardIssuer_ICReader(string sIcChipData, ref string sRsltMsg) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[2049]; + + try + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + iRtn = SpcnIcReaderCardIssuer(Encoding.Default.GetBytes(sIcChipData), outMsg); + + if (iRtn > 0) + { + sRsltMsg = ByteToString(outMsg); + + if (CmUtil.MidH(sRsltMsg, 0, 2) == "00") + { + bRtn = true; + } + else + { + bRtn = false; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Error - IssuerRecvValue : " + sRsltMsg); + } + + } + else + { + sRsltMsg = string.Empty; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRtn; + } + + /// + /// 승인 요청 + /// + public int SpcnCommPos(string sInputMsg, string sSignData, string sIcData, string sOilData, string m_sAuthInfo, ref string sRecvData) + { + int nReturn = -99; + + try + { + byte[] bytInputMsg = null; + byte[] bytSignData = null; + byte[] bytIcData = null; + byte[] bytOilData = null; + byte[] bytAuthInfo = null; + + byte[] bytOutput = new byte[4096]; + + sRecvData = string.Empty; + Array.Clear(bytOutput, 0, bytOutput.Length); + + //// 무결성 실패후 진행시 오류 메시지 표시 + //if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cPosStatus.Base.OlePosICReaderUseFlag == "1") + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + // return nReturn; + //} + + bytInputMsg = Encoding.Default.GetBytes(sInputMsg); + bytSignData = Encoding.Default.GetBytes(sSignData); + bytIcData = Encoding.Default.GetBytes(sIcData); + + //#20180827 유가보조/면세유 미사용 start + //기존 + bytOilData = Encoding.Default.GetBytes(sOilData); + //변경 + /* + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "[sOilData:" + sOilData); + + sOilData = ""; + bytOilData = Encoding.Default.GetBytes(sOilData); + */ + //#20180827 유가보조/면세유 미사용 end + + if (m_sAuthInfo == PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF) + { + bytAuthInfo = Encoding.Default.GetBytes(AuthInfo_RF.ToString()); + } + else + { + bytAuthInfo = Encoding.Default.GetBytes(AuthInfo_IC.ToString()); + } + +#if !DEVICE_MSR_VER + nReturn = SpcnIcPos(bytInputMsg, sInputMsg.Length, bytSignData, bytIcData, bytOilData, bytAuthInfo, bytOutput); // IC 승인조회 +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + nReturn = SpcnIcPos(bytInputMsg, sInputMsg.Length, bytSignData, bytIcData, bytOilData, bytAuthInfo, bytOutput); // IC 승인조회 + } + else + { + //#20171129, 해피기프트(신) MS매장 RF카드 IC승인되도록 수정 Start + // 기존 + //nReturn = SpcnPos(bytInputMsg, sInputMsg.Length, bytOutput); // MSR 승인조회 + + if ((sIcData != "" || sIcData != null) && m_sAuthInfo == PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF) // 해피기프트(신) MS에서 RF 승인 시 + nReturn = SpcnIcPos(bytInputMsg, sInputMsg.Length, bytSignData, bytIcData, bytOilData, bytAuthInfo, bytOutput); // IC 승인조회 + else + nReturn = SpcnPos(bytInputMsg, sInputMsg.Length, bytOutput); // MSR 승인조회 + //#20171129, 해피기프트(신) MS매장 RF카드 IC승인되도록 수정 End + } +#endif + if (nReturn < 0) //승인실퍠 + { + // 실패경우 + sRecvData = ErrCodeToMsg(nReturn); + } + else + { + sRecvData = ByteToString(bytOutput); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + /// + /// 망취소 요청 + /// + /// 직전 승인 요청전문 + /// 직전 승인 응답전문 + /// 응답전문 + /// + public int SpcnCommPosForNetCancel(string sReqMsg, string sResMsg, ref string sRecvData) + { + int nReturn = -99; + + try + { + byte[] bytReqMsg = Encoding.Default.GetBytes(sReqMsg); + byte[] bytResMsg = Encoding.Default.GetBytes(sResMsg); + byte[] bytOutput = new byte[2049]; + + sRecvData = string.Empty; + Array.Clear(bytOutput, 0, bytOutput.Length); + +#if !DEVICE_MSR_VER + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.UseYn == false) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0389); + return nReturn; + } + if (m_cDevStatus.ICReader.Integrity_IC_Status != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + return nReturn; + } + + nReturn = SpcnReversal(bytReqMsg, bytResMsg, Encoding.Default.GetBytes(AuthInfo_IC.ToString()), bytOutput); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.UseYn == false) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0389); + return nReturn; + } + if (m_cDevStatus.ICReader.Integrity_IC_Status != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0386); + return nReturn; + } + + nReturn = SpcnReversal(bytReqMsg, bytResMsg, Encoding.Default.GetBytes(AuthInfo_IC.ToString()), bytOutput); + } + else + { + // MSR 망취소 함수 확인 필요 + //nReturn = SpcnReversal(bytReqMsg, bytResMsg, Encoding.Default.GetBytes(AuthInfo_IC.ToString()), bytOutput); + } +#endif + + if (nReturn < 0) //승인실퍠 + { + //실패경우 + sRecvData = ErrCodeToMsg(nReturn); + } + else + { + sRecvData = ByteToString(bytOutput); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// RF 카드 정보 요청 + /// + /// + /// + /// + /// + /// + /// + /// + public bool GetRfCreditCardInfo(string sSamType, string sAmount, string sMsg1, string sMsg2, string sMsg3, ref string sRsltMsg) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[2049]; + + try + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + DeviceStatus m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + if (m_cDevStatus.SignPad.UseYn != true) + { + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0390); + return false; + } + +#if !DEVICE_MSR_VER + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) + { + //#20171208, RF버튼 선택 시에만 서명패드 무결성 체크하도록 수정 Start + //sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0385); + //#20171208, RF버튼 선택 시에만 서명패드 무결성 체크하도록 수정 End + return false; + } + } + + // 터미널 ID가져오기 + string sTerminalNo = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID); + + byte[] bytTerminalNo = Encoding.Default.GetBytes(sTerminalNo); + byte[] bytSamType = Encoding.Default.GetBytes(sSamType); + byte[] bytAmount = Encoding.Default.GetBytes(sAmount); + byte[] bytsMsg1 = Encoding.Default.GetBytes(sMsg1); + byte[] bytsMsg2 = Encoding.Default.GetBytes(sMsg2); + byte[] bytsMsg3 = Encoding.Default.GetBytes(sMsg3); + + iRtn = SpcnRfCreditCardInfo(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + //카드번호 뒷 4자리 *로 치환 - 여전법대응! + if (outMsg.Length > 526) + { + for (int iRow = 526; iRow < 530; iRow++) + { + if (outMsg[iRow] != ((byte)0x20)) //스페이스 아니면! + { + outMsg[iRow] = (byte)0x2A; //*로 치환 + } + } + } + + ByteToString(outMsg, ref sRsltMsg); + bRtn = true; +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) + { + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); + return false; + } + + } + // 터미널 ID가져오기 + string sTerminalNo = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID); + + byte[] bytTerminalNo = Encoding.Default.GetBytes(sTerminalNo); + byte[] bytSamType = Encoding.Default.GetBytes(sSamType); + byte[] bytAmount = Encoding.Default.GetBytes(sAmount); + byte[] bytsMsg1 = Encoding.Default.GetBytes(sMsg1); + byte[] bytsMsg2 = Encoding.Default.GetBytes(sMsg2); + byte[] bytsMsg3 = Encoding.Default.GetBytes(sMsg3); + + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + iRtn = SpcnRfCreditCardInfo(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + else + iRtn = SpcnRfCreditCardInfoEx(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + string sTempData = ByteToString(outMsg); + + //미인증 데이터 인증 데이터 포멧으로 변환 + //카드구분(1)+카드방식(1)+신용Track데이터(40)+포인트Track데이터(42)+IC Chip 데이터(512) + //카드구분(1)+카드방식(1)+카드정보(512)+마스킹카드번호(40)+서비스코드(5)+포인트카드정보(512)+포인트마스킹(40)+포인트서비스코드(5)+IC CHIP(512)+삼성페이 서비스(40) + + sRsltMsg = CmUtil.LeftH(CmUtil.MidH(sTempData, 0, 42), 514); + sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 2, 6) + (CmUtil.MidH(sTempData, 8, 10).Replace("=", "").Trim().Length == 9 ? "*********" : "**********"), 40); + sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 34, 5), 5); + sRsltMsg += CmUtil.LeftH("", 557); + sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 84, 512), 512); + sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 42, 40), 40); + + + ////카드번호 뒷 4자리 *로 치환 - 여전법대응! + //if (outMsg.Length > 526) + //{ + // for (int iRow = 526; iRow < 530; iRow++) + // { + // if (outMsg[iRow] != ((byte)0x20)) //스페이스 아니면! + // { + // outMsg[iRow] = (byte)0x2A; //*로 치환 + // } + // } + + // if (m_cDevStatus.ICReader.UseYn != true) // 여전법 인증여부(0:MSR, 1:IC) + // { + // for (int iRow = 0; iRow < 16; iRow++) + // { + // if (iRow >= 0 && iRow < 6) + // outMsg[514 + iRow] = outMsg[2 + iRow]; // 카드 bin + // else if (iRow >= 6 && iRow < 16) + // outMsg[514 + iRow] = (byte)0x2A; // 7~16 *로 변환 + // } + + // for (int iRow = 34; iRow < 40; iRow++) + // { + // outMsg[555 + (iRow-35)] = outMsg[iRow]; // 서비스 코드 + // } + + // } + //} + + //ByteToString(outMsg, ref sRsltMsg); + bRtn = true; +#endif + } + catch (Exception ex) + { + sRsltMsg = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + //20171013 dkshin 해피기프트(신) IC/RF 충전 및 승인 + /// + /// RF 코나머니카드 정보 요청 + /// + /// + /// + /// + /// + /// + /// + /// + public bool GetRfEtcCardInfo(string sSamType, string sAmount, string sMsg1, string sMsg2, string sMsg3, ref string sRsltMsg) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[2049]; + + try + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + DeviceStatus m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + if (m_cDevStatus.SignPad.UseYn != true) + { + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0390); + return false; + } + +#if !DEVICE_MSR_VER + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) + { + //#20171208, RF버튼 선택 시에만 서명패드 무결성 체크하도록 수정 Start + //sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0385); + //#20171208, RF버튼 선택 시에만 서명패드 무결성 체크하도록 수정 End + return false; + } + } + + // 터미널 ID가져오기 + string sTerminalNo = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID); + + byte[] bytTerminalNo = Encoding.Default.GetBytes(sTerminalNo); + byte[] bytSamType = Encoding.Default.GetBytes(sSamType); + byte[] bytAmount = Encoding.Default.GetBytes(sAmount); + byte[] bytsMsg1 = Encoding.Default.GetBytes(sMsg1); + byte[] bytsMsg2 = Encoding.Default.GetBytes(sMsg2); + byte[] bytsMsg3 = Encoding.Default.GetBytes(sMsg3); + + iRtn = SpcnRfEtcCardInfo(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + //카드번호 뒷 4자리 *로 치환 - 여전법대응! + if (outMsg.Length > 526) + { + for (int iRow = 526; iRow < 530; iRow++) + { + if (outMsg[iRow] != ((byte)0x20)) //스페이스 아니면! + { + outMsg[iRow] = (byte)0x2A; //*로 치환 + } + } + } + + ByteToString(outMsg, ref sRsltMsg); + bRtn = true; +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) + { + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); + return false; + } + + } + // 터미널 ID가져오기 + string sTerminalNo = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID); + + byte[] bytTerminalNo = Encoding.Default.GetBytes(sTerminalNo); + byte[] bytSamType = Encoding.Default.GetBytes(sSamType); + byte[] bytAmount = Encoding.Default.GetBytes(sAmount); + byte[] bytsMsg1 = Encoding.Default.GetBytes(sMsg1); + byte[] bytsMsg2 = Encoding.Default.GetBytes(sMsg2); + byte[] bytsMsg3 = Encoding.Default.GetBytes(sMsg3); + + //#20171129, 해피기프트(신) MS매장 RF카드 IC승인되도록 수정 Start + //if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + // iRtn = SpcnRfCreditCardInfo(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + //else + // iRtn = SpcnRfCreditCardInfoEx(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + + iRtn = SpcnRfEtcCardInfo(bytTerminalNo, bytSamType, bytAmount, bytsMsg1, bytsMsg2, bytsMsg3, outMsg); + //#20171129, 해피기프트(신) MS매장 RF카드 IC승인되도록 수정 End + + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + //#20171129, 해피기프트(신) MS매장 RF카드 IC승인되도록 수정 Start + // 기존 + //string sTempData = ByteToString(outMsg); + + //미인증 데이터 인증 데이터 포멧으로 변환 + //카드구분(1)+카드방식(1)+신용Track데이터(40)+포인트Track데이터(42)+IC Chip 데이터(512) + //카드구분(1)+카드방식(1)+카드정보(512)+마스킹카드번호(40)+서비스코드(5)+포인트카드정보(512)+포인트마스킹(40)+포인트서비스코드(5)+IC CHIP(512)+삼성페이 서비스(40) + + //sRsltMsg = CmUtil.LeftH(CmUtil.MidH(sTempData, 0, 42), 514); + //sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 2, 6) + (CmUtil.MidH(sTempData, 8, 10).Replace("=", "").Trim().Length == 9 ? "*********" : "**********"), 40); + //sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 34, 5), 5); + //sRsltMsg += CmUtil.LeftH("", 557); + //sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 84, 512), 512); + //sRsltMsg += CmUtil.LeftH(CmUtil.MidH(sTempData, 42, 40), 40); + + // 변경 + if (outMsg.Length > 526) + { + for (int iRow = 526; iRow < 530; iRow++) + { + if (outMsg[iRow] != ((byte)0x20)) //스페이스 아니면! + { + outMsg[iRow] = (byte)0x2A; //*로 치환 + } + } + } + + ByteToString(outMsg, ref sRsltMsg); + //#20171129, 해피기프트(신) MS매장 RF카드 IC승인되도록 수정 End + bRtn = true; +#endif + } + catch (Exception ex) + { + sRsltMsg = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// SPC 사원 카드 정보 읽기 + /// + /// + /// + public bool GetSpcEmpCardInfo(ref string sRsltMsg) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[2049]; + + try + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + DeviceStatus m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + if (m_cDevStatus.SignPad.UseYn != true) + { + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0390); + return false; + } + +//#if !DEVICE_MSR_VER +// // 무결성 실패후 진행시 오류 메시지 표시 +// if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) +// { +// sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); +// return false; +// } +//#else +// if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) +// { +// // 무결성 실패후 진행시 오류 메시지 표시 +// if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) +// { +// sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); +// return false; +// } +// } +//#endif + iRtn = SpcnRfEmployeeCardInfo(outMsg); + if (iRtn > 0) + { + ByteToString(outMsg, ref sRsltMsg); + bRtn = true; + } + else + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + sRsltMsg = string.Empty; + } + } + catch (Exception ex) + { + sRsltMsg = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// 선불카드 조회 + /// + /// + public bool RfPrepaidCardInfo(ref string sRsltMsg) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[2049]; + + try + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + DeviceStatus m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + if (m_cDevStatus.SignPad.UseYn != true) + { + sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0390); + return false; + } +//#if !DEVICE_MSR_VER +// // 무결성 실패후 진행시 오류 메시지 표시 +// if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) +// { +// sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); +// return false; +// } +//#else +// if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) +// { +// // 무결성 실패후 진행시 오류 메시지 표시 +// if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) +// { +// sRsltMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0387); +// return false; +// } +// } +//#endif + iRtn = SpcnRfPrepaidCardInfo(outMsg); + if (iRtn > 0) + { + ByteToString(outMsg, ref sRsltMsg); + bRtn = true; + } + else + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + } + catch (Exception ex) + { + sRsltMsg = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// IC 콜백 요청 + /// + /// + /// + public bool RegIcCallback(PosOLEDevice.DelegateIcReader delegateReader) + { + try + { + // return true; // 콜백 제거(2017.05.15) +#if !DEVICE_MSR_VER + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnRegIcCallback.Start"); + + GCHandle gch = GCHandle.Alloc(delegateReader); + IntPtr intptr_delegate = Marshal.GetFunctionPointerForDelegate(delegateReader); + SpcnStopProcess(0); + SpcnRegIcCallback(intptr_delegate); + gch.Free(); + + m_bIcReaderCallBack = true; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnRegIcCallback.Success"); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + GCHandle gch = GCHandle.Alloc(delegateReader); + IntPtr intptr_delegate = Marshal.GetFunctionPointerForDelegate(delegateReader); + SpcnRegIcCallback(intptr_delegate); + gch.Free(); + + m_bIcReaderCallBack = true; + } +#endif + return true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return false; + } + + /// + /// IC 콜백 해지 + /// + /// + public bool UnRegIcCallback() + { + try + { + // return true; // 콜백 제거(2017.05.15) +#if !DEVICE_MSR_VER + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_bIcReaderCallBack == false) return false; + //if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnUnRegIcCallback.Start"); + + SpcnUnRegIcCallback(); + + m_bIcReaderCallBack = false; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnUnRegIcCallback.Success"); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + SpcnUnRegIcCallback(); + + m_bIcReaderCallBack = false; + } +#endif + return true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return false; + } + + + /// + /// IC 콜백 설정 + /// + /// + public bool IcReaderSettingDevice(bool bEnable) + { + try + { + // return true; // 콜백 제거(2017.05.15) +#if !DEVICE_MSR_VER + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + StringBuilder a = new StringBuilder(); + StringBuilder b = new StringBuilder(); + byte[] by_a = new byte[3]; + byte[] by_b = new byte[3]; + int rc = 0; + + if (bEnable == true) + { + a.Append("U1"); + b.Append("1"); + } + else + { + a.Append("U1"); + b.Append("0"); + } + + by_a = System.Text.Encoding.UTF8.GetBytes(a.ToString()); + by_b = System.Text.Encoding.UTF8.GetBytes(b.ToString()); + + rc = SpcnIcReaderSettingDevice(by_a, by_b); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + StringBuilder a = new StringBuilder(); + StringBuilder b = new StringBuilder(); + byte[] by_a = new byte[3]; + byte[] by_b = new byte[3]; + int rc = 0; + + if (bEnable == true) + { + a.Append("U1"); + b.Append("1"); + } + else + { + a.Append("U1"); + b.Append("0"); + } + + by_a = System.Text.Encoding.UTF8.GetBytes(a.ToString()); + by_b = System.Text.Encoding.UTF8.GetBytes(b.ToString()); + + rc = SpcnIcReaderSettingDevice(by_a, by_b); + } +#endif + return true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return false; + } + + /// + /// 문자열을 바이트열로 변환 + /// + /// + /// + private byte[] GetByteArrayFromString(string src) + { + return System.Text.Encoding.Default.GetBytes(src); + } + + /// + /// 응답코드 + /// + /// + /// + private string ErrCodeToMsg(int nErrCode) + { + string sMsg = string.Empty; + + try + { + switch (nErrCode) + { + case -3: sMsg = "암호화오류(전문생성오류)"; break; + case -4: sMsg = "암호화오류(전문생성오류)"; break; + case -5: sMsg = "암호화오류 (전문오류)"; break; + case -6: sMsg = "암호화오류 (전문오류)"; break; + case -7: sMsg = "암호화오류 (키생성)"; break; + case -8: sMsg = "암호화오류 (키생성)"; break; + case -9: sMsg = "암호화오류 (키생성)"; break; + case -10: sMsg = "요청 IP 오류"; break; + case -11: sMsg = "암호화 구분 2 붙인 전문 오류"; break; + case -12: sMsg = "전자서명 전문일 경우 전문길이 필드 없는 오류"; break; + case -13: sMsg = "전자서명 전문일 경우 전문길이 필드 없는 오류"; break; + case -14: sMsg = "전문 전체길이 체크 오류"; break; + case -15: sMsg = "파라미터 오류 (접속 IP 오류)"; break; + case -16: sMsg = "파라미터 오류 (요청전문 오류)"; break; + case -17: sMsg = "전자서명 암호화 오류"; break; + case -18: sMsg = "개시거래 요망"; break; + case -20: sMsg = "SOCKET CONNECT 오류"; break; + case -21: sMsg = "SOCKET SELECT 오류"; break; + case -22: sMsg = "SOCKET RECV SELECT 오류"; break; + case -23: sMsg = "SOCKET RECV SELECT 오류"; break; + case -24: sMsg = "SOCKET RECV 오류"; break; + case -25: sMsg = "SOCKET RECV 오류"; break; + case -26: sMsg = "SOCKET SEND 오류"; break; + case -30: sMsg = "전문오류 (전자서명 필요없는 거래)"; break; + case -31: sMsg = "전문오류 (전자서명 데이터 구조 오류)"; break; + case -32: sMsg = "전문오류 (CR 없음)"; break; + case -33: sMsg = "전문오류 (ETX 없음)"; break; + case -34: sMsg = "전문오류(FS2 없음)"; break; + case -35: sMsg = "전자서명오류 (암호화 오류)"; break; + case -36: sMsg = "전자서명 길이 오류 (모바일)"; break; + case -37: sMsg = "IC데이터 오류 (FS오류)"; break; + case -38: sMsg = "IC데이터 오류(IC데이터/등록정보 오류)"; break; + case -40: sMsg = "EOT 미수신 (수신X)"; break; + case -41: sMsg = "EOT 미수신 (수신오류)"; break; + case -42: sMsg = "SOCKET 초기화 오류"; break; + case -43: sMsg = "SOCKET CONNECT 오류"; break; + case -44: sMsg = "SOCKET SEND 오류 (암호화)"; break; + case -45: sMsg = "SOCKET SEND 오류 (전문)"; break; + case -46: sMsg = "SOCKET RECV 오류 (헤더)"; break; + case -47: sMsg = "SOCKET RECV 오류 (전문)"; break; + case -48: sMsg = "SOCKET RECV 오류 (암호화)"; break; + case -49: sMsg = "SOCKET RECV 오류 (CHECK)"; break; + case -50: sMsg = "SOCKET SEND 오류 (ACK)"; break; + case -60: sMsg = "(모바일)SOCKET 생성 오류"; break; + case -61: sMsg = "(모바일)SOCKET CONNECT 오류"; break; + case -62: sMsg = "(모바일)SOCKET SELECT 오류"; break; + case -63: sMsg = "(모바일)SOCKET 옵션 설정 오류"; break; + case -64: sMsg = "(모바일)SOCKET 옵션 설정 오류"; break; + case -65: sMsg = "(모바일)SOCKET 오류"; break; + case -66: sMsg = "(모바일)SOCKET RECV 오류"; break; + case -67: sMsg = "(모바일)SOCKET RECV SELECT 오류"; break; + case -68: sMsg = "(모바일)SOCKET RECV SELECT 오류"; break; + case -69: sMsg = "(모바일)SOCKET SEND 오류"; break; + case -70: sMsg = "(모바일)SOCKET SEND SELECT 오류"; break; + case -79: sMsg = "시리얼 클래스 생성 오류"; break; + case -80: sMsg = "INI 파일 오류 (TYPE 구분 설정요망)"; break; + case -81: sMsg = "싸인패드 포트 오류"; break; + case -82: sMsg = "싸인패드 포트 오류"; break; + case -83: sMsg = "싸인패드 통신 오류"; break; + case -84: sMsg = "싸인패드 사용자 취소"; break; + case -85: sMsg = "싸인패드 타임아웃 오류"; break; + case -86: sMsg = "싸인패드 오픈 오류"; break; + case -87: sMsg = "싸인패드 초기화 오류"; break; + case -88: sMsg = "싸인패드 요청 오류"; break; + case -89: sMsg = "싸인패드 통신 오류"; break; + case -90: sMsg = "요청전문오류 (헤더 메시지 길이 오류)"; break; + case -91: sMsg = "요청전문오류 (거래구분 코드 오류)"; break; + case -92: sMsg = "미지원 전문"; break; + case -93: sMsg = "요청전문 필수 항목 누락"; break; + case -94: sMsg = "버퍼 초과"; break; + case -95: sMsg = "핀블럭 길이 오류"; break; + case -96: sMsg = "(전자서명생성) 이미지 파일 미존재"; break; + case -97: sMsg = "(전자서명생성) 이미지 파일 읽기 오류"; break; + case -98: sMsg = "(전자서명생성) 이미지 파일 크기 오류"; break; + case -99: sMsg = "(전자서명생성) 이미지 파일 데이터 오류"; break; + case -101: sMsg = "IC리더기 포트 설정 오류"; break; + case -102: sMsg = "IC리더기 오픈 오류"; break; + case -103: sMsg = "IC리더기 시리얼 생성 오류"; break; + case -104: sMsg = "IC리더기 파라미터 오류"; break; + case -105: sMsg = "IC리더기 쓰기 오류"; break; + case -106: sMsg = "보안표준키 다운로드 항목 오류(K2)"; break; + case -107: sMsg = "보안표준키 다운로드 승인 거절(K2)"; break; + case -108: sMsg = "보안표준키 다운로드 항목 오류(K4)"; break; + case -109: sMsg = "보안표준키 다운로드 승인 거절(K4)"; break; + case -110: sMsg = "IC리더기 응답 오류(Class 생성 오류)"; break; + case -111: sMsg = "IC리더기 응답 오류(길이 정보 수신 오류)"; break; + case -112: sMsg = "IC리더기 응답 오류(STX 오류)"; break; + case -113: sMsg = "IC리더기 응답 오류(수신 오류)"; break; + case -114: sMsg = "IC리더기 응답전문 오류(STX 오류)"; break; + case -115: sMsg = "IC리더기 응답전문 오류(ETX 오류)"; break; + case -116: sMsg = "IC리더기 응답전문 오류(LRC 오류)"; break; + case -117: sMsg = "IC리더기 초기화 오류"; break; + case -118: sMsg = "IC리더기 사용자 취소"; break; + case -119: sMsg = "IC리더기 타임아웃 오류"; break; + case -120: sMsg = "IC리더기 통신 오류"; break; + case -121: sMsg = "카드발급사 인증요청 IC CHIP DATA 오류"; break; + case -122: sMsg = "카드발급사 인증요청 데이터 오류"; break; + case -123: sMsg = "카드발급사 등록제 정보 데이터 오류"; break; + case -124: sMsg = "카드발급사 응답전문 데이터 오류"; break; + case -125: sMsg = "카드발급사 전문 구분 데이터 오류"; break; + case -126: sMsg = "카드발급사 전문버젼 데이터 오류"; break; + case -127: sMsg = "카드발급사 응답전문 미승인 오류"; break; + case -128: sMsg = "카드발급사 응답전문 GS 데이터 오류"; break; + case -129: sMsg = "카드발급사 인증 거절 (망취소 거절) - POS 망취소 요망"; break; + case -130: sMsg = "카드발급사 인증 거절 (망취소 완료)"; break; + case -131: sMsg = "망취소 실패(GS 없음) - POS에서 망취소 요망"; break; + case -132: sMsg = "망취소 실패(서버 거절) - POS에서 망취소 요망"; break; + case -133: sMsg = "망취소 실패(통신오류) - POS에서 망취소 요망"; break; + case -134: sMsg = "망취소 대상 아님"; break; + case -140: sMsg = "IC리더기 카드 읽기 오류 (거래매체 유형 미지정 오류)"; break; + case -141: sMsg = "IC리더기 카드 읽기 오류 (거래매체 유형 예외 오류)"; break; + case -142: sMsg = "IC리더기 카드 읽기 오류 (IC거래 구분 오류)"; break; + case -143: sMsg = "IC리더기 거래중 카드 제거 오류"; break; + case -144: sMsg = "IC리더기 거래가 거절된 카드 오류"; break; + case -145: sMsg = "IC리더기 기타 오류"; break; + case -146: sMsg = "IC리더기 거래 요청 전 카드 삽입 오류"; break; + case -147: sMsg = "IC리더기 상호인증 미완료 후 거래 시도 오류"; break; + case -148: sMsg = "IC리더기 무결성 미성공 후 거래 시도 오류"; break; + case -149: sMsg = "IC리더기 에러 코드 발생 오류"; break; + case -150: sMsg = "IC리더기 Fallback 진행 오류"; break; + case -151: sMsg = "IC리더기 거래 중 오류 (비정상 응답)"; break; + case -161: sMsg = "IC 거래 진행 중"; break; + case -162: sMsg = "SIGNPAD 거래 진행 중"; break; + case -2243: sMsg = "여러장의 카드가 입력됨"; break; + case -2150: sMsg = "지원 불가 카드입니다."; break; + default: sMsg = "정의되어 있지 않은 메세지" + "[" + nErrCode + "]"; break; + } + + //sMsg = string.Format("ErrCd:{0} Desc:{1}", nErrCode, sMsg); + } + catch { } + return sMsg; + } + #endregion + + #region 카드번호 첫자리와 끝자리 체크하여 문자인 경우 스페이스로 치환 + /// + /// 카드번호 첫자리와 끝자리 체크하여 문자인 경우 스페이스로 치환 + /// + /// + /// + + //#20171024 START, PHJ + //기존 + //private string MSR_CardNoCheck(string sCardNo, string sValidDate, ref string sInputType) + + //변경 + private string MSR_CardNoCheck(string sCardNo, string sValidDate, ref string sInputType, string sPayWayCd = "", string sPayDtlCd = "") + //#20171024 END, PHJ + + { + string sRet = ""; + string sFirst = CmUtil.MidH(sCardNo, 0, 1); + string sLast = CmUtil.MidH(sCardNo, CmUtil.LenH(sCardNo.Trim()) - 1, 1); + + try + { + if (sFirst.Contains("^") == true) + return ""; + else if (sFirst.Contains("%") == true) + return ""; + + sCardNo = sCardNo.Trim(); + + if (sFirst.Contains(m_cDevStatus.Msr.STX) == true && m_cDevStatus.Msr.STX.Trim() != "") + { + // 첫자리가 ;, ? 경우 치환 + sCardNo = CmUtil.MidH(sCardNo, 1, CmUtil.LenH(sCardNo.Trim())); + } + else if (CmUtil.IsNumber(sFirst) != true) + { + // 첫자리가 숫자가 아닌 경우 치환 + sCardNo = CmUtil.MidH(sCardNo, 1, CmUtil.LenH(sCardNo.Trim())); + } + + if (sLast.Contains(m_cDevStatus.Msr.ETX) == true && m_cDevStatus.Msr.ETX.Trim() != "") + { + // 끝자리가 ? 경우 치환 + sCardNo = CmUtil.MidH(sCardNo, 0, CmUtil.LenH(sCardNo.Trim()) - 1); + } + + if (sCardNo.IndexOf("=") > 0) + { + if (sCardNo.Trim().Length >= 37) + sCardNo = CmUtil.MidH(sCardNo, 0, 37); + + sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + } + else if (sValidDate != null && sValidDate.Trim() != "") + { + sCardNo = sCardNo + "=" + sValidDate; + sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + } + else + { + //#20171024 START, PHJ + //기존 + //sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + + //변경 + if ( + (m_sPAY_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM) && + (m_sPAY_DTL_CD == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL) && + (sCardNo.Length >= 16) && + (sCardNo.StartsWith(PosConst.HP_CARD_PRIFIX))) + { + sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + sCardNo = CmUtil.MidH(sCardNo, 0, 16); + + m_sPAY_WAY_CD = ""; + m_sPAY_DTL_CD = ""; + } + else + { + sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + } + //#20171024 END, PHJ + } + + sRet = sCardNo; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sRet; + } + #endregion + + #region IC리더기 펌웨어 업데이트 요청 + /// + /// IC리더기 펌웨어 업데이트 요청 + /// + /// + /// + /// + /// + /// + /// + public bool SetDE_DownloadFW(int checkfwtout, int downfwtout, int nPort, byte[] DllCheck, ref string sMsg) + { + int iRtn = 0; + bool bRtn = false; + + try + { + if (m_cDevStatus.ICReader.UseYn == false) return true; + + // IC리더기 펌웨어 업데이트 요청 + iRtn = DE_DownloadFW(checkfwtout, downfwtout, nPort, DllCheck); + + // 응답값 + sMsg = GetReturn_DE_DownloadFW(iRtn); + + // 업데이트 성공 또는 업데이트 필요없으면 정상 리턴 + if (iRtn == 1000 || iRtn == 1001) bRtn = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message + "\n" + sMsg ); + } + + return bRtn; + } + + //#20171016 IC리더기 펌웨어 업데이트 Start, srlee + /// + /// IC 리더기 펌웨어 업데이트_NEW + /// + /// + /// + /// + /// + /// + public int SetDE_FWDOWN(int nPort, int nBaud, byte[] filepath, IntPtr callBackFunc) + { + int iRtn = -99; + byte[] cPW = Encoding.UTF8.GetBytes("FC28CCCE3C301E274E135435C54A46CC"); + + try + { + DE_CallBackFunReg(callBackFunc); + + // IC리더기 펌웨어 업데이트 요청 + iRtn = DE_FWDOWN(nPort, nBaud, cPW, filepath); + + if (iRtn != 0) // 0:정상 + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ICREADER FW ERROR => CODE : " + iRtn); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return iRtn; + } + //#20171016 IC리더기 펌웨어 업데이트 End, srlee + #endregion + + #region IC리더기 펌웨어 업데이트 상태 응답값 + /// + /// IC리더기 펌웨어 업데이트 상태 응답값 + /// + /// + /// + private string GetReturn_DE_DownloadFW(int ret) + { + string sMsg = ""; + try + { + switch (ret) + { + case 1000: + sMsg = "성공하였습니다."; + break; + case 1001: + sMsg = "업데이트가 필요없습니다."; + break; + case 1002: + sMsg = "업데이트가 필요합니다."; + break; + case 1003: + sMsg = "다운로드 체크 프로그램에서 응답을 못받았습니다."; + break; + case 1005: + sMsg = "다운로드 체크 프로그램에서 응답 받는 환경 생성 실패하였습니다."; + break; + case 1006: + sMsg = "업데이트 프로그램이 실행 안되어있습니다."; + break; + case 1: + sMsg = "서버에 연결하지 않고 펌웨어 업데이트를 시도하였습니다."; + break; + case 2: + sMsg = "다운로드할 단말기를 못찾았습니다."; + break; + case 3: + sMsg = "FTP 연결에 실패하였습니다."; + break; + case 4: + sMsg = "리더기 정보 및 서버 체크 중입니다."; + break; + case 5: + sMsg = "업데이트 정보 파일 가져오기를 실패하였습니다."; + break; + case 6: + sMsg = "업데이트 할 펌웨어 파일이 없습니다."; + break; + case 7: + sMsg = "업데이트 할 펌웨어 파일 가져오기에 실패하였습니다."; + break; + case 8: + sMsg = "펌웨어 인증에 실패하였습니다.(1)"; + break; + case 9: + sMsg = "펌웨어 인증에 실패하였습니다.(2)"; + break; + case 10: + sMsg = "펌웨어 인증에 실패하였습니다.(3)"; + break; + case 11: + sMsg = "펌웨어 파일의 버전 조회에 실패하였습니다."; + break; + case 12: + sMsg = "BIOS 인증에 실패하였습니다."; + break; + case 13: + sMsg = "펌웨어 파일 읽기에 실패하였습니다."; + break; + case 14: + sMsg = "펌웨어 파일 다운로드 도중에 실패하였습니다."; + break; + case 15: + sMsg = "펌웨어 파일 다운로드 완료 후 실패하였습니다."; + break; + case 16: + sMsg = "펌웨어 파일 다운로드 완료 후 펌웨어 확인에 실패하였습니다."; + break; + case 17: + sMsg = "단말기 포트 연결에 실패하였습니다."; + break; + case 18: + sMsg = "펌웨어 파일 다운로드 중입니다."; + break; + case 19: + sMsg = "잘못된 펌웨어 버전 정보입니다."; + break; + case 20: + sMsg = "서버에서 다운로드 받은 버전과 다운로드 완료한 펌웨어 파일의 버전 정보가 일치하지 않습니다."; + break; + case 21: + sMsg = "서버 확인 로그 파일 저장에 실패하였습니다."; + break; + case 22: + sMsg = "서버 확인 로그 파일 저장에 실패하였습니다."; + break; + case 23: + sMsg = "서버 확인 로그 파일 저장에 실패하였습니다.(년도 폴더 생성 실패)"; + break; + case 24: + sMsg = "서버 확인 로그 파일 저장에 실패하였습니다.(월 폴더 생성 실패)"; + break; + case 25: + sMsg = "다운로드 받은 펌웨어 파일의 버전 확인에 실패하였습니다."; + break; + case 26: + sMsg = "다운로드 도중 타임아웃 실패하였습니다."; + break; + case 27: + sMsg = "이전 버전의 파일이 없습니다."; + break; + case 28: + sMsg = "이전버전 파일 다운로드 도중 실패하였습니다."; + break; + case 29: + sMsg = "펌웨어와 호환되지않는 DLL입니다."; + break; + case 1008: + sMsg = "파일을 실행할 수 없습니다. 관리자에게 문의하십시오."; + break; + case 30: + sMsg = "DualPayUpdater를 실행할 수 없습니다."; + break; + case 31: + sMsg = "이전 버전의 펌웨어 파일이 존재하지 않습니다."; + break; + case 32: + sMsg = "다운받은 펌웨어 파일이 존재하지 않습니다."; + break; + case 33: + sMsg = "이전 버전의 펌웨어 파일의 버전 확인을 실패하였습니다."; + break; + case 1007: + sMsg = "업데이트할 FW 파일이 없습니다."; + break; + case 1009: + sMsg = "이전 버전의 펌웨어 파일이 존재합니다."; + break; + case 34: + sMsg = "업데이트를 하지 않았습니다."; + break; + default: + sMsg = "에러가 발생하였습니다."; + break; + } + } + catch (Exception) + { + + throw; + } + return sMsg; + } + #endregion + + + [DllImport("SpcnPos.dll", CallingConvention = CallingConvention.Cdecl)] + public static extern int SpcnIcReaderCardInfo_RegCallback(int tranType, byte[] trmlId, int amount, int timeout_sec, IntPtr callback); + + [DllImport("SpcnPos.dll", CallingConvention = CallingConvention.Cdecl)] + public static extern int SpcnIcReaderCardInfo_UnRegCallback(); + + /// + /// IC 콜백 요청(CARD INFO) + /// + /// + /// + /// + /// + public bool RegIcCallbackCardInfo(string sTmrId, int nCardAmt, PosOLEDevice.CallbackIc delegateIcReader) + { + try + { + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) return false; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnIcReaderCardInfo_RegCallback.Start"); + int rc = 0; + GCHandle gch = GCHandle.Alloc(delegateIcReader); + + + + + IntPtr intptr_delegate = Marshal.GetFunctionPointerForDelegate(delegateIcReader); + rc = SpcnIcReaderCardInfo_RegCallback(0, GetByteArrayFromString(sTmrId), nCardAmt, 60, intptr_delegate); + gch.Free(); + + m_bIcReaderCallBack = true; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnIcReaderCardInfo_RegCallback.Success"); + + return true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return false; + } + + /// + /// IC 콜백 해지(CARD INFO) + /// + /// + public bool UnRegIcCallbackCardInfo() + { + try + { + + if (m_cDevStatus.ICReader.UseYn == false) return false; + if (m_bIcReaderCallBack == false) return false; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnIcReaderCardInfo_UnRegCallback.Start"); + + int rc = SpcnIcReaderCardInfo_UnRegCallback(); + + m_bIcReaderCallBack = false; + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "SpcnIcReaderCardInfo_UnRegCallback.Success " + rc); + + return true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return false; + } + } +} diff --git a/Agent/OLEDevice/DeviceLabelPrinter.cs b/Agent/OLEDevice/DeviceLabelPrinter.cs new file mode 100644 index 0000000..e82cde5 --- /dev/null +++ b/Agent/OLEDevice/DeviceLabelPrinter.cs @@ -0,0 +1,582 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.IO; +using System.IO.Ports; + +using Cosmos.UserFrame; +using Cosmos.Common; +using Cosmos.CommonManager; + +namespace Cosmos.OLEDevice +{ + public class DeviceLabelPrinter : ILabelPrinterUs + { + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = null; + + /// + /// Pos 상태 정보 객체 + /// + public PosStatus m_cPosStatus = null; + + /// + /// RS232통신을 위한 시리얼포트 객체 + /// + private SerialPort m_serialPort = null; + + private BackgroundWorker bw = null; + + public DeviceLabelPrinter() + { + try + { + m_cPosStatus = (PosStatus)StateObject.POS; + devStatus = (DeviceStatus)StateObject.DEVICE; + bw = new BackgroundWorker(); + + DeviceInit(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void DeviceInit() + { + devStatus.LabelPrinter.Data = string.Empty; + } + + #region OPEN/CLOSE 처리 함수 + /// + /// 디바이스 OPEN시 처리 함수 + /// + /// + public bool OpenDevice(string sSerialPort, long lBaudrate) + { + bool bRet = false; + try + { + if (m_serialPort != null) + { + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start (주석처리) + //m_serialPort.DiscardInBuffer(); + //m_serialPort.DiscardOutBuffer(); + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + + m_serialPort.Close(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + + if (m_serialPort == null) + { + m_serialPort = new SerialPort(); + //m_serialPort = new SerialPort(sSerialPort, (int)lBaudrate, Parity.None, 8, StopBits.One); + if (m_serialPort == null) + { + devStatus.LabelPrinter.Open = false; + devStatus.LabelPrinter.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.LabelPrinter.Status); + return bRet; + } + + m_serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + m_serialPort.PinChanged += new SerialPinChangedEventHandler(serialPort_PinChanged); + m_serialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + + m_serialPort.NewLine = "\r\n"; + m_serialPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + + m_serialPort.WriteBufferSize = 1024 * 1024; + m_serialPort.PortName = sSerialPort; + m_serialPort.BaudRate = (int)lBaudrate; + m_serialPort.DataBits = 8; + m_serialPort.StopBits = StopBits.One; + m_serialPort.Parity = Parity.None; + m_serialPort.Handshake = Handshake.None; + m_serialPort.ReadTimeout = 500; + m_serialPort.WriteTimeout = 2000; + + m_serialPort.Open(); + if (m_serialPort.IsOpen == false) + { + devStatus.LabelPrinter.Open = false; + devStatus.LabelPrinter.Status = "SERIAL PORT OPEN ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.LabelPrinter.Status); + return bRet; + } + + devStatus.LabelPrinter.Open = true; + devStatus.LabelPrinter.Status = "SUCCESS"; + + bw.DoWork += OlePosHandler; + bRet = true; + } + else + { + devStatus.LabelPrinter.Open = false; + devStatus.LabelPrinter.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.LabelPrinter.Status); + return bRet; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + /// + /// 디바이스 CLOSE시 처리 함수 + /// + /// + public bool CloseDevice() + { + bool bRet = false; + try + { + if (m_serialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_serialPort == null)"); + return bRet; + } + + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start + m_serialPort.DiscardInBuffer(); + m_serialPort.DiscardOutBuffer(); + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + + m_serialPort.Close(); + bRet = true; + m_serialPort = null; + devStatus.LabelPrinter.Status = "CLOSE"; + devStatus.LabelPrinter.Open = false; + bw.DoWork -= OlePosHandler; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + #endregion + + #region 이벤트 처리 + private void OlePosHandler(object sender, DoWorkEventArgs e) + { + try + { + if (PosOLEDevice.m_delegateOlePos != null) + PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.LABELPRINTER, devStatus.Scale.Data, string.Empty, string.Empty); + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "이벤트 전송 대상 없음"); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + SerialPort serialPort = (SerialPort)sender; + byte[] bytRecvBuf = new byte[serialPort.BytesToRead]; + + try + { + if (!bw.IsBusy) + { + serialPort.Read(bytRecvBuf, 0, bytRecvBuf.Length); + + bw.RunWorkerAsync(); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "이벤트 처리 전 이벤트 발생 불가"); + } + } + catch (Exception ex) + { + + } + } + + private void serialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + throw new NotImplementedException(); + } + + private void serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + throw new NotImplementedException(); + } + #endregion + + #region 명령어 처리 함수 + /// + /// 일반 제품정보 라벨 프린터 출력 함수 + /// + /// 제품명(한글) ex)"파인트" + /// 제품명(영문) ex)"Pint" + /// 중량 ex)"340g" + /// 점포명 ex)"양재사옥점" + public void PrintProductWeightInfo(string sProductNm_Ko, string sProductNm_En, string sWeight, string sStoreNm) + { + string[] sCommands = null; + try + { + if (m_cPosStatus.Base.OlePosLabelPrinterModel == PosConst.POS_DEVICE_LIST.LABEL_PRINTER.OLD_TYPE) + { + sCommands = new string[] { "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "NASC 949\r\n" // intermec 한글폰트 설정 + + , "FONT \"HYGothic-Medium\",12\r\n" + , "PRPOS 0,150\r\n" + //grayber@20180308 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sProductNm_Ko + " : " + sWeight + "\"\r\n" + , "PRTXT \"" + sProductNm_Ko + " : " + string.Format( "{0:#,###}",CmUtil.IntParse(sWeight)) + "\"\r\n" + //grayber@20180308 시리얼 포트 버퍼 초기화 end + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 0,110\r\n" + , "PRTXT \"" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\"\r\n" + + , "PRPOS 0,70\r\n" + //grayber@20180308 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sStoreNm + "\"\r\n" + , "PRTXT \"" + sStoreNm +" 점" + "\"\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + , "PF\r\n" }; + } + else if(m_cPosStatus.Base.OlePosLabelPrinterModel == PosConst.POS_DEVICE_LIST.LABEL_PRINTER.NEW_TYPE) + { + sCommands = new string[] { "SETUP \"MEDIA,MEDIA SIZE,LENGTH,1200\"\r\n" // 용지출력범위 조정 + , "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "NASC 949\r\n" // intermec 한글폰트 설정 + + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 110,290\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sStoreNm + "\"\r\n" + , "PRTXT \"" + sStoreNm + " 점" + "\"\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + + , "FONT \"HYGothic-Medium\",5\r\n" + , "PRPOS 110,270\r\n" + , "PRTXT \"" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\"\r\n" + + , "FONT \"HYGothic-Medium\",7\r\n" + , "PRPOS 70,50\r\n" + , "PRTXT \"" + sProductNm_En + "\"\r\n" + + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 70,20\r\n" + , "PRTXT \"" + sProductNm_Ko + "\"\r\n" + + , "FONT \"HYGothic-Medium\",14\r\n" + , "PRPOS 170,20\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sWeight + "\"\r\n" + , "PRTXT \"" + string.Format( "{0:#,###}",CmUtil.IntParse(sWeight)) + "\"\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + , "PF\r\n" }; + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Check label printer model configuration."); + return; + } + + if(sCommands != null) + WriteCommand(sCommands); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 02O(해피오더) 제품정보 라벨 프린터 출력 함수 + /// + /// 제품명 ex)"패밀리" + /// 주문번호 ex)"123456" + /// 중량 ex)"990g" + /// ex) "플레이버1/플레이버2/플레이버3" + /// ex) "플레이버4/플레이버5/플레이버6" + /// 점포명 ex)"양재사옥" + /// 주문시간 ex)"2016-06-23 14:00:00" + /// 포장시간 ex)"2016-06-23 14:20:00" + public void PrintO2OProductInfo(string sProductNm, string sOrderNo, string sWeight, string sContent_1, string sContent_2, string sStoreNm, string sOrderYmdhms, string sPackingYmdhms) + { + string[] sCommands = null; + try + { + if (m_cPosStatus.Base.OlePosLabelPrinterModel == PosConst.POS_DEVICE_LIST.LABEL_PRINTER.OLD_TYPE) + { + sCommands = new string[] { "CLL\r\n" + , "NEW\r\n" + , "CLIP ON\r\n" + , "FONT \"HYGothic-Medium\",12\r\n" + , "NASC 949\r\n" + + , "PRPOS 0,190\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sProductNm + " / " + sWeight + " (" + sOrderNo + ")\"\r\n" + , "PRTXT \"" + sProductNm + " / " + string.Format( "{0:#,###}", CmUtil.IntParse( sWeight)) + " (" + sOrderNo + ")\"\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + , "FONT \"HYGothic-Medium\",9\r\n" + + , "PRPOS 0,150\r\n" + , "PRTXT \"" + sContent_1 + "\"\r\n" + + , "PRPOS 0,110\r\n" + , "PRTXT \"" + sContent_2 + "\"\r\n" + + , "PRPOS 0,50\r\n" + , "PRTXT \"주문 " + sOrderYmdhms + "\"\r\n" + + , "PRPOS 0,10\r\n" + , "PRTXT \"포장 " + sPackingYmdhms + "\"\r\n" + , "PF\r\n" }; + } + else if (m_cPosStatus.Base.OlePosLabelPrinterModel == PosConst.POS_DEVICE_LIST.LABEL_PRINTER.NEW_TYPE) + { + sCommands = new string[] { "SETUP \"MEDIA,MEDIA SIZE,Length,1200\"\r\n" // 라벨프린터 용지범위 수정 + , "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "NASC 949\r\n" // intermec 한글폰트 설정 + + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 110,290\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sStoreNm + "\"\r\n" + , "PRTXT \"" + sStoreNm + " 점" + "\"\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + + , "FONT \"HYGothic-Medium\",5\r\n" + , "PRPOS 90,270\r\n" + , "PRTXT \"주문 " + sOrderYmdhms + "\"\r\n" + + , "PRPOS 90,250\r\n" + , "PRTXT \"포장 " + sPackingYmdhms + "\"\r\n" + + , "FONT \"HYGothic-Medium\",9\r\n" + , "PRPOS 60,200\r\n" + , "PRTXT \"" + sProductNm + "(" + sOrderNo + ")" + "\"\r\n" + + , "FONT \"HYGothic-Medium\",8\r\n" + , "PRPOS 60,170\r\n" + , "PRTXT \"" + sContent_1 + "\"\r\n" + + , "PRPOS 60,150\r\n" + , "PRTXT \"" + sContent_2 + "\"\r\n" + + , "FONT \"HYGothic-Medium\",14\r\n" + , "PRPOS 200,20\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 start + //, "PRTXT \"" + sWeight + "\"\r\n" + , "PRTXT \"" + string.Format("{0:#,###}", CmUtil.IntParse(sWeight)) + "\"\r\n" + //grayber@20180308 라벨프린터 처리, 시리얼 포트 버퍼 초기화 end + , "PF\r\n" }; + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Check label printer model configuration."); + return; + } + + if (sCommands != null) + WriteCommand(sCommands); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// 바코드 출력 라벨 프린터 출력 함수 + /// + /// 제품명(한글) ex)"파인트" + /// 바코드 ex)"zxcgfdsgfhgsf" + /// 점포명 ex)"양재사옥점" + public void PrintProductBarCodeInfo(string sProductNm_Ko, string sBarcode_Data, string sStoreNm) + { + string[] sCommands = null; + try + { + if (m_cPosStatus.Base.OlePosLabelPrinterModel == PosConst.POS_DEVICE_LIST.LABEL_PRINTER.OLD_TYPE) + { + sCommands = new string[] { "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "CLIP ON\r\n" + , "BF ON\r\n" + , "PP 100,90\r\n" + , "BM 1\r\n" + , "BT \"CODE128\r\n" + , "BF \"Swiss 721 BT\",7\r\n" + , "PB \"" + sBarcode_Data + "\"\r\n" + , "FONT \"HYGothic-Medium\",10\r\n" + , "NASC 949\r\n" + , "PP 20,40\r\n" + , "PT \"" + sProductNm_Ko + "\"\r\n" + , "PF\r\n" }; + } + else if (m_cPosStatus.Base.OlePosLabelPrinterModel == PosConst.POS_DEVICE_LIST.LABEL_PRINTER.NEW_TYPE) + { + sCommands = new string[] { "SETUP \"MEDIA,MEDIA SIZE,LENGTH,1200\"\r\n" // 용지출력범위 조정 + , "CLL\r\n" // 메모리 클리어 + , "NEW\r\n" // 새로운 명령어 시작 + , "BF ON\r\n" + , "PP 90,150\r\n" + , "BH 50\r\n" + , "BM 1\r\n" + , "BT \"CODE128\r\n" + , "BF \"Swiss 721 BT\",7\r\n" + , "PB \"" + sBarcode_Data + "\"\r\n" + , "NASC 949\r\n" + , "FONT \"HYGothic-Medium\",9\r\n" + , "PP 130,290\r\n" + , "PT \"" + sStoreNm + "\" 점\r\n" + , "FONT \"HYGothic-Medium\",5\r\n" + , "PP 130,270\r\n" + , "PT \"시간" + System.DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "\"\r\n" + , "FONT \"HYGothic-Medium\",9\r\n" + , "PP 90,20\r\n" + , "PT \"" + sProductNm_Ko + "\"\r\n" + , "PF\r\n" }; + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Check label printer model configuration."); + return; + } + + if (sCommands != null) + WriteCommand(sCommands); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + /// + /// Write commands to port. + /// + /// + private void WriteCommand(string[] sCommands) + { + try + { + if(devStatus.LabelPrinter.Open) + { + foreach(string cmd in sCommands) + { + m_serialPort.Write(cmd); + } + } + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + } +} diff --git a/Agent/OLEDevice/DeviceLineDisplay.cs b/Agent/OLEDevice/DeviceLineDisplay.cs new file mode 100644 index 0000000..52811ee --- /dev/null +++ b/Agent/OLEDevice/DeviceLineDisplay.cs @@ -0,0 +1,308 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO.Ports; +using System.ComponentModel; +using System.Runtime.InteropServices; + +using Cosmos.Common; +using Cosmos.UserFrame; + +namespace Cosmos.OLEDevice +{ + /// + /// Line Display 제어 CLASS + /// + public class DeviceLineDisplay : ILineDisplayUs + { + #region VctCdpStdJo.dll 제어 함수 + [DllImport("VctCdpStdJo.dll")] + public static extern int CdpOpen(); + + [DllImport("VctCdpStdJo.dll")] + public static extern int CdpWrite(string sMsg, int iAmt); + + [DllImport("VctCdtpStdJo.dll")] + public static extern int CdpClose(); + #endregion + #region 클래스 변수 선언 + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + + public PosStatus m_cPosStatus = new PosStatus(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = new DeviceStatus(); + + /// + /// RS232통신을 위한 시리얼포트 객체 + /// + private SerialPort m_serialPort = null; + + //private BackgroundWorker bw = null; + #endregion 클래스 변수 선언 + + #region 생성자 / 초기화 + public DeviceLineDisplay() + { + try + { + m_cPosStatus = (PosStatus)StateObject.POS; + devStatus = (DeviceStatus)StateObject.DEVICE; + + DeviceStatusInit(); + //bw = new BackgroundWorker(); + } + catch(Exception ex) + { + + } + } + + private void DeviceStatusInit() + { + devStatus.LineDisplay.Open = false; + devStatus.LineDisplay.Status = string.Empty; + } + #endregion 생성자 / 초기화 + + #region OPEN / CLOSE 처리 + public bool OpenDevice(string sSerialPort, long lBaudrate) + { + bool bRet = false; + try + { + if (m_serialPort != null) + { + m_serialPort.Close(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + + if (m_serialPort == null) + { + m_serialPort = new SerialPort(); + if (m_serialPort == null) + { + devStatus.Scale.Open = false; + devStatus.Scale.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Scale.Status); + return bRet; + } + + m_serialPort.NewLine = "\r\n"; + m_serialPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + + m_serialPort.WriteBufferSize = 1024 * 1024; + m_serialPort.PortName = sSerialPort; + m_serialPort.BaudRate = (int)lBaudrate; + m_serialPort.ReadTimeout = 500; + m_serialPort.WriteTimeout = 2000; + + if(m_cPosStatus.Base.OleCdpModel == PosConst.POS_DEVICE_LIST.CDP._0_TOSHIBA) + { + m_serialPort.Parity = Parity.Odd; + m_serialPort.DataBits = 8; + m_serialPort.StopBits = StopBits.One; + m_serialPort.Handshake = Handshake.RequestToSend; + m_serialPort.RtsEnable = true; + m_serialPort.DtrEnable = true; + } + else + { + m_serialPort.Parity = Parity.None; + m_serialPort.DataBits = 8; + m_serialPort.StopBits = StopBits.One; + m_serialPort.Handshake = Handshake.None; + m_serialPort.RtsEnable = false; + m_serialPort.DtrEnable = false; + } + + m_serialPort.Open(); + if (m_serialPort.IsOpen == false) + { + devStatus.LineDisplay.Open = false; + devStatus.LineDisplay.Status = "SERIAL PORT OPEN ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Scale.Status); + return bRet; + } + + devStatus.LineDisplay.Open = true; + devStatus.LineDisplay.Status = "SUCCESS"; + + bRet = true; + } + else + { + devStatus.LineDisplay.Open = false; + devStatus.LineDisplay.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Scale.Status); + return bRet; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRet; + } + + + public bool CloseDevice() + { + bool bRet = false; + + try + { + if (m_serialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_serialPort == null)"); + return bRet; + } + + m_serialPort.Close(); + bRet = true; + m_serialPort = null; + devStatus.LineDisplay.Status = "CLOSE"; + devStatus.LineDisplay.Open = false; + } + catch (Exception ex) + { + devStatus.LineDisplay.Status = "CLOSE EXCEPTION"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRet; + } + #endregion OPEN / CLOSE 처리 + + #region LineDisplay 제어 + public bool DisplayText(int iAmt, string sMsg) + { + bool bRet = false; + + try + { + DisplayClear(); + + if (m_cPosStatus.Base.OleCdpModel == PosConst.POS_DEVICE_LIST.CDP._0_TOSHIBA) + { + TransmitCommand(PosConst.CDP_COMMAND.LINE_START_1); + TransmitCommand(Convert.ToString(iAmt)); + TransmitCommand(PosConst.CDP_COMMAND.LINE_START_2); + TransmitCommand(sMsg); + } + else if (m_cPosStatus.Base.OleCdpModel == PosConst.POS_DEVICE_LIST.CDP._1_XN) + { + TransmitCommand(string.Format("{0, -20}", Convert.ToString(iAmt))); + TransmitCommand(string.Format("{0, -20}", sMsg)); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRet; + } + + public bool DisplayClear() + { + bool bRet = false; + + try + { + if(m_cPosStatus.Base.OleCdpModel == PosConst.POS_DEVICE_LIST.CDP._0_TOSHIBA) + { + TransmitCommand(PosConst.CDP_COMMAND.LINE_CLEAR); + } + else if(m_cPosStatus.Base.OleCdpModel == PosConst.POS_DEVICE_LIST.CDP._1_XN) + { + TransmitCommand(PosConst.CDP_COMMAND.LINE_CLEAR_XN); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRet; + } + #endregion + + private void TransmitCommand(byte[] aCmd, bool bSleepOn = true) + { + if (m_serialPort.IsOpen == true) + { + int iOffset = 0; + //int iReadBuf = 2048; + int iReadBuf = m_serialPort.WriteBufferSize; + + while (true) + { + if (iOffset >= aCmd.Length) + { + break; + } + if (iReadBuf + iOffset > aCmd.Length) + { + iReadBuf = aCmd.Length - iOffset; + } + m_serialPort.Write(aCmd, iOffset, iReadBuf); + + iOffset += iReadBuf; + System.Threading.Thread.Sleep(10); + } + //m_serialPort.Write(Encoding.Default.GetString(aCmd, 0, aCmd.Length)); + + if (bSleepOn == true) System.Threading.Thread.Sleep(30); + } + } + + private void TransmitCommand(string sMsg, bool bSleepOn = true) + { + if(m_serialPort.IsOpen == true) + { + m_serialPort.WriteLine(sMsg); + + if (bSleepOn == true) System.Threading.Thread.Sleep(30); + } + } + } +} diff --git a/Agent/OLEDevice/DeviceMsr.cs b/Agent/OLEDevice/DeviceMsr.cs new file mode 100644 index 0000000..14a38c8 --- /dev/null +++ b/Agent/OLEDevice/DeviceMsr.cs @@ -0,0 +1,184 @@ +using System; +using System.Text; +using System.Threading; + +using Cosmos.UserFrame; +using Cosmos.Common; + +//using Microsoft.PointOfService; +using System.ComponentModel; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : Msr 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + /// + /// Msr 제어 CLASS + /// + public class DeviceMsr : IMsrUs + { + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = new DeviceStatus(); + ///// + ///// Pos for .Net Msr 객체 + ///// + //private Msr msr = null; + ///// + ///// Pos for .Net의 Device 정보를 가져오기 위한 객체 + ///// + //private PosExplorer posExplorer = null; + + + private string m_sTrackData1 = string.Empty; + private string m_sTrackData2 = string.Empty; + private string m_sTrackData3 = string.Empty; + + /// + /// 이벤트 비동기 발생을 위한 대리자 + /// + private BackgroundWorker bw = null; + + private int m_nErrorCount = 0; + + /// + /// 생성자 + /// + public DeviceMsr() + { + try + { + //posExplorer = new PosExplorer(); + devStatus = (DeviceStatus)StateObject.DEVICE; + DeviceStatusInit(); + bw = new BackgroundWorker(); + + m_nErrorCount = 0; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.DeviceMsr()", ex.Message); + } + } + + /// + /// 장비의 Event 발생 Enable 상태 설정 + /// True:사용가능, False:사용불가능 + /// + public bool DeviceEnabled + { + get + { + return false; + } + set + { + try + { + bool bRet = SetDeviceEnabled(value); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceMsr.DeviceEnabled()", ex.Message); + } + } + } + + /// + /// 장비의 Event 발생 Enable 상태 설정 + /// True:사용가능, False:사용불가능 + /// + private bool SetDeviceEnabled(bool bEnable) + { + bool bRet = false; + + try + { + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceMsr.SetDeviceEnabled()", ex.Message); + devStatus.Msr.Status = "DEVICE ENABLED FAIL"; + } + return bRet; + } + + /// + /// 디바이스 Open시 처리함수 + /// + /// 장비종류(ex- "Msr","PosPrinter","Scanner"...) + /// 레지스트리 항목(ex- "DefaultMsr","DefaultPosPrinter","DefaultScanner"...) + /// + public bool OpenDevice(string sDeviceType, string sLogicalName) + { + bool bRet = false; + + try + { + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceMsr.OpenDevice()", ex.Message); + devStatus.Msr.Open = false; + devStatus.Msr.Status = "DEVICE OPEN EXCEPTION"; + return bRet; + } + + return bRet; + } + + + + + /// + /// Msr StateServer 정보 초기화 + /// + private void DeviceStatusInit() + { + devStatus.Msr.Track1Data = ""; + devStatus.Msr.Track2Data = ""; + devStatus.Msr.Track3Data = ""; + devStatus.Msr.DeviceName = ""; + devStatus.Msr.Status = ""; + devStatus.Msr.Open = false; + } + + /// + /// 디바이스 Close시 처리함수 + /// + /// + public bool CloseDevice() + { + bool bRet = false; + + try + { + + + devStatus.Msr.Status = "CLOSE"; + devStatus.Msr.Open = false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceMsr.CloseDevice()", ex.Message); + devStatus.Msr.Status = "CLOSE EXCEPTION"; + } + return bRet; + } + } +} diff --git a/Agent/OLEDevice/DeviceOurHome.cs b/Agent/OLEDevice/DeviceOurHome.cs new file mode 100644 index 0000000..fecf110 --- /dev/null +++ b/Agent/OLEDevice/DeviceOurHome.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Cosmos.Common; +using Cosmos.UserFrame; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : 아워홈 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + public class DeviceOurHome : IOurHome + { + #region 변수 선언 + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// 아워홈 OCX form 객체 + /// + frmDeviceOurHome frmOurHome = null; + #endregion + + #region 생성자 + /// + /// 생성자 + /// + public DeviceOurHome() + { + try + { + frmOurHome = new frmDeviceOurHome(); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region 고객정보 조회 + /// + /// 고객정보 조회 + /// + /// + /// + /// + /// + public string Rf_EmpInfo(string sStoreCD, string sRFNo, string sRFType) + { + string sResult = "9^Not Connect DataBase!!!"; + try + { + sResult = frmOurHome.Rf_EmpInfo(sStoreCD, sRFNo, sRFType); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sResult; + } + #endregion + + #region 결제 + /// + /// 결제 + /// + /// + /// + /// + /// + public string Rf_TransData(string sStoreCD, string sTranData, string sRfType) + { + string sResult = "9^Not Connect DataBase!!!"; + try + { + sResult = frmOurHome.Rf_TransData(sStoreCD, sTranData, sRfType); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sResult; + } + #endregion + } +} diff --git a/Agent/OLEDevice/DevicePosPrinter.cs b/Agent/OLEDevice/DevicePosPrinter.cs new file mode 100644 index 0000000..c08d349 --- /dev/null +++ b/Agent/OLEDevice/DevicePosPrinter.cs @@ -0,0 +1,5701 @@ +//#20180329 프린터 간헐적 미출력 증상 수정 start +//로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP +#define PRT_ERROR //적용시 주석 해제 +//출력 할때 마다 open, close 하는 부분 한번만 하도록 수정 +//#define PRT_OPENCLOSE //적용시 주석 해제 +//전체 버퍼 한번에 출력 하도록 수정 +//#define PRT_ALLWRITE //적용시 주석 해제 +//프린터 ErrorReceived +//#define PRT_RECVERR //적용시 주석 해제 +//Printer Thread Event Wait +//#define PRT_WAITEVENT //적용시 주석 해제 +//#20180329 프린터 간헐적 미출력 증상 수정 end + +//20180611 프린터 미출력 개선 02Printer.exe start +//O2Printer.exe 통해 프린터 출력 +#define PRT_O2PRINTER // 적용시 주석 해제 +//20180611 프린터 미출력 개선 02Printer.exe end + +using System; +using System.IO; +using System.IO.Ports; +using System.ComponentModel; + +using Cosmos.UserFrame; +using Cosmos.BaseFrame; +using Cosmos.Common; +using Cosmos.CommonManager; + +using Microsoft.PointOfService; +using System.Drawing; +using System.Text; +using System.Collections; +using System.Runtime.InteropServices; +using System.Threading; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : PosPrinter 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + + /// + /// PosPrinter 제어 CLASS + /// + public class DevicePosPrinter : IPosPrinterUs + { + + public enum Printer_Interface + { + _USB_ = 0, + _COM_, + }; + + /// + /// + /// + public enum Barcode_Type + { + _UPC_A_, + _UPC_E_, + _JAN13_EAN13_, + _JAN8_EAN8_, + _CODE39_, + _ITF25_, + _CODABAR_, + _CODE93_, //1~255byte + _CODE128_ //2~255byte + }; + /// + /// + /// + public enum AlignmentR { _Align_left_, _Center_, _Align_right } + + /// + /// 영수증 프린터 오픈 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Setup_Printer(Printer_Interface nType, int dirverNum, int nbps); + + /// + /// 영수증 프린터 초기화 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Printer_DeInit(); + + /// + /// 영수증 프린터 출력 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Print_CharW([MarshalAs(UnmanagedType.LPWStr)] string printData); + + /// + /// 영수증 프린터 enum 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Enum_Printer(Printer_Interface nType, int[] list); + + /// + /// 영수증 프린터 용지 자르기 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Part_Cut(); + + /// + /// 영수증 프린터 용지 자르기(전체) 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Full_Cut(); + + /// + /// 영수증 프린터 마지막 라인 추가 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Enter_With_nLine(int lineCount); + + /// + /// 영수증 프린터 라인 볼드 처리 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern int REXOD_Bold_Word(bool bold); + + + /// + /// 영수증 프린터 라인 오른쪽으로 이동 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Set_This_Line_Start_Position(int leftMargin); + + + /// + /// 영수증 프린터 바코드 높이 조절 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Set_Barcode_Height(byte height); + + /// + /// 영수증 프린터 바코드 출력 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Print_Barcode(Barcode_Type BarcodeType, byte[] pDate, int DateNum); + + /// + /// 영수증 프린터 바코드 출력 함수 + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Select_Barcode_Alignment(AlignmentR newAlignment); + + /// + /// + /// + /// + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Select_Alignment(AlignmentR newAlignment); + + /// + /// 영수증 프린터 이미지 출력 함수 + /// + /// + /// + [DllImport("REXOD_SDK.dll")] + //public static extern bool REXOD_Print_Bitmap(IntPtr bitmapImage); + public static extern bool REXOD_Print_Bitmap(IntPtr bitmapImage); + + + /// + /// 영수증 프린터 폰트 2배 + /// + /// + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Double_Height(bool state); + + /// + /// 영수증 프린터 폰트 2배 + /// + /// + /// + [DllImport("REXOD_SDK.dll")] + public static extern bool REXOD_Double_Width(bool state); + + + private enum BarcodeType { CODE93, CODE128 }; + private enum Alignment { CENTER, LEFT, RIGHT }; + private enum HRIPosition { NO_PRINT, ABOVE, BELOW, ABOVE_BELOW }; + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = null; + public PosStatus m_cPosStatus = null; + + /// + /// Posfor.Net PosPrinter 객체 + /// + private PosPrinter posprinter = null; + /// + /// Pos for .Net의 Device 정보를 가져오기 위한 객체 + /// + private PosExplorer posExplorer = null; + + /// + /// StatusUpdateEvent의 Status 정보 저장 + /// + private int m_sUpdateStatus = 0; + ///// + ///// Bitmap 상단 Logo 설정 성공 여부 플래그 + ///// true:SetBitmap성공, false:SetBitmap실패 + ///// + //private bool SetTopLogo = false; + ///// + ///// Bitmap 하단 Logo 설정 성공 여부 플래그 + ///// true:SetBitmap성공, false:SetBitmap실패 + ///// + //private bool SetBottomLogo = false; + ///// + ///// ErrorEvent의 Error응답 정보 저장 + ///// + //private ErrorResponse m_sErrorResponse; + + /// + /// RS232통신을 위한 시리얼포트 객체 + /// + private SerialPort m_serialPort = null; + + private BackgroundWorker bw = null; + + // Printer Status/Error 응답 이벤트 + + private string DELIMETER = "^:|"; + + private bool m_bFreeEvents; + public bool FreeEvents + { + get { return m_bFreeEvents; } + set { m_bFreeEvents = value; } + } + + /// + /// Printer Daemon 작동 여부 + /// + private bool m_PrinterDaemonRunning = true; + /// + /// Printer Daemon Thread + /// + private Thread m_tPrtDaemon = null; + /// + /// Thread Waiting Time(스레드 대기시간) + /// + private int m_ThreadSleepTerm = 1000; + + private static ArrayList m_PrtBuffer; + + private const string CMD_OPEN_CASHDRAWER = "_OPEN_A_CASHDRAWER_"; + + //20180611 프린터 미출력 개선 02Printer.exe start + //변경 + #if(PRT_O2PRINTER) + int lRecvLen = 20; + byte[] bytRecvBuff = new byte[1024]; + int lTimeout = 1000; + private TcpSocket m_cPrtSocket = null; + #endif + + //20180611 프린터 미출력 개선 02Printer.exe end + + #if(PRT_WAITEVENT) + private AutoResetEvent m_AutoResetEvent = null; + #endif + + /// + /// 생성자 + /// + public DevicePosPrinter() + { + try + { + try + { + + #if(PRT_WAITEVENT) + // TEST::Printer Thread Event Wait + m_AutoResetEvent = new AutoResetEvent(false); + #endif + + posExplorer = new PosExplorer(); + } + catch (Exception ex) { } + devStatus = (DeviceStatus)StateObject.DEVICE; + m_cPosStatus = (PosStatus)StateObject.POS; + DeviceStatusInit(); + bw = new BackgroundWorker(); + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + /// + /// Printer StateServer 정보 초기화 + /// + private void DeviceStatusInit() + { + devStatus.Printer.TopLogoFileName = ""; + devStatus.Printer.BottomLogoFileName = ""; + devStatus.Printer.DeviceName = ""; + devStatus.Printer.Status = ""; + devStatus.Printer.ErrorStatus = ""; + devStatus.Printer.Open = false; + } + + #region PrinterDaemon Start/Stop + /// + /// Printer Daemon Start + /// + public void StartPrinterDaemon() + { + try + { + m_PrtBuffer = new ArrayList(); + + m_tPrtDaemon = new Thread(new ThreadStart(ThreadPrtDaemonRun)); + m_PrinterDaemonRunning = true; + m_tPrtDaemon.Start(); + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + /// + /// Printer Daemon Stop + /// + public void StopPrinterDaemon() + { + try + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Stop!!!"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Stop!!!"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Stop!!!"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + // 통신서버 Send Terminated (SC Send 종료) + m_PrinterDaemonRunning = false; + + #if(PRT_WAITEVENT) + m_AutoResetEvent.Set(); + #endif + + int count = 0; + //while (count < 10) + while (count < 5) + { + if (m_tPrtDaemon != null && m_tPrtDaemon.IsAlive) m_PrinterDaemonRunning = false; + else break; + + count++; + Thread.Sleep(300); + } + + if (count >= 10) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force Printer Daemon Stop!!!"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force Printer Daemon Stop!!!"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Force Printer Daemon Stop!!!"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + m_tPrtDaemon.Abort(); + } + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + #endregion PrinterThread Start/Stop + + #region Printer Buffer 관련 + /// + /// Printer Buffer 초기화 + /// + public void PrinterBufferClear() + { + try + { + m_PrtBuffer.Clear(); + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :"+ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :"+ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + public ArrayList GetPrinterBuffer() + { + return m_PrtBuffer; + } + + public void AddToPrinterBuffer(byte[] arData) + { + try + { + m_PrtBuffer.Add(arData); + + #if(PRT_WAITEVENT) + m_AutoResetEvent.Set(); + #endif + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :"+ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :"+ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + } + } + #endregion + + #region Printer Daemon Main + /// + /// Printer Daemon Run + /// + private void ThreadPrtDaemonRun() + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //출력 할때 마다 open, close 하는 부분 한번만 하도록 수정 + #if(PRT_OPENCLOSE) //프린터 포트 동작 변경시 + bool bClsRet = false; + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + bool bRet = false; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Run!!"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Run!!"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Run!!"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + while(m_PrinterDaemonRunning) + { + try + { + #if(PRT_WAITEVENT) + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶▶ Printer Device Thread Event WaitOne "); + m_AutoResetEvent.WaitOne(); + m_AutoResetEvent.Reset(); + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "▶▶▶ Printer Device Thread Event Run "); + #endif + + ArrayList alBuffer = GetPrinterBuffer(); + + if(alBuffer.Count > 0) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Buffer Count : " + alBuffer.Count); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Buffer Count : " + alBuffer.Count); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Buffer Count : " + alBuffer.Count); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + bRet = OpenDevice(PosConst.OPOS_DEVICE.POSPRINTER, PosConst.OPOS_LDN.POSPRINTER); + if( bRet == false) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to open printer device ..."); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to open printer device ..."); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to open printer device ..."); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + } + System.Threading.Thread.Sleep(100); + + if (devStatus.Printer.Open == true) + { + //MemoryStream stream = new MemoryStream(); + //BinaryWriter bw = new BinaryWriter(stream); + + bool bCheckPrinter = true; + + //#20171212 프린터 상태 체크 여부 추가 start + //0: 체크, 1: 체크안함 + //기존 + /* + if (m_cPosStatus.Base.OlePosPrinterModel == PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON) + { + bCheckPrinter = CheckPrinter(); + } + */ + //변경 + if (m_cPosStatus.Base.OlePosPrinterModel == PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON && + m_cPosStatus.Base.OlePosPrinterCheckYn == "0") + { + bCheckPrinter = CheckPrinter(); + } + //#20171212 프린터 상태 체크 여부 추가 end + + //if (CheckPrinter() == true) + if(bCheckPrinter == false) + { + //프린터 상태 체크 실패 시에도 Port Close(20170508-조충연K) + WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0691)); + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "CheckPrinter() Failed..."); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "CheckPrinter() Failed..."); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "CheckPrinter() Failed..."); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + } + //else + //{ + //헬스체크 후 응답값과 상관없이 프린트 출력업무 수행. + for (int nBufCnt = 0; nBufCnt < alBuffer.Count; nBufCnt++) + { + if (devStatus.Printer.Open == false) break; + byte[] arPrtData = (byte[])alBuffer[nBufCnt]; + + //#20180123 프린터 다운 현상 관련 로그 추가 start + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter nBufCnt : " + nBufCnt); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter nBufCnt : " + nBufCnt); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter nBufCnt : " + nBufCnt); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + //#20180123 프린터 다운 현상 관련 로그 추가 end + + if (Encoding.UTF8.GetString(arPrtData).Equals(CMD_OPEN_CASHDRAWER) == true) + { + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22;"7:4610_1NR" 모델 추가, 처리는 _1_EPSON 과 동일;girak.kim + default: + //bw.Write(PosConst.ESCP_COMMAND.OPEN_CASHDRAWER); + TransmitCommand(PosConst.ESCP_COMMAND.OPEN_CASHDRAWER); + break; + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + //bw.Write(PosConst.ESCP_COMMAND.OPEN_CASHDRAWER_FOR_TOSHIBA); + TransmitCommand(PosConst.ESCP_COMMAND.OPEN_CASHDRAWER_FOR_TOSHIBA); + break; + } + } + else + { + //bw.Write(arPrtData); + //bw.Write(string.Format("{0}{1}", (char)13, (char)10)); + TransmitCommand(arPrtData); + } + } + //} + + + //bw.Flush(); + //TransmitCommand(stream.ToArray()); + + PrinterBufferClear(); + } + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //출력 할때 마다 open, close 하는 부분 한번만 하도록 수정 + //기존 + /* + bRet = CloseDevice(); + if(bRet == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to close printer device ..."); + } + */ + //변경 + #if(PRT_OPENCLOSE) //프린터 포트 동작 변경시 + #else + bRet = CloseDevice(); + if(bRet == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to close printer device ..."); + } + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + #if(PRT_WAITEVENT) + #else + int nNowSleepTerm = 0; + while (nNowSleepTerm < m_ThreadSleepTerm) + { + if (m_PrinterDaemonRunning == false) break; + Thread.Sleep(100); + nNowSleepTerm += 100; + } + #endif + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Exception : " + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Exception : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Exception : " + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Exit!!"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Exit!!"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Printer Daemon Exit!!"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //출력 할때 마다 open, close 하는 부분 한번만 하도록 수정 + #if(PRT_OPENCLOSE) //프린터 포트 동작 변경시 + bClsRet = CloseDevice(); + if (bClsRet == false) + { + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Failed to close printer device ..."); + } + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + } + #endregion + + #region Convert Graysacle Image + [DllImport("gdi32.dll")] + public static extern bool DeleteObject(IntPtr hObject); + + [DllImport("user32.dll")] + public static extern IntPtr GetDC(IntPtr hwnd); + + [DllImport("gdi32.dll")] + public static extern IntPtr CreateCompatibleDC(IntPtr hdc); + + [DllImport("user32.dll")] + public static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc); + + [DllImport("gdi32.dll")] + public static extern int DeleteDC(IntPtr hdc); + + [DllImport("gdi32.dll")] + public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj); + + [DllImport("gdi32.dll")] + public static extern int BitBlt(IntPtr hdcDst, int xDst, int yDst, int w, int h, IntPtr hdcSrc, int xSrc, int ySrc, int rop); + static int SRCCOPY = 0x00CC0020; + + [DllImport("gdi32.dll")] + static extern IntPtr CreateDIBSection(IntPtr hdc, ref BITMAPINFO bmi, uint Usage, out IntPtr bits, IntPtr hSection, uint dwOffset); + + static uint BI_RGB = 0; + static uint DIB_RGB_COLORS = 0; + [StructLayout(LayoutKind.Sequential)] + private struct BITMAPINFO + { + public uint biSize; + public int biWidth, biHeight; + public short biPlanes, biBitCount; + public uint biCompression, biSizeImage; + public int biXPelsPerMeter, biYPelsPerMeter; + public uint biClrUsed, biClrImportant; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] + public uint[] cols; + } + #endregion + + #region OPEN/RESET/CLOSE + /// + /// 디바이스 Open시 처리함수 + /// + /// 장비종류(ex- "Msr","PosPrinter","Scanner"...) + /// 레지스트리 항목(ex- "DefaultMsr","DefaultPosPrinter","DefaultScanner"...) + /// + public bool OpenDevice(string sDeviceType, string sLogicalName) + { + bool bRet = false; + + try + { + if (devStatus.Printer.UseYn == false) + { + return bRet; + } + + switch(m_cPosStatus.Base.OlePosPrinterController) + { + case PosConst.POS_DEVICE_CONTROLLER.OPOS: + bRet = OpenDeviceByOPOS(sDeviceType, sLogicalName); + break; + case PosConst.POS_DEVICE_CONTROLLER.RS232: + bRet = OpenDeviceByRS232(m_cPosStatus.Base.OlePosPrinterSerialPortNumber, m_cPosStatus.Base.OlePosPrinterSerialBaudRate); + break; + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return bRet; + } + /// + /// OPOS사용 디바이스 Open시 처리함수 + /// + /// 장비종류(ex- "Msr","PosPrinter","Scanner"...) + /// 레지스트리 항목(ex- "DefaultMsr","DefaultPosPrinter","DefaultScanner"...) + /// + public bool OpenDeviceByOPOS(string sDeviceType, string sLogicalName) + { + bool bRet = false; + //SetTopLogo = false; + //SetBottomLogo = false; + try + { + if(devStatus.Printer.Open == true) + { + return true; + } + + DeviceInfo devinfo = null; + + if (sDeviceType == DeviceType.PosPrinter && sLogicalName == PosConst.OPOS_LDN.POSPRINTER) + devinfo = posExplorer.GetDevice(DeviceType.PosPrinter, PosConst.OPOS_LDN.POSPRINTER); + else + { + devStatus.Printer.Open = false; + devStatus.Printer.Status = "DEVICE INFO ERROR"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + return bRet; + } + + if (devinfo == null) + { + devStatus.Printer.Open = false; + devStatus.Printer.Status = "DEVICE INFO ERROR"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + posprinter = (PosPrinter)posExplorer.CreateInstance(devinfo); + + if (posprinter != null) + { + posprinter.StatusUpdateEvent += new StatusUpdateEventHandler(Printer_StatusUpdateEvent); + posprinter.ErrorEvent += new DeviceErrorEventHandler(Printer_ErrorEvent); + + try + { + posprinter.Open(); + } + catch (Exception ex) + { + devStatus.Printer.Status = "OPEN FAIL"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "Exception :" + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + try + { + posprinter.Claim(1000); + } + catch (Exception ex) + { + devStatus.Printer.Status = "CLAIM FAIL"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "Exception :" + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + try + { + posprinter.DeviceEnabled = true; + } + catch (Exception ex) + { + devStatus.Printer.Status = "DEVICE ENABLED FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "Exception :" + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + try + { + posprinter.AsyncMode = true; + posprinter.RecLineChars = 42; + posprinter.RecLetterQuality = true; + posprinter.RecLineSpacing = 20; + } + catch (Exception ex) + { + devStatus.Printer.Status = "RecLetterQuality 설정 Fail"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "Exception :" + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + devStatus.Printer.DeviceName = devinfo.ServiceObjectName; + devStatus.Printer.Open = true; + devStatus.Printer.Status = "SUCCESS"; + devStatus.Printer.ErrorStatus = "OK"; + + bw.DoWork += OlePosHandler; + bRet = true; + } + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "Exception :" + "DevicePosPrinter.OpenDeviceByOPOS()", ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.OpenDeviceByOPOS()", ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + devStatus.Printer.Open = false; + devStatus.Printer.Status = "DEVICE OPEN EXCEPTION"; + bRet = false; + } + return bRet; + } + /// + /// RS232사용 디바이스 Open시 처리함수 + /// + /// SerialPort 번호 + /// Baudrate + /// + public bool OpenDeviceByRS232(string sSerialPort, long lBaudrate) + { + bool bRet = false; + + try + { + //20180611 프린터 미출력 개선 02Printer.exe start + //변경 + #if(PRT_O2PRINTER) + int iRet = OpenPrtTcpDevice("127.0.0.1", 9110); + if (iRet == UserCom.OK) + { + devStatus.Printer.Open = true; + devStatus.Printer.Status = "SUCCESS"; + devStatus.Printer.ErrorStatus = "OK"; + + ResetDevice(); + + bRet = true; + } + else + { + devStatus.Printer.Open = false; + devStatus.Printer.Status = "TCP CONNECT ERROR"; + bRet = false; + } + + return bRet; + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //출력 할때 마다 open, close 하는 부분 한번만 하도록 수정 + //기존 + /* + if (m_serialPort != null) + { + // add by wani(20170914) - Serial Port Close 보완(Buffer 초기화 추가) + m_serialPort.DiscardInBuffer(); + m_serialPort.DiscardOutBuffer(); + m_serialPort.Close(); + m_serialPort.Dispose(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + */ + //변경 + #if(PRT_OPENCLOSE) //프린터 포트 동작 변경시 + if (m_serialPort != null) + { + if (m_serialPort.IsOpen == false) + { + // add by wani(20170914) - Serial Port Close 보완(Buffer 초기화 추가) + m_serialPort.DiscardInBuffer(); + m_serialPort.DiscardOutBuffer(); + m_serialPort.Close(); + m_serialPort.Dispose(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + else + { + bRet = true; + return bRet; + } + } + #else + if (m_serialPort != null) + { + // add by wani(20170914) - Serial Port Close 보완(Buffer 초기화 추가) + m_serialPort.DiscardInBuffer(); + m_serialPort.DiscardOutBuffer(); + m_serialPort.Close(); + m_serialPort.Dispose(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + if( m_serialPort == null ) + { + //m_serialPort = new SerialPort(m_cPosStatus.Base.OlePosPrinterSerialPortNumber, (int)m_cPosStatus.Base.OlePosPrinterSerialBaudRate); + m_serialPort = new SerialPort(); + if (m_serialPort == null) + { + devStatus.Printer.Open = false; + devStatus.Printer.Status = "SERIAL PORT ERROR"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + return bRet; + } + + //m_serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + //m_serialPort.PinChanged += new SerialPinChangedEventHandler(serialPort_PinChanged); + //m_serialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + + m_serialPort.NewLine = "\r\n"; + m_serialPort.Encoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987"); + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //전체 버퍼 한번에 출력 하도록 수정 + #if(PRT_ALLWRITE) //프린터 포트 동작 변경시 + m_serialPort.WriteBufferSize = 1024 * 10; + #else + m_serialPort.WriteBufferSize = 1024 * 3; + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + m_serialPort.PortName = sSerialPort; + m_serialPort.BaudRate = (int)lBaudrate; + m_serialPort.DataBits = 8; + m_serialPort.StopBits = StopBits.One; + m_serialPort.Parity = Parity.None; + + //#20170808 프린터 출력 안되는 현상 수정 start + //특정 케이블에 따라 출력이 안되는 현상이 있음 전부 Handshake.none로 처리 + //적용시 변경 소스로 적용 + //기존 + /* + if (m_cPosStatus.Base.OlePosPrinterModel == PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C) + { + m_serialPort.Handshake = Handshake.None; + } + else + { + m_serialPort.Handshake = Handshake.RequestToSend; + } + */ + //변경 + m_serialPort.Handshake = Handshake.None; + //#20170808 프린터 출력 안되는 현상 수정 end + + // 프린터 NV메모리에 upload 하기 위해 WriteTimeout 값이 10초 이상 되어야 함 + m_serialPort.ReadTimeout = 10000; + m_serialPort.WriteTimeout = 10000; + + m_serialPort.RtsEnable = true; + m_serialPort.DtrEnable = true; + FreeEvents = false; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "[1] Before opening port"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "[1] Before opening port"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "[1] Before opening port"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + //#20180329 프린터 간헐적 미출력 증상 수정 start + #if(PRT_ERROR) //프린터 포트 동작 변경시 + m_serialPort.Close(); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + m_serialPort.Open(); + + //#20180316 프린터 출력 안되는 증상 - 포트 오픈, 리셋 후 sleep 추가 start + //#20180402 프린터 출력 안되는 점포 증가로 해당 sleep 소스 주석 start + //System.Threading.Thread.Sleep(100); + //#20180402 프린터 출력 안되는 점포 증가로 해당 sleep 소스 주석 end + //#20180316 프린터 출력 안되는 증상 - 포트 오픈, 리셋 후 sleep 추가 end + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "[2] After opening port"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "[2] After opening port"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "[2] After opening port"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + + if (m_serialPort.IsOpen == false) + { + devStatus.Printer.Open = false; + devStatus.Printer.Status = "SERIAL PORT OPEN ERROR"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + ResetDevice(); + + devStatus.Printer.Open = true; + devStatus.Printer.Status = "SUCCESS"; + devStatus.Printer.ErrorStatus = "OK"; + + bw.DoWork += OlePosHandler; + + bRet = true; + } + else + { + devStatus.Printer.Open = false; + devStatus.Printer.Status = "SERIAL PORT ERROR"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : "+ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : "+ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return bRet; + } + /// + /// 디바이스 Rest시 처리함수 + /// + public void ResetDevice() + { + try + { + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22;"7:4610_1NR" 모델 추가, 처리는 _1_EPSON 과 동일;girak.kim + TransmitCommand(PosConst.ESCP_COMMAND.INITIALIZE_PRINTER); + break; + case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_IBM: + + //20180611 프린터 미출력 개선 02Printer.exe start + //변경 + #if(PRT_O2PRINTER) + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x31, + (byte)0x1B, (byte)0x20, (byte)0x03, + (byte)0x1B, (byte)0x33, (byte)10, // 라인간격 + (byte)0x1B, (byte)0x25, (byte)0x00, // Double Byte Mode + (byte)0x1B, (byte)0x20, (byte)3, // 글자간 간격 + (byte)0x1B, (byte)0x54, (byte)6 }); + //기존 + #else + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x31 }); + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x20, (byte)0x03 }); // 글자간 간격 + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x33, (byte)10 }); // 라인간격 + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x25, (byte)0x00 }); // Double Byte Mode + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x20, (byte)3 }); // + TransmitCommand(new byte[] { (byte)0x1B, (byte)0x54, (byte)6 }); + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + break; + default: + break; + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + /// A + /// 디바이스 Close시 처리함수 + /// + /// + public bool CloseDevice() + { + bool bRet = false; + + try + { + switch(m_cPosStatus.Base.OlePosPrinterController) + { + case PosConst.POS_DEVICE_CONTROLLER.OPOS: + bRet = CloseDeviceByOPOS(); + bRet = true; + break; + case PosConst.POS_DEVICE_CONTROLLER.RS232: + bRet = CloseDeviceByRS232(); + break; + } + } + catch (Exception ex) + { + devStatus.Printer.Status = "CLOSE EXCEPTION"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + return bRet; + } + /// + /// OPOS사용 디바이스 Close시 처리함수 + /// + public bool CloseDeviceByOPOS() + { + bool bRet = false; + + try + { + if (posprinter == null) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.CloseDeviceByOPOS()", "posprinter == null"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.CloseDeviceByOPOS()", "posprinter == null"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.CloseDeviceByOPOS()", "posprinter == null"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + posprinter.DeviceEnabled = false; + posprinter.Release(); + posprinter.Close(); + bRet = true; + posprinter = null; + devStatus.Printer.Status = "CLOSE"; + devStatus.Printer.Open = false; + //SetTopLogo = false; + //SetBottomLogo = false; + bw.DoWork -= OlePosHandler; + } + catch (Exception ex) + { + devStatus.Printer.Status = "CLOSE EXCEPTION"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return bRet; + } + /// + /// RS232사용 디바이스 Close시 처리함수 + /// + public bool CloseDeviceByRS232() + { + bool bRet = false; + bool PortOpenResult = false; + + try + { + //20180611 프린터 미출력 개선 02Printer.exe start + //변경 + #if(PRT_O2PRINTER) + devStatus.Printer.Status = "CLOSE"; + devStatus.Printer.Open = false; + return true; + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + if (m_serialPort == null) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.CloseDeviceByRS232()", "m_serialPort == null"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.CloseDeviceByRS232()", "m_serialPort == null"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.CloseDeviceByRS232()", "m_serialPort == null"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + // add by wani(20170914) - Serial Port Close 보완(Buffer 초기화 추가) + m_serialPort.DiscardInBuffer(); + m_serialPort.DiscardOutBuffer(); + m_serialPort.Close(); + System.Threading.Thread.Sleep(100); + PortOpenResult = m_serialPort.IsOpen; + if (PortOpenResult.Equals(true)) + { + m_serialPort.Close(); + System.Threading.Thread.Sleep(100); + } + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SerialPort.IsOpen => " + PortOpenResult.ToString()); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SerialPort.IsOpen => " + PortOpenResult.ToString()); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SerialPort.IsOpen => " + PortOpenResult.ToString()); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + m_serialPort.Dispose(); + bRet = true; + m_serialPort = null; + + devStatus.Printer.Status = "CLOSE"; + devStatus.Printer.Open = false; + //SetTopLogo = false; + //SetBottomLogo = false; + bw.DoWork -= OlePosHandler; + } + catch(Exception ex) + { + devStatus.Printer.Status = "CLOSE EXCEPTION"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return bRet; + } + #endregion + + #region Printer check + /// + /// Enable transmission of automatic status. + /// + /// + public bool CheckPrinter() + { + bool bRet = false; + string sTemp = ""; + int nLen = 0; + string sResp = ""; + byte[] bytReadData; + + try + { + if (m_cPosStatus.Base.OlePosPrinterModel == PosConst.POS_DEVICE_CONTROLLER.RS232) + { + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_TM_T88II: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TM_T88III: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_TM_T88IV: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._4_TM_T88V: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._8_SRP_352PLUSIII: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + if (devStatus.Printer.Open == false) + { + if (OpenDevice(PosConst.OPOS_DEVICE.POSPRINTER, PosConst.OPOS_LDN.POSPRINTER) == false) return bRet; + } + + bytReadData = new byte[1]; + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + if (m_serialPort != null && m_serialPort.IsOpen == true) + { + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + // 프린터 초기화 + TransmitCommand(PosConst.ESCP_COMMAND.INITIALIZE_PRINTER, false); + System.Threading.Thread.Sleep(10); + + // Cover Check + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS, false); + #endif + //변경 + #if(PRT_O2PRINTER) + TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS, false, true); + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + System.Threading.Thread.Sleep(70); + + #region + //sResp = m_serialPort.ReadExisting(); + //if (sResp.Length > 0) + //{ + // byte[] respByte = Encoding.Default.GetBytes(sResp); + // if (respByte[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + // { + // bRet = true; + // } + // else + // { + // return bRet; + // } + //} + //else + //{ + // return bRet; + //} + #endregion + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + m_serialPort.Read(bytReadData, 0, 1); + if (bytReadData.Length > 0) + { + if (bytReadData[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + bRet = true; + } + else + { + return bRet; + } + } + else + { + return bRet; + } + #endif + //변경 + #if(PRT_O2PRINTER) + if (bytRecvBuff.Length > 0) + { + if (bytRecvBuff[12] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + bRet = true; + } + else + { + return bRet; + } + } + else + { + return bRet; + } + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + // Paper Check + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_CONTINUOUS_PAPER_DETECTOR_STATUS, false); + #endif + //변경 + #if(PRT_O2PRINTER) + TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_CONTINUOUS_PAPER_DETECTOR_STATUS, false, true); + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + System.Threading.Thread.Sleep(70); + + #region + //sResp = m_serialPort.ReadExisting(); + + //if (sResp.Length > 0) + //{ + // byte[] respByte = Encoding.Default.GetBytes(sResp); + // if (respByte[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + // { + // bRet = true; + // } + // else + // { + // //bRet = false; + // string NEAR_END = Encoding.Default.GetString(new byte[] { 0x1E }); + // string NOT_PRESENT = Encoding.Default.GetString(new byte[] { 0x72 }); + + // string sErrMsg = string.Empty; + // if (sResp == NEAR_END) + // { + // bRet = true; + // sErrMsg = "Local Printer : RECEIPT_PAPER_NEAR_END"; + // } + // else if (sResp == NOT_PRESENT) sErrMsg = "Local Printer : RECEIPT_PAPER_NOT_PRESENT"; + // else sErrMsg = "Local Printer : ETC_ERROR"; + + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + // sErrMsg); + // } + //} + //else + //{ + // return bRet; + //} + #endregion + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + m_serialPort.Read(bytReadData, 0, 1); + if (bytReadData.Length > 0) + { + if (bytReadData[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + bRet = true; + } + else + { + string NEAR_END = Encoding.Default.GetString(new byte[] { 0x1E }); + string NOT_PRESENT = Encoding.Default.GetString(new byte[] { 0x72 }); + string sReadData = Encoding.Default.GetString(bytReadData); + + string sErrMsg = string.Empty; + if (sReadData == NEAR_END) + { + bRet = true; + sErrMsg = "Local Printer : RECEIPT_PAPER_NEAR_END"; + } + else if (sReadData == NOT_PRESENT) sErrMsg = "Local Printer : RECEIPT_PAPER_NOT_PRESENT"; + else sErrMsg = "Local Printer : ETC_ERROR"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + else + { + return bRet; + } + #endif + //변경 + #if(PRT_O2PRINTER) + if (bytRecvBuff.Length > 0) + { + if (bytRecvBuff[12] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + { + bRet = true; + } + else + { + string NEAR_END = Encoding.Default.GetString(new byte[] { 0x1E }); + string NOT_PRESENT = Encoding.Default.GetString(new byte[] { 0x72 }); + string sReadData = Encoding.Default.GetString(bytRecvBuff); + + string sErrMsg = string.Empty; + if (sReadData == NEAR_END) + { + bRet = true; + sErrMsg = "Local Printer : RECEIPT_PAPER_NEAR_END"; + } + else if (sReadData == NOT_PRESENT) sErrMsg = "Local Printer : RECEIPT_PAPER_NOT_PRESENT"; + else sErrMsg = "Local Printer : ETC_ERROR"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + sErrMsg); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + else + { + return bRet; + } + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + #region + //if (sResp.Length > 0) + //{ + // byte[] respByte = Encoding.Default.GetBytes(sResp); + // if (respByte[0] == PosConst.ESCP_COMMAND.STATUS_OK[1]) + // { + // bRet = true; + // } + // else + // { + // return bRet; + // } + //} + //else + //{ + // return bRet; + //} + #endregion + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + } + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + break; + #region + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + // // Cover Check + // TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS, false); + // System.Threading.Thread.Sleep(100); + // sResp = m_serialPort.ReadExisting(); + // if (sResp.Length > 0) + // { + // byte[] respByte = Encoding.Default.GetBytes(sResp); + // if (respByte[0] == PosConst.ESCP_COMMAND.STATUS_OK[0]) + // { + // bRet = true; + // } + // else + // { + // return bRet; + // } + // } + // else + // { + // return bRet; + // } + // break; + #endregion + default: + bRet = true; + break; + } + } + } + catch(Exception ex) + { + devStatus.Printer.Status = "Status Check Error"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return bRet; + } + + //private int IsPrinterStatusOK() + //{ + // int iReturn = UserCom.NG; + // byte[] bytReadData; + // string sReadData; + // BitArray arBit = null; + // try + // { + // switch(m_cPosStatus.Base.OlePosPrinterModel) + // { + // case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_TRST_A00: + // if (m_serialPort != null && m_serialPort.IsOpen == true) + // { + // FreeEvents = true; + + // bytReadData = new byte[1]; + + // // 프린터 초기화 + // TransmitCommand(PosConst.ESCP_COMMAND.INITIALIZE_PRINTER, false); + // System.Threading.Thread.Sleep(10); + + // // To check whether ONLINE or OFFLINE + // //TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_PRINTER_STATUS); + // //sReadData = m_serialPort.ReadExisting(); + // ////m_serialPort.Read(bytReadData, 0, 1); + // ////arBit = new BitArray(bytReadData); + // //arBit = new BitArray(Encoding.Default.GetBytes(sReadData)); + // //// ONLINE/ONFFLINE Status(ONLINE : 0, OFFLINE : 1) + // //if(arBit[3] == true) + // //{ + // // return UserCom.NG1; + // //} + + // // To check cover status + // TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_OFFLINE_STATUS); + // m_serialPort.Read(bytReadData, 0, 1); + // arBit = new BitArray(bytReadData); + // // Cover Status(Closed : 0, Open : 1) + // if(arBit[2] == true) + // { + // return UserCom.NG2; + // } + + // // To check paper out status + // TransmitCommand(PosConst.ESCP_COMMAND.TRANSMIT_CONTINUOUS_PAPER_DETECTOR_STATUS); + // m_serialPort.Read(bytReadData, 0, 1); + // // Paper out sensor(Has paper : 0, Paper Out : 1) + // if(arBit[5] == true) + // { + // return UserCom.NG3; + // } + + // iReturn = UserCom.OK; + + // FreeEvents = false; + // } + // break; + // default: + // iReturn = UserCom.OK; + // break; + // } + // } + // catch (Exception ex) + // { + // FreeEvents = false; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, + // System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + // ex.Message); + // return UserCom.NG; + // } + + // return iReturn; + //} + #endregion + + #region 시리얼 이벤트 + private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //프린터 ErrorReceived + /* + SerialData err = e.EventType; + string strErr = ""; + + switch (err) + { + case SerialData.Chars: + strErr = "문자를 받아서 입력 버퍼에 배치했습니다."; + break; + case SerialData.Eof: + strErr = "파일 끝 문자를 받아서 입력 버퍼에 배치했습니다."; + break; + default: + break; + } + + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + strErr); + */ + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + private void serialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + + } + + private void serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //프린터 ErrorReceived + #if(PRT_RECVERR) + + SerialError err = e.EventType; + string strErr = ""; + + switch (err) + { + case SerialError.Frame: + strErr = "HardWare Framing Error"; + break; + case SerialError.Overrun: + strErr = "Charaters Buffer Over Run"; + break; + case SerialError.RXOver: + strErr = "Input Buffer OverFlow"; + break; + case SerialError.RXParity: + strErr = "Founded Parity Error"; + break; + case SerialError.TXFull: + strErr = "Write Buffer was Fulled"; + break; + default: + break; + } + + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + strErr); + + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + private void POSPrinter_StatusUpdateEvent(string sData) + { + + } + + /// + /// + /// + /// + /// + private void OlePosHandler(object sender, DoWorkEventArgs e) + { + try + { + if (PosOLEDevice.m_delegateOlePos != null) + PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.POSPRINTER, devStatus.Printer.Status, devStatus.Printer.ErrorStatus, string.Empty); + else + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "이벤트 전송 대상 없음"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "이벤트 전송 대상 없음"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "이벤트 전송 대상 없음"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + /// + /// Printer 상태 변경에 따른 이벤트 처리 + /// + /// + /// + private void Printer_StatusUpdateEvent(object sender, StatusUpdateEventArgs e) + { + try + { + if (!bw.IsBusy) + { + m_sUpdateStatus = e.Status; + + switch (m_sUpdateStatus) + { + case PosPrinter.StatusCoverOK: + devStatus.Printer.ErrorStatus = "OK"; + devStatus.Printer.Status = "COVER OK"; + break; + case PosPrinter.StatusReceiptEmpty: + devStatus.Printer.ErrorStatus = "NO PAPER"; + devStatus.Printer.Status = "RECEIPT EMPTY"; + break; + case PosPrinter.StatusCoverOpen: + devStatus.Printer.ErrorStatus = "COVER OPEN"; + devStatus.Printer.Status = "COVER OPEN"; + break; + case PosPrinter.StatusReceiptNearEmpty: + devStatus.Printer.ErrorStatus = "OK"; + devStatus.Printer.Status = "REC_NEAREMPTY"; + break; + case PosPrinter.StatusReceiptPaperOK: + devStatus.Printer.ErrorStatus = "OK"; + devStatus.Printer.Status = "REC PAPEROK"; + break; + default: + devStatus.Printer.ErrorStatus = "OK"; + devStatus.Printer.Status = "OK"; + break; + } + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_StatusUpdateEvent()", "POS Printer Status=[" + devStatus.Printer.Status + "], ErrStatus=[" + devStatus.Printer.ErrorStatus + "]"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_StatusUpdateEvent()", "POS Printer Status=[" + devStatus.Printer.Status + "], ErrStatus=[" + devStatus.Printer.ErrorStatus + "]"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_StatusUpdateEvent()", "POS Printer Status=[" + devStatus.Printer.Status + "], ErrStatus=[" + devStatus.Printer.ErrorStatus + "]"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + bw.RunWorkerAsync(); + if (PosOLEDevice.m_delegateOlePos != null) + PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.POSPRINTER, devStatus.Printer.Status, devStatus.Printer.ErrorStatus, string.Empty); + } + else + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "프린터 이벤트 처리 전 이벤트 발생 불가"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "프린터 이벤트 처리 전 이벤트 발생 불가"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "프린터 이벤트 처리 전 이벤트 발생 불가"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + catch (Exception ex) + { + devStatus.Printer.Status = "STATUS UPDATE EVENT ERROR"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + finally + { + //posprinter.ClearOutput(); + } + } + + /// + /// Printer 에러이벤트 처리 + /// + /// + /// + private void Printer_ErrorEvent(object sender, DeviceErrorEventArgs e) + { + try + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", "ErrorEvent 발생, ErrorCode=[" + e.ErrorCode.ToString() + "], ErrorResponse=[" + e.ErrorResponse.ToString() + "]"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", "ErrorEvent 발생, ErrorCode=[" + e.ErrorCode.ToString() + "], ErrorResponse=[" + e.ErrorResponse.ToString() + "]"); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", "ErrorEvent 발생, ErrorCode=[" + e.ErrorCode.ToString() + "], ErrorResponse=[" + e.ErrorResponse.ToString() + "]"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + if (e.ErrorResponse == ErrorResponse.Clear) + { + if (devStatus.Printer.ErrorStatus != "ER_CLEAR") + { + //devStatus.Printer.ErrorStatus = "ER_CLEAR"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + e.ErrorCode + " " + devStatus.Printer.ErrorStatus + " " + posprinter.ErrorString); + //UserLog.WriteAMSLog("DEV", "ERR", "0302", "Printer " + e.ErrorCode.ToString() + " " + posprinter.ErrorString); + } + } + + if (e.ErrorCode == ErrorCode.Failure) + { + if (devStatus.Printer.ErrorStatus != "E_FAILURE") + { + devStatus.Printer.ErrorStatus = "E_FAILURE"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", + e.ErrorCode + " " + devStatus.Printer.ErrorStatus + " " + posprinter.ErrorString); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", + e.ErrorCode + " " + devStatus.Printer.ErrorStatus + " " + posprinter.ErrorString); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Printer_ErrorEvent()", + e.ErrorCode + " " + devStatus.Printer.ErrorStatus + " " + posprinter.ErrorString); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + //UserLog.WriteAMSLog("DEV", "ERR", "0402", "Printer " + e.ErrorCode.ToString() + " " + posprinter.ErrorString); + } + } + + posprinter.ClearOutput(); + } + catch (Exception ex) + { + devStatus.Printer.Status = "ERROREVENT ERROR"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + #endregion + + #region 출력 + /// + /// 바코드 아래 출력할 문구의 가운데 정렬후 리턴 + /// + /// + /// + private string TextAlignCenter(string sData) + { + string sPrtData = string.Empty; + + if (m_cPosStatus.Base.OptBillPrintSize == "0") //0:42bytes + { + if (CmUtil.LenH(sData) < 42) sPrtData = CmUtil.LPadH("", 21 - (CmUtil.LenH(sData) / 2)) + sData; + } + + return sPrtData; + } + + /// + /// 출력할 데이터를 Line group 단위로 받아 처리 + /// + /// + private void PrintLineDataGroup(string pLineDataGroup) + { + StringBuilder sbPrintData = new StringBuilder(); + string sHeader = string.Empty; + string sData = string.Empty; + //20170913 IBM 프린터 행간 축소 start + //기존 + //string CrLf = string.Format("{0}{1}", (char)13, (char)10); + //변경 + byte[] CrLf; + //20170913 IBM 프린터 행간 축소 end + string[] aLineDataGroup; + byte[] bytTemp = null; + + try + { + MemoryStream stream = new MemoryStream(); + BinaryWriter bw = new BinaryWriter(stream); + + //20170913 IBM 프린터 행간 축소 start + CrLf = new byte[5]; + Array.Clear(CrLf, 0, CrLf.Length); + + if (m_cPosStatus.Base.OlePosPrinterModel == PosConst.POS_DEVICE_LIST.POS_PRINTER._3_IBM) + { + // LF + WIDTH_X2_OFF + CrLf[0] = 10; + CrLf[1] = 27; + CrLf[2] = 33; + CrLf[3] = 0; + } + else + { + // CRLF + CrLf[0] = 13; + CrLf[1] = 10; + } + //20170913 IBM 프린터 행간 축소 end + + aLineDataGroup = pLineDataGroup.Split(new string[] { DELIMETER }, StringSplitOptions.None); + int nLoop = 0; + foreach (string sLineData in aLineDataGroup) + { + if (sLineData.Length < 5) continue; + + sHeader = sLineData.Substring(0, 5); + sData = sLineData.Substring(5); + + switch(sHeader) + { + case PosConst.PRT_HDR.PRT_BMP: //[BMP] + bytTemp = PrintBMP(sData); + if (bytTemp != null) + { + bw.Write(bytTemp); + } + break; + case PosConst.PRT_HDR.PRT_SGN: + bytTemp = PrintBMP(BaseCom.NxDataPath + "SIGN\\" + sData); + if (bytTemp != null) + { + bw.Write(bytTemp); + } + break; + case PosConst.PRT_HDR.PRT_TBM: //[TBM] + //if (File.Exists(BaseCom.NxImgPath + m_cPosStatus.Base.BrandDiv + "_TOP.bmp") == true) + //{ + // bw.Write(PosConst.ESCP_COMMAND.CENTER_ALIGN); + // bw.Write(PrintTopLogo()); + // bw.Write(PosConst.ESCP_COMMAND.LEFT_ALIGN); + //} + + //2018.01.22; 1NR 모델은 상단부터 출력;girak.kim;Start + if (m_cPosStatus.Base.OlePosPrinterModel == PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR) + { + if (m_cPosStatus.Base.TextLogoMsgUseYn == "0" && File.Exists(BaseCom.NxImgPath + m_cPosStatus.Base.BrandDiv + "_TOP.bmp") == true) + { + bw.Write(PosConst.ESCP_COMMAND.CENTER_ALIGN); + bw.Write(PrintTopLogo()); + bw.Write(PosConst.ESCP_COMMAND.LEFT_ALIGN); + } + } + //2018.01.22; 1NR 모델은 상단부터 출력;girak.kim;End + + break; + case PosConst.PRT_HDR.PRT_BBM: //[BBM] + if (m_cPosStatus.Base.TextLogoMsgUseYn == "0" && + File.Exists(BaseCom.NxImgPath + m_cPosStatus.Base.BrandDiv + "_BOT.bmp") == true) + { + bw.Write(PosConst.ESCP_COMMAND.CENTER_ALIGN); + bw.Write(PrintBottomLogo()); + bw.Write(PosConst.ESCP_COMMAND.LEFT_ALIGN); + } + break; + case PosConst.PRT_HDR.PRT_BAR: //[BAR] + bw.Write(Encoding.Default.GetBytes(PrintBarcodeData(BarcodeType.CODE128, Alignment.CENTER, HRIPosition.BELOW, sData))); + break; + case PosConst.PRT_HDR.PRT_BA1: //[BA1] + case PosConst.PRT_HDR.PRT_SIS: + bw.Write(Encoding.Default.GetBytes(PrintBarcodeData(BarcodeType.CODE128, Alignment.CENTER, HRIPosition.NO_PRINT, sData))); + break; + case PosConst.PRT_HDR.PRT_CUT: //[CUT] + int iMaxCnt = 0; + switch(m_cPosStatus.Base.OlePosPrinterModel) + { + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22; 1NR 모델 추가 ;girak.kim + default: + iMaxCnt = 4; + break; + case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + iMaxCnt = 2; + break; + } + if (m_cPosStatus.Base.OlePosPrinterModel != PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR)//2018.01.22; 1NR 모델은 상단에 출력하므로 조건문 추가, 그 외는 기존 처리;girak.kim; + { + //원래 소스 부분 + // 영수증 상단 로고를 컷팅 바로 직전에 출력하는 것으로 변경함(20170623) + //for (int i = 0; i < iMaxCnt; i++) + //{ + // bw.Write(CrLf); + //} + + if (m_cPosStatus.Base.TextLogoMsgUseYn == "0" && File.Exists(BaseCom.NxImgPath + m_cPosStatus.Base.BrandDiv + "_TOP.bmp") == true) + { + bw.Write(PosConst.ESCP_COMMAND.CENTER_ALIGN); + bw.Write(PrintTopLogo()); + bw.Write(PosConst.ESCP_COMMAND.LEFT_ALIGN); + } + else + { + for (int i = 0; i < iMaxCnt; i++) + { + bw.Write(CrLf); + } + } + //원래 소스 부분 끝 + } + + + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_IBM: + bw.Write(PosConst.ESCP_COMMAND.PAPER_CUT_1NR); + break; + default: + bw.Write(PosConst.ESCP_COMMAND.PAPER_CUT); + break; + } + break; + case PosConst.PRT_HDR.PRT_NOR: //[NOR] + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_BLD: //[BLD] + bw.Write(PosConst.ESCP_COMMAND.BOLD_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.BOLD_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_LIN: + bw.Write(PosConst.ESCP_COMMAND.UNDERLINE_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.UNDERLINE_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_HOR: + bw.Write(PosConst.ESCP_COMMAND.WIDTH_X2_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.WIDTH_X2_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_VER: + bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_BIG: + bw.Write(PosConst.ESCP_COMMAND.ZOOM_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.ZOOM_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_VRB: + bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_ON); + bw.Write(PosConst.ESCP_COMMAND.BOLD_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.BOLD_OFF); + bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_HRB: + bw.Write(PosConst.ESCP_COMMAND.WIDTH_X2_ON); + bw.Write(PosConst.ESCP_COMMAND.BOLD_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.BOLD_OFF); + bw.Write(PosConst.ESCP_COMMAND.WIDTH_X2_OFF); + bw.Write(CrLf); + break; + case PosConst.PRT_HDR.PRT_BGB: + bw.Write(PosConst.ESCP_COMMAND.ZOOM_ON); + bw.Write(PosConst.ESCP_COMMAND.BOLD_ON); + bw.Write(Encoding.Default.GetBytes(sData)); + bw.Write(PosConst.ESCP_COMMAND.BOLD_OFF); + bw.Write(PosConst.ESCP_COMMAND.ZOOM_OFF); + bw.Write(CrLf); + break; + + case PosConst.PRT_HDR.PRT_VRE : + //bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_ON); + //bw.Write(PosConst.ESCP_COMMAND.REVERSE_MODE_ON); + //bw.Write(Encoding.Default.GetBytes(sData)); + //bw.Write(PosConst.ESCP_COMMAND.REVERSE_MODE_OFF); + //bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_OFF); + + bw.Write(PosConst.ESCP_COMMAND.CENTER_ALIGN); + bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_ON); + bw.Write(PosConst.ESCP_COMMAND.REVERSE_MODE_ON); + bw.Write(Encoding.Default.GetBytes(sData.Trim())); + bw.Write(PosConst.ESCP_COMMAND.REVERSE_MODE_OFF); + bw.Write(PosConst.ESCP_COMMAND.HEIGHT_X2_OFF); + + bw.Write(CrLf); + bw.Write(PosConst.ESCP_COMMAND.LEFT_ALIGN); + break; + } + + nLoop++; + } + + bw.Flush(); + //TransmitCommand(stream.ToArray()); + AddToPrinterBuffer(stream.ToArray()); + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + /// + /// 출력할 데이터를 1 Line 단위로 받아 처리 + /// + /// + private void PrintLineData(string pLineData) + { + string sType = ""; + + string sLineData = ""; + + string CrLf = string.Format("{0}{1}", (char)13, (char)10); + + string sTxtData = ""; + + if (pLineData.Length < 5) return; + + sType = pLineData.Substring(0, 5); + sLineData = pLineData.Substring(5); + + string sPosMode = string.Empty; + + switch (sType) + { + case PosConst.PRT_HDR.PRT_BMP: //[BMP] + try + { + posprinter.PrintBitmap(PrinterStation.Receipt, sLineData, PosPrinter.PrinterBitmapAsIs, PosPrinter.PrinterBitmapCenter); + } + catch (Exception ex) + { + devStatus.Printer.Status = "BITMAP PRT FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BMP Exception : "+devStatus.Printer.Status + "/" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BMP Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BMP Exception : "+devStatus.Printer.Status + "/" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + break; + case PosConst.PRT_HDR.PRT_TBM: //[TBM] + try + { + posprinter.PrintNormal(PrinterStation.Receipt, (char)27 + "|1B"); //'Bitmap Image Print ('비트맵 이미지 출력) + } + catch (Exception ex) + { + devStatus.Printer.Status = "TOP BMP PRT FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BMP Exception : "+devStatus.Printer.Status + "/" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BMP Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BMP Exception : "+devStatus.Printer.Status + "/" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + break; + case PosConst.PRT_HDR.PRT_BBM: //[BBM] + try + { + posprinter.PrintNormal(PrinterStation.Receipt, (char)27 + "|2B"); //'Bitmap Image Print ('비트맵 이미지 출력) + } + catch(Exception ex) + { + devStatus.Printer.Status = "BOTTOM BMP PRT FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BBM Exception : " + devStatus.Printer.Status + "/" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BBM Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BBM Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + break; + case PosConst.PRT_HDR.PRT_BAR: //[BAR] + try + { + posprinter.PrintBarCode(PrinterStation.Receipt, sLineData, BarCodeSymbology.Code128, 50, 368, PosPrinter.PrinterBarCodeCenter, BarCodeTextPosition.Below); + } + catch (Exception ex) + { + devStatus.Printer.Status = "BAR PRT FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BAR Exception : " + devStatus.Printer.Status + "/" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BAR Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BAR Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + break; + case PosConst.PRT_HDR.PRT_BA1: //[BA1] + case PosConst.PRT_HDR.PRT_SIS: + try + { + posprinter.PrintBarCode(PrinterStation.Receipt, sLineData, BarCodeSymbology.Code128, 50, 368, PosPrinter.PrinterBarCodeCenter, BarCodeTextPosition.None); + } + catch (Exception ex) + { + devStatus.Printer.Status = "BAREx PRT FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BA1 Exception : " + devStatus.Printer.Status + "/" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BA1 Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print BA1 Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + break; + case PosConst.PRT_HDR.PRT_CUT: //[CUT] + try + { + for(int nLoop = 0;nLoop < 5;nLoop++) + { + posprinter.PrintNormal(PrinterStation.Receipt, (char)27 + "|N" + " " + CrLf); + } + posprinter.CutPaper(100); + } + catch (Exception ex) + { + devStatus.Printer.Status = "CUT PAPER FAIL"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print 1 Exception : " + devStatus.Printer.Status + "/" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print 1 Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Print 1 Exception : " + devStatus.Printer.Status + "/" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + break; + default: // Text Print (텍스트 출력) + sTxtData = ""; + switch (sType) + { + case PosConst.PRT_HDR.PRT_NOR: + sTxtData = sTxtData + (char)27 + "|N" + sLineData + CrLf; + posprinter.PrintNormal(PrinterStation.Receipt, sTxtData); + break; //'Normal (보통문자) + case PosConst.PRT_HDR.PRT_BLD: + sTxtData = sTxtData + (char)27 + "|bC" + sLineData + CrLf; + posprinter.PrintNormal(PrinterStation.Receipt, sTxtData); + break; //'Bold (진하게) + case PosConst.PRT_HDR.PRT_LIN: + sTxtData = sTxtData + (char)27 + "|uC" + sLineData + CrLf; + posprinter.PrintNormal(PrinterStation.Receipt, sTxtData); + break; //'Under Line (Under Line 출력) + case PosConst.PRT_HDR.PRT_HOR: + sTxtData = sTxtData + (char)27 + "|2C" + sLineData + CrLf; + posprinter.PrintNormal(PrinterStation.Receipt, sTxtData); + break; //'2 times horizontal expansion (가로 2배 확대) + case PosConst.PRT_HDR.PRT_VER: + sTxtData = sTxtData + (char)27 + "|3C" + sLineData + CrLf; + posprinter.PrintNormal(PrinterStation.Receipt, sTxtData); + break; //'2 times vertical expansion (세로 2배 확대) + case PosConst.PRT_HDR.PRT_BIG: + sTxtData = sTxtData + (char)27 + "|4C" + sLineData + CrLf; + posprinter.PrintNormal(PrinterStation.Receipt, sTxtData); + break; //'2 times horizontal and vertical expansion (가로세로 2배 확대) + case PosConst.PRT_HDR.PRT_VRB: + sTxtData = sTxtData + (char)27 + "|bC" + (char)27 + "|3C" + sLineData + CrLf; + break; //'2 times vertical expansion and bold(진하게 세로 2배 확대) + case PosConst.PRT_HDR.PRT_HRB: + sTxtData = sTxtData + (char)27 + "|bC" + (char)27 + "|2C" + sLineData + CrLf; + break; //'2 times horizontal expansion and bold(진하게 가로 2배 확대) + case PosConst.PRT_HDR.PRT_BGB: + sTxtData = sTxtData + (char)27 + "|bC" + (char)27 + "|4C" + sLineData + CrLf; + break; //'2 times horizontal and vertical expansion, bold(진하게 가로세로 2배 확대) + } + break; + } + } + + private byte[] PrintBMP(string sFilePath) + { + byte[] arRet = null; + try + { + arRet = GetSelectBitImageByte(sFilePath, 0, false); + + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : "+ ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : "+ ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return arRet; + } + + + + /// + /// 상단 로고 출력 + /// + private byte[] PrintTopLogo() + { + byte[] arRet = null; + try + { + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_TM_T88II: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TM_T88III: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_TM_T88IV: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._4_TM_T88V: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_4610_1NR: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_TRST_A00: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._9_TP_600: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._10_GIANT_100S: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._11_P2C_All_In_One: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22;"7:4610_1NR" 모델 추가, 이미지 처리는 _1_EPSON 과 동일;girak.kim + default: + + arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_1; + break; + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_3; + break; + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._5_4610_TF7: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_IBM: + arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_1_1NR; + //arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_1; + break; + } + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrintTopLogo Exception : " + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + "PrintTopLogo : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrintTopLogo Exception : " + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return arRet; + } + /// + /// 하단 로고 출력 + /// + private byte[] PrintBottomLogo() + { + byte[] arRet = null; + try + { + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_TM_T88II: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TM_T88III: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_TM_T88IV: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._4_TM_T88V: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_4610_1NR: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_TRST_A00: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._9_TP_600: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._10_GIANT_100S: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._11_P2C_All_In_One: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22;"7:4610_1NR" 모델 추가, 이미지 처리는 _1_EPSON 과 동일;girak.kim + default: + + arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_2; + break; + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_4; + + break; + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._5_4610_TF7: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_IBM: + arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_2_1NR; + //arRet = PosConst.ESCP_COMMAND.PRINT_NV_BIT_IMAGE_2; + break; + } + + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrintBottomLogo Exception:" + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + "PrintBottomLogo :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrintBottomLogo Exception:" + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return arRet; + } + + /// + /// 바코드 출력 함수 + /// + /// 바코드형태 + /// 정렬위치 + /// HRI Character position + /// 바코드데이터 + private string PrintBarcodeData(BarcodeType btBarcodeType, Alignment aAlignment, HRIPosition hpHriPosition, string sLineData) + { + try + { + string sBarcodeData = string.Empty; + + switch(m_cPosStatus.Base.OlePosPrinterModel) + { + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_TM_T88II: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TM_T88III: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_TM_T88IV: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._4_TM_T88V: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_4610_1NR: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_TRST_A00: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._9_TP_600: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._10_GIANT_100S: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._11_P2C_All_In_One: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22;"7:4610_1NR" 모델 추가, 처리는 _1_EPSON 과 동일;girak.kim + default: + // 바코드 출력 위치 정렬 + sBarcodeData += GetAlignCommandToString(aAlignment); + // Set HRI chracter print position + sBarcodeData += GetHRIPositionCommandToString(hpHriPosition); + // Set Barcode horizontal size. + sBarcodeData += String.Format("{0}{1}{2}", + Convert.ToChar(0x1D), Convert.ToChar(0x77), Convert.ToChar(0x02)); + // Set Barcode height + sBarcodeData += String.Format("{0}{1}{2}", + Convert.ToChar(0x1D), Convert.ToChar(0x68), Convert.ToChar(0x32)); + // Print Barcode + sBarcodeData += String.Format("{0}{1}", + Convert.ToChar(0x1D), Convert.ToChar(0x6B)); + + switch (btBarcodeType) + { + case BarcodeType.CODE93: + sBarcodeData += String.Format("{0}", Convert.ToChar(0x48)); + sBarcodeData += Convert.ToChar(sLineData.Length); + sBarcodeData += sLineData; + break; + case BarcodeType.CODE128: + sBarcodeData += String.Format("{0}", Convert.ToChar(0x49)); + int nDataLen = sLineData.Length + 2; + sBarcodeData += String.Format("{0}", Convert.ToChar(nDataLen)); + sBarcodeData += String.Format("{0}", Convert.ToChar(0x7B)); // "{" + sBarcodeData += String.Format("{0}", Convert.ToChar(0x42)); // "B" + sBarcodeData += sLineData; + break; + } + break; + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._5_4610_TF7: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_IBM: + // 바코드 출력 위치 정렬 + sBarcodeData += GetAlignCommandToString(aAlignment); + // Set HRI chracter print position + sBarcodeData += GetHRIPositionCommandToString(hpHriPosition); + // Set Barcode horizontal size. + sBarcodeData += String.Format("{0}{1}{2}", + Convert.ToChar(0x1D), Convert.ToChar(0x77), Convert.ToChar(0x02)); + // Set Barcode height + sBarcodeData += String.Format("{0}{1}{2}", + Convert.ToChar(0x1D), Convert.ToChar(0x68), Convert.ToChar(50)); + // Print Barcode + sBarcodeData += String.Format("{0}{1}", + Convert.ToChar(0x1D), Convert.ToChar(0x6B)); + + switch (btBarcodeType) + { + case BarcodeType.CODE93: + sBarcodeData += String.Format("{0}", Convert.ToChar(0x48)); + sBarcodeData += Convert.ToChar(sLineData.Length); + sBarcodeData += sLineData; + break; + case BarcodeType.CODE128: + sBarcodeData += String.Format("{0}", Convert.ToChar(0x08)); + sBarcodeData += sLineData; + break; + } + break; + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._4_IBM_1NR: + // // 바코드 출력 위치 정렬 + // sBarcodeData += GetAlignCommandToString(aAlignment); + // // Set HRI chracter print position + // sBarcodeData += GetHRIPositionCommandToString(hpHriPosition); + // // Set Barcode horizontal size. + // sBarcodeData += String.Format("{0}{1}{2}", + // Convert.ToChar(0x1D), Convert.ToChar(0x77), Convert.ToChar(0x02)); + // // Set Barcode height + // sBarcodeData += String.Format("{0}{1}{2}", + // Convert.ToChar(0x1D), Convert.ToChar(0x68), Convert.ToChar(0x50)); + // // Print Barcode + // sBarcodeData += String.Format("{0}{1}", + // Convert.ToChar(0x1D), Convert.ToChar(0x6B)); + + // switch (btBarcodeType) + // { + // case BarcodeType.CODE93: + // sBarcodeData += String.Format("{0}", Convert.ToChar(0x48)); + // sBarcodeData += Convert.ToChar(sLineData.Length); + // sBarcodeData += sLineData; + // break; + // case BarcodeType.CODE128: + // sBarcodeData += String.Format("{0}", Convert.ToChar(0x07)); + // //sBarcodeData += String.Format("{0}", Convert.ToChar(0x07)); + // sBarcodeData += sLineData; + // break; + // } + // break; + } + // 출력 정렬 위치 원복 + sBarcodeData += GetAlignCommandToString(Alignment.LEFT); + + //m_serialPort.Write(sBarcodeData); + return sBarcodeData; + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return ""; + } + } + /// + /// Byte 배열의 HRI print position Command 를 string으로 변환 + /// + /// + /// + private string GetHRIPositionCommandToString(HRIPosition hpHriPosition) + { + string sCommand = string.Empty; + try + { + switch(hpHriPosition) + { + case HRIPosition.NO_PRINT: + sCommand = System.Text.Encoding.Default.GetString(buildESCPCommand(PosConst.ESCP_COMMAND.HRI_PRINT_POSITION, (byte)0)); + break; + case HRIPosition.ABOVE: + sCommand = System.Text.Encoding.Default.GetString(buildESCPCommand(PosConst.ESCP_COMMAND.HRI_PRINT_POSITION, (byte)1)); + break; + case HRIPosition.BELOW: + sCommand = System.Text.Encoding.Default.GetString(buildESCPCommand(PosConst.ESCP_COMMAND.HRI_PRINT_POSITION, (byte)2)); + break; + case HRIPosition.ABOVE_BELOW: + sCommand = System.Text.Encoding.Default.GetString(buildESCPCommand(PosConst.ESCP_COMMAND.HRI_PRINT_POSITION, (byte)3)); + break; + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + return sCommand; + } + /// + /// Byte 배열의 Align Command 를 string으로 변환 + /// + /// 정렬위치 + /// + private string GetAlignCommandToString(Alignment aAlignment) + { + string sCommand = string.Empty; + try + { + switch(aAlignment) + { + case Alignment.CENTER: + sCommand = System.Text.Encoding.Default.GetString(PosConst.ESCP_COMMAND.CENTER_ALIGN); + break; + case Alignment.LEFT: + sCommand = System.Text.Encoding.Default.GetString(PosConst.ESCP_COMMAND.LEFT_ALIGN); + break; + case Alignment.RIGHT: + sCommand = System.Text.Encoding.Default.GetString(PosConst.ESCP_COMMAND.RIGHT_ALIGN); + break; + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return sCommand; + } + + /// + /// 프린터 출력 + /// + /// 출력할 데이터 Line 단위 배열 + /// 해피스테이션만 사용할꺼임 2019.03.27 + /// + public bool ReceiptPrinter(string[] pPrintData, bool kiosk) + { + bool bRet = false; + + int[] List = new int[32]; + int ListNum = 0; + bool Interface_opend = true; + + + if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.RS232) //해피스테이션 rs232 사용 + { + string sPrtPort = CmUtil.MidH(m_cPosStatus.Base.OlePosPrinterSerialPortNumber, 3, m_cPosStatus.Base.OlePosPrinterSerialPortNumber.Length - 3); + long baudRate = m_cPosStatus.Base.OlePosPrinterSerialBaudRate; + Interface_opend = REXOD_Setup_Printer(Printer_Interface._COM_, int.Parse(sPrtPort), (int)baudRate); + + } + else if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.OPOS) //해피스테이션 usb 사용 + { + ListNum = REXOD_Enum_Printer(Printer_Interface._USB_, List); + + if (ListNum >= 1) + { + Interface_opend = REXOD_Setup_Printer(Printer_Interface._USB_, List[0], 0); + } + } + + + + + Bitmap bitmapImage; + int iRet = 0; + string sFileName = string.Empty; + string lastPrintData = ""; + string printDataGbn = ""; + byte[] strBarcode = null; + for (int i = 0; i < pPrintData.Length; i++) + { + + if (pPrintData[i].Length >= 5) + printDataGbn = pPrintData[i].Substring(0, 5); + if (pPrintData[i].Length >= 5) + lastPrintData = pPrintData[i].Substring(5) + "\r\n"; + else + lastPrintData = "" + "\r\n"; + + + + + if (printDataGbn.Equals("[BLD]")) REXOD_Bold_Word(true); + + + if (printDataGbn.Equals("[BAR]")) + { + strBarcode = Encoding.UTF8.GetBytes(PrintBarcodeData(BarcodeType.CODE128, Alignment.CENTER, HRIPosition.NO_PRINT, lastPrintData.Replace("\r\n", ""))); + + REXOD_Select_Barcode_Alignment(AlignmentR._Center_); + REXOD_Print_Barcode(Barcode_Type._CODE128_, strBarcode, strBarcode.Length); + } + else if (printDataGbn.Equals("[SGN]")) + { + sFileName = BaseCom.NxDataPath + "SIGN\\" + lastPrintData.Replace("\r\n", ""); + if (File.Exists(sFileName)) + { + bitmapImage = new Bitmap(sFileName); + if (bitmapImage != null) + { + // var rectangle = new System.Drawing.Rectangle(0, 0, 496, 100); + // var lastImg = bitmapImage.Clone(rectangle, System.Drawing.Imaging.PixelFormat.Format8bppIndexed); + + // ImageConverter converter = new ImageConverter(); + // GCHandle pinnedArray = GCHandle.Alloc((byte[])converter.ConvertTo(bitmapImage, typeof(byte[])), GCHandleType.Pinned); + // IntPtr pointer = pinnedArray.AddrOfPinnedObject(); + + REXOD_Select_Alignment(AlignmentR._Center_); + IntPtr hbit = bitmapImage.GetHbitmap(); + REXOD_Print_Bitmap(hbit); + //REXOD_Print_Bitmap(pointer); + //pinnedArray.Free(); + DeleteObject(hbit); + REXOD_Select_Alignment(AlignmentR._Align_left_); + } + } + } + else if (printDataGbn.Equals("[TBM]")) + { + sFileName = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.RLOGO + @"PB_TOP.bmp"; + if (File.Exists(sFileName)) + { + bitmapImage = new Bitmap(sFileName); + if (bitmapImage != null) + { + + // var rectangle = new System.Drawing.Rectangle(0, 0, 496, 100); + // var lastImg = bitmapImage.Clone(rectangle, System.Drawing.Imaging.PixelFormat.Format8bppIndexed); + + // ImageConverter converter = new ImageConverter(); + // GCHandle pinnedArray = GCHandle.Alloc((byte[])converter.ConvertTo(bitmapImage, typeof(byte[])), GCHandleType.Pinned); + // IntPtr pointer = pinnedArray.AddrOfPinnedObject(); + + REXOD_Select_Alignment(AlignmentR._Center_); + IntPtr hbit = bitmapImage.GetHbitmap(); + REXOD_Print_Bitmap(hbit); + //REXOD_Print_Bitmap(pointer); + //pinnedArray.Free(); + DeleteObject(hbit); + REXOD_Select_Alignment(AlignmentR._Align_left_); + } + } + } + else if (printDataGbn.Equals("[BBM]")) + { + sFileName = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.RLOGO + @"PB_BOT.bmp"; + if (File.Exists(sFileName)) + { + bitmapImage = new Bitmap(sFileName); + if (bitmapImage != null) + { + // var rectangle = new System.Drawing.Rectangle(0, 0, 496, 100); + // var lastImg = bitmapImage.Clone(rectangle, System.Drawing.Imaging.PixelFormat.Format8bppIndexed); + + // ImageConverter converter = new ImageConverter(); + // GCHandle pinnedArray = GCHandle.Alloc((byte[])converter.ConvertTo(bitmapImage, typeof(byte[])), GCHandleType.Pinned); + // IntPtr pointer = pinnedArray.AddrOfPinnedObject(); + + REXOD_Select_Alignment(AlignmentR._Center_); + IntPtr hbit = bitmapImage.GetHbitmap(); + REXOD_Print_Bitmap(hbit); + //REXOD_Print_Bitmap(pointer); + //pinnedArray.Free(); + DeleteObject(hbit); + REXOD_Select_Alignment(AlignmentR._Align_left_); + + } + } + } + else if (printDataGbn.Equals("[BIG]")) + { + //RE + REXOD_Double_Height(true); + REXOD_Double_Width(true); + REXOD_Bold_Word(true); + + REXOD_Set_This_Line_Start_Position(40); + iRet = REXOD_Print_CharW(lastPrintData); + + REXOD_Double_Height(false); + REXOD_Double_Width(false); + REXOD_Bold_Word(false); + iRet = REXOD_Print_CharW(" " + "\r\n"); + }else if (printDataGbn.Equals("[HOR]")) + { + REXOD_Double_Width(true); + + REXOD_Set_This_Line_Start_Position(40); + iRet = REXOD_Print_CharW(lastPrintData); + + REXOD_Double_Width(false); + } + else if (printDataGbn.Equals("[VER]")) + { + + iRet = REXOD_Print_CharW(" " + "\r\n"); + REXOD_Set_This_Line_Start_Position(40); + iRet = REXOD_Print_CharW(lastPrintData); + iRet = REXOD_Print_CharW(" " + "\r\n"); + + } + else + { + REXOD_Set_This_Line_Start_Position(40); + iRet = REXOD_Print_CharW(lastPrintData); + + } + + + if (printDataGbn.Equals("[BLD]")) REXOD_Bold_Word(false); + } + + REXOD_Enter_With_nLine(6); + + REXOD_Full_Cut(); + + return bRet; + } + + /// + /// 프린터 출력 + /// + /// 출력할 데이터 Line 단위 배열 + /// + public bool ReceiptPrinter(string[] pPrintData) + { + bool bRet = false; + + try + { + if (devStatus.Printer.ErrorStatus == "E_FAILURE") devStatus.Printer.ErrorStatus = "OK"; + + if(devStatus.Printer.UseYn == false) + { + return bRet; + } + + //if (devStatus.Printer.Open == false) + //{ + // if (OpenDevice(PosConst.OPOS_DEVICE.POSPRINTER, PosConst.OPOS_LDN.POSPRINTER) == false) return bRet; + //} + + if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.OPOS) + { + if (devStatus.Printer.Open == false) + { + if (OpenDevice(PosConst.OPOS_DEVICE.POSPRINTER, PosConst.OPOS_LDN.POSPRINTER) == false) return bRet; + } + + // (OPOS) Begin a transaction. + posprinter.TransactionPrint(PrinterStation.Receipt, PrinterTransactionControl.Transaction); + + foreach (string sLineData in pPrintData) + { + this.PrintLineData(sLineData); + } + + // (OPOS) End a transaction by printing the buffered data. + posprinter.TransactionPrint(PrinterStation.Receipt, PrinterTransactionControl.Normal); + + if (devStatus.Printer.ErrorStatus != "OK") + { + //프린터 상태 체크 실패 시에도 Port Close(20170508-조충연K) + CloseDevice(); + + devStatus.Printer.Status = "Receipt Print Fail"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter Fail " + devStatus.Printer.ErrorStatus); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter Fail " + devStatus.Printer.ErrorStatus); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter Fail " + devStatus.Printer.ErrorStatus); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + else + { + devStatus.Printer.Status = "Receipt Print Success"; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter SUCCESS"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter SUCCESS"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter SUCCESS"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + CloseDevice(); + } + else if(m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.RS232) + { + //if (m_serialPort == null || m_serialPort.IsOpen == false) + //{ + // return false; + //} + + //if (CheckPrinter() == false) + //{ + // //프린터 상태 체크 실패 시에도 Port Close(20170508-조충연K) + // CloseDevice(); + // WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0691)); + // return false; + //} + + + // PAGE MODE 에서 Print NV bit image 명령어(FS p)를 사용할 수 없으므로 + // Serial I/F 사용 시에는 PAGE MODE 사용 안 함 (2016/06/16-CYCHO) + // (RS232) Begin a transaction. + //TransmitCommand(PosConst.ESCP_COMMAND.SET_PAGE_MODE); + + StringBuilder sbBuffer = new StringBuilder(); + + int nCnt = 0; + int nEndIdx; + for (int i = 0; i < (nEndIdx = pPrintData.Length); i++) + { + sbBuffer.Append(pPrintData[i]); + sbBuffer.Append(DELIMETER); + nCnt++; + //20180611 프린터 미출력 개선 02Printer.exe start, 20180719 + #if(PRT_O2PRINTER) + if(nCnt >= 1000 || i + 1 == nEndIdx) + #else + if(nCnt >= 100 || i + 1 == nEndIdx) + #endif + //20180611 프린터 미출력 개선 02Printer.exe end, 20180719 + { + nCnt = 0; + this.PrintLineDataGroup(sbBuffer.ToString()); + sbBuffer.Clear(); + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + pPrintData.Length.ToString() + "," + i.ToString()); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + pPrintData.Length.ToString() + "," + i.ToString()); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + pPrintData.Length.ToString() + "," + i.ToString()); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter SUCCESS"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter SUCCESS"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "ReceiptPrinter SUCCESS"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + //// 빚은몰 웹페이지에서 출력 기능이 존재하여 계속 물고 있을 수 없다.(안호성C - 2017.04.28) + //CloseDevice(); + bRet = true; + } + catch (Exception ex) + { + devStatus.Printer.Status = "Receipt Print Fail"; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return bRet; + } + + return bRet; + } + #endregion + + #region Print Bitmap image + /// + /// BMP 이미지를 byte로 반환 + /// + /// + private byte[] GetSelectBitImageByte(string sFilePath, double nImgWidth, bool bImgScale) + { + byte[] bytes = new byte[0]; + try + { + // BMP파일 경로가 없거나 경로에 파일이 없으면 return + if (sFilePath == "" || File.Exists(sFilePath) == false) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "BMP File not Exists : " + sFilePath); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "BMP File not Exists : " + sFilePath); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "BMP File not Exists : " + sFilePath); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + return null; + } + + ConvertBitmapData data = GetBitmapData(sFilePath, nImgWidth, bImgScale); + + BitArray dots = data.Dots; + byte[] width = BitConverter.GetBytes(data.Width); + + int offset = 0; + MemoryStream stream = new MemoryStream(); + BinaryWriter bw = new BinaryWriter(stream); + + // 초기화 + bw.Write((char)0x1B); + bw.Write('@'); + + bw.Write((char)0x1B); + bw.Write('3'); + bw.Write((byte)24); + + bw.Write((char)0x1B); + bw.Write((char)0x61); + bw.Write((char)0x31); + + while (offset < data.Height) + { + /* Select bit image mode + * [Format] ASCII ESC ✻ m nL nH d1 ... dk + * Hex 1B 2A m nL nH d1 ... dk + * Decimal 27 42 m nL nH d1 ... dk + *------------------------------------------------- + * m Mode Number of bits for Dot density Amount of data (k) + * vertical data in horizontal + * 0 8-dot single-density 8 Single-density nL + nH × 256 + * 1 8-dot double-density 8 Double-density nL + nH × 256 + * 32 24-dot single-density 24 Single-density (nL +nH × 256) × 3 + * 33 24-dot double-density 24 Double-density (nL + nH × 256) × 3 + */ + bw.Write((char)0x1B); + bw.Write('*'); // bit-image mode(0x2A) + bw.Write((byte)33); // 24-dot double-density + bw.Write(width[0]); // width low byte + bw.Write(width[1]); // width high byte + + for (int x = 0; x < data.Width; ++x) + { + for (int k = 0; k < 3; ++k) + { + byte slice = 0; + for (int b = 0; b < 8; ++b) + { + int y = (((offset / 8) + k) * 8) + b; + // Calculate the location of the pixel we want in the bit array. + // It'll be at (y * width) + x. + int i = (y * data.Width) + x; + + // If the image is shorter than 24 dots, pad with zero. + bool v = false; + if (i < dots.Length) + { + v = dots[i]; + } + slice |= (byte)((v ? 1 : 0) << (7 - b)); + } + + bw.Write(slice); + } + } + offset += 24; // 24-dot double-density + bw.Write((char)0x0A); + } + // Restore the line spacing to the default of 30 dots. + bw.Write((char)0x1B); + bw.Write('3'); + bw.Write((byte)30); + + bw.Flush(); + bytes = stream.ToArray(); + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : "+ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception : "+ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + + return bytes; + } + + internal class ConvertBitmapData + { + public BitArray Dots { get; set; } + + public int Height { get; set; } + + public int Width { get; set; } + } + + private ConvertBitmapData GetBitmapData(string sFilePath, double nImgWidth, bool bImgScale) + { + try + { + using(var bitmaptmp = (Bitmap)Bitmap.FromFile(sFilePath)) + { + Bitmap bitmap = bitmaptmp; + + var threshold = 127; + var index = 0; + + if(nImgWidth <= 0) + { + nImgWidth = (double)bitmap.Width; + } + double multiplier = nImgWidth; + + double scale = (double)(multiplier / (double)bitmap.Width); + if (!bImgScale) + scale = 1; + + int xheight = (int)(bitmap.Height * scale); + int xwidth = (int)(bitmap.Width * scale); + var dimensions = xwidth * xheight; + var dots = new BitArray(dimensions); + + for(var y = 0;y < xheight;y++) + { + for(var x = 0;x < xwidth;x++) + { + var _x = (int)(x / scale); + var _y = (int)(y / scale); + var color = bitmap.GetPixel(_x, _y); + var luminance = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11); + dots[index] = (luminance < threshold); + index++; + } + } + + return new ConvertBitmapData() { Dots = dots, Height = (int)(bitmap.Height * scale), Width = (int)(bitmap.Width * scale) }; + } + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" +ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" +ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + return null; + } + + #endregion + + #region Upload image to NV memory region + /// + /// Logo BMP 파일을 프린터 메모리에 Upload + /// + /// + public bool SetLogoBmp() + { + string sTopLogoTargetFile = string.Empty; + string sBotLogoTargetFile = string.Empty; + string sTopLogoFile = string.Empty; + string sBotLogoFile = string.Empty; + string[] sLogoFiles = null; + + //if (SetTopLogo && SetBottomLogo) return true; + + try + { + + sTopLogoFile = BaseFrame.BaseCom.NxImgPath + m_cPosStatus.Base.BrandDiv + "_TOP.bmp"; + sBotLogoFile = BaseFrame.BaseCom.NxImgPath + m_cPosStatus.Base.BrandDiv + "_BOT.bmp"; + + if(File.Exists(sTopLogoFile)) + { + if(File.Exists(sBotLogoFile)) + { + sLogoFiles = new string[] { sTopLogoFile, sBotLogoFile }; + } + else + { + sLogoFiles = new string[] { sTopLogoFile }; + } + } + else + { + //SetTopLogo = false; + //SetBottomLogo = false; + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, " Logo file Not Exists ", sTopLogoFile + "," + sBotLogoFile); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, " Logo file Not Exists ", sTopLogoFile + "," + sBotLogoFile); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, " Logo file Not Exists ", sTopLogoFile + "," + sBotLogoFile); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + return true; + } + + foreach(String img in sLogoFiles) + { + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Logo file : "+img); + } + + if (devStatus.Printer.Open == false) return false; + + if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.OPOS) + { + for (int i = 0; i < sLogoFiles.Length; i++) + { + posprinter.SetBitmap(i + 1, PrinterStation.Receipt, sLogoFiles[i], 496, PosPrinter.PrinterBitmapCenter); + System.Threading.Thread.Sleep(1000); + } + } + else if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.RS232) + { + switch (m_cPosStatus.Base.OlePosPrinterModel) + { + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_TM_T88II: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TM_T88III: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._3_TM_T88IV: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._4_TM_T88V: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_TRST_A00: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._9_TP_600: + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._10_GIANT_100S: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._7_1NR://2018.01.22;"7:4610_1NR" 모델 추가, 이미지 처리는 _1_EPSON 과 동일;girak.kim + default: + SetBitmap_EPSON(sLogoFiles); + break; + case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + SetBitmap_TOSHIBA(sLogoFiles); + break; + //case PosConst.POS_DEVICE_LIST.POS_PRINTER._11_P2C_All_In_One: + case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + break; + } + // 이미지 upload 후 sleep 필수 + System.Threading.Thread.Sleep(8000); + } + devStatus.Printer.Status = "LOGO BMP DOWN SUCCESS"; + //SetTopLogo = true; + //SetBottomLogo = true; + + UserLog.WriteLogFile(UserCom.LOG_OP, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "devStatus.Printer.Status:"+devStatus.Printer.Status); + + + return true; + } + catch(Exception ex) + { + devStatus.Printer.Status = "LOGO BMP DOWN FAIL"; + //SetBottomLogo = false; + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetLogoBmp Exception, devStatus.Printer.Status : " + devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetLogoBmp Exception, devStatus.Printer.Status : " + devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetLogoBmp Exception, devStatus.Printer.Status : " + devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + return false; + } + } + + private void SetBitmap_TOSHIBA(string[] sFileName) + { + byte[] bytes; + try + { + int nBitmapCnt = sFileName.Length; + + MemoryStream stream = new MemoryStream(); + BinaryWriter bw = new BinaryWriter(stream); + + for(int nRow = 0;nRow < nBitmapCnt;nRow++) + { + bw.Write((char)0x1F); + bw.Write((char)0x30); + + bw.Write((byte)(3 + nRow)); + + byte[] raw = File.ReadAllBytes(sFileName[nRow]); + + bw.Write((char)0x1F); + for(int i = 0;i < raw.Length;i++) + { + bw.Write(raw[i]); + } + } + bw.Flush(); + bytes = stream.ToArray(); + + if (bytes != null && bytes.Length > 0) + { + TransmitCommand(bytes, false); + } + } + catch (Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_TOSHIBA() Exception : " + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_TOSHIBA() Exception : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_TOSHIBA() Exception : " + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + /// + /// 명판 출력할 로고 이미지 Set + /// + /// 명판 출력 파일명 + /// + private void SetBitmap_EPSON(string[] sFileName) + { + byte[] bytes; + try + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON Start"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON Start"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON Start"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + /* ────────────────────────────────────────────────────── + * [Name] Define NV bit image + * [Format] ASCII FS q n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n + * Hex 1C 71 n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n + * Decimal 28 113 n [xL xH yL yH d1...dk]1...[xL xH yL yH d1...dk]n + * [Description] Defines the NV bit image in the NV graphics area. + * • n specifies the number of defined NV bit images. + * • xL, xH specifies (xL + xH × 256) bytes in the horizontal direction for the NV bit image you defined. + * • yL, yH specifies (yL + yH × 256) bytes in the vertical direction for the NV bit image you defined. + * • d specifies the definition data for the NV bit image (column format). + * • k indicates the number of the definition data. k is an explanation parameter; therefore it does not need to be transmitted. + * Defined Region 1 ≤ n ≤ 255 + * 0 ≤ xL ≤ 255 + * 0 ≤ xH ≤ 3 However, 1 ≤ (xL+xH×256) ≤ 1023 + * 0 ≤ yL ≤ 255 + * 0 ≤ yH ≤ 1 However, 1 ≤ (yL+yH×256) ≤ 288 + * 0 ≤ d ≤ 255 + * k = (xL+xH×256) × (yL+yH×256) ×8 + * Total defined data area = 2 M bytes (256 K bytes) + * ────────────────────────────────────────────────────── + */ + int nBitmapCnt = sFileName.Length; + + MemoryStream stream = new MemoryStream(); + BinaryWriter bw = new BinaryWriter(stream); + + // 초기화 + bw.Write((char)0x1B); + bw.Write((char)0x40); + + //// Select pripheral device + //bw.Write((char)0x1B); + //bw.Write((char)0x3D); + //bw.Write((char)0x01); + + // Define NV bit image + bw.Write((char)0x1C); // FS + bw.Write((char)0x71); // q + bw.Write((byte)nBitmapCnt); + + + for (int nRow = 0; nRow < nBitmapCnt; nRow++) + { + // 원본 이미지 Load + Bitmap image = new Bitmap(sFileName[nRow]); + // 1Bit Graysacle로 Convert + Bitmap bmptmp = ConvertGrayscale1or8Bit(image, 1); + byte[] raw = ConvertNVBitmap(bmptmp, true); + //byte[] raw = ConvertNVBitmap(image, true); + bw.Write(raw); + image.Dispose(); + bmptmp.Dispose(); + } + bw.Flush(); + bytes = stream.ToArray(); + + if (bytes != null && bytes.Length > 0) + { + TransmitCommand(bytes, false); + } + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON End"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON End"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON End"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON Exception : " + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON Exception : " + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_ERROR, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "SetBitmap_EPSON Exception : " + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + private byte[] ConvertNVBitmap(Bitmap bitmap, bool bIncludeSize) + { + int baseIndex = ((bIncludeSize) ? 4 : 0); + int xSize = (bitmap.Width / 8); + if (xSize * 8 != bitmap.Width) + { + xSize++; + } + int ySize = (bitmap.Height / 8); + if (ySize * 8 != bitmap.Height) + { + ySize++; + } + + byte[] raw = new byte[xSize * ySize * 8 + ((bIncludeSize) ? 4 : 0)]; + + try + { + for (int i = 0; i < raw.Length; raw[i++] = 0) ; + + if (bIncludeSize) + { + raw[0] = (byte)(xSize & 0x00FF); + raw[1] = (byte)(xSize & 0xFF00); + raw[2] = (byte)(ySize & 0x00FF); + raw[3] = (byte)(ySize & 0xFF00); + } + + int k = (raw[0] + raw[1] * 256) * (raw[2] + raw[3] * 256) * 8; + if (k > 2000000) + { + throw new Exception("Incorrect size"); + } + if (raw[0] < 0 || raw[0] > 255 || raw[1] < 0 || raw[1] > 3 || (raw[0] + raw[1] * 255) < 1 || (raw[0] + raw[1] * 255) > 1023 || + raw[2] < 0 || raw[2] > 255 || raw[3] < 0 || raw[3] > 1 || (raw[2] + raw[3] * 255) < 1 || (raw[2] + raw[3] * 255) > 288) + { + throw new Exception("Incorrect size"); + } + + for (int x = 0; x < bitmap.Width; x++) + { + for (int y = 0; y < bitmap.Height; y++) + { + Color color = bitmap.GetPixel(x, y); + if (RGBGreatEqual(color, 255, 255, 128)) + { + continue; + } + int idx = (ySize * x) + y / 8; + byte mask = (byte)(0x80 >> (y % 8)); + raw[idx + baseIndex] |= mask; + } + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + ex.Message); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + return raw; + } + + private static bool RGBGreatEqual(Color c1, int R, int G, int B) + { + return (c1.R >= R && c1.G >= G && c1.B >= B); + } + + private Bitmap ConvertGrayscale1or8Bit(System.Drawing.Bitmap b, int bitpixel) + { + if (bitpixel != 1 && bitpixel != 8) throw new System.ArgumentException("1 or 8", "bit"); + + int w = b.Width, h = b.Height; + IntPtr hbm = b.GetHbitmap(); + + BITMAPINFO bmi = new BITMAPINFO(); + bmi.biSize = 40; + bmi.biWidth = w; + bmi.biHeight = h; + bmi.biPlanes = 1; + bmi.biBitCount = (short)bitpixel; + bmi.biCompression = BI_RGB; + bmi.biSizeImage = (uint)(((w + 7) & 0xFFFFFFF8) * h / 8); + bmi.biXPelsPerMeter = 1000000; + bmi.biYPelsPerMeter = 1000000; + + uint ncols = (uint)1 << bitpixel; + bmi.biClrUsed = ncols; + bmi.biClrImportant = ncols; + bmi.cols = new uint[256]; + if (bitpixel == 1) { bmi.cols[0] = MAKERGB(0, 0, 0); bmi.cols[1] = MAKERGB(255, 255, 255); } + else { for (int i = 0; i < ncols; i++) bmi.cols[i] = MAKERGB(i, i, i); } + + IntPtr bits0; + IntPtr hbm0 = CreateDIBSection(IntPtr.Zero, ref bmi, DIB_RGB_COLORS, out bits0, IntPtr.Zero, 0); + IntPtr sdc = GetDC(IntPtr.Zero); + IntPtr hdc = CreateCompatibleDC(sdc); SelectObject(hdc, hbm); + IntPtr hdc0 = CreateCompatibleDC(sdc); SelectObject(hdc0, hbm0); + + BitBlt(hdc0, 0, 0, w, h, hdc, 0, 0, SRCCOPY); + + System.Drawing.Bitmap b0 = System.Drawing.Bitmap.FromHbitmap(hbm0); + + DeleteDC(hdc); + DeleteDC(hdc0); + ReleaseDC(IntPtr.Zero, sdc); + DeleteObject(hbm); + DeleteObject(hbm0); + + return b0; + } + private static uint MAKERGB(int r, int g, int b) + { + return ((uint)(b & 255)) | ((uint)((r & 255) << 8)) | ((uint)((g & 255) << 16)); + } + #endregion + + #region (RS232통신) 텍스트 출력 함수 + + private void WriteData(string sText) + { + byte[] outputBytes = System.Text.Encoding.Default.GetBytes(sText); + + TransmitCommand(outputBytes); + } + + /// + /// 텍스트 왼쪽 정렬로 출력 후 Line feed + /// + /// + /// + private void WriteLine(string sText, int nAlign = PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + sText = sText.Trim('\n').Trim('\r'); + byte[] outputBytes = System.Text.Encoding.Default.GetBytes(sText); + + if (nAlign == PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.LEFT_ALIGN, false); + } + else if (nAlign == PosConst.PRINT_ALIGN.CENTER_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.CENTER_ALIGN, false); + } + else if (nAlign == PosConst.PRINT_ALIGN.RIGHT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.RIGHT_ALIGN, false); + } + + TransmitCommand(outputBytes); + + TransmitCommand(PosConst.ESCP_COMMAND.LEFT_ALIGN, false); + + TransmitCommand(PosConst.ESCP_COMMAND.LINE_FEED); + } + /// + /// BOLD 옵션으로 텍스트 출력 후 Line feed + /// + /// + /// + private void WriteLineBold(string sText, int nAlign = PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.BOLD_ON); + WriteLine(sText, nAlign); + TransmitCommand(PosConst.ESCP_COMMAND.BOLD_OFF); + } + /// + /// 텍스트를 가로, 세로 2배 확대로 출력 후 Line feed + /// + /// + /// + private void WriteLineZoom(string sText, int nAlign = PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.ZOOM_ON); + WriteLine(sText, nAlign); + TransmitCommand(PosConst.ESCP_COMMAND.ZOOM_OFF); + } + /// + /// 텍스트를 가로 2배 확대로 출력 후 Line feed + /// + /// + /// + private void WriteLineWidthX2(string sText, int nAlign = PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.WIDTH_X2_ON); + WriteLine(sText, nAlign); + TransmitCommand(PosConst.ESCP_COMMAND.WIDTH_X2_OFF); + } + /// + /// 텍스트를 세로 2배 확대로 출력 후 Line feed + /// + /// + /// + private void WriteLineHeightX2(string sText, int nAlign = PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.HEIGHT_X2_ON); + WriteLine(sText, nAlign); + TransmitCommand(PosConst.ESCP_COMMAND.HEIGHT_X2_OFF); + } + /// + /// Set line spacing + /// + /// nLines < 0 일 경우, Set default line spacing + /// + private void SetLineSpace(int nLines) + { + if (nLines >= 0) + { + TransmitCommand(buildESCPCommand(PosConst.ESCP_COMMAND.SET_LINE_SPACING, (byte)nLines)); + } + else + { + TransmitCommand(PosConst.ESCP_COMMAND.SET_DEFAULT_LINE_SPACING); + } + } + /// + /// Underline 옵션으로 텍스트 출력 후 Line feed + /// + /// + /// + private void WriteLineUnderline(string sText, int nAlign = PosConst.PRINT_ALIGN.LEFT_ALIGN) + { + TransmitCommand(PosConst.ESCP_COMMAND.UNDERLINE_ON); + WriteLine(sText, nAlign); + TransmitCommand(PosConst.ESCP_COMMAND.UNDERLINE_OFF); + } + #endregion + + #region (RS232) 명령어 조합 및 전송 + private byte[] buildESCPCommand(byte[] command, byte[] args) + { + byte[] ESCPCommand = new byte[command.Length + args.Length]; + + Array.Copy(command, 0, ESCPCommand, 0, command.Length); + Array.Copy(args, 0, ESCPCommand, command.Length, args.Length); + + return ESCPCommand; + } + + private byte[] buildESCPCommand(byte[] command, byte arg) + { + byte[] ESCPCommand = new byte[command.Length + 1]; + + Array.Copy(command, 0, ESCPCommand, 0, command.Length); + ESCPCommand[command.Length] = arg; + + return ESCPCommand; + } + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + private void TransmitCommand(byte[] aCmd, bool bSleepOn = true) + #endif + //변경 + #if(PRT_O2PRINTER) + private void TransmitCommand(byte[] aCmd, bool bSleepOn = true, bool bHeathChk = false) + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + { + try + { + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + if (m_serialPort.IsOpen == true) + { + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + int iOffset = 0; + // Send 를 위한 buffer 크기를 1024 byte 로 고정(20170608) + int iReadBuf = 1024; + //int iReadBuf = m_serialPort.WriteBufferSize; + + while (true) + { + if (iOffset >= aCmd.Length) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "TransmitCommand Finish " + aCmd.Length.ToString() + "," + iOffset.ToString()); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "TransmitCommand Finish " + aCmd.Length.ToString() + "," + iOffset.ToString()); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "TransmitCommand Finish " + aCmd.Length.ToString() + "," + iOffset.ToString()); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + break; + } + if (iReadBuf + iOffset > aCmd.Length) + { + iReadBuf = aCmd.Length - iOffset; + } + + //#20180123 프린터 다운 현상 관련 로그 추가 start + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() Start"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() Start"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() Start"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + //#20180123 프린터 다운 현상 관련 로그 추가 end + + + // grayber@20180124 프린터 출력관련 오류 수정 start - 프린터 배열 오프셋 설정 오류로 변수 변경 + //기존 + //m_serialPort.Write(aCmd, iOffset, aCmd.Length); + //수정 + //#20180329 프린터 간헐적 미출력 증상 수정 start + //전체 버퍼 한번에 출력 하도록 수정 + #if(PRT_ALLWRITE) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write data: " + Encoding.Default.GetString(aCmd)); + + m_serialPort.Write(Encoding.Default.GetString(aCmd)); + //m_serialPort.Write(aCmd, iOffset, aCmd.Length); + #else + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + m_serialPort.Write(aCmd, iOffset, iReadBuf); + #endif + //변경 + #if(PRT_O2PRINTER) + // TCP 접속 정보 + string sPrtTcpIp = "127.0.0.1"; + string sPrtTcpPort = "9110"; + + // 프린터 PORT 번호 + string sPrtPort = CmUtil.MidH(m_cPosStatus.Base.OlePosPrinterSerialPortNumber, 3, m_cPosStatus.Base.OlePosPrinterSerialPortNumber.Length - 3); + + //Connect + int iRet = OpenPrtTcpDevice(sPrtTcpIp, int.Parse(sPrtTcpPort)); + + //#20181114 영수증 프린터 base63로 전송 start + //기존 + #region 기존 + + //출력 + // 0001: 출력, 0002: 헬스체크 + string sPrtGb = "0001"; + string sTimeOut = "00000"; + + if (bHeathChk == true) + { + sPrtGb = "0002"; + sTimeOut = "00500"; + } + else if (bHeathChk == false) + { + sPrtGb = "0001"; + sTimeOut = "00000"; + } + + // tcp 헤더 + string sCommHeader = sPrtGb + // 0001: 출력, 0002: 헬스체크 + string.Format("{0:D2}", Convert.ToInt32(sPrtPort)) + // 01,02,03 포트번호 + string.Format("{0:D6}", (int)m_cPosStatus.Base.OlePosPrinterSerialBaudRate) + // 프린터 속도 + sTimeOut + // 타임아웃 + string.Format("{0:D6}", (int)aCmd.Length); // 출력 데이터 길이 + + // tcp 종료구분자 + string sETX = string.Format("{0}", (char)0x03) + + string.Format("{0}", (char)0x03) + + string.Format("{0}", (char)0x03); + + // tcp 헤더 byte로 변환 + byte[] sSendbt = null; + sSendbt = Encoding.Default.GetBytes(sCommHeader); + + // tcp 종료구분자 byte로 변환 + byte[] byEtx = null; + byEtx = Encoding.Default.GetBytes(sETX); + + // 전체 tcp 전송 데이터 byte 배열 생성 + byte[] sSendData = new byte[sSendbt.Length + aCmd.Length + byEtx.Length]; + + // sSendData 배열에 tcp 헤더 데이터 복사 + Array.Copy(sSendbt, 0, sSendData, 0, sSendbt.Length); + // sSendData 배열에 영수증 출력 데이터 복사 + Array.Copy(aCmd, 0, sSendData, sSendbt.Length, aCmd.Length); + // sSendData 배열에 tcp 종료구분자 복사 + Array.Copy(byEtx, 0, sSendData, sSendbt.Length + aCmd.Length, byEtx.Length); + + // 응답 배열 초기화 + bytRecvBuff = null; + + // 전체 한번에 전송하기 위에 전송 길이 재설정 + iOffset += aCmd.Length; + + // byte[], int, ref byte[], int + int iPrtSendSocket = m_cPrtSocket.Prt_ByPassSendReceiveData(sSendData, lRecvLen, ref bytRecvBuff, lTimeout); + + //string sTemp0 = Encoding.Default.GetString(aCmd); + + #endregion 기존 + //변경 + #region 변경 + /* + //출력 + // 0101: 출력, 0102: 헬스체크 + string sPrtGb = "0101"; + string sTimeOut = "00000"; + + if (bHeathChk == true) + { + sPrtGb = "0102"; + sTimeOut = "00500"; + } + else if (bHeathChk == false) + { + sPrtGb = "0101"; + sTimeOut = "00000"; + } + + string sSendDataBase64 = Convert.ToBase64String(aCmd); + byte[] btSendDataBase64 = Encoding.Default.GetBytes(sSendDataBase64); + + + // tcp 헤더 + string sCommHeader = sPrtGb + // 0001: 출력, 0002: 헬스체크 + string.Format("{0:D2}", Convert.ToInt32(sPrtPort)) + // 01,02,03 포트번호 + string.Format("{0:D6}", (int)m_cPosStatus.Base.OlePosPrinterSerialBaudRate) + // 프린터 속도 + sTimeOut + // 타임아웃 + string.Format("{0:D6}", (int)btSendDataBase64.Length); // 출력 데이터 길이 + + // tcp 종료구분자 + string sETX = string.Format("{0}", (char)0x03) + + string.Format("{0}", (char)0x03) + + string.Format("{0}", (char)0x03); + + // tcp 헤더 byte로 변환 + byte[] sSendbt = null; + sSendbt = Encoding.Default.GetBytes(sCommHeader); + + // tcp 종료구분자 byte로 변환 + byte[] byEtx = null; + byEtx = Encoding.Default.GetBytes(sETX); + + // 전체 tcp 전송 데이터 byte 배열 생성 + byte[] sSendData = new byte[sSendbt.Length + btSendDataBase64.Length + byEtx.Length]; + + // sSendData 배열에 tcp 헤더 데이터 복사 + Array.Copy(sSendbt, 0, sSendData, 0, sSendbt.Length); + // sSendData 배열에 영수증 출력 데이터 복사 + Array.Copy(btSendDataBase64, 0, sSendData, sSendbt.Length, btSendDataBase64.Length); + // sSendData 배열에 tcp 종료구분자 복사 + Array.Copy(byEtx, 0, sSendData, sSendbt.Length + btSendDataBase64.Length, byEtx.Length); + + // 응답 배열 초기화 + bytRecvBuff = null; + + // 전체 한번에 전송하기 위에 전송 길이 재설정 + iOffset += aCmd.Length; + + // byte[], int, ref byte[], int + int iPrtSendSocket = m_cPrtSocket.Prt_ByPassSendReceiveData(sSendData, lRecvLen, ref bytRecvBuff, lTimeout); + + //string sTemp0 = Encoding.Default.GetString(aCmd); + //string sTemp1 = Encoding.Default.GetString(btSendDataBase64); + //byte[] sBtTemp1 = Convert.FromBase64String(sTemp1); + //string sTemp2 = Encoding.Default.GetString(sBtTemp1); + */ + #endregion 변경 + //#20181114 영수증 프린터 base63로 전송 end + + //System.Threading.Thread.Sleep(2000); + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + // grayber@20180124 프린터 출력관련 오류 수정 end + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //프린터 ErrorReceived + #if(PRT_RECVERR) //프린터 포트 동작 변경시 + //m_serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + m_serialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + + //#20180123 프린터 다운 현상 관련 로그 추가 start + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() End"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() End"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() End"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + //#20180123 프린터 다운 현상 관련 로그 추가 end + + //#20180329 프린터 간헐적 미출력 증상 수정 start + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + //전체 버퍼 한번에 출력 하도록 수정 + #if(PRT_ALLWRITE) //프린터 포트 동작 변경시 + iOffset += aCmd.Length; + #else + iOffset += iReadBuf; + #endif + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + + //#20180329 프린터 간헐적 미출력 증상 수정 end + + System.Threading.Thread.Sleep(10); + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, aCmd.Length.ToString() + "," + iOffset.ToString()); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, aCmd.Length.ToString() + "," + iOffset.ToString()); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, aCmd.Length.ToString() + "," + iOffset.ToString()); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + //m_serialPort.Write(Encoding.Default.GetString(aCmd, 0, aCmd.Length)); + + if (bSleepOn == true) System.Threading.Thread.Sleep(30); + + //20180611 프린터 미출력 개선 02Printer.exe start + //기존 + #if(PRT_O2PRINTER) + #else + } + else + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Serial Port Is Not Opened"); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Serial Port Is Not Opened"); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Serial Port Is Not Opened"); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + + this.CloseDevice(); + } + + //#20180329 프린터 간헐적 미출력 증상 수정 start + //출력 할때 마다 open, close 하는 부분 한번만 하도록 수정 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + finally + { + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Prineter Write : TransmitCommand() finally"); + } + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + #endregion + + #region 돈통 Open함수 + /// + /// 돈통 Open 함수 + /// + public void OpenCashDrawer() + { + try + { + if (m_cPosStatus.Base.OlePosCashDrawerType == PosConst.POS_DEVICE_LIST.CASHDRAWER._1_PRINTER) + { + this.AddToPrinterBuffer(Encoding.UTF8.GetBytes(CMD_OPEN_CASHDRAWER)); + //if (devStatus.Printer.Open == false) + //{ + // this.OpenDevice(PosConst.OPOS_DEVICE.POSPRINTER, PosConst.OPOS_LDN.POSPRINTER); + //} + //switch (m_cPosStatus.Base.OlePosPrinterModel) + //{ + // case PosConst.POS_DEVICE_LIST.POS_PRINTER._1_EPSON: + // case PosConst.POS_DEVICE_LIST.POS_PRINTER._6_P2C: + // default: + // TransmitCommand(PosConst.ESCP_COMMAND.OPEN_CASHDRAWER); + // break; + // case PosConst.POS_DEVICE_LIST.POS_PRINTER._2_TOSHIBA: + // TransmitCommand(PosConst.ESCP_COMMAND.OPEN_CASHDRAWER_FOR_TOSHIBA); + // break; + //} + //if(devStatus.Printer.Open == true) + //{ + // this.CloseDevice(); + //} + } + } + catch(Exception ex) + { + //#20180329 프린터 간헐적 미출력 증상 수정 start + //로그 생성 위치 변경 UserCom.LOG_IOS, LOG_ERROR -> UserCom.LOG_OP + //기존 + /* + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + */ + //변경 + #if(PRT_ERROR) //프린터 포트 동작 변경시 + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception :" + devStatus.Printer.Status); + #else + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Printer.Status); + #endif + //#20180329 프린터 간헐적 미출력 증상 수정 end + } + } + + //20180611 프린터 미출력 개선 02Printer.exe start + //변경 + #if(PRT_O2PRINTER) + #region Printer OPEN / CLOSE + public int OpenPrtTcpDevice(string sIp, int iPort) + { + int iRet = UserCom.NG; + try + { + // PING 테스트로 프린터 가능여부 확인(2017.05.30) + if (CmUtil.PingTest(sIp) == false) + { + if (CmUtil.PingTest(sIp) == false) + { + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrtTcp PingTest Fail"); + return iRet; + } + + } + + m_cPrtSocket = new TcpSocket(sIp, iPort, lTimeout); + + if (m_cPrtSocket == null) + { + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "TcpSocket null"); + return -9; + } + + // 접속 3회 시도 + for (int nLoop = 0; nLoop < 1; nLoop++) + { + try + { + iRet = m_cPrtSocket.Connect(-1); + } + catch (Exception ex) + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrtTcp Exception Error=" + ex.Message); + m_cPrtSocket.Close(); + continue; + } + // 접속 실패 + if (iRet != UserCom.OK) + { + iRet = UserCom.NG; + UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "PrtTcp(Ethernet) Connect Error"); + m_cPrtSocket.Close(); + continue; + } + + break; + } + + return iRet; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + return -99; + } + } + + public void ClosePrtTcpDevice() + { + try + { + if (m_cPrtSocket != null) + { + m_cPrtSocket.Close(); + m_cPrtSocket = null; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_OP, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + #endif + //20180611 프린터 미출력 개선 02Printer.exe end + #endregion + } +} \ No newline at end of file diff --git a/Agent/OLEDevice/DeviceScale.cs b/Agent/OLEDevice/DeviceScale.cs new file mode 100644 index 0000000..d6a0c60 --- /dev/null +++ b/Agent/OLEDevice/DeviceScale.cs @@ -0,0 +1,324 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.IO.Ports; +using System.ComponentModel; + +using Cosmos.UserFrame; +using Cosmos.Common; + +namespace Cosmos.OLEDevice +{ + public class DeviceScale : IScaleUs + { + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = null; + + /// + /// Pos 상태 정보 객체 + /// + public PosStatus m_cPosStatus = null; + + /// + /// RS232통신을 위한 시리얼포트 객체 + /// + private SerialPort m_serialPort = null; + + private BackgroundWorker bw = null; + + private string m_sReceivedData = string.Empty; + + #region 초기화 + /// + /// 생성자 + /// + public DeviceScale() + { + try + { + m_cPosStatus = (PosStatus)StateObject.POS; + devStatus = (DeviceStatus)StateObject.DEVICE; + + DeviceStatusInit(); + bw = new BackgroundWorker(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void DeviceStatusInit() + { + devStatus.Scale.Open = false; + devStatus.Scale.Data = string.Empty; + devStatus.Scale.Status = string.Empty; + } + #endregion + + #region OPEN/CLOSE 처리 함수 + /// + /// 디바이스 OPEN시 처리 함수 + /// + /// + public bool OpenDevice(string sSerialPort, long lBaudrate) + { + bool bRet = false; + try + { + if (m_serialPort != null) + { + m_serialPort.Close(); + System.Threading.Thread.Sleep(50); + m_serialPort = null; + } + + if (m_serialPort == null) + { + m_serialPort = new SerialPort(); + if( m_serialPort == null) + { + devStatus.Scale.Open = false; + devStatus.Scale.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Scale.Status); + return bRet; + } + + m_serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived); + //m_serialPort.PinChanged += new SerialPinChangedEventHandler(serialPort_PinChanged); + //m_serialPort.ErrorReceived += new SerialErrorReceivedEventHandler(serialPort_ErrorReceived); + + m_serialPort.NewLine = "\r\n"; + m_serialPort.Encoding = Encoding.ASCII; + + m_serialPort.WriteBufferSize = 512; + m_serialPort.PortName = sSerialPort; + m_serialPort.BaudRate = (int)lBaudrate; + m_serialPort.DataBits = 7; + m_serialPort.StopBits = StopBits.One; + m_serialPort.Parity = Parity.Even; + m_serialPort.Handshake = Handshake.None; + m_serialPort.ReadTimeout = 500; + m_serialPort.WriteTimeout = 2000; + + m_serialPort.Open(); + if (m_serialPort.IsOpen == false) + { + devStatus.Scale.Open = false; + devStatus.Scale.Status = "SERIAL PORT OPEN ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Scale.Status); + return bRet; + } + + devStatus.Scale.Open = true; + devStatus.Scale.Status = "SUCCESS"; + + bw.DoWork += OlePosHandler; + bRet = true; + } + else + { + devStatus.Scale.Open = false; + devStatus.Scale.Status = "SERIAL PORT ERROR"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + devStatus.Scale.Status); + return bRet; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + /// + /// 디바이스 Close시 처리 함수 + /// + /// + public bool CloseDevice() + { + bool bRet = false; + + try + { + if (m_serialPort == null) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Close fail(m_serialPort == null)"); + return bRet; + } + + m_serialPort.Close(); + bRet = true; + m_serialPort = null; + devStatus.Scale.Status = "CLOSE"; + devStatus.Scale.Open = false; + bw.DoWork -= OlePosHandler; + } + catch (Exception ex) + { + devStatus.Printer.Status = "CLOSE EXCEPTION"; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRet; + } + #endregion + + #region 이벤트 처리 + private void OlePosHandler(object sender, DoWorkEventArgs e) + { + try + { + if (PosOLEDevice.m_delegateOlePos != null) + PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.SCALE, devStatus.Scale.Data, string.Empty, string.Empty); + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.INFO_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "이벤트 전송 대상 없음"); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) + { + SerialPort serialPort = (SerialPort)sender; + string sHeader = string.Empty; + string sWeight = string.Empty; + string sUnit = string.Empty; + + try + { + if(!bw.IsBusy) + { + // 데이터의 Terminator는 개행문자(\r\n) 이므로 개행문자 까지 값을 읽는 ReadLine으로 수신 + string sBuf = serialPort.ReadLine(); + sHeader = sBuf.Substring(0, 2); + + // 계량모드에서의 데이터만 처리. + // ST:계량모드, QT:계수모드, US:데이터가 안정되지 않다., OL:데이터가 오버되어 있다.(계량범위를 넘었다.) + if (sHeader.Equals("ST")) + { + sWeight = sBuf.Substring(3, 9); + sUnit = sBuf.Substring(12, 3).Trim(); + + //devStatus.Scale.Data = sWeight; + devStatus.Scale.Data = sBuf; + devStatus.Scale.Unit = sUnit; + } + + bw.RunWorkerAsync(); + } + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "저울 이벤트 처리 전 이벤트 발생 불가"); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + + private void serialPort_PinChanged(object sender, SerialPinChangedEventArgs e) + { + + } + + private void serialPort_ErrorReceived(object sender, SerialErrorReceivedEventArgs e) + { + + } + #endregion + + #region 저울 0점 조정 + /// + /// 저울 0점 조정 + /// + public void ScaleCalibration() + { + byte[] bytCalibrationCmd = new byte[] { (byte)0x54, (byte)0x0A }; + + if(devStatus.Scale.Open == true) + { + m_serialPort.Write(bytCalibrationCmd, 0, bytCalibrationCmd.Length); + } + } + #endregion + + #region 무게 전송 요청 + /// + /// 무게 전송 요청 + /// + public void ScaleWeigh() + { + byte[] bytWeighCmd = new byte[] { (byte)0x53, (byte)0x0A }; + + if (devStatus.Scale.Open == true) + { + m_serialPort.Write(bytWeighCmd, 0, bytWeighCmd.Length); + } + } + #endregion + } +} diff --git a/Agent/OLEDevice/DeviceScanner.cs b/Agent/OLEDevice/DeviceScanner.cs new file mode 100644 index 0000000..19957de --- /dev/null +++ b/Agent/OLEDevice/DeviceScanner.cs @@ -0,0 +1,507 @@ +using System; +using System.Text; +using System.Threading; +using System.Runtime.InteropServices; +//using Microsoft.PointOfService; +using System.ComponentModel; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; +using Cosmos.CommonManager; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : Hand Scanner 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + public class DeviceScanner : IScannerUs + { + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus devStatus = new DeviceStatus(); + + ///// + ///// Pos for .Net Scanner 객체 + ///// + //private Scanner scanner = null; + ///// + ///// Pos for .Net의 Device 정보를 가져오기 위한 객체 + ///// + //private PosExplorer posExplorer = null; + + private string m_sScanData = string.Empty; + private string m_sScanDataLabel = string.Empty; + private string m_sScanDataType = string.Empty; + + private BackgroundWorker bw = null; + + private int m_nErrorCount = 0; + /// + /// 생성자 + /// + public DeviceScanner() + { + try + { + //posExplorer = new PosExplorer(); + devStatus = (DeviceStatus)StateObject.DEVICE; + DeviceStatusInit(); + bw = new BackgroundWorker(); + + m_nErrorCount = 0; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DevicePosPrinter.Devicescanner()", ex.Message); + } + } + + /// + /// 디바이스 Open시 처리함수 + /// + /// 장비종류(ex- "Msr","PosPrinter","Scanner"...) + /// 레지스트리 항목(ex- "DefaultMsr","DefaultPosPrinter","DefaultScanner"...) + /// + public bool OpenDevice(string sDeviceType, string sLogicalName) + { + bool bRet = false; + + try + { + //DeviceInfo devinfo = null; + + //if (sDeviceType == DeviceType.Scanner && sLogicalName == PosConst.OPOS_LDN.SCANNER) + // devinfo = posExplorer.GetDevice(DeviceType.Scanner, PosConst.OPOS_LDN.SCANNER); + //else + //{ + // devStatus.Scanner.Open = false; + // devStatus.Scanner.Status = "DEVICE INFO ERROR"; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.OpenDevice()", devStatus.Scanner.Status); + // return bRet; + //} + + //if (devinfo == null) + //{ + // devStatus.Scanner.Open = false; + // devStatus.Scanner.Status = "DEVICE INFO ERROR"; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.OpenDevice()", devStatus.Scanner.Status); + // return bRet; + //} + + //scanner = (Scanner)posExplorer.CreateInstance(devinfo); + + //if (scanner != null) + //{ + // scanner.DataEvent += new DataEventHandler(Scanner_DataEvent); + // scanner.ErrorEvent += new DeviceErrorEventHandler(Scanner_ErrorEvent); + + // try + // { + // scanner.Open(); + // } + // catch (Exception ex) + // { + // devStatus.Scanner.Status = "OPEN FAIL"; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.OpenDevice()", devStatus.Scanner.Status + " " + ex.Message); + // //UserLog.WriteAMSLog("DEV", "ERR", "0103", "GunScanner " + devStatus.Scanner.Status); + + // return bRet; + // } + + + // try + // { + // scanner.Claim(1000); + // } + // catch (Exception ex) + // { + // devStatus.Scanner.Status = "CLAIM FAIL"; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "Devicescanner.OpenDevice()", devStatus.Scanner.Status + " " + ex.Message); + // //UserLog.WriteAMSLog("DEV", "ERR", "0203", "GunScanner " + devStatus.Scanner.Status); + // //장비관련 AMS 로그 삭제 요청(2015.07.23) + + // return bRet; + // } + + // try + // { + // scanner.DeviceEnabled = true; + // } + // catch (Exception ex) + // { + // devStatus.Scanner.Status = "DEVICE ENABLED FAIL"; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.OpenDevice()", devStatus.Scanner.Status + " " + ex.Message); + // return bRet; + // } + + // try + // { + // scanner.DataEventEnabled = true; + // } + // catch (Exception ex) + // { + // devStatus.Scanner.Status = "DATAEVENT ENABLED FAIL"; + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.OpenDevice()", devStatus.Scanner.Status + " " + ex.Message); + // return bRet; + // } + // scanner.DecodeData = true; + // devStatus.Scanner.Open = true; + // devStatus.Scanner.Status = "Success"; + + // bw.DoWork += OlePosHandler; + // bRet = true; + //} + //m_nErrorCount = 0; + } + catch (Exception ex) + { + devStatus.Scanner.Open = false; + devStatus.Scanner.Status = "DEVICE OPEN EXCEPTION"; + + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.OpenDevice()", devStatus.Scanner.Status + " " + ex.Message); + return bRet; + } + return bRet; + } + + ///// + ///// + ///// + ///// + ///// + //private void Scanner_DataEvent(object sender, DataEventArgs e) + //{ + // try + // { + // if(!bw.IsBusy) + // { + // ASCIIEncoding encoder = new ASCIIEncoding(); + + // m_sScanData = encoder.GetString(scanner.ScanData); + // m_sScanDataLabel = encoder.GetString(scanner.ScanDataLabel); + // m_sScanDataType = scanner.ScanDataType.ToString(); + + // devStatus.Scanner.Data = m_sScanData; + // devStatus.Scanner.DataLabel = ""; + // //for (int i = 0; i < m_sScanDataLabel.Length; i++) + // //{ + // // if (CmUtil.IsNumber(m_sScanDataLabel.Substring(i, 1)) == true) + // // devStatus.Scanner.DataLabel += m_sScanDataLabel.Substring(i, 1); + // //} + // string sChgDataLabel = ""; + // for (int i = 0; i < scanner.ScanDataLabel.Length; i++) + // { + // if (scanner.ScanDataLabel[i] == (byte)29) + // sChgDataLabel += "|"; + // else + // sChgDataLabel += Convert.ToChar(scanner.ScanDataLabel[i]).ToString(); + // } + // for (int i = 0; i < sChgDataLabel.Length; i++) + // { + // if (CmUtil.IsNumber(sChgDataLabel.Substring(i, 1)) == true) + // { + // devStatus.Scanner.DataLabel = sChgDataLabel.Substring(i, sChgDataLabel.Length - i); + // break; + // } + // //if (sChgDataLabel.Substring(i, 1) != string.Format("{0}", (char)10) && sChgDataLabel.Substring(i, 1) != string.Format("{0}", (char)13)) + // //{ + // // devStatus.Scanner.DataLabel = devStatus.Scanner.DataLabel + sChgDataLabel.Substring(i, 1); + // //} + // } + // devStatus.Scanner.DataType = m_sScanDataType; + + // UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.Scanner_DataEvent()", + // "Data=" + m_sScanData + ", DataLabel=" + m_sScanDataLabel + "=>" + devStatus.Scanner.DataLabel + ", DataType=" + m_sScanDataType); + // bw.RunWorkerAsync(); + // } + // else + // { + // UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.Scanner_DataEvent()", "스캐너 이벤트 처리 전 이벤트 발생 불가"); + // //Cosmos.CommonManager.WinManager.ErrorMessage("해당 화면에서 스캐너를 입력 할 수 없습니다.", "스캐너 입력 오류", true); + // //MessageStartTimer(100); + // } + + // //if (PosOLEDevice.m_delegateOlePos != null) + // // PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.SCANNER, m_sScanData, devStatus.Scanner.DataLabel, m_sScanDataType); + // //else + // //{ + // // UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // // "DeviceScanner.Scanner_DataEvent()", "이벤트 전송 대상 없음."); + // // Cosmos.CommonManager.WinManager.ErrorMessage("해당 화면에서 스캐너를 입력 할 수 없습니다.", "스캐너 입력 오류", true); + // //} + + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.Scanner_DataEvent()", ex.Message); + // devStatus.Scanner.Status = "DATAEVENT ERROR"; + // } + // finally + // { + // scanner.ClearInput(); + // scanner.DataEventEnabled = true; + // } + //} + + /// + /// + /// + /// + /// + private void OlePosHandler(object sender, DoWorkEventArgs e) + { + try + { + if (PosOLEDevice.m_delegateOlePos != null) + PosOLEDevice.m_delegateOlePos(PosConst.OPOS_DEVICE.SCANNER, string.Empty, devStatus.Scanner.DataLabel, string.Empty); + else + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.OlePosHandler()", "이벤트 전송 대상 없음."); + //Cosmos.CommonManager.WinManager.ErrorMessage("해당 화면에서 스캐너를 입력 할 수 없습니다.", "스캐너 입력 오류", true); + //MessageStartTimer(100); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.OlePosHandler()", ex.Message); + } + } + + //private void MessageStartTimer(int dueTime) + //{ + // try + // { + // Thread thrBeep = new Thread(new ThreadStart(OnBeepSound)); + // thrBeep.Start(); + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.MessageStartTimer()", ex.Message); + // } + //} + + //private void OnBeepSound() + //{ + // try + // { + // CmMessage m_PosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosConfig.INI"); + // string sPosUseType = m_PosConfig.GetMessage("olepos").GetMessageValue("PosUseType"); + // string sKeyboard = m_PosConfig.GetMessage("control").GetMessageValue("Keyboard"); + + // for (int i = 0; i < 5; i++) + // { + // WinManager.BuzzSoundOn(sPosUseType, sKeyboard); + // Thread.Sleep(200); + // } + + // //CmMessage m_PosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosConfig.INI"); + + // //string sPosUseType = m_PosConfig.GetMessage("olepos").GetMessageValue("PosUseType"); + // //string sKeyboard = m_PosConfig.GetMessage("control").GetMessageValue("Keyboard"); + + // //for (int i = 0; i < 5; i++) + // //{ + // // if (sPosUseType == "2" || sPosUseType == "9" || sPosUseType == "4" || sKeyboard == "2") + // // // POS모델 ==> 2:7K, 9.B20(Toshiba) 4.3000XC(분스) + // // // POS키보드 ==> (0:104, 1:40, 2:32) + // // Console.Beep(); + // // else + // // BuzzOn(0, 0); + // // Thread.Sleep(200); + // //} + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.OnBeepSound()", ex.Message); + // } + //} + + //private void MessageStartTimer(int dueTime) + //{ + // if (m_nErrorCount < 2) + // { + // Timer t = new Timer(new TimerCallback(MessageTimerProc)); + // t.Change(dueTime, 0); + // } + //} + + //private void MessageTimerProc(object state) + //{ + // m_nErrorCount++; + // // The state object is the Timer object. + // Timer t = (Timer)state; + // t.Dispose(); + + // Cosmos.CommonManager.WinManager.ErrorMessage("해당 화면에서 스캐너를 입력 할 수 없습니다.", "스캐너 입력 오류", true); + // m_nErrorCount--; + //} + + ///// + ///// + ///// + ///// + ///// + //private void Scanner_ErrorEvent(object sender, DeviceErrorEventArgs e) + //{ + // try + // { + // ASCIIEncoding encoder = new ASCIIEncoding(); + + // m_sScanData = encoder.GetString(scanner.ScanData); + // m_sScanDataLabel = encoder.GetString(scanner.ScanDataLabel); + // m_sScanDataType = scanner.ScanDataType.ToString(); + + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.Scanner_ErrorEvent()", + // "ErrorEvent 발생 ScanData=[" + m_sScanData + "] ScanDataLabel=[" + m_sScanDataLabel + "] ScanDataType=[" + m_sScanDataType + "]"); + + // devStatus.Scanner.Data = string.Empty; + // devStatus.Scanner.DataLabel = string.Empty; + + // scanner.ClearInput(); + // scanner.DataEventEnabled = true; + + // devStatus.Scanner.Status = "ERROR EVENT"; + // } + // catch (Exception ex) + // { + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + // "DeviceScanner.Scanner_ErrorEvent()", ex.Message); + + // devStatus.Scanner.Status = "ErrorEvent Error 발생"; + // } + //} + + /// + /// Scanner StateServer 정보 초기화 + /// + private void DeviceStatusInit() + { + devStatus.Scanner.Data = ""; + devStatus.Scanner.DataLabel = ""; + devStatus.Scanner.DataType = ""; + devStatus.Scanner.DeviceName = ""; + devStatus.Scanner.Status = ""; + devStatus.Scanner.Open = false; + } + + /// + /// 디바이스 Close시 처리함수 + /// + /// + public bool CloseDevice() + { + bool bRet = false; + + try + { + //if (scanner == null) + // return bRet; + + //scanner.DataEventEnabled = false; + //scanner.DeviceEnabled = false; + //scanner.Release(); + //scanner.Close(); + //scanner = null; + bRet = true; + devStatus.Scanner.Status = "CLOSE"; + devStatus.Scanner.Open = false; + bw.DoWork -= OlePosHandler; + } + catch (Exception ex) + { + bw.DoWork -= OlePosHandler; + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.CloseDevice()", ex.Message); + + devStatus.Scanner.Status = "CLOSE EXCEPTION"; + } + return bRet; + } + + /// + /// 장비의 Event 발생 Enable 상태 설정 + /// True:사용가능, False:사용불가능 + /// + public bool DeviceEnabled + { + get + { + try + { + //if (scanner.DeviceEnabled && scanner.DataEventEnabled) + // return true; + //else + return false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.DeviceEnabled()", ex.Message); + return false; + } + } + set + { + try + { + bool bRet = SetDeviceEnabled(value); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.DeviceEnabled()", ex.Message); + } + } + } + + /// + /// 장비의 Event 발생 Enable 상태 설정 + /// True:사용가능, False:사용불가능 + /// + /// + /// + private bool SetDeviceEnabled(bool bEnable) + { + bool bRet = false; + + try + { + //scanner.DataEventEnabled = bEnable; + //scanner.DeviceEnabled = bEnable; + devStatus.Scanner.Status = "DEVICE ENABLED " + bEnable.ToString(); + bRet = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + "DeviceScanner.SetDeviceEnabled()", ex.Message); + devStatus.Scanner.Status = "DEVICE ENABLED FAIL"; + } + return bRet; + } + } +} diff --git a/Agent/OLEDevice/DeviceSignPad.cs b/Agent/OLEDevice/DeviceSignPad.cs new file mode 100644 index 0000000..95ce929 --- /dev/null +++ b/Agent/OLEDevice/DeviceSignPad.cs @@ -0,0 +1,1934 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Runtime.InteropServices; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : 사인패드 제어 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + public class DeviceSignPad : ISignPadUs + { + #region SpcnPos.DLL 함수 + /// + /// [사인패드] 전자서명 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetSign(int input_amt, byte[] input_sign_path, byte[] input_sign_name, byte[] output_msg); + + /// + /// [사인패드] 전자서명 요청 함수 EX(메세지) + /// + /// + /// + /// + /// + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetSignEx(byte[] input_msg1, byte[] input_msg2, byte[] input_msg3, byte[] input_msg4, byte[] input_sign_path, byte[] input_sign_name, byte[] output_msg); + + /// + /// [사인패드] 비밀번호 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetPin(byte[] input_pin_block, byte[] output_msg); + + /// + /// [사인패드] 사용자정보 요청 함수 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetMsg(int maskingType, byte[] show_msg, byte[] output_msg); + + /// + /// [사인패드] 사용자정보 요청 함수(MAX 처리) + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetMsg2(int maskingType, int maxLen, byte[] show_msg, byte[] output_msg); + + // 환경설정 정보 가져오기 + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetFlag(byte[] appName, byte[] keyName, byte[] output, int outputMaxLen); + + // 환경설정 정보 설정하기 + [DllImport("SpcnPos.dll")] + public static extern int SpcnSetFlag(byte[] appName, byte[] keyName, byte[] value); + + // 상호인증 요청 + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderKeyDownload(byte[] inTrmlId, byte[] inAuthInfo); + + // 무결성 요청 + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcReaderIntegrity(byte[] outResTime); + + // 키오스크 전자서명 요청 + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetKioskSign(byte[] input_sign_path, byte[] input_sign_name, byte[] output_msg); + + // 승인함수 + [DllImport("SpcnPos.dll")] + public static extern int SpcnIcPos(byte[] input_msg, int input_msg_len, byte[] signData, byte[] icData, byte[] oilData, byte[] authInfo, byte[] output_msg); + + // (RF) RF카드 정보 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardInfo(byte[] output_msg); + + // (RF) RF카드 잔액 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfCommonCardInfo(byte[] samType, byte[] output_msg); + + // (RF) RF카드 잔액 조회 (비프 여부 - 화면표시 여부로 사용) + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfCommonCardInfoEx(byte[] samType, byte[] isBeep, byte[] output_msg); + + // (RF) SAM ID조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfGetSamId(byte[] samType, byte[] output_msg); + + // (RF) T머니/EB카드 개시거래 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfStart(byte[] terminalNo, byte[] bizName, byte[] docSeq, byte[] samType, byte[] output_msg); + + // (RF) T머니/EB카드 운영정보 다운로드 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfDownOperatingData(byte[] terminalNo, byte[] bizName, byte[] docSeq, byte[] samType, byte[] output_msg); + + // (RF) PAYON SAM 등록 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPayonOpen(byte[] terminalNo, byte[] bizName, byte[] docSeq, byte[] cardType); + + /// + /// RF 시간 설정 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfReaderSetTime(); + + // (RF) 후불 결제 거래 카드 정보 요청 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfCreditCardInfo(byte[] terminalNo, byte[] samType, byte[] amount, byte[] msg1, byte[] msg2, byte[] msg3, byte[] output_msg); + + // (RF) 선불카드 지불 거래 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardApprove(byte[] terminalNo, byte[] samType, byte[] amount, byte[] msg1, byte[] msg2, byte[] msg3, byte[] output_msg); + + // (RF) 선불카드 지불 재거래 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardApproveRe(byte[] terminalNo, byte[] samType, byte[] amount, byte[] msg1, byte[] msg2, byte[] msg3, byte[] output_msg); + + // (RF) 선불카드 직전취소 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardProcCancel(byte[] terminalNo, byte[] samType, byte[] msg1, byte[] msg2, byte[] msg3, byte[] org_money, byte[] org_dateTime, byte[] org_receiptNo, byte[] output_msg); + + // (RF) 선불카드 현금반품 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardVoidCash(byte[] terminalNo, byte[] samType, byte[] msg1, byte[] msg2, byte[] msg3, byte[] org_money, byte[] org_dateTime, byte[] org_receiptNo, byte[] output_msg); + + // (RF) 선불카드 반품충전 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfPrepaidCardCancel(byte[] terminalNo, byte[] bizName, byte[] docSeq, byte[] samType, byte[] msg1, byte[] msg2, byte[] msg3, byte[] receiptNo, byte[] org_money, byte[] org_dateTime, byte[] org_receiptNo, byte[] output_msg); + + // (RF) 거래내역 개수 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfGetTranCount(byte[] samType, byte[] output_msg); + + // (RF) 마지막 거래내역 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfGetLastTran(byte[] samType, byte[] output_msg); + + // (RF) 거래내역 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfGetTranIndex(byte[] samType, byte[] tranIndex, byte[] output_msg); + + // (RF) 거래내역 순차 조회 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfGetTranOrder(byte[] samType, byte[] tranIndex, byte[] output_msg); + + // (RF) 거래내역 삭제 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfDeleteTran(byte[] samType); + + // (RF) 거래내역 업로드 + [DllImport("SpcnPos.dll")] + public static extern int SpcnRfUploadTran(byte[] terminalNo, byte[] bizName, byte[] docSeq, byte[] receiptNo, byte[] org_money, byte[] org_dateTime, byte[] org_receiptNo, byte[] rfData, byte[] output_msg); + + // 싸인 BMP -> 데이터 변환 + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetSignFromImage(byte[] filePath, byte[] output_msg); + + // 싸인패드 정보 확인((O) 응답메시지 (모델명(10) + 펌웨어버젼(20) + App버젼(30) + RF버젼(30) + 시리얼번호(30) + POS연동타입(1)) + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetSignPadInfo(byte[] output_msg); + + /// + /// 키오스크 비밀번호 입력 POS사용자(은련카드용) + /// + /// 암호화에 사용될 핀블럭 + /// 암호화 되어진 비밀번호 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetKioskPin(byte[] input_pin_block, byte[] output); + + /// + /// 비밀번호 입력 POS사용자(해피포인트) + /// + /// 암호화 되어지지 않는 비밀번호 + /// + [DllImport("SpcnPos.dll")] + public static extern int SpcnGetKioskMsg(byte[] output); + + #endregion + + #region csp_download.DLL 함수 + /// + /// [사인패드] 업데이트 요청 함수(생성) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_Create(); + + /// + /// [사인패드] 업데이트 요청 함수(초기화) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_ClearFiles(int ret_code); + + /// + /// [사인패드] 업데이트 요청 함수(펌웨어) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_SetFileSW(int ret_code, string updateData); + + /// + /// [사인패드] 업데이트 요청 함수(시작) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_Start(int ret_code, string sign_port); + + /// + /// [사인패드] 업데이트 요청 함수(영상) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_SetFileAVI(int ret_code, byte[] updateData); + + /// + /// [사인패드] 업데이트 요청 함수(이미지) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_SetFileBMP(int ret_code, int index, byte[] updateData); + + /// + /// [사인패드] 업데이트 요청 함수(결과코드) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_SetMessageResult(int ret_code, IntPtr hwnd, int nMessaage); + + /// + /// [사인패드] 업데이트 요청 함수(프로그래스바 결과값) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_SetMessageProgress(int ret_code, IntPtr hwnd, int nMessaage); + + /// + /// [사인패드] 업데이트 자원해제 + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_Destroy(int ret_code); + + /// + /// [사인패드] 업데이트 종료(취소) + /// + [DllImport("csp_downloader.dll")] + public static extern int CSPDN_Stop(int ret_code); + + + //[DllImport("user32.dll", SetLastError = true)] + //private static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam); + + + #endregion + + #region 생성자 + /// + /// SPCN_Dongle.ocx 가 포함된 form 객체 + /// + //frmSignPad frmSignPad = null; + + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Device 상태 정보 객체 + /// + public DeviceStatus m_cDevStatus = null; + + /// + /// Pos 상태 정보 객체 + /// + public PosStatus m_cPosStatus = null; + + /// + /// T-Money Host + /// + private static string m_sTMoneyHost = null; + public string TMoneyHost { get { return m_sTMoneyHost; } set { m_sTMoneyHost = value; } } + + /// + /// T-Money Port + /// + private static int m_iTMoneyPort = -1; + public int TMoneyPort { get { return m_iTMoneyPort; } set { m_iTMoneyPort = value; } } + + // 임시 pss + private int nRet_Code = 0; + + /// + /// 생성자 + /// + public DeviceSignPad() + { + try + { + //frmSignPad = new frmSignPad(); + m_cPosStatus = (PosStatus)StateObject.POS; + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + + //UpdateIniConfig(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region Byte배열을 string으로 변환 (Byte배열의 null(0x00)값 제거) + /// + /// Byte배열을 string으로 변환 (Byte배열의 null(0x00)값 제거) + /// + /// + /// + private string ByteToString(byte[] data) + { + int inx = Array.FindIndex(data, 0, (x) => x == 0x0); + if (inx >= 0) + { + return Encoding.Default.GetString(data, 0, inx); + } + else + { + return Encoding.Default.GetString(data); + } + } + #endregion + + #region SpcnPos.dll 이 사용하는 SpcnPosCfg.ini 파일 update + /// + /// SpcnPos.dll 이 사용하는 SpcnPosCfg.ini 파일 update + /// + public void UpdateIniConfig() + { + StringBuilder sbGetText = new StringBuilder(); + CmMessage m_PosDevice = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosDevice.INI"); + string sPortNumber = string.Empty; + string sAutoFlag = string.Empty; + string sMinCnt = string.Empty; + string sTimeOut = string.Empty; + long lBaudrate = 0; + bool bRtn = false; + try + { + sPortNumber = CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "SIGNPAD", "SerialPortNumber")); + lBaudrate = CmUtil.LongParse(CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "SIGNPAD", "SerialBaudRate"))); + sAutoFlag = CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "SIGNPAD", "AutoFlag")); + sMinCnt = CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "SIGNPAD", "MinCnt")); + sTimeOut = CmUtil.StringNullEmpty(GetConfigInfo(m_PosDevice, "SIGNPAD", "TimeOut")); + + if (sPortNumber.Length < 3 || lBaudrate <= 0) + { + new Exception("PosDevice.INI 사인패드 설정 오류"); + return; + } + + // SIGN_PORT 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_PORT, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + + + if (sbGetText.ToString() != sPortNumber.Substring(3, sPortNumber.Length - 3))//Yoo modify 20160613 + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_PORT, + sPortNumber.Substring(3, sPortNumber.Length - 3), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig);//Yoo modify 20160613 + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_PORT + " 쓰기 실패"); + } + } + // SIGN_BAUDRATE 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_BAUDRATE, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (sbGetText.ToString() != Convert.ToString(lBaudrate)) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_BAUDRATE, + Convert.ToString(lBaudrate), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_BAUDRATE + " 쓰기 실패"); + } + } + // SIGN_AUTO_FLAG 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_AUTOFLAG, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (sbGetText.ToString() != sAutoFlag) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_AUTOFLAG, + sAutoFlag, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_AUTOFLAG + " 쓰기 실패"); + } + } + // SIGN_MIN_CNT 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_MIN_CNT, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (sbGetText.ToString() != sMinCnt) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_MIN_CNT, + sMinCnt, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_MIN_CNT + " 쓰기 실패"); + } + } + // SIGN_TIMEOUT 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_TIMEOUT, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (sbGetText.ToString() != sTimeOut) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_TIMEOUT, + sTimeOut, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_SIGN_TIMEOUT + " 쓰기 실패"); + } + } + + //#20170904 IC_MSG_CARD, RF_MSG_CARD 문구 추가 start + // IC_MSG_CARD 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_IC_MSG_CARD, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + + if (sbGetText.ToString() != MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0726)) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_IC_MSG_CARD, + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0726), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_IC_MSG_CARD + " 쓰기 실패"); + } + } + + // RF_MSG_CARD 설정 + sbGetText.Clear(); + WinAPI.GetPrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_RF_MSG_CARD, + string.Empty, + sbGetText, + 64, + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + + if (sbGetText.ToString() != MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0727)) + { + bRtn = WinAPI.WritePrivateProfileString(PosConst.POS_SIGNPAD_CONFIG.APPNAME, + PosConst.POS_SIGNPAD_CONFIG.KEY_RF_MSG_CARD, + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0727), + BaseCom.NxBinPath + PosConst.INI_FILE_NAME.ICReaderConfig); + if (bRtn == false) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + UserCom.WARNING_LEVEL, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + PosConst.INI_FILE_NAME.ICReaderConfig + "/" + PosConst.POS_SIGNPAD_CONFIG.KEY_RF_MSG_CARD + " 쓰기 실패"); + } + } + //#20170904 IC_MSG_CARD, RF_MSG_CARD 문구 추가 end + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region 설정 파일 읽기 + /// + /// 설정 파일 읽기 + /// + /// + /// + /// + /// + private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName) + { + return GetConfigInfo(cCfgInfo, sGroup, sValueName, ""); + } + private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName, string sDefault) + { + try + { + string sValue = cCfgInfo.GetMessage(sGroup).GetMessageValue(sValueName); + if (sValue == null) + return sDefault; + else + return sValue; + } + catch { } + + return sDefault; + } + #endregion + + #region 사인패드 관련 함수 + /// + /// [사인패드] 전자서명 요청 + /// + /// 거래금액 + /// 전자서명 생성 디렉토리 + /// 전자서명 생성 파일명 + /// 전자서명 데이터 + /// + public bool GetSign_SignPad(int iAmount, string sSignDataPath, string sSignDataName, ref string sSignData) + { + int iRtn = 0; + bool bRtn = false; + byte[] arSignData = new byte[2048]; + + try + { + sSignData = string.Empty; + Array.Clear(arSignData, 0x0, arSignData.Length); + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return bRtn; + } +#if !DEVICE_MSR_VER + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + + iRtn = SpcnGetSign(iAmount, Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + + iRtn = SpcnGetSign(iAmount, Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); + } + else + { + iRtn = SpcnGetSign(iAmount, Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); + } +#endif + if (iRtn > 0) + { + sSignData = ByteToString(arSignData); + bRtn = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// [사인패드] 전자서명 요청EX + /// + /// 거래금액 + /// 전자서명 생성 디렉토리 + /// 전자서명 생성 파일명 + /// 전자서명 데이터 + /// + public bool GetSign_SignPadEx(string sMsg1, string sMsg2, string sMsg3, string sMsg4, string sSignDataPath, string sSignDataName, ref string sSignData) + { + int iRtn = 0; + bool bRtn = false; + byte[] arSignData = new byte[2048]; + + try + { + sSignData = string.Empty; + Array.Clear(arSignData, 0x0, arSignData.Length); + + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return bRtn; + } + +#if !DEVICE_MSR_VER + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn == true) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + iRtn = SpcnGetSignEx(Encoding.Default.GetBytes(sMsg1), Encoding.Default.GetBytes(sMsg2), Encoding.Default.GetBytes(sMsg3), Encoding.Default.GetBytes(sMsg4), Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn == true) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + iRtn = SpcnGetSignEx(Encoding.Default.GetBytes(sMsg1), Encoding.Default.GetBytes(sMsg2), Encoding.Default.GetBytes(sMsg3), Encoding.Default.GetBytes(sMsg4), Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); + } + else + { + iRtn = SpcnGetSignEx(Encoding.Default.GetBytes(sMsg1), Encoding.Default.GetBytes(sMsg2), Encoding.Default.GetBytes(sMsg3), Encoding.Default.GetBytes(sMsg4), Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); + } +#endif + + if (iRtn > 0) + { + sSignData = ByteToString(arSignData); + bRtn = true; + } + else + { + Cosmos.CommonManager.WinManager.ErrorMessage( ErrCodeToMsg(iRtn)); + bRtn = false; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// [사인패드] 전자서명 요청 터치패드(키오스크,테블릿용) + /// + /// + /// + /// + /// + public bool GetSign_SignPadForTouchpad(string sSignDataPath, string sSignDataName, ref string sSignData) + { + int iRtn = 0; + bool bRtn = false; + byte[] arSignData = new byte[2048]; + + try + { + + //이 함수 사용시 설정 추가 부분! + //============================================ + //SpcnPoscfg.ini 해당 항목 추가 + //============================================ + //KIOSK_CUSTOM_SET=Y + //[DESIGN] + //KIOSK_SIGN_DIALOG_POS=50,100,800,800 + //KIOSK_SIGN_BG_COLOR=0,0,0 + //KIOSK_SIGN_FONT_COLOR=150,100,100 + //KIOSK_SIGN_BTN_COLOR=40,40,40 + //KIOSK_SIGN_FONT=굴림,27 + //============================================ + //KIOSK_CUSTOM_SET : Y 고정 + //KIOSK_SIGN_DIALOG_POS : 위치 및 크기 + //KIOSK_SIGN_DIALOG_POS : 폼 배경색 + //KIOSK_SIGN_BG_COLOR : 싸인화면 배경색 + //KIOSK_SIGN_FONT_COLOR : 글자폰트 + //KIOSK_SIGN_BTN_COLOR : 버튼색상 + //KIOSK_SIGN_FONT : 폰트 및 사이즈 + + sSignData = string.Empty; + Array.Clear(arSignData, 0x0, arSignData.Length); + //if (m_cPosStatus.Base.OlePosSignPadUseFlag != "1") + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + // return bRtn; + //} + //else if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cPosStatus.Base.OlePosSignPadUseFlag == "1") + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + + iRtn = SpcnGetKioskSign(Encoding.Default.GetBytes(sSignDataPath), Encoding.Default.GetBytes(sSignDataName), arSignData); + + if (iRtn > 0) + { + sSignData = ByteToString(arSignData); + bRtn = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// BitMap -> SignData 변환 + /// + /// + /// + /// + public bool GetSign_BmpToData(string sSignDataPath, ref string sSignData) + { + int iRtn = 0; + bool bRtn = false; + byte[] arSignData = new byte[2048]; + + try + { + sSignData = string.Empty; + Array.Clear(arSignData, 0x0, arSignData.Length); + + iRtn = SpcnGetSignFromImage(Encoding.Default.GetBytes(sSignDataPath), arSignData); + + if (iRtn > 0) + { + sSignData = ByteToString(arSignData); + bRtn = true; + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// 싸인패드 정보 확인[(O) 응답메시지 (모델명(10) + 펌웨어버젼(20) + App버젼(30) + RF버젼(30) + 시리얼번호(30) + POS연동타입(1)] + /// + /// + /// + public bool GetSignPadInfo(ref string sRsltMsg) + { + int iRtn = 0; + bool bRtn = false; + byte[] outMsg = new byte[2049]; + + try + { + sRsltMsg = string.Empty; + Array.Clear(outMsg, 0x0, outMsg.Length); + + iRtn = SpcnGetSignPadInfo(outMsg); + + if (iRtn > 0) + { + sRsltMsg = ByteToString(outMsg); + bRtn = true; + } + else + { + sRsltMsg = string.Empty; + } + } + catch (Exception ex) + { + sRsltMsg = string.Empty; + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + + /// + /// [사인패드] 비밀번호 요청 + /// + /// 마스킹 처리된 카드번호 + /// 암호화 되어진 비밀번호 + /// + public bool GetPin_SignPad(string sMaskedCardNo, ref string sEncryptedPwd) + { + int iRtn = 0; + bool bRtn = false; + byte[] arCardNo = null; + byte[] arPwd = new byte[2048]; + + try + { + sEncryptedPwd = string.Empty; + arCardNo = Encoding.Default.GetBytes(sMaskedCardNo); + Array.Clear(arPwd, 0x0, arPwd.Length); + + for (int i = 0; i < arCardNo.Length; i++) + { + if (arCardNo[i] == '*') + { + arCardNo[i] = (byte)'0'; + } + } + + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return bRtn; + } +#if !DEVICE_MSR_VER + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn == true) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + iRtn = SpcnGetPin(arCardNo, arPwd); +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn == true) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + iRtn = SpcnGetPin(arCardNo, arPwd); + } + else + { + iRtn = SpcnGetPin(arCardNo, arPwd); + } +#endif + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + sEncryptedPwd = ByteToString(arPwd); + bRtn = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + + /// + /// 은련카드 비밀번호 사용자 입력 처리 + /// + /// + /// + /// + public bool GetKioskPin(string sMaskedCardNo, ref string sEncryptedPwd) + { + int iRtn = 0; + bool bRtn = false; + byte[] arCardNo = null; + byte[] arPwd = new byte[2048]; + + try + { + sEncryptedPwd = string.Empty; + arCardNo = Encoding.Default.GetBytes(sMaskedCardNo.Replace("*", "0")); // 카드번호 마스킹 '*' => '0' 으로 치환! + Array.Clear(arPwd, 0x0, arPwd.Length); + + iRtn = SpcnGetKioskPin(arCardNo, arPwd); + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + sEncryptedPwd = ByteToString(arPwd); + bRtn = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + /// + /// 비밀번호 입력 처리(해피포인트) + /// + /// + /// + public bool GetKioskMsg(ref string sEncryptedPwd) + { + int iRtn = 0; + bool bRtn = false; + byte[] arPwd = new byte[2048]; + + try + { + sEncryptedPwd = string.Empty; + + Array.Clear(arPwd, 0x0, arPwd.Length); + + iRtn = SpcnGetKioskMsg(arPwd); + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + sEncryptedPwd = ByteToString(arPwd); + bRtn = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return bRtn; + } + + + /// + /// 사용자정보 요청 함수 + /// + /// + /// + /// + /// + public bool GetMsg_SignPad(bool bMaskingEnable, string sDisplayMsg, ref string sReceivedData) + { + return GetMsg_SignPad(bMaskingEnable, sDisplayMsg, ref sReceivedData, 0); + } + + /// + /// 사용자정보 요청 함수 + /// + /// + /// + /// + /// + public bool GetMsg_SignPad(bool bMaskingEnable, string sDisplayMsg, ref string sReceivedData, int iMaxLengh) + { + int iRtn = 0; + bool bRtn = false; + byte[] arReceivedData = new byte[2048]; + + try + { + sReceivedData = string.Empty; + Array.Clear(arReceivedData, 0x0, arReceivedData.Length); + + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return bRtn; + } +#if !DEVICE_MSR_VER + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + + if (iMaxLengh > 0 ) + { + iRtn = SpcnGetMsg2(bMaskingEnable ? 0 : 1, iMaxLengh, Encoding.Default.GetBytes(sDisplayMsg), arReceivedData); + } + else + { + iRtn = SpcnGetMsg(bMaskingEnable ? 0 : 1, Encoding.Default.GetBytes(sDisplayMsg), arReceivedData); + } +#else + if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC) + { + //if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn) + //{ + // Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0387); + // return bRtn; + //} + + if (iMaxLengh > 0) + { + iRtn = SpcnGetMsg2(bMaskingEnable ? 0 : 1, iMaxLengh, Encoding.Default.GetBytes(sDisplayMsg), arReceivedData); + } + else + { + iRtn = SpcnGetMsg(bMaskingEnable ? 0 : 1, Encoding.Default.GetBytes(sDisplayMsg), arReceivedData); + } + } + else + { + if (iMaxLengh > 0) + { + iRtn = SpcnGetMsg2(bMaskingEnable ? 0 : 1, iMaxLengh, Encoding.Default.GetBytes(sDisplayMsg), arReceivedData); + } + else + { + iRtn = SpcnGetMsg(bMaskingEnable ? 0 : 1, Encoding.Default.GetBytes(sDisplayMsg), arReceivedData); + } + } +#endif + if (iRtn <= 0) + { + if (iRtn != -84) + { + string sErrMsg = ErrCodeToMsg(iRtn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + iRtn + "=" + sErrMsg); + } + return false; + } + + sReceivedData = ByteToString(arReceivedData); + bRtn = true; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return bRtn; + } + + /// + /// 서명패드 업데이트(펌웨어) + /// + /// + public bool SetFirmware_SignPad_Update(int nCreateCode, string sDatePath) + { + bool bRtn = true; + + int nRet = -1; + + nRet = CSPDN_ClearFiles(nCreateCode); + if (nRet < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nRet); + bRtn = false; + } + + nRet = -1; + + nRet = CSPDN_SetFileSW(nCreateCode, sDatePath); + if (nRet < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nRet); + bRtn = false; + } + + return bRtn; + } + + /// + /// 서명패드 업데이트(동영상) + /// + /// + public bool SetAvi_SignPad_Update(int nCreateCode, string sDatePath) + { + bool bRtn = true; + + int nRet = -1; + + nRet = CSPDN_ClearFiles(nCreateCode); + if (nRet < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nRet); + return false; + } + + nRet = -1; + nRet = CSPDN_SetFileAVI(nCreateCode, Encoding.Default.GetBytes(sDatePath)); + if (nRet < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nRet); + return false; + } + + return bRtn; + } + + /// + /// 서명패드 업데이트(이미지) + /// + /// + public bool SetImage_SignPad_Update(int nCreateCode, int nIndex, string sDatePath) + { + bool bRtn = true; + + int nRet = -1; + + // + //nRet = CSPDN_ClearFiles(nRet_Code); + //if (nRet <= 0) + //{ + // UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + // , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + // , "ERROR => CODE : " + nRet); + // return false; + //} + + //nRet = -1; + nRet = CSPDN_SetFileBMP(nCreateCode, nIndex, Encoding.Default.GetBytes(sDatePath)); + if (nRet < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nRet); + return false; + } + + return bRtn; + } + + /// + /// 서명패드 업데이트 완료 후 시작 + /// + /// + public bool SignPad_Start(int nCreateCode, string sSignPort) + { + bool bRtn = false; + + int nRet = -1; + + nRet = CSPDN_Start(nCreateCode, sSignPort); + if (nRet < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nRet); + return bRtn; + } + bRtn = true; + + return bRtn; + } + + /// + /// 서명패드 업데이트(결과메세지 리턴) + /// + /// + public bool SignPad_Update_Return(int nCreateCode, IntPtr nhwnd, int nMessage) + { + bool bRtn = false; + + int nRet = -1; + + nRet = CSPDN_SetMessageResult(nCreateCode, nhwnd, nMessage); + + return bRtn; + } + + /// + /// 서명패드 업데이트(결과메세지 리턴) + /// + /// + public bool SignPad_Update_Progress_Return(int nCreateCode, IntPtr nhwnd, int nMessage) + { + bool bRtn = false; + + int nRet = -1; + + nRet = CSPDN_SetMessageProgress(nCreateCode, nhwnd, nMessage); + + return bRtn; + } + + + /// + /// 서명패드 업데이트 파일 코드(각 함수에 다 넣어 줌) + /// + /// + public int SignPad_Create_UpdateCode() + { + int nRet_Code = -1; + + nRet_Code = CSPDN_Create(); + + return nRet_Code; + } + + /// + /// 서명패드 업데이트 자원해제 + /// + /// + public int SignPad_Update_Destroy(int nCreateCode) + { + int nRet = -1; + + CSPDN_Destroy(nCreateCode); + + return nRet; + } + + /// + /// 서명패드 업데이트 파일초기화 + /// + /// + public int SignPad_Update_FileClear(int nCreateCode) + { + int nRet = -1; + + CSPDN_ClearFiles(nCreateCode); + + return nRet; + } + + + /// + /// 서명패드 업데이트 취소 + /// + /// + public int SignPad_Update_Stop(int nCreateCode) + { + int nRet = -1; + + nRet = CSPDN_Stop(nCreateCode); + + return nRet; + } + + #endregion + + #region T-Money 기능 + /// + /// 운영정보 다운로드 + /// + /// + /// + /// + /// + /// + /// + public string TMoneyDownload(string sTerminalNo, string sBizNm, string sSeqNo, string sCardType, string sDownType, ref byte[] rep_array) + { + //byte[] rep_array = new byte[2049]; + int iReturn = -1; + string sRet = UserCom.RST_ERR; + int iRtn = -1; + try + { + // 서명패드 시간설정 요청 + if (m_cDevStatus.ICReader.UseYn == true) + iRtn = SpcnRfReaderSetTime(); + + if (sCardType == "T") + { + //WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0349)); + + iReturn = SpcnRfDownOperatingData(GetByteArrayFromString(sTerminalNo), GetByteArrayFromString(sBizNm), GetByteArrayFromString(sSeqNo), GetByteArrayFromString(sCardType), rep_array); + } + else if (sCardType == "E") + { + //WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0360)); + + iReturn = SpcnRfDownOperatingData(GetByteArrayFromString(sTerminalNo), GetByteArrayFromString(sBizNm), GetByteArrayFromString(sSeqNo), GetByteArrayFromString(sCardType), rep_array); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + finally + { + if (iReturn > 0) sRet = UserCom.RST_OK; + //WinManager.HideSearchMessage(this); + } + return sRet; + } + /// + /// T-Money 개시 + /// + /// + /// + /// + /// + /// + public string TMoneyOpen(string sTerminalNo, string sBizNm, string sSeqNo, string sCardType) + { + int iReturn = -1; + byte[] rep_array = new byte[2049]; + string sRet = UserCom.RST_ERR; + int iRtn = -1; + + try + { + // 서명패드 시간설정 요청 + if (m_cDevStatus.ICReader.UseYn == true) + iRtn = SpcnRfReaderSetTime(); + + if (sCardType == "Y") + { + //WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0350)); + iReturn = SpcnRfPayonOpen(GetByteArrayFromString(sTerminalNo), GetByteArrayFromString(sBizNm), GetByteArrayFromString(sSeqNo), GetByteArrayFromString(sCardType)); + } + else if (sCardType == "T") + { + //WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0348)); + iReturn = SpcnRfStart(GetByteArrayFromString(sTerminalNo), GetByteArrayFromString(sBizNm), GetByteArrayFromString(sSeqNo), GetByteArrayFromString(sCardType), rep_array); + } + else if (sCardType == "E") + { + //WinManager.ShowSearchMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0359)); + iReturn = SpcnRfStart(GetByteArrayFromString(sTerminalNo), GetByteArrayFromString(sBizNm), GetByteArrayFromString(sSeqNo), GetByteArrayFromString(sCardType), rep_array); + } + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + finally + { + if (iReturn > 0) sRet = UserCom.RST_OK; + + //WinManager.HideSearchMessage(this); + } + return sRet; + } + + /// + /// T-Money 잔액조회 + /// + /// + /// + /// + /// + public int TMoneyInfo(string sCardType, ref string sRet) + { + return TMoneyInfo(sCardType, ref sRet, "N" ); + } + public int TMoneyInfo(string sCardType, ref string sRet, string sBeep = "N" ) + { + int nReturn = -1; + byte[] rep_array = new byte[2049]; + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + //nReturn = SpcnRfCommonCardInfo(GetByteArrayFromString(sCardType), rep_array); + nReturn = SpcnRfCommonCardInfoEx(GetByteArrayFromString(sCardType), GetByteArrayFromString(sBeep), rep_array); + + if (nReturn <= 0) + { + if (nReturn != -84) + { + string sErrMsg = ErrCodeToMsg(nReturn); + Cosmos.CommonManager.WinManager.ErrorMessage(sErrMsg); + + UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.INFO_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name + , System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" + , "ERROR => CODE : " + nReturn + "=" + sErrMsg); + } + return nReturn; + } + + sRet = System.Text.Encoding.Default.GetString(rep_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// T-Money 지불거래 + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int TMoneyApprove(string sTID, string sCardType, string sAmount, string sMsg1, string sMsg2, string sMsg3, ref string sResultMsg) + { + int nReturn = -1; + byte[] rep_signpad_array = new byte[2049]; + + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + nReturn = SpcnRfPrepaidCardApprove(GetByteArrayFromString(sTID), GetByteArrayFromString(sCardType), GetByteArrayFromString(sAmount), GetByteArrayFromString(sMsg1), GetByteArrayFromString(sMsg2), GetByteArrayFromString(sMsg3), rep_signpad_array); + + sResultMsg = System.Text.Encoding.Default.GetString(rep_signpad_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// T-Money 지불 재거래 + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int TMoneyApproveRe(string sTID, string sCardType, string sAmount, string sMsg1, string sMsg2, string sMsg3, ref string sResultMsg) + { + int nReturn = -1; + byte[] rep_signpad_array = new byte[2049]; + + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + nReturn = SpcnRfPrepaidCardApproveRe(GetByteArrayFromString(sTID), GetByteArrayFromString(sCardType), GetByteArrayFromString(sAmount), GetByteArrayFromString(sMsg1), GetByteArrayFromString(sMsg2), GetByteArrayFromString(sMsg3), rep_signpad_array); + + sResultMsg = System.Text.Encoding.Default.GetString(rep_signpad_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// T-Money 승인내역 Upload + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int TMoneyUploadTran(string sTID, string sbizName, string sDocSeq, string sTradeNo, string sOrgAmount, string sOrgDateTime, string sOrgTradeNo, string sRfData, ref string sResultMsg) + { + int nReturn = -1; + byte[] rep_signpad_array = new byte[2049]; + byte[] rep_van_array = new byte[2049]; + + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + rep_signpad_array = System.Text.Encoding.Default.GetBytes(sRfData); + nReturn = SpcnRfUploadTran(GetByteArrayFromString(sTID), GetByteArrayFromString(sbizName), GetByteArrayFromString(sDocSeq), GetByteArrayFromString(sTradeNo), GetByteArrayFromString(sOrgAmount), GetByteArrayFromString(sOrgDateTime), GetByteArrayFromString(sOrgTradeNo), rep_signpad_array, rep_van_array); + + sResultMsg = System.Text.Encoding.Default.GetString(rep_van_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// T-Money 직전취소 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int TMoneyApproveCancel(string sTID, string sCardType, string sMsg1, string sMsg2, string sMsg3, string sOrgAmount, string sOrgDateTime, string sOrgTradeNo, ref string sResultMsg) + { + byte[] rep_signpad_array = new byte[2049]; + int nReturn = -1; + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + nReturn = SpcnRfPrepaidCardProcCancel(GetByteArrayFromString(sTID), GetByteArrayFromString(sCardType), GetByteArrayFromString(sMsg1), GetByteArrayFromString(sMsg2), GetByteArrayFromString(sMsg3), GetByteArrayFromString(sOrgAmount), GetByteArrayFromString(sOrgDateTime), GetByteArrayFromString(sOrgTradeNo), rep_signpad_array); + + sResultMsg = System.Text.Encoding.Default.GetString(rep_signpad_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// T-Money 현금반품 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int TMoneyCashVoid(string sTID, string sCardType, string sMsg1, string sMsg2, string sMsg3, string sTradeNo, string sOrgAmount, string sOrgDateTime, string sOrgTradeNo, ref string sResultMsg) + { + byte[] rep_signpad_array = new byte[2049]; + int nReturn = -1; + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + Array.Clear(rep_signpad_array, 0, rep_signpad_array.Length); + nReturn = SpcnRfPrepaidCardVoidCash(GetByteArrayFromString(sTID), GetByteArrayFromString(sCardType), GetByteArrayFromString(sMsg1), GetByteArrayFromString(sMsg2), GetByteArrayFromString(sMsg3), GetByteArrayFromString(sOrgAmount), GetByteArrayFromString(sOrgDateTime), GetByteArrayFromString(sOrgTradeNo), rep_signpad_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + /// + /// T-Money 반품충전 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public int TMoneyVoidCharge(string sTID, string sbizName, string sDocSeq, string sCardType, string sMsg1, string sMsg2, string sMsg3, string sTradeNo, string sOrgAmount, string sOrgDateTime, string sOrgTradeNo, ref string sResultMsg) + { + byte[] rep_signpad_array = new byte[2049]; + int nReturn = -1; + try + { + // 무결성 실패후 진행시 오류 메시지 표시 + if (m_cDevStatus.SignPad.UseYn != true) + { + Cosmos.CommonManager.WinManager.ErrorMessage(Cosmos.CommonManager.POS_MESSAGE.ERROR.MSG_0390); + return nReturn; + } + + Array.Clear(rep_signpad_array, 0, rep_signpad_array.Length); + nReturn = SpcnRfPrepaidCardCancel(GetByteArrayFromString(sTID), GetByteArrayFromString(sbizName), GetByteArrayFromString(sDocSeq), GetByteArrayFromString(sCardType), GetByteArrayFromString(sMsg1), GetByteArrayFromString(sMsg2), GetByteArrayFromString(sMsg3), GetByteArrayFromString(sTradeNo), GetByteArrayFromString(sOrgAmount), GetByteArrayFromString(sOrgDateTime), GetByteArrayFromString(sOrgTradeNo), rep_signpad_array); + + sResultMsg = System.Text.Encoding.Default.GetString(rep_signpad_array); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return nReturn; + } + + private byte[] GetByteArrayFromString(string src) + { + return System.Text.Encoding.Default.GetBytes(src); + } + + #endregion + + #region 응답코드 + /// + /// 응답코드 + /// + /// + /// + private string ErrCodeToMsg(int nErrCode) + { + string sMsg = string.Empty; + + try + { + switch (nErrCode) + { + case -3: sMsg = "암호화오류(전문생성오류)"; break; + case -4: sMsg = "암호화오류(전문생성오류)"; break; + case -5: sMsg = "암호화오류 (전문오류)"; break; + case -6: sMsg = "암호화오류 (전문오류)"; break; + case -7: sMsg = "암호화오류 (키생성)"; break; + case -8: sMsg = "암호화오류 (키생성)"; break; + case -9: sMsg = "암호화오류 (키생성)"; break; + case -10: sMsg = "요청 IP 오류"; break; + case -11: sMsg = "암호화 구분 2 붙인 전문 오류"; break; + case -12: sMsg = "전자서명 전문일 경우 전문길이 필드 없는 오류"; break; + case -13: sMsg = "전자서명 전문일 경우 전문길이 필드 없는 오류"; break; + case -14: sMsg = "전문 전체길이 체크 오류"; break; + case -15: sMsg = "파라미터 오류 (접속 IP 오류)"; break; + case -16: sMsg = "파라미터 오류 (요청전문 오류)"; break; + case -17: sMsg = "전자서명 암호화 오류"; break; + case -18: sMsg = "개시거래 요망"; break; + case -20: sMsg = "SOCKET CONNECT 오류"; break; + case -21: sMsg = "SOCKET SELECT 오류"; break; + case -22: sMsg = "SOCKET RECV SELECT 오류"; break; + case -23: sMsg = "SOCKET RECV SELECT 오류"; break; + case -24: sMsg = "SOCKET RECV 오류"; break; + case -25: sMsg = "SOCKET RECV 오류"; break; + case -26: sMsg = "SOCKET SEND 오류"; break; + case -30: sMsg = "전문오류 (전자서명 필요없는 거래)"; break; + case -31: sMsg = "전문오류 (전자서명 데이터 구조 오류)"; break; + case -32: sMsg = "전문오류 (CR 없음)"; break; + case -33: sMsg = "전문오류 (ETX 없음)"; break; + case -34: sMsg = "전문오류(FS2 없음)"; break; + case -35: sMsg = "전자서명오류 (암호화 오류)"; break; + case -36: sMsg = "전자서명 길이 오류 (모바일)"; break; + case -37: sMsg = "IC데이터 오류 (FS오류)"; break; + case -38: sMsg = "IC데이터 오류(IC데이터/등록정보 오류)"; break; + case -40: sMsg = "EOT 미수신 (수신X)"; break; + case -41: sMsg = "EOT 미수신 (수신오류)"; break; + case -42: sMsg = "SOCKET 초기화 오류"; break; + case -43: sMsg = "SOCKET CONNECT 오류"; break; + case -44: sMsg = "SOCKET SEND 오류 (암호화)"; break; + case -45: sMsg = "SOCKET SEND 오류 (전문)"; break; + case -46: sMsg = "SOCKET RECV 오류 (헤더)"; break; + case -47: sMsg = "SOCKET RECV 오류 (전문)"; break; + case -48: sMsg = "SOCKET RECV 오류 (암호화)"; break; + case -49: sMsg = "SOCKET RECV 오류 (CHECK)"; break; + case -50: sMsg = "SOCKET SEND 오류 (ACK)"; break; + case -60: sMsg = "(모바일)SOCKET 생성 오류"; break; + case -61: sMsg = "(모바일)SOCKET CONNECT 오류"; break; + case -62: sMsg = "(모바일)SOCKET SELECT 오류"; break; + case -63: sMsg = "(모바일)SOCKET 옵션 설정 오류"; break; + case -64: sMsg = "(모바일)SOCKET 옵션 설정 오류"; break; + case -65: sMsg = "(모바일)SOCKET 오류"; break; + case -66: sMsg = "(모바일)SOCKET RECV 오류"; break; + case -67: sMsg = "(모바일)SOCKET RECV SELECT 오류"; break; + case -68: sMsg = "(모바일)SOCKET RECV SELECT 오류"; break; + case -69: sMsg = "(모바일)SOCKET SEND 오류"; break; + case -70: sMsg = "(모바일)SOCKET SEND SELECT 오류"; break; + case -79: sMsg = "시리얼 클래스 생성 오류"; break; + case -80: sMsg = "INI 파일 오류 (TYPE 구분 설정요망)"; break; + case -81: sMsg = "싸인패드 포트 오류"; break; + case -82: sMsg = "싸인패드 포트 오류"; break; + case -83: sMsg = "싸인패드 통신 오류"; break; + case -84: sMsg = "싸인패드 사용자 취소"; break; + case -85: sMsg = "싸인패드 타임아웃 오류"; break; + case -86: sMsg = "싸인패드 오픈 오류"; break; + case -87: sMsg = "싸인패드 초기화 오류"; break; + case -88: sMsg = "싸인패드 요청 오류"; break; + case -89: sMsg = "싸인패드 통신 오류"; break; + case -90: sMsg = "요청전문오류 (헤더 메시지 길이 오류)"; break; + case -91: sMsg = "요청전문오류 (거래구분 코드 오류)"; break; + case -92: sMsg = "미지원 전문"; break; + case -93: sMsg = "요청전문 필수 항목 누락"; break; + case -94: sMsg = "버퍼 초과"; break; + case -95: sMsg = "핀블럭 길이 오류"; break; + case -96: sMsg = "(전자서명생성) 이미지 파일 미존재"; break; + case -97: sMsg = "(전자서명생성) 이미지 파일 읽기 오류"; break; + case -98: sMsg = "(전자서명생성) 이미지 파일 크기 오류"; break; + case -99: sMsg = "(전자서명생성) 이미지 파일 데이터 오류"; break; + case -101: sMsg = "IC리더기 포트 설정 오류"; break; + case -102: sMsg = "IC리더기 오픈 오류"; break; + case -103: sMsg = "IC리더기 시리얼 생성 오류"; break; + case -104: sMsg = "IC리더기 파라미터 오류"; break; + case -105: sMsg = "IC리더기 쓰기 오류"; break; + case -106: sMsg = "보안표준키 다운로드 항목 오류(K2)"; break; + case -107: sMsg = "보안표준키 다운로드 승인 거절(K2)"; break; + case -108: sMsg = "보안표준키 다운로드 항목 오류(K4)"; break; + case -109: sMsg = "보안표준키 다운로드 승인 거절(K4)"; break; + case -110: sMsg = "IC리더기 응답 오류(Class 생성 오류)"; break; + case -111: sMsg = "IC리더기 응답 오류(길이 정보 수신 오류)"; break; + case -112: sMsg = "IC리더기 응답 오류(STX 오류)"; break; + case -113: sMsg = "IC리더기 응답 오류(수신 오류)"; break; + case -114: sMsg = "IC리더기 응답전문 오류(STX 오류)"; break; + case -115: sMsg = "IC리더기 응답전문 오류(ETX 오류)"; break; + case -116: sMsg = "IC리더기 응답전문 오류(LRC 오류)"; break; + case -117: sMsg = "IC리더기 초기화 오류"; break; + case -118: sMsg = "IC리더기 사용자 취소"; break; + case -119: sMsg = "IC리더기 타임아웃 오류"; break; + case -120: sMsg = "IC리더기 통신 오류"; break; + case -121: sMsg = "카드발급사 인증요청 IC CHIP DATA 오류"; break; + case -122: sMsg = "카드발급사 인증요청 데이터 오류"; break; + case -123: sMsg = "카드발급사 등록제 정보 데이터 오류"; break; + case -124: sMsg = "카드발급사 응답전문 데이터 오류"; break; + case -125: sMsg = "카드발급사 전문 구분 데이터 오류"; break; + case -126: sMsg = "카드발급사 전문버젼 데이터 오류"; break; + case -127: sMsg = "카드발급사 응답전문 미승인 오류"; break; + case -128: sMsg = "카드발급사 응답전문 GS 데이터 오류"; break; + case -129: sMsg = "카드발급사 인증 거절 (망취소 거절) - POS 망취소 요망"; break; + case -130: sMsg = "카드발급사 인증 거절 (망취소 완료)"; break; + case -131: sMsg = "망취소 실패(GS 없음) - POS에서 망취소 요망"; break; + case -132: sMsg = "망취소 실패(서버 거절) - POS에서 망취소 요망"; break; + case -133: sMsg = "망취소 실패(통신오류) - POS에서 망취소 요망"; break; + case -134: sMsg = "망취소 대상 아님"; break; + case -140: sMsg = "IC리더기 카드 읽기 오류 (거래매체 유형 미지정 오류)"; break; + case -141: sMsg = "IC리더기 카드 읽기 오류 (거래매체 유형 예외 오류)"; break; + case -142: sMsg = "IC리더기 카드 읽기 오류 (IC거래 구분 오류)"; break; + case -143: sMsg = "IC리더기 거래중 카드 제거 오류"; break; + case -144: sMsg = "IC리더기 거래가 거절된 카드 오류"; break; + case -145: sMsg = "IC리더기 기타 오류"; break; + case -146: sMsg = "IC리더기 거래 요청 전 카드 삽입 오류"; break; + case -147: sMsg = "IC리더기 상호인증 미완료 후 거래 시도 오류"; break; + case -148: sMsg = "IC리더기 무결성 미성공 후 거래 시도 오류"; break; + case -149: sMsg = "IC리더기 에러 코드 발생 오류"; break; + case -150: sMsg = "IC리더기 Fallback 진행 오류"; break; + case -151: sMsg = "IC리더기 거래 중 오류 (비정상 응답)"; break; + case -161: sMsg = "IC 거래 진행 중"; break; + case -162: sMsg = "SIGNPAD 거래 진행 중"; break; + case -2150: sMsg = "지원 불가 카드입니다."; break; + default: sMsg = "알수없는 메세지"; break; + } + + //sMsg = string.Format("ErrCd:{0} Desc:{1}", nErrCode, sMsg); + } + catch { } + return sMsg; + } + #endregion + } +} diff --git a/Agent/OLEDevice/DeviceTPaygle.cs b/Agent/OLEDevice/DeviceTPaygle.cs new file mode 100644 index 0000000..d72545a --- /dev/null +++ b/Agent/OLEDevice/DeviceTPaygle.cs @@ -0,0 +1,455 @@ +using System; +using System.Collections.Generic; +using System.Collections; +using System.Linq; +using System.Text; +using System.Data; +using System.Runtime.InteropServices; + +using Newtonsoft.Json.Linq; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; + +namespace Cosmos.OLEDevice +{ + /// + /// T-PAY BLE Dongle (paygle) + /// + class DeviceTPaygle : ITPaygleUs + { + + #region ## XPayLib.dll Function + /// + /// 체크인 된 고객리스트를 수신 + /// + /// + /// + [DllImport("XPayLib.dll")] + private static extern int GetPOSConnectList(byte[] connectList); + + /// + /// 선택고객의 BLE OTB 발급요청(구버전 호환성문제로 유지) + /// + /// + /// + [DllImport("XPayLib.dll")] + private static extern int ReqPOSProvide(byte[] XPT); + + /// + /// 선택고객의 BLE OTB 발급요청/수신(폰의 OS별로 지원 가능) + /// + /// + /// + /// + [DllImport("XPayLib.dll")] + private static extern int ReqPOSProvide2(byte[] XPT, byte[] param); + + /// + /// BLE OTB 수신 + /// + /// + /// + [DllImport("XPayLib.dll")] + private static extern int GetOTB(byte[] KeyRlt); + + /// + /// 수신된 비밀번호를 40Byte 해시코드로 변환 + /// + /// HashString 반환버퍼 + /// 변환할 비밀번호 + [DllImport("XPayLib.dll")] + private static extern void PWHashing(byte[] Rlt, byte[] param); + + /// + /// Paygle상태를 체크하고 업데이트가 필요한 경우 업데이트 + /// + /// + [DllImport("PaygleCheck.dll")] + private static extern int PaygleCheckProc(); + + //#20170906 T페이 고도화 작업 phj, start + /// 수신된 OTB를 분류 검증 (결제방식, 사전인증 체크 기능) + /// 입력된 OTB의 유효성과, 선인증여부를 확인합니다. + /// + /// 카드번호 + [DllImport("XPayLib.dll")] + private static extern int ClassifyOTB(byte[] ClassifyOTB); + //#20170906 T페이 고도화 작업 phj, end + + #endregion + + + private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + private PosStatus posStatus = new PosStatus(); // 기본정보 참조 + private DeviceStatus devStatus = new DeviceStatus(); // 장치정보 참조 + + /// + /// 생성자 + /// + public DeviceTPaygle() + { + devStatus = (DeviceStatus)StateObject.DEVICE; + posStatus = (PosStatus)StateObject.POS; + } + + /// + /// 체크인 고객리스트 수신 + /// + /// 고객리스트(JSON) + /// 체크인된고객수 + /// + /// * Connect List (JSON Format) + /// 1 DATETIME YYYYMMDDHHMMSS 결과수신시간/처리시간 + /// 2 POSID string 요청POS 식별번호 + /// 3 LIST JSONList 체크인 고객리스트 + /// 3.1 XPT String 단말기 식별코드 (반복) + /// 3.2 NAME String 단말기 등록이름 (반복) + /// 3.3 NICKNAME String 단말기 등록 닉네임 (반복) + /// 3.4 MDN String 단말기 전화번호 (반복) + /// 3.5 DEVICE_TYPE String “001” : 안드로이드, “002” : 아이폰(iOS 적용 버전) + /// + /// * Sample + /// { + /// "DATETIME":"20160329144522", + /// "POSID":"WHONEED010", + /// "LIST":[ + /// {"XPT":"********lVGOW48naN0mRPg==", "NAME":"**호", "NICK_NAME":"별명", "MDN":"01089**23**","DEVICE_TYPE":"001"} + /// …(반복) + /// ] + /// } + /// + public int GetConnectList(out string phoneList) + { + phoneList = string.Empty; + try + { + byte[] buffer = new byte[1024 * 2]; + + int ret = GetPOSConnectList(buffer); + if (ret < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll GetPOSConnectList Function Error (ErrorCode=" + ret.ToString() + ")"); + } + phoneList = Encoding.Default.GetString(buffer).Replace("\0", ""); + + return ret; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception." + ex.Message); + return -9; + } + } + + /// + /// + /// + /// + /// + public int GetConnectList(out Column.TPAY_CONNECT_INFO phoneList) + { + phoneList = null; + try + { + byte[] buffer = new byte[1024 * 2]; + + int ret = GetPOSConnectList(buffer); + string result = Encoding.Default.GetString(buffer).Replace("\0", ""); + if (ret < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll GetPOSConnectList Function Error (ErrorCode=" + ret.ToString() + ")"); + return ret; + } + + phoneList = new Column.TPAY_CONNECT_INFO(); + + JObject json = JObject.Parse(result); + phoneList.DATATIME = json["DATETIME"].ToString(); + phoneList.POSID = json["POSID"].ToString(); + + JArray jArray = JArray.Parse(json["LIST"].ToString()); + for (var i = 0; i < ret; i++) + { + JObject js = JObject.Parse(jArray[i].ToString()); + + Column.TPAY_PHONE phone = new Column.TPAY_PHONE(); + phone.XPT = js["XPT"].ToString(); + phone.NAME = js["NAME"].ToString(); + phone.NICK_NAME = js["NICK_NAME"].ToString(); + phone.MDN = js["MDN"].ToString(); + phone.DEVICE_TYPE = js["DEVICE_TYPE"].ToString(); + + phoneList.LIST.Add(phone); + } + + return ret; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception." + ex.Message); + phoneList = null; + return -9; + } + } + + /// + /// 선택된 XPT 단말기(스마트폰)에 BLE BOT 발급 요청 + /// + /// 결제키 발급대상 단말기 식별코드 + /// 요청POS식별번호 + /// 장비구분(001:안드로이드, 002:iOS) + /// + public bool ReqPosProvide(string xpt, string posID, string deviceType, out string errMsg) + { + errMsg = string.Empty; + + try + { + //byte[] param1 = Encoding.Default.GetBytes(xpt); + //byte[] param2 = Encoding.Default.GetBytes(posID); + //int ret = ReqPOSProvide(param1); + + string temp = JObject.FromObject(new { XPT = xpt, DEVICE_TYPE = deviceType }).ToString(); + //string temp = "{" + string.Format("\"XPT\":\"{0}\",\"DEVICE_TYPE\":\"{1}\"", xpt, deviceType) + "}"; + byte[] param1 = Encoding.Default.GetBytes(xpt); + byte[] param2 = Encoding.Default.GetBytes(temp); + int ret = ReqPOSProvide2(param1, param2); + if (ret < 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll ReqPOSProvide2 Function Error (ErrorCode=" + ret.ToString() + ")"); + + } + + errMsg = ret == 0 ? string.Empty : "Error Code =" + ret.ToString(); + return ret == 0 ? true : false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception." + ex.Message); + errMsg = ex.Message; + return false; + } + } + + /// + /// BLE OTB 수신 + /// + /// 성공:OTB, 실패:오류메시지 + /// + /// 0:성공, -10001:Timeout, -10002:DeviceError + public bool GetOTB(out string result) + { + result = string.Empty; + try + { + byte[] buffer = new byte[1024]; + int ret = GetOTB(buffer); + switch(ret) + { + case 0: + result = Encoding.Default.GetString(buffer).Replace("\0", "").Trim(); + break; + case -10001: + result = "Timeout"; + break; + case -10002: + result = "Device Error"; + break; + } + if (ret != 0) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll GetOTB Function Error (ErrorCode=" + ret.ToString() + ", " + result + ")"); + } + + return ret == 0 ? true : false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception." + ex.Message); + result = ex.Message; + return false; + } + } + + /// + /// 수신된 비밀번호를 40Byte 해시코드로 변환 + /// + /// + /// + public string GetHashPassword(string password) + { + try + { + byte[] buffer = new byte[40]; + byte[] pws = new byte[4]; + pws = Encoding.Default.GetBytes(password); + + PWHashing(buffer, pws); + + return Encoding.Default.GetString(buffer).Replace("\0", ""); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception." + ex.Message); + return string.Empty; + } + } + + /// + /// + /// + /// + public bool CheckPaygle() + { + try + { + int ret = PaygleCheckProc(); + return ret == 0 ? true : false; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "Exception." + ex.Message); + return false; + } + } + + + //#20170906 T페이 고도화 작업 phj, start + #region ## ClassifyOTBCheck 입력된 OTB의 유효성과, 선인증여부를 확인 + public int ClassifyOTBCheck(string pOTB) + { + int ret = 0; + + try + { + byte[] GetOTB = Encoding.Default.GetBytes(pOTB); + + //입력된 OTB의 유효성과, 선인증여부를 확인 + //10 : 구버전의 OTB로 제약 없음 + //20 : 할인/결제 가능, 핀패드 입력 필요 + //21 : 할인/결제 가능, 핀패드 입력 불필요 + //30 : 결제만 가능, 핀패드 입력 필요 + //31 : 결제만 가능, 핀패드 입력 불필요 + + ret = ClassifyOTB(GetOTB); + + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll ClassifyOTB Function Result : " + ret.ToString() + ", (" + pOTB + ")"); + return ret; + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll ClassifyOTB Function Exception : " + ex.Message + ", Result : " + ret.ToString() + ", (" + pOTB + ")"); + return ret; + } + } + + #endregion + //#20170906 T페이 고도화 작업 phj, end + + //#20170906 T페이 고도화 작업 phj, start + #region ## ClassifyOTBCheckMsg 메세지 + public string ClassifyOTBCheckMsg(string pOTB) + { + string result = string.Empty; + try + { + switch (pOTB) + { + case "0": + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0729);//"유효하지 않은 OTB 입니다" + break; + case "10": + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0730);//"구버전의 OTB 입니다" + break; + case "20": + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0731);//"통합결제만 가능 합니다(결제비밀번호 필수)"; + break; + case "21": + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0732);//"통합결제만 가능 합니다(결제비밀번호 불필요)"; + break; + case "30": + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0733);//"일반결제만 가능 합니다(결제비밀번호 필수)"; + break; + case "31": + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0734);//"일반결제만 가능 합니다(결제비밀번호 불필요)"; + break; + + default: + result = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0735);//"해당응답코드없음"; + break; + } + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll ClassifyOTB Function Msg : " + result + ", (" + pOTB + ")"); + + return result; + + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + "XPayLib.dll ClassifyOTB Function Msg Exception : " + ex.Message + ", Result : " + result + ", (" + pOTB + ")"); + return result; + } + } + #endregion + //#20170906 T페이 고도화 작업 phj, end + } +} diff --git a/Agent/OLEDevice/OCBDirect.cs b/Agent/OLEDevice/OCBDirect.cs new file mode 100644 index 0000000..f9ef8e2 --- /dev/null +++ b/Agent/OLEDevice/OCBDirect.cs @@ -0,0 +1,623 @@ +using Cosmos.Common; +using Cosmos.CommonManager; +using Cosmos.ServiceProvider; +using Cosmos.UserFrame; +using System; +using System.Runtime.InteropServices; +using System.Text; + +/*-----------------------------------------------------------------------------------------------*/ +// 설 명 : OCB 직통신 +// 작 성 자 : +// 변경 이력 : +/*-----------------------------------------------------------------------------------------------*/ +namespace Cosmos.OLEDevice +{ + /// + /// OCB 직통신 + /// + public class OCBDirect : IOCBDirect + { + #region MPS.DLL 함수 + /// + /// 가맹점등록 + /// + [DllImport("MPS.dll")] + public static extern int RegisterMcht(string A, string B, string C, string D, string E, string F, string G, string H, string I, string J, byte[] K); + /// + /// 가맹점등록 + /// + [DllImport("MPS.dll")] + public static extern int AuthMcht(string A, string B, string C, string D, string E, string F, string G, string H, string I, string J, byte[] K); + + /// + /// 포인트조회 + /// + [DllImport("MPS.dll")] + public static extern int InquiryPoint(string A, string B, string C, string D, string E, string F, string G, string H, string I, string J, string K, string L, byte[] M); + /// + /// 포인트적립 + /// + [DllImport("MPS.dll")] + public static extern int SavePoint(string A, string B, string C, string D, string E, string F, string G, string H, + string I, string J, string K, string L, string M, string N, string O, string P, + string Q, string R, string S, string T, string U, string V, string W, string X, + string Y, int Z, byte[] AA, int BB, byte[] CC, byte[] DD); + /// + /// 포인트적립취소 + /// + [DllImport("MPS.dll")] + public static extern int CancelSavePoint(string A, string B, string C, string D, string E, string F, string G, string H, + string I, string J, string K, string L, string M, string N, string O, string P, + string Q, string R, string S, string T, string U, string V, byte[] W); + /// + /// 포인트사용 + /// + [DllImport("MPS.dll")] + public static extern int UsePoint ( string A, string B, string C, string D, string E, string F, string G, string H, + string I, string J, string K, string L, string M, string N, string O, string P, + string Q, string R, string S, string T, byte[] U ); + /// + /// 포인트사용취소 + /// + [DllImport("MPS.dll")] + public static extern int CancelUsePoint(string A, string B, string C, string D, string E, string F, string G, string H, + string I, string J, string K, string L, string M, string N, string O, string P, + string Q, string R, string S, byte[] T); + /// + /// 포인트할인 + /// + [DllImport("MPS.dll")] + public static extern int DiscountService(string A, string B, string C, string D, string E, string F, string G, string H, string I, + string J, string K, string L, string M, string N, string O, string P, string Q, string R, + string S, string T, byte[] U); + /// + /// 포인트할인취소 + /// + [DllImport("MPS.dll")] + public static extern int CancelDiscountService ( string A, string B, string C, string D, string E, string F, string G, string H, string I, + string J, string K, string L, string M, string N, string O, string P, string Q, string R, + string S, byte[] T ); + /// + /// 망취소 + /// + [DllImport("MPS.dll")] + public static extern int ForcedCancelUsePoint(string A, string B, string C, string D, string E, string F, string G, string H, + string I, string J, string K, string L, string M, string N, string O, string P, + string Q, string R, string S, byte[] T); + + private IDataCommonUs m_cDataCommon = null; + protected SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + + #endregion + + #region 생성자 + /// + /// StateServer Object (StateServer 객체) + /// + public StateServer StateObject = (StateServer)StateServer.GetInstance(); + /// + /// Pos 상태 정보 객체 + /// + public PosStatus m_cPosStatus = null; + /// + /// 생성자 + /// + public OCBDirect() + { + try + { + m_cPosStatus = (PosStatus)StateObject.POS; + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region OCB 직통신 + /// + /// OCB 직통신 + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public string OCB_Direct_Point(string sTradeDiv, string sPayWayCD, string sPayWayDtlCD, string sTranType, string sCardNo, string sCardPwd, string sPayAmt, string sApprDt, string sApprNo, string sUniqueID, ref string sResMsg, ref string[] aIrtRspDTL) + { + int nRet = -1; + string sRet = UserCom.RST_ERR; + + byte[] bRecvData = new byte[4096]; + int nNowPos = 0; + + string sResCD = "0"; + string sApprTm = ""; + + try + { + #region 0.기초설정 + // 응답메시지 + sResMsg = ""; + + // VAN 정보 조회 + //string sCMPApprID = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.POINT_ITEM, ItemConst.TR_ITEM_ID.POINT_USE.OKCASHBACK_POINT, PosMst.MST_VAN.DATA.CMP_APPR_ID); + //string sApprID = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.POINT_ITEM, ItemConst.TR_ITEM_ID.POINT_USE.OKCASHBACK_POINT, PosMst.MST_VAN.DATA.APPR_ID); + //string sApprPWD = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.POINT_ITEM, ItemConst.TR_ITEM_ID.POINT_USE.OKCASHBACK_POINT, PosMst.MST_VAN.DATA.APPR_PWD); + string sCMPApprID = PosMstManager.GetMstVan(PosMstManager.GetPosOption(POS_OPTION.OPT326), PosMst.MST_VAN.DATA.CMP_APPR_ID); + string sApprID = PosMstManager.GetMstVan(PosMstManager.GetPosOption(POS_OPTION.OPT326), PosMst.MST_VAN.DATA.APPR_ID); + string sApprPWD = PosMstManager.GetMstVan(PosMstManager.GetPosOption(POS_OPTION.OPT326), PosMst.MST_VAN.DATA.APPR_PWD); + + // 입력구분 + string sInputType = "2"; + if (sCardNo.IndexOf("=") > 0) sInputType = "0"; + + // 추적번호 = POS번호(2) + 일자(DD) + 시간(SSFFF) + if (sTranType != PosConst.POS_OCB_DIRECT.NET_CAN_POINT) + sUniqueID = m_cPosStatus.Base.PosNo.PadLeft(2, '0') + DateTime.Now.ToString("dd") + string.Format("{0:00000}", DateTime.Now.ToString("ssfff")) + "0"; + #endregion + + // 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문) + string sSendData = sTranType + CmUtil.MidH(sCMPApprID, 0, 4) + DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss") + CmUtil.MidH(sUniqueID, 0, 10) + "A" + "A1" + CmUtil.MidH(sApprID, 0, 15) + CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10) + CmUtil.MidH(sApprPWD, 0, 16) + CmUtil.MidH(sCardNo, 0, 16) + CmUtil.MidH(sCardPwd, 0, 16) + CmUtil.MidH(sPayAmt, 0, 16) + CmUtil.MidH(sApprDt, 0, 8) + CmUtil.MidH(sApprNo, 0, 16) + CmUtil.MidH(sUniqueID, 0, 10); + + // 승인데이터 중 카드번호 마스킹 처리(2017.05.25) + string sWriteSendData = CmUtil.MakeLogDataToMask(false, sCardNo, sSendData); + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "[SEND:" + sWriteSendData); + m_cDataCommon.SetSaleApprLog(sTradeDiv, new string[] { sPayWayCD, sPayWayDtlCD, sTranType, "S", sCardNo, sPayAmt, "", "", "", "", "", sWriteSendData }); + + #region 1.요청전문 + // 1.요청전문 + switch (sTranType) + { + case PosConst.POS_OCB_DIRECT.STOR_REGISTER: + { + #region 가맹점 등록 + /* + A CHAR 4 전문번호 2A10 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 16 가맹점 비밀번호 예:1111 + */ + nRet = RegisterMcht(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1" + , CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10), CmUtil.MidH(sApprPWD, 0, 16), bRecvData); + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.STOR_AUTH: + { + #region 가맹점 인증 + /* + A CHAR 4 전문번호 2A20 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 16 가맹점 비밀번호 예:1111 + */ + nRet = AuthMcht(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1" + , CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10), CmUtil.MidH(sApprPWD, 0, 16), bRecvData); + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.INQ_POINT: + { + #region 포인트 조회 + /* + A CHAR 4 전문번호 2M30 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 19 카드번호 예:1234123412341234 ('-'제외) + K CHAR 19 주민번호 예:1234123412341234 ('-'제외) + L CHAR 2 요청구분 카드번호 : 'R1' , 주민번호 :'R2' + */ + nRet = InquiryPoint(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1" + , CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10), CmUtil.MidH(sCardNo, 0, 19), CmUtil.MidH("", 0, 19), "R1", bRecvData); + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.SAVE_POINT: + { + #region 포인트 적립 + /* + A CHAR 4 전문번호 2100 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 8 거래일자 예:20030924(YYYYMMDD) + K CHAR 6 거래시간 예:130201(HHMMSS) + L CHAR 1 KEY-IN 여부 '0':Swapping, '2':Key-in, 'F': mart 수집상품 only + M CHAR 19 카드번호 예:1234123412341234 ('-'제외) + N CHAR 19 주민번호 예:1234123412341234 ('-'제외) + O CHAR 2 전표코드 '01' : 적립 + P CHAR 2 거래구분코드 '11' : 금액현재, '12' : 금액가용, '21' : 포인트현재, '22' : 포인트가용 + Q CHAR 2 계약구분코드 현금:01, 카드:02 + R CHAR 10 거래금액 예:10000 + S CHAR 9 현금거래금액 예:12000 (공급가액(T) + 부가가치세(U) + 봉사료(V)의 합계) + T CHAR 9 공급가액 예:10000(현금결제시 현금영수증발급을 위해 입력) + U CHAR 9 부가가치세 예:1000(현금결제시 현금영수증발급을 위해 입력) + V CHAR 9 봉사료 예:1000(현금결제시 현금영수증발급을 위해 입력) + W CHAR 1 거래자구분 소비자소득공제용(0:기본값), 사업자지출증빙용(1) + X CHAR 1 현금영수증처리구분 적립+현금(0), 적립Only(1) + Y CHAR 30 영수증번호 예:123456789(공백은 Space처리) + Z INT 4 쿠폰상품개수 예:2 (50개를 초과하지 않음) (상품 없을 경우 0(Zero)) + AA STRUCT 가변 상품바코드(18) 예:8823456789123 (적립코드)(상품 없을 경우 입력안함) + (모두 CHAR형) 상품수량(5) 예:2 (공백은 Space로처리)(상품 없을 경우 입력안함) + 적립용 상품 제휴사코드(6) 예:123456 (상품 없을 경우 입력안함) + 포인트구분(1) + BB INT 4 마트상품개수 예:2 (50개를 초과하지 않음) (상품 없을 경우 0(Zero)) + CC STRUCT 가변 상품바코드(18) 예:8823456789123 (적립코드)(상품 없을 경우 입력안함) + (모두 CHAR형) 상품수량(6) 예:2 (공백은 Space로처리) (상품 없을 경우 입력안함) + 수집용 상품 제휴사코드(6) 예:123456 (상품 없을 경우 입력안함) + 상품판매단가(9) 예:10000 (공백은 Space로처리)(상품 없을 경우 입력안함) + 상품분류코드(6) 예:F10000 (상품 없을 경우 입력안함) + 인자를 넘길때 (CHAR *)으로 Type Casting해서 넘긴다. + */ + nRet = SavePoint(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1", CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10) + , DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss") + , CmUtil.MidH(sInputType, 0, 1), CmUtil.MidH(sCardNo, 0, 19), CmUtil.MidH("", 0, 19), "01", "11", "01" + , CmUtil.MidH(sPayAmt, 0, 10), CmUtil.MidH("", 0, 9), CmUtil.MidH("", 0, 9), CmUtil.MidH("", 0, 9), CmUtil.MidH("", 0, 9) + , CmUtil.MidH("0", 0, 1), "1", CmUtil.MidH("", 0, 30), 0, null, 0, null, bRecvData); + + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.SAVE_CAN_POINT: + { + #region 포인트 적립 취소 + /* + A CHAR 4 전문번호 2110 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 8 거래일자 예:20030924(YYYYMMDD) + K CHAR 6 거래시간 예:130201(HHMMSS) + L CHAR 1 KEY-IN 여부 0':Swapping, '2':Key-in + M CHAR 19 카드번호 예:1234123412341234 ('-'제외) + N CHAR 19 주민번호 예:1234123412341234 ('-'제외) + O CHAR 8 원거래일자 예:20030924(YYYYMMDD) + P CHAR 9 원거래승인번호 예:123456789(공백은 Space로처리) + Q CHAR 2 전표코드 '21' : 적립취소 + R CHAR 2 거래구분코드 '41' : 적립취소 + S CHAR 10 원거래금액 예:10000(공백은 Space로처리) + T CHAR 1 취소요청구분 적립+현금(0), 적립Only(1) + U CHAR 30 원거래 영수증번호 예:123456789(공백은 Space처리) + V CHAR 1 현금영수증 취소사유 코드 '1' : 반품/거래취소, '2' : 거래오류로인한 취소, '3' : 기타(사유분류 불분명) + */ + nRet = CancelSavePoint(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1", CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10) + , DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss") + , CmUtil.MidH(sInputType, 0, 1), CmUtil.MidH(sCardNo, 0, 19), CmUtil.MidH("", 0, 19), CmUtil.MidH(sApprDt, 0, 8), CmUtil.MidH(sApprNo, 0, 9), "21", "41" + , CmUtil.MidH(sPayAmt, 0, 10), "1", CmUtil.MidH("", 0, 30), "1", bRecvData); + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.USE_POINT: + { + #region 포인트 사용 + /* + A CHAR 4 전문번호 2400 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 8 거래일자 예:20030924(YYYYMMDD) + K CHAR 6 거래시간 예:130201(HHMMSS) + L CHAR 1 KEY-IN 여부 0':Swapping, '2':Key-in + M CHAR 19 카드번호 예:1234123412341234 ('-'제외) + N CHAR 19 주민번호 예:1234123412341234 ('-'제외) + O CHAR 16 카드 비밀번호 예:1111 + P CHAR 2 전표코드 '11' : 사용 + Q CHAR 2 거래구분코드 '40' : 사용 + R CHAR 2 계약구분코드 '08' : 포인트 사용 + S CHAR 10 사용포인트 예:10000 + T CHAR 10 총거래금액 예:10000 + */ + nRet = UsePoint(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1", CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10) + , DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss") + , CmUtil.MidH(sInputType, 0, 1), CmUtil.MidH(sCardNo, 0, 19), CmUtil.MidH("", 0, 19), CmUtil.MidH(sCardPwd, 0, 16), "11", "40", "08" + , CmUtil.MidH(sPayAmt, 0, 10), CmUtil.MidH("", 0, 10), bRecvData); + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.USE_CAN_POINT: + { + #region 포인트 사용 취소 + /* + A CHAR 4 전문번호 2410 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 Sequence number(일별 Unique) + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 8 거래일자 예:20030924(YYYYMMDD) + K CHAR 6 거래시간 예:130201(HHMMSS) + L CHAR 1 KEY-IN 여부 0':Swapping, '2':Key-in + M CHAR 19 카드번호 예:1234123412341234 ('-'제외) + N CHAR 19 주민번호 예:1234123412341234 ('-'제외) + O CHAR 8 원거래일자 예:20030924(YYYYMMDD) + P CHAR 9 원거래승인번호 예:123456789(공백은 Space로처리) + Q CHAR 2 전표코드 '22' : 사용취소 + R CHAR 2 거래구분코드 '42' : 사용취소 + S CHAR 10 원거래금액 예:10000(공백은 Space로처리) + */ + nRet = CancelUsePoint(sTranType, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1", CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10) + , DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss") + , CmUtil.MidH(sInputType, 0, 1), CmUtil.MidH(sCardNo, 0, 19), CmUtil.MidH("", 0, 19), CmUtil.MidH(sApprDt, 0, 8), CmUtil.MidH(sApprNo, 0, 9), "22", "42" + , CmUtil.MidH(sPayAmt, 0, 10), bRecvData); + break; + #endregion + } + case PosConst.POS_OCB_DIRECT.NET_CAN_POINT: + { + #region 망취소 + /* + A CHAR 4 전문번호 2410 + B CHAR 4 기관코드 해당기관코드 + C CHAR 8 전송일자 예:20030924(YYYYMMDD) + D CHAR 6 전송시간 예:130201(HHMMSS) + E CHAR 10 추적번호 포인트 사용 호출시 사용한 추적번호 + F CHAR 1 멤버쉽프로그램ID 'A' : OKCashbag + G CHAR 2 서비스구분 'A1' : OK캐쉬백서비스, 'A2' : T포인트서비스 , 'A3' : 로디아서비스 + H CHAR 15 가맹점번호 가맹점번호(8)+SPACE 7자리 입력 + I CHAR 10 가맹점사업자번호 예:1111111111 + J CHAR 8 거래일자 예:20030924(YYYYMMDD) + K CHAR 6 거래시간 예:130201(HHMMSS) + L CHAR 1 KEY-IN 여부 0':Swapping, '2':Key-in + M CHAR 19 카드번호 예:1234123412341234 ('-'제외) + N CHAR 19 주민번호 예:1234123412341234 ('-'제외) + O CHAR 8 원거래일자 예:20030924(YYYYMMDD) + P CHAR 9 원거래승인번호 예:123456789(공백은 Space로처리) + Q CHAR 2 전표코드 '21' : 적립취소 '22' : 사용취소 + R CHAR 2 거래구분코드 '41' : 적립취소 '42' : 사용취소 + S CHAR 10 원거래금액 예:10000(공백은 Space로처리) + */ + nRet = ForcedCancelUsePoint(PosConst.POS_OCB_DIRECT.NET_CAN_POINT, CmUtil.MidH(sCMPApprID, 0, 4), DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), CmUtil.MidH(sUniqueID, 0, 10), "A", "A1", CmUtil.MidH(sApprID, 0, 15), CmUtil.MidH(m_cPosStatus.Mst.StorBizPsnNo, 0, 10) + , DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss") + , CmUtil.MidH(sInputType, 0, 1), CmUtil.MidH(sCardNo, 0, 19), CmUtil.MidH("", 0, 19), CmUtil.MidH(sApprDt, 0, 8), CmUtil.MidH(sApprNo, 0, 9), (sTranType == PosConst.POS_OCB_DIRECT.SAVE_CAN_POINT ? "21" : "22"), (sTranType == PosConst.POS_OCB_DIRECT.SAVE_CAN_POINT ? "41" : "42") + , CmUtil.MidH(sPayAmt, 0, 10), bRecvData); + break; + #endregion + } + } + #endregion + + + + #region 2.처리결과 + // 2.처리결과 + if (nRet != 1) + { + sResMsg = ErrCodeToMsg(nRet); // 오류 + sResCD = "1"; + } + #endregion + + #region 3.응답전문(정상) + else + { + // 정상응답 + switch (sTranType) + { + case PosConst.POS_OCB_DIRECT.STOR_REGISTER: // 가맹점 등록 + case PosConst.POS_OCB_DIRECT.STOR_AUTH: // 가맹점 인증 + { + nNowPos = 0; + aIrtRspDTL = new string[Column.POS_REQ_OCB_AUTHMCHT.LEN.Length]; + ItemColumn.ParseMessage(Column.POS_REQ_OCB_AUTHMCHT.LEN, Column.POS_REQ_OCB_AUTHMCHT.TYPE, bRecvData, ref nNowPos, ref aIrtRspDTL); + if (aIrtRspDTL[Column.POS_REQ_OCB_AUTHMCHT.SEQ.RES_CD].Trim() != "1") + { + // 응답오류 + sResMsg = aIrtRspDTL[Column.POS_REQ_OCB_AUTHMCHT.SEQ.RES_MSG].Trim(); + sResCD = "1"; + } + else + { + // 정상 + sResMsg = "OK"; + sResCD = "0"; + sRet = UserCom.RST_OK; + } + break; + } + case PosConst.POS_OCB_DIRECT.INQ_POINT: // 포인트 조회 + { + nNowPos = 0; + aIrtRspDTL = new string[Column.POS_REQ_OCB_INQPOINT.LEN.Length]; + ItemColumn.ParseMessage(Column.POS_REQ_OCB_INQPOINT.LEN, Column.POS_REQ_OCB_INQPOINT.TYPE, bRecvData, ref nNowPos, ref aIrtRspDTL); + if (aIrtRspDTL[Column.POS_REQ_OCB_INQPOINT.SEQ.RES_CD].Trim() != "1") + { + // 응답오류 + sResMsg = aIrtRspDTL[Column.POS_REQ_OCB_INQPOINT.SEQ.RES_MSG1].Trim(); + sResCD = "1"; + } + else + { + // 정상 + sResMsg = "OK"; + sResCD = "0"; + sRet = UserCom.RST_OK; + } + break; + } + case PosConst.POS_OCB_DIRECT.SAVE_POINT: // 포인트 적립 + case PosConst.POS_OCB_DIRECT.USE_POINT: // 포인트 사용 + { + nNowPos = 0; + aIrtRspDTL = new string[Column.POS_REQ_OCB_POINT.LEN.Length]; + ItemColumn.ParseMessage(Column.POS_REQ_OCB_POINT.LEN, Column.POS_REQ_OCB_POINT.TYPE, bRecvData, ref nNowPos, ref aIrtRspDTL); + if (aIrtRspDTL[Column.POS_REQ_OCB_POINT.SEQ.RES_CD].Trim() != "1") + { + // 응답오류 + sResMsg = aIrtRspDTL[Column.POS_REQ_OCB_POINT.SEQ.RES_MSG1].Trim(); + sResCD = "1"; + } + else + { + // 정상 + sResMsg = "OK"; + sResCD = "0"; + sApprDt = aIrtRspDTL[Column.POS_REQ_OCB_POINT.SEQ.APPR_DATE].Trim(); + sApprTm = aIrtRspDTL[Column.POS_REQ_OCB_POINT.SEQ.APPR_TIME].Trim(); + sApprNo = aIrtRspDTL[Column.POS_REQ_OCB_POINT.SEQ.APPR_NO].Trim(); + + sRet = UserCom.RST_OK; + } + break; + } + case PosConst.POS_OCB_DIRECT.SAVE_CAN_POINT: // 포인트 적립 취소 + case PosConst.POS_OCB_DIRECT.USE_CAN_POINT: // 포인트 사용 취소 + case PosConst.POS_OCB_DIRECT.NET_CAN_POINT: // 포인트 망 취소 + { + nNowPos = 0; + aIrtRspDTL = new string[Column.POS_REQ_OCB_CANPOINT.LEN.Length]; + ItemColumn.ParseMessage(Column.POS_REQ_OCB_CANPOINT.LEN, Column.POS_REQ_OCB_CANPOINT.TYPE, bRecvData, ref nNowPos, ref aIrtRspDTL); + if (aIrtRspDTL[Column.POS_REQ_OCB_CANPOINT.SEQ.RES_CD].Trim() != "1") + { + // 응답오류 + sResMsg = aIrtRspDTL[Column.POS_REQ_OCB_CANPOINT.SEQ.RES_MSG1].Trim(); + sResCD = "1"; + } + else + { + // 정상 + sResMsg = "OK"; + sResCD = "0"; + sApprDt = aIrtRspDTL[Column.POS_REQ_OCB_CANPOINT.SEQ.APPR_DATE].Trim(); + sApprTm = aIrtRspDTL[Column.POS_REQ_OCB_CANPOINT.SEQ.APPR_TIME].Trim(); + sApprNo = aIrtRspDTL[Column.POS_REQ_OCB_CANPOINT.SEQ.APPR_NO].Trim(); + sRet = UserCom.RST_OK; + } + break; + } + } + } + + // 응답 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문) + string sRecvData = ByteToString(bRecvData); + + // 승인데이터 중 카드번호 마스킹 처리(2017.05.25) + string sWriteRecvData = CmUtil.MakeLogDataToMask(false, sCardNo, sRecvData.Trim()); + UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", + "[RECV:" + sWriteRecvData); + m_cDataCommon.SetSaleApprLog(sTradeDiv, new string[] { sPayWayCD, sPayWayDtlCD, sTranType, "R" + , sCardNo, sPayAmt + , sApprNo, (sApprDt == "" ? DateTime.Now.ToString("yyyyMMdd") : sApprDt), (sApprTm == "" ? DateTime.Now.ToString("HHmmss") : sApprTm) + , sResCD + , sResMsg + , sWriteRecvData }); + + #endregion + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + sResMsg = ex.Message; + } + return sRet; + } + #endregion + + #region 응답코드 + /// + /// 응답코드 + /// + /// + /// + private string ErrCodeToMsg(int nErrCode) + { + string sMsg = string.Empty; + + try + { + switch (nErrCode) + { + case -1 : sMsg = "실패 - 함수Parameter값 이상"; break; + case 2 : sMsg = "암호화 실패 - 암호화, 복호화오류"; break; + case 3 : sMsg = "소켓 초기화 실패 - 네트워크 단절에 의한 소켓 초기화 실패"; break; + case 4 : sMsg = "소켓 Send 실패"; break; + case 5 : sMsg = "소켓 Receive 실패"; break; + case 6 : sMsg = "소켓 타임아웃"; break; + case 7 : sMsg = "인터넷 연결 실패"; break; + default: sMsg = "알 수 없는 에러"; break; + } + } + catch { } + return sMsg; + } + #endregion + + #region Byte 문자열 처리 + /// + /// Byte배열을 string으로 변환 (Byte배열의 null(0x00)값 제거) + /// + /// + /// + private string ByteToString(byte[] data) + { + int inx = Array.FindIndex(data, 0, (x) => x == 0x0); + if (inx >= 0) + { + return Encoding.Default.GetString(data, 0, inx); + } + else + { + return Encoding.Default.GetString(data); + } + } + #endregion + } +} diff --git a/Agent/OLEDevice/OLEDevice.csproj b/Agent/OLEDevice/OLEDevice.csproj new file mode 100644 index 0000000..bb0e611 --- /dev/null +++ b/Agent/OLEDevice/OLEDevice.csproj @@ -0,0 +1,139 @@ + + + + + Debug + AnyCPU + {404D077E-7CD4-49E6-8219-E79A28749DE0} + Library + Properties + Cosmos.OLEDevice + Agent.OLEDevice + v4.0 + 512 + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + ..\..\..\BIN\Agent.OLEDevice.XML + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\BIN\AxInterop.SPCNSECUCATLib.dll + + + False + ..\..\..\BIN\AxInterop.SPCNSECUMSRLib.dll + + + False + ..\..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\BIN\Cosmos.ServiceProvider.dll + + + False + ..\..\..\BIN\Cosmos.UserFrame.dll + + + False + ..\..\..\BIN\Microsoft.PointOfService.dll + + + False + ..\..\..\BIN\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + Form + + + frmDeviceOurHome.cs + + + + + + + + + + frmDeviceOurHome.cs + + + + + {0C240E1D-AB66-45B9-A7D5-A523F36009C2} + 2 + 0 + 0 + aximp + False + + + + + {670a81be-cee3-4c29-846d-a37652ca270d} + CommonManager + + + {a5b7accd-79eb-4261-bd36-01ab484ad8e3} + Common + + + + + copy .\IC\Agent.OLEDevice.dll .\Agent.OLEDevice.dll + + + copy .\Agent.OLEDevice.dll .\IC\Agent.OLEDevice.dll + + + \ No newline at end of file diff --git a/Agent/OLEDevice/Properties/AssemblyInfo.cs b/Agent/OLEDevice/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1b1ae1d --- /dev/null +++ b/Agent/OLEDevice/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("OLEDevice")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OLEDevice")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("cec0ee82-9b18-4cf3-b591-21e8967580dc")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Agent/OLEDevice/frmDeviceOurHome.Designer.cs b/Agent/OLEDevice/frmDeviceOurHome.Designer.cs new file mode 100644 index 0000000..de5d452 --- /dev/null +++ b/Agent/OLEDevice/frmDeviceOurHome.Designer.cs @@ -0,0 +1,65 @@ +namespace Cosmos.OLEDevice +{ + partial class frmDeviceOurHome + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmDeviceOurHome)); + this.axOUT_STORE_RF1 = new AxOUT_STOR_RF.AxOUT_STORE_RF(); + ((System.ComponentModel.ISupportInitialize)(this.axOUT_STORE_RF1)).BeginInit(); + this.SuspendLayout(); + // + // axOUT_STORE_RF1 + // + this.axOUT_STORE_RF1.Enabled = true; + this.axOUT_STORE_RF1.Location = new System.Drawing.Point(95, 12); + this.axOUT_STORE_RF1.Name = "axOUT_STORE_RF1"; + this.axOUT_STORE_RF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axOUT_STORE_RF1.OcxState"))); + this.axOUT_STORE_RF1.Size = new System.Drawing.Size(34, 36); + this.axOUT_STORE_RF1.TabIndex = 0; + // + // frmDeviceOurHome + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(380, 325); + this.Controls.Add(this.axOUT_STORE_RF1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "frmDeviceOurHome"; + this.ShowInTaskbar = false; + this.Text = "frmOurHome"; + ((System.ComponentModel.ISupportInitialize)(this.axOUT_STORE_RF1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private AxOUT_STOR_RF.AxOUT_STORE_RF axOUT_STORE_RF1; + + } +} \ No newline at end of file diff --git a/Agent/OLEDevice/frmDeviceOurHome.cs b/Agent/OLEDevice/frmDeviceOurHome.cs new file mode 100644 index 0000000..5a61316 --- /dev/null +++ b/Agent/OLEDevice/frmDeviceOurHome.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using Cosmos.Common; +using Cosmos.ServiceProvider; +using Cosmos.CommonManager; +using Cosmos.UserFrame; +using Cosmos.BaseFrame; + +namespace Cosmos.OLEDevice +{ + public partial class frmDeviceOurHome : Form + { + #region 변수 선언 + + protected SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 + protected StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) + protected PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조 + + /// + /// 빌딩코드 + /// + ///private string m_sRegStorCode = ""; + /// + /// 서버 IP + /// + private string m_sServerIP = ""; + /// + /// DB 스키마 + /// + private string m_sDBChema = ""; + /// + /// ID + /// + private string m_sID = ""; + /// + /// Password + /// + private string m_sPassword = ""; + #endregion + + public frmDeviceOurHome() + { + InitializeComponent(); + + base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); + //this.UpdateStyles(); + + //m_sRegStorCode = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.EMP_PAY_ITEM, ItemConst.TR_ITEM_ID.EMP_PAY.OURHOME, PosMst.MST_VAN.DATA.CMP_APPR_ID); + m_sServerIP = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.EMP_PAY_ITEM, ItemConst.TR_ITEM_ID.EMP_PAY.OURHOME, PosMst.MST_VAN.DATA.IP); + + // 접속정보 + LoadPosConfig_OurHome(); + if (m_sDBChema == null || m_sDBChema.Trim() == "") SavePosConfig_OurHome(); + } + + #region 접속/해제 처리 함수 + /// + /// DB 접속 + /// + /// + /// + /// + /// + /// + /// + private string DBConnect(string sStorCode, string sServerIP, string sDBSchema, string sID, string sPassword) + { + string sResult = "9^Not Connect DataBase!!!"; + try + { + sResult = axOUT_STORE_RF1.DbConnect(sStorCode, sServerIP, sDBSchema, sID, sPassword); + } + catch(Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + + return sResult; + } + + /// + /// DB 접속 해제 + /// + /// + private void DBDisConnect() + { + try + { + axOUT_STORE_RF1.DbDisConnect(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + } + #endregion + + #region 고객정보 조회 + /// + /// 고객정보 조회 + /// + /// + /// + /// + /// + public string Rf_EmpInfo(string sStoreCD, string sRFNo, string sRFType) + { + string sResult = "9^Not Connect DataBase!!!"; + string[] aRecvData = null; + try + { + sResult = DBConnect(sStoreCD, m_sServerIP, m_sDBChema, m_sID, m_sPassword); + aRecvData = sResult.Split(new string[] { "^" }, StringSplitOptions.None); + if (aRecvData[0] != "1") return sResult; + + sResult = axOUT_STORE_RF1.Rf_EmpInfo(sStoreCD, sRFNo, sRFType); + DBDisConnect(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sResult; + } + #endregion + + #region 결제 + /// + /// 결제 + /// + /// + /// + /// + public string Rf_TransData(string sStoreCD, string sTranData, string sRfType) + { + string sResult = "9^Not Connect DataBase!!!"; + string[] aRecvData = null; + try + { + sResult = DBConnect(sStoreCD, m_sServerIP, m_sDBChema, m_sID, m_sPassword); + aRecvData = sResult.Split(new string[] { "^" }, StringSplitOptions.None); + if (aRecvData[0] != "1") return sResult; + + sResult = axOUT_STORE_RF1.Rf_TransData(sTranData, sRfType); + DBDisConnect(); + } + catch (Exception ex) + { + UserLog.WriteLogFile(UserCom.LOG_IOS, + System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) + ex.Message); + } + return sResult; + } + #endregion + + #region SavePosConfig Pos 환경설정정보 저장 (PosConfig.INI) + /// + /// POS환경설정정보 파일저장 (PosConfig.INI) + /// + /// + public string SavePosConfig_OurHome() + { + string sRet = UserCom.RST_ERR; + try + { + CmMessage cmPosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); + + cmPosConfig.GetMessage("OURHOME".Trim()).MakeMessageOverWrite("DBChema".Trim(), "OURHOME"); + cmPosConfig.GetMessage("OURHOME".Trim()).MakeMessageOverWrite("ID".Trim(), "OUT_STORE"); + cmPosConfig.GetMessage("OURHOME".Trim()).MakeMessageOverWrite("Password".Trim(), "OUT_STORE"); + + // 파일저장 + cmPosConfig.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); + + LoadPosConfig_OurHome(); + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + + #region LoadPosConfig Pos 환경설정정보 읽기(PosConfig.INI) + /// + /// POS환경설정정보 파일읽기 (PosConfig.INI) + /// + /// + public string LoadPosConfig_OurHome() + { + string sRet = UserCom.RST_ERR; + try + { + CmMessage cmPosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig); + + m_sDBChema = cmPosConfig.GetMessage("OURHOME").GetMessageValue("DBChema"); + m_sID = cmPosConfig.GetMessage("OURHOME").GetMessageValue("ID"); + m_sPassword = cmPosConfig.GetMessage("OURHOME").GetMessageValue("Password"); + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return sRet; + } + #endregion + } +} diff --git a/Agent/OLEDevice/frmDeviceOurHome.resx b/Agent/OLEDevice/frmDeviceOurHome.resx new file mode 100644 index 0000000..e03c924 --- /dev/null +++ b/Agent/OLEDevice/frmDeviceOurHome.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAXQAAAAIB + AAAAAQAAAAAAAAAAAAAAAEgAAACTsgAASAAAAAMACAAL8ldHIAAAAF8AZQB4AHQAZQBuAHQAeACEAwAA + AwAIAAryV0fg////XwBlAHgAdABlAG4AdAB5ALkDAAAL + + + \ No newline at end of file diff --git a/Dropimage/Bl_bar.png b/Dropimage/Bl_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..f25032c2e1ede542cac45f89d6fa51c2038f9142 GIT binary patch literal 1002 zcmaJ=yKmD#9Co3UsI+td38;7+ZiRwG{K})X71JhmLIb#}(nt*~)UmIP)!Jw5D|TB3 zM3;t%rHF3yA7EoZ3>^wXnVA4FAhCg1J918wl!0LBd=Gu!_j}xTjhX3NgZ;z(6h#e| zrqnW-Pm(bl>m&d5;o=K2UBHDZo<$2d&^<`yOjLuQWb2Et40Ut$;Xce#)bVRprHZTC zUCBT;qemDfv|YlcsO&`O>c$eppavH$N2Y(j+ogeJ%Jf`X<1|-+b!%$PgR^VX6=QA5 z5KVgGCdh^o5wIcFL1-^Kz7)!IQ&%GE=$NHJ6M~my`Y@@gHUkvoL6BxL34>1wU`%BA z3?~Yy8$jUrF_s%+`DB9QB`zZ+MbP?a63sIgq_SFU#UeYIu4C*THu25Q>>p|;&Y`?w5`^8Kf&OL)5_N4H#OEx>M1g<3$zRgvUv0_69x4GsKH`SFJ*}-;6WEFbWBWM;qWP@helGQyIzN=n~Yj)2? z=*neDGHi6Ye_eL_h&U)(cC1S_9rHtnINl@Hj{hoqf48_!MV|U s&lF*3^zG%%jh)7J&+UzaFVwLC>R|WugO@wKd(rDF6{gkK`T3`R0DtK=k^lez literal 0 HcmV?d00001 diff --git a/Dropimage/Bl_discount.png b/Dropimage/Bl_discount.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6206d6841b541305afae4ab8f94b998c13031b GIT binary patch literal 982 zcmaJ=&ui0A98WC{*&GN8PCgj)5n=`$u@0Mw2#; zHN_&XU?vzLc74X?xaDH(n^p%?(89Zpr}95Oe&T^+tNd2Z5Dj0$ZKv7~@MeF#Vf8x} zviaf)SdJAY;9_cm*xmC&C06;NuEN&IG33DzLOUvdo>bG=02&D}$O-w3C1qt$K!TJP zk(_-9WKk+Wu>hr|j3_B$URgq5^zkfOVDBh(y)uf$b}HYd)K?&kqDY9A1QP5*2_XbU z8Om~oAu?glqh_4(!o{(IjzcSOeCiMnB#LH>bg9a-OwUVj{fVp>j@rZ;24mBQk{~7} zje&;of2iwD&>^kki+ukn95#ABhIJg0ZeX#C+gVIP`HB``laio8$lkb%8*M^K*d{*E zw4`f~!2K=9vq=;_7;+3lsd*taJqy=#m1in~RFUUl2k@0FBM9qRS{KW z4avFOn5z@3>tc_Nx%LIOJe8Z+!Sz{W9S6=6Y*zx}f??T;Gd-8psd^)>Jv|p~Di^Y3 zU~;*CUH15hIVf39tjjhN^J9-WK48{9u-4|-v#8YcQX~G-`h9j*Oy^S9)2~x=^2@To1#kcp*-p$nC{Q6w|`u61V!r+w8{gmfcj!v3)7t*OqS2=%hZU0n! Q+DTqot-P*(Slxd92mMtrP5=M^ literal 0 HcmV?d00001 diff --git a/Dropimage/Bl_num1.png b/Dropimage/Bl_num1.png new file mode 100644 index 0000000000000000000000000000000000000000..147009198a9b06589f838f9bc6b1190d1e06021b GIT binary patch literal 1914 zcmaJ?X;c$e7>y#b8Ce94`w)&OLRKIlk${s8A_Nhli7SR=AQ6&@$p8roxS<6EcN7t8 z72_@ndq$=uBh=>cQ2#AVXEznl9(us=pN9mk1^S$@Zz4u$+nXJf&5Ul+;dkhAH z6@+r5P&?i7+73s*zh0_ah?=noPl80laY%|(3t>Px918&gl{6lTf~0c8@;WFGgR$~d ziX@0c7|xWzDx%baA?j5cl#Rgz2J1CaSptLru~58H&BDJmRp9}poP`(r3&}za2T~|Q zQ?*cZYJ^CZnjmAy@xehrpq_~es31fN=v9eo9aGQ3f7WH9Ys)bS4}69o2`v1Vpd`Xb zfCFnGz@JDX$S8hPfX*ONXk-S}&j+BADRdHjfImC79NfCOA0E@H(9mrYnjl3k@Qjxi9#e>QW^jXh5rv#slK6gNEGxv-v1QV zi3}Qu6b0$vB&`f>T%3o+m4?aDLQ(|QieNZ#po)rW~-x)jWvRn??%J6JfOt3SPR-khL?gba7jtR=*Ewkcrn z%9nW+bCoSi7CqczR+n0vx)b+_8Y@@EMLxPL>ATjr+`O!0Rg>SJ;kSIu@jIFj&yj&_ zz>({8)tSy{ozs_He;~T%aHqiF$p(5+-qT38Rj%d&E@oS!bJy+M^ekdV^s?}kDDa@t)}~YkIB;{{PbH756-70 ztaD}3tlZLfhv&(5b?vtJUD4Wa0 zB|-E;fJVk#j{&90D^|3P2&vZWKm2sqOI&7PMMvW^@m}M;3U}8BI|GL2VvT!VmszJG zRX1zAl6FkW-EDnrciHRILaVx#QCIEkU0&xMYFNK+vwOcy9dA#cRsIcj+PpUr!mSRj z`8>(;^K9ePdd2Jg6a}(x*IoC>sM{5;_m);9tZ2aHYXM~|kT8sf3OL*4bl zvDGa26uq|lK~qDH`Q)9SI$jO$Ii2~Wx7%twdFzg|#(f`R zS35hFFPbPA;*pmt%10@SMvutcZjNd65`|`R<-1Shi=`9+xsC$9XIoo4*y4%|NH@E0 zYa~b~>?4`7P0IFScyx%@WCyIvF5{-1m6M`;CoXhLEk1qDJI^sgaQ9uvp&F?{vSc}ZPWw9reZFZ_RtTVKvR{%C2gA5yb=*Wb@p<7mf*eq7)`T|k&@ d6B|4XhjI1A*oB?nX0-eb1-uCEN%qn;{{Xwn`!)ao literal 0 HcmV?d00001 diff --git a/Dropimage/Bl_num2.png b/Dropimage/Bl_num2.png new file mode 100644 index 0000000000000000000000000000000000000000..cd1c5887dedab7d60180e8f0bef023087e78df38 GIT binary patch literal 2139 zcmaJ?c~nyQ9!Ip&)ShLL#hko>G`X<3ppdu#5}2sZOmWmF2sdE_F2OZWMk}i^+qA4~ zvoal9-eitWI_kJhlxdrlrl~{IETLvH)mV*|K4`Lef4ts3=ic9PKA+Eb`S1|pXPduQE_WoFmnCo*A6^Tshc!YKhzJ!!sUX0W3)8?DP$3fSt@XCR%EOwD_uktV}gT#KrPKIAO~R~pq0xMYMPdgd8bP=?=9Cv4Db#D zr_(WiCB^4O158K-0)7MvUPSiw2K=c6GKEC-_Voh1No0Q_$)8B}!IQ`|5{2eN1>Qdx zb2OEBJuQaCejm$xqGKd5tfUc%8jXga@gYE}G$NTwr4mWrL~n1r8G%=4Dqx`&uTW!W z6j-2Iq>?IODWm`_io#SV1Eyolnf_IRT=_v(p?=>cbHj*Qp^``@kSrz50C~Ls50%S5 zpw(~;_;BnRG=O_P2+7oU&n zz2}NQo{R5CxkPg^M9XmhYuGbaW(QfeAFOLWd@w(#Fgsplw)Wu`W*-7!bDhfyjn($w zIHHrSUH3_QRFr8Vhg9DE&6WchSIEou@@(za49?zluhc2cVQKD$1@l>5uMtJk)J&Yq zZW}v252xo|#kMB7ska`v8oP%H&3B9`+Ivg86Ou14F$nmxUwy@BUVVXsz7}V{ z$_Vbfi0|znqCOV~+uItPoOOW>r{tP1{!BrSqR|ms56*)m9wljKIIs7nq0XGt)^jqn zZ4vqT&RtKMrovX;9)GH+AMbiHO~i%(T@W!{?iWs zZ78p(&%ctTyg~isyyL0JpESi#=eQKJ4PAp{Im0F1FwH)z{>I~cbnE@OLqG# zyGse!Mz};R9B^f;$gcR5!o3wy^YtcI`N(S1@g=89+CHl_qCy&Qy^^N|FK@!Yql|d^ z5$bG=X)EQA{<a2_eO z(X;$9vbu6)-|KYKvfr0y7nMBYx9*^~RUMaKi;7Fr`yBLlV!OJUxSt0K^fD#`!%v}L zr?RKdE%Od{^Yn6l{-cbs_g37TTYsFgE}o9eN)qTjW(mRTm)n^uY6$Iahv&18)04Z8 zjD|!ThI?-=DT;ZJYh#6tgd1t|e{Jhk|NLx$2d?2tyBNt%@{QlHWf)QOo1R`6(OKVN zlZ;>i0a%eMRAT2MxhqlBZ$U_{RN(A<2Um2=2` z-Pyh?|L7GrLqp19x9WQJ1mkSez@G0G%Ep2|D;i%0o++OYo2D)={u(Ns6M|mTeR9OJ z#!zA7=&)M<+axXL=LYvfoWa29v9jwdXvSA;-!zd^^|t5B(at-C2bw;W zyv?rRHilzb4YABzUKOt=r`+oWV0YY5;ki9da2{ww^_BN*+c+YA!{?*Iuyv2u z-L!XJ#Id_{bv$kIWp{1=L#-h3mtQow2!}jJS;(Qs?k#EKRl@K40-6(2%4x_4g>kMs zFIbaz`H^}@wpo93tz}MXUs+s*qon8bJjy)%)O-OV9?s0#6#N6-^1J7TMY1Xxg53WA DnRsoz literal 0 HcmV?d00001 diff --git a/Dropimage/Bl_num3.png b/Dropimage/Bl_num3.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8320dc64e8db7fbdb4d3cc69486ad201b90f7e GIT binary patch literal 2201 zcmaJ@dpwi-A73&ul0zy|o-;>w%5E-O8^dh0u}P@r5@vg_!!EXIvOF_U9LqPNJ4t4;MguxSVBs&LNzz&BeVsS()-X4v^lW_#HJqh^oAfaed zek9qC?)fDaw4xxR<#Gubi&ZET7==AXERDkANhA^$XNR@3LqiC(EI}maD$ydD)vN*? zl<}kjiCiES0UAYagg9PKK|-1Sa|EH}tE@=&rA$!4uu853i^t$JN16q)+5aCZ6n;g^ zlgAO~rtU#$x*zM3BtL5`O~*6#4o+6#lh^_X;Ofbvo6 zp#;|cD2t}Tnk0d@cd(&%+J>^b8!}nxDtvj4fzje+u`M@44hMIqukZoyfh`V!Gn{uo z+zx*S+qr=eFBb4KZ|`hNeqNTqO4og~&MT)m$Ilcc6cktqU^t^Zg}d6Dn%YTTuE z?U6nO#i01!uEA*aFn^Pfh`xN(thKtw@!~1A*ne=3Rb1rbXzl4Xo;^E)%2}KGTPgFf z>DE4L_zWx0;W;vsZ*Z@y={o#cLg&8GKNISw@=ku5b}6Tr4|Fjw(;p3GRk$a z&wspdVS8`^t@&}bVyL9nQMKjmcRHgq1089kHDc|V(83B~(GSy!Zf-&=!?p=tk5h|z zqW+Mf%`Pp}zHqgE=%QR0&S|&mu8xqX=3D-K-05z&AYl=F9n*NYBJEB8HMD72h59Ia zS^vO>q0Wa-h+Q5i?Tr4M$yLPLq3nW|t8eY2`B5T zmDkCYmFE(|;cel#nDzND{b4rx$+aczMZH0Pa8x8_-J{#{FN6?L+Zx|S#9N6PE+6wt zq=sJU$qpi;&rRC%I4GO=n+@L&l^q?(ys!SQWb0Ww)4I}_LoIjA3D4c@Vt=}d#`q?q zY&(ludI;xdUL08(Jdyo!XA}3zr^)8bj_47~1zRfTu&!4QT>Gn{fwQRLoZxj!Q_rue zfhXt@H;)~UJ8n}-{Q;`#{)2(B;X5*V?AtVW>~%(}jA*zA@#;vs%^&UKhUHfVS}#K|yL*1!jf4$k=L!BoAxl>;9sSFbZJjt80EfNiVa5NMRW@Aym_p=!Y~8rw67 zH^)kVd(@Z$n_FC%YvGu4g=rIM47l1p=vcmV33I>jfaN^j?|&Uj{d3#&MD*g#{LzIt z9b2BIO1;UqFJn){?`p6l!1J4S!b_5;9Sl3Nt)R{ECa7nI*kl)4u0Nh}^@bK@IGv&!lNr+x~#6+&8YdV}}6 z`cCFxKJhs!#b%97dHljlA zuqxEiBw#D4ab|jZaQBTxx4bjmf3$M};}p*#Ey>D-SxkC`78tLOA5feq z9uGcQ&kQTH{#1hs8#M#Ho5;`Sh1Fbrc_*CMxaEDmO)W>Y&BW7S9RYZ%J9ws%zBj!X zu2;G0q4kTO-Tfwx9359E(`>U_kgY}O+WF!6XZ~jRk_XFxcW)v+2z+!=s&;U=$=RXR zm`&%|p}r^2B0Q|BVoS#gnyeWv6*n`p;)hm>aj|)orSF?_0a!gq1Ay|yh_%{d7q}O+ z;*!c&(8l_Xb#>R4dF8lm+9?=+_+e_!B_o-0wUHGog3HNfwF>kawyS^9GJs{2=Ej@7 SFMOc6EHFKM=;z$SQ~v|RZjgQe literal 0 HcmV?d00001 diff --git a/Dropimage/Btn_coupondelete.png b/Dropimage/Btn_coupondelete.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf2d784471eeb2a263cf7c2c719667982dd68a7 GIT binary patch literal 1830 zcmaJ?dsNd_7)L;-R*y30rd3C*Z!v9?wkfGpEKM1m7Lit^;43t@&_SD;23nXpd^>jL zL>>x?aB%3Rf`E!nCJIgw6kl^}s0i~h=R`#}H*ug#5uAT`%t>S;6UBpKkLqUdMc=OdwU?aBd10&i?MKrLdFxcDZvVCtd>v;xGzG=LMbp@jQRr;4pSf+ zg(dz{3?`*Ae^|^V)r8;U4Te#TWST5#UunIK;NS0;{G#%el1!1u?OFLp|JEYcQ(8PHb8$~-EliWx2 za>oQ$W@szam1BkF4e`-nLM;!LVMH*e07npi39i9$0>v;QD45Wof^IDJTHapP zCuiaG+k0dvWKxMg1^f{hlSt*T2}ntpG+{W5NRVjM3}iqq6$?b1JdwL(UMry<6IYk+ z>8pm|7Oz?g*tkAoxQ1!Ei1y|BaJrUI8C+Ldv!g=Zn?0;1us$lah)il6P+yjj6}~cv z_qcFEz4-I>Lc<`E8a=G9YEq?U@Rr1?{QUe63o>kj`V?vS6SE43tuPyhXZDVY^eOB- z|G*fQy}y3%{_Q^J-wC9Yl9*%7+s~X`I>cZ!Y9*6aTGp<4cW(8^5&itgaeG&1mT-&l zn$uKhapxA1tbNndt9rk9s5O7^EzfsCys;L~yyK1w-nNupXEu~R_F2rG%#@nND>By@nL(;7 zZD)~3Jye@o9nWv}oH6scPkPm;{W}k3SJ&u98jI4Vk>h^NY?+?o?1(O@n_OK(OkMJ1 z1NF(2S-Vay@tHQYFRx#LeyaX-(%4n42w5=SZ!fg%^uGN$X?e2EWt(<@qShVFp9N1s#vAlk{I+f$e)IX#?~*od6IHg? z9SSM87wp*uN981XFI1eEcGcH-pA_ceH-r8jx90~8uBtl>=I(KIc#lx!)s}U3 zl(wz=X|?ftued6G`m=kU_gu#)4f(J*SH1nn@CkZ>tATLACc}+ z$%YM%sVVJ$n_uEPAUiiAf6+mhFyva=apYfhsPWT4=Qc)P%;{C+@)$a!0r>2xy xkNBHL{?S>I)^?|JFaK4kzE-#8(H%n;dwg-b_rE9Ufm!Z9msS%>6bCI{`5#-e(9i$? literal 0 HcmV?d00001 diff --git a/Dropimage/Btn_toggle_off.png b/Dropimage/Btn_toggle_off.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3defd30ec76777575f2ead9873793267766a3d GIT binary patch literal 3056 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 literal 0 HcmV?d00001 diff --git a/Dropimage/Btn_toggle_on.png b/Dropimage/Btn_toggle_on.png new file mode 100644 index 0000000000000000000000000000000000000000..dc2f935baa553bca9bd350917ffab2a89c9394a4 GIT binary patch literal 2979 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 UbWerj0^5&8h%8)M6_~X1|2krjSpWb4 literal 0 HcmV?d00001 diff --git a/Dropimage/Ic_ai_off.png b/Dropimage/Ic_ai_off.png new file mode 100644 index 0000000000000000000000000000000000000000..170ce4aad20c11d812aca223d9d1fba8c3267b75 GIT binary patch literal 1694 zcmeAS@N?(olHy`uVBq!ia0y~yU{nLLojBNll>Ks8yf2x7+M*aSs7a@K!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EV zetCJhUb(Seeo?xG?WUP)qwZeFo6%mkOz;^d;tf|AVqJOz-6 ziAnjTCALaHmqNUdTL3pUuNWFkzyQ;)NG#Ad)H48i38v837r)ZnT)67ulAu(Cd$Af^ z98y`3svneEoL^d$42-xmWsp?`R?bDKi6!|(A^G_^uuu%h$S=t+&d4uNaCQcTnuUT! zcxGNoetEGbSdXu-m1kaYNn&1ds;7&s63`UA%*+%kGh<60UV^ATTyA+mU z%;)Li7*cWT&0X(~-b4xZ55|*H9Fs+axy8C#iy{N`q`lv4kdDj<3Kn~^ZNs7`n}oYN zRjkWSFr_9=NXajIET%YJ)>-!absP8P$!QbKlMy*{fMw znLe1$d=Si_p~i5O1&vrR11N?dK2-buxqjcFzW)Cbi9XjVrMad5O#~wE9$MS=HSAjL zAG0F6O}n>mFTWAUbTs6BM#^!G_2qva)mj(d=byN@PiV)K)z>FKexi0%}Lyl;^2{KV@?>A7kl zOXseQ>X-^K6x&82Pg0x=gg_h+u(T<^J?xyrelJv+Wzxw!b=p;IUN6>HA@ zWUo)kKd|(UxmdW{zE=A=({o%m^0?W#wQX84?Ro0mD>C6OeeQBk_q0dm91Rbguk>5F zTShX#C-v*oYHPurhR5a{+_R*5?&HIT&tm)Mocj6;EV=gN$3NxI?slI!Uug5ZDCYGE zpeM4^`kd_zzTf3PvvRHR;fah#L$1x1*&V&*-W-{DE29N7PObVI^6i<}+VJS-eag&T zE7xqc6uUn&`qq=Eqvh|*!rba!Y`PEDbyjD&=EQ8@b)}})EhTq?%+5OYO=kD3nC0KR zckPxD5AZoF_3!j`=35(3qZ1ghBEmr8*0vdWscxTbj%NvL?$Ow29&qXZhmH>)<=6sj zRKNSAgbBa4@BT9FhIGc`Bq{%o(;0XDHE;H|Y}ls1%)I`^rmWP%|A3LU>YK`xM`|U1 zeP4&&pCXqLvH#oiYJY3D3sL_M+b(;waLUogyQ_f-2Am@9r)kO+^eotFwd(4s^Gpwd r_#6xwyEst@4K*ManOHElRxp8~CcWk6${epbpc=!|)z4*}Q$iB}F~W{V literal 0 HcmV?d00001 diff --git a/Dropimage/Ic_ai_on.png b/Dropimage/Ic_ai_on.png new file mode 100644 index 0000000000000000000000000000000000000000..07926951edcabd6d86127205878f337a53b0a66c GIT binary patch literal 1675 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 literal 0 HcmV?d00001 diff --git a/Dropimage/Ic_mylist_n.png b/Dropimage/Ic_mylist_n.png new file mode 100644 index 0000000000000000000000000000000000000000..7d835d905da0ccc6c38fdc28e3774d2f489eed93 GIT binary patch literal 2019 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 literal 0 HcmV?d00001 diff --git a/Dropimage/Ic_order_off.png b/Dropimage/Ic_order_off.png new file mode 100644 index 0000000000000000000000000000000000000000..17a49c866df948727f8f56046e9a475698b177f9 GIT binary patch literal 1648 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 literal 0 HcmV?d00001 diff --git a/Dropimage/Img_bell.png b/Dropimage/Img_bell.png new file mode 100644 index 0000000000000000000000000000000000000000..42b5479c8c62dfd8a98fbf94e2c58f91a1b12010 GIT binary patch literal 16890 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 IV;b`R0PMhujQ{`u literal 0 HcmV?d00001 diff --git a/Dropimage/Img_best.png b/Dropimage/Img_best.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6167d97fdc892cd1e8aff98344f771a5778172 GIT binary patch literal 1559 zcmaJ>Yj6`)6yBsQ1K8F81?3@ZH-LpBNthMn2HckiC> zobP<+oZV1bQj|7!%2)(J(##8tWpJGf@8?HL;WKGM-#)lZ7ELyBvEUQ~oDU%RykG~Y z+09jgGQjbxSGE8hG_7}8ZKBPxQ0oxf3NCJ=2)exxjUc+*pqF#303vD!l`fAS>puD= zhPrq?R<5>?7Ow$RxfXIkiHusoKVgX)4>=)es`4h_1iJ$`Laj}7_N!hQUh zz|bKRafKcmCS|jfq6WbSP_;sXJ17;6X0r-PL$b7L9!ir`HbG_+loBT?EveBeS#;#W zU^E}^)Rq|wM`FP@Jys=(UM)cc0s%!psStdX1jVu}LDB?G4ul9&s5cl}y2@gi# zclcah(It4$xJS+|)QEZvG96CA?X_4QIrjKRgo2V0LC#B13X*WU<9Q8P`^7TwKaD3^ z`>m_JfG7igp~mNc^>E4)V5r^G1H}y?8|@;W3l@c|HVTd!H}HsNqaK4_6ugVqYFLtH zfP=+(V5e~7y&5~@z!~) zl@dp=KjYg+g8^S2jTZ30dGf)*`RMbEjR+#0V>aengTLB!hpijAtH^{?;kuV@747et z*F1Bkcy!B=?iu_0`~S#@MH*W-6;VcyN~NP*X&{`JME7+^u`n*0ST>Z3EG0ln^4} zX0!2FVKFf#Yjoi7X9i+RTI;$OQ*G;4%6C~)FJv^0lN~+N`eu%fy&H>JxLHKS$Ab?B zuYPwRfS!#;4|pP+^Lod`?BoWdEvY6Ji}ef)476Wq$A0ORy=C}0Z}*HH`;zJK!%?9- z4>N1gfu2u437y!Rd_$k3yCk`B{Mg~HGaYpE{flc3Nxn$xnytL^#uBL|nPyVjQuuip z?%9{GOifQ+R7&Z+k*~}DqzaWzRJxW$OtPu}zbhE50pCZtFe} zxZjEFp7HzaiVr0XTejcbxqR9BbFqI0k(p{q%lq@?$sL9Zr*m`LQ=Y4Dys)|C=Gxj_ sX~ol)Pk;O7!1rSVtq(Z2J})dm`p%B|VO{;U>iDnPY$`GCFQ};d4{69oUjP6A literal 0 HcmV?d00001 diff --git a/Dropimage/Img_main_logo.png b/Dropimage/Img_main_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..68836210807a5d2f5807ce3a997298837a93bb81 GIT binary patch literal 3537 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 literal 0 HcmV?d00001 diff --git a/Dropimage/Img_page_dot_on.png b/Dropimage/Img_page_dot_on.png new file mode 100644 index 0000000000000000000000000000000000000000..1a03a349e433bad9eeb4a8e8baea48a6c43876bc GIT binary patch literal 1255 zcmaJ>TWB0*6rLIy+oUbFh&2(K$pnk0&iy{@8n-*M-Gy$9+ikLlXy@{8c1Y&ZnMrq( zASSU0pAR4G4zro8~5JR#sF%`vDb6SP3d4EF-cP_#%=B1yA2MJtq`urj)KVK7=?m6d{; zS&IeVl2|2*e1#;d)hbbC2`?BXX<3#@iXj;WhZcA^?nZhIcf+2h2Ni^7VEd8nxoGTB zH@vYZi9x1~6dXUFUw7<=YeGTE$eQkxG(nM$6X&&R9YzK4KaCBo!{WFP$N~txvA~4& zDEBnMP`gJ5iVYzf<>kPJMbSr9&m41r8|Bm_2EP!NZ7G6GF%mFk+yVxJvl1uZI>$>; zK#n(QS+|(7(e$$sJ|$*2Ig_CnO=4(TlVxT{*1Tlg8^UGM+>-co&q>H2QKP6 z;L!b*Q&Yv-_vcO}+h+!zeCPbFUSdw*|7^!z-FD{Ev!nCfE4%rN-|WKYw7QBey&h_l z-0i~htofz3aDMk5_0ykzm{?Bsf@Ksl-X`AI_wO&;?i^_w3{ttv;=&VL&yR=8i12yK z$17+47QcS%pQmTv-+S_cwezO6gR3Vx@4oj@c2m!XCmt+a8tksO{ESVWz0+Oa_uKWu z<0pQ(=y})9v5Rbj)of7s;+ot;hn7 VzeL{q;$-~m$!Y!S{Qe^|{{hO3qwW9z literal 0 HcmV?d00001 diff --git a/Dropimage/Img_qr.png b/Dropimage/Img_qr.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a35ad53a3e1d16dbb0b7a17931a9e559326699 GIT binary patch literal 5741 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 B(l-DA literal 0 HcmV?d00001 diff --git a/Dropimage/Img_qr_bg.png b/Dropimage/Img_qr_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..cab809dd7c7fece738bad3ce6db2466c87829a3a GIT binary patch literal 1077 zcmaJ=Z%7ki9A0S=h7>`6?1Nk@ zV3JsV>PzIO3L>JQFGYQ*kfOp6vQJTnAc~17M3iLOdvlw8XdT?WfA04@zvun^p7%;~ zQ$uOV{t}zbRvK;$M(|jT-yPew;_s7P_dD@WhC*@F0^3kp(1Fb_!2}?}iqH-sK#+Pm z-vW#%IwVKqD9#_}M5s6fE5>0e8b)Kn8dDR*6hK4*w9BfGTzvMNBxK1)#@sy3YXOjy z8+&!o(%Tdjds8ASku}GNYLmkR3P1v3Djll9nLaYZ%i+1TO_4+<1f_iBx~MqcOa!0~ z2)Dyy7nv$2;bk3+hi08sM+hg)cq!UTF)lmJaI}YWu|)PEaW-9Q<08TOY%aX=kx7I! zj-t}(v?J|uK)sz}SeB(|C*^e7afIFIQITNURih%u5Cn#(%NmlQN?43S0(K!EiIuJ& zLDBNGs*x=dE*NDB8pSwh>qxmkp8tQSqU56u6agE0|4D2_do(~rfC0O75jU=_!b+ua z0UZbk>QM+ga#d_jLIjN@)QCX9s@hTFa7v4GkuBy5^H^YQjztrf#w$L8e1T9|@-S*%o8i?bk>!eS_^xqme~w}l;KP4m{pi@f=PiXE?GYm@zNCh)bm z6At>L=BLEU(%klw^E0t8^W$fSmX{VD?i{6yS8k3iUK(278~ZhQ-MKcw&yDm=pIRNB zTw}{FSN>d{t(om_n0(*2_Iv#G-N>2M1?}nyM7(&la!tN%?kTQ42NL^)){mpN%FDkm z-5qG~Rezm&IW08Li}?5F51ZZh8U_a{#_qB1P^;11VVfu1@Rj fe;hwpdw!E`_f*Y=*_H!0tcx5DH3c8kwO;%K@sx4} literal 0 HcmV?d00001 diff --git a/Dropimage/Img_qr_iOS.png b/Dropimage/Img_qr_iOS.png new file mode 100644 index 0000000000000000000000000000000000000000..54f41a904d91ed2b811734d4ced52ef308156f89 GIT binary patch literal 5597 zcmaJ_c|278+a?)HktNGe48q7VjIo4~fi>Bj=t%ZKd*T=nSfT?Cgmgta;mmMo>|Kuz9386Ne@fJuQetm%p=U zf+v!RBs|d_q^I{gYw94d6~PTl^dZUoi9w+>k!~b1+6{w4>chq9ED8hyR#VqdT}2J1 zuLm>KfGH^%XsD~gR1H)Oln^i#4OKOD#NSwbBF4)V=SKb;i~TQF|6j4c<>2a0_pFce zBzWVnhMq)M(4W)RB>a0Uh=1k#3yb~tSakmt3!w)C`CZ)qRqVe{(G~Q2_aEuf5B?E9 z&W)~kPr9`8+m|5>3_K{LKEi@BzLb8qGS*U{t@^>TJhoF?QYarPFpzulv4I%@$M(J; z(kv{=*ET;i!Gw4tJqmEyfC)+9ijNZqMjC~lyvd#ALsk8`P!mf#Te+L}8SV`KzT=m@ zpuMoPR=YE{Fv~VRdwcj{Jk_QPr(Rg?zs6GQ{UgEa`zZ3pjr7@$#5RR5+WS{#j_Lw_ z&hE~{rn2*$H@bW|5>6{a-#=LIf_Qey6t5xrmj(Ur&#t5 zcW6KEwnXwh#Sc8$c3bGpdgcA&#@Zecn6{<1#$5r9LeeZq(4dVHwhT8;wb-D+^Ou$pnC z07L=qyBYV^>wD(|Zizvq1Gji3 zZdtMBJX$PsO6Q=gJ6+|<_VPqVu54#z^)Y7lPnk?CoJr=_;3}lB_=Baf3e-^QP4BeX zo(#1KKc_S3cN@K0>wgsHjH{X6`_P;hd*S>-4z-T3AFbS5<|7)g8Bf@Xlr4>$sP*}* zZCmY@Jl~UXWv(+hCSHx^KLlg@@VUyhVvTyZW#y+v{pCOQ#v_jnASQOvDg6kH?#qTl zoqEsg%_d&!_T?mqjixBv6zWWo7cQ;a|CXEhNm(Vnd9H7GDVRqjslUvjC9-+v8hpzF zY+i8EB18(69Z_6v@j_lDJ_>zWqL`>1^v>IYBtcNteT7CySWO86&76#8=gJx?NpfXY(a(_ROgcO zubUr&nR}d8-fbA0nkUnRj2hObC*oFo?eg2M)*xgMdw&xPQ26M2qN-sg+oGrT+8W~v zaAHS7yFXPrWiQvXS;3+xjvF8WYhm2m=+oh7=r^IutA~eD%!UQ-O$Hptw4&V7Ak)cL3j+AF> z^g4sTrw}q(gwGn!tuT_L0Ddp<#rM1S!7xu7BVhN%2 zn8qE%3p9N<@f%1U4%U%&P@m4xyG-wKg5&7c_m9`UQTq+3^G)Jh4^L$Ma#LCk8(T-i z*p)t46V;}#B!SU4qVD8eXts?d8SOf$~V>n9wf=c7b#xqo1u?^}7llTGm0U7Z?y zdPN{jgH*5wDHl9eo+)Eq@JU@;8huYDD6aT~kH<7HC!hHvfu282NrZrnNB|VN;@^?~ zAY{__yL`>|xbsk&$?0xI3>RO?+L^?;u^6>U@L4TySWF%LS_(o*q#MoW-vyaxeK1x3 zu6AeAZ?3qaH^DedGwn6k_=Teb5{c!@vBYqIF5jqL=OTV-Q)4D4U^^{I;ie|H0Td^w zh{y|JgDu`)FaKGgY%FCUc#%nj7{w#Nq(wxXjNI8QL}jWg6#)TR=PI2)Du9(!KVtIY^v_>u2jai ztaTHjs@@%q@bfXuhiNdv&YcZm%a0gdb@C5CaRpQ@$p|{*af)>y)gRt*IecmwTufdLrOptu5t^J;x&rHcna&saL}+ z--tVpqo+~N|7@H^(_~UmZjeKIe>Au|Lk$vN|D49moSF+vo-0l_l`Ou$GMstem|sZE z&1KNAYqsmWZC6ZMirraPRJQgQtfWA2*rjQGu8S7~UvHN{+&l;7xBgXp4C*U*TUp7^ z`;Vuo0FH==%(LU#ZH|+2Bmxn1PJkna@f^cbF}<+%YdVM63z4*YjUgo~bw7JAvj3P) zwc`xJM{xy9#_60A(f-tbTGZlk`=@e@yxr6cUMC${a~mr1fTP_bc3V(XF35OMZz#G2 zZqKf2j~wf)G-5+Gqj|y}o!t0PY#+qDSF@1qERe|PsTl13L_;m4;(@&kQg`63motgi z4iKz_*mA~P4^T5TT5SmnzufwEcRC7X@`fWOZnO-oXRE^$7k#he{_-rt>8nd;5A$N`v_F!SCrHbA7=qk2weZ{7 z?%>AHaNJYMhQ_NW1GWWH@H@j`J!gJyqxjqB!v_psPt#x4)h)*iYA7=`t>$_r*B~_u zci+V~E1nY2*u%uaQ{>Ns&Q; zm^NXY=xFEWCGZz%XStud*>|laAI}vF=ElF$&AIJ=R4wS3tgDnM7h&kZ*`q!rCuVcl zZ{6~ybtWbgh;BGuPe(<^e%&2O8W`;xBfL4wce;MM!>|e=JDCJzVh+sv%KM%{gGHdB ziBZ2o(XWqqkaeHG-d~udu=t{^a-61Izwge353ggl0p8P9bJs-JyNrR{ubv*O<}I-5 z6<9G71ym`NT>d<;khT|4;2{XGmTTsYrz{4V(VL~?_q18!9(cK zJ$P!=z(-BJ>TWYXczl~r_WC1ln?%h4?ZOr&e;8Xw(X|7=YuZKrQWAr_vGj^eM}*g3 zx#7@zQ+pPg*#vZ~&P66lrI?!9K6!g_i$Rq1ol3viO1uwRg^AWZ5#J;`SdNh2!SS#9 z?N9zP?{i?h#+UF-e9M{tSM(_^C4QiwIwIoZ&I3x@j@-FLJu(QmcCvpb#b$9M=SN2!pihR8K;XV7a3T4A2KC#CUBhR zaYtsQ&?zHQc^Cuv5+3AXS{Ai6-vOzk65wb2;|8E=Hv}AYQRTM(pAIPFqerQ!?W22d2^`?zdcVqU@w;st} zFj{*^Ix}2JaLJwU?2=a%^>W!a+r^MF@5@Dd&8In~r&So)+g%kDdS<69krL+2-Q;m8 zCHZCD{&SlfDK)SJm+?x1iDB`r;(2U+phq8&^CrSZbnB8<#?)v~{>ai*rp>}ws(GFN zUT#F7N$U@X{lLThF`wZ?pOs11*I1qE$0470hM$)6%UweBc!N%>mu&Y4E>X%}JdWac zfmAMF2ZO7yC20TSuHy2l<^D|Fh=!e%eko}$_0g}dv2~1JSFIXCq0Y3r02B$o9U+}v z79EktzMI0{axr2Bd^Fu=%})FMxUQT{(a*_-`=uubN!M9k!T3*3ea8#rOGyGgz4D4= z=_xyg7`MZBLp}yWx#%+@wabVYSbZ+HUyM?C3!XZ{n|%D>t@|L0-CsylMA1Gd=0yQs z>x{Kv?J4$<`8@U~Rm7H^O}$#{W_mx5YI?UaT4HPRf!T|1gT^B2uc&wR@>{Wo*8}{L z_;}ZbBs-ORaa?{kzYkc4AML>dJGZ5O8ia_gGBk_8@Np$RW1~-AO*s|&`waRB35M@p z{^BIo^pJ(j)r9bXbv;%w5v3LA2s5VPx`3rAnGEN-9ywH&H-t?srbXfJTL&2&jy7_J z=pNVS){@z=AGENb09JRim5$||!f?H1wNwo6V8XsRW56~K=w_vMH>sY`5(sRcF9UAJ z5MN^TeFXAk(|5;C_$OSznlJ4?7K=M$_++8*$pX}_A^JYUgN?7cFK@kH`oi+lN)e^Y zBrXB==061UdZg~Dr?jh!AUU;C4P^%~p`~!0`#{O;)g}#&=L8bMKi;NJ zBrp@PMoTJagj+D44Rmgn%dB6KR$dsYm5U5nNSR}??#a6-2j0m0# z3aramkjZsY4NM1+!~veUiL}KuE~rGdX?`9!*83usD|=-u^xVtV(+I2Hd*D^UiUVnJ z6TU4B-)TOe@ab)H27AVMhT{vxk|~BVf;xTcCQ+w?*?6R^A6-&QMM@rSK6GZ$H4;%r zgu8>A?;=wJjc!+neumFli+^ooR4EJkWnpA5_#u~|GaO9d9WNq_`}0HPI9Eyd#%MHW zRFF-zu3Rw3hKs1}F?^9NLjRq^2fxXh4n>W@FiITIoEeF5kZN1m4J)zCE^oNV;F8!V zr*(vNE`GxxZTF!sx#4(0&#oft5Nqa&yM!D&+GqKThG~hu5v$lk9bhZ^)#+EMnqJ>R ze7C+atJE~VJhD1nW!<%0%j2>Kq0t-85`LYI=j1W|Zy#S0k0N?3LRnzOZ(2_Knrd|rj5A!L+#w{Z*Ek%5DL93qMM3S z9%LC!s8#1(I+<6VTGkM{2lDu3&U&d4-(TNCMBH9?d?}&K`9kdAVWQ5%PXiL+n{5_0 z5qt55tH;b+*vl?7ifU9};>71e#xG!>CKVUVHGC~xgKDNM)=hi#{cJ22z4CxP+~csw z{`8Lk-|V(iuhz56GxdS7KP`fPty}<{!B;2&g&QaN#$ARMP6V1UR1f2;gb<& zzu(y^IahF0l0=X_K6o?&m&*2JXksw@uilpcZD1z+u%-B`=L*rL^Z0eKB>Oe^}@(Q_nQ@ z^-QE+oW?hWI4O)Dm0FI>UgC(#7rFbO!>1Amcy~#8WA46 znpe5pbGc)+_u2Z|U`fP|v#N+c^_=bG@Y@Na8ncI+4a`j!(pL9=nf-X@Rg2x|BbYs= zFg~+8Z{P?SI}aZwzelClTSm@tm|dr(4(#^)ROlzC@<2mcR*K}Asj literal 0 HcmV?d00001 diff --git a/Dropimage/basket_list_bg.png b/Dropimage/basket_list_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..b7eaea3b4a89758b5e974a75c2a056a18a8bf01b GIT binary patch literal 2234 zcmeAS@N?(olHy`uVBq!ia0y~yU}OQ}I1V-L1;Fyx1 zl&avFo0y&&l$w}QS$HzlhJk@uEi)vdB*NFnDmgz_FA=0huOhbqsGEVo#=fE;F*!T6 zL?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRzL%C zQ%e#RDspr3imfVamB8j&0ofp7eI*63l9Fs&C5WRUd;=7m^NUgyO!drklMPLb6wEF4 z49yHIjZAbDj0_CT^$pDR4UKgT46O{ztc)!cpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pF zzr4I$uiRKKzbIYb(9+UU-@r)U$VeBcLbtdwuOzWTH?LS3W`avKTB%1XJkii(hGOE?jkSNl+@ny;uz{ z4yi0i)elN7&Mz%W21Z<(GRUd|E9aur#FG4?ko^1{SSSW$*(J3ovn(~mttdZN0qkw7 zOx$iU!f75j?M#Gjf6Oz}m)q+M7y$DDzI zRm;=GF{I+wn_C*gTY2dRJ%g^!?++F+yXiMb$d-K6GHCj~ z(6DfukCa*4t!0^KHS6Mw45n_7wm3hzhVfM5&&mIvzPHqEKb%{M$Q`fgpFaP1P0YS^F;Se^Fu;CaAaaWl2`7wJo&M6csJ zyz{%gy`A5`d4f6j{b#pX3>%)gDt@o45D$zv%arrIYVYiKk`Bf9?Od469^H1AY*||~ zi@_xPZo^uhLwEP=1T(EATe5#zGB4QqiY?~6!j{?>9JAKu9awdo>p*-H0|%1=M}qO&oKSevd;GEd<(F4h zIWRxH*U$Fnj97}mr@x0bU(5*Ev6JKMq-r~0KD3hHNn748`~A_056^!5xWVPv{AAww zz4C@PPS0Pj^Y@+WltsazS0~r)k1w&3UClcEN3PR69woN-#qa0ui{ooQy!pCaN9EPm zU(I&k&AXVly*q4m=#JEBqc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#7M#1QqR!L zz|zP>N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7I$DAX(zG{Q6U zQu51-HNkp(eXTt6ic1pnl2bihY?Xkf=w)W6SQ%NknVTEAn3y=5yBHd}T3R}~xjMTV zS-Kj#nz|TR7{K(pZFXCW&aR->T3^^+9f}UwGVf4t$Jg_WAt6V4r*BAlZ7Xtc z>&sP_LU(uYDo*sQjrUlP(Y-)6{5*61WuLUK2m5FKT=wSs@1vYz$=A|~ZJ%9wBT=yF z@Qk}N&KpJ>%2(~Z_vHHIQ^HNV1wZe(o45X$h_|=5>*9+Vr#5X_Qqc9XBq}5{wCDKa zBnz2mHNA)Vm3Dn!&U(G0QfOjs$?m(0u4YBL{_tLWafJjAo8-OEKYm#pTK(zA&gADd zy%*l;>+6eib90CB{Bw-kFzamEJ=wgJips60?LTk2_V|>VnT7MsAhW6Ez1G&&+n*hL zns#FKo?a2@IkhD>!zyGi>ZT>Wp6mB~Q@YuT_uq`9qC4yJ(+je9N^@RGzjh;vtz1|B zUBj<4QoCmzj6Lx^$DuZ@H}=efS#ep;d((P#Z%u3Y?@^#&As_?89DD*Y5X{2P!H2+2 z%q;8>e2}q;8IBttFdT$nhk}L&2&`b?05leau^A1r0-MnwE3g<1vI4)+AZw`La)hg? zt^f4j3blj$teZF3Li%E`&S>vL0H&18CF+oFy6H>235f1muFt@+@egM1ds zI~8ZJqob7nK{d=xG as|3S&lO4NXFfa&$syI(qKbLh*2~7a(y`kO! literal 0 HcmV?d00001 diff --git a/Dropimage/basket_pop_bg2.png b/Dropimage/basket_pop_bg2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1e735a0a27d5a1c26d91145ddad79c3dc03ab9 GIT binary patch literal 4402 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 literal 0 HcmV?d00001 diff --git a/Dropimage/bg_basket_box.png b/Dropimage/bg_basket_box.png new file mode 100644 index 0000000000000000000000000000000000000000..753f8205264f30653a2ffb044c113044df47ff05 GIT binary patch literal 1507 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 E0j@!~WB>pF literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder2_f.png b/Dropimage/btn_addorder2_f.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e7ad5dc54ff09a6f9f550f631f205524ba0d19 GIT binary patch literal 2004 zcmeAS@N?(olHy`uVBq!ia0y~yV5|YMS8=cb$#vhq_y8%%64!{5;QX|b^2DN42FH~A zq*MjZ+{E}FfdWj%4dKI|^K-~-sHue<-iOJci zB??KY>6v-9O7C~?S5nAKu~iB;^)>Jbs{}UJ3djZt>nkaMm6T-LDnT3-;TxdfoL`ixV5(=Pn`~%eq+o8T zXJ}?%X=I|KU}Ruuu5VzjZ)mJ*U}$AvW@T)t00l}w+lo@stb$zJpmqUywn`Z#B?VUc z`sL;2dgaD?`9=GfwlMdQ)(_#RaEceV}9XL6M6T*)Sns3IZ|VNf*e0C;rqtV2UpSCT&IbQ_Tzv zEH0idjv*Dd-rPQzeXUgHK;icvUs`6L5Y~8dO;t31-ZFMhvE3~9)VAtfRg7q9>S&af zd!^)|rP3?aIGy9og*j4!P6m@2w|h=7|9G)G?Zbfx%jI@@Z$GcK{q*$uXLg(YU#kwL z+tkdv|FXE^^M{<*H)|5=V%fLOn0WQ3^yU4#m>2xkIeMq_r|Pq$GvCjyJQ((I;XJ;B z_vMSV(%Pk&rd&EZqqE~*Yfa?Ixb^*(lEsd17`=2&Ytl|1%vMjnwtf25H;uxEkKeIu zNZT^oZerb*{g*1W({}xMvM*Np`LEYk*Z<0zDzBa{{;$Nk;T_PaHUEB1eiG}3qYk6<}%JZuJ#aD0AU#s+u;c3aQxo^{h4|Bh6oUuLlgZro4UsCRG7*EOm zz4GZ$l?rRU|Gt;&!_QlYJM84WvUy zT*jfBf#ejN#vvJt&ZL)dxV!^&GrE&t-hk0aK7=!ojJqrJ=l9P?4?cJ^pJNKhJD#4G zueByh^T+p3XCF^Zub#uT;LfyY|90-x)tW!{Kbw7DEWFP`)M4k{zxk)12Y=9iI{WnX z>23Gw*V;XcVR&j%x6V*Zw|?)2eN&q3WsBACpSv3|ujj@7=Q#{djXvf+zI)}vBldq+ zer5g1I9em}IrjHlx6NA>pUtk_ZPxeo`s#FG0-vvzE>pYMOf8Sy;k4QVwyZ+)u|*=+u= z%TlCR_1WbavU#ilUgp6s9#8)JvnKNGhX+1q_zf2u{!V5~zGR=g_dy#&?8}q8>gx@w mb%9y7}FfdWj%4dKI|^K-~-sHue<-iOJci zB??KY>6v-9O7C~?S5nAKu~iB;^)>Jbs{}UJ3djZt>nkaMm6T-LDnT3-;TxdfoL`ixV5(=Pn`~%eq+o8T zXJ}?%X=I|KU}Ruuu5VzjZ)mJ*U}$AvW@T)t00l}w+lo@stb$zJpmqUywn`Z#B?VUc z`sL;2dgaD?`9M@%nZ$eq@$Ukp{u2%v4M%J zqoK2*p@E~blZ7QruSMv>2~2MaLa!@My`bcfTL84#CABECEH%ZgC_h&L>}{(| z+-`BgX&zK>3U0SJNkJ21!W z@N{tuskrs#)Je z7c3OqnvrUK^li-*CH0nn?CFml8;BbmpT~Yr=KPsgI&~+{^px(tdrcsCW9z?n$Jc#3 z&mdvDKdF7A{>HaAmake>^|Sj}8%w?6Ho@7Y?F_C~9cx{_Y@gNsxc9j5#;-S~-C!2c zHT{zud;Rss&VvtIk8#HxpLSRHz)r)AUtYh`KTJCpw8r?!(d>~_=swkN3`hUDZ@8UbaoOihBG*5sZ%1YUogn{r>zfKi*8h2BHwt4Jj#khA zYd62C-qPBpz@Oph>F7FD)_N=JKX2zToC*sK{de}%%EIeRAL<2a7!I;Kd|(99Eb^#K zEJ84aFd9_@P!!z^B!xJQ!(~4nI<5s3n{U29uKDBsro-E+nKa_=eflf%XYQK<)3Woij8j&w zdwu1@^qU|3xa!o)X4r0&oL!#FaP;Uuzx@w=-B*6q{IU1O<~JvAZ`^xh^^KUEOQuXc zIZxD+i#J|*^SAEs?0I3KrAF7@ma(%-Z+yOv??FtZ@WyyQ{#o}A*9%s^&SN;&TmE<3 z_D>JyADee%S`zy^&IJ)GAHMx@`d{Ijl7bsG-peyrm42H#?`Xs?hJzopr0JyHH;s5{u literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder3_f.png b/Dropimage/btn_addorder3_f.png new file mode 100644 index 0000000000000000000000000000000000000000..e14cc86fca5cf03d5a6264bbf66168405c486e82 GIT binary patch literal 1891 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 V9&5^8 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_bb.png b/Dropimage/btn_addorder_bb.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6c3335dfb023c7c058a622fa63e79e027e3934 GIT binary patch literal 2034 zcmcgtc~BE~6kY|2qeZM|D`?hOQye6la3mxWfg~JJgA}kbXvG{0gs|C=EF@qQMnwx= zv<_5Y21Yq5j)0B=MI3`r56WQ6aMK`I4iAtJQ4|&E1_>UO{@MLw_x;{{-}k=Xdv9iw z{r!Bb=C7O&0Du+Gmm2^8b2NB-Y~E-1J7MnPaQyQX<`s+uqG6aypnw5SF)D;X9wG>b z17LwTF1i+W0{}CUBq$gQ=5J++P=qWnV#sPljzE3gK{xj78K}YKfpk z%p&e^;Zyi>4jduzjaR^d@qR&~c&UgXCc19|-PBB60D&<9s79h>N~W4coYH0Du`vx1 z!6^tPWf9++3g-KR98>{=E@Ya6i0bSJ(ivnbjlytr-T*pMsC0-zhp0{t6e^QKV>&Uw z>4%6{Q;5Tu0bK9tTKI`YjKDBC6M|GK6(E&#|DC1<9KRs+8-eID9^nCsSeqnF!`_SwvigERl$rP8=?q#-K8sIdpF-)r;ZE_T+du zx;V3GP8?S%mulj2QBe#6%PWf9t$@>4n|q z$IqU%`wohKv}T#-u!ZM><(cOTc`0!_SVfxGr`!Xm!mts+sd1}Ey_mM0`ZaKDVa@XH^Q_R2k)XYdAPaBby&n5wbdNkjn1Bq5gx0BBqbmp8(=xK{m*2C^RJ%6* zsqAk5v8zNE!umqH&eeT?a}%&Qa&+@pNZmIRb`B+JzZcrQl!%MVV|$vSYOer`i?8=R z@a`X)7e-!De&O2l6`I7~EVadbX)Rq}Zb;9KdLk^e%~u^b37`c_) z%Wee{^Q3q322LLJtUElI-*J=Aw<1}j%8~lx_9u4I4*h&!h}~#yPeY=d*C*x~C&Qw< zB-rR$vnKOm4TB{K`DOi=3oKIoqicH7TT^xtY_F+Cjv)2z4INAR^6i=%NUs21;JGUs zW$L1qe)(YX=7EFwx~tEYynfVis;BX0)59iq8kzBJHtt%RvP*JF~g%VSGj zNpp8vXiD{sGs)vQ2~HI+bT=#h`X&5m($j$6IDVpw-IBa5MK(2;vhVimhxGM1DTG_e g+MJ@U7v+E%0FGP9&UgNV|J4D2=jF#OX74%h4?8&<>i_@% literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_camerascan_f.png b/Dropimage/btn_addorder_camerascan_f.png new file mode 100644 index 0000000000000000000000000000000000000000..a22f49f551549c6dff868a4a9d2202780f8b671a GIT binary patch literal 6508 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_camerascan_n.png b/Dropimage/btn_addorder_camerascan_n.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1bbdb60a8be9ddcddf5dca4c7af34548a50cff GIT binary patch literal 6421 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

XnLuovpBDQ+&y$~$@ zE?<7_OB^_LB8((nP9|_uM`=Vy12ySG&=+sV8xQKH-0kFtRGu9>)80jBd7q7k1-iha z%VhB{<`?#>9EvK}l)U7$<*5j7lL(_W=NxUvc}Yantvt9eyho!;h38ZskQR)JPp$;d z?|Y_Q0XM>-$CAAEhl_42TP&XknMWTpEX^HWjd;bF)T_4;4 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_f.png b/Dropimage/btn_addorder_f.png new file mode 100644 index 0000000000000000000000000000000000000000..eebb67e82a0c935d21632dfe6f63cbbd588f16af GIT binary patch literal 1970 zcmaJ?Yfuwc6kZU)M^&_)BBEp)d;m%|351wHf{^eWLXk&_poWkvkV3K{yO@BnsP!=* zm0F98SRO5kMXQLG=tLkW6%`PQC{zXUiDCgkc^MVDQ9x~_`(y99XTI+{=brn`+|6#t)vyF>BC67%F^!ALZw6e?iAU5rG*ps!RI0|&uE zaZ=#=s~zMj~SopPtnbL5Y|} z45RVLJUIuBmG~qp;Nawd5K(fRh#@Aru|ZcA6Bm%em=IJ+<7FsQ#Uj4ZW#X|R4H3aN z5G;;GeA^VC7YK3?1q{+i&JH4q6BVR0NEBx>gX**bq>?Fgh)jnljt*oBlkCiNWPoEI z5wE5YM>B)CUSqZJ9g7%?VR9w}DV0i+(vgHHVjv2G!GOqAh)Q+95e{gQ3=^sxWT?%! z0vAR_3W*$(ATrRPD2zf9F%}W;^z9L(@(EcPIyNSJV30~EhbSbn;Yi~^9`FC5Qt1R5 z#e(2>{eDy!4M~#2P!NnFi3$;ZanUx0QgS9o0Shri5rQD`<5LWbMKA=7MdTodW0=}X z&^AmW6C+C0?hS{>WBSTaOehnhB-Ce<6` ziYM>IeNrxjHv<_i_r1#=PvH(SgcH`qHxuTEWw_%NxV4w3U1|XU6QVEIJw$c0t5p!2 z2`{Yd>t>}?x8^xM>WEGYj%Ai-YD{MNrOWI+wsw2;+nZmDPmRhKd!~Fw`#nAXz`S^O zOi2GhY42Ng)R>d1;Pln;T1F(d7#9aB8XvS3ZDi?RR7N&DXPkp({pZ?Z;Y|r+o78^V{@g9)ta52eq|?_ZI9pyt>*=STMo4&=5D=+4bS208_Ze=ZA^{8DuW z@N3s+hPoZ&2ln}^ZsnylU*2yf>}uFvg3yVZy{mK8`HGz}rcIo+i@Hzs?x+p^0N z5(|+v!TRS~Mk=JqshhokQ28xgrM~{#Kf=`~>+uRW3BVp-QkYhFBK zUH5)1=#uSbp0VlR(ego?5;I#?gn(bROnah1Kb7*8&$eT3^Vcq_DW9KWUS6H_^4gt< zYSTb%V@9}j`>t?8e_IXhB0Yi03ofos+m5uN;%{5aCD;QJ*xs^TWM)# zYVNRpko$$D|HGKksolGCyEd;j`cYF)n;Em|Bvp@0-%X<=|Iv64IGG$SYrX4EgRfar-*+}SJZZIY;LYTE0g_%Eocio! zeue#>T}Xic?Txp81^jM3Zu5vyFVe6HuB)@kEZfU|%6Z~!zxnEhq{t^%hPCkeuR;FR z@Ad48q7_hxLEA>_F}A8{4vW zbrdS%!k1@Q-)hx5R*dG|@zxX{Ew10)F~{JlYbh=*PEPB6I%YN%PU|)ITUt}Q;K-*h tE({cHSu(3AxN&E~pp4I4ukJyNOo8cA0xOhlY-D&veLVxX$2}sq{sY_>5m5jD literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_n.png b/Dropimage/btn_addorder_n.png new file mode 100644 index 0000000000000000000000000000000000000000..793d1807341e34ecf26575d72742f49e3ca0e42f GIT binary patch literal 1658 zcmaJ?eM}Q)7(YPV!UBviGZZ>5H9Ef9YYVjYO8IK(XkwvO5T=XLj{^>DuiPDN`IN{u zJ`zAjVA&XuDT^8v(q(LHWnfhtADLu{%Su5RVP?YQ!wrx{0=ptbU99)Vz0dpH@ArG2 z_j!NG)yPxc^Y+@~1pt7zG+C?w0Jl;qKKlAj>TN;h(y3)PnUqN$#ds zsaBbTC=jKls9*?*0RWHvXj&$jDLV+OF)dT+z%Wf(J;erqm^hPOsm@18P=(~6Iw5_* z(oY9bjgX!ZEn~^_A|w}0F2<3=#VKj(;(Rq;dNA)C%=|G2~QiTs}IEav`c2$Z@&PUA8ktImi)iTbJ5wn;+3pj>jo$4|QDR0D$|fRGg4zvOl!_xxx$3NO~vgU39SXM0=mEPZ)teYmF`;=KG|@yS(UHymFHiY3LgIYgW9?!pVaiW#juq-Lbsqm z;%?VJGwt`<$)jdtSzB+wcy(C=tw&I?(G^mAs=Pkq(S_-euWWO+#P$>Dz(Q}TH5I$H zUM)NF&e|SJ@HpNLRMOTW)@LfY;pUO1=^t$aQ}dUf3_Uc?*9hYo8J;!j`i&KFZn`fie3p_;c#hzg>`^O;J?4v z$cX3?fni_C@cDBgJ|ElX3=3KOm7Bl11%;3JJ^6k~woI&!s;~*~YvxDXmEOmq=+!E7 zm04h>J>DTdc4_LW3E2P*Ho=v3>4m&21xsh!#xjdNvd&E{tOAv@snZYY#zra2<$c)K d7&p@ecmT6+n7CwwV8QV>kS3*wI}@``{|C-vZG->- literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_payment_f.png b/Dropimage/btn_addorder_payment_f.png new file mode 100644 index 0000000000000000000000000000000000000000..cef8b3873f1f7162b9900f46a39daeece5d8404d GIT binary patch literal 4991 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 NS{<;=-F@WDzX5RV$8`Vz literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_selforder_f.png b/Dropimage/btn_addorder_selforder_f.png new file mode 100644 index 0000000000000000000000000000000000000000..b041da18595e57b1ec3334f55d30f85e57f9b47b GIT binary patch literal 4853 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_addorder_selforder_n.png b/Dropimage/btn_addorder_selforder_n.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd3902709039a1b6d2cde819a1149e520fc806c GIT binary patch literal 4900 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 Dxasw_ literal 0 HcmV?d00001 diff --git a/Dropimage/btn_basket_delete.png b/Dropimage/btn_basket_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..a5df863ab7df726175fd6bb7e76208fc2faf8a8f GIT binary patch literal 1848 zcmaJ?X;c$u6pd^OB8Z3;tuRIf6_QB;NytD%%tQzfmH-0PieWN9G|9x7fq(+1E@e>! zgNh;%7p&;P9R;dIj20CUt;MQn-2ja{RO?okcA|p)Q99?$e9O7_zWd(yzB7eU5y8Xk z#@Nwlv|*AESVoN*)ay0GhWhTQ&-SARS5lln#$YL=PL89rAO)6;0ur@66_ufKMb^R= zG=N64^iakokO|Uo2*K1$xf#RERBI_VjTR7?sg)xOP!dQ+QO$1qybaQUj}UT! zkp9V3f;0*cVK@qKnLGx<_T>P40h7&R2{^vq0EflqgDgJC_F=Ht5Q_)-2!PKIor;Dl zQXm;T^K&d}C8Vd3q!t1}oleKp`7kj&6=Vwp0+7W4IUELsU=UdvQl81s5EJ?oV3a^` zrIu7;8o;b5PsY+oA)RviDFwB*UsgkWE)!KSFjKAt*-Vx>r9Plk`u|Y1x*tuDGW3hz z{}d)-v$QBELkTP$N2r5KnP3j3g+w?iCow!0!&H4$j7q~uj7Y<@fJkJnnjbJZUa3)F zI%3L4j#LUsGz2NvAgBZu(kT_DQmKFhJeG*>2lIUeJ}{dt7Wi@5GyQ^KF6_%?u>@jK z9~Z`ubTz6W`?!iPT)zRi=5|nPsmL&jD>G2VOdL}KAJc}E1AE~PsP~zx7}yJMKrTp` z0nLZ|ufy)!qB_Vt?QdOb(ck>2hU$2nYVC@@+qO|RW~T%Wip{+C*w7dm6FvG=q$DhK zJ~mWZ#4>(6k-5KRi{)s3*V5v%r?+_AzP0j0c16!G zvb7OCSTAi2K5m*)ePH$MP?zq?idPahyhqvE`{CI!Q`b!*ySBFWp}XQ_qt@~FT|FW# zT=+2B=KM+9*Us;3DlfmfZn(P|EZmWZn^@)9_>I|ten(M~ip+6UHH*Nxf=WCxD4lOC?Ct2=z?(2z?x z!;$k>*9=Ms5Vtp^#Ke6VlkLin~v7F;fOogv%<+!Ej()UNc4i#%1@?R$3b z^z^M~tW?GNXu7`O$w=>*cVdDd`0YvE5&B`H)AcU5ZFCkd9nSVdzYE!B!u3vxcQ|v0 zssbTXm@Kz#YU?~+(QaYPu-(l+mZFIx7$>)vHxIgkTP$`N_iTLe5%}J!GUHRgRb$<{ zt8K_v?r=(I?bx8pGrf!sRnEm{I+t~<9IYs5HHPjtHN5oV%-(osx~nSxR!>ivb&nUs&R%Z!!bw$f%qeTI%F*a{&l1=3wTk#=JND)_4%UxjLoXdB2b@c?yOEgNl2=4aH$L#c zE|jM-rWM9+Hf-J;&-o_f^!@eT$GhD+c22FRT(IPa6}`hDQ*9uyqscq@@r6!H#LOB??7$d5rZCn_%I>Yf`spBA_+A8fH?`g+6jL;kLbcMYBn z#SJfyR+|C@ACej(-wVq3h}4F`lPXk?<{(jHP5hj=ipZ22+v+h_Z&}#W8rQ72_FCAs Q(EKlxh$G;=Gv+P*2OWsmfB*mh literal 0 HcmV?d00001 diff --git a/Dropimage/btn_basket_plus.png b/Dropimage/btn_basket_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..2242735c433ffbef8c1806e8bf16762be4b4c92e GIT binary patch literal 1414 zcmeAS@N?(olHy`uVBq!ia0vp^@*vE?1|rvqSpq4^64!{5;QX|b^2DN42FH~Aq*MjZ z+{E}FfdWj%4dKI|^K-~-sHue<-iOJciB??KY z>6v-9O7C~?S5nAKu~iB;^)>Jbs{}UJ3djZt>nkaMm6T-LDnT3-;TxdfoL`ixV5(=Pn`~%eq+o8TXJ}?% zX=I|KU}Ruuu5VzjZ)mJ*U}$AvW@T)t00l}w+lo@stb$zJpmqUywn`Z#B?VUc`sL;2 zdgaD?`9|~h6w>v5Qqs+x$JaVV*b)0#-X~Uwb#wm-GG9uY>qgYwjF?WVJvPiD|y?MhM z#;#L`R;*o_ACRkcS7b#k`?=QWCB^So+~u#^VOeaquK3&;$-lXE?wd92XD}!$Fzj+r zuV7#QfHS7Kc*5360n=x^R^YjIa6wvZrT}yLf*@UwD;^h^^&Ac@+j#6FXWael>osgP zO@?djF8*RamwwWQiLWs_yXVdveI?`hY`Z7D4Vd^~&*rOVGW+=*y06Iu-mCrgGtn<} zFS|`t@zX^4yE$@U8tXLFyR}3TZ`^slT_MBRQ(L34>_cYpTUiOAnj%)we}{zr*J-X% zwcr0h`7&oK%lxZ;84({;AGR>1yxSabRWFajtSOCBWZ zudQ&+;yRi!=WXQUux?G22xi$kyk%Q6_g!64q<`>*{hzzx33IGmW<<57tx1~PtNDM@ z#aYh`wfMz+!c!N!R*E~WyTwq+GtF`5!DFfCs#T=tK2BKI7#;AWrf_wCoA8D6M+5T< zc?;~K&o8wJf2y)$d#2aN;5~NX*&J(BSDgxOOWP~pZ&$lu_VVjYu|j{m_C6H8d`bIj bbOR$pu3b|0OrNGIP|4`&>gTe~DWM4f$I<>C literal 0 HcmV?d00001 diff --git a/Dropimage/btn_camerascan_start.png b/Dropimage/btn_camerascan_start.png new file mode 100644 index 0000000000000000000000000000000000000000..f07b8017fd474dd69d8279b7ebf91137d00b96f4 GIT binary patch literal 1881 zcmaJ?X;2eq7!Eohf>cn13XU!-cp$kE*pLW;1PKzv5Gq7GLb8Df$%bSx0m0e;V-$u0 zg+Zh$<&aXXRngd}c+{go5C@e*IqGOiRSZ;%RY9~H6zz}Fo!R}q_nY^5-se5O+1=4m zs~zmz>~J`o11Frt!&W2q(rs<9@8S(Fim_!r%8o;05DBUlDq$Q`j3mMUMy#NAIF#}w` zl1t($Lg8d-c%~AL$&BKQGE+p57z|nk&^0uSKn9~iKqE_)t7sYqIKfN9_LgHJ2u!%3 zDGczvs5ovk5Q->aU?ss1FCzO=0Dp);_9Hn(hVKG3Ag&>uRX(S3OEP%~|e4(&VGMNoQAyiUG0NXbJ z^7n=OnAAxu3lXKuU^zO86@S7qr^H&uL8ibWvtXrk8!Qe}A~IkiZJKmyEm+{Gw7kcP zr`8fMC67>W4v@>V+q`uy!5e>l|2uYKSY@#7%9$tfD#3=l=;%^Tkt07JZ4X*^w%?lrXbx-U-|H&HynhPnk8&wzthMm@f;r&=YR)L8G1cD#5RaKeXIJZv-t z)6J|37n5frE~_J%*+!jlvCA-RxP!KnyY&=Mzjylm!2*}sJrM4Ep_KV^k?;NCWGgC8 zKeEA|a$^B*^KC)V%mG~L#v-Qy+$*=++F2I-F&7h6h0Drr*A|d5^LrQZHTLi`oBKiL zD+MmB;m_{fr0@Lv-tG>q!)BZgZya4Me-YUUQms0D1WP;ZPk@hwgp2zY4zgO)k1wRU z0(yIQ`{ylbe+a5>o;lV4Jn{RBX}pR8=Yh=FL4qW==!r5-?f>T(-5A;&&=_JY=ova& zrF~Q8OCsh*=9qVEVcx0D@3(Tc&5`tElqWMw`@4%`E*RBo`~3WmIE+S)a+?DsI(psN zCUbTg)-6PwS~`og#w3K?WWUA`bb{leldD^uGagi!s?GWyDf3*?97gZfM7=Ss+_Nj^ z091n4B}MZL9V>PK`Qyj>xKDl$@pdh&ELm{cWtyStGMjiju1zFpyWAi9=#nTuWtfL`YwEqCb9Q6hO literal 0 HcmV?d00001 diff --git a/Dropimage/btn_check_n.png b/Dropimage/btn_check_n.png new file mode 100644 index 0000000000000000000000000000000000000000..759611b9e6727006c557ca2eb40e1cbba2b4571f GIT binary patch literal 2407 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 z zD*ngZ1~2+yE;ByMK6moA&g^wJ3%k#&>zyr*&{u@f2t3=;&Z8wdisw59{;O@5^w6<- zZcDl`4u#Yk#zqybKk}gt1+X@rS7PjdH4JLZk?jrRasqy}dz~G^$?%y;7z?jiC?Y(} zon2~suN6FXt3A8TN6{fO+F`+au(gG_zJ2G3JlZS9RMYzsO)=Y<&{$Y=K*_k8+dq4@ z!zEUVy%w1kQ1v+4=VU{c?$mV%jIPxUls69U|FD2}WF z=3U~iZc}d##+GkdX;*DvrPQzNYR*qG^QWLezQwr~R~#vXZF4Ivp-wN)!8G+P-?H=f zE6!etwIz+shXW^ly(S+^i;Q|NkWZ))Qs}ZgGh(GMDjUe*)T!lWx`l%l3I-x$Q5G-J eclZ6~bTL}m+_!lJbyq>nZ|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFso&TM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iIIZ2rJkXg zfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQH8U|ZHZXQFbTTw_1%{N7k%g0! ziK&UPi?OM*8%(cDesXDUYF-IUZwf-MAx^!Z=Le9#n4%PPZ7j;nb@Sbc{YIa*-k%CIn1DASOKN0y*%+pPC0u@kPL-eacR883O~O zs;7%%NX4x;HypE?0|eL}R7QntVZ0u9sQ0YqC7HvelZ{K}${k2nS?;mxgU~MF7B>;` zedpwPOmsu>-00q01_u`XNP1d%&yL4=lTNn}%i$I4vLCgrQM~bMUp`N>!&?Q8 zf}M>@g|X9p+8%c zcliFM+icAJ{cpYwf5xoi$0PUX$t`}mSZqQAi;4oHEz_@^>r#Ag))&Kwi literal 0 HcmV?d00001 diff --git a/Dropimage/btn_count_minus_p.png b/Dropimage/btn_count_minus_p.png new file mode 100644 index 0000000000000000000000000000000000000000..725d00d6bd89e1065b33ec8943e8047a5cc87dd2 GIT binary patch literal 1183 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFso&TM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iIIZ2rJkXg zfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQM?Y+baFJew6L@= zGBvVvHgGjChv{|6PcF?(%`1WFO+n~&#iP^Az7H6D#^?{Dj2SqMYWW$7jDG0=bCtV;1p7>MqfGNHRn6&qHAC6;SVC467 zaSW-rl_YY~<}d?O;<1>s;q(5U+xP!j|AFuK|4T}~V6cdk{IA`$q2|KGq`7-uz1dzh zK|=Y2qn?zE`?otk63-emFuZ76>|lPwfYEtb;R0D^CI$0`q)tu=-<>?oEDe)*E;nzl zXJPAZcF0To^{v~EbA|*%5x4MR1?I(kQl%GGG`q=~yjpPZoq|}BXr5+RxXn-h{W;D&vYHRBPL&<{dXA*nMN!q~;|C38eir zh>&5C(oVVrbgC7QS;T#L)#m$Ij?J#jZzU#3JLEB{XI(fEy23Dg^)!{&)d@D2jDhZd k!(;p`i*YBT3Y$OzgIsfTyusA}_drF4r>mdKI;Vst0D2sZ7ytkO literal 0 HcmV?d00001 diff --git a/Dropimage/btn_count_plus_n.png b/Dropimage/btn_count_plus_n.png new file mode 100644 index 0000000000000000000000000000000000000000..06e565a54869b27cb488de8a5e8f1ffb31c9ec95 GIT binary patch literal 1239 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_coupon_n.png b/Dropimage/btn_coupon_n.png new file mode 100644 index 0000000000000000000000000000000000000000..f555dd5ca39dcc82b438ae2eb1c70fe4f5c80f2e GIT binary patch literal 2398 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_coupon_s.png b/Dropimage/btn_coupon_s.png new file mode 100644 index 0000000000000000000000000000000000000000..cdb404d37553d821b2e2c7f55b8ea769ee823410 GIT binary patch literal 3141 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_delete.png b/Dropimage/btn_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..913d99c13b2e2ea9e2c5226cf54a41c2b1613d5e GIT binary patch literal 1595 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_delete_2_p.png b/Dropimage/btn_delete_2_p.png new file mode 100644 index 0000000000000000000000000000000000000000..d7cf654cac2b5ade51515f408d968c545bca39f8 GIT binary patch literal 2767 zcmaJ@dpuNm8=qW;D3z96+KkElGIQo)#>~2`amZzc!4#=YW9AqmbJ>|;hOkmn>zYz7 z+bYVcgl!4cR%{fx453KHCbnE^l_cREm3`kodiQ)j=lpKZ_j$g*@AEvL&pAx@*|J*0 zKm!JYt@iW){S_l&=~ag-zG-d|j}(Kx#4Sh?APAF4nIZ`0!WM)=2u~i91NlQtcFgz9 zkOK^+%;z$KBtbMPnI+(%m`gS&8BeG{!(a~1G9i<-2a+H{Ar6=Ch@)M~b8Xe&(5J3n#6v38-!DA6b5(+~ANLaiL0t;Y>Xn=^u;A{a586c2xB*flxA`TiuB9YJl7LCQ)DlBZpF?h*U8BbOoM}M*GJxU;J4pg=A3h z^l*VhAPyG@5w5OFS+_@61akRofmCd{l%`L&1|bnQ8e+SP1U$q?oypuUaG(%~SQmgo zz)=9~5`Py0&dm+Pfp&Nt2Ec;=@-vqG1?@g#iT@XiR**q270Le;&GMF_5|^g`w18sq zPZL3WMdyeVEs|H*9|MEIXFNd{hOB=ee^2CBZX0iMI4{ek_ovo+Dci0wrh}d_7ZApO zZD6UWQm0e3O&(~vD@DX59#(OSivvvcPJ7Am3H3U)~f9(hRsai{YC!ER;#A~_@qnJYt z4%XTpx=m{b_A0%24f7Zx>&BVw$6jrByb6C)r_#`xGlBee-Ldwaef)&ucBeX$4^q{0 z>dv>~Mh0boF37qvTLxrhtcce-^?9H3yx3`(W$UknSbYQ z_4fULFBD^83H<>x9nSvt<8>+Uj*U(hz{L=cufNtBTo>eGtYfX3&j+KF8_9pZH=4jq zboKPgCf*j?rremVn>Co_6DL;2Hon=##OJ9D4IQ9x)Mt>tvGys+Q`O)NTfMh*6wtMU z@rW}%XBYR>JSVdHD>#O%Z#F+f&C9!WUm^+{xg4fluNuuhuc_>&%;MgFQq`zxoR{!^ zOV?C$@zmzw>koK`GR)IT0s_hBbs0ZjFrGO%T#SNa>vK68?UuRfE#34@&+CbWHmG!m zZEu*1S-~UI!?D&S^V_NyD|!mYdFRbDZFUpam}^=f0Vj`KdW>0j`PQ?VVHvhT-XF}2 zo|UfqVcb5>=?b3-&7{tKhPnew>By2_tJA!Csseb@tV;rJ8vhR zJO&ZD2HvSjYrCvB+4jQ-neQv>-`yS2>Vr)I!K|SJ22bOyp@V?$Gvpc0J&mM@zL^VN zg*mybH5ZvKCRAEemfy|c)X5?Omz|(89I6fXbFxzLZu`!JmM<_b2JYBk#gFu>K8$$- zi}q~FBK_j7>VbKRYk< z($VQ|#xEH>wRYuFw&8ZYTz<9x?d(PqGvfp*!7nxC!h>kFc5939`TZ|~RvZh>i7^>U zO4ymr^9UPy`_sD(<-hHiS)~#Dv(cJr3q8}5zKjhFMw-SzE75G=(!~u&g((L8e&W3i z>r2nLA3GC=w5TOkx@kO(-L51o2-%np*LjyscU61W$w__WnrC_3w6>A*^0JzD{8xR^ z>#E(?mzLfz`tC;G$sQBbjzeKeIIxjQ+u~P4FZ1oW?)+;?M_uyfkj&t%nZK4%ynp(= z)7s*drFL4E(vOC<<^1_8Zd?b|rV}TpcVH%p0_i2bhl`-g!Wwe*>!hL#V`cBH;T4yg zd}S*kI~}&N^eic1C;cT6tlyt}FCwFQ+0-HAt>f>685yNqVT{+RXwwF9;styoDEv^f6N z+LOxzkoUEML%P|)IL#7`z_G+DltX0UKi=^}j5GI9RuIXrAio}PN()BsO^GN42q9qt0n*L3>KT|a);eb|2W z6c80h+xB84z-k-I6L>KFAa<}RpK3`hH%#*#4x&k!py5|tJ3H6rZjP%P+wYh@s$~b> zFWR_qN2TFoW?Yu?^gyosVncj?=Bp8Ptt;WIdA@d?)m+k#V7-@KAzb5#epu^dOo+GK zD5<8KBz1kHt2Dz!N3InpRnKxfJMt{1v25Q!Vl)1bp2vZOKg_96;$i`=KKj7;^wxT3rB$$yEvTU~>cst} OUrbLoAF!OVJLy0EbDPuv literal 0 HcmV?d00001 diff --git a/Dropimage/btn_gift_n.png b/Dropimage/btn_gift_n.png new file mode 100644 index 0000000000000000000000000000000000000000..aed6d844d105bbc4e04eea5e949c3a0badcf7949 GIT binary patch literal 3199 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 U)5xxBasR6{=o6`$n5;Md1diH5lmGw# literal 0 HcmV?d00001 diff --git a/Dropimage/btn_happypoint_d.png b/Dropimage/btn_happypoint_d.png new file mode 100644 index 0000000000000000000000000000000000000000..cd5e906cb5323da7a6245cbe017eddfc20fcd672 GIT binary patch literal 4400 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

Hi*Adw1x0o$1VS> znnluU0jg?d+={)Mzf;^zuQPx$Q zry+mY(D&3Q`!uh2p`C~e#k=>6+p)Fyua?9sulig5{OuSJqN|F!J9aA3eMF7x%JjEspT?TFYNX{s!2nO8w!_X&QSuUXiACAUtJB6_o(1RCt4 zf1urTB#M7E2}dnEpR9YgZF8PQYOBTka(V9`?FO~RlQ8#hsLA$TMowJcgdnFbb=P$w-4!TYOVbPC;z^q@OySqEl)34|z z=&WJv^NC=im@J!<*)HK_ghoNYQ>7@nSNt9nfXI=&@x{3EN=q? z)mzg?OR7t{ouYYnOj~9i+=ppBcHoP(Ycm9z8RG~`xv;Y~7fvxEKElhMduu#J=D)HC zqoWg)DuZBFkmz~q&GsMSwYk|>S_Cf`I@g>39=zam*_`L`d12w$WEGk{S@b7Z;cJ(*x%-P5XL#OK5{NH(Oeqh=W(qYY(PI+S;Ek zy?s<}iaNOm+2>Vok3L+2qV_X=l#>)89>QX`s1e}!EIm{gIjqnXCo0k1bVfQwVe8Ul zeoP=icGuLp@?FaV#kLy`VSsVYqHr#Y^Gz>qoB_ z%Eylkaq48|wbSoSz7gIH?aYU#u-h(MzLwka_~Ol%;uN>Ryn~kSGD;o{RE6$&e5+#d zhDL`}uJ}C8h`MH*x9|9$ygy7C`S1AI^eVj5{nDD5`^T0m|Ey&fvn`JH8WLwc*@uFG znOg0-cKoI4$Ql2?quX;#>{6eGmF=f}Son>)UBaUIX_C@x!|cqAcYAyL`?s&Io%2O8 zMyR&Nn^4j^Bu@uSeqioEMHodf?cG*wtu* z$&8`XgPQfDzyJPwTKlfU@i%wvjlAKKi$c$K=AnsH%Xs?*PDI4q(jNsCYpE2?`o}ev z2Rw^iy@BNC6;Pw4sNyf16F4zMYh0Lf*Ec#js*AP|ASC6l)_$n+gZaGEso&%(BfHqw zmbK%;i`sVnyUF}7{5C80Fs%xY;q5B`UE{w4psmmUezt-TZDpBvx!*9$*c>bL>h9@5 z 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_5.png b/Dropimage/btn_number_5.png new file mode 100644 index 0000000000000000000000000000000000000000..724e393207bb30ce72441a6866f904e3c84598f6 GIT binary patch literal 3760 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_6.png b/Dropimage/btn_number_6.png new file mode 100644 index 0000000000000000000000000000000000000000..e3bfe8f65da0707d4dad8080b391caff25e64509 GIT binary patch literal 3868 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_7.png b/Dropimage/btn_number_7.png new file mode 100644 index 0000000000000000000000000000000000000000..4e04ff5bff81398ec5a23edcfc103bc34e4a9f2c GIT binary patch literal 3548 zcmaJ^c|26>8y{rf+O8O68pf6}`)X%~+)P;}ij-l_Fqj!;Mn;zwG7(XdHFYVHY~@-a ziYaAHCD}?PblX?b`a9Zw_mBIz=X1_^-}gDs^L>{0dEU=+Qa#tXX{tfhAP|VA`x=@z zIHrToHWelC4ek2F2^{pq^o?R40Y@Cm5&{q>wjdaQx${_|fH%Nm$3=Gmwh)LyJeRpq zypiES4H59HSqnVY5?&N24T0D?NTOIF5r7yL41{v|cJLQ17vL~1+YatWV4xXMELq*5eNYo!5W7QL1Qp5BGDRyClHAkD;O4y!J^RMO+;ewR05HTCBc4Na8R3&&7peJ zTz}{SS9b6)u{er~LdC|$TF2t71;S7ihC-n%U|_LGkOL`-dU+l7%Obk!UceAs7majpYRY#Q8UQf-~BgLL=kxL^`+|bP9!r zraR-DFm$pLneOaN|0(Ov7l~Q?5a6e7E~xv5Ebc#LsV+i*B^C&o0zu@@Ebt5yhy|iB zK@`lzhX^zGpSdqoT7Jc`a1_-&^0Jf`8z=M5@F_rr-`mwGw7m_Q1NOJ`(pkOd$ z9A&`)ERjfacBRp=@E@}5f5h#3eu5Ox{-~d3PziV(nGKLJNFokTLWTf%7LpZ0q#!Xk zOfZ%M5C9S$4M&0Ip%zl+A1U;c1m@+!^jATEi(e%L@WDC~f&~-#&V>hosLs06oS2f) zr-2cXOuBB7_b{(9K#d3E#xJtOn}nyDDkjknd9QL(3A*9Dc-an%8|Ad+$6w0)(tX2A zRQJ4;89mabPpX^j&Ni)I>@|4l1I%|EsmWBi|n81(PmGVJ!;Q-L32TeJYPhchoRmEK|9J{_1G5^xy^O zm0lY*9KQb5$Sg}0+b%JhrD)t$8`_0y=ib{Nl+1xxDei689jvtHjY152dV4Q5x3u&&>CL)@O5`%(2cvW| zujm~fy*SstzFn@Sk9D4t=O1M^ywTrZ?O1mCg9pK8;Z1VkajzcGp>Fi!*U3BH$~76< zT1qiJ=((h8uR1jwxmKP(7a4HHYTs zGnvfF^2*A;I;|FsbrX+2>xtR+u9BBu!B|oTjc=^1tkhvnUKwkJN6o(m2xzpUFwb9M z+uA){D_6>2kQHrG_ZR4xF-x?cs(-xH_P4$Nk_QaIg#Oj-DAWoa*O z+p5zAX-2#t$Wj?w%lg_*6{i(Bxw$iTjDCc7+P>uEdEarxQ>Ix1616_`yA+Vf!zk zp*3**in+-n0A2(QPwKgS8SNgGAD@&5ux~;#xmBMc^46GOHH`#*zP>u|5iu*(%QXol zzLuN3A3Mk{T5ZP1YsX$=>rhl(mA;YtNOxnUtdz^cwtm=>UaVOdQ8_pBV>dd*dh>zp zyRYqCl~$b8j8XW=5Jk_Miod<-=nBASFnjcY zFgaJ_rb)gRA7^R^JSAyJjXQgl;x6Xdgz?U$_2(*U0$CuLqDVcsNL!QBNW{9 zM9ryFnDC9x*{YqB(FM~!W16C4si(wlZhOPSp?@qV@#ef-^>oYH)us8l&jOE~J)A)# zkwV|vT*)x>dG_pCMO)k5rY~XpUo>oA)A1>}?#zfOlykj=u7zt)RO|{(crsLlyM;C| zI~6xRb2itLH=dWAImjFIpWusf*le+$`s~w@$@qqb255^J!$14X z5V}#qipZ$0wyx)m5ofmd6%aZbd{&(3`)dS!v(ojZ%2ZT50O5VckNrmd)ij%Hef;hp3!7mXwEI`@uQT#U+W?X9Tjh z+GckXPv|`Mt?~z$cY3}$Mcj#~V||F!&$_YV@lbVO#D=l@p#;zilexjh=;s~D%^p2Q zuQjXQxfg0KyFZ`O081$Dzf_Rx1)Yv9)O=IOSYlf5>6YjJ2D|ia-~8!5>HN{XVWWwI z&P81WlyRAxY+d5pB#`Q5bSuIZRN+w_r>B}qgU472`w!e4O{%Dv4Jo3` zy%5pOMm9%sN*+$BxZHf{)gG##pzzwy$hh1P&*ladj!hKR%w-X0XJ<_#S5M&O2Gd8q zWbyGkw`e4piwulVYqIqM#By7hl*0L>~JI!>`c(Oaj)$g@E z3&Zf;U;{bTf-HM__oYea^lV$3ee{(HM+SI0VTkv-u$1UmYRUyUb7`2AyrpmH$xu*P#UV){)TJz$wX?R*jxCsPvYa z%6rcG_16ff3o#el&SXA%5?~p(?f97uoHD__t0xcX=OK>RCp1r_9b(O) zcMVZO5dBk8p2|wr@N9<<|MOt}p|P4_(vZ$&F!X`k9}% zy!#?>@Aq1{PSpW2oldu0eDyiYXxuMDF=*60-tlV3(>v5Bm>nEz>AabwS@~F3)Vu7S zXZ`Mt<4e-6sJ~v0%QD;j^86~-<4jr!(Ij?wx~$71+5Ne1mm0Zs=R{`EN#efM0sIu! zxT2=G@b{x_-3o-0Nu=_J?M#z7-?gQI2EI*R>uaVhisb7cEo%!eKQ>gt64F1rwQ;n* z?9Mb_G2u45^x=7vU!BzVrs`WK^{c6hPj*!1xP0M%%bmWCR_z>=_&=Ak B1C;;( literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_8.png b/Dropimage/btn_number_8.png new file mode 100644 index 0000000000000000000000000000000000000000..94d5818c80f67ff7b9cc79d06964dcc9927ddc64 GIT binary patch literal 3869 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_all_p.png b/Dropimage/btn_number_all_p.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c15cd4b25ca5e6d551755ce5c48d32758206e7 GIT binary patch literal 1758 zcmaJ?c~BEq98SH;jiOvunI%L(kYp3iEJO$imnJC*k)s2JC0Sq#$%bT+fJG}H9th>I zNENS^Vh6my(OMW}0Bu8|TF|H<;GhvfVRTSow4mJ}VE-uHncer^Z@%yQoo{x3xFE#T zXsr>6L^2Hv<%)>)An`H`RuJD}lDjXl*y2Iacm$S&XTnN^#Fk=-2oNTNlMxXDOS95D z5I+)WsUs?m#-sT>NP@|zupUEI%M=8gMDp`jD_}_~f&+<2GAd`0pEtFT0aVH&M|tu= zzJi0KprP4HBqCcNmSm?&m{PL;X24Gk5dtyxm-+=Aw%T&JXiXW>$xabKMpbl;hBpl(d~#dSc%Di*|Z^a@mLs(>dkSbi^t-= zD3?YAL(@0+U(KF35fh}}E{ra5SQvgpPE5R#7;TH`Gs}q^BM9TN#p=GXWB$Adq0Mz{ z|D9#sD~AWUc`x zmc5A_`BZFqCC-(R+eL0J`-zfL-+ZLLId#Aoep<@bvC5nSed>3Kdk5?H=4E(0J$wHh zXxQ|*j_O?9c-YVWekU4Qevc1diRbmgXCgDGzV~je3Vlg3w07m0G7eC--EDZXVuvaE zm62u5TH8*j$Lg`^4%P~^HqU7FWrxlz?S+R4H{;)qAD_ihU=on6~*$6~PY2iMrq zli+x5oi7!811x#4ezWoX)E>E6C);o zEzVt01cJeVH`fse)X4o5!K-oZO4VBhun(pQ(FW>G906;FW!9ZILEd@Jc@Y&@#!wR+PiF;@HFuKDH?6XIF?F z;Ft!1jXykGWOvQ_D23kG^_*fdbh|1Wh&KtS7#j0`J7BK5KVqcV&_4L!kJq^;z$)R9 zZ*N=`j=Pvm`W1I08}@Dsxg9)j zyNgRkjXQfJ+R0+p*zQfnY%ePQ=IBOULvQT6f{0_sgtT|5o9%D%N;@B{Y5LOQwBhK* zQ+}}t&#F57&JUz8jMLIxCi0%%J^teNw77)AsnizF@0VZRj%+#Hvc!ZGTUhP-D2{zb P|Hlan5^&E2CglDDwyvmJ literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_c.png b/Dropimage/btn_number_c.png new file mode 100644 index 0000000000000000000000000000000000000000..914211a9cfb0dcb2d72a076d57278acaa3e77359 GIT binary patch literal 3491 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 NB6|lAuM%QJ{{aIS+bsY9 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_d.png b/Dropimage/btn_number_d.png new file mode 100644 index 0000000000000000000000000000000000000000..6a962dc8ad58bf66fdc58ca50e7be1d34a4f021d GIT binary patch literal 2793 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_option.png b/Dropimage/btn_option.png new file mode 100644 index 0000000000000000000000000000000000000000..4959e100ca70601c3c937d3ddda62be2ec61e32f GIT binary patch literal 1054 zcmaJ=O=#0#7!FQ!3|2%O=md$G6GfY!{w|?$&Zc#RrOvLh3RBFIZ*6RoFDBn?){8@g zA<8Zuym%8mx`PMV#J`gaZ!#$EAoJu8lQBdFL(nf>+j+1CzP#`I@jlP{``sQ+pY81E z?jQ)FGc_n>uuS7~uzeT)zyCUa5sL#TkwYVJ0+kgT5Ca+<2V}}n@*o2gZR*-0h!I5F zQ9YYOIeAD>p+PI25A7NjMiWG=-?bFA2oO0A^13NfYtLU%q^^n7Xjo=tD-H_!V8sR_ zm2_6E6jffM`cIKDSHJ`YKnm#^CDRdHk*e_uSof|OimbVyqDXBem6M0bIJ5y7rXzlp z3kAq1PjeBL4}?yV0hWt0Y?R@GewGv1h!Et-`bXhtwl*PTq+~r7wnVCckR>ooxm>2p zK^oe5hU0mjVFOGc;Kv?*XUas1>o=XA27?3~)z&SfLzDCvm2o(UL<(oRRf1tPX-%iz zCfqQ_RV;?1S+Asqqb&d5)i9dg4$6S-eE&)8WTz~^WPk%FZ50o0qQ?tm32_@J2-;Z) zON}lL7a)R80a|1{?sct?JT|JE8Z0}zW{i`y?q5iiG%} z#Bm9JAQ1>BLu@h;k0e4|Txwt?s7@NdL=CLAjg7X%dh1|VII;w6{W{Q+HZ;gu*@E6W zmrzT-I#z3)OSmPL!O1Y*aQ_;1;|gz(r#4p?8_nehCf;}(ul8K}*8+YPvngpH>n^W; z;C!dqeKYITHecV$bk9mnwqq6BJG`rhyT_&v&+qvZ s^DX+Y6W`W4S9`w`_$?DeDv_3+oVjxI4+P{}LI3~& literal 0 HcmV?d00001 diff --git a/Dropimage/btn_option_n.png b/Dropimage/btn_option_n.png new file mode 100644 index 0000000000000000000000000000000000000000..ad46686be07a1ec9b743f1d3dcf6661f5d330e37 GIT binary patch literal 1617 zcmeAS@N?(olHy`uVBq!ia0vp^*MYd0gAGV>f0*tIq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglShD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo|$g4p^1@#xuu?= znSrH|iH?GifuXs+fw{h+v95ukm4TU+v84hOC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i@#0$9vaAWg|p}_bT%_IbhUIeG&XlN zb#}EhcQSA`aCU*|b;(aI%}vcKf$2>_=rzKr7nB@w3xGDeq!wkCrKY$Q<>xAZy=|3= z(=Co}IL(9VO~LIJ1DtyGfsWA!MJ`fg!-Rk-2*iXZT_6XZ_*3(MDZU7pwE1piu4iCi zI_T-*7*cWT&CRoZ!hsSE4;vSn#Fnl;zC}MNhebrx;9nMd*Z#kJ+XL_dAfwyuDf|*$(CugR{crue6Ba>ygvG; z>!;vm@y}cD=JBsG*S&INtKet5XZvhhv@JVs_8cfX-QB(PwN09KT6l!P^ed;QPo6w^ z?TngjJ3@9nj6I|Mo8|hqs$V-J>vY~6$q9d-V>UZ-@x>FLY_{hbn9lUs^s!SFTSYp`up$n`Ks=Q<>JeiU(5QbeyC~n zOj#FEZA1T{nAca`9TN}MG%n54x)vOh{dDRVb1{SYv-0GY?Z^w&W_f16S1WJ%j#=B- z{_TG1TFqeY9HXEoAP&ME+#q~}6@(u#fp8%s5I62%0Ah!j1|U|@1L1*Dj^dz$y~n@q z-eWM+=MC4N-Hu(ackD5e>(AvrlW8IqI=wGA#{RVS;fELe4$jHi^>f;zTl(uoTm!=u z3r?<_x@+Z)_!ninPZt(SY_^I%``IRYYgGFD15Xpb{{H)_u|%X;e{M|k4DqY+FTPgY zeED)^Fppk`*4K$vD>I)|?!K!xZCU)bsS z-Ugq!eRFzI%*&i=vCkII4%i)>x-`zJFv+&pvfj-{-{e)EpT4D)p|l}?QdpAIH-U3Y szQ239^yv2)duPn;$O_o|vY&yOLGPB74(0rL_}gqK8^)LAm}d~?hlXQu0tG^F7olMYz>^BZ2p?3xYSYgs7A%FxpVnQaR2h5M0-(7jA8IC1-IIhyX(s{wNwfT}9sr6hoB}s2t#Mj8$6$ z*ab>tA~a5EKgoe%7Eh+c1TrDQxz=C3!5peN4a2uO=vgpf}E0aI)A`-*=Cy#;rX-y^H01| z7qaZ$r`|Q|N>6({#@Fh#!E2v)>*<$X@2$KxVDW7JeK(@TohKu%r-+H8H?RAgR3)IN ztAt6)OBo)+J>HzAgXz1Pjuo`=4`r<~F>frbjW|;VC&4zT-dN zM2a8v>vQV{Z`D-f2c{l4dV-I@MiL!4vw)6D0hW1>hX=ZeA#p;(Wry86S+vzW! zWOzVpRdjZD<4*mj1tr3LaHC;OQnJl}n}%6PEIKKcW_0mKa%y3RoL5;gw{0lM zUTYQW@B`xKdwk#PF1i-IPu8_@V;+NGzw%qyJ)^h*1`Wq}yrKPRW|!ywGRKIR_i*g2 zCgAuib;ae40lX8zBB)YUOJwCSr>n_8bwubShWYu9qs?$`P)?#r7!q;s+y3^uP0q%Anv4b(+-)C;PtN z4VPHvCXXdeMLkt}sYR(TO zOGA6!{8^t(WFMCF+)ohyI6RzqbN3OHji`nmGD@3A5+^j`z|p~H2BoU1vplJuZaDtx z;;witeMfj-VS#-U+Un-m zQdIVoXs;i{=Ve=cj)R32MW<^oq*exTG(l^y*RXpDqMvX9lbr$t0K% Y+BTTNm1Wi+82^DhPam$eM}p5819CmHbF(PL?`1sAj8u3KKglug8ii3C}M$99GhHw*HTM+G1Y}X>~vnCMgPEEa`*dspZ9%! z&-=dDT~%40!GDg=qW`m6z(Zu^`I``dL)-}ov&$31bTTQvyFiw*^EkQX+z~aX} zq>aRhww4*PgvUz@cxxQ2!&;$sQGN-Yu#rUkK@QF1m6Sz-xXVYffRpri0~+wRvtNUN zm(YN9aw}{N>d7Xrxt%7f+be5a?LHSqfMumXNkq*#@RKYKMEuPGMjg?BtA5qoJh2Ud zz^V!B(|~KF9M&p8PthbGmng(8M1}%NOoAw243&uh6h@Q~tb`D$7)I2vLM_FB0Xe2?SMUd|)^*1LCMgsr85F^T5F&vgzdv!WRcnT|k^j=z(3+`f z3zCqHWT+7B;_~6nOMyA<9vmoP$gxqsOnbSc;LQfg74nk-)?(0r+=+zn5^4noqbkyc zi3!q)ilr)rF%kxXz)u7P)>#F~s9-x?(YCYa&119^AQO z^D9{g<{YhcLjHv=e*VnzCj&?S{Oc=^Fc}dK_QOIdbr`n`u8!KQUJt zM@=oycfJYsoanXR{bLu68$fHHex!^K=2UGiS_ZeZUYe{Flq)Vja;~EoPMe(t1)dw7 z;MG}B9DIEGrP}(bCBcL=HqdVr-Spj?C_X)vdriOlyryuUmCTG*f1kdy(N_Pwd)VY3S!`>6iatV6Ye*rrQI-#RW@y0gQ4 z%0II`e@;lD<+I>3_O??ixkKQ?_VBSff)Z1=_IC7V#V&8(U%Pv3EIwT14h`HHe3S^TM9qPSHW$mHYR{|90Ht!@L&`5m!gweaD{od0LE> JhGAV}$3MO_12+Hw literal 0 HcmV?d00001 diff --git a/Dropimage/btn_page_before_n.png b/Dropimage/btn_page_before_n.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea070d2488ae9f0cb261e7f29733f72e788bc94 GIT binary patch literal 1439 zcmaJ>eNYr-7+=&JymV?D#6c6cMMo6wc5m-VMeB*EFG&oeNGvLI+W&-qJ~5^o;K2q7IEv(ZIDqKbx~tn7$LGeMxh?0 zg7i`DiCF5&hEytwNTO&s9M**mIzbAcdV(NO3`cQXt6FH~T3(?eT3$|zd!T^KNSvr} z0uRSL(&a*pVnbA>_pcBVz1~U3ygVV4Dj6D~MO3fD&`>CLuW@Tx@qvG7Old9qYej(i zfGpHVjGB*%v^ZGR?!kd#hAJC!wZy4Op{po?sR;pI@lZBIJ<+ioOPUD`w*rRHvY;H- z8mvaMmNuHKs(?llqbFzQ*v)R-?lw3ugI@0w#F(DFIp$B)=e3#jBv8QcwiBQV?OMGnRELoLOU{-nl%-5b*9 zZ~CNR;YYuuZEGQtBkg^we!cU-sf~Zs_d8xpifTGeYa<1w-nj!a8pO_#k>M1Vs2TD% zezj%APg`;?c7k)q&jjSr14mjwL4sC%W8dawD|fE{E{FK+a{BON-EV3RkCvSBHB~Wd z0teayv;B?!+M7dLJ2t#kHg*kboEtrDl^!CGI5HpY`jg-5NF4m(ZvM*Er8#GB7WOBs ztAE~|o^c~(?Tv%YW9P_2?I+(&&tO+tzU~VTmJ8opT<2Wc5PV$;U;h3J&Ch4A)uj!VaCGtV|#ZLUwERob@_?m_Yxj{yw|(9Z_vBy z_6VQaJ)@$v@%XHUk&Nw)`wzZ9ux(y_cjjMz_gq5DUY#}@%HGMG34U7=`~5;5S3cF{ HcxKB#LP84q literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_ali_n.png b/Dropimage/btn_pay_ali_n.png new file mode 100644 index 0000000000000000000000000000000000000000..f878016406c9083d0704415c785bfb1a9b68181a GIT binary patch literal 6569 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 NIvNJ*<@fBK{Rdc|D(L_K literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_back_n.png b/Dropimage/btn_pay_back_n.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed0b1154f63aee7d4858f8db220e3a8e743bcfa GIT binary patch literal 2750 zcmb_ec~nzZ9!|9`m0CqX6hvZBz$GM)Eek}102&pFh=M3!NFESk7Lt$z5a_W-77@^K zfe{295j7NWq!5+>wi0rLAXBy=1X9t02pD3hKoFRRg6$u5&Y3y$&Ux?N_r34?e!qL~ z@80uLyuJ3VUS+%r27|38?RWEm+7jqiu3Qd1mv7S;L(L|hyFc#;E0iZ7b3m92l@$WQ zNeprr=mV0e(UDI;Cm3w01z=HfR8YLSs;X zEfNjj(GGZ99DLzIK+!nVP`rv5^Jpw4eBO~9!iwS%5KyKchrnQevSo4?rU{xbl#t9u z0oLgGAuSR;J^wS6!T7}H@_fKQ^8HI=u5UCOMEQVRRuqQTCS;NAu{Af%nOTgXnLF4I(Co#D^GLr(5+z1HB#hON=;%%_@ zM2w3E21B$*1Asfu#m)nbb$79K#i6nGt{&J$ts9FH#Q>SSMJ@FYE%vk8`Ep>ep~!9^ zhsFn~9vl_}{$bd7+UIkz|E%AFmiqZz96qZ>LCK)z7xzz#y$C@SG~fMHy3os~;s=>f z#dDz2PENO82ZOD!Cb_xz3cE*oPh2pKGJT|Z<|_DV**8XqZ-!q<)qL@z`vw|3y#3xK zSkFc2iZuOoEA12AZWV3!sobWFL;o`NXz9i{@9w>N$=lZcEX}Vk-|BmI&9yI=48?pbnt+d6pyR6?Roi9#R?mgSMsRnjlPd{Gx1fM(*7PEN|Ntr zcEE1r*GmkwK5}zlIJTy*_~WFCOg%qA>6A*0OWV3f4d-+x#F> zT^Uhn_D=X(C)a$ZgX{?pPzSA}kU4a_l z60=q5I7W~NtB0vPR$;JCn>er+f0`^e+|ieE?Z`PJq{+EuXXxe82&rQ(<0Pfh%6m3z zL}{QVJ!>fHOj+_vxAZ3&{UwNlwQq*NxC$G^9-xgi)TROdXda z@2KW9n#g@YqA36+Jp&B9%F3o#>`oOP6okn2fYgVhX8*MFGC9CME!P5hPs*M3we%+Q zKA#qWtbYInSc28L=PSEb;TTr-%5#yW_qQv{fZ$Tsbjh8>*a+^?=i{dpL_qb>wI6A( z+~+8L2)~2l9^sVk}{R)CUrD@V_B%&A*1m1-FueVS!Ttr!=|=m zGAEu!XXL$DaeY_F7W$Ied*&>0{#{{$^W$1Yh?mt%v+x1%fjwZF}}~o=n>~)UBd~<&jgrQ(y+us!Ic%Gmak~ z3k){oQp!gq1MRL7(^ZpCDsXk6A`lQ8ol&Thr=Twu8b0dR@qDRYK>DMhl@piGs&%bd zrbJaj6|QJ4OSZ&o@N#f-$bM#FW1MWv5g0CI_@#=ozi>9e82SEAUzJ!?{Mu;b%B%Y$ z)6)J?=A)sqnlPCpbF`{f+J`* zTth?xsXyghZwnz%@0i5wP>kN07vlk~+m%x!J}gFdDN~v5s#atMJXJ`Wa@f)DW?0gulVgPuD$K zZCw&FuG~#G-Z(DrTO-n~@8%8>ead-}m!yu$&&*Lu!kl zwvKZf)FV|QQSj2pn>FjSGosm&6+1OHCf|$~R<#cOq!v9?{kF9ax3dQK_8+47ZoWf) zTe_l9r~SSyDeZ@{`q-$qMe0&=fjE3(Ixdw9>nuBdf)zLTcww)9-2Ds3$N%#{`7bOV zm}!_T<))P5R-RC4HaUzQ&@h`E;(zuzeAD)!T6{++rkYq5tzXtyt-R77n8`S4s$E8R zce(rZpse}Z(&k|w2|c8*k*_r37K69HV>_$Hu_L4HqmrN!@vhp6Jw27!P>LK0gh}P% z3!Cdt4a#y1FY9^?O0A|ZnR$pE_bvbar*X3iOD6LH&)`k&N`bpBWD>8=pv03IR$VB{ zG0z0;>?Oggi*eCPdN(FGYikrvRy~`w k`(xOhP7Xb?gfBP34zE5|WZn_sJ^x2Za`$p8c0G0W--nvfNB{r; literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_bluemembers_n.png b/Dropimage/btn_pay_bluemembers_n.png new file mode 100644 index 0000000000000000000000000000000000000000..bf39893bdc8a21ce8dff9f13f5b7c2ac28ef3d58 GIT binary patch literal 8961 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 Sz54#okxp0B5MHY8bmu?tCamKC literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_creditcard_n.png b/Dropimage/btn_pay_creditcard_n.png new file mode 100644 index 0000000000000000000000000000000000000000..565afe47d9401d5ec900a6a982f2b9532f7125fc GIT binary patch literal 3495 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_happyapp_d.png b/Dropimage/btn_pay_happyapp_d.png new file mode 100644 index 0000000000000000000000000000000000000000..2017dd12be18b6b6fc0d5d8cc0eaea4a1a752b59 GIT binary patch literal 8011 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 ZG0!6%s4_jAj@HMJmsXalkTCi9e*qjcxUc{K literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_happyapp_n.png b/Dropimage/btn_pay_happyapp_n.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a6cced9c128313e81dd411f45a0c627fbb0c11 GIT binary patch literal 12792 zcmch7Wmucdwsxptr8tzL30B-aI24Bh#jQvRv_P=pQYcP=P~3|bN^vJhA$YL@#oe6{ zT)(_Md+&4JeVzUN`mQfOR-RecT5Il^S(zuZ<_>?Uu7HR03u{Ag**45NlfpanM0iD~Qh4N*tsopvJA{C=0Q% zRrGR(XnU!@vh;dqDPjeZl%NB9h@u17LtM@2JnZcpTtq#@L4V?kqM!d#bAjmon7FKY#KwEIQ zcsjV6dvG|o(El@n9K^-a+1An37V1FvS449Q=zCXj5E|)!4Z+^=Utt|w{xMDH3FGoG zcjV&X+xTyi*EcY`5_MIjCV$-w*T5aMgV}*MoCWkmB;jM2DT6B_(}Ic zMjeAWVc^xhx3EQ=u?OFtKVqnO&&C=&{nn)TUhVIP%v!B+0I!fc)$n-9I zrHn1PGf@`vYuUbd7Umb4|qo52oGU^~d91aJj8T|KH z06<0res96&WJ$8;s|<@k!&x~u#%=VbAu6zIr$H|*bfGqh!jPi^02&{a>T1{@_w-WU z@idoWO`dyIGWX0gzLT26Sd_|qIc>jrfJ6Fl`j|3z;U&~dB+QO|>iEMz*QnbaZ0Gm) zl@~u_dQOjg&Y7kjT9xI9Vtjyow7)~!5;JH1WTf0SxM48}_z|&B?1Vvx3HYGSyj%9x z{H*nNoG-00{vR#d`oxuP)=wFU*}BSm;}6l`6BT?8A`N=nQQxl#P9C5YWUVg_ z24yl=j2a&PX~#+UUY_$|Pv)p!dKJu>1d01fd59_`9H6MXUZz05Q?JzY8o8 zwCe9dss{rA_%|W*1a0;&@fQNX-^ITH`qTV7pg;Kj4bY$F-vRx>_jf>l@cmx_{ekue zkjW=Ucj4X^-z&G`m92}b$^cDSW0Hg%cJ^^PS>=`|3!j@`xE-YSv(auVpENnliC!~e z0DuP)kDGFz`dyFs0_CxUrTEm?Tp9M1ltHI(s5Ew@rPE=s^=G&8u| z>3cRtgPxEUJP|ijTUw&M92k%jFE%Wc0lWT{%(RL%I{TJcKGRUCrKTz-naSr zXzC-VrQH*;RqU8}Xm5uNhMGrHw(G<~bT5y$;@r|sb|z%ar9!W}HtX^iW1)lF$#K4_r-0_~%wnJI0y$RuECZXJd&^L&+MjakSc0z+X5h-0 zw_&vGYCC&{x3?&rdLn?`f>e(fjM}-=*a(5Q7AA}>?73!2c$c_4yg+>h-}!aBlq#Pq zG<*b4v?zVxxw4wluQ%#jHqLftLy9L!5W$GRF1$NQExhx(jH-VIuxq8eDZjr(SaZ4? zYZ(szTFD^ON-|{N=pYBIH|L6rA~@)9wgS z=uBU*)YTO{+P38&!#3Y&>(sk)>_vYuXK72`=o;rEi$eQ!&h-XexsYwhpRAm9Oqt3Kmsgl?3K1J`du<>M?j z)%Q78^F|`o`{6JM9$)-4of?~l;cwISYKHFDpFCuGg0}S8IbX4Bs`YD=-6G>JPfN}C z-5!1HQXkfA2YBxRfdlqImEM^07f2>~>ak*g-JtL@)L5kWaxZt^&l=!)_Kk!^Y)&Dlnu?EI`ze*G z(D!7;v*i`?0g9_fK~yqNYH5KApTPQUj8m(Ma@RtIh35w9 z_&}GV_^`?~Q5l*6r$qMkCBe!jj^ z4Yxinc6qXM;WqmYKTUic22jc1%iN=nX~N%=+&lWb{X*yHl;kw zksK+<%WQ&!*q0NvXCiU#esrE2{XJqEc4SQ${HiJ`+)1%f-{99*ZY4M8wnHIg^R6Y> zG3ZRBTQxE4Q9@{h$sx2w#Hk5~dhMB(DU}chkApi=tG;LW6x)VGyUjr(tHJ%N0&XnW z7rS=RC;dyovz{Byl^wmpV^x8>TvqtIm9Fx-rYOR*W_Nne^-%`v8h)?!-vL8r!n@6< zC1zM6K~#1|z=KojKt%+qXEc+TvG>zzL_u;r{qh|>A#F{+&bRsZbqkK&AJ$fbC-M&4 zjqt+H&n{rqh4W7{fh*B65UWCK?acTi&Pv<#oadWLGDc+1(VU(pdrwc#K677NTK@}yY7O61U*%D1p#;rwLdb)3%W2C3UyrM6 zyY2j{F`YK|N16();i8IOUc*(|VM-(53Jr!(I5NEe?8MCEkg-SVq(C)pQ@8|sledR4Xawig|S!F5-Ed~#N1nQ(L z)pEw12UVooy-D@`^~7K5o)zxnse846AMflbE-sUs+kZyQ5Py!3Eo<#>5>FB;BAu`> z8cVplWNun&Iw}7k*No##s#>Qm$pD@0=_O4n4-*Q}0`;k}UB}D$n5%H(a!p-9TIvsmvNJu7oKukad#!{ceS0pp-+O0ZMKExX?Rajn1~g19F7g{;`WOv_}O+Pdu16jJqnbG)M` zF3@=Ut2@R({9=hGChK-Fxq^AlWP1Feq+%EjFE*x?k{^>PqyPd-9vY)5xntpY&dxJl z=T*=`VK?+%AQl0C1;A<`KSIP$Hmji0bDm2z`4$>>&R!eRLDEtlC>U(^@n z#<+HA6ipt6V)QE_?$kgnpWQ?xBA1P7*Yt9)yysw|rKPx08Fs7eR?FN_9)$_Wy~IM6H^>}^eI;aAzZ2Omt(0wCgis&g zik!=mUVP_B7B{U_!VsFhK4p~^BG9cKGv27LDcmKWQkt}11hu4H?fB4G;S z4y7MLWg9zU_G_m2snaa*1FMuOZJ(AhL4CqC5EqyiL{meqVL{%$rk$n&zNey7oyU#t zk06ptZceH8>bXaOa+xkFcXAu!g|<}Wjp4ym(lNul${U#-7BsqIdjy)1p|hHT<&mK} z+dd%f7V4JV(vSVm&pdN3GEqmNuULOUez_tWWq#uXfd#U|Htq4fNZ;ZVIfl~Kbr+~+ zG1EM7FKzgB5I(wm#&UX*dAc}c-#seU)4E*C$VeqiyF}5{+2EvPUGkL7wG{Vs(DU9W zc===zR3H5N?ssK6Cz0-wQx9GZ_`S-gVP#Yt zeq`(Pd_8kK$mk#n^;3$thZ6r;-D>N1VeoBkeVCnOC5DxC-1pwsk~AJWa{lhO23(1b zLcJKb;T*=JpxcLY!4NxwRcZp!mip`dXOu#*2{kz9P?ZMPN!SSg#gSiELwC&$8uc%A%kqoE11VK696wkOVeE##7Piu$F4COvMgDRCTFOJEb-)Ec|Gdns=D zJrBi=tK|_`B!jz!C^BAnol0$;$g?7t@FN>bwDsA-MUCz&F&7iYrr3$$gB();mM5!Q zM(xoK)M4(*=Crt1n>xYVE?quWfdQWQzz4!42J0!!>Fi}dT!*?w*NVs4WxiD(5Q;0= zn9l(JzL+~Up}Z#n72H?(pqDvu{fIdeCm3P;%ZU(=jmU+?D}=;)qGU5DsY1ZkIfZ|9 zym|y>U&h-gYchUyb`YKWwssmQPl`2iaHM1QOp8jE%U}8487L(|4lYvSgf}I@uxM?~ zx-21GMt_CZJe#&#rzA)T%L!}N+I3-@VrJOn>$$v;u!efe;*|Ly2Dsw+L;Su<2+r7s zr(3F1%55h7;$z3(%}a8$_~5Qj_WHf;>CTfcrHirdzQv(<`*F;j!JZ)=7qHZ6^4Sw# zPLqM#t%WJU!L1=`ms9J|Ir_i@m?P%kn9J&YHjgUAO2Ay!o(gAT_f{@0J3 zFtCxvMAv1_Y_`-JE@rU>v-6^}E|2W}NfOK#>RnotpQpWd4=JhhV<#3 zJQ^9N?4jpcf1FsJVa90>EEJvjR%N1bL^9Q3CrDMQNE9Ij?F??(t+SJlM7~rk7kL~z@Ii0aAgj=fwpf}k0fl+yi}RqVdk4qbYmb4 zN(-aeo0`1nL`u0En;3gEy1rRkayS|CVC*h9_Dha&9u7>PG#CM-QDq*De$Y`%Raj!M# zEs4Vr-jKs#-r2ip6Sq6}_g&{jJYzjR~jFPqt9X3%!_M#VdRq+Ob<6SFMMaf4G6a4;|xKdPLaMEI_s*$f|G# zyed}j8D3Xt?&*wvHcKT-VUhdEFDGjpriK@CUK?=xOR%3lQ@E~Je&Q}#nOH^0R&cUq zYkwN59^)rz)9Sq`pCcmL>IfRGzhqweskj>4A-{pSCyYM!7*nq+IYlO^0m-d51J8Qc z{PB+N0c6-_BE)AW>&f=VSH1m|$|A*Q9I=)aR-?*JOT;wz1(eq#e`3~bzy_*X-lr$_ z*nVotpNwg}+GyX($>Mw$f*Ka#@)hCmlcu>_yHpCGbXst%GSTAJT<95cIAt$L?MikM zRY1B#ytE>hyo_YU_2&h+zOb(GF0UPF%3~JX`gAuiZ&y>uyg|{#VN@|$XVy4!J85)B zsi5w&qX9hdt#*Hi&9?A-kYq6VxwPYp-j~zS%z0l27SkVH_1%T+`c*dZ5;&dqi40|Q z`!_sqOM}XZE5Uo`MI4Lg$HVB|1)PxxHc6ArU7=-Ir}wq!x6sd%_ilD<9H?@P$sJOsH!7@K zImyZwDfC+nKC@HFhb6P|(hNshV>GHs64uWPdoQGqJC5yYlMnsK!U1F?IgCv9M!mre zeIoI_kOV*W`=9`#g<<`7-*UTwc{XQF6>mJTcdS;k!X51ki_45ANo-!B=eqSvj|U`` z5Zzw2p33|OKJ>=}AH~+LGiz@^X_ic}e$iyzc~k5Qq<84I`_s!SZXYI-gEaAPrvNRVv?cp~~ zj>Rjlj($p>*>x0($qUQklrXRr49(0M5z~l#P-w9iKXQnzvB1`B!!XNF$EJ_B!SP~a zz9u}HYn#Vm4V61LAaWsd5Sj^I*~+aHj#n(8{H(~u$a6>04A&D*d2Z?f$Gzh>!}XOJ zoZ=!@glCQ9%xQ<3&JsRp_(;@!m}QToPZ59p0TNy~5Hu@7n3U_@O~=8g%#vUvrWMsrW>!u;vplL=UUGJ`H~Z2J>6{JUtf~DECK)=RWWCIl%~~v; zWMHxHL*WF>i65WWz|;Np7On&oY*3(?%8e@*Vc>5gCQ%p; zx~R5?s|A-P(FL5+s)*kRM#N#cHln8Yw>Wu@Ce(np1BU9;u8*dOzHR-m!fN)hK7-Iw zwa!$MW}77WwejucMc^}|)I}hN48P5eW@G5ZQtaZ%Q1i!^6IKCLx_0TK{*skjR`_vq zvTmFPTpa7~dOa>{ReB1T37rO|mMs1FJ1!T~epXZug(~g)1fR+%2{vq}-fLJsx;dR! zo_K2!A$g4~3X;anzr*+N!O?IjUZ5O$1vrK$^~=4f+MAr&UcqOjpL_l4;ov%7B1G8# zje_=4))f~hdDF@^3FKm=1TROOnb8rJ zjbw_3n&@+5*7AVco1aH2ea!+@`79+ronqpcG_QndAVf?Ds`iZw#TB9l7CM9;UG5&T zYm9UKoYhVUEj_^>_ZA30SIM*#K5P=XvG#MfzRME6$9aj}WUlW-w48K&t7Q1QnWur< zoz1uubOevkx?U>uKF*>z%;TX~N;WTsp8O=Kg5#QDS@^LHelLxJkZdtW56ZymC5Q;- zmAkK1+eLkDw(2xlrRq+4I_vA+3EeIZ7#eLV_ONj%AZqTjQZfhB*ECwyp{sm9nVYPC zM>2*!BB^OT5Eo*~RJOP=sXSoH2FI1W2<5Xl_DVTzG*B!h{ekxr%yc0${pO5ay(;P8 zMv-WD#rIxMM*6x(^!K(W4_TfRhP6VI#TPYy9p3Cdrd4q^nN#eKV`s$cClQ(HW7FV$ z{EqiJJ2nSUHpC_MUP*>Lpq;opy5m9Ts}QSEV06mB0ndO8mNew>^u9Pm6|0^l;mvce zJ?Rv0_DhdP5s53YNsXorr7OQaq)j|9qu`4JQ`gk)16Sved67vIEy^GX4Uvptv*o9a z8!I!_uyhrRQ=;$&v-;eYv%1)@G8N!*I?nkAM_!}$#=*$yiHv>CSn*7iO5vJZxcNOI z|^8tp@9l`7ooEj65U?jZ9a_uag%G)RKK9iKx>+VvuLxUQd zmU1fZLt3Qw_iK=88PtKag}2_cFK&+DSMdAIIvySLRT5ub!RbBi@HwSi$cXlHDaZ#Hge6RRv4f(Tvt1+{oJT(t4-S&3G zJ;m~J@<3eIB8Cp;ghEq%LY-sFSGumN`fMi>=E=!2a9)a|YOs8YAMk4rh%%SI*PW5L zH5H)I8obEp{cJcYoR3d9rUUv@5w=|@ zx6G54`6m~v3HvK^p>QZooOe0d`_@Mc;Irr^7q4s~4kv{L zLH``oTwZmUk(;8tajnZmpB5y-h@HsEaNe`Wgx2+#elO6foqD(@#jUY|0WVAYy`X&2 zLBY%Ukd@N6p`Prcb8>G#d$i3&1d?dL>_y7#9FA?ygJ77lAYIkK#FYU)atvx;MR*;I zgIQ%FrNCc|N>{(TA}(AwCTZ}a74>IxPsVv6aW3PItt8C2vu5;NP|s72y$7a82zQW% zF@vfId>!5%omo~j&piAvQ~&UsKZi@p!}q=I1G?NtgMwj>Ok-9Atkdg`Vh^XT0l+eq zQ~qDk?>AamG~_zammg0VnS^lpgsH|bV!lkZMJ3S2CQC~H=2}F3yB{4Jb4v`oSNKNk z2whuQcvo9d3Ds>f7^MDL&OUNgMS04>uZDCPjc->D>ll#ZD{IL;?5<&c#P6&NVSyJ} zEKKn`x+&C~WNT60iAoT0$eQZd!wKJ@5Q&16*fR42DYrj2SJ)Z-2dh@<`POVW7Cr`* zl_zu-P@;ldT0KFy(M@HlRUGcSo}Ur3{sVA47}e?0l)qaBZ)Kz8l=^XM%v_oo=ZR?A z!Tzp)DbbNYzDu_fqNDHgK^*gKEu_zseKoxP6SKu~Ms&-gM!mv`NK1^Y>1WW{jRDeSQj9u{>v7l@BJv`|`xEXmKE`i^eLkdZJ$Mg30N>x=5dn290{oOz} z8`_>1KiL%PzxfCy7ER610#|3SDVHs@{PeHET|U4931#z-D^(akB}SRJv>>D>0SJYVuwsSw?_QC zK2ZorVAzyN-fE4U?k~#QE>q?kB#xU3eRUq;^~*x)^QWsPznS@ssAt|Hh*5bNLL3Aa zJJd0T&j^9!P1^~P&#}Fd^Ej-Y$9{pxIV(JMmy`2Oq?$GaE6NB*$Z_W`nY_me3XP|R zSrP9iwsK*gcYAs7BRyRo$(Pyhd5%_;AzSL=ebV4a;kh~x!@9dsLHz>%TK{eoGm&%e zZJmEl$LV~PKpCE-Ox#3`)B|^dtxuWc8H@YI~b0 zh2gTnk!q{Wr#P`6M+b4@G8UOhOA}OIIdtZ@fEcZxKZ)be&Z6xQE%PlZHPyl{IUIE5Dt~a0tNvl1 zV>PW%$L~bPIMJ7y9BQwOg?@!tL?@epn|Fh0VReR5fi1(%loHfD8`2e~C)U2z*$!vF zV%AXFL9d@t+f<@@KAIg69>(>|kNE$*UTHBAjw*a-<69+pi@pg7>3#I+eDrF5git<9 zMbCfipi+lzmy3H%=#9*CBIFe2?ClRh%2C-EM?F#k=c#oY{BbT&x(O;w?0KU4C}o-U zNuuqK)a_H_v89m4L_;ylmcl0Q7VDSauStYN{lzO@>v?%AZLfGSbfjr{LiRFN4 zbB0Cs{hiGRx-9v>X*>^_1n3WL%ltPnD!Pwj*m@`rG(C1gliUJT5Ea9`6QTwkRaZ9rl$Z*T=5+2Kfjq>ss`=79`sjrFfwT~r zL=5z}f}QvW&tAziMg5X?wV4qh2+mfue$ z5`}jCii!I|N>+k)0d?uoM>fpW?W0*^eeWKZQOV3Bs^Y$_`;imtL8D_~-SX1xz$EpX ziOnj%DjQeNc9I)4YZ9r}WTCf$&DNSX-&>7|7Sd`Ky9{^2wJ8Qd0Ca>4(pJNSG9s81 zHBiyxMkPds-#Kvf8Sgs2K-1!OUGEipe;b>tcL|v{=HOAhX1es`*TE?`T=;8-l=oUn z{7MLpnq*;43svwQifHW#O`n^kdvlH7yF63xXpYCQJkjUSa|%hJ&I3;HWbUxco z*I!o`d0nEgGkI~q-6@(Bjp>afYgVFr#s(iY=BFFY12VQ!B1(I_*+B!Zpa#YZDHuYd z4if~^986||u0#vD2dpy{W~E+r?$Oiv)^cI+uS6n*j38j+N-#-ETu#ruLF&-FQVtXI zGZQ!0lZF%;;&8FTXGhh}(w51G<@L-SsGs6A7b&3Lu*kl%uWdBKg__P#T0gbry@+}& z#-DwCEFCfSF_(MMajONXPbVNZmnVm?zlbr{aa{D(%jUghtgZ6|#1p>caTeOfVFR;R z&yqmqoZl!6L|r6%402n?qrF6<)fC(0>V)&?CE zgDLrS*WJ^2@%Y-kS_LV$VC&ptcl6m*}eo@5Nb5XN>Sm zJzKeSF_5@Y?KeF*LD|D~KF}2h%O%Bbc&NcogEr#oPu)UsFs>g7f4ZxB z6PYf*?QuzSI$Y}Jep9Dqf2V}};>!Wd6buq=(=?dkf6N&Qe!N6};@j(B#g!(P!R()` z7Px;_)<8TougpTDmk-57o_a1G`>vRZpM414S71cVH)^LQa;#FRJAs|FpCUanKQR`B zEe5~=022a4&;3acoi*!kg8dy6c8QTYbv@@Hk5XI{Gh-rg@jmx-_e_Ylk*J@kwR=2_cke-tBs(S855;Q~A~m8CLHbs-A2uM}$q} z(9~bd{cPEar@I!RyTW=O09@Fg0)KZN$JA!+E}6=4zI|^x{;sz+64yXkOXQO(?8`fs z2XpZ(awchfHL0TECCiaH(!eYm@`iS5y7}rs1Dw(6G_YfIZ=~fqyX2SS=+vty{pE?; z58YH4Nmkh$JlTSszl#U(TpWWjq-^qM4v`QY*6|G<##8(_DHJsiLps>y^JGCRaqwGJ zZT=uh@s~R_#L-JBA3U_em||U9F;Po1I;juWpe zBUgN@DAFi5k%4xji9)Mg915_oiN#_JbWa|Wd5D~HmI;OYZP}J`tf|Zf5@1s<>{4T? zlC%|NcY9vE+>W`G%lEALXuT8J6ZEln*LM6bVo+Ul=GAZRqOqvzxtJiWW|_W|t_wbrNmmZ1S~j(Ry2JUc?t1 zom7>?sftcRWuP_^(F}5!SE9LOj$DtqdZvesJ~}FPYznFvV^nPqw8l5a72zTd z_hNHMs1BJu>Jb{DNKuYfg`8XQrV6cyu8@~o z*xxtTbVA3*3aC23)kRA$h>#x@f5s3*3(;s}?+6ef73A9+{YL_wb{qu&o2IXaOWf9% zK4Naj=OxRz_uzJfJlzb^r{b#)qilTlGFM4Qqo3`Gk*PPdV8P{D{*GU+o&PVk8KSn- z>~SjT<3|Jcs81+S_^A(p2Xwbyj@gfKMZgT56%5OvanvNdh<%1tk!gA}*?#x@Ir>*% z;md((&TkimqNO?{5pXyWZtWYa@HHPLD;nz8zKM(F=DGUy*}=)c&h z|B0vi|C^%vzo7a%XZ8<;_7AGfK$+X`(77jH$pC=O^b)gHiS9bqE}7c~=o;V^ngi`> zc#3MiOAo&0Sm;B3WkwrSp9^?V;9d~7B#ibxQ82*(NNrf4UwS12tta380)yd!yTl8a zF1-<&_5i@JtsGqOT~(5XK}QstN{ra-Bv}aU=t=x+qTt4D@L(Lxpf)mr(_3N2RgiIw zPVcU1{W^S96z}X_pF*bhWg7taqT+}fex7jMo~GbOIz=^xheqVJ|0~sgbTii5_`<0= z8E9BgkLCnV*823^Q_nn?gtHl8HISjcI%*lK16Kf7nfIK~oZ-o7MDXYr1KCqygJ6dV eyRJK2ZU9r${P0)So=~(mKuKO*u2klA;Qs;bxD_z~ literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_happygift_n.png b/Dropimage/btn_pay_happygift_n.png new file mode 100644 index 0000000000000000000000000000000000000000..8f767aa3ea5f680501f852a989482a58bd8e818a GIT binary patch literal 8133 zcmb_>cT^MIw|3~#r767%NDUncogf{gN-qIIhlCOc9gz--(nPvQl@?GSN~9MBDFV_7 zO+cE2j#B*at>0bi{_Y=l-C1j9pPBVM&)MgkJu_$RooHyFNlC^`1^@skwYAiZuWa4b zId_ft>PmcTkNL_l1>Cg=FoC%Q1VQ|u099w0Ba~Cy8{!HzhC-Z!eLq4K0006$cTD01(%v~hE~J1cUVOY4j2!@*ED zcdZaVs7Z){sZ)rjlbkcRvJ$5P5_Bct4Gn;BBE7wQ{6R=X?mu)vSMA@Af!v&bKmt4! zx&L&^Lf?=R4D*9>N{h;fIEhP1aLUSwipz+}Nk|EEN{ETe0>xy3;*ug_;vg{@kfa>v zUkCS9Z+^}$AY*lnzxukmQ{;9F2!Mltz@VTY(I81tn4c?9Tux37C?)}vkPx{-i1-Kl z1VE4?KK?v^E2u;Lo&4P40q!s#&fkg_kzyGbUziBWW3N(iL!w`N>R}1ID^SdiJ2R#)V{QW14` zcLu3~rSC{e%81K?r6t70@5-slsAbU=HN^kss>7TR-cX-_zq!u;awYyF z_jfpW!>@W)hx)k(LY+1IVBVa63>)PBAAOP5_>X#jah?COFJk|Z3%qg$_8T%m6Y^`L9i(9RS~B}Ma_PP4$&(I26~<&GxB}ZHNpETpB;Z06IR|&E~T{-9L*|G zs!9XsbR;#YJbBWmw00TkdhC;}=ORnW%{P6p;-5YLyhSqi`EH)v`keghhLRF>Cslo)MO=gU0;)H4T;PQl=X`p4-xUGLiC zI=&xS7+_jeaK_wC1QXbLobA*w#2TsG&*0q|L7)MYWY)*p-w~;j8Z*`PbdF$VBAh1@`o?PVQ0;-NaVW@f_ z@NHSb8Qso6AzJmI-*$(L5p&Ptkr@Rrc?nw2Xm{hvh+~9rbPYKEWssJ_anE`jk(O7G z9$bUPpXN{GZ^FOGE5e`1-{v3WZ^HjZ`f*}dB~G)+YkD8;#edPETE^8=;~vLIC#Fta zNYCf88!gh9k#jlC_G2jy9jT+E!@TO7dAi)Mn7X70vPE$Q*}N0D@uQxE(q@dJufSAi zyW{ckU6DQL2ih$mk-c0Ix&vh=CE=&nhy7%RiY{rM-qfN>|^7WETROSz+|&+Pm(M#?XjWbZbSYU!u9o5|GSFfhmc zP?b66G5Mw7*BK3psBl8=EH|1*NlVBL(p`p0<;cp4YoGUmcZLTv$_`c{*b6ifN&IZsN`NEK2( z=0v8;8u)Nw%jpc$C<@yEFdn$%TUxWu3g+nu~i357_LsgavVz8qvkW_!N8TkfY+N$YISG zx~7sDF@<=8Z-phUNi5MD#V|43A9yu55|O2Y%5bH&kWsPm6q%qM!P4Wg0}?x8c%Nh4 z#mI=A?6g5js9mnTZl26enttd{=;v)61tM(($`zx#HSSWPQQL(oBrqw6o1ib_q3=jli`qD zNaS|$V080c$-!(*k$s~wFNsy=+v0;o5Az7dQn?pQI`XZPFj7vR|c!8pf?k7J5dNzsOh zs#_5kHNF?_(0PH6DM?MMx6orDF#H?hYN}o*J|8fq>dX?bmAR=PQL}IIhF$OKhkuXVRL+Fg!d0J=@Oug5p*ptg zRu7VIlFqq2XSN}u!}s99?1)ZX6C2BGzngaBq{N_RAR8^;+_V!p&0o&M_a0(;P`X`F zG&oTVZVdk(U9Oyya?7Xo4SZDHS1p!D**bC{SoaP@cQ5f`g1`;|ahs`U(OxzheXCF=#s#ggGTV2p!+FEU`(jKno{r8*uTY zoQ4nlQ2U5W;{(j4kBw%sEzF4f7%Gy&s{jxB=6$-sv4ma|5P8|onU=N2VnOQ~uI_s+ znRtuMyhFtm5CWUt4}PD>?+Nu1`HEA|;H*G$CM;F?)5aHCeALBBTc}EP><`Ch@k&JL zk`NBAlBpewLx0{?FyM4dw)YqX%%!eoo8n@9YMvGA+|tFczrf3|AG_+buWP)+Smykx zWn(jsPSPp~D48SQ578RYYx~KQ_S*BhAm_CCB;H*4$XucGmvEW`pGsaY#^jGCq&I>_ z#Bp9zNE+SFZ%E-7ef;jv%+ssAc+DEcjs|xGFJ2_jLol&-0cYr@%wK{`MSjHoxZJGA8-Q<0dz|D>K+}|=yv@+XFD@~63X|4-4W@4``iQ_+6PhDBYd3Y@Xm>n72D7!k0@&)X{7UbMy~OV ztac|1eP{Bt+q#91ol-UKAN4=9HSwt#_{8jRPI-E%niuANYCQ_!C;ajd*D6N=GZ{3# z@SqO1E}Z`oT5`apD)&ibQ$KexCrC$8=H8Nu?e`+&)KP@Pmm-b}MJIxV%;R>#y6a34 zOE9)4V@z1SS3U<#yCj$&8fFzm?|pU_TM1ey>`sb2FE>G6fgE0dG?amuVE)DR`%jDJ z#oh!DNw+1-S2Yb@2lCwi^>mmYd)zf#z7+H6xQd2fQL2KiYgQflvwQH`O`TW4^IthE zHE?)y@7V`#8--5fQ?_J~aN4J~b!?e|L<2WXrlu{98~WDAmhC22!}%9Z9zGH}k7HyP zGlPy0TV#ubZIZ<`CvKLsC<{dQu_a9HtynqE<4;{z2^HBEsw0l7p^za4x+kn05<*l} z+1B#OLg`5z>{FY3U>ql{s`8+0E)ffZc}%X=PEE&vSs z+V=CaXFS1G9*-uQ@7wBA&_t2kz_k~@y@&AJ?2{-33CI+TdE59`-Y8{R?q!diEqJvX z0@#tvwxNFc)P7zj_2cx04b{{Kra973mGSBq>FcaSXnU~yOy6X}RK;uOd`|1nm-2zf z$GuUy>Rz`?Yfg96vl@0X;p#WcV^+U*F&JlL=LM#jp0sHUPxK39Bd%YUuDY0LyUy(-7Q0)s ziOW1I3MU8XEyC#Q>*>7})Z&G9LceXlNY^>VY5q(xy;D$`Q9?Sc5cse}QOZ}e?7;Wa z?o*w4D{{0{$)4P^X90axC%5n>E1M96vZC^3`C&_Zn}P+r>dRZV@VqwVvuTvJp~&2* ztfNm%7tic$VV&ZX1KA|46p^Rij{yzI1g2v|KFWGn+Il<5^0{GS#-Gxy%dLb5A6LEy zVIuL5RU6T=move+M%!5>on;X=Cfr`_^2xYbE$f=u_F_g zKT@;p3Z;h;F(VB!lhpH>GSG;ad2YubM@Eo3jzUO%;6Hy9=1AK&F}ei z@6M+9zZf55^tpr>8cG#tIflNN#iD&YS{hHKFF>016Osc6xXSIOW1X>#}QMp78A=y7oz^SZ!%>F?+iRd{*>Gbhyo}j1C&<1s}~TpJ#lC zquhNiqQ57)D2=ykKUxZ6z#YTeb${8DM`g*;N^gpvaeMdPNK3bpha= z;#5(xMd@`EsXaF#vn+U`!6&JQ4117vYi}e^maCIQLMwGvCP&pp7XnKxtXo0TJ~kft zW0f?=ER>c~#fB`3|C?Y}<_xX*QVb(k8pQ}+9v492t~o^>l_S%GEja6*p^t<^DHR!+ zrc!J^NsDdY()ihlLt{ht`QvpBp8XuS){vL{&R7PT_k$KCvL`|)aOQj08@0Bw7PemU z(!e4-%52Mxz0d1(a>k4Zrn(0g_uA@?vI10e#0BxRxjNIiWg50Yn!>ui^#>0^7UGTS zu*7V=-E_|}2djdOj8|`KQCZfz1vbTJz(4Qan z_479Y>ESL(>yI)>q-y*P(1YX!H*GA!ptqY_r->{rEW;rCvv!tpy=YXDQKLfw;hv(f%7Xg-*u`{!Ew*XhRc|hTyTNWV#ZKKTuN(X> zOe3<-ROc&-eUmSOa-_h`a=+Hil=1i=QbgSJZjXut4U2O(1Z-ktniz|E56|VWP`lK0 z#S8l8XC=P;DVcRJe;%Do7p1F+Fb#cwubcfueW}mqCfXNqqw!gN2*^&E%+P*}pTM06 z+t*RPbBvGTU!k@jOBE7MX15X{)_7^G&fV~_@4W!YZV(pRBqZ2fd1q)HAzbmU@w^4} z`~WYGg>A61Rd-K};e0(bYSwI=)zCoa-af;S_8S1dK~6%DbzcC<+J#QH&-g6{xh&~a zMR!|elvScW07-{Ip^6<%q`0x`+0CSz+nwHA<``tzO5eR1c|od-1WK)jSGwvKy2-qx z?UdirOJ6%3|Cm|!!@4V&7y^rEFGP4-ul_<5siE#t+$8G7`>oh}43^u$x#+TWY6WVN zw&a&lNDoCNyAb+ZR)W;`Oo0WSO0jI_^4PKLxUO0m^WpIM;~{+C1J^qn?5P)8$#c{& zYf=_Uy3Z(EofTtCll$00V1JT&k6IGLO4~RAf{+vO9+3wEUapH5g06oPxO3=5QkPN~ z@_7PpF$7($W)ply@ck z-1xiiy>*4Ov)M6;yAz2_n<@uV2r~`C#`5^Ukpt>aJZ*)?r&n8Lz6t0&04J_D=M9T? z4O0UK9gn|7u*?hw#Zb|McL8r`%(YZk63bV<3bvnE5yS7j;NUGeoiG^cgpXy$Ros@H z$jD@_(V^~NS~v?g%8x915<114*m~{bgmx z)qaskg8m*OVlkNq4l*9UzGhP1?c66!ZuczWNhvF&6IfkgLrXQwe$rGxo}_G$>Ga$W zmle}92Ndc_aEWjqm88NiD~S(0pG0+gaD5STPw+Z(Ar!cex5x!J<Lz69^IPJFYVO<^$Y-ev8^P^ z&rDmymqY-27t_e=+KhFTbSro&m@jy{3?TQas@uZZB-WJh6Sq`d?fH4q84duNzU4UO z!mErn4w{+!*=4}?U@@O6s*(WWgCR3a&H~I7%BjT;F}n?OXd3OE%}S$iQUW9E zIx6FvYeG1w?1WT2uVaj6S7_0*cW*bueTE{v!;Sek($(gP+$5kB`GftyxVgxUxQ7L+ zO-i;iFW7oozQ($LwQN_}}#`ArI0NA{m975m=rK))1&3we6ll66>qyr(; zi%l=!sv6vf1T!?2Of$opDNb0A8C%h^@51RU$Io~kR6emsHrB`35Zwfk-t;$__N`2L z4sCn=D{)G!zr}$AZ#iOU_~c@~$u7#jmW{bW(4nf6p#7cm0OdSKu%{RGtJ`5jFd>2^ zlo%KSF^!3_w0rKJWfr*nvZtUqr@y>LL_h%N|@vUz^FkVqu5%3+J26@I?}DC7L!9QfDa+9g0^|j&<&I;Ekg4YkB&vnEVu=PO5JcwxP3eJ zC~BHIB;x9Q{i1OTM0wwR(sRk|BR)Wik&M(H`hkkt`EIEgwRwAgtS_2dSZClSQ+)q0 z5nBFKOAK=~L9`ooZcxcvAVie73QzHUA{6_EQxLV1#b!U8yE2?Z zYBBp$sO#e51+H+pJ;_gRKoG*vX>L`UGP?gfDll6CiJq?_kJCRr7<+lg$X}o|bZWEe z+3@C!uv@~asz6;yi)=W(T6e)o%NYH#5Hi}1UWD;W=xRmEM5Sj((=YU-tlQcelZ3}p z{u^l&c8p`GS2?qdFMV-q9Ca66U~Ur?@WR6VBCXJ;B3HnvQ$KcURNj7Z&8{sS{>zT*yOqM zf^6#r=zM+%;WD{$y*5t_(m9k7Gl?+VKkTURJ{y@9=qk< zv`@8DGH9NDep~O=z=CbEQ$--Y+^>ky<{#~8WofA3;AsO8RqZfM{!UzD*0DU>v(-B| zHG-xw2EOap-rFu90u}D-!}p;rQP$f?f0ao4pJt~VtDAfNBY3@ zziJVAS}Qi@2{RaI)0Vnr-dDn94={nDkFb}5M_tP(CD67r9VuH!_u@qSn&q`uVb#Ee zr?&?ELPtZqcU&B(-2wygX8+B<@IzilD1!o@xbbQBB;aM#%X&)e< zi*B`2q*c`4k#Dj*`X_Dsnrk)K4jg~AtaKuSt49!Ox8yBd-2Eq2`}onfhW#vH=IFF_ z{1;*!iIUc+oV@ixUBhv61je~;gsO*>E0!vMlaZx2`7${j!HhPoP&`~FT>9u`?q*Vm z;GeO>PNI$F>I^A%o4+DnD=rS|_0 zhP`P}|nYw5j$!D(4zz#isr{XZc$NZ+=^CH$AJ3r_QSq4UZJOaNnqo zlNN5YH0(3Khf-RC=8EWW2AYl0@2bh!%ri6M-qwd;pEe=|UZj_2K2iwC-q~wDGI&x^ zYU6qrjKjp%dMO(PZhNKgWSeJ~&^eaA-Y){jzw;Wd!rwz=*bjSy?zJ0%u#X6Gckr7G z`5lryf3(JG9hN!&=700HUws$; z@^L{46K`|SfNVxF7e&{ea7CZ^Pkws*yJltRipEA7;9A#n-=oVxgYII}l(!X?Xmy6C@xM^S&aPj4SBnubU14 Y1DYVJq9VlT@4~wFT?6%6HHYZ`2W8DL*Z=?k literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_happypoint_d.png b/Dropimage/btn_pay_happypoint_d.png new file mode 100644 index 0000000000000000000000000000000000000000..3929dce3c4818d0384fe202e7a23cffcd31202b6 GIT binary patch literal 7406 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_happypoint_n.png b/Dropimage/btn_pay_happypoint_n.png new file mode 100644 index 0000000000000000000000000000000000000000..15a664862cb7c723980db91ad6be806db5191702 GIT binary patch literal 12554 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 I>Sf6P0$uikWB>pF literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_hyundai_n.png b/Dropimage/btn_pay_hyundai_n.png new file mode 100644 index 0000000000000000000000000000000000000000..42502d77662750acdd09f996f0b2872d017b4439 GIT binary patch literal 3968 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 C^$`{T literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_hyundaioilbank_n.png b/Dropimage/btn_pay_hyundaioilbank_n.png new file mode 100644 index 0000000000000000000000000000000000000000..bd66eadf3a332b2a3c905a077e86ef1eb75fb300 GIT binary patch literal 14171 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_kakao_n.png b/Dropimage/btn_pay_kakao_n.png new file mode 100644 index 0000000000000000000000000000000000000000..236b27d4b38e61d01804e24d9c8727390a6393c0 GIT binary patch literal 4876 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_kt_d.png b/Dropimage/btn_pay_kt_d.png new file mode 100644 index 0000000000000000000000000000000000000000..ba00cbbc4363f5c4a7362fd6a781bcdc01f4d9f2 GIT binary patch literal 2779 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 CS=cK8 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_kt_f.png b/Dropimage/btn_pay_kt_f.png new file mode 100644 index 0000000000000000000000000000000000000000..217ae73f5ddf580ce6fc07e6476c3a7cb7f72421 GIT binary patch literal 3887 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 Og*7v_L=_vlNB#?ps@g#S literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_kt_n.png b/Dropimage/btn_pay_kt_n.png new file mode 100644 index 0000000000000000000000000000000000000000..4e49a31b68ef08cf05065232d839490210e60a8c GIT binary patch literal 3156 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_lg_d.png b/Dropimage/btn_pay_lg_d.png new file mode 100644 index 0000000000000000000000000000000000000000..15e3804590e11483d371a217d5d352d14527bcbd GIT binary patch literal 3306 zcmdT{dpwhEAD<2@JSc^zw`QH>X(y-I7}Yk%=2;GziOe<(+q8|jbEt?X7K+G2wUAOo zigMWKK$vtOT4FjN%Hct$N7Oq#9o|3Q-hbZrpZETJ?(26QzTfZfcm1y4=W}0o64}LG zL(M=91OjO|IuKlywoLisUx5@TYv8DfG&p%F+l0%ZzAqOeE{ ztSJWa^?@qA@fZPESAyMFU&;{<8YB>eVG#(SPzV>A!nwRa1PX(}Adn^q6BC#c0pkN4 z0WA{7;jjIsKw$FeJXV;1#pOWe6lwn4Z~+dgjP&m{IGf24eB&~HaM3^I&Xof@OzD}xOQMJR(o%pLB(9QL;Q-sYZaZU zgyRkn)o~S~&ZCxpoOfqt`Ug%xlRhmv>0aAm09)PWAG5o2)04}aQ}))4*+}nHp;l>T z_?8`CP*Njb(RdE7Sc3zT7d(M~3ZJ+pvVwma5@2heWf&|4%BnxKG}<3CbUzpcFSRXYX z7UgcJKcud6!=QbCE8OO|WF_sw{wlKhfdS_A#MRXXGIg>!)HgQYz6;-~azQ=~mTUwb z85tBA7WXeE_qoSGLH!H2_$r&PW{dBa(RcG><$n+OFSIEp-QhMLq*5tEC`8ZJ)YpsO ze4J%iuKM)(M)xQqJlq@uOfuSoD=j;ky;sNIc)GttZJBu@W2Yo`7K`BzZs*N>*mKun zQa8R~ir9H?3UVV#>f0V_kx^M`e%EqxP_#hZ+oQ4qn0($S>TfS}KC!1C7p(@_5#yzo zGD(w)C;gn!1}R`LWcxrmlc;J;yF;`VGstimG|`;VYuy zsHA2^;V(d5>Ar5bleXA)pN&T4>PGKWLvGCcLu8}n3(tAnEHY)1Gsj!jEn}BdOhLYvQ zq|`nJzrIj>&?Wug#BYf_ze21msYzA)Znnc^uYu0jMr-!Hebp)Ndm_v4Kicq0#~ux>u`!V5#?v) zUsUMYifK*1OeHyn&c6X1FE~f^`B>Gc@2q!wpqHq%c{FlnaT;tUW~nK9w7{sW!A)3l zNi^>@AW_-gOMRRxs=`=uqo5M)4ls{f>v7 z)ZHFB-+6n3ecEbf-QDTwz30U*-VArJj!_TXKOYTvCEF>g8(R3c?wd6bV00@(47csR zUrX21Ot)@g4)JAjx!Q7@F@(yK^1C0WGmPzhqT-#Jy%}3GrK2bd%Z`U$RiCem)4Ikh zH(NUc)7xCMZM!}m!$C?&-Q?fnWNr$%%T;T)-!H{Ed@6Y?q9l~wx;=CAVp8X1iI3}4 zbKOuv;w^2?Z|pFn%;Y!6t9YkNm|KyQ|?^iuyURt|7P6L!&IwB0XeMf3ImTs zNpSB?Tsf*jQhd+gYQ(gcXuY=g03E1?<==_Z#oZ+8NpHVsO6z#!SseTXLKkiDirROa z>f1RfPfj2FWqr9CE(E+q&)FsT{8Y`c*epRn_YHA>rN}0Hp(AB@k}{kzqm2yRaSn*_ z$f?X- zoqMo8hp4j9_!`fYvrTO#@~#Gxz-7sD?rDXc^bqwaYn|I4Lse%n7MXc6N+$l|=oxpX z^Vz9^3f^u5AUt2NDO!QPKz3dh(Kwab)#Nje0TZX~>i{{vfxFaB z-+SI?=bYC!{PtzcsPX-wh}v5vM}t=fonF#P_wY0Bv8G~9E@?|x9r57C*!xS{JA~ne zBPZ2ZfO+Jhfe3Btrh`;x)e_yHQ?dfB!q#BT+K0uu7e?APkjpE!x*Clepwn2r(wjAo zw*HSukNq0XW@}nmc7OuA{tBSX17P;sSWgb|zTK;lmv}|vRaQ7qZP$6V#&r1IjA#pBj_$%Ms@K1pa?X%* zETql2t2w<-v(7f>hBy~p`jx>(X1zSwp?}PfYbYOyV=tLlv}ePcid^nU!0KRjbq^R& zZ{mo8KYNmbP|z9M(7Ku67WUg@75&MbudmzlulG#(0eOz|{y)DL>EHoHov%k0)O+TBLDyZ literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_lg_f.png b/Dropimage/btn_pay_lg_f.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5e8f78a0b715951103f7f161ccbf4252163b2b GIT binary patch literal 4507 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 MOfbd;My?nB1K87!0{{R3 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_mobilecoupon_d.png b/Dropimage/btn_pay_mobilecoupon_d.png new file mode 100644 index 0000000000000000000000000000000000000000..763f1b874c31659ca2c05f7c72642d643a9c841f GIT binary patch literal 4070 zcmb_fc~p{HyQj&r@>rhC(n=yz!{JpE5u8IzG&BXo)HD)OR6qd*JPxPn=9H;LoiejD zEi;F5*3>$kaymt5nrUVZWDa0XnS%CVUv<7eZg<_a?tRyK_p^uJ@Ao|W+0VPye&Y|i z>{nW=z7_-mDPbJ#-Q~7O{=QkGAa514Ce-C-D;w>}#xahuIV2_pWJhKkrGPOsQUJxB zLL&3Rnkbea&!Lv8+?=!K&4wj#%t;! zU@F-PLWE(Bu%ReQAk{IFNx?H=xh?#fX>?WUBRBh@@G;**;ED{yrf7v$_Qs$LFAGCdkeJCAF_1Tw=~HU25?EC zfU%*`(w4phvDp6^N~8Tiv)JyGf8zabg;{uBC6p3O|NNffZ z&tQan&*H&A2AjbOWQ2lIsHLo#gLR2iI+?*??fJ^VVv!g+i%p{YQ!w^c5V?vWl}bjU z;4nDC%oqhn!S)&(qY?Ye<|0#E=9B83( z&-N51HG)ERU@~anuiHjae;$k7PxZcW$v=-}-%q)KJQ!f!XeAjD}yxTkRu$-fs}Ic)Yh z8fw#zd}NziTJI$Cf!fScA2$q-+B6iv&CK3YEO)Smuj2+qeSLio$e(p{Hq1V48=elC z7YyY^&1CdrI-1BQN?%xL7n37odVGfN&_ZXTg=@@4HH8yFF>_l!S7#LsF6h#eDvfTF z;d8pc3eA!8v)KkE}wtCWG?RokA5syk#kB^5&aK zQTsajVg6b9{|EdpwEH#{zkUKB%+0r0#V$s%x!lgz@mTHi!qe;295gg6GaGBPiu~$# zU~jbvL(E2HgTA$qu<8hLmk$|CyL}oWmPqJ8zt>-}vd_kxt-R5x{wIkpxYOIDQt8wO z<(o=no!#9Qi|gR5xoDnX4Wv~xj~hx6gAZ0f;O}-Cw?HZ#)LRrnw47fHpvc_&Yp`9QDYwUe zATJP#eD%?^nQ&>~=fS4)oc5}fhE7bi!*XP>T=em z{XO(Zh2v&Vm>JEU5w%=8hc9W~y72I9j0fKb*U&}`uf15Sl%J%IuW}r%|J2Rp)rMBl zULKr!{ED!Dq@ZvF$jlB(uzRXf7bm(vhKb<)eL=k6=oTQ9s25Z0D_ zctl;B5kS9|u$|+_%1y1veQ1VrSuSnlEXw9W<`0H@99CVH;PoXkrRxHbn)W_%@I};c z*$5N|dp&KrTIqLPWGP}p)_+|eC{anGwhT-!tQT*q5L2S#4WQrA~;ESTG( zn(nf_KdKK+C@&(J8rQ{TUA;eM*NP%HWM>K;rnd(P9Bxf|C3-PcYp?B6yp%Uz*840S zKBVR)yl%kTeMVrVI=s2Zvv=Kf|Fk1jB>!H|{9m6eltwZdu-#Qz~>k1xn2h@%>PkJVAdt70nb_Pzq$-jPK|zT z4R^vb3k!=W!I;A3%IbSnjX?+ovB6KL zc{obzcZTEpdG?I0z6#0Brnr!p;qN{TI2H68u?_@xm`r*Z=HJeKY1^K2stoE^b)8-c zLyq-FhPB(KzB5({%FGqD3rf};+O0a#-Qe$rYMqZ)oro%JAL;^LbwZtYYTf-b%VP_} zJ`3`1atP((k_wV#hD$(;hZV(=`|+LQI&U?!5DmxZ6r=}c^j?H^o^A_Fb3dtDxY;OP z*R>-ifgZVK?D$6}d!k>b)Ok!aY&q%Vgw{mA_1q0ryKpz5GOaG5vQA^9@9~*8B=r!n z^VQL*=_&<<6S~ zVzPCGZh>Q=nDM4^Lc+fiK3c3ZS)QaG6l95Uh~H{4l<2-nyen*X&ZJk`V6ut=P~~RkNqy z)y+Wltk!Kgw$>SkO3%ewWH&>!%#yszZR5_~RXvbHf~i@8qVUO`4pUtPrHzy! zaXRvO;TKOA2BIh{tGcF(tCB9E#Q}%r6>Tp%bwYN=SQ!DQ6g=?Voz^kPThE>ZGVi5S z+Qt>ekH@>&CaES%Qc z;RL@}Gt!B**KlCWo0nzO^@>h$pW^hakD$l%hL6oXb>c_MhG;nlu~)tM1JgrqXVxum z^uBlOHZo{PXN~H!-Vc$#++{rUB8QBaN1J-E>G$thc9xRb2WiZDGo1|>r%{&@)o7+$ zdEUT<&&?$Uu^r=*Anp#HYafb;kJg)|q4d#y=ZRlD4(X;{a z9^FHbI1e5UMOg+F<9X=jdQ&ev3`ke=$Q#Ko%;}yEgU)*i{>r*!L3DU)?v^X@uFz?c zUin~JVeMLzir~#e_vlJ}$IM!kiaZVl+jS4_xSk6Mz%>ll1IKH8Zq&9lYDk^B_wCw; z9X$N0yohi*%-F(P@4#fx{Ragl!S&r2yJv^)M$1k_)mbzHtUI)6E1SWwC+1X1WZHnw zrs#o(&%1Jz7RT2$1PVov<`{zGjXwNYEsP18;|Fs(D&lwT@9vxp>9Y}Mr>ke*5~$9U zjqiEkNEY^M=`46R>mZ(^Vf>ZWd<26q!ER#$_=ttIHCfj-PZhV*6DF%FcbrHT3hwE4 z?XSu!N@fulavoOycEwnjM^iM>ddNztQ~lRFzYO$d7T4QpUzR;qH`jnr3Hfne4yj^qm&^)mi$)4wQR$t}T z9zbo3dvLn_ftPRu9cNlIJd!q7gy-Pn*aYY(CRp?ZYUssI{X zW$SC}`=3VMUz+^K{2cJ}m2V3FcYyAt*_0NLUL$^T@l~uz`m;)XBXbkqm_0ljwC@(= znKKP4rvzH#R$rPPJzBQ>@w+U#!`t5mhS}8_b)PNyMV+_gw=2`j2i|{KK5anPzP_l# zpEZk!i15t?Vm5L*dwX@(qQ+aBA19r(aegbI)h!4z-RB~pHc31OZJ!m>O^oxEvF&Pg znX@{1vee)eE8Z*T$yyf&L{^TX)p=0>AECYR3cCjzqcjUys E0J=^yEdT%j literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_mobilecoupon_f.png b/Dropimage/btn_pay_mobilecoupon_f.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdd23c556d08a491891fd1fa9edf9797124045a GIT binary patch literal 5059 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 y;t+}5cNpp5_3vx;C+AV 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�Rhr}#Sjy?+q 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_samsung_n.png b/Dropimage/btn_pay_samsung_n.png new file mode 100644 index 0000000000000000000000000000000000000000..ac9b195287bf068633eac5fe8cb84517a1b5a88d GIT binary patch literal 4652 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_samsunglg_n.png b/Dropimage/btn_pay_samsunglg_n.png new file mode 100644 index 0000000000000000000000000000000000000000..b4459cc7a7e2b8d18d3399198dc9cb5fc793e00b GIT binary patch literal 15877 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_shinhan_n.png b/Dropimage/btn_pay_shinhan_n.png new file mode 100644 index 0000000000000000000000000000000000000000..469aa916be10d3ee370ab114c835a4fd579da62e GIT binary patch literal 8379 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 F{};70wo3p2 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_sk_d.png b/Dropimage/btn_pay_sk_d.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b9a6fb43e698057883c8a34e668041a522657d GIT binary patch literal 3159 zcmcImc{r478y_W9R7du83@O`;8O)ez>_f!ZMV4VQFEf~V$C$xz`byiWM3xRmQlUB8 zWXn)ZR2*3o9gTHF)RiSdr&Aox=(K!)e7?WF@4c?~xu5%a?%(fTp8H)+dAjeB+oZM$ z0)fc6I1{|ZvP^sr%1DVvDZO`UVxh`*3}E|!5$psq3xL>Bzyko(g-(tHya6(W8`}cl zA&~X@G~WPr0MQK>4$|S|RU3FBohe2`Ab6WZCOJGBU_%c8ku-)CZ024)3`(O|!Tc?V zrbMO#K&3e+u>hYWci-@&=x{6rW@8P-C*s5ebbw8UCemXVakxY)*k@jxc)q%ffI&Z- zu%oSD{{$64^n^NqEC6Z&N1KEr%~4Pc7LG)lVo~PCP?RYWgD}M)kY*;PNSrAeXNHA- zxnN>%EJ_5`#ZWh5T}IczJKIMRPopfkVGGUC3JNn9{QBAJOm!cA9G`f5ld z{&!P4{hM_h+Z*^E?|&qY^W`!Dgf|cea#-QwgNx8zb;ZOvumCa}Wch+%%-1Sux=m3NL6-)V!wOkXs+75K4*fRlO(c%G$6APq6 zKc|hOtsRTSntWfdl(l0)uZcy7gF&nw?!O)O*ClZWtxmtSu2}ij`~XAT@hov`AAZ>< ze!65HyAbSr6Z@wMh8Tkcl@rrLlZK;u2Qt?1%YKh1cU2qayTHoBY}q6?-Ti8QUqdw5L$u z)L+Q`^I>C1)24NfF7K0d-w{>YOmz1v_1^WaME}z zt8RW;aKXKVroenm8J3RC(u-=mc)m8)*HvZzPYpWV_S@t=^s{#f^R3L@jo2zh{-$_x zb79zaTKc4ZU521$j<;^qp1Q8BO`~R^y@bn^urGel=CRP8%x#mfZ?D6Oas@`Ra>h{I zD9M09?;|>pu?@B)@$g01l0IwS#P^;5y}?@CO!6rm%e;n$2I`?hHs{?-x|o({oQl0Z z$uz6$$#Xyuk%j?9g84g^={_m`{{BCxavQ?X`8?Hqm4*v5FYBJ1Hqk3T0027zNu&s9 zX3ZU0Bd;ArjaKfx*-t+h@cH~A9*^gH;P^4Av4YSVoXVAT+8P>(r-FR7jrcV+XD7mq zD*vVQyXytLmfdB6xrl>&^IzQb_f$voBZm6=uAMu6R+BPc72~uITB*Gkb^o0BordWj z9CS0IFR%D_2=mM$)30<3ox_3#Ue%XeZ|=kG=Se|lDz0kzU1+L~7B1&1()oOtQMB+> z(?E{W?=6hE_+>hnf9;v)M^84klQcIC3Cx^7`eyM+?@D?llkfh#^Mn>ArYy7`J|y_L zM3>U?!G+l*tdgsZeJ)LKOT~K<48f1 zPcN?Tbo(Rctz*@jHv)jy!O7%nIi69U6ga{b<1-7MBxRc3$x5~+YHV`sW;0MGS<>^4 zpCg>Pfobonip;EWttH*88Y!&AEGAGT$+OOkTbG5W!Y6Q z|NSbN4-h25NqA`8V7@_(d)s7S{oW!&PMJr+O-$;ew-g_#(yYwT`$>u+cUU}S)!JwC z2PQ{E9q;!lI4J0bd2xANohY?^fW|#IAw+Ffn|EsKX}y@VK=-XyNEd8A z<1t-QsdG%3#7jk$gL1bD=$yALwjw3T*%ngL$mB2G*N>(uBa$Lt@b^N;N;eL-^O{PY z&@=sJOH+E5bY_m^Zn3T|gWo}f*2%u=HcB}dHH<@V)d5qfb0X=Vx5!&cN=!X>@t+8g zu@fnET_}l9`56CJzLu(+{ET}1$!odZKB2|L#`w+Q%lqPU_1)z%?oSq_`5E8Cy@pYS z@?W)c^{>x+KZrwc$|^~b5XA(i`s z7t4r9|1uI$`-X7?AE{ed`OvW$KAh4uknE~giYm_`S8sc<2%D_Di7Kj4ZeO|x2W#Qr z(>H&md9@x0Y|d!3_VMBu`#T87W`dQ5S9XqtTuCuio$ltjK9S3G^q~G6fLaY>5Sp^8Yq*iOdZEGL8o<8%bBdo_gHV#v>K6iSgi=0+C145^`RVwR#r^ZVJxB zedxEOs>&iU(3y?Sr_mqedxQF`s@d_N<8UX+LFALM3tqFquK=FC^v5qd?k`G(hB}OBH7)+tLZt~z0py$*ZDGT+>dtIAWquGRf43FFAk@O|q6%O723YPMYdQ3;J$P`xI zO4qV7DV|{3?3EfT)f~=ls;26s?5LF7=lnEA)8rcGb~booMpyhrsJdRjx%AZdNZZ3? z$MK&YY3cCJ7@x{hGs=~07AQs!8KC~r-zgx>8PvcOhR6!64)LOfs9zKd@={|AFLxDVeDU3%T!4G7(BO} zeJ}!7fb!m^v4OO_gR4DWe{yPbAuzO#tNoix)|qx`58_~XXH%?(+)oV)KU}8A?#yn#tc<*LtX7WQ5#>kuWzb#TzqcU0+Ubka44lX!JPz$;BEm*k>W*)JB8p*u_6VE6f5q<-7VNh z&w0;#?iu4d_t(uB$$s|ptU32uYp*p%vS-3omF4kqsBw^xknk1W$f!S#6_4+EER4rb zjHk!cj{}vftd6S&)WX%n)ER;#35J?M01Eb|mJoG_DcH;D2SgMJ3H7u zs6D6Y9~(|jd&fsK5|XI6r=zL4EyNXI2C=ku5Mw%QZf62mgT zAsXJwn&#fN=0ad5aUej{Q}~g<9^z^W@U*vca1r(tWBLcL@ZJBlp)@k25hQD_2)XVJ@%TP(_e>b(a|J&NdRUPtgfB(P4E}CAB5H59y3)Ico{Bh$fnEx#0C@k#^F?EGH zYeJ!R|H`7O71R~#Vg+>sNK608+G_xdwzUHo>f!S89~dPiVFd>lS5pUbh=Pn5(<2L~ zwKZ6nmq$vHUr3r)Q2LcL509*n5WkF!tbl+FzpR{`l#n3*zpye;b2od4gX_Pr;D2NJ z{wwxRIoLZst}Fv_wswbr<(#4RfPaK7Z2jMT;r_3De__G@-4~w!isgEAhU?Gf{*TT6 z*R972`g8er={`>WE`Er^W5qi^mbT`B(__alK39;D)byO)%fR*pP1HS10XOG;ToTf} z=mUu?u=?@?BbXv0UaLJs*G(dP%e0Ii%Ic zNsT!P8qlYmD}`X+5f;Bf%V_6{rj5Q`sP9X=pe%ThEUd^nCa(_MP4}GggXvxfhwTfX zU0u_!$XdDiUUSqx@h#KoE$;iW7)_LR7CE{ept#4q}HYS?e%AR z_cqMA$Z2=;)6+V0Kk0~G0pvN^>4UA6JH=51kZsIiUJ9l|T;IY8J^1F%T(9Iyr~3d_ z>s&Uqd*M2x1uK(aj%bD{euZ^F=w8f{3FI3lM(*i()3ew%znjV}r*hbn7QNT9k(pA-k8bjr%3T)di5i1a$ z7IyNk0W;Z`!Cc7jtlSfw5>bPYve;aIyYT7MstJ?1@O?2mO=K-Ec9oE?ADSu7aPIwe z#H^mz8^a8t+45EG@Auv8Jj~_<-fRM9>`l()d8Y3J?b+&~ve*tU^f%3K(B=Y6BOzJI z=SmRae zBN}#!pcTk@{td?H?+Y+Yo2RAJoRJmLwoUnfUqX@9bySU^?{Su-cGWduZZc$_U}_-u zE(_C<8s+{f!&k@ShOAG)`J!hb1CPtLvIdvp{9@y}Cf;;1<+bNZFR2fD%D1}#H+0AK zAWfFR$oD^lT7%l~=2$|L`E~RN{MMYHSM47FMDej1Yg@$2%8toH@6_AHtEvbl_pP@h zTNNpdCQYo>jG=9g`L`ttqsmkvLw2?F8 zSAo=y3hz;cbj$5c+(4w$vI4|)`P{@>0RidNjf{#xIpOy~iYI2LXREi3^{@%}@4SUL zgRnz!ty2F3w96(HY6L3h%jgA+Nt0s!S-Ky;jl9)&wCgiO8R>fpn-Qm%Eq~(FB<5%| z^fRdL%m5xmif5vsQ>mdE3_NB^vH1q~V3pxlM*{=!DiKi5fOKf$sT*8yiNHN5Q<(vB z>MrFWd5U!nP_vJY(A6{uGPFEzmv?N&a9TkA`Ofvs{WZ1qG3}qnAXA^F2EmtNlQfO3 z$nOlhTf;)J5((D8Lc;?)oYe4obnmU_K3q@lc=a)M_M7B)f}Jjv13A$zngjL{uz#{b?~?%{~A^x zRg^~Lk$*SUU%mBD%SXV!Egu2@wEP2jY`?!OA0ss_FclMr4)rSl43sOW^#NBG79+gz z9S=Jg+#B!Sr`U3#z<-ls?R(RJ_35mN&5!S}O(qyHX4KIU)96T$0v zsb~DjVIhO~fHNjyQbN5+&B~I?K#&Jz?K~C0>Y;xaDFj3BLQ~X%LqeXkukh_T@bx2` zq31+K_WDrg{yIP;6!gzGNWX#hFYWBRQg77SI!7XvGRrf)Kp?DU(@ z=8v8e#ld)vP3Dj{Vc+2ExqdB7&sXR;%9cT43Oa1_3g4MH(V-+U!l8QEA1z;7c*eA% z0mAy#bJI6+hAcn(EH!nOh`7etu`30}GLWTY{^DMnp56Ify3rpwf@1VELNMqJU9;Nj z)kU%@1*lEcOZ_d3*c_ywy^t`r{VK{ue>N~z1slo253TJa#j@03ih+xs_tmY7sFDnN zqn>C2_;#eM&DG`fcPPL2_OTj3U-!vIYBfsxGalrhuJ22E8c(T@vKCSJ0!V6}wS91S zgP+iIL?Drb-boj%+7kq{7e!=7nIuy12dxZYwAyo`(TEb^utvUoQgn7jvG6?pp>r6^ zSj?3fFIlN>`$Ygbod$d)LP3X-pj^DPASOWmDY!lSrb6}$4Ysf9jsD00OcxKT{ga5K z)_?YkT`VknfVJ3w#B-(0NlP}5;?=Hw?{CF}=o7i0AQ^kXY~%@ z_m}4Iz{n1BNA|`0T};7QD=14}UsPN^>`ye8A(CikWpIclnIV#N%ilc2&FF?2VXq;cG_7#;0@f!x^D zVIuDm)MPp2?6New-kCs8RBS%Et@H$%!|$)(Na_v?FOLu*&aa5N1BVKhPE$g#=MKHE zln*Nc0+Na7M|d?PyEms}(MF|`o^T!A4Zpw*+MRsByb4HUGV@iMWs%QF@;l*U61b)+ zYwdXU%Dl=AJj@F>+nlLxHAN{HW9jR<-2Ya}HK5RujS3}`uW!xT_RuTPAFhfJ%wQ&| zk$4(~AVc=2GdPBZg_K5tTR}wOSyhr2De_NSKCR-nw5|NAZ$4~Nj9~~)nl#s6Ro>m; zmU#LiaPp~yVl!^X`VeOx?@QyoWaUdK^l0RM+~H2X3`nB=&9kp0H^lRTj2=BS-X~kJtwhL^rEVJ&OfBg#vxS%oDaOu+4sRY|CDaj0V1bf zz@7Q6ge7`R9Tag?A2Ooi9ts85=$KEYEn>09&H?l}9I#qs$~Lljj(@#!Nob z>*%fqux8Ak4m9r7&=q7g;*=1LtW=ZlF@s-qLAK1; z>!{z#Nq-@}Giu0S)j&38m?1tX`f(VgP&;nZmZanI;4?sU1X;7xcax<#FA=jvGQ{J6 zob_%AuDz7VP-}y~T&{yIK*N zo9fw1*2Ustykndv2L%dy$8({W{*x-K{c4Xa?jLZNtsPjnz zwQMt%t*!26SXMMD=YL$}QD;9oQckoU)$WTuWZ9)27Ti$w=@wSMgus-rjPdcVep{>_ zHXk3)%Sgzj9je~LajsZgh^^!qyyum9jz4Bl-j?xRw&?><_Z1=LGfi7K?D6=|GP#_) zuc&!8;S$Ok_YI(GNc~|z`NBcVksxl=agm?NCgQR@)H}tYJ>w5jluT6L0*O$8Gm8?%b!K7@ z`Qk#!^WHG0v5D)Rd3gD#+|Uf56<=VlUnv|dOLLP^y?417gYjr=c&VYkL4{aKJL$9c z4do&u%ciU)ZMBU}UNw-3kw8kGU zjqXu)Wf+q8t|Pri1hU(!@=#*sk9$gdUn5uEAuk1pxrw-5NqEjv240UyxtmmiznG&f zA&5{LZO#e|0W{7|`iz~M@{XMgU**rk>NOlcZ9cPA>`2#gJc%qHU`Q`i5#H5>=V(gO z^M5Ng?+~r!<7!;V@qyWVT)@UVR3!u6FHJdD2aVCZKbH)wt$l@+xEBL$-oIo68S09_ zUUtYZygu5H!*aN$t$jy`rHyo_PLc9GJo|e_l$O_Xz2O~YTpW4BD9*h=6#?zQv$`uo z?b~hjO)n2o@C048Vc-`B0z?2gNXO*{E*+j-Ko~z?Oz6BA=5y>GsF-!~+tAgbtQl2JSo3FgrD)$5dJ`Pxsx+dUm~N9jI`A))s$TFwn+04 ze}V0exh#65yUhyJ5ctW9MR3vk>Eld-mE81p6C3=%ldqm`C!8eSjJUWnrpsE{f-0%s zQv?F9QEunxYdaHHdRxi)8^@+fdb+}|-nnsV4I!U<^)@~DhYKrzLQY|=vSS^tv5DOL z6I=BJ+{pZ}afSM=^}xpDmUDaId!(44WlRPYhnsuDxw8ILFT}J#rHH6EEM-0nnXzwu&g>8MdMXLZ7IwkOis79FZ!?rGwP-V`^rh3oLp3l7{9~UvQ_X2@VJUWzD zKMHw4Xitf)CVs%kb+f*nxlh1MF>-H)d!Gh@>fMC9M95I<8+B?8IOhe<;ewiGvp@Tc{nCcqiC zWw3yI9BY40smx`&Br{8&<>cw+s-?}SUT);7eSTd3^v;v%YHxb`^3AP- zd7{49fM1p8I3F5j@IB%%P_CY(E+Ye&YHH%8VnNTP!K*`)IAmgT;pC@~}%ODuDWW zwOPk@JoA&xb?qnZ=xw3MXKxnA~FXAPxZNEs^58`0uh?IUH?r)m!pJ`d@l1S5ODK$R{$g>t%ORU6 zXY)Bhob;H=Kb%}RcjQCTe$<4W*N0$NI!Q^2+(NQio+jC7KIInB>yO5IQ5+8>vsc?< z8?anW4nER~2nT8E9}GW#qSW}d&)p<|Y)J%xKk}ijWy79|+z>p}6&&^qR&H^sP^KMt>E$3fr@l$n)}7>$g6Jgs zrTc*m38#0;hrV(Dck~kEu5PvJMa4Lu{G5YKeqi)`U<$jH@%c1suNN-Es0&{Uc~tk- z4@|8l6Vm*HLwA=qK31xDK~!gqjvAwW5`rBWRxtrJomwe!#-3x}L~EPSt)^9=Zr?qn zb=nJOB+F% zyd*2H=nzc+DMs#}dQMS0dnN-SzGW5fInfd&Y*tS+xyc{8TPZ>d56kLHO2+Hb2Z8eR z9w_Xz*hHS|tqfbFJ@YSG_r(ar;-lpX8Um{m1dWp)2`*(dGih_eeb;cr)J6D?2>XvsI}G@_unw3^xYLqi!|?Yt)F zkjQO_3;FFmw;KnIGIu1fF@&ABV3^2kA}1#*wMo9aKrEQ^dreQc_5q19p$`9zW{lwj z+Z^TMsy>?42bCvF-3ESbC_m;kZXrWlFdK!irhEN{P=UkwlG2LtFv>>kWLznciy=JG zOM%YuBglx{=b+i=jz<2^4}vFas(@qIp_>k2+7l2dL9CvdA;Sto+XH=%g4FL~jBqJM zs=M?gjjLLq|L6xBFXYsakR%dry~H~D3xzz>yY}%eZuOT>VG5|MBFr8k8d<^wA*K?W zs+SdrbPP%guEh&vA|C{>{BECX@l_r+C_T1 zg4c@IATY~3(cd`=RK0EiFVo6fjts@3;^Vw!`-*CtzeF<$g;0#lI^>cMb-OJ$6{L4w4D0&!uIJ)EdES1ix~V~een&l0mFB} zw(kMLtAiMTn!hQZoM|^6t^|#JE^+#>Aj7GnDb;ikS9{_@t|XxB{rlWI`aQ z6e`!wXF@o**Y)D5IAut9a5@sn~ZxBDZ3ISy*Fv35^#ECF~^ZTUqMAZ zdC%UAZ&>!_xrCz9t+QAJ3v0hsgeFgc$%o8DJxlV$qVW7HmO-)4Z#nj=RY6pG3m>13 zRLAep$X&x{06T=iy4t?)=T9#{)lFvM6ROmCnM7OEVcmA3%KTg7$qU8nL!4Fp^|K=< z-Q&!dM$Whxsc}S34lhYo3EvF7C6#v@ABjgPt_RiMvSvUg_J#>X19oe)>_=%K@2%s= zsV~O2Z!qSp2{4ME#VnTfKkLmv(c0ERqL%HTraGc_DZ&@cOUfXCH3&`wXT{%z-`zNl zpm2;v2_mJgPRjYn$VwN_T_&$H=!2Tai&YK95bXk}!b;_v<@{{!T4AZJ?)AAkVY0w*(D0UMepF+>EW0cK#=b!dYM5j~ z4$Q5QeR2M7gHYB+Zb{4ztpi3-h2uCwPff5 z#5wnMu4^UhD&ZJbufLm7%`KMvN%c~{cL?!Fib#- zP5*PXIfR^u6^=SM7Gs5ljsb3>lsFI#R|kv5h(=FR#2NoAE&tFC4AMKtNqsy{UM6`} zBOGJ_+LM^dqX#@ke>?-r`?ejPEBD&Yt2k3qiP!9WT_?DdtzNQFp>iUKvx=K!ve?8k zChqBVAy%dNF$WT-D}&kiw}-Q#V%3Y668$M{;_s4vIbO@!0D~C5>yiFCe|MBBS$m{g z()?N!%+g}O-ZiiTt(1Sssh7*oBH}Yit2V?>j-#4frM;FR5m|iJMOV2%TvC<&i8`u~ z@+UG~*Nqa)&XR3#t3$p4Rw`I`e^m`Gc!?{?_N30^XEfF0$v0EH^uh=^#|R21PA*Fq zIkiMX`Q8}9DNko56~8FW&q(W+8g-)Njs)p#UHx3Bz|786CntO8WmcEN$H>|lIiN@<4?v}gQq%6K=c35VHG9)flFPLfUfRnm>k#*4C=XqzytvdgAYk#1X z(>(6*(S-&bT#Jy%$S2y^#UoDJGoI;CMS4?z$C~j#DEd^{uXo-!x@WqmQ2WX4M{~~` z=7(Sv{Gb;Ss4qz8WYo=Ecbm2euWo)Ap?XV8M#y?pe7SIvWC=KC21Zh%*9_=6yHm?pruJ~jE zh7LmCc1R@?O@VX=zp-z_Ak?Gp`#t|TDll|=KYKf?ev}u&_blK;2J*z1I zv2asYYR4VPmOb2G=^&X~V*jRZp3V9hfPadzXihG3Jwu)QD7euuJEnhr<7WK9w(2dM zQp!hEtV~yvA}?J>UWRUvGojXxQ)s zA)>F?dj0}vQ_zgr>b;&}*%r)SJK}MLV)#@1DTxr1cPTAXem610PJ;s+iEa3nA@yQD zaFCHND_Su2vLm{z!H$LbB0r&(7hl$tRSzw*#R$$1J_iN?w)O#HROnE~b+8AwQs5gE zR6$ipKDvd?A%5gmVUVR+upZ26}w+k31OzH{rKxBUgJd3mIlu>dn#A%G~$!yNbkmh zO#8Kv`A%bULCzt`OS!NOBUNU&& zJ26_avhj{SdoNY}{9|EAvBq|TDMwAKwM`W`F*gwS%uP;GT22yi>?>R0p^d!f%>qpu z$t!oEGPb(4b?_#ii~$O9)AZN-_zwvcOJuWc9xoT!udyzOImA6$%{SI4&ORqB^5L8S zj_$R%m*#Ndeb=52Pf^TRIMu`W_s*Ya3GtfXFMI$Pqx=uO>2GD~KcuXGD^vd=W&K<9 z`VT4VZ_(>NrL6x8>i?>e{c#sj)G;?}ua9C(KIz1w-LQm;1_d=lT-5=7O26ng$)=SwDw1t*JRin8*x|hi9_?lZENY^I0@;~h~oG~~U zzUOKl4+Pf)ClFw8cZLukxLdGE2yT<$ z!7lm!Pu~CP{_oYTx>Gf?`*f|f_CBX~pRVdPF)!5=2ykg|QBY6_loaJO?_>4-cliO< z{Vx{F51RWx4SB8)(Q>hdc$>R}QKYS0EWiLICvzLHCfMA{*KH6ij)H>DW~Z$W(N|Rw zvvhIdHUEv_^>K2&XQQBqOZm8(TRMOt01L2>si2I1$3pjxx<^UfjM`sT)9|@*Ebj9wEf1d_20seqM93+_j zRg}K!OMtA4I~X9yE5u_7dcqG77UcyA@rm+3;Rf*YfrNp4!a$G!4+CE?Qb8xb?XVdP+JCA1Pj5~FX zxKz;z>IO?furMEzxG~=vTg181+K}G;8VvqMrSdI~ggr)%jm+jYrho7gQIXrVLtK9g zBNOiHd^9xkDCg}!Qy8qh$@}PT`Kr9Y>D{44Oz7e9)ya+aJWQ_|W*WHWyOr&K*s1aY z=Vo?t^6RIlJxeFvCUHkKKvEa2r#Y5|LOaOMtFAkdK>=CNCLt`gR2?h-m9OY&~5* zt(nrAZ7I~;kSv)vGKzV>2P!Eo^qaR6F3F;I1Th<~W$63+x8r^qsv$q|bz^U8uXQRp zR{X`K%!;4;$tx(&NpRssOJNH`%ZoKOS0$Smp#gk5(+$gZr5^tql&X&uVm9yV@evBY zoZ3x#{H43!bpNgiZ&r%!U2(uF;P%^Y{bU%A;?`?O`rvHBFy9e2FLBHJdhMHfV>Pv{ za7fi_1S?4g3u%us(|v$u$T9gS{TVQTF>=Uc#ruF@O?qHL`e*nT@;Bjcot+Dtr$mERJ!lxD1_tu{^&|)qcVE1pgqO7VAM@eNfwbKA2Y(-?To^tBDpUIoaQ+u$Zj%Ph6 zG-rt3EP@|@K-0RKzoiawL$s3pXi-IxH~=g;obDl1;Pc+=2Ht4E%=jgk^ce)@;t}%l z2?|F~`68+~$D=hVYANsHTSwxbdt0Oo&wEi3T})Rl^GE1>DrQ|4;%ZNwpAuPVQ6rOE z;ZwM%A6I^fLn2vvo;tE(${j^u9(;Q)4J>?62f-=$JeBwsDjp`w- zDf2(#lIMGJI&ytAhYbpefTY!uk!ZwJIhxROATQQ~!lu;6A3UvwH|B0Vo1-_G=LegH ztfC{Ih3%*&NXJ*gL^U8YCQ%efG2Jd4{a@RvBUvqxtnaJ7;&fH+q9so9LH8S^*+@EU zv^9q1h5J(2IGa}=(-4^g+m|*64=I3hP}}Dz#0&T}s-^qGZC$4ViVe-o%Z2V&eelb^ zLa+Jmni=TIgQIuibd~PbgHhb9dfyzjBcG7kVI0{hJ}{#fmdQfte_y-p-xONP>wqqh zh$lbK9o^u^NHa;HWv@1SkQW%gA{ivVzhCeuR8`9Pc(~Em9 z%xlcJD+OX=xZPSCe7SAE?fedC7|&vF2@CaD2aQOFq|o@KXF8+1JO@Q{0VzEFkI*vC zd6!o?47pY}42rA2ZW;7y9`8-OSn4rUXAf0D5(4mevhkR&xG6E#{12-pj!aA$4aJV% zcheQfab+iCO(qNrD+tjB4z`{o-?;_vwVE1%9fEl{9R#dc8eY;a*6BCUcWQdgY)HSy z){aEQ&!Ef9c_0#4OJ%#Eg(_ZaR`Y>*@k_H;mZ#Yb|K=!u{fWjA^?{&Ekzi1iZ?bn- zMAd6{OsksMYb&U52}W~M_zIEKWf43f_y?b*31V>vp8V5Mk;#@3HnfFxcQxIbbS`ww z6@I%ou-xNivTeKBO4<3DbjsxWN+oaqXhdPqnx;nm9`53bm|F3ac4AcZQs|;tx)x>_ zVaH3_*0Uhp&m5f1JQN%6DC<*c&B`M37~w8Zt{tBA?0O{w7dp9b{*H+_ngJS>DJf?=@DsReO45!l#l$n*|VdF@keFbO&%Ucv1%5Ncq4snDmB*Y`{r& zv;Nqp=4ZuI*}0;1MM1TWyhhw_6Gmoz^+_5l>)b(V``rsfore*Gw7r}_aXP6Th(_a$ zG=!Cqsl@>hylW(HIEfYBs$k$uO+Z@4OkhHdFFii=Ay0cT)Dn?vCbg+-=e62|VWo^> z1qd;kR7HvrBN7iEC!&TwWc;?%XQV$FVFdqb80rl7!3c;snK$Jzj30}tvX%|oL;}9Y ze3_@8A>bpinx@9PU;?})%&;&s;M_e6z)o2C%s)_JgVQCPxzwKSD?rmI=qxHT6OZ8| z3%h$F+Ge?C)tlih#sE&a?a6HH5*gqH?mzR>PB+g`Hw#@4-ff;G|Z|=#cS-8!K`o4j%Hx zU;?sD;mWcMO>Z-LLK~1!Ox_jRgD`~X4e7t2uW91ECMzJ>GsJiBsl3^Uecz3zpX=?4 zx9u8Yd+-c9mG#Fyez!_&h~of7CPoEDWetAMR@*29mjD>4NNnzck(FA+PdY2^F=C&q z(?)|XG@DfWGBvp2p>Z5*VPoNgLZ|I>zkTg2!V9dy_{YJ9mz{?XpH@=rtJDy7bw5Nk zEx&f0eAP5qy3|ZD(TC_NRG)C^PoS!iBI|i7{&1ykPdq)D-wI<~drf?sb(^<3Yd5+Z?@BiYI%}9PdqnIEP~GM&{g^o zP`Np-hmhPFj@O50EIdLIY_iwu!?$Yl@W`#4yY*=o13)a+6^O2n<8d1G!My{c{>jCg zVUFVW_b{H%IfIgR4rzIq#mlm9IsNiAggRqFZ1IbX=n`+K)890^pKFH?6#t^0Ali{D zjm2umcZ5|ulaEfzi<5+bAC3o6@@%$m+jH9-rj~8X0@GEaswq^Xc#}dYI;FI9=dvy? z5zhG`3GW8bB{AJsR(A>mj>$T{rL<@3ad)R&zV?cLh$r5m1s1=>rQUctwAln3HAu-N zJslmub1b~DwSZ@cpywU+EqSz~@vjC%otb*VKk!q2bv`K=*taOg^D;*^4}H0Fj=}c^ zCOPTo6>{;JHtG5#Y()QX`pz6Tdyq%6J2*UX2>P{8hD-NF?lneNx7=)IM#ORWg_BHgx~O`#z7cdiuZDNyk|<` ztHPUS7qdsffO7Bbfy@G)`rU&^O>0N4k@LPQQ0Btg9V(Hqy0q*ElfQc9FAh}Cktz(x zYi`HI+H{-_5$d=f0zF@nFz4vW3B-`P3^CFHoWA1iH44}PL!M?GeN@M3Hlu^eK+ln@ zGyYuRVtk%jEO#^0_PmLYF#Pbk!>=|+`dl{z@Kh-}9MX=h!noS!Mpl*oN)XM48DI7gUB<@$(@fMlW9{ zH*&7NU>^FBL$65SDI$eV5D=EbIM37FHt9PntA77%Z^9# z*h-%!dx+>|FzPt>^F4z%`4Q@qxC}&})&<|UB|ynZ9hDD7_%2^qhwo_i7wXN6_8U}rQVN1Sh#eKIy`)B z5mJIX%4~dAeW?YnMMyV%Ja&6z_{&ue+V1Fe3-8}up zg1w`vU_Yh9xjABAhC6m*W4`8XN;RtGN5PBcPTL3v%VvLi;THbw`Sq{*noYOdg+CI5 zy4Qz-+oT!T$52!<^qcf3qf35fVH}A*-XYo^2#@LtY=2=lOc)%{YN`x?M-X2kQ*exf z?~sHVOCn2DIYeGj12_O(XBn0dX%iIVgaE!5)o7N>Oo;_*7D)YLVYK5 zyv}Rt@-L!qftl0kf!1T4>pFsMqE)fdx7=?$h%th9|c#s4}$5? ztoybSa4|%HL~^pjrSPA@OH=jsr<~OITdoiWZR%pqe@VWmJtJDk~m99uv@M;cPq5aZB z==m%B1yZsJ_g2Tf_HTz##(F$~efAa4qM3den5Bh&9-QcM8lMI(uN_aXrAC>UoL7{V z=Z)jl=}@!cFW?lK;h)o|l>t=-6c z4@+>dP~z}%719P$w-Iws5=1r=%PF@Hl$Un$wE12+*(RB~spR=IgS_o~Yai#G!o;;C z9h*({lCo0L&4`7lE5ckXkPD~?m0in99)C^JgX!{)I)4N=l#9e?GLEw7YE@FI>J^sB zGj7m|GBS6XE%U2WJD!{q8H>34_-K+UW#HWL`iCG+dj~4z7nmz_`1_v#dy^tER~_Z- zYG7XIct;KQiTiHHOsf`f{kdeb?zx&c7 zH%*sk*GOA~FlaGg`xcYDMpT9Gr#$LOIKLRhN-OKHA62yJ`*c&UheH@x=<}{#c#>1g z##TTph!$ z0xflrbb~og$iB&>Zr|9OQnCIfL*$ea2I zz{To{$!2Qu$Y#mcF&WUKQw_m!vd3BH+FvoOmbH>^Lj zXAYj3Kysclu3+nqlF<9zj`~ZS2OQXxXXX%~RBLD9d7~jgH~|0e`IM=gcHx`+iDK1{ zV#sg!B;Ig_x4q(fDbJK%A}d9y{{(k)W7uUrhmNyd8cC?W$2Af0k~J|vC6ur~IXCd+ z%XaDwL17hR$`+VN>}Lz5*`{J7(%~q0m`ZrphJQi=F~Phzhq*bU$ycI6?QWG!c|$`f^kxJZTWSm4m#xRL+EziqWBy6!!a&63r7Y1m$Xm17S*Yz! z%d+oq@=9U(Z7kBu6MbBL{*=%Sy%fp4fI4`v`g~K=(2@PBd_vL9UZ85(fc=@6{lvwBYfm> zdiw2aExlsM)%g?d!$DEOWxW&ZT;WSh%l+$wlb>kzq@<0hAv^PPehchxB2R;DKACA3 zC*rCI=GO_kD~P;_u?)##J0bME>ln9#`rdpz==or}LT=D)S3a~uIQU40)t*Lv&!`1> z*;37YfCs%K#U5FsU&GlK4c5Z5IL!;|W&;K*ECpl)grT&LFyBA7{bGuFYKxF{jU4%_5-M9em;1S%n> z%@_+{>j+x!?gvk_PZA6&DtoO2(M4B<7&jCVzDa*)Q?hG_>+e@0>5XzKI{Pw*MbJFK z9ZWOuyt&h-(@_kP;%U3ijoGNt=KAjIqtl1SEO((>YR=#;4M4o}95qf^MSZS;&3B$~ zP{$VM)y)^l9riK@Dmkr3pVJ9Xp7x%>N2Kj7(-`6=x`zeooQR`vmr-~EL^vz!I9Est zcsi?SV)GO15o>yQRi8>;Yo_d%o$``S>nvI}c_LQ8x+}Twzz%%@IiPKgtQZGLkj+W} znL2}UK_sSuLi2)i=+KSfq!v|~G&0v;Q#VxrvBNPiUld(bsG^!QG{&`P_x-)F5qOrG zTabg$qgsVEp_RM59KX_8mlK(-eFdGowdbu#FESI%SYtZx^nmS`8n760t^6VktwL2E z>|1{l0s`+O`1Hi#YBY{UrnBYJiy}Fj5fA}V?n!2Y7gLNJa#&A`W94}`5}l2}BvbdV zDt&51u7BPDV@m3>zTm>18{Y3hCTqe|m78XX;+3}5ycx6}py(kd6#Ivmc2;nQvA2+4 z)Q!t354!7HF=aRx^W5EC;vXP5=sQp*Xs?#`NysbHauLD2S8_84quLR>zvk{Ds3&H> z`{lC1tn~;SmR)SPzLfhF$rO6YwGiMOPRCv7JKCX`eMsg?vwxgKX-pJ(81}Q8fb8SZ z&6Q;#S`W`#TcR;qIQdIVk>!*rw67toGo)zt-0!B*#X0sCpiyUWNfdG4$?>9uJCe3{ zdSRR+;jin|P)RYfW((xaN(U#N(N?~wJFB`}^oA)to|karj8*$^brhGRZ^2&qL_&j?i5Tt`ZYb3n&j&qsqro0*bJL>+9Z^ zaDAGJCAk)vd;8LO9M^;kN+GG>O*s&WznErM0O(N`8#GfdZkZviBw1Xl-;8#ss(a338Ng&7JW7RZintZm4 zWACL%A=T`ekGw3<^XlHJrQ-6zjwE5B5ZfQUT>kD5y)gtX@h{HueXc95?mee>t{_b<|TE!DJ~&^HU}Ws$kzK5naaHaKz1DmoN{ zr!)^`4-PeZXKzNnbX7m>C)eBMP>YQXW!D6X_xLC88Z`cT^0jg6qVX&pGgH`e`(}3H za*U#p_*`W`$JD@vu0r0Dc4ivJ-!?$f!Co{0%#%XT4WSXqn(EWk`ermf>iP_F9M4sW zNqMcJErjar8*0OnJ;bmnX0x=U$c(r8X@EiG246-^OwMF&;o z7)|D4gnHemc-A>X$4~7L+QW>~`K)P|=aD(4Fh(^$RI5LyYb`qocP<_s?B~?z^ZhhL z$7rl5Z@+7}{@R6}%(D@|JPTLr_bW$DXADj`-SGg-hWmXmvJyBqfu3i_-aIl=yQ0#~ zS5UocFy=wer?hm#H+~0K0b=A`PM?e4U5pO+sPXD=2=dv2^}7KY^Fk~(M;Z340Ev03 z;wAaq4T}~kT zeRdL-ylB9zt2U551y;x#xgEvujN;<#&@g~v5nf?@M7`;e?{0H5jkxEw!8Ccms>=4| z`*q&r6MVexTlGlKWRP}JaFXtb8_I{4n_WyPF}V?IOwfj0uC=`k+e~$s zA3B^9$Yk>%7=P;E?|+3dEJ8@+>tHlC5;~!Z=xZfjtZ}l~nrc621mXijWioaoNH*3v7e7~lC7@yhMgO<~(L7jXVzbm3UP7gv>c$k!mJ>nm#|)NrWZ6}Jvm z6V*`vF~R;j%8eZN;8y)?slvz218`O|AV3QTurV@#tiyj^{O%; literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_smile_n.png b/Dropimage/btn_pay_smile_n.png new file mode 100644 index 0000000000000000000000000000000000000000..3f4d0144e5db5938e5f642d72dbb0ed4a24b1c31 GIT binary patch literal 8128 zcmaKRbyQUC+P=~$ARsv~q%;FV4JjScAT2#K3=Km!g2W&OEeL|r(#QbP-QAtiDgEI& z?|a^#>-U{+ueJAc?R(wVUC;gB6{W5!kB>u%^Web)d_@Hr&HJ9#Y;P z6z;Nm?piP_cP}$n=mSYhm^l=v=xAmQ)r6W^!d<$cq7NRRGTUnFx$CJY3tPY(xy*k1 zaCtjA-?JY)5S8$DHnXsYx&zIj*0xS!^!s&<^gvrnF?wBo6_ARvG}Ojc!N(P<<)f-? z;bU(Bv80y}2a0+N-v@Anx|;#L9UYw9guTV+{}osG9{)CT(*ytI;%+ZS|L>yoRMdge zFjpv$pG$z#f`^Y6CXA<>kfY1?GaeT66P2AP{a4FE=kQ=e-A~8{Em=%$w86jp6SI zGEg@QS6gRyTbL8@cSJLDn1{O<{e7kXZo$#{KVhBR{u$G+Ax^I-&0h# zfw{xnY+%knY3bin69Tg6+B#Xnyxds-#ZgfaR&;W6H*>OpD$0n_-$&uHwY3!H6B3l> z<>v(pO7nwxcw`|$ykHrKtPn^5A|M2UfTaKC%D^l<9HCC`e{(JW;qv`g?(cPQbiU6l z19i3agj&kE!W@DBYFpU$zt_U^U*rA7wfyh3@cvgW_kA(kzc2Uyx$M79_Z##Z{%3XX zfBv)lP^bHicfDWjWW({DSCNfbm4+5foP5 zy(<|vHxrPn-ZaQ;vhT)xPp^OB-G22RTw-tjuKvuxULtPTK#P!{pC7K*3*yDr#OPuO z&U919oO*OYu&UUp#l*yf-;}70KmzxaIrc(h5PT##SOSvkAwSe)7`YXwnwO0`tC@<> zSaEdn7am5nAQM(ZKm@L@bK-&FORVFyeJNxH=jMfXOwCk%04eJtN2>Dv7G^~s;M{5u%g<&LmnVVYI=DY)<6PzkA!C2)Ii6m+enx9tyfUkakDQ}L9H<06yqLhuDn+qj97 zBmFL*C7{S(mg?v9jutYCcCFA*$esBtru~dUNIfP!&%91>Tw1T}fYeM^oAdqtv#J%E z)Y5BAOR@gB-PsY}jG{Tx4gK%XE$R+V$CPfnra&s0$rC1yM~2im z2)U3i&ojp}FtfNeuQz@YtD8P~18od1qIg3mHJ_x1TQ-l;S51ROoUazaf;th8ZuW45gSZT+u9Ps6J9{7QRZ&kMg<+J8U;wCQ0jKiiJB+zJBNN z*iqqmd2p%)EHQKeL|Js;DY;&hU%I zK$&Zpuk~&lLIM$qcFU z=$geZf9cLt0V~wCy7ColL_i1hOIPY6D`_KY>P^*tmY|Eb+(Qv3yi}La{HiF_*!y0% z`LL{0cOzEPrk~r>!7xHn57-c0kzM$#E(AM{ox4gqD;8!+16O^uLd6%}!R5s}1T%E_ zGn}H{#k+jt`DFbo0qv2%aJ~JGQ=|yh=YDXawpYt7ot|sxbJ`tt-hp^=FA8>}nQkVL zw+Y>X_|#S2%J|){`>3_!mmhj1Kw&O*553PS=aSRE=~msD2tAYvKGzKQJ}+6S52RrN z{JK8Z=wu<5f08E-ZxNS$3e?W|zR zQyXCKLFONWS?#h$@})lEZ&?Zu?#j@>o@K<^$pFuZvqmeKllg5XxRL6yc1zih2g*Ohx}|D~2KeVUzy=!kjSri15c@-dyb0nyxO`GDQA zk74aFv_J01>e9vf20OaUoE%W7BLdjrb!$$;16=Oe04|?aXyK15P4g(`COB5lEsRlh z+Il>6Ne{PM`J6T$slQ9+BQ7g8QGK}m!Ii+o=AEt=})UFU;MJBN9zz%9aUP5aj3xq&7to*OoK3~1IOeT zff(h_uD0Fkrc~qChK;W0ZIrXmRMS3gC8}84eNdpC8Aa`ErImy12G~?+nHQkPJn=MG zlPYE#rAg#CR=C1KosI2<@6zSBxu4!aTr;{hN2DX=S+}9OY-;v{Sg#yXIR~TQdkKQHwo*ln%Ch zkzB))gwNKEWiS^im4A&zHB#4&~`79#JC-sY!PVJ}s4#p4lcX1LzoxGaHk-O62LRpiR?H`*m1e`6e=a)eZ^*XiQ_j3it@$f!y<>0SIZ7mr~tJy7aiQjM2 zW_f$#frvuAT@h(|%h6m;gW`7UAooaqWUxRz)oAfL&oa#8hG(5GDW7o-P-VX!K*^sZ ztEDz4#}Kift(fRpgKa3em+8SSzJ@V#e)Yvk^2ycv&5fT?HCFhYt`Y(Pa`F}@;q-eJ zE+WPb&m5Qu9hN{UwsR>TzG&etxlD*YXcWfhXwtrWWqOw-0Te0BQ(W`a!H>W_dXtP4m`%>SU`cb*ufkah~mnxI4cb6mwyofjeGF{e)>UDZX9f3_gDN z8Mwlh^OMah0KE?XXgx^-!bh^9)*N@NVIv;8O9SBWAXxI85KgEh665p$D;M?#s zsIa6aeMkKXkh=f)h&dG5|2p`G@^X7Fq2tU8WfheteZm`n@B4<_8dG0{y^2%6lUF+1 zAGvBBc{^~RWU0P7ej$Oz>Lt96zQqQfi92NH!vnNw#m4b|MC^K7>&GF&Bn_CkBfmXn zf@LT^Ra;qhv^KfYH@Kc97Y>*-#tC;Ys6Behsxn`Zy4MwPwiX5uD5Yeq+B{s#wrOj` z9N{k?9|i~_msO)H3PMi~+I5R6qH+(rE|6wNob*ON`k?}PikpsJwZj%!H@hG=dahrQm{fNKet5!^y?d9 zm`&gmMc$S~0545EG$*Qo&|VJR;8ww4V75qd#T7#3SaR}X?Km<{q5u;4`eo|b8Z^|V z|7K+C)T2XF!;FEHln*f%mcpS+D>>`_Os=97J~kWGa;7f(f=H$Q`t?cEwC1M-?D5Hz zfY;kTc(y+u6K)5_-_mOA(?4IAidcbr{hA$&OT`S2qiad9nAX&gQsbtS1jEu4VNRRU z*%3RRgZd}vU2)6W2YZ|opTa$ zgwfyWd#m$6b`K zLz63{Sbu_7c*=?5*Cs9VYJ1pB6SXXu;?`Jo4@;wA(j~3db4YE~ z3axu95pilY?vIqufhEGiqlBL>aK%-r1m6#<=oV#x<#saPn4LQH7(ts)8Og#s40sd@ z{7PXt-+1fQDSi%PP|xBl?>kcXO-b@Mg=18)9_kUq;R$L!uTv<#s$g2{7@0ekcsP*Opoo+31zbU*MoQ!Wt zE0m4XW%AHW@DWUV#|TKYsDo&49}Ub~4}I6Y8XUPJSG}l>jbrwBpk*e8b+rM_R$Q~8 z1Ur-vYg%fI^80UxBNd06>z_Z;*dLbG*7_jd$SM*3~_T%v} zS4P7!-^thnUZR?12?wTyxl=jNNh_*vZG@aO^ih4)o}R(kth0~HuIZ(X8j<5|=~I2U zSzc4SZ)1p4srA*E2A483SB)_4Wwv#jAgk!{x0=#mrHE0jxhA8_DGOqosc52#%?xXs zWjLwKSk=sStIV1z>+I2JpN-i1_PXEni4|*jCcb=p&^V20U4&!?JS1;!GQw)(K>drw z>iUL9hySJBblLZ(oB>c0|I)8v#{Si`jwPFtW0erR7&-FE7ZSu5X|p>x>L#LbUT3Ebt)o}a>b|fAu1r0pL8}E2# z&b*gdT8_M_)3RwAb~(|I^q7bzEhGPMc%qyQ0xf}|Dvwaju)`xhu=)V(*w4%#Ow)H zA^rZw0ZGxXDdT`dA7=)WR(7~MVeZt~?^#lF0d=pxJ~|h2YxcaHZi5Z2Z8SyxEO`kI z9ry~K`r*m>_6!xbV+4u$bf`E*iV{5PQAIyhC^gT4^{&lPGl|?~fF?3E%1pkLu3nE9 zv&n&$PP7?s)9@$9f=@NUOUOC3!SyIM-%T%PDf`hYv_#6aLt^Arm0k4#=pU!ecMdk)ZtK4j$6`l-o;iNu#nb zSBRyJ^JQiF!E6-aUGMAcEU^vqE-jG%Ty^6h11x0Gv%Ecso1PAXb~rZ!MdR1=`0IqX z=X7@=*QjL~ofoEyxCmIn$oIfeXU9eVbv-BC3C!T*GsY$T>J+KkDGvA#YjnOdIh!q6 zJqg{YPpY_mGXNQQlTCxdqE(pM_fG^XvlpBhfxJ5t>o#qM!O~Q*;13@biRsbdHJ)2k zOO`a(5-3NqSdl1BL`S(5$I^{Xp*5nDk#%25Ds7~F=GAIiEBy-&X1Nz%9bzpESlsCl zp7Ul0<7Urg*Pq*FsFj>TJgoG?S4^6YfN@@-F)af2Yv#zFzT9>FFK?e5<+5;{70t-4 zh{nXsM#b!yRg4CH!|$FxV38xJVOq8;Gyx>Z@kovo%mrZWtcmT;7-Q(8=v(0IIU?j8 zX3B_}oEhacJ5zFvg%?J{^Z z&n;?e5fZ1um>sGN)l@46SZYc)Rdf@2)S=^JzA;~qGUzldNQ!!hUiCzEv=ISHW?@RD z>AjV$EkY|n&rM0c5=AUz|3FN#D^NMp5MSaVBqzCkfFCV3NPoN0U*0Doj%^aKL+iV3 zTA-6SeOCqXOFskznAs6n>%2H_%1W-;Aj!UIWM5UmqgG@&BT5##s10a#U9OX{?e}Be z^YS|d@P+u-zVvne-PIQ&)bxlpIkH0vVXUb*nId-;#8g) z*df_(U5?(IGJMthKzCp8!ogl*F$qHV!#<|#xP~rJ(Cyl@#FU~uSYoStA>)dy_)3DK zgwK;V(IsMNno5PUC28#}p)|b~#PK|^i6j~a*;8(Q%>1aTp7~jT4c0ig86pZJv(Fhx zkhDh}G)d_@DdY1#8pN;=@UB5QB3mg%hW7f7dG)5oedTFCFLF(%^{;}_Dy-XdWJR!{4sL60lRx_KZb(fr3FrPO}n0F4ST)qsen+*j|V(dGKw|xTv z#P!mitcKUGCwP~9TX{lHj6t8U?^V!X6%#hn?lNJ@u4^VjgvZ-@s7@keRc$uYPDy8$ zMm;HRiqoaDa@vR~C2)aL5UF(Cp?2A#PlQvo;n%PPernuYJLAkLXy-SJj34;uv2*?u z_+go*5Npo`Adku2a_0YW#Hceh&CB7)R&Lv=PU`bintUl!nauQ6RD z?~sEjL6S9YV5fD-I2HW{TE&o?(amy-_{(42;Sr+eLBK%JRZYvF&yMf#Wa-XzY@4sE zMR%0Ye$Q%qXm(C`Ac<^&>cLg-8)=*KB?OsqsuCw4+8qr=BHFF?UH?_-FIqF+QLPjp zpf_TX@7xh0<{%Q#wW^`GsHaYRZX;h8j>4}wAi$S7;jBqGX=0jUK$gtX6?hfb$M?9k z_W>N&ZwSMKajP)%<_d^|QjOl;h*Vx3~XJm0UMlz0V~*@zVTI;}CqZYG{`g=G)VPFeRVUk8Pw`R?|;i?;r2W4l*9 zR^5*4#tGl;TuItf8P`;1aw~85!}I)#(za1SY7#eAcfPSw>i|r1=YGk)TzzzZG%7ml3w`zwpW9)!g{owJE0T^qM($~q&uS*?VE z3xo}HNjWtESp86~ybloT)UTY6|gcWP0QByz#!#~81 ze*};}#g2ajkUzzae~TjjpV;w_0Ppp4qJx&MGC%#Jf#wZI z2#HL9XclX$Nft*%ir?+^dz7op2jG{Dxx%9Gy1 z*)i;1<&1P7p#DW_8IqF>L(<;$&9s0m@sFgEQ5)eXErfHi<337PY7i%vPUtf zcs0gWj!xNTgi)lKqLWB@M{jk0f4u$v`u(2I=XtLCdhYM{dtLW+U!Tu&KXJ#7+H8^D zB`qN#vBl07BCU8H!t z_8I~PeT6Ur&B6ak${lkIWChR&AR~QaJs+4M9AtvfhZ#c=aKrr|I22|Afto;I26|8! z5^9VzK!CnoU~x2>uOHGGW&JId*fR$QFc=gh1QHSwq90&ICFTO!EprP6#A!n-?+X%%>`xsQ!YfD3}kI{|Ho#3e+O_ZM`=c!1M_sZ=Lo z@iuwU+}wLwMBUSh6~-?KE>ufuu|5jaOEuSRL-X)USg}w3b&`;TXU})D+2G*9``sts za-XsV;NZ)xh)Ok)lS!gsGJ!5dB=9Ybp06*z6$1&d`SUt_Pc`=fbgONAWMjTR1C!jJDJ@2tMLqIz(TYeW6v%Bm_^-I;$SY{%@L?U|nT z^V)U3C@?UvU8R{XAOpa&<;I0i?)?RsMH^r9nasGF%m7u;n`QnpE$rG%d&I{;sG`pCf1bPN;}6!m-_WqNF;|yH6K9*~FNQWjiKPj|P zA(a^%582vouNa+nYpO0h+H8JqsE)pxSfoG2pN#$(|GP%?=0vv9bVr;*u}jP=4oJ`G zs^1;1e_Z5(u){p`?WwDEZgL?zZq^Q#VPcx_ImXyAJGK4o0kQ7rQ`scsIl@BU=Z8&W ztr5+O^MdYs^|mEjVx-n9#1FfnCVdC+;l0`5sams>dEF>X2Z8s zu;z^=I?8o`U6rD{5%XWdqelg zmpX-c=pXS?$z-u&F1<{Pp4zeOt(|0>!2Z)drvXJOe5y4~k!i1Q$K9+TYRJ@R1rL^) zr5`wdp1oh)zDc>GxInq%f>fV_D{tKc9Ck?oTcU=t^3HP!h*$58UA^J}i|^22p?PH+ zjw2HYrq$NGlFxVdb5qV99eL7aGl3nj-RJxQ+}Pu=BOlWbvAvXgr=FD5bepxkFaIDP zf8vCBwV)LIh|f^8L3=u1dVg;H-k{}(80uESp87BL(%BA3hXruP-Lf8?OEY1EZ~kCE zE>Wm1w;tQHU0)kW^Lk!EvSD%0xZ_VCnrqdoJX?nMQD-W20Ebg|%Sbj?oAPvmX9q$G zfbD+wy+W%uDczwj7}uMFVFlDT!*|FG+h$D&9a8@;z~%nkGj1iNvs0H5s1oB6SuD39 zWI+6xo@lsD+&k>q7TJRTRP)R!)|s^PzE*z=b<%qA;<2js#~sGRFEvikczCz2NqVE2 zM{D?!4V`7QQByW(epy$v8A-t?p7&}q&JQhQD@l$8jU_=9aQ+>R5k0$0q4!zUExu^mZkDV`?0&| zBUifkr+YZ~Uo>~e5sM~Tx7RgYPj!+i+KVAB;DC}XMkza(S&bK%YO&JC(bn#jLDLc& zb5WxDn{0ZNU+#@N0R!Htr~UrrHLDptJmBymCGGI(PV^0rch{@A_=G1L?ROu2Pn4F) zh?|esu8N(H|7NtSzIs0lN4EY$x@})+Vqjkh0?2fToS09e*3EWwy(%Q<96y8D=Rs3^ zeUcH39z_^bK0Gi-DrPI3iYaFCt8WaAGl|dDsLw+B>JnAtO~d7D6y)?X(^yHO@ua!A zkBqEvRkz=ZUK^4Th2tR)%cLJH&hI%I4@qT7x1V+If6?dp`>s5xd=`DM!I`%czGJg= z)wrN!kmGC}|NKST)p~`L;E0HpYA|TFv$OMUn4ym4(1w2h_(K)Ro05YEGzL8K6ir?q z)s@UhEWa^A$@TD=O5CvB6jC5(stsQM5YsfW_erUCliKO!Haogek(}A>1GbzdRFR&p zsG{+BY_|wJTw7Vw=V8Wuy}&jIcq!0}N1~FiW^cTw^=2!|0f)!$wy2FN?@`>zYOAxD zdHFH&4>T{J(&0^P#RTPGoMCNgzGJBd$8CRQR>GV1kkSeGg)^fM&#$J~)CKVh*>rG$ zM`To;&+{78W1ZTf?#t||f#`1ENz;9?%C9rdMBW-*1XpTUhY6+g9Z3Z)nN{IvMBvIc z9p5IIC-9och1T`8Dh-maR*LUI4F=PdWMBn5HQfYsR7br$Hg|zVK>KbUawmHvDnGen zJ6>De!|YorWQ%eRodNZ#$Z2b+I~OwpanCQPS?S2Qt!8E!#frcYaoSnd?>GkK+=QZ< zYvKM7WI0=_zf8u%$-h=_!r0!k0Iae_O7junk#*kg-qSc-vhkai1%ziI7<%#8nW$i+0!XZB$MLnzGdx`u5bRaYYZwuyV$^VpL@Bkf(0IUlY^&kH3B z)J!4kcyY8Eb?($HqQA7=R+B$$lr11Ul&{E#D$1D`jAf?+9u2QTMJ5jHkp_LD`3kmi{hs zTL0JW9zZ$d`b91Wi>10}3sPI_iQ67qCmDCZR%@%(t;PfNhi;&A^9|iFh3=8eeKUhO zFy)N?@^Yv!V5CerB%M>?uzP;wFAjeCE!kp><6@YJjB~0>Q+VpFKh}N?9pQo2nmuaJ zQNmuId>E=>q|@J{I&yG>cZJEhX}8vyD*3p$bVA8Hn;tu*>Lb7D+1I2mUU#!d&@7}` zW%H=>nJuQv8Z(-?Lm4Fs1oe~31l@&J<_Gok#zJhDIf8*VDxLu+X0oQk20yF$DP?d| z^OOzZbhN_%#9c$jl+P_^APgLt{)eua;MWhN`EWNlyLx8g{EnO%e7f!UGsrplmU%8# zsXpj;XVgrF)@x7Ic`zVu5Ob{ZE*PJITJxk6zj z-u|@B1=i|e9v>If{TArkJl_3inRn&CL=>a5UeHN1Z!GPm_PgiAEIFw+r{nc-MB zzfj@P&y{Pu(GwRUG9|3`aZPYbvl09`^)FiYCFEV+-|;x4HnsLkZHGRJsyuw^;=chj CUPNR7 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_spc2_f.png b/Dropimage/btn_pay_spc2_f.png new file mode 100644 index 0000000000000000000000000000000000000000..fb54551638484c2f3f8f8b04705ff7cf687bdac4 GIT binary patch literal 5949 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 N-J6D*CF=H%{|j791PTBE literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_spc2_n.png b/Dropimage/btn_pay_spc2_n.png new file mode 100644 index 0000000000000000000000000000000000000000..092d78678e473304243ace5149fc543e5ea58496 GIT binary patch literal 5221 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pay_tmoney_n.png b/Dropimage/btn_pay_tmoney_n.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9d3fb5a0abea41886c0de336f2a821301eb858 GIT binary patch literal 12623 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 V&Ap+U{?FfrvXY7tm14#L{|}&xS}Fhl literal 0 HcmV?d00001 diff --git a/Dropimage/btn_plus.png b/Dropimage/btn_plus.png new file mode 100644 index 0000000000000000000000000000000000000000..10a4468d169b9d10172f9316f064ff675c3f46f3 GIT binary patch literal 1315 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 WMJY-=dP@KPHPY48*QkNmM*bhI|9?RM literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pop_chi_s.png b/Dropimage/btn_pop_chi_s.png new file mode 100644 index 0000000000000000000000000000000000000000..6402925e346c0cdeb7b3371d1ecf7a3079367280 GIT binary patch literal 10086 zcmaKSWmp`|wk`}FLLkB2-3EsV?h@Qx2N+~<_u%gC!QCaeI|R1?!9%bB!S#~8_jk_y zarf=#>8|SPrL|Ufb=6zpN(xeFZwTJNz`&r%NQJchIWyNae~~y_3sC&qC@pyFjI|Vr6x6b7OJiV6k(wU}fXu<6{M~v$C@@zfv$ec|e_w-I<|Il>bN&2RoTM zLhPL(c2Kgv5{*slT$}|cUM>B%3%2(EBNpoPpKf~XFjjYCdsa3U;9r;iA(WT@|C8F< z{tva2vkLfs?friWc2e`O2eYbxo$Op3O*NU#JGVX zoFbAyHZ}=95lJ2iNgfV%AUm(f53kvOw}tP&^0K}f!}>S4|5vd8X?o3|zt#Uq-PfD{ zNq#W&HRBy$Q~TC%eI5pea#2QHM9qEmI2*|uYvFqM+r)K-jVCR+a=A2;NCx1`X9|V` zvG>U(U;Ml@nSKkPzJv;n|0&BYQG7oTg5aYuaG_a8A+3x-FN0iYq3X)B!p`yHMPrke zZgUT1&+P2}W`V3)pWb=%(PFCeX3Z(Ra8K92T+ZY~lH1F@*f>jMIOf8s4l~$7QpoQ79-;I5xb@j84EpBz`P=6&gFT-^U<1JTwFmecr51dd@mKMari*n~IB+|k z8m;8ECy!4j+}E4S0w;vxyIo2*r+oOCucynsJ)>-L^MzX~c0Xf1F@OYluz^fPC}2Gv5p5Ef#foh2 z*%V1=FoRKBaZd9m!5K)^uauix`9tFLra)Va`3PmRTQ!e2W#$)FZCG9(UTvyP~mqbHa z5NEx);!Z0NrFsw?V0i`-Cl$Ckej_k0A-`q2BG~Nh;|lNoxri44hXWr1n>qv^T}g7t zWp00Hqg2x5uWB8v;zN=23v)A!9G1c5eBDu1L2zn9k;rmYgz1I@{&Wd>?F#GQnL1l} zI4jv~VM9fO6i>?ANZ!I1g`D`1KIHRI|8~lEwRbD>$$6N7PRBW4Nz~vWHC`jx(5F^> zj!ieGW@JALv*`$XCk{m2<}ALxwg^taAC&eF^wTpHk817L8ZD{aBYS%v3t^al2i*$* z`&=+WzM_&3>*kNKs@q5h7&3pY?ax3GT1IjkOQ8ME3A_={^qR6i8aGA6(|lihqncMB z#UXka-*|-(z6TT z$l_RSb~#1;4od*1Z&DepN4K+Ff$Mmtu8lKQ!p4v{dP**o0P@Gg8sySPucBSJCsN;Ji)l+VWh zU}M9dAW5m`6tT1Z`jRxkAB$lf0Pjbc;FjY3G!S`vF%ALn9c(2=-B$5M(7Nr)lFv^?#n9(*}V&pnFU9=2z(UdOOCl7U-9u z^q7LuSul3giYOk>12&XvA6X%^cVE+lI}-uxE)XuJ27s_u?|B}|!g8kJSA6r2e#M+2 z%7nzGMq(GcanVvl8is=Fz50CX=l&w&{COeJE=yR?JelE2yGzu9WZG>wme$5&Of985 zv?A8ep0p75jx<53C{|^wOBhQ2MlvwtdDS;sCDJ_MmKy2-O|O*OF`B(_r*iIo6@b&{ z?tl+VsO2-OMlSadiZ$8zA->AA)Oq&}ya#poLoTd?MRtt1TyiqQ)pF~8T?Dx?!QeS- z-@>G;06|$iR&D|@v?(Sci%_q9noi5vhH;c-gE!6%j+Z+70*1o8${yR78M&MLVn@9_ z5A@nTbgUJDQVri|?PIN7pyDa8&vkURUeJV7CV-2BAz-pRud*0(yh9(QL2^?f?l*&H za9?G}5^Wh=C2A#RC1IIslDqL%12wI0d$+?wS14-n)t=8a*R-4#q98Rigz4F#(VDcQ z@#k+~_o1$A!dQ^YXO}=1sy{93M0(HL@wY84+%^qrw)1l_EeZ9T3buk-D zN3C28E}W`8P4fKn)3f#b>Y_;AcgqFP)FlM4r2^V*y7MY}0>^df1%K6%Y~WA!we^Dr z+L8_nvRPWMlk1(<4W9J@O=Uu`wluy&Nbvh}MMzTdA%o>lFU9>!Pr_QETB!wC(Sxkl zty_nw=HpCR6arxmV>j5<*hupCk$5!C`9p0T-S+Yoc$bq8{AWTn zNt0)YL1^)=LKJ9?A!-+%Ch6e1@Ero*P$cv&5ug9Wvv1j(ujX5Nf0K7`r%H z$9vBjq-w7s8yq$pJIVTdJej;1gHBcK{>rHmH_VIY88z^ttF)4=D;(j- z9UZHZHK_53p_jMy4h_>y7LF=QlkwT`j4jD5ytev9@=$L@$@^N4w(^IHA5z_HsubLG zN$p#HN&#SP9o8w6C)#lqZ8>A;HPz?G9ig7>`^R|Bi+XeQL;2b8GJd4DGQ5YmKx zDY7bW%WA9Q=!Qt7l>(Psfte4ff%R{jBX@C|VWgl`S-*i&WBA?U1Fm|y;0dGvOYb!c zz*azW*0!$Q?3|CglmdCtJ3WHx#Egua(nkA+vJyO{4yo_U7pcNvoX`l;U5XF0;@)ep z{~0{l+e+aXVz&GvY5EuWBIT#pB};`a@U=( z8GGlU@wsy&7ZgnsKY%%K}` zgUU#}u&2K5qH=n%KihXaopBGWktZ+zX;>(P0Yv|rT)jJ9f~MORGelcu1^ zJDzdGWzD2kpSgZ4MAN=>HuLyTQ7vlYXt8%&IV~sjNUukyWODv7BL1o2GU)D_L6^Ob z)kd6#EmuCwy(p}$zX@wn#6gL6DQl9gtC7@K^eu&fM)tb&oU225AKIvOf`96(8nAeN z8ux=OrK#}})1h-12X1S}c!73dWMxbm5Y0S2I19&nfjK4YQ`9~K=oN2af>LA*;=zyj z?%HQ6?N}DD{UB5oriCZanI!Z3or-u{)Cys%o5iGr*inrmXn>3bB>s&AK(WaxUD@G^2%Jy+2P-bHmQ z)?dut5QdSSI+MGh_M>oSL_QQDO;tQH95*z5cjVDoduNibjY)cy9KyB$`;)B{sTzu? zZMrr1Y(vx-u1>BxlA`uHCcqJ~t}UfQJEj0nwDoB5Bt1p5eMef&C(uScQE$u3q5^$_ zk4U1X2RxQ1emi7J#NT~ZWt*=xZ#TQY>x;!WE}P~xy`?NZv3h?^7~&VXwa_cW$~#OVSxUdod*D(#GJ2% zq#;8GR!i*LI?UVgbv4H4wyp?RZ$mEH{O%`LOjwTpjR7YK4WW-P#LqDL+fBCn!(g9fY0aDTcjVax=yL z{uXAhTW7i88}htmzBBkuYfHM{;?r-m@Ixd3t9at*?`=e%z3V!HDMpGEtiV zWwEJP9GlrmQR52pu)%FH4)QclGm^6uHFuy*L5x0ASftJv0q;Npkq1zn=sr3``x|d? z`Pta9K_LD@>v!a-mYsZO^$5J%m*F*Uy00JgpW_y+gf}zC(J3G5N$AkVGg&jZ5^HJD z*q%rK-wa&9>4-YffWs+vew^UpOY%{Fuq?}@I87%+Gd8FCeaGFrA@ z2S<_zO@a0pv}9Atvz}QZj4+ACB6#7AGjz}UT-;IfC zVAZh~y+{X8qL(yB5TBwh_(1~$HNiZJ;VS9g)F8`M(;$#ztXh7sYEx1{=uyi&WooJ$ zf@PGG0fWHwg0BU98HUJxft|2uq~^7>)t|tkSrWLH_X0^m+2TJ*T*;`t?4V`CEc{t& z6-P|de@0Sp)_OOePN}GFh{feAFF;Zc}H&66iYDe|ktf^gTI8``XnYyoJ4Dq9{!jgg$P3F`Xoo{3(&< zT8tk5(W(YX&%jqfUq8E(GVf<%)!;etHa$*D?QK-D4qX>LX1Sq5(Cc)i5fJP*6%z8B zsd4|IEQ#nI0Pw!A_->!H7c{A{Av$&M{ClnV7x-8sR^ zFEwEh-K|aMyd0hYb7&+bHch96gMueC5NQiz=mTnFDj7|o+508v`R#4`z)5X0!sRD3 zajSjGrZ3j5>=eI70*(1M^W+xuGO6(3{2w zn+)(txcm|y5Abw+*hC4~_dWb_#4*@Yd|{E0f4l$bjCAHouBD&5N+jz`uoFWWs00(+ z#)M#ltXm|H4TGM?9oD=qe4t$2GWt^6ww(}fTf328mq_OA)P}I}2Jc(gLHwDg$&*?I zXwGHD_1g-o5B1?ui0a#yVqmybxyOS>vT4eqZlz5=qIg0PYphuYOm{X)-bI274ps1q^f2lWS+5t>@?~=4jQ`p`OaahV0XNtmt8WaHM@z}n#f4D zw&MjWd?tK2$5}EfGE8QnY!?&*^OXIhRgRZs$7@;(PHJvpYCM3NJy2`l=k0TaTBbX6 z8EOW>J`}|k2|sCSNVgY>ezGR>v7ATb^zDxLnLt+8iy|Xe5dfjI)YK7db(Q<|Lv=tM zu2hGy`&XEapJMuLF=1~={WL;EWd8|ta~mYFWF8saUERloJ@u7QFNIkbdCs?9cKw}6 zRE437@OiZM>o1whBhI}Ockox@J?=3v_G|SpVRVT+wnN|AOEU#k39~h{#xXnI&CQFm z$@85x0$x!j?a>Hlhigt2%_uv#rt)(hN-TqTYFD|C1Sc^fqBbs${kZ^_LZX_inLu^l z*J%n#z|h-Y%rtOP#*L!xi4I7xjBVtR9iEtbz9wnA_q`N4Tv_AG8at}YeWS=xY|c|? z$IXQ^fyAiz$uW4_t4w=Wu*86D#!jHTqw?}bb78_egJjI}JEsG;?ZV}d7gaY(+12*< zHkd?ClWWd#MTsi)p3A>NF@%?bp3rw5yEd|L7MzvVovtdSp1h|fMOVtzmRo==U~#q7 zW28Bwwlklf{wWPQ+ix2YK>`3_Rr*y-RXr)fMn02NqJ8%Gn6O#<}g*%Y^{t- zBT>91x%@X<4}(rh557e6Ca(0sHB2#K2I*)q4Uk$Di$XK(IYP2&nb|;xtjrWO_+S}) zwnc7L42axT(f8wBhdBY9b zhzV`|#R7Z>1?=R>N`EbmXvH6XqkcBacC?W+d%OMlX1>r_#1dnSME0+B&O0>FZISh{%wHFv>4LR5Wu1#+5 zu^X-6T{+v=ls1ER$IHq0R%NHD=OkSRHqs(w(g>PYLQ^^^pDJ-QpYw|rLK0ZZpb&V5 z;H`?Z<<2caRCizQ$Y|;EkVzQ-u)N`(+6o5F1C~kqy>nPXa7PX`)!9HTypQD!-h8M+`%sFr!v9 z4-d~9Fnz*dqx02lTqmIy8hOCgF;L_L$<={CooZiJrHPrk;(Xs6RiCDR{}R-{piG z2JFHx%o<-*K&L)pV>&>-2uchr9=}E^3K#zU7SJi?=_u4Rt;Voq;M8p6rxk*S)y#!_ z$?AxjEh85tyKujrMg5&Lhu*yTi4U1G1_uXGanaINsa&zJNU}(lJafcSi8n97W)5p; za4=b>#K?#CsmQPr4l=4-rt%%zCT5JS`HT_ap7EE&N4i%n3-7FRZ2WAhkuR5I^SYA^ zE)#7rnE4pg52Z3~WXRHZr|0`>uq=u6=--`g(oNWY*91Re`LLbm zx-kYw`p~Vfn0(AhAxkbVG;_Qsi;U8xp3aqa>k21Skc*R5S7GPdb8q~(KrP?@K?5MA2GJ6?{r((|@diynrW0g_b-rycS9(J@3SR~d0!W(wtC)$Q|P zO4}y|DPcd!X4_uk7~?I~VN0D^wN47N=)_8M5NE%CLE!f=myLP-Jmpw9x5eVAAW>5S zX4~>G-Jhu_)++iSzAo(8b=Z6C?J!d0)3bS5)vM3kprMgUC)dyK_OmSo!uYST4*bb_ zo@U{!XU%&_X+RuV4D6!KacpJPAGu)L4^L@NCG$#z`)5i-Q&^5ES6St;$$heb3eB&8 zMQDSh&MQPh`~NE}?C5+L6I@96GkgSa#vUfRfMY4p-9B|gNF<7@0O6>^C$P?K|nQuRKxYK#S+o__QH`YP!-Y9wAg}xjS%8Oyn_%L}mcUcA7DOBMvaZqz5=O5c%D`USv!jh_ zHVkAwUEm-ZnS)z@TFU`MR}Y(L%pL{6QY)Hei&;mN>kG&jrLd4%vellA^r`VU@Zq>& z)x4LtFfAVi@dCtIcXLG`{1R+MJFG8bGjvlvQal_uy5eB?Y5tor4`Lq0Dqo;3fc~&%J(QO)V zdIUUDg)u8inusVb>Orlk^L&e)YMSzHJqSA|j3^T??{0pWQQrET0wmZ4CO$j4Z4_;q zLMEjAaEC0{lHIf`Y;=D{HTTLlU@j5u!F@rod^^&WWIQks%iMP?=k`_)5gHx8=qZG~ zctU(Pt^-~Lxr8BTSVMY{6OZj zO9=?6?%U(^twU=Kxarbjb2&6S8FUiP;$G%E%~^a_Wv0rHmHmMcSPo7hx?8z^vR;`z zQ7K>Rcus>)_I}5l4pYq1#YL}}YLXyUPA|tEU@qb>X4ikj+2J7RCUc2a9%iBfK6oDa zE(_AZZTs{T?fw)S!{nWMX<3VWU81L`WCYtFTHU=xs^n+ABCiV3CKyFDqPtQL1-h=R zMUx=aEq?pZqYE%)b5clNe8-dAfdH2=M$g57rLcJ`wfMDm!8MDB1`W=S?_;_y=aert z?A={gD^GLm_`V0=kBtgOebLw2JQjR!LYus~uWGb^u?^}8Jj=^R>R&GK`zt;O4Fvv@ zJ|vq#?>(6t#P(BxO#B%>T?e@{E4x0dmH$FRAQ`&zDB6fxe(H-ciLo59$Zj^0jjcqo z*bjg{c$2bRa(hdDKw@4qhskx+xSXd* zavzV4##C1%La?%KVqJM}&h!i5U|*7Bd<~UsZSuUz=LvHS$=G+#JniH$eHK^Jm=&|Q z5shmc*^4bj(e3Q@72vm=X7@W8JwBF(t=eDI@ZUiIa8~jht!VNK8Z>+I;qXGc-}CHF z9FlIf4)rGukszlA+>$u}I+FRRcRfCRbNRMbs6PNQ%?Kd2dLprEp03}(O9?m{6=Dpx zBX$hw`7moKZY}>%-A;3?Dp^sfH%CP`0r2dffd4T_JGfr9#IAUGEiB{b$R|o4$|;%S z{BYY4j4{(l5D*$U#?xCiWgEAoCJ8x#G1HrTo2sDd+8=HNgmIEu1}4t54;LM>ZMoMG zbW1hD5zmWf#`{#~%bbQZra564DG%ZT^Pk=D=4w-C8E0IryIR-I80kxb;Q5vh+8s3d zsz(v_h1{rDcoEt{PZL6dC2(E=RUgdUnMH|Zcm9HVsWjaupHG30|Hf0j+v%whX^yrc zAm>t3`2RvvkK!}bMFXIQ1he;D%cbDwrM*4X)i%0uT?CG7U1OE?8sLB`5hliO?w>s^ z4*f>2@MuyH9u~?Q+@=o4jDm}-nda|rb@@h^6dE^GF;48B3g&R!HS8=Z2%tuDn(v(GnqOP% zM3GqKgC5KP-1n>fYZA(LV85of7$pKeV#24$CN{@gNpvRBEeVo81b8Fq2=pSgkU*vX zKweMC$>0$4L8yj8Rqt)#1DFk2& z(f{c9Gf$pk;h5-L^FHk8-Wsfuw^yH_d7ch`R)meVW>%6JIVMi7{f_t(o~0FDM*a_e z(>Sn;!k1GxKpi6vLmXhe3lV)1xT#{`#6Sq>XCUNlC$LM<(kHvo&P^?RanTCd+F9vm zvcvGd888V}&TB7jB>xqXt^xP)`_7Kkf@f=1z2}tV8dfpSGp}UJ9_>-kF}%LMXI3*% zz@R-ErUT*_aOVU75`Paph-g*~9CJFGe-V~sx1#o zos@P|_m8(4{CT zaPj@U-}iU_xbHn{J*U>*pS{mM`#jIuXFstzTB<~kXdYo;U=V@Sl=SY~roRs!&V4OC zfg^C=P{Wmt;rgx+xR14mJ%+rUtBpMq$i>>hUeDgz&d+_sUJ3&Plikt47;X&Kl(2Pm z;j#Wp!{h7XcF&E0AtmeUW^LyTC@-HVFTWs=k6(gML_$!U>EDIr zUYds;L_$wV<=?XIN75`%INVKwm)FO~hsQ^d$JN7umtS05oR?34S3m%GPXYAwgTbwR zfiO?je-M=HJ#9T4-QbR{Fs8qV);6wQaA}r%P5);JE^hyUg?awlO!o%k^|f~6<>%r1 zyQF^z!QlTtsf){hs6F9&_W!Hz{}b5Lz|YN|SI^$l)yu>7e&Zmle?_@TD0RQzi-F(ytUN0^kFshWGF0{$HE@ z&(ysK{q6q8b?*oNaejN)y~lgpyLL&>b8!p|mV4{T8~83A3h8yR_Wb zq9YkDz>JN7$?t5$CLtIuNH;BjqbYRhM3t(D+|=}8L|z6R@h`gRnT)gaa(jT;H;hol zP_~SDF@%p<18}5;P4cUe%U80BbIG#w5(u2(Dyz| zrb?1jHInST@hBJIT-{_hS(J7PfTjS@mN_R+TUR>c6UCKDv7s#xvzt5aFN^;yrOY7! zw)oOocotmf*LpIX==|NR$40g0q?tSxabt7UMuWfi=jZmDo#vH1Pxail#;M&e+>(4Z z5=Bc_NSd3Qi~S+Z3mx|H!((G)WE@)L*x1;`@89ca<_Ljqq`meGo{_O@>hxbbVhEzK z0iQvBmg>FFel4*6QUdfoLx0r!3PhLdj3;j%93H;dF6r&HA|xiRav_n}1-*%w%bzbg zBF8yWsPQmD8BBBX&8JB(>ZydOiLuZ0PII3C}D6ejTisrHG;zZC(mTSftI)>F_h)%jvk9s70c`>E_|%(KFbkf0g2MBw7Dz(0yP%bJH~#&f6l{W=y3%P zh3-2|jFN4>f)%J89TV|^PK0}a=tjMQ^q(c>!pa^m6xW`iohGX(q3dU7-uAQ(4~4cy zJCCPQXRLE7pC`)Qq*pS5v_9D)XzwIxl*b* zY){a-#+@O&(HFCGKm!B`gA9m-j1&0Ws4hCdKmF8b4OLW(hyGc=$^o)|BvvRaEL`GU zjF~Dki11Uzip>hDeg?nlCE`HiBSG4oBaiV`nO*ENyKp5Wl@)DE;34Xp4gyJ1ZfQj$ zA~0jdBcJz}=xUAsFQXz@BkVUZoJp;tg@LbEkySmD-_eyrBM ze1|h|xU)kdt!D;_8%c{FK#ygzNGGo!l=Spi))?2bJdar~zrbt~Is45B+HDYlztVB7 z*H?w8b$K6}vf35MyzVe|4`|x_P}_SKifhooI^Q=Fwh$oau?5?vdA;yN;%OS4S+;+8 z#5NBo#iG+Y_RAN;-(o@!8eY%M2`b+gJ6wa-_gaHN`+IvH)9$5WkAktLB7ho$X3flL z+(dtE$Q+2P~hAJV3so0-Dy`1|tI}l!1qHUskdn zEM2*8FHJOyzzNUejSpdSI(p=BqOcX6UG(kkgQ*S&pV4XXp~ds&v1zl6N`FEgLYhwm zbWGC=RJgc<9~5y1cl9f#C6ciT_6EkY1z&XJ!3Ak1Y309xJ_czONHG&Lh$YX7zy+4C zexk=ZTA>82o}Dl$C#duLwTqFwLaQR1Q6)aqqnYv-F{j&;Wy%man(K=nwpG4gwIOns z&+MWX9JC6xu3sV;UW3WO06o#f%<-d*Ww0!xq(65>vsX>6y;?|u(?vgYd9FkmS}P)q zxklcTY%U+l_M;S(igD>a(c(2${XKa$FB{`srXMn!^dTnXul*?ZsLM!J1(mzPwHeYtgcakp0Co-#i>^pup!~hB# zQC8F+m-?#7vUAOcJ$|TINCyBur?4f0*@ohnZyd+}Qk5x~-N{MPx9FHT{ z++-o|)_C@Fb&Vkgq(vtU;{(R%iW*$8SmnumbiERkc+WxaYYJ2=kF3+@*szp6p~Y!i z%l>&MM_Fg5Dz~|Dg-|QLf@j*dw&vqCMjt-FWVUnw0`4&`O$z$i54;dOhA*OKayRD#k%ElRv7x|gKa9D@35+qZvM)C z*i5PWn@nJ@sJ@tOw}(B`XxZwd0b)g6?FEiXOMtkqs?-Qi;7b$zjjQ@(Q>C~ zLwIFvtzlwAwUs|0_4w0)K(-vs1Sj6aBbj9yVif-A15)c;qjW9i)}3I0q1bMBt!1+SpP~H=FT# za=zI6x4w5N#dVqf=GpRb@|kmNT-Z*C_ct-M40EucMbG!M<@=M1P8Mn*(9Dac!hNxF zX^^w)!K+eS;U+YmR8_@gK{d63XqogUx+zKz)@XCuln28VBqO$dmcilh^8Dd8HrJSf zBOZQ7J-2EKWRD{5<5FeFc|B;OZvY?LRG@R6t0@^@Aj$qT9GWp?a@X;ddjjwXg$Z9T!S4k53@)=tuKI#MrbP9`eR|>cest=gw8CxRn zvkIG)!8Y7+D-$up2iIIy^cz7VAZK5u1yW`VfFDy>qX&y1KS|%2aA@W6H9Uq%+02_N z9Iv@9(mdHDh31|oYpVJhGF3SVdE3<@<@b<4=!P%^uo9pvfYQd@(HEm6^bjZrFzV!7;SEtpI zQE(==35#ov2L&dP07Vo*M`xXRJNMb)D#v8LY(+8Gc>4xKfd8ShROkUf_bninmFe3g z4e35B{clcOqIbVC2j?gd)3Ib6=%n7{6AS1;BmouI@{E$bnX-ME$1Q>}pt|R2*ynsn zqa6C~;$GR)gbGQT^}f)_2ra0BZ(2Niysc^yP3M9w|0rn$wIJkzl@Sxsazq1GNW(9^ zfs}QI9+%j29Tr^Ctp9+j$jWi5;s)oXcz)7 zWe;e&>~M71;RrQA6d)mv4Q)L#(_|73M|AG{?^=~R9`8jSTX+@vH>+Vi(%4|@FZ-OB zq2D&Z45yoACea$hB8YEQgucys9IUPd%;(><%qpTgb{Q|gV z65M4cN#oMt7-ughS~7fbZuq>`w9JM3_Yztxi&oTGt#dyBJ=!^#u(wwl!OW#_XVZ}_ z+azNuZjz6?>j9g-xjrKjZuThJmwbc;PZgXz&rabJ_f-iVaeY;)2$B14vyIrq)__jZ zFZYogJ!sLLS2Mj4T&R1+pZP-B+3%)23d1 ztbaI8yhhfsux?r!0UWbwNlb+5wQgr~->Z;3Th|nTyWa^U{$Abo}pY43vspmnNK8zwS z3YLDIT#6}*IS7o(Zy)8y`n>3oFCOF(G3hm&Uce?(I-Q2R5#T^*h_v9}TXzoUj6~#wy+)45Flz1;pihIolJt73xOa z!hHt;UusOMmiX{Cgh!F_BA13%MKvi4@KHWXV~T5BOMy=ZA6StiQchYE!XhA7eG zC-!j^CN6PA?Rg)&Y0&b|VFx|bc57RZd+Bu_yv=^`oeCI8AnhQ;I#fVt%M#r#z)h*Y z?d5@>CylaB{l(3G(_Wa)S@TycRTf zlTkzL{Q5ZzbR{r(Eds$uN+o5o*_HYiA?cKL-dZnc;<`0+#NSM4(({92;CsbWsgGqY zlBfTSgtV?ST$MFFx)Dd7f9+H+8%qmq6L@Zy?Z){|U+mY)tF|+5K=sTVs_@6{)ZE+~ zJxRscd`WM%8$yI7dt;XScM-KG7Tx~ODl58zR+pMO4OeOk%LjCQT~A!hS{G`MQ|6|F z(`uuJAl9o9ZB?sXex5rvUe4R-vFKN{x6(8dO7^sn@tem|VgnIKi&x;WoCL|S2a!9j zop(X}UVBZ<$1Z+eoi7nRQQ@1;1VM=Jggm`!$lrk!UG(rtG}NLRvZ?okOE_TbbU=h!~Lv z?=c3568glvtlX~si8C@rC^C{-<2Hj{VS~Aone-Zn{BbM9TCxSSX7{Fql;eNnk1jz9 z|2kHS4N!z8u4hCmm^0iQUN6s$Z&%KgSBAZA6ecSh{cYIZB5u>{S8Pn#3^7roFf|cp@&!WReN4ehI zuqtk0GYji$ky{H2HTF)1vzx`hzWCY98fD)cJXOIhR9#0PS_A@gji{s$XT z;w1oaBIr-LhhKP_hUs$l|M0Avxr+@)Mg4XspabsnybCdW1+%2_E3a_`rB#K+KjAj( zg6~eN1ze!GT7gy!yFbS^urGLe!pcBMp{AHOdydkVk@1v+5Izk_;VOTes82=6ITlIM zxyL2>CM{XIT~hAFo&2_AJoC%7$8Vc{;igGMPOlUlqUn2FMvs6QXDpK>ed`^EEoN^n z`Iv~#;;Fqg$x=W3;40ALru3!s?{&F+BrHNj_VC9l^5a8oDi#(YLLG&@s8E_xPgQt? z?Mue&S&Pp6ef`pO$=}aHjP~UGul?tO+&rAO)%_!Qv=g{fgd-ZmO)GR#sVHt|B6yRD zb*ua%HK!Mn4?=MnADQm+e3-GP_yS+*=6nA1LczsLK+ZW;reemNff}3u%6Oz?wb zsp&Xmx~IeOn!mr*PDRI$oWr#g*N$(}TVWq_hqitkr!H(R%`GUWui@5G8JYgp?E}>zuy_SpJdId~FnqV0CBt=&*Ib?x?!By!G(-#2^_fg+JzGd}VHM z7bf;*b$LYRoF%PG}!Gc8arEW@hpy^ z4h$8#bKs(UTPL^A2{o{XPtpK`eq~sFEcU8P_%GG(k z)3DYcHeTMrBcS8==tBQO7njAPacKML_u~{E*{dbeH>pNs-^+H&bE4dt0FMV_H{bl~ z%|-T`*bAGFQ~6X1;yR+O`Cj+(!&e!mQLbBDccz);IpPWO~5<!2&jrLAw|moOvMGe-wVKaC+?$ zM2ExnB3dKsW}wF@Y}7bPdI*ldUYI>U0c)*Y-uVc@%kC6M+{PO0ZCuUF)T5v8C`1FM z9Ws7-T}tYK*&ki;^usF^ypmJA>kJ0ZMtYtn^wyg{fiHh~hvXp0k|XZm0x=muY0SYQx2EZH2UTSQ-qp~2w9=9^PQ=aO@#E$5Y&MT9|S1*#7{XA zf?M0u8I|Kqj0}_#n`>Cv zUm5;L;@>ql)l5POd0PZl(ehfQ8W0%=QhcQA=(!VA){(q&zHUB<+1-SUpuSOC58d%p z44+JY-&S$2=mENPl$ZMH(eOz={c@}0+H#Le^)t^V&f&-BfSXT03C8U=n3`)99-GZ? zrX#~b)|@>Gn(!`a|KM%!n9!Oc#mHG#$$70%Gc)w_rR@5>HGJqVv>SK=-9ivmDq0sp zxB07~DYniXnHJ5-civ-0?(aK0JH8{lvk$KjbjUAPpk5rTn|HL!W$tC@8WX9 z$;Ba|l06yq+8P-`)x%14p+QnXqN1O^yfYhEXBZAt^a>Uoc`XOm-;%3`L+a;$08dE0 zkH40E|LXnDwGkz@7GBze+vWYMF6ehPv$qiTVTT)aJ#>|Dr|GCB9@0uEX=cP z(oxWlTYmdFv{Tf>&S9D8*nbjaj%<5O^csl0pOzk$<0N_S@R|?xuR)ObT&awrQ~Twn zafOX@^U&__Adc~V7FGP$6bc+Q)h}%pZ3yCZ8<4z&%uV^?)+rw&WTJ`kbqw6*EqthR zIbZ#t#9J+ssFR}CCkkp+`xP7bfKYj-@hkAF@B2vQmgo44$j`-%+EIyE#>RHJQD^IH z5l8hAEl*h^j;Ix&PO@g3kA%z*>uHv3#vP$KtF>kdW}9Nj^^^KP4GjX1XrIL8%+SN2 z*8F-Xx2CiSm|e$Q4n3tf40f;~%Y*bWBXUXEpy`;?*pbdaQHpEr&|4}TH$=1yyDPXR zk(o+F*%1V+_{1EWNG`GD9y(YN(i~MKw6I8je7@#w91`ptAYzFgxE*_s&Ju?nr2OGcok5$x?AY_X=T@1J`0 zf!6*|igj95AV1uh09{gSm&8LGgB0$DuA>hN-VckQLQ)g%$GvP)wnRF|EuT;f7>HS!0_1ej6d=`ZphVApy%T-qJjeJEr7` zetAmDk_T!dXg6cI5i3Are3)EDseB zDs;2lXhC?905v7TWY!34U$2abr$yl8-W0HB(@FkbW6|$pZrl8LPCpr`(qM{U8mFvp z`QbYlV}TfF(Kqi2T)b=Q1<6hmg`*(-eC0iHSkC*G&is z#w$=4|l^i|VUPfyNh@N~@S64rH(SV2DRt)$WEMXzwP=&OZ2_H#%-c6gt zC<{yDp#*(EWn~LGaHW039Qyv1L!q>-1cmCacfZvc4e{A%a-2D!XjFUDp%ZAw;MSHt zrSmfovp13JZSOBwQFU2E!?dMvyj-UV+15?g$7lRY5jY9b7v(;fF574{`fSgH4MPih zu;nVw(h!OI#v9@4*LHs%mw~Vp5}^<>nZ9gU(dNf#5j||^8@mn>W)Rz4qTeu$5cEVxv6#M#PPl|x% z>u7nTC(~n&_ZCOkjceQP<9OO5R%E1K9f{?w|JDE_b=*`Kgd zKq{HFq@@RyxnwO8a)C<9cM9?wI5y!kvbiXR>N%A%SYX zsm``3D0P5j!O_gEXx2zyJ}iayn<@4N0-)LIxa(KEh@HU(=Ohl8z^BR7ee3hz(`ltuO@Nw0iI zrq7i)Cef7bK|ULN$0^6if)D$br{1k{fm~F~!WIvy%$X zeySFi@`PTmfV^H9>>(hNGZx|fp-)Xg%__NpX-9E(*Cwv0`O}z6I@K_h2fNkenB0qZCsw<3iC#EXsEoW+J(5VMm2-3c zky6FMY>nkdI*xlT%oaL_IXu-r-hUB!Vs8ONe!__{>i!&?jEa;wC?-)OTJ-a}V?>60 zdcJqb^SLen!TdINu5@Pgc{2G2KgE?hZOrt6DSL3@<*E7P5Aq4>q=>UHlitVTrnHqK zQyV+(Li`P;qiu=02p@%Od8ypux1IDRS!KPaA?aX5P3ANYH#brdLp4>4us@_#%`v?} z%{QYV{^>$j&C)Wvjk5f(7J%chtUf{nTdKhX;TJZmp3PIHK5)hIy!3rbekTJiF*N1$ zE_1-FLJkp2rwvaKy0r>S+u+d#ko literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pop_eng_s.png b/Dropimage/btn_pop_eng_s.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0874458d876a3d4f48bf6a5e26c44e22590a41 GIT binary patch literal 13218 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 Q=U+3jl1kueag*Tx52@SSQUCw| literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pop_jap_n.png b/Dropimage/btn_pop_jap_n.png new file mode 100644 index 0000000000000000000000000000000000000000..cc310d0382296e9da28c91a5e69a73e1585f74ea GIT binary patch literal 6053 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 z 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pop_kor_n.png b/Dropimage/btn_pop_kor_n.png new file mode 100644 index 0000000000000000000000000000000000000000..c1764658868ff383e7a20033fa62dc4cbdc042f6 GIT binary patch literal 10064 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_pop_kor_s.png b/Dropimage/btn_pop_kor_s.png new file mode 100644 index 0000000000000000000000000000000000000000..6710790b9648acdc3842ba20698455d61aac4913 GIT binary patch literal 13912 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_reset.png b/Dropimage/btn_reset.png new file mode 100644 index 0000000000000000000000000000000000000000..aad0371734030cb14129fd2395d5d5543d33f1fb GIT binary patch literal 2318 zcmaJ@d0dit9>xPS%5k;Orm+d}!iz%?gAt8WsWe0zQPV(pRY-UVUXN7V%G60$Iz}5a zEv?P$aJSSfDUS{{k8Cupbl1w((Wz0}$<|WKU2L-1Kel~8pZEP8pXYhL*Yn4_pC24x zfn0-x!C)4=K(@fJau;87gyFjr_iUeG`4Zv?p-?amN)f987()ui0%)E>91jQpv2@qY z4!{=%GjW!M2_a$7W|{<4;KYj?l8$+Ktr>%sN$Hqy z?;t{uiUlOd0@Kt$Xj*WXByER;D#iHwp?yCiP5QwM5Tt7O2>TAr5W~%*LV#2 z0|eSZ$NZL*Fo=(4focHljiY!~8XljLl7dSi;Xrjfo=Bxq@dPitmzSpj;i=iBgv6c1ko{uOn)muq534N)O>7{p<(z`u?kPb5f)2Y0tN;B zf2cz739W$y!0-9~Phm~iE){?m02(k!Einu(&S5c>ipEj{VhB`+fnefN7x@Vw1ZomM z6`I9b?Am%XHe9BZf+-r;51gPN8c(T##7YUkW79DP6`V{ar7^uJEH0NxB~wXEB9TL- zda)@~0)tKB`Y;Iu4rhtW1|>-fKnX2zrN46-pXDyvL7_54W&>(jG9cxuK?V9l*)-Yb zbMg7C-bb$V^SP}5EEjJ`2ERDm{~GqvmBB%a+fUXt96p&JP#PSsHdy;hXy`Qz2G8WN z8DXhI6Q$9CcHyhq4@4ALt_jaa&F$g)N7-2YQe*E_Us8FHx&1KN)zR;o^`_@t$fm$a z2?~jbj(W{7_Y5oXEj$t_zyGLC5K-|XLaXLDISE>Y@FMa|=`iVRf7xI|%2fB1hvwQ7=lYi{_wdGO5>{-7Rh^*v)jR%yS#PN;#msgGR zPglh*^ibq0lh$4SPM@1s5y!WjRJqyYA2m7k=y*V5mVP&F|EtrpnZ*1B9Q5<_ANkEE zl_#C~UCPFy7>+hOl4(&MLo{l=lkxX9*mhq3%nqgT{k#(HFryK$%CT~k&j(DM_da&R zH%q@qUm)M9Doq^m120-ez{jlRUnhBIt?bx3Ga{hurt0*%xxMkFn~$B)+Mhs@;A5sQ zzUsdgadn0Li6$2PCvx$b*``c-{=)>a`$9_-%{T}55DdAC6Sh!JIs?jSiM0gjc`+ur z_eIlwt)J4R_&`Yfw&J-`@e_p+>;6-3+wtttd0;?Kzj*jLF zv6oxkqlaz#1|$iGpvbz1j~~aFn;Lg?RaaY_JAb~Swsz%%2M;_LuI}zxhYlTLr|;)% zlsLT2@LO$Xw@UGX+)nXKZ)Ho3t1evdeMN$Yg@lNgZ6vSJ8gpuMau9>g4mDS-IXiQDk|#Roa+3OqB^;s6sbd;uCM>rwzI7*XMi_V7_;}R zS(|)h$l5Nq9QH0;bRDs(E<5s?nqFK+f0^qP0aR|R-AUcPdLrPVe%VdF;F7^?{Ef%RN5 zp>7%3_5P^=caCYWruH?ljAxk7iopN@TsIgoLgd)=bav(?exGycbXQ-(nJJw46gPPD z<_!#n(LScVP$&#cd^j~Rf$ix0hDIwtbH=Qsq(qdIgqoY1la}b0Bd#5krlGFi^6x{u zeRD8srfsBHK;I;)oFHWDi&%W+(b<4w)$P~g5)iWVf4Jsfp;OUA`AV3O%E} zh{cBJjKZ?))7Kr|l5zEJu}ZwmB_C zjBc`>M;tYtcBC^KrG;(Zh)$e}k#6@m)>(GP-+uOO^j9vj;K6$bGroIiM3baw$Ig57|q VO^0IOk&AyQJWeqCFHF(i{{UY*uj&8* literal 0 HcmV?d00001 diff --git a/Dropimage/btn_store.png b/Dropimage/btn_store.png new file mode 100644 index 0000000000000000000000000000000000000000..c0380504771d4455003a3fbffedafe81661c61f8 GIT binary patch literal 1965 zcmaJ?e^^uX8vhcaJ|<<|@+ZjItOSYugw3583TF&97{Y`{Ob3na0Bf9`adu#X2`uuG z_lAK1{wRys1TV008in#ERqqcoCExK7TItHhZz_sLwJoI+fgrXOc!Gfr3aio`FIV zOqqqsQKh;d_beI?fcGn!7yNX zI;2qx>6^l2ESVlbvo*1W1iG;>Az4+ZRSDGebrDdw38n}zlvF|{EJtU6O+xx3UYN2y zZYCXi6hdl+^goJ9l_f$5PM}a2gBPM=hjJjkfWhXm1f0-UAr6bpXR`QAHaCRDhFLtA zD}Ww9bSfL6&V=P6@#9?7Nl4EoNj=PD8jVJVk;}k|EGAnZ5HMLBCWjM3MT8g%bfnT0 zqBE?TVGyAP6`|3S8e9i?7?l}#9x0?#mHyEJrhh`KGdz}w5{zk5>X~c?%hS?KpiK7v zLow`0w1JePf7biA#D?SoJ<61$20V{YQG?4|Q75du|`IFXFwIWsCIX5%Do$j0>$ zf_PM03k7b{=+wB;5cCKmlfe?5fmG^Ls6-^BQ!EUPMhy#if-o^Rj2{{mDPXgs1p*#B zDw2cnqC+_%L>$VW!HRHI9){}38LawG?Alqeo^`9kuZUwc4d6tCs>W$6q3fOg8lm zUv+7}$@TmCc6V2%?#yoSyBF5JUom&QNV_O^RiayyEbb7_^ucix|t1+h-t(QC5KDTP?Z#4?H za)uxNR{f6CXK?=*+`y0j>Q}h4Ce9gblWjh;!}~;l^ggfUp8W#G-Sm>uv7#nnu%+qa z+jA}DF;{ubr|@hQyKGxKA#JmT>f-^FsXYgY3Y2dHy#z<9xl4G7pXS3q#%g zis_0XZ}39GKG#Sc%_Uk57VVe4jYQl%Vg~C|b2@@CM?oS7Y}X9D)x~pPxw;5^nW9A^ zYF7d%^-hjMJLCmQQ&dRA+a3oObF}r)z;bbljjAE@H@oa*v}Ma|HBwgE02 zz<2qR3yWz(;YDD*er}6d@7NG*ADRP7Z+GI8-&U3+_TBISrRPRk`+e<~ospg{7h)5) zXrsv^=Y7FT-z)6Blq?!s0431N9~DCsgTPin=S-jbJI)SS_}nWVmSj^qM?pQoE0(^tDe9 zB}HV7b=JR{cDJJ`ruU}Ryw@B2Fn$pq*4f*ZNd|9;f2wZlaz#7`7QM@L`q>*dO9tWW3+BH{t?T z+slCMs>|VwB&i?`uuiP3o{nuBu;SUr-~0KWai1CUU%ZKIT9YR|%t^0L`mAP+Eo$G1 zTpw1~baJ7BG#spuw!Yio(^~iWyqA}_qjtHTS_tI7>}8)Ec>TQR0+mE3h#I2aDE%Fx CCK&wy literal 0 HcmV?d00001 diff --git a/Dropimage/btn_store_agree_n.png b/Dropimage/btn_store_agree_n.png new file mode 100644 index 0000000000000000000000000000000000000000..1f8343d74447d5193ab8b24d7cc5dfe52d0d95b8 GIT binary patch literal 3272 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_store_agree_s.png b/Dropimage/btn_store_agree_s.png new file mode 100644 index 0000000000000000000000000000000000000000..bf00dd535d4d8d44451ac8cd1a7c7182ddf9c40a GIT binary patch literal 3514 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 YSR=GWUzyzL{l6(wLre61efQXZ0W>!uwEzGB literal 0 HcmV?d00001 diff --git a/Dropimage/discount_bar.png b/Dropimage/discount_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..6a131079267112f9bd3b44e89bb69ae55ea1519a GIT binary patch literal 963 zcmaJ=zi-n(6gI6?RW1DkU^=-H3KH@8Z0Coqx>aJQtr3peG^m+S9sAl?t$nV2!A=+| zbwgrBsssZPVnyr>z{mtMJFJKi2_epDk}?oHoZp?k?|a{S_wMmdb8BVk<`TzoE7rEz z;<#&fSvC&paOBV7!vz&XM#?0AFIk9dva=5P7!4(-_Y zG?xT|lVgM|h!~sW);6-pagQ+tU3}z+I{*FcJ0AF+&hM9O(T)t<^S6gF-WxXC?(o=E zJ$_>ytYsP#2rzX(7Mz5Mmg)RRS7UL040$ku&|{syG}WW+;6^P`bh%~XR$toCsJj)h)hg!?r9Oq&?o$pZ^X%MDqDx|VN;vO{fBi5vS7^+^bFMW;*pROgw~%MyZUDjO!_HnE1m%!wcp#Jr>l z(6;{%4T32;p)Gvn_n*Q^dk|sR!U^feF1xtH)jUJtWfoLQ zr3u$0Za=^wop8M?t}>IGk3$f#%qEWghuGVUNdQJ=YyNC6Xr|tn>&^Be&E!I62IiOh z*JV$R*aYR_badHfI{Y|f6CbnDHinN<_AF$}thKW*U1eczVX?aWYU}6AU%S5xXXcMj u&(-;F&n_+wzRKvy`L4LM`JwQBnVY-L*$+COPhXr>^Jir>n&#{J!TBGZfheN@ literal 0 HcmV?d00001 diff --git a/Dropimage/happy_member_gold.png b/Dropimage/happy_member_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..d665d8942f16f6f15225cbb8d921a024350d98ad GIT binary patch literal 10626 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 G@P7g1r~U%~ literal 0 HcmV?d00001 diff --git a/Dropimage/happy_member_platinum.png b/Dropimage/happy_member_platinum.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0ae1610a660ace8e144ed4168aa316ff4d605a GIT binary patch literal 5627 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 YKKs>`87A}j&vmSUo{4Uywqw-)0K5}5v;Y7A literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_cancel.png b/Dropimage/ic_alert_cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1da0479b8ef040ce16ee000beeab302f797e43 GIT binary patch literal 3963 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 Hc_;iIt5UYn literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_check.png b/Dropimage/ic_alert_check.png new file mode 100644 index 0000000000000000000000000000000000000000..f49cdf1871f8d8d9cf62eef588525c85f300d9d4 GIT binary patch literal 4585 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 PKVK{@Y;lzskEs6v2Iua0 literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_coupon.png b/Dropimage/ic_alert_coupon.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6a55bc64175c415dca394ba3ed6efa39b0eea6 GIT binary patch literal 4541 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 literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_delete.png b/Dropimage/ic_alert_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..7e480a09612efabdf18a2b9e2c19054fa27eadd0 GIT binary patch literal 3600 zcmaJ^cT`j9z73%mA|=!)L`VWcaD)&#k(P#_h6zm(LlyOSG{i8e?i`jKLaPU`?&z ze_u$kHC9kC){W@+w=MC?78$~3GqGqihr==Am>MxyC(sycYiqQz3EITOP>e8)iiu!T zxrPx@I^PwDw5UKwwl zq=YcojHnO>6HXv(Wz7nXIuaTY#Nb33{KX-YvCa`uY-&Ux&6#M66ss78h6Z7AI0BJi zjw70hZw!WHjkm%PNfrcaQxeGvPc+4R=Mou#r|7f@_IGa3f4QU|a<|%n&J-OgWf9c|0?$PEpZ2JP5)_K@#3H6r$vZ6 zo+WN=*)E|n002&QCgMD}lka_fPQsq-yjXmp(>gPCPeaAB#QsWWhYvbnkK4{q3hf~H z5+gFBOjeeX9$hJR{=LI=b8~oebH21V>H(|$BoSi4)ok1KRm)0BAvwHP zwFp4|G%?w7taUggYi4W)#+CT0X(gKoQZElSHbvswq~j^pNjl@{?@SI>p6z{COAjCO zP8x1bcx={<5l+q*H0`ZTyl?LXu$Qz4{+yhogjnU{M3GGWHrX+MXx5;xKb)I3_G zCc&Oc-T$3g_5LxN^ZHF<6o=DTn)=d;_X)r%6oz@2yxr8oTGi8zmIl*{2`-3tu*zXrTbeX z?=#M4Gqkly)DPqJahiL4 zShwcd8~zP?5u%(M+<5e3*>)$rb0@=o%ZS$DJmVPn)#T*lvy6IHuM!Nr7#NdK8I`!e{?h?;kyXH~>$-a*u{c0!2G@qWHw!$oIXCaBLHT~{$unhWZ8l6`zuxx559 zsSLD>GB|fvE+e!*osG3kSH-kV&cCSg>2J>7U))$}wUn7OTJ|+5j@Rhu z{-e^-NiA#e#H%w)B77%iqs}#D940!PZ}%(5nNZH4>`}kOG1~bonJkzIK{?!YDp}VAAgO89%7vAph zk)=WmsQe;lMUD&b3s>GFB=i`VS84i~e(XtY*vv#3|Zzf{P77GOc+DT|*h^Crjfq=5- zeA<9+Z29XraPRG24NPVWzHE^Wrk2Q=gc?dkv`nDX9s3e7&&)<|t(D}d=1f_0o|9RA zA=+v!UX*@EOzP+1p`2{cyFt~-{en-~php3D84YRI((;S&alh_VdU@U=6BG%?X^~YB zMFmAT2MS18Nf%jEAZNclObM3{NBNWr$?&`k_{^`mjns>m{uGQ=mD_Xf{POGkSdn{|*-d4jYEv?JDF!{lUF{gX z^zuUsdHT3cf|FnU4$R>a6hC}3sPU+RiySxd(dNbbJ2_pf-l7p=RKnE__5-V>H+df~ zNQ}HTE;*=oj*n8#sn_9!;qs1Y{OjD zNlj_b^R$s5lVZ+|xGVX-m-~v@*v{GucPS5|=PCFola$vl3&(x+Kg&xSRkU*r!}u-2 zZ!Ll7ZV2g)0wLH-R`Qr^AcKLaXt(E%`M+B)RZgkESF7}+qVEhGsi(?WY^0t;GV2^eTpgxQKT~nZBF`rR zMO4)^{WwE8TNV7Px`Vrg)StRG69}>JIO!91>q!`iFb&PR;Ik4USiHbGv zS!?gRffcoQiD`b-Y||0fo<Ln z?{ag3!rCSSxnJumFBK}dz~!^c)xFpi47dkA1f{ngX~&pho)AdmBuYsen+8(Gi$|nD zbr21y(e$O*(P{UQ$E?r8(%Y|I2B8ts zrO5!fZg+<_0*Yiu&CcBp>ILZzU5TxT8Q=`Rv-A#Aj5U$n9*{afREp*x!oGHHg%)y(9NCDzX65GSZXXNvLfH= z7@Zq3SkTW~x$^J(edqVtXK%lr?gknb;BXX}ux_9wWvaKN2T`%+z3FW%f7`Q@YH|0i z?%4g;s(e3wY0;m+RSr|Rl-IaD>~p(tssGKY<5$0A34kZ^$#U{=`0K5IG-r|vu^#Ww F`yVQ)3kLuI literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_discountcancel.png b/Dropimage/ic_alert_discountcancel.png new file mode 100644 index 0000000000000000000000000000000000000000..95384c5163380686f746dfd1df12347fde3ef993 GIT binary patch literal 4754 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 literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_giftcancel.png b/Dropimage/ic_alert_giftcancel.png new file mode 100644 index 0000000000000000000000000000000000000000..750e7c42bde6a6fab95ee4a66f16c60ea3fb46f0 GIT binary patch literal 4594 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 Mdgi*%bk0Tm59Y}m=Kufz literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_ing.gif b/Dropimage/ic_alert_ing.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f14a6e0a9a731a98fe3aa95880089b0d0fe6b4d GIT binary patch literal 5157 zcmdVbdpMNY9{})iZC00`Wn2@}RH%%(n~P*MGo%`|hS*TX%qxSrG&3@h-EmKaRz(uV zN~=h@bX8JvOQcqsT7^ohR9H&3i+yJ{?LN=1-G|3Nnt7g?_j11He9!y&p7Xl6I+Mt( z7)T7H912+~y$R!9-;n<6*;@m7HGQIjE^1VRNz1OWgAJXT&tA>gVek`M=klkx^!IVM#g z0^kH&J0u%}$HIwZTZ|o=jK$l)v1kktg(jjfI3yZFLEBMqWcbGq0vt`m38c8woIj2Q zo;e_bBoZM7g$fT3w++YH3PhVx7&4iRLSs=_ED~&i6mR28SW+ZkykNWs8X#tixIzh6 zz=tb)WCaMqBn}8L)4!&`6EYZ|I_8UQRTHvh3wS6gONheQqES4aa$c&|Vu?HOcN(8< zE%w+Z1W@jPSP&*+17Pz73RIYmZ?rUDZ@SjlP+wPjwdTs@>PuA@FI1jCclONbQx)Z9r6*6694{_9cC_&4BL#=^ zf69~R=42nrI+%GNBYpqAy=g!0Nli)Ky=!OEj>LrcxY(Fz*$>}GZI6uDCJo;jCJ~Fa z2nBpzXh<+OXmcRIVF$4MH*NIu_1W;9x7T`452pLK>(;t4)~sITy3)m&PNS}H`o?j& z!!mmcnMAZB;BiVx{AW(>na%)mm%c4!StYQ~xdu#39y=cdL?X)z{u zV|G{k$-J6G-36--tt@?*q+yH;?r0d4&4$3os5{ME^{P`-teLm08_R&yeQ5h@L9XQs zQxA}EEya!ckDCvX!e1AU>RYeLqxu;Vu5AI_)2%Z3@7_ob*A{t~2j9PTs_2fX<`unl zU&})wI|6EdLWi`o?p0VS%II$l`CpwA58XbsT3xWwF>*9z;BAJR|0xq~Yjb(D(5EJ` z-g0B{+0sYlJjCj{Z!*h(dM;kjdqG+QT=$`+S~e?&d)j`qKgoY#iZ{G%78ps2(hBFd zTS%FM@3ZjGZufxL)~JrHu%4#qL}~W+e&~~5-p@I)T0L^>InM{_10OCvf1&@FE>Ae{ zp(y_K%f;2HDAw|*w}XR~cgFT#@){cpbKZp5QZYNID;jE9*cCI&uD2^z*V(!|4z@n1 zJKi|3usgwl_K&hLgcw5BgWvJ8IeU;-29`~X88IiwG`-+i)#8vVlH|s$d=kd;;QOV6*js~0YLW!lca1bC0W^9)aI zHHnDa9_4E#Gm43gi}!RDB6bGYC;Khk15aab*q+I@&_~>!Z zlizxu(zKqxc-cRo#Z()9^?Kxun*QLs_iINX8i-yO^n)}RbjZM0@zVcF;;=DR0>$KA zjfXAOxzL-MOlEf-e~~7Twq1%YrU1H6H3V z$|Acst9j#?2HCET1)**9;M-KT8-399G~+5h_~!;6H{zO^RX;GHw!Z3v59{Nt#x9x# z4rScPt3>k84eW#dy)*nDam?&V5OYA{=vztE-6BnHnl$jj0jqG}y>vWeoL+ z5t}I@z6|1od6OX41c_rURI504dJt=?h_#uTDq_v45ol=#3>Gw zAcld&ahp`canpksq9TScXQ+s0OpSO}174mlYo6dLhANhP8N_LfNf6^f;>1oBapLqK zR#OqHF|}00T2mv2G-%4HGR6eo#m0)@FM~KIY7)dWkT~8#^)8N|9>f|dVhyIcidcPW z#Oe*R>TJ=~NNNOb=pB6|p8$TScrrHDc`sGr5M00h!pl MSW{s-orvxK1UdsGDgXcg literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_ing2.gif b/Dropimage/ic_alert_ing2.gif new file mode 100644 index 0000000000000000000000000000000000000000..89a1cb20faecaec2544efbc97f7da7288ade353a GIT binary patch literal 5085 zcmdVbeLPe99{}(fGAchmmZy|8LWMnIo8)Rks;O(ljmm6ChCQ@R7U|A&DwK*O%$2Sp z<)KFvezqUcCIHbN<*lXP?ja;k-ZJ?{W8VBM|9v zkT^)CCS-}|Hk@^Hedh1y?+g~y_4A9m$;lllRlRcM0r|(VKt9vc)tg3kS?h|mMXRcS z0pKG)>RJSaE~JCMOPxhLIwK4aB7%U;ERGX$p!y0D!D2cgeeI}dDvu0=uvSFz0a}!& zHzO*HL1ZGGmm!vlNFp|m4G8H75j&hCAc>ribS5_lAc5D4$0#I186pgGLb@paKq&eo zbNK+m&eqD7A<1J7C0fW!t z30YhYLeU~Uh#MhvLV_dx?-ba)FU@iUw#w<)GPrD%h|WV{Y|)A-jR#Vx|38$?{t_(^ zdI4X@`#&2NcyHqYC@(<3jo>o?Fx*Vh6^}&b19Tym@6F|gkH5vWAzUF>5W?jl$YjM^ zBOt7NSsW%eQm{ywL#2{DI07M^!vH)ePDrp7TNaB+!V%E+E-pkDI}DbL!MGBME;u_f z!F4%?h{qC^;~d6wDO^Sb8{i1XbD3Xrmwz)?Q4VY#*fRy-v$g_EH$In*P)?h~`u11| z-)!%5F7w-CA$~I#1r7$K!2KKc_#?1_6qjF07rgmW`~U~6cs^L#D)LVsKfM2I?A_?w zHzUJ;4h;^xe)Y2d#q+*Dp7lO`^0=qF>(Rr`-yhtU-Rrp9{@b0~ZMRxmZZ_X&k~TKf zU$47%wf0KQ!7%E~-= zV1LHGz3FMGdv@grW1Jyy88xl+i>U4C$0=Cst2L?k%a+u?Co3>sx? zW4&bYA}dRah300+1qjpm^GxO%8yOnt&w=ad{#)l?+OucP)Y61$%urWTg@PNzf-yC9 zEr=$>TCtfZwjGF?T&KySukQ#dKVtysA7)yx? zyg1fa!!q6+>Zh@1&%&JxpcxrHshQ?`P50+`XJ#R@=j9yn%FC0)APNg<$MQ`Jj7yFd zm8Bxe4J)h8oK2d4LBD#xZ%x{~tMIx5yBnm(E1LZqt{6ALns)`X&uzNT>NL9A#qKc- zyIm)GW)NcZw7+%XVDz6UFA`ui7VpOXD*F&TRv4&Ne4ylo*3u@ur!7Yak#9@K z^sH7FkT>Yt-Pi(nWm;x)KD-kituOJb41IXxOvycC)oa>oRV3Dsok8`#pu;-o52`F= z6|V2}Ihq#)!*|cDf^s)HM~|fqzR&UuJYxj4(w4;X{Ogh%EjE^(FMm?WMy_i3A-e)- zWZ}7emqc~IO@B(dMT=~tw|$@EY0fKSy#8I2;AldOdL*aAR74y4n1hG)cm>6`#dL0k z_cq5Si*mOQz@Gi~QTx;?X!O<#K94d7KV5$LO7E$wB4-Hk{ zlOMd|E0;&OZ9;CTnjO*|3$rNhj+;9LRx#yx_cf!dD{EzkG|&=)t9ec4-Bf( zpd)YIj=qEH4So2yW(=Zg(dUkSlp%%<&k2yd4!o8;Vu%&OFa_5W;Y+kG^`)n{#p<>a zuH}plERS>%7N ze?wJNeNtclD7Vuz+C@h{Hqt$)KE@qiHe|?usJEXETUKs3++&bKbazwn!_nsCdN>z_ zx4VYkB{Mu-hm6lsuj501mHK-+te#o(GYw`N03CYVm}n`#Y!W=2b*rG-hI3)?0PO3| z@DJh)>LiHqAaQb6pn^DgdJwB9iB)LoN@De?5ksVE60(@8GBIL9S?KpcoaQtMVmL^g zut`arFg=JNN@562LrJVLHR4%PyrfXv0-YE!Ot$#@AWoV$31T&nINnrA96vpXXDEqh z(A1Q~YEvUtlforW#4QutsNu5p-v@Er>`4$aLE_ka<+nI?dJsdE#88^5l2~gA|$o literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_listcancel.png b/Dropimage/ic_alert_listcancel.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d35c0172f8b088ced0030674bef8d672d354ce GIT binary patch literal 4956 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 SrgG`mdzYb}scs$0jq*PpjINIW literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_ordercancel.png b/Dropimage/ic_alert_ordercancel.png new file mode 100644 index 0000000000000000000000000000000000000000..db7f825e9f99bb093b6f35685899c21f95c0d503 GIT binary patch literal 4624 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 literal 0 HcmV?d00001 diff --git a/Dropimage/ic_alert_payment.png b/Dropimage/ic_alert_payment.png new file mode 100644 index 0000000000000000000000000000000000000000..7d86ca46987a54e567b512978cf945634d5077bf GIT binary patch literal 4964 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 b1O<>Z*7QJoMc)48zn7t&DW*!tCGLL!Q8}wa literal 0 HcmV?d00001 diff --git a/Dropimage/ic_info.png b/Dropimage/ic_info.png new file mode 100644 index 0000000000000000000000000000000000000000..1e42ec3a11a54b8f8fe808998f77ea8b1bf87c44 GIT binary patch literal 1650 zcmaJ?c~BE)9F1Bn9>}GLh`3!8bxM-mgancjC}u?>35FO1kxpHbg`|+(b+a@Hh;}R} z(2B!UB(z?13JQYMdKU-eHcIg*h*xQqC_3t(qP6v+8wBhhr8~3x9rND%U2kUdl+nwa zr+80cu~^QsNJPb~a~!YJB<8!d^Jy%z%%+#d(<_N&+JsUVD_lz?VSvnlreG=z)mqls zun-n&g1=rJPsc0dVhv&7pbiYjY#g1``jPL+Uf zlZsa;0VzRYfPf=pYv4d05G3NjLP*353;=i#9K?l!xGoFt%*rb#iEYciQQCO(ItQn;{4B;rCmE|14%5Nx9br%^K-H~NhzAed1@=}B5o z;DAFBO(N213CLvnwgdw?DvKM3+r%`CYeq>f%z+#wjQ|yj|A!h3qi7?o!rtZkpTb79 zg~Yfj%t)kD8fI|GevVM2SW00iO;BorNE_**Qb*8)QAdz~RO;wjFt8|2k825&aq$pG zp%BY(BaPx3Oom86Munr-YsC?KJ`xx#I~YhNGJ;Y1&oONTMHqmgvc>wbbAiUx8|G@q&IKNm%Vm<`I)?kN zVUJuf4svWqt;-xn&5z-X<0;14)&mI@EY|p2G9+AWzE-s(Ro4;Y)3&FtAASloA6Za* zW@@)K|Lab$1xz(qPR{hG&Mm7hvrm-uz{w?1rw%2SZ$CxqIbX30Yj3{@couKVXg}K4 z7uR?3{NsAb(Up4!`x7_xtv^4wb71iGiojjb%QmTc$~$IT-K`TQLOw5U`kl%?W-o2b z4DUr=H@hxwQ#a&ClJ18*a(&yEPb-{k?N$2NLM5BMk(!D5AIu*=Yi)Mr8|Rc#kDi8E zxlQK7N6MgU-nCO2JXgTk`Ow2v`}}^~Qb1(w$efWpwX{a=DVkMuA#M@vk#ySq#N;^-g|BMifj>$s@ur}@8n2up zYtGqHYe7w7wl*&TogAp@FuA?jyn5R2iY~AHUBs%IS8MKGxOqr*D-0>>#iO70H>JhK z9+kJRGs_Fp1x59|!;id>L26Jhx%y${LB&I#~M8LuVD&*q_ZrV_LNLy73 zGS^Z+e~YHV78QBU<?1`ixS+QQkI5nYQcfr|W|2KGE(zAiy8JyqfURdq8yZK<9E>&+fBT zeWACH|H{5o;l!60z0C5zT=hiZ-ss~ovjBDf?9bz_K6ZD>h9qIr)GLaUZN1eA)#tx& zc(aFn`bO;Z=jhh%FML5>1OKPzl^GIE;NU>mE@wu`%+DKF2}S%_|p^?Dc89%HpX2D2{bMDCmMfULb_>6zoU-LG!0 z@N~25hb26Z8{3rN{isT}B0|qT(}jAUY0>Tf`(f11_0HYD)I;}zF3%e`iIx1tgvRv0 SR^yJpfNW_ra&XDoP5%JrCX2WL literal 0 HcmV?d00001 diff --git a/Dropimage/ic_info_x.png b/Dropimage/ic_info_x.png new file mode 100644 index 0000000000000000000000000000000000000000..36338ae9c2f4f1803c0e379088afe5b9b6f4d254 GIT binary patch literal 2011 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 literal 0 HcmV?d00001 diff --git a/Dropimage/ic_option_candle.png b/Dropimage/ic_option_candle.png new file mode 100644 index 0000000000000000000000000000000000000000..4f19ab79e19f7eab34e7e27f7bb8f2429f7ce5f6 GIT binary patch literal 1680 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFso&TM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iIIZ2rJkXg zfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQ7SR$xklLP0cHT=}kfCb;PL`lpJykfHu3N7G;*DrnnX5=PH1`ZIy}J zE#^4QgX&Ge?G_81di8;h(Fa8?Qe?w~fGG&XgeP4f2cGy-^MEP72$;0D&f>ia%rOj} zE{-7;x86iV`Ug9Tywfcy)I6%Cl#%Nq9oQlC-IOi<&(%j_@;#gvwY&n>I4QWqtY3L5 z=#}M3^OGk}o{6o>50abn*D>Ezt>)WSz@$1GsSp!&X?W$KG^u{Kjpa2IiK^h zr~I2uJ~F&_6{c{O9&%XkTjn%z#}#j;?V_d=t#ts}#b%lJ}6zL)~lY8{|yB z37r%Alqs0B+`jiG_X*Jnua!fTf86yv^mGe{Z0n!a7e0_}8a2&@{u9^*Uo8&!Te+rw z%bP@F*@J&XpGbS$i}rAOq5n|PskWsc@J^lJhNn7muRqwzWw*Saaeb0N(%Cl-!pCZI ze_Y|J@wxwl;mM|`_@Fw;_0tY&9@l+c+hHf%xMuI~n0Z&;n_OI^nS58ssPBx_t)TYG z3weBYhgG(_vV=|8e`98C#;++|7jCqeDclzn(}|pU`nZY5sc3V-)*kJw^P7%N+34-= znc<$K{oqWb%ZqIu{Jtr_bGAzvC5x!d6y?8A-P@)X=yywDqG(-tM*)8}cOOUZojRVw zHqL!}ttW&E=sIkk6u{}aO|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFso&TM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iIIZ2rJkXg zfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQMxYr315=Hs zi(^Q|tur%vvxOZ6juv}HC0~sZPX4R$<7!iss{pIupYNhB85|s zcGElVT}}Rlt*?(I&-uyABEC$)Az@RMm~`O(D(;ON@4MZ!Z;V;ADJAljh4PM0tMdV? zJ2|Sj$}8Tv2`P%-Z|s+taqD{WeqP44&C^-5n{?mGtYW?QQ1I&qbuQhfE5BV<*qYc? z^039EZiCq=rxjU~mWs5*9KNp4yl`?;_Oi8-v%eh|R1|eweX!Bk-94it(YHC_?3(SC zqNb-eKf9?v=cW}?{lxW#tWL7UmFv}0Zmc@F<$udB0WRP9Z=x46-*gauwSEUoBW9Ppn(=VI zlx|%4$vtK}i$Dfh{Jb6w{XAI;9*&s+3O2s=%I7Wpb4K>co2RnPm-xCqf7w?hv;1s@$pND(i$C{NGFQg@<1}E<_FcUv;O^op Ppz_(%)z4*}Q$iB}=*3G< literal 0 HcmV?d00001 diff --git a/Dropimage/ic_option_shot.png b/Dropimage/ic_option_shot.png new file mode 100644 index 0000000000000000000000000000000000000000..693cf37f66052c877148761356112bc8a97e1435 GIT binary patch literal 1717 zcmaJ?c~BE)9E}PTK`ckOEYvj!B1bj};YcK4NP+|j4G}fOp%Rh>V%Tg*77_%p&~y+> zov2lb2NF=Q8SsQ^1?k|yfXB#CwLrzvfecEacroBn=>|djN9oS&e#gA`e#iH|*)o3O zItRODb~qf)fg8sbVB<>5Yiomj|G-sLV1p;h5uzKA3{)dlK{%!qNrwO~EY5@kkXV|Z z(+Nf5aEtt8$wE}fOQ1^-m?*Yjh+0^Qv2nP_XsuE#kwYku4rR&|48nNx&jdgwWe_%p z@<==-3(AtkZC61XwkIY_w#y|nDIq!vh}6p=H3*=P$l)L<93+PXlgM;Z7(Ijr%svDx zno62M7qDYzV__=>Aqz#7bP&{NG(=4Z5m9A=WEzbIk|-dB5{w~&)%glktPNJEedZL{ zkXoXWDNz}s04$2)bR-vL5U@<&mjEk2$STycZNeG`YQ;*BOe9%KngjB9{||-X4`?+i zfIjB?pTg?od?f@5AT^S!l3)jy;bRG%WE}K7>ka_iHxzhP_ zq0Y+%v1CBY;r{Ee=e95hS*9PXi!DBwA5vhBS7Fv3|Fn1nyD`38HZxh$va8H!>R<0}tE$PMG?W6WtSIzwP>oM$vW0Ef;$aHf}spsu>9KD!mis!&VNE zF1)y;&iL!tPnri_OKjRBPL`81WTUpwt83Idrv}}u?pmErOYN$&j&j9YAy#AlS9`Me zjdm^ZYqIifV>P)AIE@6oG?WECl;%0*`LEKhsBn9WPcXi_AUZYR*1EH5+%VwUx~`R# zQs3uO<7YC$WgUf%EwRUC<(=;wYBre+?l04p*OjEUeLm6aK3WBP?-(ZMozP`7JC|2D_S^t{)@V2#NLGE6o=bM$dP z{y0zW(Y?i>40h;l&vrD*JG>vZr`X=|UD>oge9GDsebp&o{lU8%jr6Z93O3gLmnPov|f!=3e=`^O?gTYArYx#}Lfh)XIJPPvRc zsJv5Um-WzYlDk|?xh2695bcP@Ul?W5>F-yUrh6X} z8U>g%|0Pr{nV=4HdHuY7f>c2_f0k~fHN4q05mPx&N3Zu7U+ kBmVL9v~g!~7qY+xmxlIx@juIrviwN6oJ98Nn6#3A0Ie;cuK)l5 literal 0 HcmV?d00001 diff --git a/Dropimage/ic_option_takein.png b/Dropimage/ic_option_takein.png new file mode 100644 index 0000000000000000000000000000000000000000..5d10cd919c8b49cb51d35d568b985ccd2a5d1d44 GIT binary patch literal 1571 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFso&TM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWnQpS7iIIZ2rJkXg zfu)g&j)IYap}D?+xxS&Xu7RPIfti)Dr2-Tv0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQU|^c; z>EaktaqCS)cDAsi$lY8Y`PouiT~}TeyVCWw^-;5v=C7mjZ`BX-+u5xUS+zjS%QbMx zrK~l(O;>h4KP9>WWpxo^8e{M#?_>t8~oxt~97^chb5QjPFm@=vXU#f-_9^mb#Zrqd#1w2h%G`h z76!gr-#sCAmb}B=$rtJx_+{DGecrj!G)35p+3Q>5@#B5TW=Er*tyOVxmHebT^TrYP z_U}hb^0n@!)cAFCw5FU;U1C%0wVJ>2@&TvFwxFf|x;B2cd!*r=(kJq9mFc7zn^@<% zYdq#lnsn=J^BL6#bAJ8dy0IZ<*OY+SZ`4;V7I511*|qdV9<%;c&jg;0ubecLI!`*t z>PCd$+Ku2Ou} z>Q&AAm{-4YQlC}H5c9ZF^<0fm#l6S3E*2@K@a@t{R6F}gNo@6+H5a$%=vQ;au$?Q4 z>pdc!m7DIQdD(7}+8PbtC3gyMnuhm$FfQn>+RbglY^S->LeS`K#PWk@H-t>uS(RQjUq*tvUT^*sSEQ^Ish7JG#u;k@FsQ;ZE{~4&rfByppjE{dOQg>-x zcMT^icP}$nOMrxh(??4hd5D>{rMjh=g^$ayr3e6kz-X(f>#hq{5;Av!aG3q0!{H5a z{)+|xMBaNlo0;2Ny3>5Lw6=8=r8{lwqNB035T(=M19O3$r7Uf1<$PT&HGGvd&3*07 z1uf{_i_wU93;iX4Sh}0hctac<-GsbF>Hftl^mqNwHYXj;zf|1qMd|*_DP6ECjg*tC zB@G`3Kf5_MkcUP22oB$<4v_Pe}h( z1cU$osu0NkXuG+qTmG-V|4(8!O&@1VPIXH+Cl6QizXxYU|BoqWAt_f&Gj}IfO(!RZ ze`itE#>w5u&Bn=@MoQ|Rtbu5lb!;6ioV?sv{)GX9h2$OG+|3-#E#*Im(*0%Ou(h=i z;*$n)OY=*BKzvf%+}zTFARw2ZBnTwQ%_G6j$Hm9>Z|nyra}S86qx-+H7XOPC{Eygw z$^qj1*YXETS6fd@3mI1@2+hC37P9@%zVQD?zW>Hr{AXVT{v($2uQQzg9Pa;h*#F-8 zTS5OU|EF~S3jb65mX3cb-t}*3hpuHu0{{#J@*gBLyyQ)hucDdq-{6V{BXVbDJJYcSn|4bHPGBBxqLs3-k;WDN&T5Vd4}7ck zZB+U9!>h5^wUUa{gwn+EkERvtsEGn=>sCMC!{yUCziLT0TEq(05@WUU@?3O7tulBW zt@7^YIO3+&jLb`oL)lsX{M@pPdIMS{bnAU)B~2X=Q}vPXkloOz(Ji~NSGi=J8%@he zMhR{+{{->M-rmPh#Z56DYVR?_iw7*X{H-Q)UXiyyGs-tSexK&z3X63$saC?@nlOu+ z{MMW4UxJf1qp~5R--KNsEtgU|i4#6h)AlHw`!ZN4tJXB7tZBU|ht~-zTKJLen9|z{ zw;19WVuYw0U^vNxm5NWE2^aUNs!>axKoFyhY}6xA!1Sduq^+X6sKt=4jp>%zA=Loy zR;q6t5riB#Iti_5Oj}`hEO3#Gv7zc<>iLH3*n1N!;HZx;MAY4)f|Tgpx6Y}StK}ro zS4FFf7^7$dvzOX#=3qXmT@8d_$-(Uax0^DW$Ur>}3xS@U<#m^5^D;~ev-^8Z$|Nr| zd}V&`eIJY0DQ;NcIF|cDTMYw?ZPO+j6lZv7oA54Cv71Dv+H4wKj=v(UR+!ZjPOAyA zMn{D&X`biUb!#lCC|ApmT@bl8weevf-d?rboC+Wqn`u#4v*;O5y`Q1i4V4WEuelRZ zBB(YXiOaYjn=Dm2G;*IkB0lxKnn+V|6y<^Ki81b(Q zKHR0w`wl1HdKaQ*9*?)NehkdjYUld97)C3>EwxBAr`sW`jsn!ewOm~sH!Upf)tx4H zZ|>Jr0n{f~z8s%zpXb6MK|>TX^l=KdODEEEFiz2NBkI zztcZr{`tQ4O|jZ)SIFoX|ID^k|6kRmOMzuRgE5#=F1lT@QWy z9cq?GKH(f}oTCD9nz!?$(UpidxTW!!&L0pQN-|%%Z*vSL;J}B7s&Sjs98_obP-JR2IHYAxo z&@5U{MZZhQp5BOj*av>~6h*aZ63?{_+?|ua1KFfABC7Nxi%7eQon3QoUY82po`4)h z_X(u$J>QX1se1{0#4j~6DnwkP@EV)B)rLu0bv+KtsK9`M zt*y}lz-`w{oH_ZvI?=mWy;&KbAh_)lb1$v67fML(aI{P{&-kVo2hNoFb4t5KY3>r z!6h7#jFa7I3&EP9fe6sO8s;2{nZu-@y}50MF(6rYA-!bacjiQ*leG-vrU|OfBMbu2 z!w%9Ar3**Wr$s_LVp*ehLy>x(_p-hA=s{6GJ*SGc>n9Q_Wk-W)}4=JC(V^fpX_O{T8(W6%`UAK%clj&Kdj!7lXdr zo?kWO!*U=i2$RWQ^IT-tHuVFKGU7kAB>Q8ROhtA~Jpl)~d z5d3!bcc(Uf%0-ynQ)1x2#yN(W-`~jgTx2EuNL=Gc$&$$EJvoq|0ej6O5-jY4r`dQY zWJzr_Ud6r_d`-|NY=H+)Y>oWh7Yxz#bsZKzlw3#y;22xM#8#h?FQ#4kARLi~9svI7 zJTv!}a^ac9j$Barneteu(_ezv2y-XKJFID*&Wx0ck&I; zPP#Y2M7+0vR{oT18g3FgS*2$ipCdxLv7U)qgA;duzv6{LlKtasbokKT&F;Q#QNpAc z)$iM;MeRGx3lgX~*e(u6igdOZEi(f45`d{kiz!p_vtpdPYeB_nS6?_S#yQb-z%`TQ0F zte1gf9N&N09c}oH^MznfNH{hwp)`i9V%SDJ`))pNdA2L-Wxs#p@xnS6LClz|{u{A8 z-+;Mk12gY5EiXQG`F1yZ;#Kq4A0y$FrMvOMWstc2&iMzWLdB!dDe&8r7FlWP5NXHv zF^vy+VeGqQ66Uq838l>v@zrM+eyASpFX3GRk}~3l>7J{5XMQg@gIM3rSI5w9Iy8L? zxJPE*T`X@4blJFzvP5!cs@fPpMlpJL2RfUVYRDXKU@bG~-XVcf%i0SJ%T3NQZ!@|0 zk!D;8lfP^Tscm$uA;U~+(lBhz?|=IbY1%Ef5Z?R#mOY*~rB$6OgmkopWW-UO{|{CCS2D8%wzp~6lv8L*<&4X(sUG4-*Shf8K9 z@&M%eVK^u4f)aF|8H{lTPlE=q(A&)lOnZYvB6au{PHh8C`CLe_n`ZB0IvY6cwDwVB~hk(8M%$Q6G`O3aF#C&h+Cl87qHi7)oRYfjDc00A_mnv2G z`6moHaN9R)nMf5kO(lIaBN;wfls9A^s>nbi(8|`{h7tHjB75uPUf9fPyK$DI%2};8D38Lf-ikGA$%k z-X>jXSGBkXQDEU*p-qf7L)k0?vrRV^l|l+_JK!MF!Oz9t5y-S|q)V@m;tS#vl1Nq_^D!lrO3jw4s>?Q*6@(w~6#dlycH-w_wZdbO9Dc!85p zS?b>{h8b6UwK`Mp0Q_0SFW$Y_QC1wn*@8vZU!XyWwzagbtQtO|!(G!xm^LQDqJX4Z zP*AA<&nq;L@~@8+P4CAAhn2dh_wNo0^RPSj3mF9LD?GN_IA6uk5v?_%X^bwpJe=7^ z`Z>Yxn%84qUzn>3Q97NCBeQpSTEDF`5 z^dp}Z>k-86@7lf|OB}gS5$F;v^O~XpO88-Nt`Y?;a93`W&XRU)%Z+^#t{xcq)Et#* zafTyloJ=-Pc~O1g%Ny8)a6w}{4J<*~K8B6<9HbA}!)UuoxBzEjp@z6j-_6dU$}c`z zdh0>Y3VYLIyGn2EjtJSwHIut$)`GB3+%mS_`Yk)M#ikLx=P$t18t+#+MK0q^TtwN4 z%QJH}0KBupZx~ruC@p#LU7{M(3vi3wjtDK4OaFFB7Pac4u&_!I?=>j+Vo>k4nJW@< z8B_byg>-r<@=%FSr#=&_O@-*V-DNe|K6z_1uFda>)^m}1gOmwAld^w~ievY9Kk=#i zmsw7BGJZ4PeuF=(BwS5wyz|m|p2JJ(e99d~IxuOk`vBQbs(3ho-D|_Yp6%?nU+Vy(bvMC}H)o7rC6C_+;dW77oXHoop=`tg zRwNu!R$5Y-Agoca-NqiZ0z#wy2}y(bwqSTzEnDk)bgMmw7vO~7VO}s$h9M^!CANji zm9bE4N1>SWqZ>GK;hA~dta1}C!WXG58yPm)$h2YhG!Hs8qg8zrRTY<3Go;Z^LTfPeq?V#MTom53md+l`lv zTDCkEuLW_RzV?8il@j_SYxxK86q(2Q1vUOxVs6PFzjxnX&8E)hq=|qis`ZOm=9a#t z@S=M~G)&8sltKuVmL=9>ZcY|Ju|K`FeInQQI^Of{anYOox{j0+8vU)cxVNa;xx_e_ zGIp<}hi*{F^+|WiT7i7m%JDpPhkcSx-c+nO?tR1@Eon7Ij>tlK5+Y2#?G8u3iBuU~ zuP~3BTrh*M8Xt0!nmO_ZlLGsNHvG$Q4m7dpG2R@VzhL6E+FyJrWzwb^?P>* zR+rxmJU%OLrbA>=V!1yDB9S4b9$7jx=nbfS&t?sMVt@m(?}xeloZixuK|fXaxK0iC zrF#mHuW0ECn+HiS{uDxk{;6q~k263x=h0)F2`ipLFbK?JPUEk_Q?W@dxJlLf{H$G3 z;;BOR=jrHUdl!$H9gENz6=NSp30#0wS`r@aFPG^>qI3){(hC9GE#b{)^5cYgV(;0Q z4`nR`+<9q>E>uZoJ{ujhH;TM4StYaki8e0Jd+cE68w~Vk z!F|aX>UGs|TF`ow@x@h30hJ@S(NH1WK2b;IE@_DunY{(PK5<`&V~>5lI!_*@v+KYt zNH&ZTs&Z3Kl+NZx8JySMlojoF3~O0xMr#Jgx(e-DZD(e%b>AZc3FJz4*^&p~#|*w; zv0v~{tOZMJZ35d}WLG@72Ofcb{VS&y#@pqKb*F~`K7!Pzr;A%3kHCx*^`hgqIAQ!_ zA^vDBIa?AL0nE2|CpYixT zS0XvMSe=RH&sr5H&i#-;ML*v<4+MZFS~`U|ekHS_z+ z9s6rds_?G}b@%{Mnx{NbkVF!G6#9PFhIdl;h2#6F6Ovc@TV zr?l<+Ud7gRIPSCUmJMAjJ80IqFa? zzJ99NQ5F=1++u#T+ROu2X%e+RMj7fzZSebQBXtIP8Y(#42?T5=%*XIK)~qU$1)kb= zCLbYg?|Xcz0tfKo#k`-zER zcEdffUcjKiqnp_|l)6zU-%id$87S7gaq0B(EFHGOxoh;xV!0&7Q^>qeTT6&Ud87xF zGZs%}UKW$a5FSMVC@`=ubQl@E+(8thzx_lA_>_}h$0%HMAMS3tmF^K(Zmr1*9bZ5D zcGBh8)pbw(RMf6>ApZ%W{(vO{&2dtve>u%I5?{F!4aOf&Rktx6v%AFda;HmhYYiV; z@WcqPP-HJTX#&(5b)F``-OV))qlu<=y?MO;$(^Cmd{e*;jC2H%$#`Y#)(^r#!ggWR zB!mlgWgMSA$M|`5ny;8j8pLFsE?uALc_BR=`{-wh5^m8SCmhC>;BWg8i#ITmDPxcg z^1Q7dK`E9PbAh8@S_-W??AXt>GU)EnDNM)$se{*FXz#g zzM8+Rw#kYSGV~N!A(&NHJ1u1V;uM7HBba<(A~pAp-fSQyCP4UO4q*c5!RPm z@}Y@|`k%?3r0K@hd-x^QN+dGY2?=?PV!%1`xOf&YKjg&v-miNjtPpP0PQ$0^{!S#+uok@ z&&qdB-Gs}DLXf+K;T&)+pf}x&JzXCjJx!*KEzygTxP0KaVTcH8gYpArtM6!#nwiib z1sQu&x@NR9VNALsr2MDfSWXdDD|^onaW+rkN@CW}DYu#sXp>@)xr#$|b8a}3C=^%$ zDve6|38w@yCAQF(AEDG)v8SL8`0lwtMgdPijPE8%v2)_S!FnL?2Z52lZCWKNJZ(kQ z=@=WLXO=p^2oE7oQw+>#{UjHwp0{y@oNO7EGe+#Q9&$Ub+;{J#2>@Lvc>&f?rq64? z$P~x>-f8G*vXdC!Fz|yF07Qi~LmCZG9lw{AXav|BE&F8<2J*c)Unx#rDXw#z|MV(~ z-&2iU-4bzS8x2;{6Q22x{A{4gmvn8o>@2-%$aasq-%~lJFieqGEP2W6&20oa{NFn} zT$uJ(6CU*>5kM8(?*(9-fv#1(&pUS=?G>ukD-jFtDfA#EQ$euyFy z;}=+dcVp?RcZAs_G`(*|3H2FqJt5d;i5!4YOQ*vho8%8FUq)sZ&ge!vkcYR5GL1js&P`g@gkNc- zcel2Y8hUd%)0eRm&l3<%x*#1h`pU!SwXijK#TwQ-#r4Mw?Z%d#VAN{k&)Y9I^lVuD z=-@qCFVgI{nepa;1?pv$Az&zUknk)gn6|U%WVG^9xKq7OY|0CSd}|*#CW23Rj2M`O zc>r*+24wozIV~a%Rl>37?>YgD9V0zla=rw}8Dt}|RkLg=VWbNNh$D<8uMV@8qu#Jt z@B=z!3NQ|1mbs~6o_SRDwy;L%HMBC8vZj!jOw?SVryZHpfd(d|jWwr%wXAesst{*@ z*ulZybArF#M&y#1U(>l~o$^a#+B@!3Gra(VEn}jOH=76f)SZ0fR6?4$GjDeXaZ=x- zK?L25E<&0ZX8gsE*^UpxmnquonU`8Vx-VxXRw!TKjNfhONWQ3lGCMjj5P(@1{c7P5qT#wT}(WS*w={pnlA4P2md;8|FdFHXsC_bV0*vCw}(&Q|m0^ zoben zEL0jl%qB^%i$1w{k-*wMLcPXf`e9q$yraxWjnxBzvK^ydC2%Wh-E}9V0ALd)imQ6L zDh5!RXn>$9ThH^>r(g!H$}lal$cyO3nXdaG8QJGxIG30X7?yHBmx|NYg)retwAH>R zkp{$S>y^=NcfgLb5DH$@=dNR#4N^FwN%8vaB{ET~(waBr=1BvdhHQ^yRXpvC_r?q& zIE>2w^e(yzhvH7ax7*{c8xbZ*v{H)D<}bW(`4XHNkATWJ$vt@Gh&b!d5aTwGqJv`etXoBZOr+I@=z^2~%wF8b&tH_v={)NK(aFWUR`Ng%}^& z8fB^M!cCE33eihxENK%-x@&27{DadS~a ziM51c3hEC3^lyddV7)J{j6|rUua}qbRs9SKmcR5gf7E#rC2p75@)CP%BUEJy%nqRl z?nK4IE=~}?N>2XG$@~ouS=W|Z{A!ZVFCDY6tiZ~tpcP_D+vrAZ zntRAx0-~e*rBYu?SE!X9KY9?sJD#TY2T?07z3n!a<%1LX+}i^0yT(zCw4SvPtj(+Y zmDPc=vrkZ9fZWbL=*=rz2ykC-$SW}A_c`nLWIF^@YVkUVnKZ&oUint*-!>u&-J5rV z4o6pnHol;pS;<%9bxY#w#=8KIIX;W4!S|HBL(ddmWqM-h&XJ&87>uJVI9w%-rTP|} z{E>py7Fw$s)#;eZZ4!Q@B1y=2Yf#&~)7mAQh`JA;Dq0I2(EAm~lU+D$gg-`lv;g_rhQzD}@=63+6p~?c?O`I)rOO!} zT*fJBA+zQW#Z>?x?DxzTe)`MtDS*JYWcR%?sq^NI7-Op$cHl%fSMTWvxJV58%vrN3d+856NZtXKFP9nBeYJ|4 z4+6miuA)$TP@s?82vpqQG}9u|GIE@c0u`=qIs+VaNTFjeqO4Q0eC zqf{e#P7+>=fA05EyrDDHP0iAYcRbE}G8+`gd43UBO|n9iR5pqD@#g$jjfw>Q)TRn7 zh*WO|wN-C63ttUBP3Pd)yp|0KRS=Ttlwa&Z$?W6|D7DsR)e!`F=QYfp)18>na9~Sm zDVJO`!a`15N_KkoWl4$~wexn(X7+b~!lby-$&!M$L($8$M7F|z_dxM-&=Qk}36u9E z6u|VCawnw5D7lurrc~5=T>CJ3A|q>CtnLvF?d+7cfiZ8U6vNJ}T$bs#a)DW{0)(<) z+O_NyDN!_(mf@aom)#R`CuU*0^2caSp^f5Z?C$Xp3&4Cx;Le;RqLy;jRIoifBd~r5 z3NY|nv;~kglW%;&4ccJh`0RWmTWwh1M0Z%+%geOO61BXWy}kKlVzXV|qWbIzG5Uz6 zvi=E+bkf({1%zglkm5(n`oddp{iXoRX3jxsSO87KQ$uX|3%X$6(API)1H0M_JYy&8 zu?wQa%BQ!_PHF;4WE4puC$4_oo)foR+F&ou=GkVhpSU#Bm)c!nnGszW(Q|f0R2s|7 zE-L_7dd>2FT|`A}o>(1Ft~Zd;J(0ObVrGwih^p=^1g`5z`#K@H1YgJEprOV4APnLr zj6`_TX;4Evi&a>OjE(bU3!-m8hKtdRrs+KkWv=kJxZdF>kD|Pu%M0)&R35f)jOLq# z@neyZnKq~*N~y5>x^$N$7L;XtZa#ZbVmOWvm2<(YD%X6;*VK|AYA#nt`YQxIQnSBu bb_1yBZ&X5Ru`>R7HYhKx{Gm$HH2D7jYb}jb literal 0 HcmV?d00001 diff --git a/Dropimage/ic_store.png b/Dropimage/ic_store.png new file mode 100644 index 0000000000000000000000000000000000000000..66e540d2e6b181f72c228090ab4b02b168250a65 GIT binary patch literal 3221 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 GC;kIFpb%#O literal 0 HcmV?d00001 diff --git a/Dropimage/ic_won.png b/Dropimage/ic_won.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e7afb92752eadc00ff45c409380f71efd15b13 GIT binary patch literal 2010 zcmaJ?c~BE~8%`xqY!$TxM6|dBa6rwmn`FrbqLmybmNTHh;K63IfdI*-$zlRpDHtuN zVCDFRibBD&gCbf$`=RnlDXqv@zlwm$)C%HJEqDNmD0ZV@`-jt=-TfW=KF|C7-eWc| zGJN^;4?I7h(P-0^3aN@37uX+XC+dAze6NNY=8&>DGMdnm7Sx2(mT3qz4k-0#60X8g zO~z;E@n9OwVWTc4j*JTn6=8&)joNM4R=trz(`dmnv}rO^|*mlO2tg-3tOYph+u>Z z32_WzX>c{f;tBaM3*`%hEG`vP3`9^3q*YJyybCXZK}ZPl<$PF1WkZGtWr!?9z~f6` zUSJ@M@FuZJgPBAP7(VG+NBN$>%KjBAl9+ImBup^`kv3Tck;w!}n3D-3Ac=+n|5%+t zLs-lK_7uH2u@pDy*5ewviO>VDV=U6W!#^aKN&@8qSZY^~fS{0v$Ph#d!LT$$E|o#d z39RNHaeGsr)DETJI4MIU;PZqUTnMsY9zT$U;e3>ZVlcu2d7v87;sQL7&t-Bbc^rGm z{G)^>x2U?bPv15KwRqc7xPj^;6V))~4d+LwJ{(d?m&I7GwZyGaFrpY|t9uWgD0_9h zEcrjFIsawu61#nyNT2oV{DoT>!!s3y9azMfVIM!Szc^POuV8pPZ}l9KC>Nw`J#bid zp5$A{MI_vZIwaB z_HK$Qh#ZL?QPm`$$qnCJyRprwtuW#d=-diP9hZgTN(l6>5GOpM2e6?4! zzinl7K_9`mIe;@Xu;&8~vQ`8SnE;~xD zu2%TqGG$03(H&m%w0*3lE+*-#o*mZ8&l@tfwF}4FlA;gfJvi=R8~M)i;r@GnR_(rl z9xPAF0{W(2d75X=XK3cqq3qv;b%85)ASuJ?4!P<(hizG;t&t6qfO@R&(Aj<5Au;~JjTJnfWlrmbXjyX_}PeE*|sKw?EaCn$@% zZd1gMh|~O=)AmKXcpWQ&(9TbGNs7vCZjL7J#{Vano5uYMQa)?A^Qx!qz6wgxj;UXmjBd*^19wwewy7_agn6W$nEBsw4CY zt4kK>d)!o+vhm^N^Mx7^%%%DKFqHIN{@&_E5w2q&vz06POYV0ewTdO(t6qlDP{+po z3tZ&;ALaPnDyh3UPS4=(e;#-4lH3Dq++EvM#P*)LA-LX6Tlvyt%qFu=Y_GbWnWlNx zSoA<~x#-i9uX{nsYCh7CRknC*|FA>QhGJv?;(8Uh+2VA*luLZk6jz_rY)e=d?|MD9 z{Flcrcj>%W&JlHW<^837vduq$_ZHoKG9=f5hg!CIX?_xd?Y7}3BZjAKrg8;+&TfJJuWfQA0r^FAR0RV(W_UI`Qok&i9#Zmrwr~>oBkMq}MUm4w&(v z?N;UcJ!Onrt-%?kmdkT3@E*ac9!C=$3_04}5mk@GuQlFd$WS(Ks!vXb||~b2(bTcm9lVYO-N$SUzTJdKmY&$ literal 0 HcmV?d00001 diff --git a/Dropimage/img_cashreceipt.png b/Dropimage/img_cashreceipt.png new file mode 100644 index 0000000000000000000000000000000000000000..84283be55e868bcccb484a691a2432781d93fb08 GIT binary patch literal 11142 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 B+Ft+w literal 0 HcmV?d00001 diff --git a/Dropimage/img_check_bg.png b/Dropimage/img_check_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..d356f3dcc4bb14576eaa4b1dbcd80d7988922c75 GIT binary patch literal 3955 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 literal 0 HcmV?d00001 diff --git a/Dropimage/img_contents.png b/Dropimage/img_contents.png new file mode 100644 index 0000000000000000000000000000000000000000..ce0f7dc088621d9255b45ffe236931f839d60d24 GIT binary patch literal 25762 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 Y041U>TkBzwyZ`_I07*qoM6N<$f>7@^EdT%j literal 0 HcmV?d00001 diff --git a/Dropimage/img_contents_default.png b/Dropimage/img_contents_default.png new file mode 100644 index 0000000000000000000000000000000000000000..81faaf43dd82ed61e617546bcd8397a945a870b3 GIT binary patch literal 9445 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 EKR?N~>i_@% literal 0 HcmV?d00001 diff --git a/Dropimage/img_contents_soldout.png b/Dropimage/img_contents_soldout.png new file mode 100644 index 0000000000000000000000000000000000000000..f41bfb800f846b44a739b2c5694a2acbfa33bc2f GIT binary patch literal 9410 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 literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_1.png b/Dropimage/img_gif_1.png new file mode 100644 index 0000000000000000000000000000000000000000..21dee0e3657800054c50705b545744adc5f7555b GIT binary patch literal 23567 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 literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_barcode.gif b/Dropimage/img_gif_barcode.gif new file mode 100644 index 0000000000000000000000000000000000000000..70987e9794c8ced8d9b9b2e6033c748067666be3 GIT binary patch literal 589164 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

1We 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

XyM=W1$I$`NKIf{wH?bYv{ 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
  • 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∈6Rwqj9u#(lamcrzBQmvzO&H%D$J`7zja940UPFc|ahuL6DZ?Mm%V+`5NpBr# zvv@l9GW&6abLQjqqW#I^&8j~m>~=HW0(SZ7lh@-_=zZ1*$!RYm{NZxO0{(crQx1nc zta!GHhhe?V+nsDfB0Tj#7hi=V7}dpiV!54oYdySoK*LnA^m-GMfl8YofNOs0MRxcW zod*cl3R-$H8K+~G->?Y$Wt3tJA;VS|?j)F(@?#Il#5GO$MtXee$9MP+442*o%hqHX z<96XsEXKD}aGnLCZ6ZD=>hPz#JqQx+(&@

      3VeL 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

      u@`U=;7pOxnf(Vbah|4@XaLp6-4 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

      ?2*w<19mKT*BCK~};> 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�M3o)bpy!;pF`L%m%qdb164yKv+-_Qq~l24_&W0&REiO%44EH+&!xX?*E3(f>2}F@tY$RuV(h7oT>wf5Zxi`oX_cm zRQkgB!HRnHYI%RYmORr_6EViVkfU4FU5u^(AY^m&Jva>IZT*=sOY((NZeWm26e3yIp_hff!i={4iSHr4oZ`4_R3u+cEw77e*?H5$s0RMuPdqu0Ksp0yg5>9g|+J-<#Zs z%zuUHCv`}X@Sr=H9b~-tI!dALEmRE-;b<(4YH9ez2LLE&?w9e}kYcJa&b7Yrt*+y7 zLzACu9sF(dr?^A^w2lfAIYS@T6MwkY*%wtP65FmrY46`-eH@kCp0^QY>BOiNH`LUd zHyMy0^1ekM1~mY;4kcS#+s3bzg@9~JmYaUE}`lA;k@XLAiVH}BAXNKDjV+pO18(-PA zW7y?^oIsadhWV*}ydMtMeCwoz+P+1<>$(POebQC)b!^x-OP93mKzisw1tNH1)mgDK zBJMeKmGktt{?aXiT-uywi`}D5c{lxAVDVqJu8OLhG^C!dR0NamBx zVDI?7_U+t+Xm+1h`2iF}vO~?%rbHcUW|Xu3^2MWTvli+HgVD2mQhJ#g@m2|ZVcw z8KWD!svWONjG?Ma<4`C(zVAZ4lfXbQ0@TSL#i-iQgO1UrMVLkbEM~&#gKC*{h&|Qj z2QpLWxAVCqorC%T(Y>D=(*=t97%(J6T?9UU%`c+*SQ=5C;Y%B$_(orl*Jnk!fg;=u z0!o8{|9f`RUSs>fU2lPlZ>}Q$Q=$@mWlTGIDRHgP*_t6Hrn^VE})( zKiogu1}qhz(Q7v+ZGa$+6D>-iUk~XQKFnzS`8udIEvmdLL4KP6l?;@QERx~g&xvKy#`-e$`k{;j7>u5*4p}qyS_upYzKYGh)T(j}?lYjoFp8NZ$xuq9Hk8&60nujClO9IldXhwStX4fh(`p?$uZe>6;(+`1P!=J zh!uJdCmQ!BZ^R(Q<^| zBlM;M6*)Fesm8{U7_h{Mt$YEA90)8zDUKSRB+ef#HwgyiPxT3q1kTF!I_&t1aE=d& zE9(7Jv;%`C2jr&*Kzo(_s@@W@(IYLdgRQ3$*5zQ%A_b_NfV9$=;eU-FNR(pPEqKp1 zpjTb-m-9HTncxvd&#|qdmj8sZ7$U%IVs8#qh9N$PAfKB!K>ia{5G+69__cv#BKnJx zzb@aXjZ7{GeBmv-1eQz6t3N5KPwbI83#LD;nt;7iPMMwP3m!jbRCpCoDE6L`k_h!J z6Mf*6&u>(T3J&vsl8xCN7$uR5XdDNFJNF8KsX*nuxqkD8gIz?~`q~e zq?!ICwK9Y0*>CIBHTbt8{Jlvg&2b6Ix#U&lvV>`l>^TI?rs5=(V%shbglP~& z;}$re=~zU$Ha>j{}HQj#`DoFhSFHdp-gIH`}T!ZJRg z7gAxkr>4)eU@ED&XeP*txFFs+PjEN;Vm387r-7*$GQ|u?l zT=X+mo8XkBHlMe`RK5%z(v6>Yh~he;)G)%-G9jItsnRxH(>y!R(QkfEt?W(NinI>SSl*A7njq zuLL?9vcsJ!Wz$H^ol5&D^55?hyU{aR*&5cbVdg!Ef++g`NcHQP^cyhswRl$PHT9eA z^jm!N8wNxC;)4k77IQRJRyY?8Uu7V33u?tWcU9{4)c|wy84#x?<(vLb)?t!jt#6rA z?0b3~gCIPDz_v~U-VuZGH3(P|k+%oZmJC0+2bsh)oTf4ymqeW0n;8FY2!4Z13$9I` zLFRnc=91UIm}@pXp~RSzMBkU8mu52IU=8`baSs>e@;m+VHynx>_1xX1!g(!c;G9$E zLg>7nb(6l_+K=kf+3LX`XJ^Z<)zb*(O1Vwbm)S!%lA<_1DqWr2MIr0EZ=?HzIxkl1 zF@o~HNhcJGRsOCGVg-+#ho~*zF2mv(SHG>FyvgMWDiH0BjsDrJ9{+KPurgx4cp<1B z{w8CQHFX>Pql{^65l0RmC+!duvKR>FOV)$vh@s%>VdZRMd^r7r8=-^x8_DC#!CG(& z#t1*OYl=6?*0%^_$10h$E3wKlO*SQC@*(*P^G(zyy@;0{fgkH?#Uh7m+vscC zbnBRP^U*nzF)NYzq z;m}Spp5gzmDP|B8A5HFSl_@|lf}R@E`ehe)A-0bR5=*ruYbFqRWVbZ-jpM#AxD-&M}Ugm8CS4-r5brL3PECZRx zJz46mBlPcKzwne^Si{6hj)Fp^Q@9TE5v)9-`6z65|IO*Uu^xL#{UT@nrO;*7EOd-m zvTI(V(Xg=NMA9T7wYw8yUVeYfxIfT4PSxv5$;d31IfSWdC;vMC>x^}As8bwGaYIh? zpgqNA^vo*ileO2rmF%aDf|PN#R#|DGBkvrQpHn&kHT&s8@|EX0kjt>%-;`e&cl%w% z&HcmXkWLmY%%NTP<5UfL;mpg0c0ZZtYMofT@3u<)%w#+$G`7>HFbQ*& zmvCL#?<^LrK@S}|T1o?Uy&M;Rm42o6FQ!_w{0r9_)kdn zZQ>Mp{V2S8AzKNw-h7t+!zxz&%<?6Z7KU z=ku7Zi|6K3?6{M6-*XQ<#~8fx2GCr%)R7(+a$A~2rG+_~g2PwuBl*|!_7P53mzDdJ z%a9t2((y(@Ws|UGYpz>U<4p&&JqH?{^Uo|-`z6=AB~JfQ2WPu(4Pq!s3~je2IofwQ zNcb{kyMBebgNkpsY|qaRPC}9W!ktmW_{k^t_$K%B(?C{QGb6u4=xQ&7k*yiXZlC`< zQ_tZkQP3{XVK?}13*CM%qw8F;=@?tdp0>GoIVUQ0g0q_IG^EBl^xp2C3z?@yhS+k~ ziA#FWK#bK-~ zq%XOkPQsn!@n=X zn4XAEkrPXvsTaXd77xi6k8Ki>CUN!+p~uy6ht)J_ntRUzSmznSXoAQ;!%IBJ_&uWV zJGU)79E&_*q$3K4U1J-L72vJ(*`4m^?1m=xzP4Z>)E@b{iB$fuwT|27E4^uyaITiJ z2jtpku&jg4ywWxvz5jC^k9MaTcgC`h6eRPQb2}b1dkEk6G9lBQ!E&8&dlPWGPSSpX z7JN5v?(T;;+sY4{_xmytl6kkHA8vD>&bc~Yrkw2#+vNZ+DezAbQtglhE`o*bmboUF z$=pr^pVF0YAv<0WGLL8$y#*Gu$_ED%`>X8z%N4T8W+N9xT)%C7$JjVDN2e)eBK=fDL zW?Nc7p?Lgfn|klE=p9ir>d)_=Bd@Kd6Opi}?S3^LsTTGi36at}l#3Ya{I$rIo3ha? zlWAeT8{@Q|FP8|RI9bFiUM|$>&$(^k_z8-E7k__EcchTcW1>^Kjre<_n#xTFMXPd8 zquPx{=Y98nRLNV*p(#zlTxDSvHM5AIptg!~;P%Em8Gc38f8g_`0Z zAKFgji?eG|t9~Jd4Ya~)JwIgeU^1gdrAwD8%TkkYZqmCQ7C%=u!5B&17>%uH$`jj@ zW=$rr8hIs)X#`OtzRxve%U^+NJacNPU-`qLg4}Khf)mv>;n%Kt@cVON|HJ!6C z8os>vi>>Goo>^Q2A>w9iUO;HFb|f!ng5rCb8HI%h8?~B5`rk5Dw`IvxsG1A5*1$~4 zxMB*9g!?q7PSpIFm4BH9NH+6-)~qCO6>|%g495__f%s0vMV0qAep9{O-Xmh z0UTEvA7o`I-u!f`Vv73xS(&LAUh1?dCN6@XoQiGMF2202JF*X7sTefb`si~DVvfUg z68$@!Ax^o=48eP^%)%nhR}7T9nx6(QPS(B_k~<=WyLKM!L%uWyvsfp_VjP z7vpY3Hy;nv)(Q8S+h}&;v{`DkGgmM>SZtLrv;NU>TNe@0eMvO^FWp7E1aiL@-xTgB zyPWB9G%#gSA~f(;;sS#Pm z7Wz#Ti8>Rq7Q8$mK-2tL!c{gDf0Fncl};-jg+M?z?{n)pXnFek;>Wz4H{;?RoAuqC z3H}k0XkR?Mx)CX6iHZk+t|Y5PDUdG{QnM`~n&9Noad!w-tt{O(=R*qG1(R|dL z%Vw3ZRieK`5)8FWkK2!lOv4wW;PxB^uHhsLz5kouWsAQVl5X(6nNWvLUN1p!UPXpK zyLjJ1gg3lzs5R|hA2x)^1n+mfuzc=Um5tu-H;0Y7pGNpEphDUwaowFyFtoxi>1H0& zfM~hkp@wi18dK~S&}rjr!id8j6@A2~;iRT2JJNA#LH=lCv}QW>wqQ%_EMpVeo47tw zTNbXbaTR=AbSDT^e>hb)(=>QQ^H7kik!?P2Jcky9s$NpHB*w4Ig|^tuGs`z}7+~7V zh<7zbum={ZWOfy%vRRMv1HCq7Rit~#6I28Lq!Wv}mU43bLbk_SAtuQ0Z^VE*4;b-C zl;d$vAIh7sq@zPk6Ot0mEvIMU%tR>>Ng7i8icZ&XLhw22zJ(GELH%fS4dE|O^=VZw zpC_zA#dTl;;X9b6!7H&rq+G&2SuPNAWO&}{((Z3p0S)uJ{mRrPDTQ2rW;IE_M2Sr| zc3xIv;+|M6%V)vVff{3_V30{TjzYjs&&pz~VA6x9HX_HzX7_uC{J$1lLe@{}c5Iv` zB%OmJx(h1&SS}U}%d~@^rRw;CAo81OC5%`($D(uFC~SPB}L1dJ8G)CodleXL3ku_M#x6 z^T=_hZpc!y#YinW21hLXW5zDj{h5cRFpoK#LIBlB`SQ>QQl(I|k~1X2@$ei2>H+dD zTn;29(G<;_>goV?W@##FeM{IWu6wAT(bF6FYfDs9>orJO4C|+6@9L7hynYh64KEB> zAtxHHWm?6VDl<}qsAX1b{G9bn7?HXO`|3?8q=>Es#EnfQMJ%h?bDlC$^|`AgdB zaP;leR-aIPfUU9%4xH8vU_)7BhM#!cW4*^`6Q&?uJ%WqsjFizjqa+2;N0>XXxBgB#EJPG-*XGu+cnw3o#{LrekYXCJo`e1m~_*O@Wd zHs)lRiybLkO~ut`cFrBEZ1=9&VT_pPf^i+@+vhHAv(@K+8amd_eOo#jFfU9eJJ#>J zxVyG|&b@CsHr}NaL}313fyD7cAmN5p_`d}b&a?xg94kaGNn)DItsd7;$ZFu(cyfu5 zAv9C)|FN_Mz=pAyP`u9?Q(!= z2p2DTUBu2HN+yaxj}G;2Pa22i*)MG?({X?P!2c98$Y*A=QGJE1zStx*AdUV#A^4a) zb4CfhXBy{cRS!_nCjRoSRx3yR9aW2vfZX9`eX4LrQRm@7t|&~iLf&JOU2GaH85asM zRB^h!ImANJw)Qc(4;cEhLjAmLbmDh3bFzW;O6C|CjQdB;8%~i%!v`KWL6e5DX>cP* z+_5A+0DjGK#*5}F!K^op-9e&Ub`R24INw)E$geMGt~e$H3E^o`tYhYDo)yJfDWV8D z8q30KR0uyrZyX1-C;G_?Ii z6w7fmG^yy1g77jlw2PBJeK{=3a^-^vN0%fW$*R09>)Yj&5UD4ZFlm%1=~qDM89d99 z2P(vP`8;Rh8a@OP$Nc)IR6gbBU$zzt)x2M|**wg5MR@KCibN@h3b%yqB2uTC&{YT2 zG?fG^kA&C%L)S5-y+2Yb_ln5_aIT>RL*#CJwWok36%r9`qWL8!YAAakoNPqLj&Gv- z>ASzh3P?0gWxrx**vn1|fmu`w>0NBpSUh-DxDZTCr%IT7c6%yN6%A$@@jrj04p|qM zDimZ;vl4=I?rxQf&;zP)gCNZ$b3RQ4Nmu?XonvGZ;-lYOf~l)ZZbg|^zzKu&*7^xQ zk^6)1WbxP+5D=6tzwdSPAngZ==w+Hw0#PCu;(5_ScG(m{K2f?Yt9^pH+>1%W7n=>> zp7Bj}@v?QAZLyO^GHvj!;WLU^;op|dQ(L>ciFwfMI;%9H+$xHqcYopARlzS~ZU`8? zY1^pyELo>;Owhu0%wDa%I7IW;7H1L;(QxWS9F2n;5t&B|xf zqs<}7DGKExL0N+i9AG)w#hY%}Y{@^10;q*XBG3c$<@0y|Rx(#)e?(AmQLoXHzBqdE zj20->=)^PeIYuFW-4UKT#Nqn18x414Dm!nMuXFw$izb&g3XbYKd`N@BRfuoBN^k+Z$XI6-cgFl zo(yC&<5(+);#k4mwZo|EQ`ezr6&PGHwlGhuP zZ;wQ%Usj9gBu9T}FpDC^&ERstNBngWdA_{jm&XOMF;gCRaoaQ)r9KaQQbR_otDlP|6W;fhrzm|i-A ze9iwN?HJ8IX9o7;-Pb3DoSG4yEKLY;)h9ABa@Y5W)Zm0P8pHVi(*C~%5wuPhrj3s41m{I<#D z8n>VmgL4bF)=^v*kJQRF90As9wy(Xk%`XPek*V!Nh_x=-l|Sx<@VloK?cIV_As5Uo zKv?PvSA5&GeWI2&_;nW7HU>j3N_{JMSjgS(r)q|QYVHVIgB(ZceB)#k$M$2$@C5VOVaDAm_Z#Lv6~idwai zq6$XeQr$)nEUtqZs`P%F4GwR83y8lu+59T4J0vGnZ)1<~lTmmH+NQ)@pFV%Gc^$|z z%oj+(`gE0@Q2Woe?hxutrA*NnV|i8Z*XP4V0*lYbQ+ z1>Ufq_1wARW$p6E8A;!zT|JT5+SNo$S6lXP@z-U4BNTChg}RGCVo38*$wRj+@A1u= z*CujY>wrH01?%H#1uVXM2hGG)ptix9NB~k=TPkcoL&pv+bmL(da~duqc+Q)_=W$eB z>Bi0P6>c`P?3G#1DbXIdFS2nz%+xhta?k07DIE^B{O`8J((91tVef%}=u4svrVjkdO93XWOqmCsS2Lr+GNB-VW9Q? z?9Tft>jF3{Oy-f&fRLr08?jzn~kEae6y=>c++=a`Q%G@zD=C_JRj!`y=C#kN%egzVto?3{Z8f+U}XHf zdBJnCYVS18olD&y?ERYgDg2J3>wGsAM}_j^sDOwi?RSUl_d?@%8ysp{DM?HDm%E4t;fHgaZab z?3Y5c%K|=Jk3FeS?Z+_7R-7O=nmkHrbQ6DJ=womQL3rSZorX@}`9Y|*y9l9w#P5-a z3+@PvrHF#12&*z7HFH4FZny(ar2mLs`Mh53#~X;u?}o?71}ps*tEhi}q8f^$U@kqX ztip*712vj(G9SY}h7+7nkbv%XO^15pt$JV?{pqr(X_T0H&9E%mXwq;TJ7i%&o$#uq zNU%<9`Cas4cuZ|_>?{h*xK+$Sncmr9>@96vole|8g1FK$d=$oVJg)9vRJs`K z^4N#)sJpa;bN3j^^0>A#z4ynzVFV&vP}GDO+Qb^G*n9Vc+p@UF@C5X>__~oee(PAd z^dw=rIH`yvmZzk1okZTzzw=4qMilZ)brHPF5oZ=rLWIdrWl3hE@sG5LLb55QbSd)7 zDF-8QCPzuwsHuC0NgCFP#k4Z};?juA$&NZH-%!&6KLirOv=H7j+w_#*ZE60z$-c`G zp4P$!PiaJtSm948sUB$=)@dO}N#<=Snd#|n5vh;jk`*%PR`?ke>FK}PGP2UsYGhN* zcr&=#R1+dH{EjjrP&2a$Gh-ssdyX>em*ZMJ5^HzWb$IDC=7L(S)BB#XrU_FLUvUFG`sGG{6xD^an$T{)I zeI(2{^N8147V=KZo=DHFk5 z`g; zxzk}I{nuW&FH=|*E<`;qw|o@(g}yMX4i*mPGZlH!KzdPf1jZ#ii}`ehKQ=7dfH#|p)nA%q9z&x{GPD_ zDsW6-P@Km~^vK~jsC15@@bJO;rR*!E$ZTbBY-LG&<#5!7@Tk%XIUP3=(O(bX%U6MzA28Zp1=cHv zn?lAVsxD|Pxm>A6maS|$7NQ`BFL9VDc30wa!hPxqtx#0?}*6ayYE&|cmxKYX`Ru&y8*B?>Ft5I&b z;Bc%0L=QvR6Ro7*sN>b>V~ny>Q3peegovJ|E8o1=+GrkuIE_}@MGp{KZLqRLdDr^) z*j`r5O^4tP2o9*l1Jzz1H;b+|CqFex%ePv}H|j?Vsmss=j;w)m=)SIOM5zKsM|I1rHf?}vS>*xk9i0)+SPy9QSVUAFUn&S}8@^z) z+O9U2px1U2_uQcOJQ8TEb{RxfcMIU_cAfuWj2sFONBi-cKAks0-;gp8C*kx+!6X z^bET1R{L}e+Wk8^=<*TCF#4b{9ow^5`H@{Nwg3k?fK0fnPS()((|&q`&hx=;IDS-1 zDC2-O#*j`O@>WJgEaONl$%q7GcuE@(F*ZOE57Pr9q&85Q#aPjLQh@Sxs7zoq8KdT9 zwIYLfCewh&~z1 zIL>-ns{CtQiFk6_pj?w5pp!TGXfO(M_7QTcLJO#9s2t8|7aYo(8ZiJM`QVhT^uxpq z!Wd5D#voFX!=Szt1$p)mDo!T@rz_|IB!-<|?WUoOGwnbCQcT6U0iX~A-W3WF|s0CbXYOap_y}hZ&(n+PFujd zYRsG;-})m2xjd$BxO(A&bi*p9qdR)`@I{tbfWjeh0(NGA?`(ZZaK%BecaUlQ*lxVT zuqlxoX1;2jxN}n-G#%x=*#=&}jH$Bm**dFUU}b>mW(0#{dYhjGvkVqe))vmQx92ct z7sgk<V-pKrBS~$I7|S{#o^`IXQR=vrl${ z8~EI7@7qA42tOE8=PtC%zzpN1v}3m3&*i(LZi6ycw{{D~*g_TB3a9}M$84$pFWSx_ zu#z@lvtMjG9e3=GI<{@wPRF)w+qP{xog3$-W81uwndSWJe^;B@RV}LC=bSTl%>Q+A zhInii+qc5a7w2`Fb1_(M2g@c10g_wyj5}sCgbe_m05+%4zRHolW|kHIYq6VGqx+A$ z?hJeec-eb=!}rg}@7U&ZSGI1vKzVMdxY^m~0HyYLMt`g9>KN2;3~B$bgK?m2V3Sbp zymA{Ryl=`o;RJqe^;GY&Gw;Yq{@>BpY1qQiz{MckpOy9D>g%s7$i%+`SI1UFXYPH+ zKkBY4<*#aht3GzEwl`-wJup}7=bCjVy7E_mO_*}V(}J&4H2;k^c?dE7?wF!mN55Yu zHS2$n??M8PEeX%Ozb*>>YRdU$?qXyZn)Hf2T=(8)g4BwZXHF!819^BOKo~8SwVVX=YUZ8Xtvr zvF=%`{#m>JQ8$0l8T2Us{sKUFa*BsC>4)KEs<3f*VgU_t);%HQfjeJ6I_?Y?GY!Po z&kHj@=?fsv+dq4vT)y>P`{mtc5msICUyqqEela7B0#4>L7%%>g$g*gID17W}?6ov%;gA!`-6a$N0{X zB;#JQ%yChb==dHYQOw`7i>q+|k5Lp`vb1(=3bjUl=Ocm=-_C+Cy>TVAHVZo}(JiwBhYE0VZzA zCzF!zqP7s0_Qz9fHIzd<9j|1Eu(bFI!d7nQ3k-(Q<+L$t%B(cm9gem-o11GBW1~py zUQbMxp*}J7WilwmGuUy4Q#b#tfds%Pp2MbooYn7i6N|w8D^q8@7_rA-!ue2_++U8L zMrHT}SZWky<#-+ex8Kccbq3|ju2QWY#;f(()ATlb4c9PCj5`k{%5VN9^QL{oE-f&3 z<=EJ_Z9wbRm$ep%T-UISRmHHKOVd?_UDLMQ2%89QO0(Q0CDB(xEh;;3q06u>@?oe9 z%>FL(*_W&DcY#2x(2;Ms6(_(#Y%DLJZk}U-!&oQ@yJTd$lbj7&_|sH4X53UkIE#-a zK?_mR6o3f55ihW-IbuhGZe5bp`^#bZ*HjQ~@s-F$M^#}MNkWSATzSmv@$3R8ISPH@ z!iCio3q&ak6uKL}YxA00x;!M0isgHwhcYf!$X*Ja^CFd3h>UQDJ;q|xsRHr$qdaagwvMJ z^OJ6_WAX;ohjl6nG!U+vO3_fNT7QP+($-P)L)A5So15J9ZUSbXbQPo3YZ ze;bo-Uyd3?t9-$1{+?%V*HPyA@-X-Mk>-8?X*j{9?H;YVZk%Sb@H!cLn3`!`GR}@` zVM*o3I+qV>#UL=Oqy%M11+z+eooA(oxt$b-t%O(`vPQodEVMybOjbvxYS`56tG}5S zg;8qTy3_D)YE#_1K^u4HhpsDh9CCatClqHRLyu84XB)Ub>;Ja=)9^R*cHEtaV0H-Q znRj7C#e3~Gm*KCcM$>9qkA{DW3#A=z?j$e$%)alt^H#cRM$?!~Jr583q+hPEv-(a; zSnFSTZ?~Q3AftO~o_SxdFv7aeyD=svYg95Jop-tXSc#>_)xUlB*L6hm1aE|;M{)e6|BwrfQ-&lA@Vm=&U+g?)TAl`8{_N7nWm=*i_}>FRr=QR znI{*+09KIFX*^86MhEJ$obtW2EZSnS2peU!feW8JK91C6jlYy{D&y7_B=gg~jC2CU z+9pKYhX|?bWg__CHcG9gnD7vKkoKyPBy-CYXIgR4x@9o}L)7#IJ~9!j!3`rS+M~EOE=6+_Yr=$ai|L8H z2-J6$(>fqZIlrtAIP&TaVN~ws&{4MH^(0R$a}L%l?gx{fJe4x~b4lOCe%TPMP?0w! zU4FvGu~XZ+l>HS;a)Af#6QzeBE~0R12yeNXDh-cD+d`(OPjHQra@21?T1OvBCtE1SHoJ zksa7s<~X!+;K6}d<@#ds3T6pQX_Z7JK47H5rHUD=Qe9^Xkle&p!`4cxInKROTc%cP zBv(00ZZ#WlwWI~pYru|)I~M*05i9B|O{+#DR`#Kq0t%=WN1#)T)<>%{ps>*{5)vHoIE7YsK)@Rh)%5)C{c^U8(mfh|$nJdJVg-^8$(3xq7dq@o` z_hLl)5(0>M$?p6Q0>utSMnE`7hx2I}9WIfiq+!!wj`P~@GXYYSXqdqDB zyX!yXTIW@5y(`L&>a=ZpbBXS47=Ja`-=FsW>9o@~+z9Ms+!Lc*e-xGHIA*ru6N8P&GHU`;#&%n*L zpKLt$^oHNASN8xz^NG?O)YO{JAJ52jX=O>AK3iMnmgnzdr(W;1{2ltr?WQ|nz31u) zd~)_o#@DPvBwK3wWOqnrG45MQSR46rt!wo;m&M5%22`9h?`~LWy>Djy&9erzXGU8e z;rGnJQ#Doon7Nq|{+NX|XzB<@xCsdU74vFNPzbY#X{Z3vM>g-I{sCjf_#5hw+#;%M z7%Q1Lg!gvfJ4oI{gn z{~LhkHD?A5W*w!TzHAn8Dx1Ap_mS3FV*>Xlh-!P5#O#G;t1pDOUVC#ptfR`CAJ9?l zdnMS<6Q@!8OaSUdrx}15v$8V^0IlEPqjZO(*!5rf@Ewu@y;dW;Tx)HOq|;y2=3kYAG7f3-8+#NPYZLOnEd(oIo%+_XW%%|bLuwF z#VygtR2uev7|Qi&Cez7Wc<$&lkXL0d#q)d`HPecosG-*3?ri!`3<0sfvaG*jAjHQ5 z$hrHU4f5Vmcd4=HT-EG3xhQPm%zzcyW7(Csdt=*UT-hN~= zU~%8m*v<59e`Dz8uUO=D?d+RL=n;kocRm|1c;{{o%#w}n>$+?3ub>Wa4vN+h73<2MJ+oZ&BIDF2%h#Cz*Pyl7|;X#>&dv^7*y<9xt8RtwX! z@lhoVLi0ke{ODSn7U&%A{XyQf0wMY>Gx+y|y9h({ZMc7)2-MR;(gdYiWnEir#cC!zu2zzpP;Cvb$(M4p{x(A-EovUSN zNTrvamyhpYWJrdQE4X)CX5dAHyWd2VlAPOOM6}1dpYnrGB8O)aqi5GdRQRF)hbsGz zi{8&}8if&IBUwJ$oKD^gwjn3*3QLidu6m(~9=7EkPu)?Krg8UdF(i5sWnMAVE+%Zu zF@4c-1x#_F^AQ)`F!GBrf{+nH*%2bqE@H?&{GLG(RdEo3D7QV^(10^fe9i=!kMK^m zqPnr#b=Zu7(&+qAO3GInVyQAnKE&in5mIWMjR4)7;CAKjpP+=Bo~c7kW9gp4560{ zAm$jidx z9Eg~&37ITQn?3NAWY4LYgo&g~EfYwYXULnA4E#8ltK5^n!W4~Po|qZwZC;)`-I|hy zRd|b@rwEu=(Uegzl{v_f;pUa5HI)FPn98aVG_|bVB#>3_kzxyJM>1a6f}De`g*MEP z+pw)&5tTei8SM0tQnZwz^^tx@ROmoZxav{3q*ub46~f?Cisps7Rb|I{?A^|uIqvvlfg3?pukmSZ)OW4y*$HySTR=5>y3#2wv z7XHo1?TBXncc(lQqnO_!V++eeSGs_qDhmqnkqv)l+}x+_U;hNzdU7RVG1YgrB?F3S zvd?c9|1vkj;;ZTsmfW-n`-%{`x`m#S{_NjYTPgXRVPrlDSu+Wnq9tn&fJW~qysV<~ z=%g|O(JhUdvK|0~SJAX%G}A|Ae`eTDY^p718f7#bJ7AHAQ2A%=U+is_ThVzwF{OZB z716_0lh}D9ta%bUrREx?fYimHQUwrZs8aAJfOJ&T{ARu_=P&Z?3KyZ4EX5RCuOd8! z2CUj@Hl)hr?vfLQniACNnD?qytwzG-0ta7MAp1ON=$b#2Y8?CGw?hMiP&Q=HZ4u0wk z)^4xX>TIOyRoCjQ1A@bI^+1EYdO$4Q?oXYu(Cziv?Hiws4Z!wJ=r%>`*7wc+l7H)K z1q~|}%&HgE81&MhwgI=g`KExHhNTM%u}i)k_gEc3sXppIEg(B^uU79Lh5k07zF_Lk z5rgi*tlkMB@XK!T%?`M~ZLnRcx52JFWw+Dmx~ah@MCZB*sRpXHRbgL6j>C{p$;@dnye^e6^Z-1>_Hm?WwCU;r%mUvZ zjBwPASjKh_QVl>v=DV-CyL-My?ZHMkZ3a7HMx^}uTq`@jf&2Y>hRj4pt5pm1b->0? zbvj=#--myq>SFznxI9JxS3O1N?JYBtJ!BCMn2F_6we2=pC@!~s+^ZelmHprLy9$i^ zSmI{Gh`eQJn31aCk@Ly| z1@-}jy$(o(e_=Lz9IAG&?7t)b&Pi3k+&p>rtqmRYsgu zCcmZbjmf_0sg_w((p3*E|BjoyNP;{7IMb)zg6khJ`YR?%b!Ob<=s2RyG@8*WyiFJT z<{-1rx@OKgs}CAIPbbHGoSt8i&UH1ZOwlw#LcJ%WJVI>NS<6kUNS|o9;9;OqZ?B}` z#1yzt8MfJG3s${iJ%DUmGX}-AX5-vJGrquJpPT{ublrVdXWTB~6D@9h&$%Y`%gy(4(@yR=uH{VwO(ufAnXs=qco6ap zi0Dsw0t84t3L+dH;`$nr>JOO3pYIMBT>K48{2y@Q8&XTK(_V+Uw)6X1;Qh80`QWAg zFBlEeC=B-~%-_&&=6mj`4l;Ac?~Hr(d5%B&9SQPp_hpY=(j17|QB7H(0EC({#{a_BI>KlgLy=2J+I_mr;6?v|jLWfcV%>YZZ+ zjpIk4Gf(EDO#5YJ#{=r&e-5mE#A$<;!+C<(#-$a zwBC&4*~EIsf?42HXwFH7$sKbQ(V-sI|G#JbbXRSVJKuG z?&7F$942vhcKPax;_2-_myqibJ^vCX;hCuL_5^sL0(c~q14}^Rf`7cq%H2^NJmmB5 z3_&irFdhOLx03xX_U*5>tFJl7_YKF+re3!ZSFc9?FUjH0V59Cz8jqgt;GX&3$qJro zOl}EO&T$%V#S(7`3~$u_kLB`F3hf7(`OfwV?|-iEoANO*1YWW=yaVbVpUWOo=Z(WO z92VTIdn8^XBqn_hG(I~~3^^l!kp#oI2e&^=GWqdK6qERC)YrR>933mT2MpJHR7-sJxhtPM%vXV4 zZiyACQgzBDUmqQw6F`220wB+E-|uAcmV^I#j)Rc6`6A4BTObDS-6El2Fa#b4TUE1R zcQ6nYN4dt*kwiQk5{=TQ0&#aN7F`TqbY=eEWYPfS6U39lp#asd+yz<5`y<(`K>Mi_ zD`)e$Jl^mzNa+?!xkC0peD*bGbCPmSUv#x9REvd5nM(WFtdw$%%uwArUYdoHX@43C ze3i7@-HBj(p|)6$o5KERug9!l*gL!7a7Y2<59*{Vp)|&M(3c2wO}=1;d^Afct&5ZL zj3hfwY}W#na!rARa~rSc?p%~Yex5zj+u3mr2b0Q|*BfQw7&U2iXpCFwzP~+965=Gb zz2R=i@2t&ppWVAb$IT!Yp5H$=ha&d`-POvi(_Bv%*}YU$gX1@~ zh=Dbmd8)JLdRhi57jB{sRnzjCG;?N%VGd|wh^Dr6!;7vC6IxL@Qm)KQ-IP2})m-9R zR$P@vWKO-B(c+h)k?QW6X_Ss5zMqJB$(V3<7v$rmCw@%6Se}WQa7`Y2?hr<)p@}%tK1%di&oUOA7Ns-M2&jWx?*I!eKV3_emE8q-gK9&xp z+%YtSkhLnYN+G_t5`;ibsHDXdk6t%KpZb`zcy*L?- zG?F!U^#;*EY$3AxB zOG2vE1@Tfg@bQ9XoGoce#PK14=U!Pn*n@_NZogE>kcI$`w#9|_#{z)1gwYn~GZ_ZT6Qf!Eaus2$|RO;D=`4>9eYi4R2rG(Ly6lGLvG3w@zQhE!1c3p*> z#LxlHubS`o3um#KZ_%m@RIG7q39VlEO`vKH{}eKED?`d+_6ljtn`tXv-jiyOCxg_L zFg%q}n~L#3lG74SWgWAPO)hcrjeF6CUuvnH&Y3$+NAOgi&C6{zO7bz7i!fJ?E=i5b z+>Yjow`?`ChW%NNt}?~FLco-zSP&wkg?&jg#EkD29b|+2r2RBKls8q-0Z_j&w^nSI z6)bgrtia^cYJqqCTRlg9mAOf?dH zVF~s?EFj=A8i(}KgbtL7LsLzgB%Y9rMj=^o~3K~-(8dXqtTgWw&ViQP5hfO zQ>Z$RekIM4+^!iWC;}thxX#VSAcB>KD+~f91iq!Oj6hcyN}JC&&$@zT+fFbvSr`5g z-P@q(lpplVWbY0;-s9Z(sRn~LR8koI7=W-OIwSYd*p`ib+dwr~!}nPC)JoCH=+@|C zhP{f|qRmkvRO5ph0_`5_avno|PJ*3QAlD1@{zNR%vHC_fhM z+C>epQ}hJy)Q%{nNwMNm5S(*zn=9usJCq&o6fP+PREpFl$Olg@MdC^@QOv5y9ww)v za~BF9a;of5#22_Z#^vI*&``H01|f_U@mxpfcEI6uDiU4^BP50MQj_C@BE;D$<{+dIbX>}(u#whqmIcOxm=J2by)&1^c zU~%xN_a=Q=X=?)o{t2by-F|ZG==<4sW5~E%um{v4nEi^(;Us4DAJlPodG9s=u$blmdObt={$KF?IL#e{81Ko zeEO6*K+#@a|5`M9+NDC8?bTiEC~F8e+IvQ=$|Yn5-LAjWtC}9=&2wr=xFgNM^hi;0 zy(YN@BDz<<931oJ!SZd&p~Jh?f8caf5SKWr^kw$ffc^0dm)MlecZth{2(&|7R->%% zYrkZ7OWL;`k>M(wt?u;GkvHf;Sk4F&^p zO^mt2PBf9rR#5G^Up=ZqEFOg-5FbLz=oHJVTSUmWtWf@J4^XGTWk*;`O`N=4J-S{0 z5X!zcBcQuo5&f4tcA+Ab!yOi#2dgzW@Y@Uo3IqZh)6rnbqT&&+NxD@5Wq zsM|_{U?N1AbV%HMnUese1*E}xs$4q6Qh$U@)+xvxj|HBJrNJ+$8Y>YJ?h>|TC^aL2 zbb|1<<2>O(fdub(I-`0-|M9N~>rEy6(qXL3{WF*(lo&N`nh0qW{TG0bR8@dQgeiKG zBgP9h00QmH2^k}p=%Q_tA#Kb8JkXS@n0pYYMUx2!L8wK<8S9W@$O7V?oxOG zv4`^Hr}jnV$(8x@M5l@~mI*{DiHr}oH+Ku6l?;TGAqDmfR91dAf$gA9nIv`UZtfoH zo#7{1ndJ>`^UrQSep2i;62GP%YAKf*01HL-c2BhqRLYDukbtOpCK6X5-Ob!R)S*3- z4WoJn^RLo9u_2)8R~|Y`N$f0%kuZ!bIx(U&Abkx6SUmCsbPqpz*o zTv2LKWNMXUB3o7H5w)k!md>GFnh;9yU=^-uOe~@v;tH(+{ib*JO3nc+RmKNcLz}3E zSp>8Z>(L&&A#d;}9hPZYka3inq?Lma?TJZlUl*WlXqC7E;l1=j{8n}hyG-^j&1{Rv z#Xf%8a8SnpsX2)#4Q7BbZ)6l%6pnqRihCvxr^gRw1!~G>hVURN1L6Fi*o69L=5|@b z$mn{oZ!3{YrDEhLH&W(FmB$HJWJe&vL<)H)_lrgGz|p9cJydXFzo>#R z>r;7bOEG2|u{|174zsYM@;rN*xFZZ9@nUmex&A~(H1>fGEv=n+h!^@Agtl(P%KrW1 zi3+q%&Wa@gWu^iAiHSMwWhfQCnUzD>Y337E2#}O$>}Rd%S*`7nv*2lIZmG)MPtT!$ zcZB6d`m|X`dZNInEH~QNB10*;=5!H#R^`}LuyrBcFoY&*$_v~Fo$gr_w?`{U9bE_w{X>{`Gr1t&6r!w_lSKWjK0sQ zW&&t4nMXfWRx?#cKiyU{-FH!{Mn5x0Kf5RW|8s{t|C2k^#bwAEaP%Z%yf|Di90`RQ z|NI%=SUet2A`(R))l@Q>Os!I-OVf}%rH`*QMb0U&CE?HNe6}^|T<|lW55_wCm5h2& zpHvT?K58*#++OR98x z-L}7Ch}%b{qK!~1mp&jih%(A2amRO$TS0|-z2uaa{N)RGr#e(nq zFLx46_|p4$FVZndoGAD?(?Y?8&=f*T(#&TC5pc16Lm^@!wgZ99+0X^zG^3|+Vo(G1 zehTU5fvz(GmWKu}tYcYogM`xRP=AWda96@L75;H%TTNs^i zTpGONeA-`by9GcyjBIX5Jou9$?^5#wXIJBw`B-WxJfrNGAv~Hw6|=L`a-Q6>tf-$# z+$nhlWmQ!Y8H}c9k^y!g7_6%56?o-pito;fYsto$O_@58s8OZomoGcPAf=*zsX7Q}QAkZEk=w}sa^1t046Q-DP~i$oxp&9-l7?QEE2pJCPz1S4d zW}i!y2a$KkW`%E}nVo+*b4jEA$MJSV39xb+&@WzY7hdv{vy)1zE8)3_n0<;j8Ftc6 zGKqnx_t8uG_$e(ki-GAYoD#rxf4BC(!5xyk+ZrR9l}uBT=t^$nJ;g@^-dItJ;t26l zqnafw{G_Je71HM%4)JLSh1^9#LP%;0ytpAIrO*Eb@~arU7u$Cy4H^?pp+=>|4~dk= zloXIg9}RpkiBh*UmTHJVYqN_d7?PC4I!6~{R92!emzBhqTZ(6iyCt@PltOuQ9}TAd z6{o-kOT^bSp13R&A8;{&^&XMHjp{@qn^S~7P92FegXZfXDv9|MPm)I4iNd_(KnOZA ziO>3uCP{Mpjh`k}MBgcrW|xdjRw{v3z9}`AcjD)7i?#&L#1sqBpF*1J_$qtKv5>o? zFH;ec3`L3Qom-|t4IUG}$ec-iP0IxR784De;*+8Z~ z(vKIx(~Pi?D-Ogh;Ja!4g010Pz+@e0q)f0Az0FSYx8kOj?;V>ecdKchO1uV^W zR&tRS2{2iqwITechHviB7-xEIjQgoE*42>gcULl!rVwhztgZQe!TOwWT65m#g~k4V z8*^zKEk$Cr<_g_fLJ4WDl}HR$tkbXpAOaIA|7~4+6sJw%5h1Jrs4ItHnXSDl_d7BSJ>+`fT6_*>nG8FO%PPHb%_UGx5FL1dh+S?k%!rKN9qfYIP=OUPGQ=#+Xkuc5S!eW9`k#O9_q`a2$@tPCqV6Wvu%2qf; zr2$9`a>Q&w_CnHJYpwZ>l{R&@x>;LGjE{YU8wx{cAJlU_2d~xNWiEBDcD73S+)I=< zVAaPPLCmP#>;I2CjJ>oB7ph-9;;71Gut!e+u`U+Z*5bZ&`0z@ybsXnje#qe98Vrh}cA}LCz=YV!PA93@`c5Dw9O-uwH(`4y+S zMqM((Mb0t5f>&pt-?e<#q7N(Jb&kFEp^EAAL?}Iy^gZ0QO6T)@9l8sJG2oia&9|-I z^|Am^=O)zNdugN4UA{A?)ro_5iW)Qyf>!D+};~}`8T)yeb?smUY`XRY_+=mJN>cY zg2J6>0~K_s{A@_Ro7&ov|NLyiA-mfBssVm$FoE^s{#C7>IMh0TXDu*J4;?mXl3S?b za6dfFAj%A_2P)XB^q_z4LEpKjJToYkjDRXYV8NJVAWP)W`( znTQaPmk_O&U?t5^QIAk%*l=^$P|J=Gk%~}j>R>`nH!}$Vn+J6WBX!upV7`~&h>kFK z>QFDqa81x!h-XE()kK6`M0iq1klR|AZAOR{H7vwH=(V^H%7fnb_m`GtNOneeqDNRZ zZg9d&P^4y9u1A!`T4aM}XvIV%?OHhhpWuUIzBADXBBO}#i0Ee6a8t=JkBS(3$;iow zXs4Hmg@`ECiLkVYn5u}#O3vVX&8VU^!HMxun3tHzh|men$fLEGL)g%%wYVk8xXq53 zY0H>H%djKMSmCwU0uQi9XGL5guhI$+*NiwP&4fqJunfy+`IEQ{&TwzZxaW+xvy7;k zjF`8H(7p=6UFx_O&hSpyc*~cV`-vDbtpp~IDCqUXOV~v1wS*UsL|sc*A8Y}u5@}+z zFai+V_l_-=n=95eB8jgvj)E%%&NChrFXa_C!S4laOoDlv+_kg=TGBIxhbvXRGfBuQ zMWZwI05n(0aEo`hRKg%e3*u(VZ_rB=F|XSzpbiZhqp zy@}yl3#zkJy5~1{sFk6Imw~q)PlT3c{C$}Fn&CE?wub|~qbV??i5jK|hQ*w&440Yr znyCYqoL%{+m@Df8Ho_GW{rGp55?of@Yt{{QX0lc$m?^B$Ko;0~W7 z3Tq{*TqQ3VZpL+4c28$c0@r_8k=c9YndNY@m-kXmrw|L79@&*SGwZn_uaWb330WYT zWRly^R$*xz)V%D@ytT;O`O3_#)7(3}Odgn=lGD8G)3obh(R3|T$ngB@vAmbc%t@|% zXs`6`j=XEQ9E7R#|5EcFXrtk(&#Eu$1gFoF6H7br1FY!GqHPbFW_%_5@mqmcM;YByf zNUI7ExP6FS1!~muCA^9#wF{%FN{yu}0=mj|Ps;Ng?utXodLul*7U_-f^;%IUXSPW&3vtg3~LnjY!8rLLMW_^M&Ay3@0|dHlK~+FDWW!YBM{ znJCFoEzS>*+Apv2E81EM{Mt*ex=Q>qD1>^=w_0ePy34m3-l{qEDx@34Mu3` zmhLoiGrYfw?a2IjHW!B7vSm z=%be@fmP}tLFfT5gkt{J>C;W^k@8>oZQsf!T6lHeG&c;sVjp--mrX+7*L&?Xpcg@? z8v+dR3PTJ)0+If+V{5bT(|f?zx(A|XF#a6{B47~KryEXb5Q-E6dY>Q85VBeY9VccG ze`b(b77S!KKtf*(7lY37{ixHU9+!0YlY!Ibpc^R;_u>!yA{aIj947G@=G3ixSM4_| zl43y}fm-ZDa0C;P9pUg9(fvTwwjBmH8YMA;q(oGKE9F=5Nrnt;WT@$L9_WC`DKTn* zcIj!WY^h~t& z%$nLlk_k@q*zmJ3&$Y~S{$20%z4%tKkM`Nlb`#8`5X=)ROU1XawzWu5J9~C94nmy> z`j|b(7~JQbR;!spsa=pkTJHLoe$ZVwm6?B)oh=@Keg0U2zFcCA1sv!MkjMT_-kMXI z1+4V^J?a^&+*;nCM>VafKTiIS%V#-!aLTH8`6y>jE_M{=a_;71_5Ncuh;U|Ju#c5s z{yQa^QnNHkw-!ja_D--)xjnsxxM(xG;>|F9kTYyPqYe{@MD}NSzh*IQb{Tbc@$3Vo z>tZ!(77($$A>|Fm^11PfIA1fnR<+sFP`g%xv{_NJk}%-C87|SM5LVS||xUAY8-nu8HIX$?AD6H~bZF-**?6e=W4OCtzWZMy`(q zxQ#!z`=8$)7vdZm6hEx|9Ov9F5;8Q4{6UD^{-Eu_cI|=l&0Z|hyzJMi664Nqq65OO zeGEdiPs2Ufx;=H^@}k{=G2>w{;i1yiL3MVEO5Q<`?~x=wj16#4T>sGEYk}x%pNwR0 zw-~6We@usbY?gN*iVW=tJPH9GIDqDkqWDit<4&gNj%4Le5|K}0fk%7i$Ct5(lG}W` zBZt0U3*ZC0g>(O+Y7b)SPOOm+6_KGW>$(D%Pa5P;W9*MY^mnUx&Xb5v8yHV3_>Y{w zcJ#kcijmL2{q~rlM*WL=v*tR7=i-MM|BLFmZ=7byqm3XW#+Xa(rjSc_W?nXRC}S)_zy3 zbq5sxIzY^DaXfH)`Zp``SLSoD@bhbMOv49^Cu?7qO?|h26V;wAzlvkU7sOezJl~Oz!z_O;x3o_PQZ6=p_qoj18-t^;OhBrI=-$GzYyVf zI-YE2k_Rr6{mwv)H$8c0(qFd=Ut6#C)2t|GAC`A|eaG|$*W~f5msfYJ{!h<&BjNvU zc;}x86ds`bVcYs{FmDiTcAowSz_<(C1Te!1FbxOnboeH;xT8GcG9899o`xr!|Cxhj z@xLzbeAE?q^{4+&AN060e0S0N_~CcWi1Iq)x54fY>#p!NX!};(_f*#Z99{ohfdc(w zV9n3qHdzr|RR1M*?jT^`0W;x&5b?N5;jPx;ty}-CT;Yu~|A3-lS;Jv{SpRzF`Yzpn z&#R6vYaR&x>ns&?*9Jm-d*(;=s(&_Yc$-i-8FILXPPA{0D2}@X*fm z73>Gw$b{+#`eH#u^+OKiVjCwJO9SAl=#Lj7MFcuca`GR{Xzul1lBjAa` z{D*cRz`&wfXIgo;FO%`hY_3G>?~z;%m+PKrTEU?L9y3!4y=PLfcrxj4rxe&mqoF8d zEJ|DI#WTTh#Oxrr`}m;MbOS11D9lHil@NIpy9BP&pP`MudCINYSPW`45DXmj5sy}I z3DW8MxKoRNBoc^Jz|CIkH{>T0DHO_lk{hQB!s4TRJUPiHi;U{-QY}}Cta`QHg-dh> z&NbWZL4(LD#zvsQDl82M;~%U~tNupz4tlk##yedYt#L$}!X=aGp}&_9J71a*(U@r+ zj)A$}^Qj=__6vdz)|31EU=Pu+-3i#F#i93&2b6_C0~|8 zn9&8Yg`RcWaa9s!ITXBJKn!;dr|roOXQZGDBIK*0gHfY>fsOHCs;DYanvOtBjrvP3 zU$7>Xsl<<+ei@wz?XT@S7QzM2L<{%Bg435HepO5tPKEd$M)Vh91WQ#S9 zgt%2&ZsG%XNU>pnck7Qx%1H3-DAuNnGmnX(3_+-AQb8Q zgnI0Bps2v&==!T7Rb01KRCAjBnb7Rg2Y(Rv-N7@$msNHHR32&OV z80!WWXtkVY*yiz|q`S<~EWO;<^P*vza-$d$33=@|vFW!4%Z%#s>hvi_#@lVe)T8s z!+KG_XA*+#&j+mzLdth1qv+Bw*S&klM$tP1vUE3%nLpy0+neK+(5zKueANFY`#F8; zL5r*J4Hj4a7a>-a|AiH(`XinYgCrfK!EyCYkpa!^cC-Oe;KX0T%3;xwBw+o2|4oP{ zfco$|6hhbo4FGRtgLh!@HrO!)M_xw)1xDA}AKIE_9D;(7ZdUMKIxmD|$2i z#9q|IZCo8>bbJ&s_{jMsOzk&9JQtAFHF^WtUjC6qbpC!#Q%oQDK`-9nJwhcPLVr=$>A7^GhS9Gv7o zdQoxZq=l*isPqmY9x~+k+s%F0O3hJ!90v+aPE7@lfj7$SvO1kvZshdTm&?6P2w>!=0Z4h5$ zls{%EqdQH2zOo6*KBfh2B#o?-FkQw}%(s_Kio>|hIrFsS-)|^IXib*dIEBqJ)|o)L zAv+bn_ZhNFY0nYFiRO&S5DO7Nr=l2Mb0!J{6*rxid?dH3B1S0XEh@~k=FnW0=M14> zDdobO5leE=hyfGU)I!8iN*-RSm6#2!QdX67-j72oSt{!-EfCF{9zAoH^h4=fPHgWKJ`lY zBh4-8gHhDn5IPrRnmlcVp=)0Ok2uF8=5ddEY~ZfFgp}w-p@j7~VF$aoJ5T?F@joUk zU*amUZ%GS9o~nE|4U3lziruo0XWQiwvjNOL9&>)jbmgw0Icc%8F?|!PNsc}F$Vz@O zjAI;Q6!tB;h*NW#y;kKcL$=IZ_A*exJmxJQ+R%a?XQIEnhb|9V(zYFQB}36?EEl=P z9gLlmW4z+#`jgI;QHE&mZ08wkI+iJp*ri=f<&abv(2RC;qah9HS`&KFjTZBl9ewCt z+uGK^Hgu$gJ!~=Oy3D!eb+1c+X*6S60DUgQ21$wF3hUX)p5}IvM=cptdm6?Sw(v(( z+8H&cd)l#HcdP*&>{}Nb(eUQ=u_sM$UH5v~&Azp=ajocG&pX+=bu|C@F1_x9zuL;7 zaI1~UNA47h8`Ts3=eHwc>WMcQh2%zXiSBf#Y0H}3?hg6E+x>3V{uJpOS|XS@d9ws=mIZf7=o9KlBKw1!N6 zNoDCbnddXY;>bh4O;va{2 zk)O_De>8n3e{ZhT_fB*hC*0?*zB=RU-t~B=J?v>ubh0C@?|%Q=^7^(szvZszn_oWI zoOk=?;U4$7N898;$GXTvu6Lxnx#}X&1mOcG_?%$;>38Zh;;sMP>60TI@4^>;D7ubs z%7Y#Boo7Df`@Q+*mmc}i|F!0!pZUsLfAl@KyX!};@K>|h_YRLy0%}kA7UNzffhT<7 z&E0ovlY1$y2fx-GZ+xBaK?72zaC7q1N^^#L%>@&Ld14KeW+{8lkKOHjOT zj01-h41&O0MPrzTZEG?Z1BWLQKZvtO?Wi#AxWQTU$ekp}ioD2z3`(F3%7+w6qAbd4 zG|Hdsz-UxTqI62649FA!NvdQ#btFkQWV6~6EoWddRFlaS#68iH$!+7xiCaf{yhm5# z$*R1x3~`cZhL3{iMlC;UotUZa_HYX#?cl-!b>&pLs@XE;ywNAUq%iPSOlg*FJfYrpv=QPT` zB+b8+&S$L7*0jWkd`|A{L+Zp%ON>qC9JR*96f2L`?!6(4d^i?tIPagj_8_UV@yg&amP!l~-0-eqQ4NdDT$mkTxsbo%`OolSh4%@uV#5~Wf z6iyDcPvly3q)4N%pTNYh-+Db-E|b;>OL zPX_Hwz0=IitWBHL1Pm=w`t;E!T1o$l6C57pP$R|AB&`N9t-2;X&t&+BOG}2eB*!l7 zLOwmmmq1ZMEmT82R4=`>e|S>k3xz!0Q{!XHf2g(`wau4kQZtoPO@-4SRWeT9)J?V2 z54Fw9%uGEsK0dv_b4*n}1%-cj)P6)%S)El{HPBTB1wKuNM-5cQ(^W^^(;DTy8@162 zqf;2jR8W0W`ef5@OIBwU)8rIWY3(#r{nL*~)ku9+Ma5NI?ZPOnRd5a0T3ys`ebq(% z2v^NhSM9=d)zy!{Cuz0O+vGitan?{3JbO*ncs36ZP{0KRYy%%S1niLb6A|sSucfIU6t5Z_0@v)Rdk(HXf;-xw8``QSWU%OrIpit zh+G)?;m2Ifc(;HCauq zQ+Y+%Ivv|}CEIHySAebBh2>hm)!Dpl*_N%@o=sP;y;fYUw&Ud38?{Z3ZChsz0`{S^ zP|a7Eh*nFLR~T>rb^Y0|9o(ViR)BTYzb##dMc1C~S*ayg!Zp})1qFEJ*gCz;$3RkL zh1)ZAF=dFFk8Lm?H8=n5h}V_1)YMJbnEhFTjah>w+rBkj=dINg5Zu&dUC`xLvc=kA z4PF~v+4Hnd-~H6vO~Z;yE;n^a@BIgtoCf4_2K6=HB(+hr4c?b<0Cc@x&~;bqCD&_B zhUR@<|9x1|9b3U&-g9MLnvLB$ZCuPXQrq3o2J2LS3Ig>lQs6{i^flj?nBd`UTuZ&w z&0XHTbzQ+#-oeG&{{3GRKGEnkVAcIvvK`>-tx*p4;7hH~3BF>)qafCu06(BU4nmDf@53)FV_9^`~I zSQ*aT4es9hoQWsW;g3k)^L;S)?NQ&YU~f}ojUCqdbzMU4WCQ+!D$e3CF32&qV=x}& zEmmVY4r4yctOI-Ox7c1cRUiOFTEAw}OL6XKY_;75LmXny8tbqpIFn;Wb!6PG@CCXO?DZ z3ux(uo#T(-0bl+H9!Ldh#OXLrg!<0T5e-j9@I0o;yngxG#+Y# zp6V)AXfUqlVrFUmh3S?~=VP{jMTOVejpo`t;%@e4_g&=mGpXIx3HJ5qnb2PO-QIGB zX=7Gr0-otFP~}qQ=RNl8z~<*Mp69|A?0lZ(zfNVw_Upr5Y{%Z`oL1w;w&_wX<*kls zyx#2Pb!m#$j%sjbv_4{Q?q-@WUy%My(~gO<-rj1c1?K*j^|X!Z`>|yex~oj_V46Y zZu@R*zqW7OZtTnsYndKo+OE;FKF`pGiR;D*?|zB*6rqvDi57d$&^Bw8wp0h0X_ppp z=Vox{PH*K-aTQ;27H@GEe{mR3@nQz+*v@N1F6#(?<{TgGkBFKJ|L7h!sUMe#+}Uu) zaEu85hzRfS$3W-v)@xFk90|&bV`Tu6u<{Ekn&?@-D75SP{4;po$0f+^E+p9nn=Gvher$V@sRGM zK~MEO=ku9}nj~NH$Cz+*2KAU;R7T%)GFWE|AOkW0fitgkV?TCeckwJ}>0gIwClGdg z@N|~W^p<9H=|*x>xAlJ*gjnBjRFCy;2lsz~hbZy~AJ+*VFY*?vb!_kOJD2H){%T>5 z_g*LQurBUm2lHe{b1RSWe6RF>pmwj$bWa!LL`QUVMsy2^cIhr_a7J=qcntq;KldOv za*EIMb5Ct-Qg;h~bwNjUT4(ZXuZ9*O*GzYEOpo(lk8(k#b_Rwlv6= z?a#G0FY9!IDpgUjP^mHnTl#2dq+Uf|)p`_b*3w?Py1uIV_3f!kQl&T+v?u4yn&aja zxNvS{jMab*Ldm!weX&Kxl&c}bdv{<<$Zj(W$E?$BaGNdU z`~z+OKK}gr_w(=X|382ME|Y~5LBZG4dhOwZkx%dyH`!bxEXM2UG@)*PPFh(7CGv;Bac1$_#==(3OOW^Kpw*a zj6S)jnR_|Ws8bn{0h8WxD9+WKN{eZkl44nw=#PhCcC`P|b0d<(-CkM-fzWcw)pgKa z4mSA~XLasmCzHhC$(EdZs@0xOnZb2gPdBX>U!Y97CtQq)5{lep>0!jCM|%mjVRS30 zxt*9|atfV@;B_Zhi4&q{YC)+wny8?w0@v!QdjblmpS99Tr>rvOI;WkC)>=kOE0Py! zss#;l*oMev3aVm#f!Qgvhgs?uUn8+p5MBo%gY8@lDr&2Oxa!*0dpQ+ID3dfcnxLb7 zk}IdXwXPMfqU!Q#=b_^!`cISxwV6?s2>pX4V5Lq=Vu^}<8m(cRX36D+$s(-Su;|6P z?OofFD=)_zb4D*_Ps$6jj7yfgtDLunTjx*gZVdnHW&K8|TzSPFyXA!imxSh}i!IFX zVCH1EbHorsHl?)@eD28T7BRoleTyeS{*Exm4?>lWJZ zfekX+=6(&Rw}PfkZW$>;h|so=O?k6OJtI33(AYVQ^I$z+dgL- zWLs)`Og5cr!{;^S@4mNo*i%crVBAi&{dnb*gZ=r89W_{B)tjB3Hb$fiye-BV;mtSU zfBW9Mc7YT2Y_o=UYM!=ur#R)d=SJP@ydQ@?chpx~UFYo5^9e86B+GlY=&V~#edv>4 zF7T<#Q_8#1(LO6YNXGmOKlA0`&Jogooa_Gt?BiRFwb{CdkpeNOYP8eb0W0@E1yb)H z2K-+}Oh-G@RgH5Gq+Ca6GCn8qPk~dDpaY`^K?b(PYYv1H^D<^X2*EFYEp*`v@uxWZ z*=2d#f}8|ACxMYMhGsmYVUU(Q`z7rkgjiw-rFJ?Gs*QgMeB$*Em_(}?@PSaA z8xqOD#Rv9}foJ2RgX~y2Ke|qbCrsVuAlSzwD)NwU+Sa5n#zHg(4~-k)Bp7Q}vwoCO zV4h2z1r>=wsa24KvqNMT1*u5xIgkH=3;dksEa^N((yovL?A#Mq2|hsDv4EIUpgR=T z#>tSfhM=4u{H(JbX?hAIcbO6}NJ&cErLY#sbRZ%3C{7=C#E*77Cpag`zY3nPg1mI+ zI@7sMbP}eR?Q|j*2S`p6hEs`sw5L1qNyvGgkO3?dSU*^pxWUK|njHC=L*e(Vhb4I`W`YSB(UR3yp}+6#^GNrqN5BSU2#Dby~R(KNBtONfgsaPo)P#LPRnb_P`M>`79kPKCRp!~>QgGbHla4M>k z(j8v!=74{Up{;Ixt2#e=)~>R(vNnCES!GJrwXSrmll9?TL7Ul=-gK^%1t(82l2D9w zbd0KvlT(R0Sf@4=BY`CzGeyy!BvZy^ zShPYmtM`=YO4XXhJ&yLDSxxC$r|VeBy5kM1MaF7_3e{}p?xD5it4MyU9cd1=L-63# zr?#_H*>YsRvE}VQIyxzAhVp2v&4_v3=#B+5xWNv7FoYZYj|e9-!V{)2h8KKc25*?d z8UC<^K}_KeGdQ&>LT~?ok+!sJrdWAI^)G$_%-e?Q_rDrxp)!CA;Azqpu)n48G>uUn z<1#NJ{Xi~?#fZtjGP%i27TD2_oZ=|wwY5v`q*9w|+u6z(uq_lCr#7;%_xAX|L3Xcj z?ZQUg4fn7a%OocAI;Gae$+(6^FDBWmo;hO@clQf$M{9<(K?{1$dv5b#sc&|&Oy4aB zS*i5pF|D)w>WnBO(5(IS?fe|&OiH<#DaQ1mkBql%4mqzwKDMUW3}_UG5ovT*4_;y0 z+Dqp3XxB{WHiiG|?fc;kLQ%zCGr^rr_S#jr)vg(2luhb%N4nS?+2$o5>R;O`L(KBa zv8rP%*naOA)`A20Z^axuf@68U{-$k=tsUUIK}gV26>y~C?dTMxThoxXw4uwW?jsx4 z*BsHfvd`=6dxO#AqHcM%mrP&*2Rpebj`WnpJ@MlnHqb`aoikysIE3OE&jOpZV0&vF zg|9lt8)5p5y9_Ph(sv#gVV4(gFp~VRS0**j zqq^E8yVmU}R-C$d4(+h#S+!|*v?kr|_v9{G(uUdvaD7Y$kMGu(uJHN(yWa@^hd<2G(9_cw;KR*0wI#hYj`um#1!lH@i*95* zYntNcrF`3ceO&bF-RvHL^v`cjdBwXM=yo%7CSf~ZBd7PuY$x^7u6#RASDWqe*7>$j zEqWja+^^ap_`g@L{(q-FT0(QWtp{!lFhTRyPgm;uz?@|^Y9G*uK5R!oU!EaUsc{?t z;@n4|oeW8t>@C~(ZIZX?8Jle!@!cKYA>dtfTN^Q2$$`Ym#U9OtQl8;e%B>sP!P~w) z9d9ulM!cWq0oCMjMnF*S+OV?je@-t)0%TUGKpgfgNBQO`Nfv8xg+T#vNJ!hQt_Q+@!IW zB)FPV$sp&6Ucb>H>G>7cd0p__V6<4BF_;4%%9=kYgFpOX9sU-W<(U5cAeh`BA9lpH zVH)MNoDh#30sM8{3p(AZ72?vxp;Gmm>Y3m9soo&&8+HgIGPd4P4dXG&SR4`@ zA)en4&R-e^+BFej;@w#+@*ed~;cKbUl9?R?wju!D4bIu($&Dboi5=m!-1fm<6mtJm z-zg6#dgHojpcjUr%S{Rcs>t#o#5kxR>8aW@9#zv(lhCN%LzW+y)M4gf2O#E{KNO-y z_Mqn3A2z;PmT4WYVdUW1qT&f2i)o*qsZsLf8L9c-lBFC1o}3bjqYNn@%ViP(wj8Ii zU6HYzi&-E`(xfu2P{%2uHDOyv5TV&6!R2klLna~~njS+&-Biw>>g}L83?k|=fmv4GApCVCJSbxh0^*jjU_nA6%e7YsQeu_iPoE(m6J8+~E+7*wB_%3h+#%&8 z3f@x2;uLC9EKcH3N}D`_Vw*);&_!Auw4mvQo>S3ZA-eAnoGB(?NGRU6wWAuPpT8X=S03XZW~OL@WFe{`A!gYPhUbiV$TeQ$ zmU(AY9u=5mrba;Ic&47NJ={d1o-yPBMoeaVA!SUqop63cx24^4DrG0$reQ=?bOvY7 z<)qBrB$7!d#xdxD668w`#un};MkK-?Hk2@yXM8GRM=GK*ZUj8s*t0BSWe%b*cF1Q= zWczJ|M&chMT4N&)B3Ek1GGYW*zUORa!~{4Qb_6L#5Gj!o#*uQw8(#lMk`}3uas-hs zDU=$<8*T$ev_o!LM{6FHY?@wHZU>8EB$&}>hsx&sxg}ER+I2*wBkm}`ZRLHzL%#`Q zmoDA25Tc91hXdYQ+0+L>@%LKMd+WL_;*>!JsCpqGE)8cEqC+YN0x+ej4he zHtM7bs-Y`>urH*Q-TB@XG>Y=8pq(&;DN-Cm0 zs-co9q$;X@=IX32Rc-F*p4wV^Hr-Z^{Y_qikj- zQaxRIh9`}t9++jszt*R)ChIj8tP57@? zYRAJutRhk?w92NRKHYW}Y({3;d*UfE&R?Jo28*UFh%Oy|T5S0dqQD}f99Ev0;w)0V zXMA#HWdiKWf+bc4PiE5JnbKc*%Imv!DU9-HS3>0+$|;`mY@2rGLxv>2E>%X-XX;%n zm%6D~%523_C2h(n%4+5#w%}<7tghW@58|kd&Mo@Ut2DhUL&{G^CSt>qYiIJ>RvIGS z@}Up%TEqs;AQmp3o@SR~B;N9DMl|BSjxFbHr{%IGk81zpnKB%XGVaKhtC>!2-kRTQ z>YBU)Dh=)_j22>+;@{}T-^Dx|cJIuF#5Lj{XTqSK2CnxqoXkS2 z#oB9(GGyKsYme69oW7~5-6&<=pL@RFpPp&E;%M)FFVX7g2mz3gYcZJml|*(T$^ zI+E%hYuF<}&1($BrCSz6RYnDQ+tCg)b>aFYUsmIc1zv3*>=4kx7 z=Zt!#_gZZWYc0qsFty(44478or<(8|-imt~>EWv6X-lpD(TCVs4>J0O! z=DJ|jo-H1BU5X-a9NTLRyKZdiaru74=tgDnazx=W?jn9MY+7u~o^1r5sOEO%<^r(X zp02;5te*Cl=XO%@QZm)@Y>qN6zrpLh&h6!e@*DeC-0ooSZt?OmZs6MM{(3~zK5r)P zZ%D!@3)0^LYiSsNY1LkC9O^Lnnr!2Oi4b?h5r45r1S&%QLs~jwCzq$kQgInC+yUcp z@3!gwqA6vfC{lUuQn_BTzU>fy1RqZ1XtMt+Z0^@q-mK#K=m2B0R<=&PJ z=d$Y-hcfe0CblwecX}^*cCsFuF;P+LI_Fj_=Pf3Ka=pG!9Yf`4f&^4XaBY5Z?1D6p z_UZd@X+XDdL`rU2k~G9>u@ZCLGLq|jt})BDpyKA~eS(BO`?TTCsU)v)3lePpQghO7 zX^sLhR^IVR_bac3@9#3J(75e=if*gzZ%W_ujhW?G65_*_t-N|{36DuvyJyAHEKVC$ zVR*3=U+zU(?eBJP<63PrhB7o0Emf-N3c7BHO0L01Z%DvrXG%10UG?UqiJjU+!Z^T}s!rCZk?jt}GmTubXZ&QlDo2eQZ%n>@K4yHJ|Cg_88lu z>>-Qowf1y75A|-nu}+URUfVM@TeLwJv3hpqr|7l8s;65PmE2P0m=;DR3u{7Wwlo_w zFE6og3wBoPF+#5|P^0WE({wuD@BeOIiW2c?a<@Y2umfMUJFl}2=bz;^woezZ>yEOF z-slRSb|;&0{dPnu&ODi)7@Aygsctq#6q{H_> zr?RA5b6zvAEE9F!b~=kg`bU#GkK4G8?|GifZKLb3hwu2u4l{(Cbd8&DRuB1F>$XQr z`LmQR4v*$Xhk24SI}O{pPk;1%XF8roIge+wTn{aAyJys;XS=p~s3SS3H?ZM0t}bJ3 zNJx8xN32B;Mz4#+c1zp2yXW@I!uoo<8dj?{GkRrq-+P#!aEe>Ia|8RUJMz1uFkuM$ z_E!74Pw;;Sc9Ac{LasoTep z+Q&WJ*FAdLJ>KU%iR*m}X+7WnJ>UaPKmY(C`2+<60RI3iaR5mGI{{1q00{p8{|OvO zu%N+%2oowi80}vkfe#1v`ZqBm#edNn{u}pD zoJq50OmZVhnzPBXr_Y}S9sSd`P^dyE2+|3q0_T^FhuBLWfSw@=s#VjZ>?Zs&!!Gf2|D$Ca89GOLDez>u%~b zcF8*?E5EF5kesoBc^W>H8}s-;+|U1YD!aS7^_0F}`(F84=C^-ueM0{?8*{|<^NRNd zwaRjPNeDbGmNbtLGy41Z2fFXheraLnqPXPTK$=WOkZ}1WXxn2YxwjB;RoO$3Jk|A* zlY$u5gw$WJ@u%1~1!@vNhF_6rVoyX7<=}}hQOD3f&e6x>jCL_d(uzQFrdenWLgb@G z@)6{bkP1PVkUFFZq>egJxJcuZ3jv3tO$h*11wvO6bl5;yx)jfBP=?74yPwca{ehOLV;SQABt_sM3j>xdN}BbeD+0< zqXMCs5S@=^`lyQkR5__kMq;{KkeZh25~q?TROmmJhRTv#rpEuOpr`8*MC(>*ek$v( zdj8c~hm1k+2d~8H7ARyzMM++&&E-Mec>iQ0kc0%iFp`TS4G0@S<7i^!KmIU^(1ixQ z0IM?9N`#QM#n!m3LQ@_j++aTKl#mSyrNb^s&>}?YKbWjk3qjC@KoTYG_5`O;x4x@t zZusI!+Li=KJD*GamW1y@^kpm^K}jZT(`>E%Dw9y(DipFpY^H`_Z1IY$8?q(KBx;6H z;YkvOJ{1y|&N5F`C8eFxbTdLcpC@C`gA(1aY|FY9lfgCFOOlR=p@!1YDxtPA({CPn zV?mZGxbHs>IG2tOj|Nc`J zd@Vy$lihirEcWDw7xZ*X1r9V~OcpOh_d#EOPEg=6ArQGwG*{*KPZXzAHlwRMP||E% z4LgwGrz2`8Lamiu5OHGp)Ja1rcfL|tnbY*G@dJsQJ6=Q^wCX_f{`wEaLW8zhYP*{84m`s}yw{`>I9FaP}X*Khy*_~)p$JDv!V;SBgeXj*3NwT* z7zxA}a&w`!(AB~hn&dcmvmrrh=t3C|1aCAf2oL{F(!wDIk%vS4p$`9%#D$=1UriK9 z3v<{$Wk7C)1Bs>~jH9EX0cf>4)P47sfKm1dJv@V@bxCl3r->dA$hFKiFtSl#Ef0 zE>R;i=(rL*ri71U=rdSP*|U z#hUVTrr;7vz+kqrm^N`}LAlA$MgD`9Ediq!9V*UMYBVA5Y>FuBNz8c$kdG9F$x1aE zPjgPC4vai$CR?J@+{M&`Jx$n8Be((vY|fbbyJIFDhlxUPkSJ&rqe1^6(vGfg1u6-u zRkzC3)o3+xU!CACcN)KYjunN`V_#Jlg4L~tRaPUN>g7=QR=9Q*pWGa(tm=B#zMhV+ zLRDc(1E^QOiVU!Z)f8eAYpTLBHn13N$}E^RSq(aNCD$OqKT5FKf^haACHQP-2O?U5 zl-9Hc`D|!Q8(Pw`HYKOsY-&y zkIUTUD)+al7ywXm%QWg1GmZa@Thzsue9YInVe zIInxZyWaNNSG?n8?|jv}U;d^yzW;@Cz=1uI)1a9v25cyi#f|e9y6NHJZ3O^_Xjjdu*met*D|Mg z#6fOvk0ET{JU>{;VP>?Qb&OsPo7uiW_A#R^tz9)=kdieCgBNgo;YY`L#CS$^r6s-T zD{orW9KQ0QB~58ABU;gs)~*I7cu$~wVGWa>vz?24=3?L3)?ZFEp6`rnG9OvH5}-0n zKBFKn_mKH5a5(>4y96imA`;$hh9kV+Id(Y06%Ye*CpHHESh#W*&T)+| zyx<)7cgROBaDb1z<0${{xW704@s=ap@|+tTpM4P&j{&_Uiou|dJ>$#mJK7V!ao;N5 z;~M{Mt@I(U3L2z~?zd;v&)9%y-4czha%fa*th9K}BE2NN#%fSb@< zQAk{j*MnBbhRnr-9T9(+H022#e{5i{dB{ z*?3O(Q&$!@j_cTt`Z$WGD2{_S6AKt7lO#+e5p?N@iWrxV`?!#kXaa|aaYbl)b~IJP zI6${35D_U53dxWhDTwJf5D+;KK8HXE>tJlD^fF#s!m-sFE~k z0wDj15Vfd{EHRGMoou?cl)lxjeeL`jxgAeJ!6mo~YWVHuf@8JUZz1}%vMb;+5% zC6i&PnUndMOj(q_g#<_mmX9fuXL%6Ix0V~UlM1m3s40}1iJFf|nUvX?pShX3*_*4$ zl(~7DpBbE>Nt&4{nzhN9GRd6G$&$Polbu=WpRThV(1!1C78m3}8rbCJnMtY-2iakww5@1TE zZu+KBdY1oqr3OKwe-uCg`lN8Wr+oUNCeWl_IuL-Gg4`K~2XT%95vYlZm3{x(sE#_J zI0>ja>H~IaQ|;qY3Q>%bN^hL{51b09P1>f9I;wrznsh3tp1P)rnh5tGrsN4RnjPny8>k5KWq^$oi&#O00|8tiHOc^rKN3Pyx-_ zsnjZ~1d*)TDyDyGtDicoy^2&8NpBT!rK(DaZM}qTQOWbegcBnu4twIoGPHshYC2S`Z!EvXF|hDf_Aaps}7>u9g2uxskFLc5&Zy0WMmvnLs^n%GYZVF>pMsMM;osT!|PD-c6_wabdIH4C!kDiB@U z0u@yd7eKW&>$TTP5LCObNbmzcfSPUFwkZm?QYyD>YXWwAw>Sy6a=WhjP!MFBsP^i$ z10l5vRgZ_-wbzQcQM*)lslx1 zySP43u8cdgr|Y$~ShBd4r2^pqx7fI)8?}CGw&fbSm+Q8*Nw>YLw`;4rYs`vWH6xPkvWvojm7v@5vbtEB=& zzT&&S-n$9^ z0KhODz!DI-E4;ugyuG}uz$#qA4cx)wOTiwzzJaR+z<>~SpohBx0|8LJwA;i#48Hcd z2K#%$d#k-D%);3_zbVYW%gek`8^d5M5cXTc3S7eYo5M6r#cb=qP3*%R?884?GzOHq zwcEyR%&;R|zt>B~JAB2(`?eBL0nPiug3P>xJOhpEyfgp%yq-D$S**rpT)*^-zh%t3 z`ryQNjLE4h0~)NQ7py0i^u|n_$xiG8S6s$foXS{S$utaT&P%O>{Ji!G#?I>l`jEnq zjLNK>%d33Jbv(+X{0~N8O87&{#@xoHtjo&0%*=ebFHFdVjK~CG$TRT5)hrOyJh-as z$j#i%-ps$p9L|9|%$+Qv=FErmBLlcA&cXc6?!3%_T+Orm%!NG7*DTG?jL5c&$TP48 z@BGhY?91#N%)^X7qm%#zJTi=0Bf+i3z5t|-OMx1(*j`xHmyILBmz)9%slPHOWn)^K)6K;)63jqBq0V_&CE?r z(@*^m>fAq7Qq?={)MLHOK&=oJP|@9d$w~dz%3RhYEzDI71NNp=P_5HfUA}m&%UoR$ zbnVS{tq@{e*b1!I8U55yJy-Tq)mA;&J?+@}yK4%O*x$U^2oVOFoxhN+(0o12M&Kz( zoG0vO5SD$}m~GOd{R5ht5Ea19{~Xs4joX@C+5>&sfqhN!6Vk8U)@D81YTLvRZK&(x*Bj2>3QYlbJmCuA(-c17v#kM{Oya-2;jo)N{QwLP zuHGWv#x7m~B%b3ruH8Q{2fA$1K)%fGeYq)a5P&x1487#2%+Nz_Q z+B(k8J8rKO(B=3Its-RDWp%nZHf1To}w?&NGMZT58Z$1ZtJ`jxX=X9RvcP{5YJ_o3t5K4~gv!3dB ze(O@+=d>;mm#pS(p5>sv=3buZ96mp0e&$}@>Cw*V$u8{_5a$EI>WR+hxen)fj_U;R z0|I^$sIKkbzT_%x5Z7K1->&Ti;qKWk5T&l@ERO8e-s94q<)TjM&F(&f#qaB#@5Y|& z)E@2Yj_U|N5a-_Qs1EL?F7K^A5b)jQ13~eo?(hx&@EQ;C*S_uoLGfX5?(BZ+5HIo# z|KkuJ@fslM)*k5wkLK6T@BjaR>G1RH<;~uYp7Z%m?QC8F_eZ}bUo^iQww8o%-_zvTsQ?MYAR0-?@hJ|hWW z=F=_A0YLU}ANSH;@)2M6-`?#huk{xn^#yV5YtZzAj`4v%07?H39WU`j|L_c->v|9M z2|ov55BFnF@XOBDFz!+7^WeaJ+HWuSo^S2sHULcz2>&4ZjNkQhK>FRT`g71?b07vD zZ}>@10UD6{q_6R+FYmWM00Tg7hu`<6-|B!6^hb~Dxi1jIzx7}Z`JdnX77y?u5a#UT z*QYJneBJrZ@A+Xc{Qv)u{D6@B#vlGq|NY#5@udI#sXqsd@DB#i{uNIF1~9Ws|MbS6 z`@>KE1Mm#i{_!0T5Nqbl0R-sZKR|O34rItM;lP6s{}C)`P~jX66f|z+*wG`$gGNLe z`A0J3zXS(Wu4LKL}!Utk;+93lraBE+$v?H1l-&AZ{P<9|C3QzW$n3(DVlA#8tHQ8&>cPmTiUc`vCkNl zWnOUm2CA4do7T|X^XH^$oi~S08~MkbxpCwDhb;Jg{P_=78{V>b$;00BDU8>gQ|~<0 zq?4{9_po!&v^C<|ZaWR02`{s-E)$DD=+s-w!vZ~|=&1$;tZT6UhQrH<{`7P4#l8ID zO*i6n8_q=dKn!s`9arnHG3-jy(80_8x!?lJFwD@jBDp)T$0w0`vOOHf63(UKWRO8G z7`ycHr69PxvPR)KX*)KIJq*wmBF5^>a`KS0S8^h-j! z^rwd5P}KjDMl;XUD9t@1)lmbm-kkGJJ2Rz|f@dW4)WbeatWnW2NiFnL7=tilQQ}x7 zvr$JE`*c=7G`Ijx(lQNF&L!#0j#gSj6;MzuSygnfX;4-6K4)|&wpD1$JT9@iI+7Jw zPY>c%Q*OEC6x&%#qzb;e#vQfQXIrXaS$2CIW;sP!~b$!_Z^q3)=M z9+&E>{+YUHmWxh%=a_XUd-0WOz&Yo`8MeAAp#`^hZEdZ#{Aj-S1aE1e!uZF@&h?af zZnrH5TyVL2-a2xZ6K8z(v(bkA+1A&-TB_6qx4QD7IWK)r4K{e@nJ|(Ml z2P%+(BP^K%L3qOHO_J zA#xt%dieW6E_C}?|EB<3_StQgEyGW|9S&WYc}CHp|fM{e?rX6!>IH(7v17O+(!SRn_^;5|Zq>4;}bl*OX; z4=$l_iHw{h8b3KnO!l&ry$mKPi`hv@B6E^}7$z|t*-KzX^OMdLrZcBGO-lb-(u}BF zpY+s+!1P(pSbvn3_-a>!LBQ)7t7Pc=28Etn^f#Vox0es zrczpntmk0PTDx~TjIH=FVrWB)OF@~`rnw9$1VLzssYaBlM`f&0xq8%!+IFx}wWv|4 zs#V4kHn+fiXm52}T*CGfmF7#IDnCe^o8pp{^+c@*K5JTsxp1_<2|^99J5%9^iLBy1 zVQX~?QS=s9y~$N?dy$)7_r`aa6}2O-=V}RD;P4&zFUIh0f*mH{ z1*6uk(}OUFZG2-KD>lbF=CON03|8t^ceOP=acI%0;@-Fzo@4)2t(e9-W1-c!$5WMYjMjt9B=<_hM>b^ZLb)mg|$D zyy;mdd)A;1qo_$eR$cdc*S?lXivi6NcWxQi#-1^!1Y1im;hRxrhJjV={Hr;o5!=I<9ly2jN-4509 zc^8z8)}wl|&bU3FLGslPl_LUYG(Bx2WmC7Q+8cXVHLpOfPjqgl`JPGGlMc43i$bc6 zV|eG`_C=rP;7a+XIYo#vOHRb#w-}l{h>`tex{xLyimj>6*J8bfgQE}nh zSy#XrfKKp4mF;n|XY;<&Sny1h{4El{_g3(U`1%ywE|kXEec~9btX{jf_Oa3L@JxfYjwb_Or}EZXCJ6AajI zH?5xUc)`l#_TLtj>Xds$zsBM3-j(l6!{}a+3rr3ay8B7WI#W_&ntg66jJV&8SSfKg$Pl^znKYq%=dYn#?UFW(in(y+lhmDDtixpA(9D1z!eT`6ANkY^&IYr9Z?B< z6L0!fDf%r-6lXsMLR_S$bRY$ypT|x@+E?O7h}b`?UbsS`lw1KAPSH&fiR4jXB9cK7 zm~c0u?_O4YqA&yOpdJBE(PV2B*4`&2QL?)whEW>Wh=6)oxQp_JkJeG49Ux3{gN0tx7`_%R_0Gm%SD)&IS_02^4ZFl1FJmS`uLX*S-0 z0^3$7KjACU(KsG#CKo&?(QK!nv_8PHKd=WaFA6oL!x27w(k}!vFsMG>6+PUXrLbBE zoamgC0s>b%=P?N?))%wUr7O-Sc@eJ5o zmZdc5J9Q)=nk*xyXjSIU3k(P>B9Z`JrMkTT^dAhQ)zsF7a*-bR{U*D}j1e<^oG)?D|ukw?@41(cIfYTJr^EBhW(pckk zz&7L~^lT*dY#G%oMz#nx%PgvbDwg8xgY7Jp+brV#^ryra1gwgL+msdvCM9qhKY0c| zTVZ!gw3h9iE(_Fx|Dj3mzJ{4*XNi!18FHiVhmB(EjI%VdNWF}x{=Bja6MF!4B0ZtTG zBZL!FObv28pJP3klQP$k@zaoU*O1Nz$yI5{41r{0G%!*?3I`xO+*zdy4fYR^;(~@O zDcmPBNTf(sVn|;6VjjYN4tYqGTTo44Qk}xQf?FBWA;)hz@;Uo~5;A^}s)IX&2!>p{(D zkftXpRK^(PMZ3CZ*U}ScHhEi}R#EN?0v9)5aQ0isFjz!CnEUbwIvVOYNa}=|FNc^f zJ63^!C^}$sTpcmLg=j;>Cbub08Z81VZQmyKME5WhH9CXPnZ%(5$OCnn4ee@b9ZQ;J zbMpnWWytY8kQMA~_Qf0^Wm(lwN1;d~cW6;LMn@S|Q(6+%QgJbwOCyU^Tf0iL+HQ`< zT`7Td#WP0RCv@qz;f#^soI9*ax#onPpI)P)ev|uR4vSukpMGo1T8kvCgyxz{_DbUh zI$dZG=ZB8_q+ZpAo-s{fvgS&!dstVIrk)~1V3Yoc;u@)yep|M|c-49fOCYI?ey87h z49j8{tO^aRK^={*7jB{V2U!5ZTC#mvE!R3XtZv+eHmRXLa&D(tEd;XH>U!0RS-io- zhaq?yb(7UxZ+%h+`8hmha$}=vB|Sxx?qhmTQyp1S?UYovpKB#xl;SEK&g5g(lXNj< zS^rowa&vNhL(*uU2DIC?vHuaihx;X*GoFwPUEc`WRW#mbFEh#rlZjD9jt{jw=C#x#oj*w~``{6#{xRyVYLUWJIHv<;@B zr6hmc2_B`OF^YsPHlekcqxCRGAKnn?-eCXSCHkVtkLNTXRz;1L#Q^K#i@$QKcIePd z@!?EKQg>;&waU$R$zx1@Xl?(;Z8-c*Db>mJhyNZ7tEs=?oZgJ-*WWvP^RLvIJscG? z@xvgA)HQLb9UZs@w&N|<)L*h;X0jH)+)+)CQO#2k#`}Hqei)hd#Bcs&SwsypW0W#y zy8Oj-xxpN0Zl|<^0}(0|YvvecVQqm(ySUSha6nZp9dWb28E<59IUno4$dw`w-+CtKoNeB=%|fhxItX;y5_f++WHn!v7c?8EYjq z`Nt7&&s*w1lWZ|gQ9Tvnq&Y*~2HX0Y)Ff%sJZAB0EM&=xvG1>S{3rD|(7`G^?8JZA zI->bFQphS(%PK4NB&7Hx(*hJ0d;D+nFy-;UTI)a)Z~LPZE}m?wPkk~)ap4GO2);2`Qw#mr0+2O3|FbEIAwrz1Q_D~(Q%Jif5G^5XEYkRFU zHnI)Pj$JCW(ZhB?$Zk-{ZivjR2JbwDH8^d?26f?QH(A5DL*#@JVj0>=m4o#N;4HxF zV2JfBfWUrU$i7|)QX}GQ8qPlD_=oqfzMwNyG$Dusd|(}$$cZPy;W=@CgmU}Ca- zKIvgu7Iw6VW`}`rq5Y^!7O@!Yb$RUXa2l(TVgf>+bU3SaI4)j13j-Z5US7goojk65 zJ+z@KLN0v5tH?OausTe_g$XUp;A0f7FJ7!pU2S~Y5AR%Uc3*8BIzlJejV+#o-5mRd z!w<*=daWQaM6P>1j$XJgUuZ4gr|jRF9Z`f4P?*9@GZ5lD^1)56nL5? z?UpIWm9OTG;7Z+W)TN5s=|Au_s`A};wwrG~_TTAl*q-dgE$>8K^0onvCbe;R(|6D< zu5vYQ^5Ao%v@1k%2f8gg_M;mVVQ0=IClzhH3{h7$<69c|d+?^6tmW+&B@d1D`1N#Pfp4m3`RFyg=VkP0akVF9 zvA@^kZdv2ezUgj-ZmGTGf|_y#Hh2&*c7=Fym4LrdN6ewpe!#@Pd&6_yX!gXFhBNcJ z4LH6hiuEY&_6Q_56^8Tt3Gc~}>fv1vTIW868SW`CdgkwGQ)!jOT_D-H98YI(f=< z1z`6==I!%nCkS{><$kq9f6;{7iL%ilRcJ&ax*Q`OO+q#ujetE4$ucCXD;(oN^@iNAL zH-`6&l=k|C?;Q<(u(Es{H1-%4_J}lokHz;Gfq(B;em9Ks?KAeBSn~J@|30eyIEC&l z#qB$v<~4xsZ5r;DGV|ttHP04+o#(&=z_8nFBpDFp&Q}$g9|FpRJ+}D1*+VYvY+U?tVylnBkH1-em zd>?@iSTT;=@xS<*ZmezDtHR%^^FFM@M+AWXpfLYnM-U5!!pAaetz8v1!KBiHhC?Bg zFatBcQ;84%8HqK6`E%YnLp732CSFZ4=29e^#$p-uZiQ_j9nWpLNP?(VA|K0Xi$xRZ zayXqS<=Ai5rfR92%jBN=?wL!(5rYM`F4RHI7Yl+Jp;Q=+x6=(b1vBU$KeDX1y6hFZ zcPv(}hB*;?;Ofj$>IC8EAT>d7nQ0`7#DG)n(p?K>@*;R*NvImWNe9tyP;#N9-%3wL zln|x1x6v$=(K3j~5Ux5Yq?G3A5l|7;4+Y>hxNMaFuHL9cdRU}Ee*bYBIt;=C*)Dls zA0xxN#zX*jht5Vx?z2ul_@A$LN0QhaKi{7(kC*sUTOVGvp8S$}LRqtg{9hjru<(&P z^Ca&SOH{R%K1>OJBQmy91f%ke0*oCIpECn+X?Kv$UQw2uT~up{nBxN_T|W});175^;grUkHe;J*P~Vr%pD@8uo3^AN%kDoq8YeHP z5wmC~CH#_qZ6F4^|AL94O!LMN+xvw>qjgLI!7yb-h1gw1B{Ba#3r=FQ$c}bg0K=Ml z@hPeQihlpm)E>>NYJauK7PR3>2;$V+FEYsQ4=wrDHEyny?S@pylxzs=ot?J)qV-Fw zXjkr+$6{pZY{L{14)wpXVV?Zx`pt}@G|GNL+Gb2^-MyBPcIgwX3jHjsj_Uz*`L;?EP|E6F z+Dv)-VN=TGnr2~gH!O8b>MJ6cc3g~7pS0=E1943QWwR}#_MMvaUD9JQ<8_tb00U<8 zu?_BSyfT1aHD+$Slzli;E$iE&v*AT*ic44qSB?Ii-nW%MDSVi1#y;uHO^TNI-yID- zIvWcewW3_+OEMU93gN=69URNFPU#wMNH-2TR|PkCdWHcPdv5;KZI0b=OI1Ir6o~!Y zngfg**$!NJ4Y-Gl<*k8(gwiNQ9ENFC1}6pjE3YTGY)ki}!{Zy3TZvHK%!ONOOtouP z0S5PdiuvWuIh3jV%LOjdG52DYnO?qGGCAcgBSPRdmahQV+EZbI+!cQ`aOqX+j4)u* zse0gXwfh~P&QfW~C)EL5vT!%h&Hka1_RXiw+D0f5(3))CHRCQRa!*OVe+b*jGs(!m z?qf2Uzfj$+gKTpAM(F62!rYvWtjP~;G=2ZrP>6Y{LH$bBdb#*5X|hBcs!?yL(v1(a z63;SWEq`$ePctvb9B4OYd?CPD2Qsv`wN=O4UVW%blw?t0Dg5u!C-oAn}A45?KqK zLQw)UO5Bb9GvYnxE#hAUPlkd_!W!V{R;xvj??m;oKf5g&SCDfm+Sk+!KPz67)p{(( z*}*Lx=c-u_FJBdG?pU7RUA<5=-8JF+E=JS`qHPgH`j$YXPjI>lCBZ=G5?}o`6P9e< zB*w?AfunAL9k9#}`Fe^^icDU3Pg9Vp>8SQjsf%z0N6R5L>DW@Zx!v42wuxKmb5*Aw zN1?;x#APo;0^I8~(B*LXz>-=T2c!;rQT_&?29E0%zsDlXQbFBDgbx0!3BjddN*B+} zEl&)?;pR71tPKB@x4=v@Wo}rJ%j)LW7x!+anHi&#?;ueXutaF{%fPfhzB6IM>1OOL}Zzc+tipAD|8v`PnG}7$#_B^ zRBUUN8s!HR4 z6tS#vi1lrCaanDWC7FhixW;E@9ksNam8wXSYo+AH%_B^Q`jkN$4!?~Hr(&LA=@N#R zQh-A{jmGvsw6B8ESJT~i{~x^oH?CrRv1VZhtmfxA%$7nCYX+v_lnoQ3UR$%fctuxf zF*8%%jI2ypN>e&CSZX|sHCgTCe8S||L$?ir5kLYg3%Nhk&v9TVcKk^;R@ypq9{F62 zJ8=QFv8L-?(A5xs`#x+lIXgSU7+m?yLEcAHV=ht6wUIE}!p9b6ZzVsr(k{K~UF}I> z*W9^tqRAmt7=;8$ZfbzcUsvFUuQglf`Ulg3!6e$5Aur!TZf258W+1W->(F-uVVFf9 z{qUZeg;u%G(nM6Aea)!TvSEX}@BWpAM~XYj(=KRL=zdNAL5ATDf3lC*%rohc-4gsr z?42zFCs^~^6G>pVs+PcF+32(#%yYlqmn5m^%jmoLYpY8|F-7&PjJI}m|8d4NjBZ~f zlOFqgz$h$g1IDg;N9KLpyf5mFMidc{8O7KS=3~YLDEwaaewHSy_OrJ`Hd_S^H#cp7 z6YbkH-hM2hJ+rN zy*i8R?LAub#TgedDr||%SCoJiUST(b?~rknPmIf&avRY(Rd(+or?azWEVUoRbNp;K zm1uGH6uN$k`~>g^CvbX9~y7z9hqo>&XqILY7u^gc0QMC)KbnN6XEQQy2R8@5lGX z5gqNrVyqll_!nBMeZd~QmJf3q?W>Fl3&Z?uyeru;`V|Quvt*>Vi$~}8l>Hekgt#2} zEk=78Yqe+HjE!M)9mnm$8KVQ`4IizKH_-`xyzz_00Ru|s53C>iXis@I4*+rSh&XW% zRD!d=xxpP3llN2@tMwW=shZATQjf#sA3M%fdCll6cg*1T)0vF@GUBz-A&&|lMS#)l z)=D?wq$4Q7^{X(-p(2>@%7V23c>mmxd5P-nv#`vXY! z2|;nTu_C6kk=sNzxI#FYodP__adFGu-q5)$1LR;*tay_T!s;(!X4o-=Lopf;@osH8 zZ(#=EJPzT>?C8S8ZXf7w!$fUkMjBO({rela@%_IMeNnwCL4|!;8~_V=&?hA)yma%W zFYD0|1Q6XWI8cs4C4&KwV}ALYjEwe+l>XD)UUVZLt|Re>q_}lY-s&RTX4t62%|z|S zC2UsmuOrz;%qWmlm=iSliwVHz$Q`I6g|f+Ay2ySXBM^uuCF3)WX350H+dSC$4?<~s zz>Wl6a5I66+@(|pYccmjc2(yEBeyB1er$Q!%8((-D7y(gH-`MaDKCZd7vb>M`9gMm zABn6iMU7crEJ=2(Q!>un)PMe)5V7mf-6mDACUKG|bqv5|XX9uFldNxg6L~4Iy`R-;|5lDj0odiS zr+w)hnr73885l^bFylt^8^-KVTfB2|Lxg&CQ$|ruIgGKIH+{i{F-gfS0t7*`f*OjhCJO#Gl)YLZ3=_m(Ow)Ww&!L|vMR$(@f2&EpZgH5T&twas}N>lyZrRgu! z@G!mc&Xboi5_VCPiKP92-8)`EjD@6CNZpdOFQ7{;NRZq<7d3#WRsxlg>{l5XrRK0y zXOGPyPOt21*8wbyc0>Wz?I5wk`)u5g?Zb25{|+Hbo@6(khVnQ>$XAZn=f9Q8Nzun>?iL&@UqEgJ@Gj1N`}w=wz%~>wW0*2Gzf4kePnt5&e3P3Wol}olOpHIhS4N|#XWjA8X{X>pUl)Jkz6WBjAvas5zSX;XrMn5*{d1 z+S`1ie{G}p?q{m$my9wxYcV>WCEIWuK06y@@oc6WEjErFWU44Wiq*52Ot`RfVcMRu zvF&4tFE_}KUB5>>Xu>;Bjym=Gq|1>5+xG3U9Kjvc3^J~S?Vp_50iX^y^v+_x&_>n7 zqQnY8{NGal8Pv2S1iljj_BEV5`!0Ze$3Fs&Ze+H&Htuotc=!}P^E$S(7L|Mi;jaVQ z+9+B})b^(%I{G(E{BIHOPA~nGHF*?uh-tN$!ryTA5YYZQ;%L|5!cX8@*5NtUp?-J9 zg@=Lo?*#@H8UhT#>-r~ zxRuHgb zf3Y6^k=ODsvrul9wb-^nE-F(=kNB@OG28Yq65HP7)O*I$AFf<2lZH%UC6mEkJ3XJ{ zKgQ#N_{~GD!elMRq5`^V5Kins!hU{Hu3Qv@Vzd$wc1d3GDp6=+-^r=`k63W|X(e%D z#JXZ>YKEFsl(TjrviJcA&)>qyh$z3%9e)tsFl5 zc#VfBd1aRSr_oGb#k|DNTBQvfcX?*ozca|16B0b`BS)KwDGGnz8N~w0&023k#5Cg~ zOD!R9Vw+l5A5YuiY@g5jX^x*S$Nx{*C`RDk%39l}b4w0z-vKclT}6c+Bfs{Vn*AP8 zOsAA0m!KeIoP9?`LPjiSy_Sace$4laChNa{2@WS;|M?QFDgY1>HcJaJ?w)H!5QaBeC5C1gn9ZlS0d(TO4@kZ`Hm@a2#aDbx(8mC(xKjjihATqVc} zOn;5>pjjr$?(EZ8{u&d|LMM}AIAF{>E|K|FM{bn7OSJPt$ROjEyju4BZpLh)^1Fo^eY#=> zr>gfBiW$ExrBcZAw|{q_Lz+7Vu=KlmQcmHZDY1S1|YYy7z zuKZMB7o9oV|}r@1Zlp z%Rky3Yl1a?lT2Hmb5HGWU916MVnb|S(V*X&qu()pZr-AKbwhnt2U7vJ5P6>a@v0rd z$n6jrk4;-)R{BGv-?x!WJqKuL*+bROjgc)q2OJ`z_)ukFapji>Zyy|jzn||u*At9z z8##M|=i)00S2#8@vusj^O8Y5j|t?;^s|y8OaCXJxUvL;T0`}EOP@V&yN&; zVH{r{@=jd)-Di_49)CY0Z1eq;cAiH%mfCxn^J0a~khZs!Up^PgbNuYhuz z9g0`%FogBX$HOA}gat@9iAG)*MhzcIs4h;)vGozVJvd!{@*kOm^MS^cJfezXP67sd zC%I(rUr()*6xaIDKw(@(@~Wn)1*>gb#U7OlRYz9n{EOpRQ!f#tJ;Vh}pWT$^J*S65ZTl+txl@cS+hI<^i`#hwS63T(3nv;yswF8|8EZ(&$^%{U4<<-&Ju z!_&Qp__Fub+!h`{#kEg318$;~eGf(GUO`2y4+T`~$NF)vlixNU>eL0d8)Ex1B7Mys zZ@#0@UbRd>`rkw*eHXFFA$g|Y zYn_d0uG{;k6k~OJTrNGQt*9*(){q2g9 zXtAqG7>DmA*cM!7kK8HgeSkdr-*x<`tvuQ2gK%`b7CeJi-~)k{4hTEY@Z3ts=5jAb zf?Jjt9=ZDMk`79xP7x4Z5g4IuxFNU%PU2{rnNCju5Vi5PocE5T^)GylE;9OuYj|q} zpfqCOM`RLxbTdN4G(kl0kC>_B=-z)Z{>PymKSB}nY%_~g z5=3g#M?e3I3n`6TMu>cWj$0;(e?E@0D2>UKiI2#IK&lIQ!uE%T{2fgjy~~~e!GQK` zm5>mTpjn!LpB{&R7*D~F0L73p3&Z^5E?4q%MvZd{<)@S`JQB&w54Z*)6?V2 z(hX$+2iAZI@AMqrFhG=)H>OW=@S5cI$%5!04WFX zWyrbwDl=Q>UX7)r`{d5Pya?f@WY@I)1E&KT5!3(E15jlEdQM;)dGn`r z^BZ{c>2309PV+gC3TWjDnDx?m^Z@rS86hv|BcmduNSV}MN#pT+R=z?8z6AQ$d|sq{ z%JM?F*Zdyc0u7%++1Elkn?kwv0@0}0hhW8TeR+oCRy;)c=IwB`FiEWN^)PA zX^FZ`F$-T2T~v`OUx@}I8V`GM)Cn{SAvOa6Ll#bozg)3k*1R{~cnr(P?^PAhuk%8{Iv_vV#) z7}I9jtJYVmHruP_d`cyBs-QG&LGv2FPD{#PtIk)eFUPBPPD}R3Q(qc#R@$qtGHPDi zYq~P3oCsC!lB#dVYhd(iw}@(PUkh%66~p&yIIU|ji0gn+wYPG@CgoUA71dZBbtG@4 zIQ+$%@Yn?r>}c}Eq`&L2-s&iRi=bi@vb<$v2G(=f){?)~lY)sVt6s3e;_JBI>RHwx zScn^D+F?`MVWo)6B+g)EJE~+m8YT4`C5W5oeHx?Xn&M6y)h9}MW*WYkG}OE_fZEkg z24tB}8bpvA&DWX?-|B^O8?`zbb@-c{iCg4;H_6MjXl6EP+cs+HxA?!ccx1Nt{B7|( zgY}DQj$UaHnn=WD7a{Czi1Kc>eyjbn*64=Z;`7$1`L|8xZ&Ma>Yi>td#p&0)s>Sth zemH-d`B{_gMB)#9VIvKL^0wB5j&{+r=KQyoEcw=PpY|gC_B`TF7y0(kiH<+|od{=5 z5fkmWDj`hY>KiDFD>GZ0&Y)F)H!dT$sAV=S*|zzfHT!}yyEcfs_y2aJB6shtxw$h{Tpk-~CXX0}AVdO7DXzBtvSz zLGVnEv_XFra&yCs)C{}nnX8G6@6fMx2r&DQh21ceYATX7l;!%c^7wdwP7M1FeO0O-IfX{TF&2D> zDwrox-_2tLp!e+thdL1>QKm4MAvb&nUxHCM*vBt`Bd47MmJk!)uhCyRfiDVEZ_F46 z3K(WtQx6K==K|A~Oc=c)Y9%B>4rVa70@JewGt~+hkX6&L&a(`nGqCoJ@G&!4%utPu zE=R#Alp+wA8-4ZXQC`>L|o`JUQpitxIJ+kNB{g!-U=8wf&E2GUK@Qv@hfloL#cxEs1%U?EK}2+z+k}%n7l=E7CDKHWkki* z1k#BaffdBg1(i<3?2BorcXWOh$d;_7?5Z`^4|ArERYb@M8$}38RN-C<=#fcaq5W!n z7jSW67^FDUnBC2vJqog4Nc}+11=}~CkZjiYu6?gX+$J5}{#f#@*uVhJ232nKS7FI^ zfxu4d7=kLtrZAKC*m@tE3yR%WA4?#X?N7mN68p964T$6D%~Qi|(1&?T)f$S@_Brb4 zN!12g>`uNS_M{(ke-@oR{Pe@d^83ZsN!2DE>o%&x?pfC+?KX6a{pK<0HevPHy5ABO z`!>GOHjB~5&g3?2_s)0cbx{@!D;6Qd+^si5><`ra?@D`@RlAI2oB9-xn47zFu^U0a zscgXwf~j5Q>OCgb0~pqQ4$*zn1rO-|=4`tb6^!sMjx5Nq z9gOzL&IL_F=H!*I6}yijz((8bn;Vgr+ipVhyqm{~n@8+7M^A#yu&T%3osSb^k9#&w zK4XqNS$1-}kCKf}sAHE;)lqMlF+%*Yvy4ui9S)*d&t7K^>K#r6gI3vRglb~3>i}nj ztfwBNC-tAl2h8Wb{@Bz;Tj$u*F&pQO)#t98E3Xvif2)^3LT9{~7xWuvM@jnutk}g0 z7$1TV&?ZnPfSoh4(UZ-~3}%Da&6P8>tE-sHC%_dr{&G}l3Ks1OEB5liXb&pq3R>jk zfE62qRAZlNmsRyL2Kffo`S_~(^3>?&(*Nq&;fC;P>q7_{fBNRi=o)Nv1$}*U9eZ;j zbc<$mLkqq%PQ69~W8OfiLUPAp&~Kc&HZFgwmzV9v;8DHvqC?(TkF-*S# zNXi&a#*gAx&~gD!UO7)b0k@0YPyTGzEB;FX!q5KXcU%E?&gf4P0go_2lY7vY-@%Wf z!uOKo_bJAZ9?H)d0Z-&?aG5zzAApw}@XIgdm(-l=6y>LAFnXDwkcA*dnd5kx<70#4 zUB2*ZhVq$@-&!V!iKT_~0f!`>Lf(ebs6?ISthz7PEJ z@rnNG^x+G3T(Rx_2oZj7s(DQ_{)~2n!N`UX0Mk5uyr&s`E;xQ3qQ7tFJOw!}y^+0> zFFrk>V?e{8QU4GT3q=BBFd9V6{5KGSiTzpdJS`&`O&R}j7CyTt9si$XEVb_3zHBlF zy;0?8V*WrlJB?OyL3B*`u@TzoHH#PIQp#gwgUtLKx=V8sU?~J*V0zJkDIo zLWg&z|GrUxM95K*_*JBP1YT{+32*+K6`tyGOtnVo892)^g1;R$;5WS2G*I8^1yh!x zwB8H{j24bUAdxYuE5t36sQ-uBUMbhcoa1^!{<|Ec-eYZ6dN;(vn}l5hJ#E(jTi)f=rrI1lTm@Of!>Yp~-)EFsoEm>qiX+)GHF_?|HSE-BZ4kYIQ}c zPpULA3ULc_B+W`mvH-P;HBufZEseMqD~Tux7b76(e~jryw*}()!iQF#LUAQ@z}LNeq$J9*fd*_H4_CxC4xJkyf6N*TKiaH zyE1*p5340o@Y}<%>DEgQJ3H2Q?Px$-l+{vE80qykRh)oLS<5HUL&n+Vs%|RB-%XaZ z$>;U$Cc|o!@$ptEQj^0j@aN4kDS5Zo{d~@c>FVNWS3Z}ow(!T!w6U?*S|}dX`_({= zzBgSEO&~7j#zX8uoEh$n8BKfA>GP8a$k4?9K9k~;QAPmC=-QtM1#qYK1nxWHLZ{08 zF9Gw1wjeZ_yxX|V7{d2?VT9ppa+1QIsP2l#F#iy!j!A3G z4dVjr|N4mKPpn#DafvxaTke~Z+aLD{{85DSq#i?}+G*oei?q-0*rQ+&lL>(3@cn&n zO2d*aBqCQ&>Bzi)O!>1*qTGte#bBRGv29FU&LuI;%$!L-O^Tpg6}jZxte-Lu+9`xX zQhG3gg!Cnjr`b6^HcJBgFQK?xyIQ*6x(MyZ6VPcA>t7a5G5c@bgk=uxTGZ9lSASCQpE%M;IxN#TCTm92^qe--`lQa zd<)()B&^dx|J~;>9K0x}c+CSI29I1?8B`<1+yL`9R(FFDD)CB~mbM1;jg2OX$$T97 zF7LFMOsnas!){qbsC1&@9`j-LlezyLSi@H7D7ZexyU+wLF>CsO0+cw5`9${R=l_%y zJz|$};_7z9z6f|;G$ztm(P*dhg61{Nuw3U?Wv!7^i-tic^G-H;AUsVc09P6BMXKVF zR6@3oyQR^>8SL9QLbuYlT3(X#_Y4M5UaEqTMT+f@opF#|a}$_3Zb8&^4{%mi9rr_7nViDsMGYJO>T*5}c5@_ngA=9lhBzh=Fq^RVQO&x*7X z7jFjag@v-dz#?s0%`onT)x+xgk&j1Py}7;BSF87wlBc;&vDyuNf^eNLu^xOq;-Kmx z;m@jBFt1=^nM+`}ce&7>?|xw;`=#i!cxssZsPxUt)O)kw>Hb~h=>Fx2n?%qC^eWgY zOzPupu`U3l&99`wJGRb7H&Hjz$NG4=C;w``$U8=Oqt+EU&zHFlu?TsL0y|7kpxJio- zDYOU!T4|K%EyRU6M@vK5sAx+7GlnB_gg@d`2HK}67`XJ5x@=6~^_R64m1}fUZ4Cza zKnWYJsL3C8DqAI#b5o--!>@6+0n}^DpAWTN9~YA39$0&5V>&G#m^Mj+xHJBb!ao$x z%o_Ap=DN|F&J@2+iKz}3AEnz-9RlG6CaH5r!EH}0S_u)oo6n!4?FXo~mh{1kQ~s^h zxKq~wg>Sq2-H)w;pErNLipYnbExn5Vw^;GL>!ilsqk?3&36=&s_$8k0dxkeeonJPE zZtqe;p*!m<{Vj^=#|dc%x8yHellZuGG<(Xq&fj2*Q2J?_)X4d4=f_C1g=eR^lDn@l z$)1WOFR-l_Hri=tl}6iVEx5`hp`dF!N#$)~cFNgrDf7@|WVHRa|GBc|YadR4SN*ps z&kVr^C`OS6rfcFh17mv1SgT47~EaaJN@n#m9M@vG@KNt9RYi#}W9Nf5NBw++v!D zI)^*>++6u##nR}xpH65mj?H^3TzG*RLhvch@vRkJ_|6#L?~M>(3*z58`r}#7v3%+p z7x6NGkJb(x>h`;z=(f(rDjuM+@${82-N4OhG3l z$^i8q92>JZTe8Sw2TxrE!Ygznn0ru!+pP!no$q_)0Ify?j!Bh(UA>?}gHT9=@Rxn* zy;($ngQHQL|GtM)p))a8SR%2N7(-IiNHsu8Jc; zgDjz`Q7y1Opr%ldgE45yJZJ$kWM$BxMI!YdNE8t#NM~QNZ=$hyPV%;&PN7cHaDB*) zM7nQJs(W6Fjd_^fRmuWJQZRbhrche>UBa?cN_~AK05}prGWxr5#0O_o^IY2Ee8et9 zdboo}Qer^1P{M_JB(iY`EZf-6yUXcTIT|}C<1{Gam^=`WJM`u>%91Q?3nSy(IgG;& z>$^UZ8ZGtDKsK~jHG0wkLuA(hPuo9-(c2s3UABbVMNodz1g`5}?))(4X-sgT^P zb1xNjJQ~?46Ac_M2k{!_k5(Ft#8t{g#bbTm4VT~y7sCh=VT@;m$ojfX_(xCtTOVu7 zn#j$P%~z0951jb2-F0+M2mmLrmM6LkCvxp%!kJ|ie8+t{28YZBYTspQ8YL}D`&bec zfIy&}88DGkzJWx3Fl3~OSz*pi{;P4^%{i22Cz~oU31C)Sik9sLPAm_O%z%ayNhV6| z6iNr>CP50-Sq0!N5+!|Kxjg};eTj+2{XesnibuXvOCd@pZd3E;6Q_-n2WA3$8VW-O zz-j8KEfB3`Jg_25VN4;gPGoAx4Y)=!e3+&59IgD4rF?9sti3;V=?1*0l&e4)0|I62 zU*+8Pr~lq7OQ=mZe6ghKgHMIZ@O~-?DO0eL5q6 zfM}D71k2Mfg0qMRg9!Gj_4gEZj-OD3w{1$=UdOMQ$8^%D_H8^IuQ zd?AzziUb76Jm&M9DIl&Ykc_<=@1%yJy{vD05Z)loNsteJ~ z>vJsx%)p2)@Y&i|=%y^#R7KboEd-P<)*&o09?VmRf=Hj?Yftacy7$ucmLLt8%RUA_m0v5DHAC~MC|8uO;A~{|T>L=NDT&exFahSv_B1+rlFPs96kIWvQ#EzdQ&#*o zmZ)QN;y!c$ut6~&x(G4a0Mb<^nw9)6ZK0yYj0LT*BHh4;*`gS|vM%jJ(iQ2dh`h;F z6$riR?CI>uRrfAkU#?YZ&DB&ty`Ya-a`P23E`lIK9n0t0B6~ecE6jqSm3()ITAJ1B z3w^|mwYZ|y3f!fND!61=onp!L!6x0tNWBts{q(NYx=Gy#*e~W@9~d(kAOkm1wA>dO zWb;3)-9=DbUAQh_g1ZF^4grGOA4o!QcXyY@-5Q4kX<_1x42C=`ET+R$O$Kj9G z)`<&Iq2ucrYx2K#r0yHC}Ty zK~TVVkh-S18pEC@&|J#`pbawD1MX=I>~R?Hsafo4g3L7+_Ovz4js5rZ1ow;;&2iz7 zvd#dC*yfSZOJ!%91Zav1qdKy0Vcu9e)wdR2>v~rHJC`9A;q;b~w}8CpUHQ&krcz{r z-v>2&`%01r?nO(El)DasT8x?pes2d#P)qAKOTj{b=f*y8AeNdlRF(_H&M?OQEi6b9 z57vFV6y9*?3j##N0Ddz7{5O_2l9nQo&7(G~L@78cjgQ>g$oDW6gF|7f6j^rk$%>( zVFzJ%VWE;3TABFLyYqSg?aaaZA3L(2hm<9rCr3KZNK1g*V|z`bQgBJKOkrm z-)Y+l2~z>?#wwl`ciN3YZ71JO;wa4Li%zBt)n){>yxu}>;E*G_tyhb}qMe#x0@#W* z*x_5iZxGBtvI2ZF5{EkfrWyv@OdqJg-C0EUSwP%LG6Wfr_ za!Kjf4LpsYupjEQ$=io^yx9(d>{K>Rc>HYqu}^y!Z2Q?yTLtanu+9Re9KH5zhwe@X zuut3k?f&vQRuCS=XW8|49yK?fHEq~?NyhIBp43}792z=k;hp@mfYu^AA1T_dAtT#$ z+j|0S(Kqe$Aalin=eHoh@q?`aP9#gpWzQ{&ty$a(qAu5e?ShUzG5!tM>*slD^$ z0(ykpWgFgbIRM(B`C?zxY30`7a+hWA4?0>GbS8>*h{JWRqjWxCfWiVEYzUp9TSU(F z$x!Sj{O@zvbQ&}pvo-9XsAveONi|~!(L&58PfA_D0sMt~` z5DV<^&(22!iCV?C-;5j%cn=9JFHeh5jY|TBQEsL+Z_K2Cvc+~5QjX@6Czet`^Tivv z*b8$hUe5YVuEP${6zyXHa>xFZhZ*Ken9z;@jaxw0@#U9!RW`ew~ zifY%kKv$i~Tg^>(Uq{!UgU8X$XC^6kibB9w!FxEWduyCqmo*S>k28DAdzb77 z+ex=hATZ+m&K}1re9)2J;~{zxIH-B%O7$3f?kQUZgmE_crk&e=opdtHzCOsh z#Z67AuPk5V zl>FAU{1Q^U8z%iWs$f^|aB@|^;2r1$In1W}P2)2oZmKWbOXtZT+BbMAF8F3{9!O!L-}i}+95YfY(&X#`(3)QH44HqURL!+ z6%RgotmHGLX~1B_S;p7H*(^X!nSC2k<6?31>H;sbo7-tk!OwHwj<1bPgK=a7>O*VX z|B@r56fM^tynAD#k=h8>Ja)$ihsxqZ9e%uM&X$;0IT$_JFDybe@(JxX{h*DGdpkza zw@m@i*F_?l$>kez#nB&qaYk!g`#EO66pAT;pfoia5RJsbr0@ij#~;z{AL6Lt^k7fg z2&S^;e-W_i2ihpEk?)@)*#DwZa+8aO&H|FoQcXZ1AKsZ{8l43tq1ZGj6>}O>O}a!C z*&p;tlA`-NNn<<&pA;xHepizXyqKjex$ld92Wc|v#3V<9%@xQPhUoGrR&+|_v#yroO5=)tR8)lMf_Dq5 z9hNhaTlkIuxqMIHgJc(r<-&9t@Q8U+G`RIFbClx8VRl7Xn}amS&}%t9WrU0|G?3ep zt@SI-BSayH`?;cvzqOR3m5YXHxrbVz$gbfJGT01|RLS(EuJCVLbq|j{Go!&yXWBs~ z!YhkyErOO$ZBtn1@Lp><1RYlJgTt~UlZ(5ljIqb-&Bn1|>WPIL&|s5s<;ps_TqahC zjBeL_OH`g;mxoNo*51hdTrkkj+{V!;EQEGg?hnK)_o@XQl6Pino+*#hE!%0Y8llVJ zjnj0zG)mbuf$ah*i%yFxLpI9mT?J+3OSc~vR=GB5$@DpDvRc9Knmn^raY>ls%dLWP zKy-1av|@%?2k0Y4K!}sctgA=-h$72DX4d85MW{AW@WmKHAWoXkzca?4p7*0;} z<(L)+6Pk;J5(!Ly5On;yXdP&1J7^Pg0_hDO?BvLyrg~v~h+|mgubxa60MD60??viPA=09F_mF)lJRr)M!7DA5$n4qgX=x()h@JuGQugnfnHYZ6X&i=9Sn`#)OevfV7hpY;voBGjy$ba85&uLu$e1a1arJ?W^ z|K!nYlnPQOp|ltbeXvD6_m}z^H;1DVZ>D;Xyu%1e!}bz1O#I9`<-02K1B?Z}jVneG3{4 z2}BfzA*qIU&YIA?-pBsEne@PDC$7iWuG~qw)S*5y{0rCC!2t_$&C}dsod3ej%^IQvum3X8-~ILNGnp8GHq}?VZvF8b)R7-1gs($m zjXnc%-Z2>mmdFdEAEidqs;xl#J0~w@){lAoXKjx;clNj-!s~R!(L;L2W@c6E->tIaQkanaYHY{50xN5*av#>GIt9+^;Yiw5Gd6 znXIRRj}icqs#~>`l>9K&*@nWM*AvyxdUGFZ0P01_O0M1-ieT)g0rabnAxCygLMu

      yHeDFfuLh|3GjxAw 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

      $ca+YS= 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 z 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

      ua?~=y?$~*kpFXXugmD#Q zsFgPnrF+_y4-rL2d}T)wvBgYD1Se`JO1@VSr8T2f_vuw=GTHsVs@^zK-lBE*|L z>9z1Azu;6MwbcxwRpMq;qqkM#FjXLyl|plh59ex1(<@%lYPLVuvgxD<9@lW_)OEaT zy=P2HQ-6LUD^-o0)Cm#SQ`i&;Ib=(erAw`43%$2jhH$+{_0na9N?y58oO*Se2Hdhr z>JTaUo66EafW}y@QAW8KdajC1-a8$8(^5~z24h@}WTS{vScDDDX;kuRq))GRi)^~r zYS7FmB|fdje-Adb#We@`3ppAinCpK!G)g=-|14|zwbl$%+9(-`02OY6vcYGzwPdcf zWa+@#P{0DwTM~6rTq9dc+Zz8oHz$v^0!y$Xf3%I33f8wZ+c?x$tu?omwOXCFcC|GY zdNtAIVB4@YXZ*lnr@$F|ZW;T5gUbd}RMz%$thJ=9$?8W-QCVxPSDOj3%rK3xXq;s*}?OXsi*Y&8?okyl5%Ov~MmhBKLtvga=3mpXA+ zL3vd?dO$}!`?Hv>^-Q>Dm zbnCr@0D%A+c;D0h>hx|j?=I@~9xgy1&A%Qv%6=r+K?UjlJ#jR8N1?aHjVl&&z-@VE8k}AigkcAxVFT?r5Ga&e!#k%9l1dj1l$I zCY2X#NeXzj>WU@mAvK#Gm-V_1lJSg}(SClIYU|PA%<<8v@ge@v(#+8jmezjR@#vS% z^s})=*`7uK0&2AcSXJP=Awn{sXJ2=+OBct8ZK8?y_;B3$Vy=i21a!eQYDQEI8 ze-DG~Bw=pDngZ8#S? z0}3pY>lmdI*BZms6YUt|9cNQW-C`y<+veRE{X1Q(qFwduF%ZFW_XZOA4DfxT8?99N+El6N4=&+2Qx6emnjAB*5 zYLYIn?aVmw&xStpi^?ss8OgZ1uXd zJI0|nGntw5Hzdo|{EManBkR;d;+V@39rZyKj-P_CXA6BS8j2=PxSA?pO@NJh*b!WCo*Ec6{ z)P2_HsOJ%THc{d?k>V$T&+AjKqiNCOgnzdRz2A}7Q5f*XG3H96EFS(T-Sjl}Y6nhH z)F>)tzv0W8b9MbkyFO>Oolp8*_>)_B)dNJ}9U(Skl9(NGvR?en5oeqY?6)CQ*ey%a z$;Q_$#F=d@K^z>iQAxcWa^GEgyDmPm-L4vU`OjNQCmcgo67-^1GCRAWN)$yf+N|3RojnkoDW1r6B0+ zY}(2fWZ${}GYjPK26CP@2=w0LvfI=39aUw;L52Eb7!(PFWR2@@97Mkzcz_RO1P}k% z9lHx66D!UTF<4Z$aGhx&5M;J2eDJDhrIc_YJ!nd`TjNOi2#% zH#{R@#o3v>guj5CV_Z=~L1fTV%J+!26YFTMa@;TK8cyW&JH>!N)p@rHuX!Wq$DDf?L<(Th}grH?^Aw7|;{r_FFBXJMFJ`vBQ|0X*J3f;Rx=cw4aNB1_x4Gvs|_KLGlt2ei|1s@Wi zw`Nrj#@Nq;n-8Ne59)rfpB2HiTQ~AkC{u>FvDxG5U6+YMcM%46zEv-kLJwSBcbt{? zRt8Uh74Fr@R(t-yWOrR>L+xKLeU5m@9%{%R>g*pAzupF7qlEZ9AWgp&0brmP7*YPW z2iPdrU9i4x&v+LPP#B!gpmA7LoaydBcvL$6=D2@izfsVwAMRrV2O{w~?dDT!b|r`? zC1PF(l@Y$jFsfCWuFM|Dq<%9|XXc$P{E19vaI$YXog)^4?DIr}^6jWM7Ky=KcQsKo z*n*gYEqC;2tBy_nD^o}F{H{>AcmNV9pKI|{3>)yOoiQ(WEsn!%vOs4Eyb&>q8&n96bN^BBm*$)y?N-(&gFGbQ|u4anr{_WqBvYZp*f8@A^NNN?D*Ky|x z{Yp9dK7ILE03C~Bea4;ZP0%$_k>vcK`bSp4s-At4*JN}UdxFa+Mv|&PHhlJ@bl~Y1 z^|JXMA_q+hJ4HEiN;*OES+D=T(7R7fxBSK&7%4Wz3s@vdL5OC&j zqIVrrBW<^R&@pNL%~KGLx%f#X!M;;#E7l9Vyp<_4sHJCQRj8$?J&_7B)B5|NX=X-y z*2B7#eh0d2QGT$IV_g~ig_`z*>MwWm!jI8u>cxHP(&rIv;HQ)Fy~a9(rZ)W&P=w|p z>+hxyH)j-?)gr*VNi$o@J8X{yDc!dNkHwaJpAWNzXgrUk?R{KUP~p2guiAuu-|f>srqhlx*UpZSBt5@A|&a=I4-;j zBlXFPkwvJPE&{|}Hb01@iX&3Rhs*t@xJh8>#KQd$F<(bT_~VlRt?y*m&v$r1YFIED z6QJ?tX>hmJ z7HKTI*ylwDr|LwL7gyS019@9nk^KGl#|Eeg9Ha7HsE|^uBqY_H!U{4sKV^iD|AcaV zNT0GXr6HCUKeA#^OQAVHnG5^ncFvNNcuM=@_NUC-@+?nF{tok+)zlb%G_{TF$LQW| zIVMl%$ieYK;b>`zFSx2Xu%s4Z1*syxwXXyAOc_Koc$A!#trgC-&0w&9i+Y9NCEv^! z@GAu|B!Ct2nbl|uBwExe_{!mY~Qh4W@~oN_qIrOL&-A3dJV=v4%sV$)n5ixx>vG)J@-1Md=xMQKkIf+7~{ z1{cB*{gpMuZWdG?zm-wTm9U>lsme9rJ_fR&t=_Iz$*ZD9)lj4-CvzW=qLZQsnu(em?bp?Xu> zL4~yvwG_1F`fq(XE#UA<>+|FVIVVbqe!!2_O-YT`If+wiiM+n)6E$j=eVv$O^Yv6q z6e)YqDBh>EseC}>y(1mW~br-t5X)lRmTGQE@VN$n4FRlJ% z*kkhtE%W9+_N+_)OI+jXWBHHNpl{(y!e4H3v}`CPZ_ZBQVg$%jozQ<7f=6 z;SX<@zcOcxSxk7Hm>KndiSC%icx#R4oArHKaR3P>5={)Uu!}4K#5uA1CahTNGS|w@ zdA1%Woy~(XcQOwJA9yFslCIenS&lfDJf;_4Yh^y`#Y=ts3aeK+oc|&7fJH-#HWhS} z426~YRYrpszlc)8X^bNF?D45g(53V>3ZypY5ml~!n{y2~RKH)DcF_m^Guf~(A!wcG z0RzjUHIIbhe@we#-P9mfoQ%e#v(9og{AwLPWX+?vR+tvz zFSfvpjP;X{n-noUE5}H$p-ug7O%mgdgckgJ0~z)EBxIMN85z3_DRlcSr7zYj{H+Uw^J`{31+$n&lAPZ6>+5{ApC zWCtYPbzy>j0d5yj23;{RmTo!{aRQg_N*!@cSmdN>F@g0kfqGj0T``AL@tD;9k7J@; z=uP4-eH{Ga${3woB;ttcz0yGeJb(ekvVK2*@o)J|&N-cI^;KWTB?P0yKE2DeEM)2! z1MDw>$}EyQKO|IDMbvc%^v@*X%TVOTC8U23e*G;_njkJ8C8?PvDUBhiuPYhtAZgSt zYRn<&yx;Cv-y2bkr2ZS$wZAz6MG`PSXqzZ0a3=aALee^MkZoT~2t(2WAjyk2WQx$G z#4q(*_J=9Uusg<((3ylQo|N7Ekmq}MTTcx=$&iX(AGY(B3IGhb_P?JDG;r+0GIET( zN3@xHut};T`pzTuCel|r!=^8T?k_(B+9hJvr8Rqowsxd*=EWS#L&5-q??7xkN9R}n z5w$-fMwZg)V$y|x(V!sdl+4j2mmekLqYdmMB`zZ_E~5G*GGQ;nJ{Y6X93@fXlJYl0 z;qzkY4pMO#!w4vYraYad&0|V)V;%cr?Yh5`F~*C$N4sxEd-=zE@W#t%WCvKr`(0!Q z`NszV3iLyK5vb!$7_Bh7(03-YP<0IaayDqXL;w|g% zMeN6k&6iq#jF4kH!{Y$lRNyA z!`{+Is`Ah63daEX-J7Wc8hPNeZ2SDg4Bo^FhIC#cdKku(7C=U~f7s`p_(O<`h?2@p zB#8q^L{U$yXDW28!=52bkfH={BPgc5pP!7&_IZyFz91jtDdG=I!FJ3*b(K_8r#>Q1 z;M`6q@+duc4~Ae!yVAteMNND(k?F3Lv}hhiu~mqH`Kj(b^&mTa5;gTGt3-0H{Pk6t z4O8VC=``v2*yjA~3CCR9ItsL!@c!qO!M521(bBdp)i`! zXosPQ=2>>mc~goR=7ZU9w(nZ4>QB8%KVj8h74xReBO*yM^Ww9D6(|B5D*U(7A&;tx z8`#M>^T5PNx0~sQ7i9G6`G2&i3v3dIVt?nQqt(QG7TQTW&d5tE6`|6LXW^-pZ=?pu&~y>zSfmAKJPQXa6Y?uJG=CEGLlqxHh4*cRz0Lc zeYyZOMK8TtO%ocxxsa;2K47~T)Uob^xf#@;yLGPXWvgRcpm*G%SyG{Y`bAbTN2eu8 zr}uW<&~z=CRC9}Ta}ZNI+iZOlGmt0>|9M5jQceH9Lsx-QEfhFi{#Sn$5jHt-MzvdK z{@j4mxNfD%c{bT(LSZX6+Pn zcvQ{Y2%|vRU*8Dh1ep{d25>K$$aI>@PVUQqWu@)3xzyBRgw^oOO+{RH@K{a1h?ssE z)Dn5Xb&>GYxUewcgd%vmFz~?d*SyWMajWr{{ zG%OCYFxL$6F~_;vk2v20%fXTgP9oAxc1CYt%5Tp}Y*WzfI;tBxR&G0iK(t_4+etX? z!5!;D%@`P@mK<}M@~~T4?8M^3kcl0eLG5NW?e7nvCc}Y#!*IXVk0KN;L-mh-%Ug!| z9zjF&EhBs_Ln|%AlaC_JEn_AvBkYc1V=O~htwQZ!ak{sxv-EH_QM@Zdd<)G16xeFu zSaX8tw71YqyKtsL3+6W~fVx!zzV*ysypE5opr&RbxozF@c@!(4#;=&m`5NcodDaf`MA6L(09-}y4xZ^ z(mGpS+tt=e)F(QZZH7r(O?0bi3cQBrq zV@hE-M%URGnH~BTr27r>xEKabzIc;|T+=}=7r}RL;HyapSRHbW1i1q_KH34mbPjp? zSAAI!@|MQr~TU`1jg;+b`fR9?sA8~F46K5dQ^#mBjgxkX~!Ac zQ$mK#onnWp;rs#O@DXB>NMY;MXniVp@oy87pX3-GZQp!ghf)PWuyA5Au)nnfux+7S zgY0kboXDk|T!9eE`x6R?J<66Ni_p~-_~zaGv5|LyX*${IJSm;Lu$Y8D!n!=da>SBy z)K0m*Ji|6)aKv^4bEJSZ?^QuD^mqoR4R)7;lO%}727v;X!n)g6MZbu*N zyN}$L(C!5PTOcmv);k**5DPp7Ih)u6(Ux3o?p?!TAD{qox6l-KK$E-666Ag7)mFhR zyy_ve2@+cLfUpEc3$-Gsvi`IL2nZGUhz+M(v}IJ}>@8$BcL7Wd^$3IjwYOrio1C%j zFC#SFJ(e62yWQi4-0hbftu5}Y$vp}nR|QQj6b4sCUH0*@o~&+9tO}lBL4Qv|a4C`= z=2TGDp__gekbmjXtEu&evh&{*VCvz$VfJlnik&;*^;oi-C;5Gu)K$TflZe3u8U0J4 zhG%)G`;(+M!0pMY>Zv>Q!D`59xXb;QTPPZ#XJey-XVaKcfRo&g|y05vACxE*r&xz*&y$4&W zbDsM(_mI1xyE7Vr2S45eY|jOAYUK8g-}Q~(4bZR1J~;me4oA9*Cj9mbwQJ`0SjqiH zj4c^sjpk5yY=?SIuJ!gWai1Hu%7+T`2OR@^ir*6U2f-qstDHIzVTC|pVJE!;@`oY; ztY(X8wFM(_2*1CD)#^?76G2r$KUU-kWder3rwU;fFsIX)td9rR8j7d$ejwT|O_k!Q zJOS5o5z5*legjH*SloelV#z25ag=!MW|5Fe z0tORT;L#YC^O;Pp=-0W9*W;~X9uE+R{VlynCzIH#B{c>2U@FrB$6f7v@y2`_OE?#E z^od?6AnUnuq*o>ZHDh9RCe zqOAU1^X?q5+F~3F*8n&gB|C|UwR~fLe>`6)DY>Y3U0g|%6-t@<=KKD9|B0X6pQhG> zO=h{$pI9Cm_E5wjD<;&6Me0%>$>y4R|Dl)8ODh~fpxJoUiLB|6YqD)BE6*jb=pKlk z>U&_ZB^&yr!Cs&)@1Pc{&tfe9LdzSbEyjtxtfpyqRGnNa;r`*j=THp}0i^=&MVWz~UgadTxe=)hB2*N|;7yZL^izJcS+(52K=1g-BzR*@ zfV^ikv~g~y)kjb)t7FBcTG3QBgSvLHuIe?YSFNJjSI~|as^gjlD%?=2#v_fGmpC}r zuhORRBdzU6kGw@HB~nGc<%~V{x$o6R%@5_pKvk641dTbSGt!% zILo7j*|^CD4hzjNl?>Pj*fTL)2DvzctqiP18S{?ysTn`^bR~HwFcIr21V3^3sFi<7 zbumOme)rT{?>>dCa;DJ|EmkR&CTcvZ67;g=TG4s)hqPW0RgtVl>*F#W#mN6%M|M|4 zfy85s&=XAp1K|r-_FIcs?4Jq{y$6>^JTQOgV_Cvu4P7G16IPLOx$uTQ*&%dIO4Bss zc%CRSg^;&NYukC=VWzZ20D3=hc$}ism=cV)N~3;RZFKiRDlCS@nCkJlPeElu43B#! zX?~=Sq<6eey9kj_)mW+^M>fC1e5Osvq$@!M*%?zxk|F+o#*2%`{3P#;9y&>6H<{s_ zR7dSmtd6$GPobQ+*hwQr@dn{ixgpS^_?~R?n%)421u|CDk!t7%bu;@wlpm% zE~N1SD|MT6Lg!;;ou#he&OQH?_m+fHShNq~feft)WMW_FQ3o$ap^_5_a1RY*GzWr@MGD&I z3=Mj<>PRA*N|;oZ51R*6PsH$2L$~VBa8)<+O;WY z+R68!b`soNx9f#kyV(^&Z(&NS^YjI($<|`bT8UBlXq8Pxr{~3EBNgAZM(w29`2Ro> zEdUz5p#M4GL*k->x$+Bu!&X@ zUf)Esv1Iv}HZ8|8CE8)yF61&!xD?*GLwoaH*W|a#_LA76>u67~zGyvA=kMSF7;vsJ6@&TP7ct|`_O-%cx`BSYwE5vI(j%jbP??t5ZC`{B+X}3wGnNDQhv>DHjf+^te#L6hf2G}g+X!X8@A4HUdFJw2hn9E!G)b~q6684k<7nIH z18*UYrqQa8cbU<$rPfaF60vr_9JlE4*0#sBGL>Iz?t*+6d(zR<@y94kI(c*t#?)C> ze;WS^X5G=GR}Wrzx(&W*a~PViwoFvBQ7z_-r`?G|(_K7TU;od*>I^GpNe*N>WY=`% zqf9G*O~efbLN|aQ{fpordaZ^R`?wDye+rK&9KmC2(@v7$@oQPb5C=|aTsUY`Hcdcz&225rI=mgZcU7HCX1fHT)13HP!JBNdBa z;t5}y6L$iHpwt(y^etUPaXkYo5q3WHH~ty{T@rQqR)ee|!91?7Z}eG}27s0x1TUM3U1i!OAG1xfVfEJ7%^^y!eK9C$qy z;G5x8d7^QiZ;bKkAUY8ud8z-K!dbT^p(x);Aysm3+nu4!5H>_x;a%{O&G$cBkBc@r zbHqEhHQenZsgfmHTQU^mGL|`2n~^mYZo_TbBD_Dsygu5N+`?vS&v?zomTEVEu!|N_ z%4NLH!)rg>tIF!H%3f&8V_08Kq};{wBe01-_(g^CI)A( zcWIEV*li4oy#?A&*iW=DgO(>bYju)dWkNB9r)U&?Ep zflv&o)!n~UAARlMsj|L*-dzW(mL?u&`vX}?)H2d9zFOx)!*kyd-N}QEX<``o_JeRNi zWOm(VuvbNRFKg=Sw?i*xwzj&BtA^dWl;86fPsl{Bn6Sm7wd;eZsnBSmIDV`lOJOpu zDY=ek+H6YFy(hVzFZr!*^^9-%wXGgg#1>=m7$Dmmu4=_ZRuqkA1zE73r>4@s&UQR} zSxTTZY@7g7B-y5_yDxtZy9vTFG88{cWyFMoeBi%A?DVql6Q<_Vq*?MxWP-ru^C3c0nt#+W zcIHjz@xJ)feiADEV&w`+mI`8*1o`Eih@@W{m0r(OhDOu_#KS@L82^S-eX5s+lq$7l zBkQd$2+mIwlS(7pY!oqRqLnK9{LTixt%c`FO{!@ET`tC+tt_rDv%F}UJTAskE)w}J zMnP#cpKLaWs?xS;Qk5j9Q(|ni##=KGBhShFHKdZHuIzPaCy;Fcg2i5==IPJoOYJ4& z*r^M|)+@zOYZ!-XeKF|{u0wYD z=<22D_QmLqVy=$Ns*m48cDb&P{a~v5o$TiOMgCvKsPhjU$@ahLNE%F8gMom9`$sO0 zA38GN0FqAy^NM&Vm{9otQ;hx%*CS&gYcLxNAGbN*99tku3XDOw()NHdOvnM%C!}4q z&f-i=y9`chZ!BM`fC)t;#Z0Q0sG{N~jS5#l86+_Q7U7jO=84xCjhGEewN!8U3!(&F zS|Q8!<%{3I;>)zw>UM+n5z}bB_V$p)Ac?4*dKe@oorCMKO}05tATREx3WOo40SfaWAI$0Z4C!di38&BqFlk< zA#($3A5Zl-y|?h74FNB-Q501TSEg-=e!S9rxms5DTp6SURP|ptDHi*>|7^)KY+)rw z=YzB36Q}u?!@&>2IrN4Mgut%B*G!=9%vC)}1fORJB#%l9C1KXtkt4x^!&G?a6tNPL zn`p~OmEIXkh^2mTa;;eH6iy9At>7R63B&K-Md=Xn&?i}BXH8~yJQ1jP*$_lyC%Gb? zquJ8-?Pm#T9K#T&DU(~02|;0WRA+^RqVGsaNoM6|i5{-!r!l00UP{Q~ZLN!1nZ?)% ze)(4_rRBB#Kuy$tG0$O^LN$Sh=9QgJV#Nw{0q4jLC{OpGs@D1CsO2mOEC&J?cp`iJ zXu3h=T9B0QvAk2*EUBWPLyxGO>(5pTm46c+FZ6(ETuO~3OJVaZ+(qQG-XVx8k!{&c zunDzp|Gmi*tyL!xNp-k+tF~R;eavU1RKq0{&?pio#@+uDsq;pB;8v+FXtq{hV^TFy zlOUl+U1*~GZ-r3_)^2lGP|2?{VKBrrYPOFaM?$}ZfXb!9Ae|C5P#TJ*ZY`RKh#`(k zG?&F?CO6t`*6kN}s6r-dQC1ur=n)CP^+#Hz#Ig}i%O=R9e5Iw3at`h!gp};9#Fd7N z`m~8l1bhr!Py{}}Nn0pD*KE-Ab!8=j+OjtZ{d5~AOsp8T;dO@@W3b005HylaU;g)4 z9!C-ICBNGdnA0Y~ZO8W@P>!<5DUk#;b{En^N#Z^OYf|lyLu&i{;BTvmnLmIWlOa49 zW~Wah0fspN9>FDd5}v02&vfKyFC^D(03a$4oLr(0R_itpb29H&a-ZN|3SmPloYD2~ z_{9H^5C4*}7_KgpHP@#Hkx}u4^_ywLWwqA+C3G}w5jgGhpB)T_rX+d;B9`<8Hqv@` zqCm62)(`r#)RD-eO7g=piIP$kBC5Gaq5%(MubzZ37nMiRp_s)2MHC5*vy8ABEaF(# zi=yn3B;mJ)8<>enW9aIPQLe%O9MvY_f2AeSN=C(lMI0k#CkJr#&EQ#79K(Z2VDM4) zM*<2JN#a=!B$znknB{(~a3mzx?;~U6=uWXJGB5-mj*{fC^(470#xzSU60%weq*=IQ zH0G2;!qxRup&~H!ZRR6}_=9PLeMVHNFvx1e4+O5erYNH6(%S2X>2}tnY?PK$aU6-H z9+hUgkZmF&&){Jv2S+qRZ2%GChbYA;at`@GSQ&p! zU+@H{t=xmor9^t`TPUYs=290B7g^ex-ZPRK%;svb&#b5cW&9)}|_R z=Xzef`ElsRA9%3~qx{mnt$XW@@nd(0X#oeP%MC!f5B3jB?LakK#}Z z`0D?~;bV*=-q!c2TOXN?tIH7D)=x*r97GL&aFvk`oOEzwNHz7|?rwLVvJhj;n&2^J z{m>k+dS=LY!#(Agc^h`(W6l}DJ-M?ps0CV+V(ZR>q8w;Wr|I1njp>}qdao};e6y5t z+ZrooYN5T~?oa~96IeOg`tsPGDnNKIv?4VZ{vonf(Qlo}__t4zol;jL(OL_?w68`Y zvgCUD+L-iktkkm#VqRx}1iWIeOntjH+jiNSdw(nyemBDS7(j#hEs*lnKDMm*+PZao zY;5U0w3bw@NWL^u=|c;*@6cX&JalXUfAGU9C)1lZgB=k0*D|ze2Ty`ef@Hh!!psrX z%)^g8gqhZ1cKlGsl8$v+);uD_7>Ah5&%+Dgb1M?vAL;uslnmOrmp_nW-nRd_U-E_qeD%0?)8(L`^pmTeY8%GO<6qco%y$$?xw1ij~Mg* zkL=rKSK1(iSPxB{@A*J|=Dn)#y9|MX-RZyHo9=KP(-?a9e?mX^BJn&;QvL4ofSo1o z7oKA;+4pCDk_;E(ZUr^@H}UG7*I@GITPQ0pHF$P6oVgy$-uN$_7}xf`Js$f|+pkr@ zzL)}b3C$Jb@8ESGa{)acyKeX`{q~>0oqT$at>fkwKYPBr{|J0e`Ex%bLcjPm5T#k( zla{6$x}RHaKKF8a-X=zT#$Nn}PxNkE{3LF*U`l|fQ9 z6-spnQcuEJ6|7-DY zdGW3t(&BslTVo0#u&O0W0WFRhB-I*3xf&$lq4%L4Kx3%5>hAlS(d{fH7^vXZ2oWT5 z8Z7)8EG(g8z!4(<8f0{;Wr`VMFsfx2_H!L9Vi6?v8e+~7Y9$c_1_)-s6r{ljZg~lj zvq6c#wH-4hFq*0R1oQ zuSb{=MQDUZXjod9u|>G^Yq02RghOjc?P^4@L}W9xwl`)3H+ckEfafQ%9BW!|9aIFb zMTlouM6gGs4Q8YVbmTNgWOZwlr$<;4W^`RzFG_Eo%?h-oQjUw`WG{$u`%mXt-el<2P46s|OY=2GB24fk@^wCrvT-OiOr6Nz_aa z7)x=cM2<^OHB9Aw5l4O_L-w~!FVxH^)=UdO|DzXNzZ^~^u2meA@0inRRjSlfQ)hiI?ghu-?B{4;wL<_7Sgjo<9|k!`d|=p zCTI52TGlL9&MXin3)T_jR~eseOV-j@*8W<~m1GWBU5@W5pZ<`1)*>hdVJ;+N_U>8E z_gTi_SvG`YD!D4(Tp<7}E_Wn7YbiYI^DP%Jp7~XpHI9{wW|fU4BRTF4Lt8B9I zJW$x20)v78&%*yQGAOVMQQNZ`*V6u&+S@-NwWb#cTK$vD$SUB3m4c1bmkKh3E!Oua zl)^5y;7T^;DptEKve8Ph*DAIxPqF99KReDFJp+@ED0yh%n*lErlKSa{FG1rf35h7S zJ1;V$Dh>fk6&sxwg}xV?wU-){mtJ@jn^=|Ed6lKZmc>$KYPXl5zQ+Sz_~@Gek1zR{ zROJQh#pbYO;jkq+<;B+Tr8Te>QR}5n<7JW=#fk4_&QfJwulbc+gCU$BjRi$M{h1GefHFni3MOhYCMMp%bIM*+4sX|@K(n2dqyT|n7gZu-pEO)7F z(EOjMT=6(w`Vdj|kWtebQP$&Clh|JKj$I3iQ(3K5+w+781m&_2uM4y6Bj}#5qQXD|_ocAm47Zc%t z!sajrpkJ@DRJC~sRbWI@X5>8+gSEoyOb5sv|G-7iYOmR3zg^!_j*k*G~xpK@$202b=%y)DA@&i7D z2R6%QoSg>D+Gex|oNqL5*ji?SZE{qFX9QMp45K%EEV4W*Z>-^RV)z58IcoGm8NqsU zV)C=U;C5t9dNB55gomdF2Y^g7()%zDJ>$>>8b8L9HASt{@!mf5);_r;YsEJ~}(Nv7JqcidJi-6eJ1IWpNV|7*rrcEW~t%2Y?0uYI-oa@oGBKah4s-FFRTYX!L34&w-t61|3DJ5QSp zNTXfJubMAHScuA8E#91a)fqi@o_Wohd9Unu&R!?W-U#+xD*!A(1ax8Gt@l-}tADJu zOl`DQ%~x)X#o10o`zl)Uk{9r7H2N-%`EHf#uJ?s+weqe*0q^FAr?ytRHX}ASnc`Tt z8YULEmhBN%_P@3v5sY9!wr_1`|NL5gLfARv9X&>v+W$RuLA%zJy>olD1tqu(d9?w? zI0!wx^+7v&?7OXezB((Qaxt}iWxIjkx0MwQ_*1*r9|a)v+d{e?{;&JDssv@d>=vlq zRuKZEI>G@H{s9mkl8q0F;d&M}V1v_cme+0;&u@3^>mXJ3Fim$q$7io4YyXdv=eh6R z@2XYS>x1U1J<;lZ;4eruJ<}+hL&*4bjp+l`<0Jj*BUQ7*^2~LS?E~PSL&M5LnND8C z#(kRYZ5s1g)#)Rz>Jw(ZBXheW6Fq>9-$82j5r^Di0FVz5Wqqt}yTN96%#hO>sdpNA zeawctXT7;9Gfl2scxX%e3***Pe*Ozp^UTE+BL%Kt#ISTDv!`Qh#>;{q3f8_7ESMPZm*}mrl-Y?^yL+D?L z-<*Bh@;r;2fY3cN$ln&pJ=@7Y`#C`4`9oLZU%1@dYSp}m^Z+jTU}g+nsAlfK1z-L+ zJQB%YEBjv{=ia;fU$%C?z|jMu055d>&(H+V^ga(v0t0Ie6U_7vwA;^V{I|t)fKY)K zmzvYE+;<#)s89vdik|Z-AW|I=35W0=jo_X%@4X`Ts7xMUkoOM!1?_kH5|R7r>-7Oo zf8CV(!eRHaSAA_;{l;_ibN`pMndL|z-XhT9d3a$}ly<%l{w3Z2doA{xH}-{1?sJa* zm4D}*f$sIu{w2`=!nN{MnI8t@7vK*f9_YhOTweer5DQ%Rb~eO6kytE=W9(mUAOeh) z4Yb&SP%QX=h`5+chr`IAD%G8}2}OTWFtplHYZZoNGnu~kg68b^;1zhKYB$v)*lKt46E?;K~hNDA|O|lMDFIQ`HDYXhY6#og-koD#0Sj^Eu zv><;Jx}GvtYbF>S`5}1UD@c`VSdJ%Yq7|#;vuD%&C`Rv1Cj~`!JF!?xz)~ZsxQfeW z^9NcH#8Y@+Qe1ZfNH3R*3|5SO+Clzcx@CDo&xWiw2TOzhO|e<+u7QIj%W{|&6Duf+ zoyKZxfd4PO$^OI-3p2`}xc=ZXofqWv>`dLOXc&jhzT1+u`9zy(&*2mJ4h=4COPGhe zjBQtijCfbWuq=09!ydRU>_9!ZD2-Hli7sWp1J|+OAdHA%CDnN!mY~2Jg3U6<$ACyu zmj8^)Lt6`hG$7v^MyFxHFYpU~mKG#*A>udK6`YcURRqbHV62V_UH^Y&6|-De$g`I9 zh!u@al+L|yNFBk0-cI>sCB`#Ds0b|e62NJeheLpK zp884FFC7M1t2FqA#{6y;;Ej|R4yjfBSWXm6hj1Cn<0R9Xi1UK%%B9N;{tc?D90;re zv#dO)sp0~dBIzQ(Ftut~)NKxGA0-uVY)MhC%Ee4ccc9@`QnT#6MD;hl?9)82vg=bE zA2_C~7MK3hqNY&jp^LnnF?Dm}F7i-NP)ZCnoFeD>(d z;QCH7`I~C{rm7Am1JqOjk>F_3GWLWC89R{uOAgk7*xIGgl)u7A$0R*kFtk6~ zq-4&D_kJumuWmYZil)Oj>7MDvm0_?3ZBzD^ea^57vMwq9C5+s|Wi1GWw0&m_w&J@{ zryu*G+vu-^^VIBVw*ucP+45aN7}D%vo87g!Mw$6vwEJg_;4s_yh~tiyd#&o>){CO` z`CnCAq?h*XYHd~yfkx~7ji}2MV9z)DKD{W zYjS^w4tBfR(SUi|Wg^7Zn&AY1`96f=SyQsexC@pO{)}|nKikxVCo&}h7g)mHNQH*y z%fl_-L$ex;lXo34 z9_C~G<`6tuqlqLaFv8h-72_yp_{qk25V}ml^iD|Th^X0^M`FW^*>!)C>S2EsDT{FY z{IiTGg#3+_-Y?ud}e16iK}M4=5Ty4+=T}9+VYT7e7)T?0~8gx*zi@`RjAi* zv;Qd5C!~Pe$f+5V$7JShQwT;6smg_>Y>5(+jgB>u`Yr}fSz{HKg358chv`H}$si6+ z$_6VekkMR4US33(_$QPH@~?gz_gzc+0&> zs1R16Nq0z186ee*3&}{dNs5KzR>o4gmTJNg3MF)^wfqi46tbrq&G>U~}s%fl(PRX>t< zLvQW1ZuC@mJfk%iHT2SZvi;;Tx|thGV(1-_ z*|tB9;f;#(<(iN!S}uDrqAW}F>M00Yg7}T>TqcZ0!U&bx5YaXJvXthHt7@B?iJfmR z_l`r|D;M#?=7l9!4Yc_npX?942u_Wv3b;d4XHhkfQ;Z)v(jk=hb1&{5y=Rd~orxW) z43c}b3osqUOrrDi6zUXXr~(vL#mG1vA_IR-g>AfX=L!C5jN%|Ng`G$w<7$(ReFGb6 zeCaDHP$yD{Ha!_PgFZ~KN=AmI-6SbGCs&9cUPeT(9n%DLj+qV;5X`p0(w8PR*m^ie ztr3}V{z#zE*N}{87av5Sb;eOlytFD8M@8yq5y6hU)_YYu7R38VaD22*3D_}blXt1G zt*lK2Ry|}g@}99Ozt8iiITv$YG15O^jp!^p=cHGjQj;^!PUiz`eA^{hQBe zt2`Iq-~h}2eoR}iv61_WJ(W!6R+P+ZMyQ=JKimD771_0JD$l(>WhN~3=gLZroogna z!m;v(%la5`eOaQ6Dat*0QUo}#q&v*qnurU_;N8BsNye6O@_A#`z_z%I{{$?BqO;<> z=vXVF<47OttW(+1o{;Re);jlsk%Muto7$z0W}8* zc^E^Mg#9r`VRZyK+e5s zjpnv<%SWqv*GYy9?>1@-la4OZdJjhMzsulE=WOYp4KTdb5+wHVSm2a%TE!c>E&ey{ zDNQhwbl)pcazB2Qf8_Cp_bYoUA5KJ%*@3*@(SqOGeU<#@jW&MjaH#nKOiQhsfm)+oxz1PmYs47Au(!IYc zg{WKvZkdIC2X+1)6ri&aK$z@Cz2)D66Kc2S$B#ulvx87MTU z=z%N1(Fx;gujg!xGbvsm@kS7=tzc74w-jWEGaYGI)w1`kMV(q8sUoJnh?IgO65_Ac~FnH z&nM)iN$UDYq{By8f{#g)NS2|ByJSfvERIH3j+YOP#y3iwN(baxjC;$B&!I#FMKzgD z#`%v*{(Y3p{)7r>WHpu`%=!$^!WDZ7WHo6R$o zvxsJC_KEfkzE7JFyqz^czGdbupIZ!CI=Q1+RGaauYb41cN z86=hh9?=^mF}o>ksw1}HBc10Uoee+i`jNiOGCJ=wVJITjRXEjcQ(vefRa`i2o+Wm? zC{|H9vuz^tF)9B=)03_e@%Hr^f|6H;gD!PgUkWE;_srF{h-O;5OP&4bD_Af{hu>1SBfyIGhHmQSa|Z- zrgem)^E6v?RA{qZ;K3pA5U9L!@T4utB8ot!WC?}c+27I1KZ?;ZnE(?BNO;=?a~lZ- zfjN^ulI*1H3`+??hZCSr^N?E{BFS_9r6Kr5N_bTY%wJG!$r5>l3;eoatV=2!MauGD zi<}VBY`SBzXc2t6a|T2zCN3&?U1OrGv;M0}hv)O^tO}rAsxYp~Ok1kqoeSJeDtcS0 z3a_9Fv}(qzO0}CyGH7bLSE~A73v8?^46Z7cu1i|73QIJywq4S=Lz2{66VSG*;gD_mcyF0|@WSIQPw%4TTld8^VUxZq;8vn^2*FJ7~Dz7uPo z%VMfC&`T=%MT>ez%1T2j{GxMi!Ro-sE)5}>W&N#HuP^1;sYMsvFb7*zzoi60iq-bU zi58XFh;t>|E46zY*@UXuVBMMMsYMiCRhgwFZ#=cAFU`m%WqsR)SiJRcR&^g)jc#~# zwdmQkNA-ut`FWGI2-tBP-=7bN%T{5t@w)4V|k5b)t%Syc@<%%099y=4cyD zXxgX{NX1(#5=YBPL-=;OTyy!-%_Q>iMY2}5D%D%-!MfVbteY)O>UyHu!(S@NNgA!H zI^kU_AxA4kTUvP0vxx{19aGxnqD2PqpxvsP9Z{OWBq~&ni~UXNg}&O(wClB1tHas4 zCbrtKteedU8->|wMQCed4mCh!DTQ442yidq87acUY{(;s2ym@!f4~;_{ajVkY@>_r zXtvInuJ&4y?)B8n2=C_d)V7o8+!@4XZkk^Fmd+`f?h)FSe_D?vbOB+Q{$YmnOZLu3 z*G_P+{xjNUhN|wb;^kUAtxMJA9NwjCS%Vu0ZLngUalBnIG#$9)-5|W6r|h2ZZ2ec? zop0SRGp~{suA<|vouecD(<1%JY`uQcO=vQ03^Hvv%ng4HQ0x>?Y&}q%VMC!s!ym<{ zW9J^;@sBUc2n=^0r+N<;(unBTkl=bRnq{B3+K_15&^c(IfUXDA&kzz(&CGP~=XljL z?S2Mt2lpDlo9Q!EQvg47^;!J%*p7E!UG?eB_MqJswMO@8mW_CG_9&kBNK%aWpN)z6 z_9@JaNcoHir}qTZjHvwfN$8A3{SFse8-`2H#mv_URd(r6ZqJTn_)iQvrwDfij=fvFKh9 zt-f6MLGtpxhux`L&R+JlRn50mE#gJmwPlsxX`SgA+t)r?wQ&Ug9wVF8o2x!Q?3NRs zVH>0+ikLaqvKCj2S+bqE`?F=89*hRA2NpABm z_8}WIIYSsS9XLO$Z{Kre{42s$i#AW;I7oBl6zkb;{cgFvM)*yh6bZ|3>*VF79{kIp zZQJc@TVR&ispqiGk4F?E#U^jpMy_~y5z>5K&iDkqAU9q=-@>#+?dl1_IDX5f-}O(G z-q<>s`WV>?+mOvx@m{~%YyEdc3m zTMmS&Rz>y;3bE$4ZtB*;R>D=z&dL|$7~Sw#_3Eq04wuRF((oFa+<^ciqSyCIs~3tq zZWMk53e{fOhtP?g_g;4h3IK4V%yk+PyMvo?_(|x<;!aLe4orj##3j4ES2p6l0gJee zz@?n)V2$(EH%eFU2Lk?T!e1eb80VMx_XfOV}pmD0Z1DT*J2H5E+Evk*^~bt7jK{w&?oE_ zmi;AU(}_^*WzJ@Ojf@**{3XVM#z=dfrG9HRz-41$792R1xwpr%>s^af|Jy^{*OXNh?gv3nKq@0Xard;58n_86AmSQW@a zh#`47y9Z{UyeC4v=gE5@X+qn0ycO;~`=18quDZ1;dKWU-8vJ_oPxH)Ucp;5_&4cpl zCcn?2zssk8FUEU z>0t7kZ^70o?zq2wDs~`B{19D>v>9*j@us4gBgM z@U1&>2M7cYt9|wn_>|@D4fcHE;MBkc=?qY`k%bJXR}h9UuBa47(owN^kxCef4;%)Uxstr_dED)nlu(MSSq$CHhE zjZP1;NyU?;aw!-RzRRCQ3&lcD%Hts%#?t|G%}HcBn^y*-{t*qJNTWuQp?(1drBX_3 zAf;fbO964D7drK6qn5D0*ae%Tk$-+yGcEi(wOW~S8UE!aR+>NoVklxVO&h!YPCxJ+ z5s}AIY5PwoP;C11?O}U5`~p3~UX(Q;J6rB5rqa@S)j++4H1_>dV7XGfMXmSz~yF3r0z-uTclvJ$f~Xw=q^c~_h;y-`Jd9K>Y{oS?>D)z@vnDs zT(<_s*KENi-KBgl1))~_V05#zAJ(*sEF%fu?G#@_RDpzUC-8Em05$#kW!%D^^vDMWPC5gEar zxDo|O^2F8GaKTq9RSD@_RRq* ziyxt2C5sf7XK(=)Z;1P_9yr!pHGV*_?YCX=4s+iqvwudIipbAgD|6MhG^qIln=c*c zIkEOcKKWmMP&^yagv`%nNP>`xq<|?nTHUb~u$mG4aja-5+0BUjEadVHn@~*}l^w(y ziT)>3MmrW7J$U+OKFs-Xx1--U<@Ku!sDTb4R64)Mw;!1RDX}pouxU%@&b_pFb<$#4 zvnVC0gD_5IVX@rO{D0<OyB zY4rai=~B?lsSSe)H(WCaXE@071H=Lon>$JAoXaM35hGI$*X499u%y)HBdPzxC1IKX z&kuAKZaSDm24PIs~i`5cn$hh_) z=W#qkg`XBpYm_Nuz~Y?tB~~_nnuKS{3THNK7V^8}p%6mhsuVMVOah;qW_mi4H4S4H z{#GcW8cCR|TQtj5mNW^^I+MQb{D)SxORl+DC!d@%f=452sV4Ux62PDw?@|WK#{WJ^ zozGN&CK^iwrAb`6+mOTdWbxY=W}%2_Dbr=GSO8s8MHDird_cxXzAwEoT8hdsN`*wW z$9TpYmL*RWB9;x}e8PuKDen{rU+Rl#RqE}xnAk`{MS#5+uI1^|%~YvbS4gCq zuXsaF7UyKym_&Bub@r=Ps%M^XR{T&sQfSP)L-Q8OA8Su~XNtLKS6&T++i%Mi-33Jv z5_pl?`_p8#hw!DmmQpHrT`t&>oO>W{P z_|>vXUD_)d2@|#5jpabi4_HNKJgSyQTU!eV82!M?l;ItbSk5TMF1!`#5ySL5bE_y8 zM0vH85mjB9t^Ucu;FZPlWKiH zQzzj@9##@2Zdov%m3r-XaJ3N~Q(W{wW)qB0$?3)nW=4xj}1LMk*#pF z*snja8>_XTtEtEJ4yY~MMkiugy%7+1x**iKpBWN`4iJ{wEfvdCl59N=yqn^rxMs}$ z=UMLm1GGR(zkV`cb6RH!+gZ$-&9JGfYGe4awo#*{sE)Z}jx3o&HSe8VpeGeytWXp! zFT>79OAyi`RsaJxC> zd;iw0O7?GvV@*y=Be^@ap0aO~9AG@(biED)Eo&%hFSf+k7~5{tqSu>ai>F4VWY(ylq$B4?FEmFBSsk*qBeUsbWuiU zd*sFb>?tF@QBa4~YIZ(nsP!3c@Cw`KJ}hd7k&4^rvbE^whOWO!jbN$Lrop!bXk6c| zW(F(%na!lERL3fo|6b=>ajL=4*)8sDwIh4t7;-e96Fu?^oyF_uVYD$WN>S7g1Rf*D zcxacsY#m>`v&yjjR{{&+r`BEQcHT~4_3Bv8Lig#Uwse5MN?D@%Q2EO*_oTIwO}Re4 z!#?lk;)$MMgEKtW&xC$$H#csAw1d&R4=wBI>koe{+w2#uzuN0Ry|4fNFlLwU|HYna zcm-=Y8nro)01^c3#a?J#6hUmr1O#4&fknIhot?3qxm{ZI*_uu{QU*pJk(u9I#0Aj# zT~6f_^d;3i#YLr^pE)6zrfFVgfK;dT7K_oFQaRK`*&b+R90D4{*jb$G*%($dTd{ea zqX8glwMCAp|DD5KTYL?m0V?5EM2gu#(8!S-XgSdNJ=Co|UCS|&BU#_&jfI0<*up(t zELGSGO5Oyzm<4(vH!+`Bq#0Qu7983fp7~dG>6fT!6F2#p+3BAGeirJ@AMCAO*wNmf zNr~&(Ut!E2Bw8VB&EHu#AR_KwvYB2Jj@;QH;lxqOFI*K^e3Ip*pglRBTpbvZHB%n0 zU%7Z+k=cf)fnO{Rp0BOoTj*BNVHx=)+=a=Kr3oCpiJ5_!pfCl&*&*V4ou1c$-BvhS zvtc2jc^v^dP>v0R6B34eA!67Kgg=a(+kvBc_+Sz?%Er;(l;~JA{DUOa!ScBk!kw5D z!J zU{men1L z+fgMoa-0J>8w71!mVo2{&K?#<3F@xG{_}g=0RO*gCIrCKWHUe4uV62xHAC18R@T^^8N@+D~M z|0Q4!CTGrNWoktp^q&xNVza>{#LeV-ISuG7+UH5)G@9i!W}`{kpE@$y{efPGIN|4s zUtaYCUXj-BnT zq=K5L`>mdWZm9iv-TaB;Y9b{$vKvtR^Df`MO>upUjB6!je_Jq@SsvU;G!|$e1>B-ejb0aXAf%QZ7SOAt=&h?=>C0H zRazpUT_H}!pO&g*k49%p<{0qt=M{qEw&|&#!k_G6X9BXRO$y*N+UJ%Q+iHCtoF0v& zGTM8ABc(ngq&DeRwx-1WX>*EGYZfW#HKTe~mGza;1DR;2{31u#V)_t>-hITyHw4XD#Rb z%`2;}UVIAab!H@uriT$8qI$+>7P19S5^PI)Vp4jky8aot(%!=*;MYhrb>ohVO+Z87SSsZWLBu3`yhaRaSu4g!w<L2}D(!_Dq3=ykg=SoSUPuCZA~jNFu9j@Q^5$%khqB)~+zV7OVg;BQduO2IKdTXgx>w|hL*;T7HLS<(G zXM4iw$GV5#o`nxa;q942sh+9A(%9@`rEi|L4bs!Zt6iy59uL9~1s=|JoS$p5Cnj z+QlhtYj~x@-6o)3A=ZNMta@VNvT(s#st!MEhhlK+vMY?X|1h8)>=Aowz2s*`8t;u+ zoan`CArf$z7UJ-RBQy5s_b%_?;;)w0pYc+v#vv-}E$2vvB_wX+d-5;A8gK{W>CUp` z|Iwe|zHUX`Z@TWT@3Pm+;-rjXB#!*HaFtH)u|8mfCa?asslaN~dm8jc)c4pxNY9#(vYa&NV8c(eXS111pXCbm{jZxy(!l{RrFC-%CxL$LW7VEP{P$;J| z|5oJrYBC6GMX_eoNeWV^+U~t#ZxoN#u%08;HnS_!|F0syX$xN{>$)=8k!!6waluBA z+?s28eRCx~Efa6!GFNis9xSMuDi>QUSgh#Ns_{B|>vC@6JYVWSSK&BU?LuE-tws)`msyL@+1~8g%We6uJo$DEk(~*SVpbfuB%o_ zXVuO!+Xb{a|FOp1SWqW&@lG^GHuDubt@8eETO3n^>N86R^GfTkvdOFN#uvI)YwYdn z12$?(%5wi2wNq!b|Ekh={?v_mXFMzM!vS=JR@56S@8CWy5^HcGd+U4xvlJUK0dSN5e zhV)lU@m6>8FsEeyn(?=8bRVg4?v?dnpRe@R%W~dvDTg#0$5;csw*2ic(7v{8D|Qu1 z_TU;RWPfsL0W=M(^ut+QMJlo05`^IDuKM!!EYIWzGxn|e^*19hZj+WR7n&2l-FA~! zv?0wUgVUQHHhw27bE{WCll54?*t|4!V;hE6X?1$9wn_T#*RuCY(=}t8HiSpGX=5dQ zyJ&=OsDlG`G68giZsX99EFU-fN*fY`x5r%xLK}u$542A` zuv6xDg1b0m)e?&N zi5JG6=Q*Hnc%ajZoe#R9A3CBZdeRiSqBlC8GrFVGIi#aTKmY(C`2+<60RI3iasWvH zHvvll00{p8{|OvOu%N+%2oowam?v7ah68&g99OWN!e|3A<{4;AAjX9tLy82`V%DJ4fo{OL*!cIvfZr#hbuRx<<2?h?S zw5(sg@(wFr%$Vrlza6Snc=BpnwNJCHfT+;IKI6Uck<^pGQvYu~EW`SR~A z9|!+E&^hEsgunk?7wGgdLL1xTy9Vps;Na9CDc66Qt)RJ48$ z4Y-wqB=v&UffNQc7=r@gw@`t#u?EsN0tr{4fCHs7;)ySvb{a^7<))!Rr+GLcM#d18 z9f~;e#oS;Qx?~iGCw+F%MjsJ%9!MJrG~qx=x`dfPf4rFEl&CEv-dI{yF%WNmprmC; zUkW4-bX1m!6Ig?-IM9{(frp$6X2uy>Zfpuvr%5u3CZb9X$mu6aZ1$*-lmY>1=Rb!2 zspz6ft?3m(82&>jqgg>nDUQm46zNEtUh3(mA>GO7k)W2^s8Ra~YEq&?P2jPHvRcp{kWOdZb3;h`zRCmo;S3c)F_P(Nc_phR9eNdkQK~vDT1L^-Hb3ss% z3HNb6tI8`)NgKQ+Nv!F;5CSRXvGhV1Ij#}{O?o^yOGc^OtHheV1ha8rf=H0YDWSdj zP$PX!b-iP6^(s!RS@t*92{}BFQj-g$PVB3rbTVl)0l(_VLK#of-vf=#EJ3peZ<117 zL+TRH%1f`kP;iR!k0k$iPmuTnf!~t(+o!Mo`s}yw{`>I9FaP}X*Khy*_~)p$JDv z!V;SBgeXj*3J+oq-ymdL=}|^Uh|>{cY-=Dg#9>XI(i^DEkRUf)NP7Q4V z$PHZ>5+mx6BL?w_6K&!|f6UJx#^Bou>!&$^^rIkO{6`oSV!45gktJs|NEpNTi;$FY zC3Pss8wWB+rnE7Db#$Xj@|ch`f+UV!%$rD{0S!QwgpUY8>tR+c=NlTKjawU2r<|gxZMnbMcnUIWRD-T(cG~!YrfIMbMpy|I{N^>;a z42mb`ct%wkM3xoQ8zz?`Ol`I#oYa)#G#6q`Wd7rhMdV-@_2&OhQktZmnG7gMSgB2d zjuL?IjE^EMmq$?+6D7GU=RB)A?(K^letWRo+P6PS*IVB zDN=aWL79&GB0mRM&~Ji7qGIHvO}8mhG$zEN8mz_zU6<1>s;>;Iz@11?x;2dcLlzu# zfl%pqKR(KIDjrKRi8uix<>jHmVQI<>OuU95ILkE1;e=PFgDBC z&U$vUn9b~GJ*(N!j@GoFMQvtFD_YWWR<)oVt!Puw7hwNZumAwat!{VA+ur*2x4;dq zaED9W;^wvwS+HwQaWad4%mDya5QG(?D+uUD7XX6Du6D7TUF=R*yV0Glc)!bCD?s84k`{H5=8-CJG; zFZjOkWp94%yWaT9H^1%$FL~#S-}%-zyzcEUhy4qHJ^;m;8yrP@&%592?pMO+y{~zB z+g~XC|}P&}6o=j~9Gq8|#)D6pS)RS^x+{vzW-}MK6M@+~Y$xI?UkRa*)~E zW%Bm6)L-`Wk}*wVB3C!Lkrqk@M$za_pZdt17VnPNoMk_c`qHG<^^%YL;yYW{%%^5G zZ&!_E02JUQlIB^o72*fu4wu<#Rx+@G%WP{Wo7$|&2M)P-~vLK_WiyPhJ5$?;0RB+ZU+zsde?iR=@U3X3=xJk zDE#6WkM|tHV2BoMw3QO4)IR?a@_}5S;u-%>xyp(2M!GQ8{^KS{|4{*SWn zz3+(U?cMQ?6Ux5N@P|*lPLq^j>z@OJD5NFZ=%mJnl-T&JUVj!2I#Q-}msl`~nxS{s*}qhLc~w z`|Q8^>D8a~3k3dyg7Bw+{&!OL15d_Re+k%qE4X$C7=bVN zel2lH0wi|{$ba{TaVnOB#I=JksDMoP4^Ng7xEDNz@PY_vgYZ{`NQiYxD1lV?bPZHX z=_i5jXN6dpg-q9iLr8`$Cw~G)a`2;8Q%HMaScYZ@bUWCCOK5}t7eIc5Vhh28V+eyP zSceLShT?aHRLF)D1cO&dhFAYMh=ho6WVeBcxP&nXb?ie(Y=sb0Sc#0-e~=i7{f35! zxPk8na13Z~D}i*BSc*d!ilVr0cj$^ec!j{HM)#9ZaY&1$Sbqcv2D=4}yd{jk1qQ?j zT*nxUxdn{Lh>R;ojI&6EUHF3kkcwo55@9%v2w01-s9VMuT*AnV$M}u$){Mnvj>a{P zv*?JYNR51WP;Ph-o!E-JNQcTejLXQ3%easC2#&?5kL2i$0_j`fIFJA^jsi)H`q*2{ zIEnSxj+e+$Gq@1sMvuLSh|jQ)2icDtxsm8dkQ<4Q`G|}K>5=?6kR_Rr-k6fc2#^2} zjne3d@TZ6jG>`S@iW&bYlKm)-Bx#V}$dfI(lOb7<8mW`~7?27Xl>QiuN_dl{c#HUh zQ`%<`73q|&SZyV#kVA=-E%}o{*_B{5Sy~l_Ob{`omx!s7eMy)m8J2x1msSat1LR40 zS&A7cn3_45fytR?xtWa#nwzPZVL6(kxtL%enNC@a2DDDIfR~qvk*3+1emR?@S(>(K zoB5cVhN+ufshUnnnfudH2|;zSDVx06m%J&Op}Cx=shqP3or+1Asd=1N$eQpdK(J|@ z_lKL#Nt@sKoznkVo69+#qY0eBxm5jQlgH@?;rX8M8K3f*o9KCyP$`weH&6somE7r` z^ZB0u8lcNrpY@n~4Jbcv#GdUbpbXle4qBbu34g*FKen}r{P_=vh@sbsp&WXJ{`sIF z8lvBMfE{|B@TZ}?XrKs`p#ayS04ESF%Ap$ip(6U7bKqP9aR@c~o`3+OC+dnaT8bDt zp#ap0DEgu&S`bJo5Hz}@vk3^#<_8C{0VSZLPHLO8=%X;&p(a-l*7!fQ;BYUxrAO+c z8~P7TdZl{_2pixB0`R7A8mDl2e^sicn|X&Cs-#MqqyR^x>#3()I;JSPrD2s&eWFeE_K~ zDXArDra#K57`g(;@K9H^KbYF73ITthx}zp$s=gYh7q9`UTAg}&tC&gY(fzr|#OWaC)$Bs<3hjuh#kxkE*8l z$`T>~diyi3A`q}CF|Z6et@66CipsDC%dqk42NCO}Ce{)%P_dvlc#MKb)gS^gAP|1~ z4>kYGu>pDr2n(`1E3ysyvGWSD!g{4927HE4vjuUV7OPk1W)LDkt~5)tm1nddfwKVW z2MX)60`Q`K(6v&Eq17q?sp_N?o3si+wf~R+Pdlp=st`~64;pK;BvE-*JD&vruM3N} z?dq;*S^|P8s`a6KrX+4{_2#cz-xdH#Mw|G0R@LB*U%ZX^K5Hl+S2>=Xy>9mMa70y0`}6yGDDohLEP+YrQS$y@E--V2K5!3caCA0>#U} z-Rr%@+Xsf=u+EFRehUWr>%b5Ez{ESj#B0Fc>%b{HzL}ePzpJ?wn*gWbueUO*GP@%5 zE04gdxpM2D7o5KnOu+fezb_01rl7#6>#)L`oBE3dCbqx_I|(`L!VWyd`>VVW+`mK2 z!zZk`yW7DUT(Op`GV%ihYHPVH`@2mnj~sloA8No5OvDs?zXJ@x)N8<4o4RORxJhim zY#hVhd%8C)x^DcvY#hN}Ovl5Ez`HB8@N2V9+__b(wgiz)@Pn~doU!yfzKQ>w!cyzU z!fU~9Ji}zX#uYrk27CcoE4U@F!#n)NWZcPM(7Xzqx&mMdpM1xk491q6#F4DWi@U{* zOtrrY!cok&ORHD{!M>JTxw4i|ot5yvT>FwvXGi?=#M)vB!z5&g;C+!>rBPT+G*Oz|-8b z?rP1De8&jhc>B)qyv@&S%&y$d25r!C`?OH}wAc`j@$7(DQJ>7Ck z&)C(r=2-6n+SzJP86JumArr-hCd>MT^)1zRvw!d2ve8 zQVr3xeChw7l2j85bL z&ZxJ@s8I{x198{rY}!)1I?N61R{Z2NKm$)c5V*d%yld*Tz6X2TymcjNR^v|h)0Ob}@vFTI>;gdFARgkGo<7Ze=@C5;$NsvQ zJLLr7?6e;0?V9Bi*9X%Z(A0qK`~Ki)dhiI(yB_}^wMkofm7eh>&hC8`vnm4bA58Q0 zZtn8V@it2XMl15P?xqV7y?gNQ222f*Mw5sB;KKm(1WoitU+?9v@LO;03U3JLj@O({ z%Q8JU%&qaB{`FZe5L|!k3NQ4*YxTwqMfCZty*}2`>bv*i` z|Hh0O3ZZZit*VMB%tA5N6`&kq(M zSTJhj$T4Hbj~zv3{3KH2FhdGeu2dO{B}CE8Qf+E5mHTp23!lV{4?)>?ar`xtz*rc5K zGN!`2S!0DyynMS&xBPnJPXI$wkgdQI-y<+SYRK+FCY#J^nhZf( zs5+K{bj}a?vea@*F1ze0g$!oWP0ZZ*dy%HYZt-$WHoFAUO4G`N46N&FaK=eI^JK}G z@4$m9varNT2u{+lIX;1W!*= zn^cCg3?Hm4Di1lG$k0qngpmVq5>+F^;a%8b(MzbpmNYtQSU5u*$VsA z(AZTy9rhtufwgwaVM^eJgq64{Acbqg)lyhj9Xs|@fe*m@!Qb3<0uZFk_yoE=qFfSu|$y?q;Yc;6HjuFl9~)6LLMf-}zQ;&|mW_OXTU zeRyP&6OFjv=)wbdN_CZ_P-B=`GWgkqL6x{8I0nIO=JqhH7l5;Fb`) z43*WIU_Otg`7xD^4Owl#N#>c*iV1=NZn5Xi@NSL$$*u-)jOKf6uwgjpaE1H*CveUi zW_#GLYbM+3t}kYM;Jj5*HtfR(8XIJ$JC_~b&&!<{tg;`2eBB98U-s00B3DRw%cXm& z_*U!Pe0Ju69URWWrE48*3IB0MS-X8F^-kffSGoAZF*m5}o0~U3)7m*b-t}X1A71sL zwRbWIWh1}yddpSHzj(1nFaLZ1YD!|S>mPOcXSwcK4;;?On*8vTwfiaLdf>>P@xn(y zv$+aw0p#G9Bxe6OuvH^`t{a{8uIIh`#m|8i;?wn9=sgFCt!%H$-~T#z!{VfmP%Eh1 z1uk{iyIIvC&C0&BZKP0VHG`yG8l+ZAr+M27EP$c>ow4b z%>rW*Cl|uYL2-(Nvtku>2tBfqjelahoaIjVMH7y(Li8)+3&oek5ngbOh5>~`3Tc)$ z;_!`D;-NxBC_*Pz!*E|LqZsv=nHKi(gwq3G6t!r%ha9pfhZH465_!WnmhwC@tPCK- z*Tg|+@_I$Qq*mS~OZ>^Of)|t`C`0+7Qhwo-9ju)wRoNUmwr-1Agk%&cS;<;vhL5rY z;y)yLI4%D|a%s*1#W72{ykP<`V%;3&M968FM(WasbgV`!aT!g_;PQH(3|}t;`43Vy z=a>@_W;g-J5K`uo2F5HTISWdx);&_0oP1^_xdu8$KRswN0Vy_>c2S<$i)mFPDod39FpxDYq&OGGuQQH3DXvi8KR zm0+uT(&|>YsuiwmC2L#JYSy!&HLr5*(p%5ES0Uh&r#mI-V7pmLayqh}PJALAr)tTn z%4Gi<_roPNqqsk)j&P*;JZwQb+tk1Q^{&OCYiQdV+P%{Cv~neDUh!&IzKZs)r5!D4 zReRdjt`)YTl}{xAYDmupl(0JOVomLtKPgUCXpybT2{p;bmDco$+BBy~m6}+CcJ#Kh z)hlgj>sr-I;C$<3;TuelDEBTy{&lHyIl{z7ror=@OMo+ zS`mZSwJXkPb}7767Z=ho{AFe@ttrJ=^6?*&{RjPESYVcL?M{5mnvY>fzb7iQzc>F@ z$!B3)($5|?3*oh`hTWTC5Oes$Sk|kG>$+tTa~ZZ_R;^&8%+t;qcB3okZ<|#L$aXf+ z84B)kkq!KhhXPq35Zv)fC~G|_-gtyk)FwcK>(fK0859`at~Kbo1l2Bqw}7=Wq)U8h zGJ}}J>20rS9i3@Qvy}%T4P}%SeONX-lg9f^>3A1y|8v4w^Me~yxE#gqKbqUGNbhDlPY-L9p+S_gMp?jKL7!Op?WYcD#AN=12=2{>M zX7Dt!mS^T3xW^JSx4PYp(g(Y_rq#YK2(Ei-5FC5j`{uW^Pa*Aoix{cIHZ}h!?CoT2 z2iuxVzOjGnY;Iet1lQ^Ya=D9q@pVr;2*I|gbeY^)d}RC7XV!PXZ_DhHo1DC%M!9-h z{$6I|6CVUUc)?xF=6DmDnJQ_gxof?Wi%L;<+nY>zqjl4m%|+ES+B$?!Y*R3tJm!59d$SHN%h0dyv6^Rx!dhMW1eTR z;aePpxRGA#iMN}%#t3(~cf99m9DN!(&#$kS42rsURPu-YhrM%Jd60i$31&ZgC0?HP zv2Xp+TxToTJ+IoeL;Bxmw{+_>ZTiyF74&Rv@zdo#Ul7c^?m3M-59R;O>KhLt@$Oc< z(AQ0Lh?=9$xE{X7lU{C)E8N>le!5CPppd6SKJHb2J7Uyc_LX;?yk1{@v>|=|v|GCT z;4k~^*}wYEyPWId-@NKke|k}KU-H$*=k@!qd$&^v-?OotYqP#PI_G1);ls14NFPBYsDXIG*IPgQ%eog_J@*?sWn;GV!@B?a1Gw``Hqg64(mS~& zcsr1@!fvucJe<7j!-pCBJ*IO$1av}*i>bgX#3cMZDeN`6J1i%lyP1nbx#PV@w7q{g zhSRIRW$Q#ROu-zCy*T8&6^z48Y{9bAI!~m*)@#MBJ3krpyiQ!UH6%L{JUx8!LJagm zdaFGiguFm>#6}FZCnQ8!TSECEykbm3CeyoK6Gp0|J4%#BCvXD)i^MIgMo`ei(hJ4S z!@pJZJQjpST5Lg16h9Um$M!3|^83bAltue%KUieJM~g@EOFda!yRJ*U&Eo+O;6*Id zMGeG0+j9aw1O=R9GC{0{7g)xi!!-u1B?ml0W}H56TM7RuvO++(SvsJufs!$kWAYtUhvVLr?t1RUAi7 zoJDc0#T+C@cT`E1^Tv@>Nq8*BvJ}J7>&CXULEqBG{nJQYw6|)c#2*C2C38xqY&D@% zI%YHmWV{=$v9pJS$OtS#>65ow2uKk4$H7F(&BO<5#E0uk%BP#fSu{KN+r$y1#kMp} zQ&dZql*LqRO?_0$Q4~W?G{2gJO?Rxzn=DJ;`p5rW+{i98NNe24NF+|BL@B7c%s@Lt z11mgtlT3)Rvvs?(cZ*J*qr!#z2VjsQgUmh9>`cH!&hZRS5NLs$EJ4>?%hy~(wUo)6 zY)jN+&G!7w->k>FJWbd9P1|%!{gg!>z``y>N^R6g&>T_=#$yOl9+lD`#Zn(_)J7%J81=jx&C)xxR2%gz8->xb1JkvP zQu?dW`V>DYr9~R`JR6-K#zQ?$>?_fK972qA#A?6> z?VM2T%s4&m9S2ed6~a@Dwi*RNR8`bTx*-Ir_ zl>l0nWrk5hSg9RMLJdp0^Hpg5*gR#4iZwhv!qYf?2}{bFkd-0`1qNgo(P}^jY;b_w zJJijz*1?3^!E{j?%~DA%QW#BDEX~qLl~kMM*CE|ef$iHN&D+B@T)@TBAC1((B~q{B z+q|7z$)#Mpg;9UB#y~Y$g#E`{b&T)q*gz9jDN0+e-3$Z6SePL&)P+!F_)~>|U4?+q zww2p!omg`+konHU7-~YAQcvas14dBTQUh92d+`V29Sb_AF&|nqO^bOz3P`=YC zA_|G04%W~;QD4yw-Sl+;2XtR8&zO8KI0g!V>OmvJT7B3?gB4%U~_qiBu?V= zrKJy!VwF%K)h!ie?VXn)WGFslg>X!^on5p|UnfpqFOJ)})!jP&(K(jmGREUNj^VBw zgY3jeg~nHsvh1 z-fZ^cvlV9VOn+o(0`U_x9#KiMTKwH=sMPD z#U<%525FT>>6Mn}lP+gk7U^52YOh`b7GP@k{bNd&XtZ_RqAuz}redP@X=cU~4Q6W) zUTdJP>!6MwOBUpgm;t+lhuyUyfz8Wl=1yIW;hOi} z@ce#j<5ug5He2pZVhD!p&RmAqUT_$X@xsQ1R2Tvle_sjS;?qWJ@BHuLerWxM??#^Q zxkjA~e{Z_}Y_~3LfIeH-ya|A#J+0|K{JX`S*&>}}MJU9_HQ=Z0?2 z9&wz;&}I&8yf$t`KW-DB?g>xZF4kv1FK|ugNQ$KZ7PxVs2 zh8D0!DwlGYHsZ?W-Up3cvn6hVPV~Fp?`O7eWQ}x1|8-^7@e7{t9`D!{zj0+>c4lvO zXMgrc+-sXA_SD93=vMMwpKnH<5JuM%4IXmj*7iewZeu9+_Fiw)hIVydcXn_0XW!ob z7EwaSbs&Fc&pvdXZWrd>cB-Iap@!t4!R~4IZGZmjST}en@ALPC@OIy22>)|yhIRiy zH)4e^@C!b6nl9~s=lA_~ZbR;!`d$`)Pjdb~=8{j}ejs#9KJAIl=s%bBDED)QZ}ypg zaGTHQ$5!^5KiT#EZ<}U$pHhjb6#>27b5h3@x{?{`G*hm_}Dr%(BbZh30W`6{nQ z7O3*8$Hs<5%B;6~u-E2=r`E3jhp*>)167EzzHN}q`Ko_;x5xU{mUt=m`nJdVhX+Y2 zzxbzr-G2D_i|2PjmZ?1f;Ubso5RT$UF6e6?n*R=N^-gNI_w%v7`mfJsm8kqbPkXb! z?X!1+ufOe=XZy;Zduz@5m1ujd2Yt{-eQf;vv@d<0e{5+D{jiTj7I6JcH~asF{d~Qz zMkEG?eyHT(zu>43{CtP&full)v_3z*1 z%cuN>l(UmwK5P{Kv#=`u6st2Z(*mX z{rVy6rw~~~h6GvsbMlXc6O0!HI?2dUphk)nDR#6-QKLbNB|nx_S+OO^i55Y2e0h=N z#EJ(+Zq#`arb~<~3kt0{(51_mCNItuT2vrIWWbOWY^X5L!K_-h{xiq*D_3P;$8K#1 zQ7XiLRte5DX_RBzm@IJmR4Opg(UCS|+Qc~*r^>%G`QF4RQe@ktJvsmWe2X$L&BKR1 zrp(xuXWpet1wxFv(5%C>WJi-OZTd9lft^3A{g)7#JHs_G57w(u@n3^@H@?+5xFbrv zmXFTWOO&z4rpE`)4a!s}@j!z~hMZ13=Wmu7X%CDFbzx}E{jj1QE4F;r^XSKdSD4UY zKVS?cel(2uA70?UPrghJH>gu5(WO#tHI>8@WjWErR&#XuWMFYeLDrma&uw=TWBoyQ z;BJ7q#Zq?)h31fm@2y9cS0@r=j(X|2_|6;3nL+$529l3H0y*SH z#rYUWgmUpHq>(%BQ^ zQ3VW~BTmKKMR?(*BTq(RNoSOV0h#A|aRjH{at|ic>o`yw`GSzkksXs(40t17*#B6+8*Q3`zMz8JP!EFmJghH9yueFtr~XnyML zRurE`=C@~RtX{a^ax4~!tEmOrYL699BEokmwOVD%E!A6Lyq?4vM-1`S=ZR&EwQ7b#fp2?zERz2OGXsE`QT4(1@zYv@wJDz=s-JD7z9mqmI9`xeW0;X^}hEe@a52X^>d%4=48Y3J#R+v2~9*2!le*tl3A}w&EsCf zLa6yLJ~MQljKcUxQo(7ECHmo;z>~iEm5Tp-j9a3bjG?@0#c?1hl9=U`;g2{P?{jFJ zV0n-!wmXK9jQ^OUIp|2i^K@`(g(OJ1X!)>(4J3h{p-=uKskqlNFN&H zlHFleh$sav zl`B)2)aS!~h)7!cRdpd#9U(3CwEo$yiv$&@P8-(E5VZ+RxeI7(Mzy`nE{mt3_2*9` z2)43b3$18cDCk^kM~Hc4u9XvAY*9nOVKQ%+TaBh~$M#EQjI?*blpqAnkqB+hk9=69 zr8s*?NEywrrbbj`ISbgPS%JuBlF2tTuz&x|k|af{sGeYLh>)7F03I$^$crGy+zBj~IKJN$0LC$$K=mTPAzt@W) zchsa|eQj^;ILrqJk4(Kw+gHB>5Kf{=a_HYYnsz8#0U8> z`{FrSSG$MbPL;L3|ExMe7Q}K&=6D|yeB@(BQ;pw};760JZPFwc!m1Srn6J%o-@-iI zp9X7|WzKGYkVg{V>*fr<7tIu~2#Qun!(^M{Rs!`m)lu zr)C8KOxA%!BM;FyKY9LP{%ELQAXs649?b9l`IjI5?1%q9*suQj>;L`+Isg9w;Q5tb z`_-R7=-)u3-~Oqe{H@;tGT{BaU;F`J`@P=)x}W*QANdtv{^j2V?jKg9pZv8S363BI zP8l!RQ9_|fmvNqgg^lw~+8T8nU15xoam56I-lUlnUX31ZIn*45n}B5*w>jADHPn7N z7{m+{JcR$7E)7#jMa+LSUy(i7260}!1tg_Wg^)JQQ{*$D&}X5sYtmTg&! zF71{aUR29PnO2aMFfk8<$zfQ1oTV+))~MUev0#1~S;$$Tslnk6TALUy)cC>Gx`B=- zqT*Sl9rs~d9BEFvxnQReR|>9RrY+dGWtzu?)G)qaC%RS=a+K)>;#DjY*dER@a@H#UNQAew^&77POsJOkH7^MT@&jad(FT z#oaFM?(WiJ#ob+sJKW-0+})jvySo*)JIuo*lbN?k=KZ|vIgTOhbFnz9aEg@pG{gfO04yRfl>f0Aj9`OZ~gE#jklq4)-YvzaJ)OGsmHM%Au z#?|~q6)>LmFMQdDlGQ+*W0)cifRSOMp^p1but6bfFWHg^xnW?2h$n&51xU7@kl@2o zi`>!yZv>O2JYDwh3U!^V=igK&@ z0XpdD?py3)Gy(OSZeEJ2LD*6Cbfirne$04c7n2rdyoq~^n_74Yl~P$L8tTFVABKIC zOt7xw*x~5LaU&g?jG+1QO76+*4r@JCV<4TYA}x>YPEd(iqm5})m`#B1I7fBvs7o17 z(k6~-=83^-Ql^#tCWUv?$;r(WtKa_pj?HOowt!*EHIapElOg?~)>@;*Av-rg2QK|LNRIHjt$VlcIEa5Sx~##t^a3|zG}Kn-bG1)rDz zj~1&UOuB5MnNIPlZJg>$MQ2F3M1kIMyQi_V3A+Ww#Fibo+4%UDl@G_Db4x3+f>8v@ zCWMnrinBF0;$KmRpzNI+JetOWqokyxOi!zkx!J#B=RI@Q0+{s8GABwvX))D>o-oR0 z5}QU6BhiQo^i0#_LMz=}3aKUcH-=l|n92JPGh_XIEDBh{G}_ z0`q954`+qIvb&rxMuy4nvmyPpUewi;hhfjB+A@!~(P) zd9f&Ep*JF*-j}Z$!jy0^scNj2IjTL+f-J2KvQK+q{QT>1I576Oj_!?Cud0JiGInZ;(g1`~XKDs*#J zdg6u6eyu|KN1N4lKNov=YUA=ebf^Y4FggSJ1||=l^tX$4f(w?`&0y^fx>^lkMFea+ zYN)CUQSc4MRvpGaHu#e|(zGyQa2;6%`xQog`a~TWZ9N4m2PLI5r7#DTGzTFZ^cV7H zXc(w3;4e)7388ZRZwOT&opxF{9CG+QnT~z6#}LL_$47=umotJ$kl-(!OTlO|om#p6 zXno0e8k^ZzHsGH*ZDywze#K}58E*`dcWm%dL+Nah42msd3uoDUF|R?8`qOS1s6rb_ z41YPrMpT-!x6lOPZc8B@4+}@W7}pZy&&rp|TuNWD(f(;EIB)yGBwF_i3W-F1nL#_< z1Cf+xrZ`e$7y%7lU;gR8Oi1=Mm(prC8=M)4NcdQ8hdlZWB7Z*96w4y$Az7?CqZVyLY#upxOQNvpr;sKl0 zJtKKLq^xd;OtdINJzr#?WFgXt#UUi&2UKGEtn8IaDTR`;Td9^9KFj{DlN)tPtjNh* z|9X_b=KV?x+|74Axr_{GmAErgQyn6LtkS*(vUd?e~h#-0z zC6moM^Hl546(u_zl1GrRK9K$>+m->kIH7O$St-`*fqp)S5doi4ln_@hh{f5SkGC-I>_mD_vZHrXT;!rh#z(gJ#57myy1p_6o--aVAd zc_}#4M7m-b(WNjOximPfEaVa#4-xOS+{T5dnMH>_)J`KLCmT0>AOUz^#J*6bD3&8! zv?TT2U@nC8L4_)_+GsPlvUdAh3@!_=wW?o>Vi9qch`{GT-w1D#NI2DB;$UwLm{hfX zRcdPDJk#aM5lD`n2;@mXa_x=5(MC30Pns2{(NNXr;zGazit$VSZ9o#uT8Q=N)Snqf z2*q~`+M>Uw31cCzQXYniMOGU_68x1b&on%MXMW(ze80>=|Hn=t1rIDy6M`5yhiTVg zV8taD02Z&=kUoIh&(X1|Qswg{bj=s}Q!bCbfDF3plS276#gH|`CC4o~!(i1UYWSM1 z{DlwBl4yz9m)^_DUZ{&ywj8Y1Ao@xJ{TFa+%zR$N45EG(k;L5Z0ld1aHj8v`RjZmZ z!y*wVJg@#mxA)oXz+7~~8F>cn)2JWE9_bmKh&)&Oc@BZvorF!2u&H=NQ_&W{Vz2Fa z|5pfAYorgi?K+e#rU2PWrk`N-I*ezc0M%oppXB8_Tm-og9UNZzC#k@mmik*PCfY5j z6LX@uy!o1ls)ad8(Lp!dIBS6anu-F>{qoRLXI#OGTk?690cpQK@1mi!;UQi z9Y~a*J8>Gf>``KcdTGH!6|(oIBH}8F5uq2VxMoUeic{wVJ^~K%AZRLi5_~Kv+>oRc z2^nGT(Ih_e`oyG4Gper~vMJ_JiG^6^^k}9df_`( zOF=aX<+F{td?oxp-%!Sq!%+9XBBkyNQ>`Y4Q&72Z-C3(*>dJX2E|9H;SVK_Ss6aC} z#0UBuN^zA-r(QRdz)zS_k!MP$*4Jn7l-S5=+fEl$Q{}X)M^FdriaJ`>r_@o!D)C35 zyQBUnZx%n|f@@WbGNt~k?LU=)(_MfYQ?uv!YpK0;T!zEeQwq6YqXQSD@pbXuZuE_w z#$6kw!1kKZKF7wGv~&Um(!DmqVtaE}cVb}dZ=kP$z3GxyMf+_+y;#3Jq6weMINw7< zzC(efH_xh2PHIY^yU`&pJbw;fS_#P~C9w=GXryEl(-TzY-#fKh5ZhrKsU-pt_Z72v-MiEci$ zJ$7El*0`%Vr=3)nH$&;v_&k1^EiRWjqzX!q8+r`E1W!Hihb#d$L0c9#m<_||VnMX> zCQ#!LVGjpVq2DKV9udi#8SL4_mS=V_v!2>nV;GdWl((_kmj?wf>gvty6TYrJ4FIhn z5R2?mSf6%=L=LaXyU@3xZQW=ZMtb6dC-$L9DWLd-5My8Wm1O3MVZyY3BsZ@c+2RF_ zNIq12u@H!6HP0Bg-n=45P7E}OdItMZFv}uwI3IGZt#sOb`~X;3AM$NIPw!0r%(5}v z!k-VB@`L?b*qUV}o`PN;?*_=j>O7V;YMwQwF(LluWi9ThJN~=rZIqP;^oQKt= zVX235LBVrU#mt57IQLBHPFo8l%+TqurY7*jg@)Ga8Vd4hW1XPm52dwv{4XwWjkdF< z4ecB5ERW?13f9)n1i@!r-@9fjom7WksY4AlMK74I1D&21VUNBu$vs_$@n?^s)84lZ z%Jv25z3qyywDj7Q_xKl4tzUtsxJMkAe#EA+ff#R|hP6I+1=W4_Ns5`q)D(ZxG-oeh z{b7W@q5qfhxIXad0cq6uq4YTpo09$hFzb+gSL#F*Ci(qkfmh$H#9wri!<=Wj`C~Uv znkW-;$atYq(H+raN6>(tGg@{LX_y>jEyL)dxK$?tyX^hFJq`QKIv ziDxxy?j*?Eg0rB@GxfVruVtS5&S<83jjr-deDm7@4A@iK!#R1c*ylicdS^n3Ft|wo zu%fcV2)_*0?P$D?Ctvv>QV z_jI%Sij*HlPXIn1#LajAyJ16W>p)yOfAokTxCjG|)^c4-!~&kY!c3mf7HLI8CD8e4eZV6Aa@OGqbW!=oA=TD_ z70Z!uc+nHu5xVfPE%2c@bWvQ(5y{$-@ty`=BY_i33Kq-SP<4?te`42%gd3@%TdfNu~N&CiRtliBVo*8L2Ye$&{Ah&qSY|*{ zvP>d&M(hyy2|?@{L7NO(2!NtZ7LTu!$Z8Wqev*I|nZoib2CMZ89j^n-FJH2V$lRt+ zlr@pMERiKLao9RV=Q)9|74DO$04G4mTK@JEfrMd07NSp<{gq-AnbLrl|wBjI) zCwh1sthbW({rR`lXo}ouLdsJpOaP`1H?k;iy3tBnaAYb5Aia(!Ass#d`)}Hjb{a4} zB@RE)=_K7q29mP})9)Hhdpn&OkW#ji#u=H(49I|f7F9=ZH7rZXdrr?;Nyi|AUT4c> zV@IxvOf3DCrAMEZ^ee6AQ8wIzapW4UK_^w~By$dsrk#l_-tZOK$*nLV(q zpP_VmwW5?BI!+2$$xsFsDXXT3hDoSm(FLM1e4#h4iYv8! zl|k)ThkDgOl2=9?mK-xg!6;WpofdNTpmdyOF1ME3=>7(`rPe+dOrK^qz}8i`7iF&s zCb-q*$d<-g{w`^&cHu)uSxXX|vE1XUg|RDWPJm!xsAci0reus#RZe~4t3(GAR&sh5 z<-VZ(dMO*@qn)&^A!Dr68LQ(wt2rKnVvYtf%Ry4|A%|_(M-wz~@T0pUx9*m`Xqk2^!}jpTdNa7P_b3pGk$4jD1vdWpk2%7bgn%fgMD1Bac8J|8f*5= zDwv8Y`oPzN$8LI7ZHUwTd)?Fwnb^c+S7ps}RtH($ z@b$GCc|lrpwUVE(P7~?ROIuBL^xwtu@`Nl1+4B5-!~*;B)|b`h>9O_>eslx=a^5JF ze=mQA+S(-L(1TyvEp*V;?F?5RVZye>aRd{jE?M=>YX*(5#_EPNG6C%Oem&qNOZ)d_OARH;5r*R2@xXQTMt}a z?|WSxIH3)CL3(7S`?E;BS{EH6re%V^r+%$#Nv;nG5i$R|7p1bVe639exeV)^ZW6Hu z?r#C%Yj;`20F>z9ccyywag-(RPOx()k}R~5Zr`n4&$3?GxAE5Q=oWB-jRbdQu58!W z*S<-eUK_~4gZ2jgv#e1$C?jVeul`Vk?w9=9o}2c;U?v!&)j=_EOdliSXGL(I1E8Xj`?}6Y>SduBI#bCNpiMhQs5`q#UuFlu`ZEN~qYeU@VcXNyQS-y+ z);Wm7qA0`j$W~B+y(X`HTa{yDZ{S#?9*gS=<5OF zRWYFJwrbghpszc;O@pR4?@$N&RKt^uv7aQ)=bms*=Gh z8l$N8K!s;)>gp%H^JvDo$XcOo?|5)eDVUav$TpSHE-}fiKDgz4^y_ zj(kyvU(fo2SkB-+PVa@zKae-@NiF~%*X6kfG?#P1>!9t)5hIj7OPh-OjzzNWMI&Vd z0>x9=&2t>1+jF6d8kT(s=3}Avc?YoL*%QjJpW^l6w`*AibYB+q`;SAXuIoP?heU#h z*fp0l)5o$-yJ9mZ`yY4Y`Xhe@?iW99avbikjcy96?&EXs1VoO@neN2>ukEVGUJRE% z-j_fLRAN}rvhQcSFGJ4jhe%G_@K^ufySMdg?$2`XW^!+76esdf?+tzDXsSlkySwPm zj`h%<05z8wS7SzK4{-7Gi1F7D%tz0&-5r-_{(|s5=HDH`)!A1^pqV4z`&)RU2N9CH z`^)P9vwU_Gl>=zPN%Xt9yejYQ zzV(a0)tP>zXN5tCe@;U~Cxb@Ceu5e3_D3-8c^bYpY7Ao|`|!qq-jR&K=W^U%p52p9 zAQ#R=+O1p#gwbM2=|?1Niv+_MO<|{pjwobHQ0#ZKCLbx~35Q}P-o{In`pbw0$`aU~ zs20PE@|I*`W5+`Bc)(upE>vh$OW5=g5&qmpjHJ^5TJVk(%Cxu~OqIM&r+>3TyO&kh zR`^_3H8LgOl&ig#&*JN5u{_t1!6lIY!w~zDQV)veAb_g~191F@+{vW-JtUc%iPK^;C1@wLJ|MZ*(vplzl z$Oue*PRsFPKOuG8pHxBoSD&eP7vj6@I4hcknx!~Z@_@{DE1D3e0b9&~QfUT_1(!i; zRgusvrjJnyBz4v8b6MhF#YrvUQrPhlou>Wcc+`9A*W$^!@>nID3IYxMjH7q|ra2zZ z6&r6u^x=i@)>FU=ic(H$VWS;$OjpWJci1UFAqbGG+5ro3^bD<$-!BxffMHKkk(!x9%PcV|pB%w)i9m z7gsHF44MtxT_$b}l>SkvtaSZ-M_;DA8B7~Z0^UqJc>IA)WrW=Q_!f@>wQWHq% zcLW8fnK}j2jULzpSfr9?j^_L@+p~Pf<0bOAY^hTd!^LK{IP&G--q1&-F#R2_K%ku# zZqBtA;4%sBJIb#8d^uH}FUv={{PUkR*KN3nb_I{f_4-97NNI|9nNlE9vj<suxn>kU)NTQ8=7f4?E3s~v;L@|TO~Mw?)*Tj$$PN4rmadS&7W4>Y@jtANX%nT z2yFRAQ?CN2?*`M&-C@6gMZ0^J+wbUejY}?#Eh`If)8Xz2nCwt-PL0F2O=6!)c4Bn0 zny_C&L3?#wHZ$^lX)yWIX+Q7MS8(%pI!54^1=!{1&vY=ml_zh(=hP+bVDhQC+^iA7 z<5VY4&})!zdKC;ladMe4Bi?T{qndqk?bnjjZ-@H{JZe zegccW`__6R3>eRMg0*H8S}dN7?B{!!Z#Z%Gm!YTL1u{6 z3q2Y!rNHA(Oz0{5JY05fC+se?A1Mjhn1Iq?uk=`&w))2XDQgp{;qzxOP0w4QeNcu72_b{ib@p%`ityPU_o~$FZzL)X4Cd zU5Z&AIr-K4sK}T?D&mYGDOfBw1FAzzt6!s1Lyoa6cO`fkzvQTaK~ADxd+3y&qNU(6 z*3^?$eLCuJ8#?HF9X5fUa427iyr~rf1#ffT)VF!5ZKoq`ZwqD2Vekb{r=;9Db14jp zSWbRTe9N3Ky2-W>`OYnL5IXO(+>wuprArvbFqvr!sS5Y2Y|h_{y_7MPiUXg1RGOlp z_*ue+mbH8?aY5*EcI*3Inyo)kn4M#@7N^RaJBk#XeqO!k>z9SKNBPpZ;oEK`Fk#p2k)Qch zs30BYGi5;$MWG}c@X{eUN(I8`1@cG^>H{X=gLw)G5{UJ(`&YT(0 z`R9>OSzJtd4=Wj`7@VM{S^n*G(C;eAh>;B@alot)HH0tO;-@4SZ$imz*P87njdd zzZMy!;k(UH_iFOmvJj@1@=_E3Q6~zn>J5eU*R2~EcPvv|Re5Bd*x7igEuW};e-0^$ zyW=7?*!K$e+7bO&PHDd(dnb7z?4G;=&G{7Au(r5Gr~Ml*+F-$rrCG)itFC{C<&gwqdu*9a2_;#gs&5VQEzIIR@EDJaLbkCzlRhP ztd-uG{H;O8@Xrg`a_NQ-(jcj@8}M81lkzx26Mnt0GrHOx7Q9sJb~X7!y4OxBgVEi2 z;2+$)n*~Hb__S>Di-gn) z&5d@#K?_uv3I5~bBew5Buor>5>m^zc0*SW`{7c+??ZCrk$I{0~v=uT_7R?H(`Vzy< zW75Uc(Kqeg{kuJ4tD)D0qnn(mn{~Vs$lpo9*~~>H0ES}{@9O7alN0;SA!2Ua@-+*- z)vgz7qHjN#l&7^-oe%TitebJYn~@VIJUF5$xN8aumOX`M7q7;gvX6VAmz+tQw?jhF zr{{Z&xS?Dq%tHC5x9}6=VDt!-a7WX=oCGFk<(GBg_Jl#PiHK=4o~KsnIMP2zwofw>{V&~ns`{G}|eL|>1+VY|+^eC@|l{zhlo^Z5VksO;c~IUnmcmkHUIX?`2Y zm5>{WnNXAuZIl?%@0AI=8>_P)rzVoGBz5-#l07Q5&E9D-T|mpJA()cu`^gC4&O5#|q>Y^fMM$yPjd9h^8x zchgQBqp4p&Mg5r`>5rD@cpV}sx`r^>-A1q~%J6Ia%P?b zk0DC@M6s^D*2YA_12(y*)euh= zZr>RZ!C6k`1upeDIEQ)e98qhk(dEB#EEjTf*$eY`xUU1!&->yM5+!KNlIF*7#>e4X zSZb0Q>S6}ss1YOT%-tFe{hB2sT9R$r?~|%k8gcr4@SPkgscJ_Z%35#3J2(9S>*{ZB z%?3Ggt={ZH)g>}c1UT&oKJSA7z7L+XvNx9401l4?m61oio(_yLz)=%QbVW>gB4ufakwG9Nw) z-|INMz~p>ciX@RB4hoJ8I3Q)Lg9w1{Fs+Qkej%{@)ga87dOCnw$8{kX_sh!HLC`c7 zXv@3Kue94%eNxk0Qnz^8aaJWJ`?|!IA{o5U(T=ulQN$0^cQin=>grTtO3htZZ2Uq*C zSLCR)%iT2mV|D#uw44qGN+$IJBz0O*W}KijggU3D#^;k=MS=PmbmEh=uG)64VlyfH z%7Tk7T&uV}Fdfv(*1j4ulZ)kUtL>n*P7U2o6zypR-Njf9)ETH?;`RQw@N_}_bPZW^ zYwghu9juroEPHIQKTmrb`pEvcM)d_;zvS2i*Q(j}I^4Qu7mW7O`}&-M!KvWJ5w*dI zg~0`kfS?G>3blULTayyA(WszaX6#Zqc^y7dK zx*}j{X6>|L^=F{46-{sqO>iAeus`6wYMN*oo8ZNne9bla)BzL5nS9ze{bg1#4oA`* zc+!YXpZ;>kr!Th#7_V||tx9edqU`qD2a+d1sXv7?PVL5ugfdD+usrOt9`43GnKE_3 zGjp4 zz7B5j8JbHunoEbNrrmFgbw#8To3}mfA=jC&vh^S|t*^%JN~2n+kXW>K8tsGjR++cZ zn|S@~4;)m(B4*8Fc`%9I%~u5%Q8mp~H!Tb|E%bAY^@J?+4&k*ArGfN^Iv;T6zmvzZ zv_(63e`Bw{y76l)9vF66+E?$<0L|4%b|nlgwcIUq!z`V13C(B@slqIN6Y1J~NFg*? z_6cfxvS?Lm?AK*m{TMv*oYGCbuncKg_fRyq*hK%?W4;y;9(^oL&2kht6p`+Gtn^`w z!L0^X1zC7+PGAfkr{);w4IX*p&QF9|#Tu%=y(@W39jJy_J4#u#dLC|Vpu3S+yM-M( zH?^8+!iodC#xM9<$B)Pst$a~VRAEl-fybXG@eejdQ?v$7!T)Bm)D=1k`EAj5+$#2ayI9IFoAcx|^&eWds*kfOtOmtwTEQJ!MIBnl8Ez)Q>eMURCBvF@ zhUw7d&X#>Th*7OR9mHXV@ew+CrQC-WaR*_J=P@FisEZnfoklGrwsfI(-qq&~VRKQi z77e&NiJIyO+;*)}XZ0+r-iGSUo7O`e2dN)N03l0ZcUue1<35)2J9xuknxkRRDcE9a zJ6uZE%G-2? z73w)EuRWE{`G()&5I3B;;W;Y4XeVs{p2OLGm*dpL<>ANti=pG|$9ZMRC1~?1zS{m> z(GGNZhW%b{%%@F@-gmk%iI=_F~_USR~XIC%3!#V%ZrRp*V7_7 z-Sa8#(>t z`g0>V{F4;Uoj}X&IPQ^eD}p=zo`368FLJ+lX$$|`e%!(X(%u!xf9rD@(o)&U)nU$g z!|^s^OeoLA1bjte zb-$2%6LWnZhwhJXH}}C zxa9tv&V0A+`1pLeKMeFs)wDISyt(pd)ey2RySmhXjqn4%AW-q3uLzrcq`ccbP3Luo zprzu!{*hl1^FJiuD7KC%;7tH?3%Od~Qpu)ZU>WM;)$b03;sE;o;x!Zu#U4@+i1W-C z3mZd$$r+!%S@#!;BD^qZtDmR_kD$xC$<&g~1Z&2kHlF^hP)^oK#4NFGv=a~Rfd&eC z;W(@%i>)9^@Zd1c|1p7qM9O+#sP9C*cz9(ZKsQY|PH2S^)Yi1&qLQ6rC+EvUiy|Q*3f))!^A#AUMl8gX>r~W^YteI}|$SSlP&~3Vu1p zL^k{|QwrvHc8tYXx?ZN_GtQx-G(sb8q%}1ncIFQuJQCOa9gpo_=?XUHzak5?@CC3x ze?F5HbN4aD5iN?9%`ZYZNfU@HbXCRPp7Ca*2n$D-Jg9SFjsf=Ew1kdZE-f@}iJDgH z(e|px2H_d8T8z1wI9i0t-ydZ4^4KW|4^7!1baZ`@Oco9TD|Gh_C4jy(rvTzq?n|HK zlJ<082^QR|U)vv)F)mWPZaa3XwnN9pZabdJq2iO=ks zNj;P?uuKuY-=+-p-5=Q7J5ao`XEr|Y>AChBKAva%XpJc9Z4Ju7&SRx{Ws6%h%+~*_ zz@Gvg^a%1+`Q;WaYwUxTkvUURSARAWf87{PCMDaJc`EZvB9o{9U#Ml)(+rEOUrdh= zTiC$qg?tfX)48&k)u!u6zCvp0ozpXjE1#M*!_H`ONRz==qQEZ6Njepmr->hcEQm?~ zI6pk|9^>&YY*KZ&6K4kOgt{FoB;=s{z_{S<28)!|&$TfLq zU~}OP6-Ck)Jgtvgu1lRMTmNX{r^+9t`tL(tg@iF{_EhE87PYop4GORrVPdH7yQKT2 z+tx&Qj1Mt#1}drwki4dOi2<_esfdOUID7o*jYpJBfEZKThaQRx+Mh581`Y!0ZDlC( z+Ryl?`hI(z_)+Zco-f%rjX)t4q~sGPg{ zn3-5%;k`(kZLXdX^ zC&T)%wiDQ-ebkhII?oB$40BiMJiz-WjK*dy3dV>HW#L3aOf?rLDxZlEaxH{6C>1Br zRSuC_D8QU71(0RJ#l>+J;pJG%AbHJ2$=>FZyOjZibZ5h4RDqPC)^g0UY7q?TK!FV# z33gr8up!q1SlOAR(&dt|YYYlZc`fS?ajMS@7f*6Qp2E%@^9{Sk{R)sq?x5Pk&!XaS z6O_7h*Q{Qh8y*+}{st)97A47Bsm$@(8@cJwrT5*G=SreSuslv}f#Q;=mYkdWXTKs& zH#zGe^>aHZA*3Ngraba-Zm*+|C*yV?Hla=4v{MSS^0Rs%Z`|7)({5#fMbss(S6o48 z54J)j^i5;#vu+^afkyfNP)S3D?LJhsU zgySm$W+fRtD>N6#JrZE9gVZvxUR~@wXbvKVLu`3;wp4wmKL3IOx3Z109ex z4F!xVix&Ylur0AxM=j#dsB{X;ivg};UKYiS8Or12&3{F(Sc&XLzSH&yb{Z7~lO1g1 z)ovc)?Pr%t=|3mWBbD|>Xpe4lV|;*tBEg2_K}|Wz8mB2~9voXJqXR)GB%QE6tjJD} zE}SNo-eEM7ttdA=*0~dW5aWk+mnqWg zJ0NY+++=p)0ka~DQX0O@S5ahAWJlh^tt|fj8F5v@91f?aM^Qjk+XAdJ`{H4l#P+or z(^VtL7JMipb@Yurg3=9QwygixuS2Ue7j`Xa15r!yx?aR7_FDfY{#|ZBHT2?r-YZeZ z(jvbH{ip}&iG$`C=hC1WE<&}=&~fKUM&ciG53k@#>!;tDt=1n6nz4u1Bv~GY$ELIi zSs}YmB+sN_T$fcA6*j#zaocf+Tz-xliaUKBX)Zu)^Xab`QO)~uUXf5teSh>+IzWaGL0(4H==reR5^J&=@T%U zyMdVvqJ&c=B%gQhMbZ3ulPDWJTvGacs1;mSh3)T>d7xj$4T6MoD4I6U1o7mCvd;M! zWqFmvM2|Wf3nh8G`>J2ue?un8S<0`TZ*0Rke7)Sz`?89HQf}mzpA7$7caEAIMhI*K zbx4A>s*Q@7A5Lr-Czu9To$F^#TmjNfQ!)AJqKEE9RsdmwZAcjFFoZZ|aEg)$9cGBu zw2kjr@TH!7gf~(#fy4(T2{ulPOwe#j!-yz~3~Puy3}qb$cRP7K9kTCo1)4@M-m{Wm4-0LCP8rNXAq%zB6*fX?_v2P{=>u-%ACC=;ncNMzvjx-RRb zVmG3a52>fs4FYTy?rYa3_bA%7o_-4bsI^064aRUHT%EW2Bd{207&K|HLoDGKVu|ho zdT4$#Q!dzJ{o9?+|N0$Q#@+ZNRGvOu3gI@dG>1lOT=R|Ry1V-`@Z+pZVjfp?w}Fg} zU}NoFhToesWbx)4n@2?Xc0l|sM5JHCF-bxur}gm)!6h1O^n_RP@As)xrF~%n#cdGp z{CmTV(x%8>cJJAezYx=N$~%HZj7SY}ih-Pas@9_D!^P3IRSP-xHekW+PqK?X%rGYJ zn&5GPqHL)4ObAEG;Sv&FUrMYoQXqDK$Q4e?ZaAl-4f)J@&h13E3#P^|X=|;nz$N6Q=8)sOpQmx|$y+b~Q`zC;3ac;&2YRbz9nqLC@zw;Ov`Zg2TtMVt`I+<&0n{IGNzn zo)754He*tFR*+CsrC!gDq>84Ogs)GgTaz#0BOR9i7WFUtW}ZsL9v>{9m3}KeUrCDJ ztu1eInV8BMXsLNzI_)2ml*v`LF9LHL4atFBQ0`jF)T#={*M(KYOi%Nz4qw&KzkBNNJ(wcE+8>z z_Wfzw>teWGul&d`T-ni3t*p|KFX_S@UYoUWqg-_r# zQ5JEmJtmE%Gh`Q2I~rB_sqJK+b;r609%@OvC?UgpQY|c<@yjAA&1vOU#&jR*(UtMf_XsnH`vbTB-R0ofc)BWPgCsGvsFQK0; zxK~?NRT)(R{gb5{*FOLjw%|@MizThCpXxrgRVoa!Q?-mXPX#qEf3j3r(NRbrAhJ@t z8n30-H8nDKvIcEP?<2XbCCBRy=6pxr$M&t;|6uK`y5eA>Z5s&g!Tp2a4hil~a0pHV z0UCFAcXxMpw?-Ow8h3a11h@3bxKDSS=kph8R6W$%d#?G_4PR%sKHviKx$p;%KMT@r z071>RT+63MWV42l!LATCL6t%T1}nv$f?Z_qjE?2!fnbuc`P`O(!T*#Rol0***(QtX zS*{zR%oR4|T0Dj%EURIZV~mO4wA+~Nen;a(B}9E|7#8~5m;|ssAh|f~OCv5-@yt1- z0T8u{wcRG@!yf%Y*Q9F}bxN(bIidv-mYU{Lq>d_>(P$Au$9WBQ0|%MSh(J2yX828? z9X%(~BQmGl%YJ9?fd_PIh-L#d9V4K6Q=A72zOEnNi*P>n#Bg+Jeai9^e>t7Xs(B5h z_54m_@idX$cv)bWzAOE;-lHJUNt64?Sw+AMCmT%|7`0R;Z^Lq-gUY-3V_TLVmGHvg z&8xS{z?F>5!onc`brlVPJ4pt8z?g(&{VugFndTHiaQC{tYEa)cV>34}a=5XJ@#Hb; zdy(#vskvkG2+FU${%G15;PB)rU6ecVTmcL`#ofu>D>8MXFRXL?b#IwtF}5N}F6DwZ z?ER>{h1u!aD#4%_z%ls!>pSTIaSrdWfZa_zs?Y8d^zLYcPwCIA0qNmL&VeQ;Z zzA0UQc5}L>=VsZ>X7ae;{yXZv^ZGX`(i!xt`x+AaK6mq^IHcwIyV>{MQYv0|Hr%hT zB>W2bE1T#0!*A+T(7Uzbuct*2K4OhK2ejtwg?xj2qebMy#<}+;6e~w*^77-zo8*0w z+rKr|{_l-UeDDe4)9)asW2}aufCV1%x8f(;YrxLQ>r3NP9{vaN zD#kNT&VQ|yJVGD(UH*N^dGDokddK0q7v^rrbJAV}raVuWJ16cir+|e~x230mPh+~! z6Q9`?UF=mr{HWW-iSuz(Af!$svNYKE?~jA_IV)gc7)7!RN|)Xi8h&F~)NQLqvgq8<5PfrsyNc#1_BuP9tO zR#cG(3NM8}@o5<04?lZ+YZgP>THfF~cWfRrr>|yKAwL3@EFwKC{C#;NK@t9i8L*oP z@I%@$I(_IB2`D8Q!Cl&3ldB=1h%noBxWs4kT6(h;-e`MsB^N2I1j4Y`F>CJCn3?B* zX~KX{+WwCqIEDmx&Rw_ytawg}`1>)ViRa)`i_n7;z^j(mVnu8VlKJq8NZpu&Aa_{C zSa9%Z__G%B<|o)&-uMEn#Cs$ZY|BKQ1laQ3Xb1XGa7BU_Z)9hCRBJ@UT7=yg&=*j2kxAy2e8UM-z_*;v_+vill%4DV6I8)2SyHhxd1lTC|$h5IU z?aXMc@vyE6Te_Es@JCE#njo}db-9T2>gf#q)lKGzq0IS#_Bv ziWWH_ok+IKPzJ-y-|g9{(2nFTqWEOwcr1oA>`eHelW1G|q?^jz-#V!a&#~@AakQSs zP!)7#jgVQD@XZCxvDqvd*{n6~*wXQkbEN#2ip)0IxR8pBbG}R*WY}ni%(ItNBF4;k zqWDYMeAKG&=~aIzqI|RG_$B0oowEF;+ng?*f(3@SN8~uVuml&&>^sYpyq7cpUu0@R z9${9pFkd{rZi%Q@-VtA-ToejUdvR}jfly~L8h<4Hc?4Z#>{ssMxAFX6Bc6bXfbU+h zPnkvZ(nYGoNgQW+O8oh}3Gj0KnOK&2KZt=NtHzG}nFKExoS$Ij9m<9~ayv50gsM^! zv@1M_BJ1hR0A5)>P)}wS;^I$y#k(Frl*hbKqN1-+W$9L75S7gCj%e>BZY!V;6-yokky)ikeEAr+2Mnua6 z#ZJ&=)8_VhRi8zb8fTRvgKDfhbH`9BgkEz=8Ea3+OENp_s}XCDGn1=OP=2weSVYxJ z^A$m&%J4MnhZ)Nr&U4~X&|W_mvk=$d3Dm<|HL{#F_*tb+oR`mZ)*@ynSBN%YR3oy8 z7UEi^C1;}ightiVRM&qI@TVrqxSvR=ZLfHjRpWUO?(1tz@G7m(s2F^W0@7E|c{kUs zH&hl>ZSrS2eQH(h@{(n2zO^W(u5SJr-CXUSE-#;T>SZ0jUc}AgycvwP8i2lZTTO1A zPtes;#9%zC+vHg^GYk~Df)-Zo`3ZNtDv`LkzZ49N>Ai9KGzU^OF#BtFohk{Z~(orJcRX84jo89GM zZImm}f&f$C5Zpp$4JwqcY2)u~%Ld0se~zxM`c(iniAI5T*0Kn+&B}KzX5{}D-L)3c z(Ia4U4IS*r1%S??K!qetqZ66IUfqx^lus9}OC%j--moK5i?1M57zq3=dn6I0*XN+O*n$+YzCF zF%!TrkhJsme3T4TmwGJOt6`FjzaCY zgzHu4^1_;e?oL8F2M6AxHb^_S-lMh!Kpr(6V{`+#s6%qYlPTU)tE8nwo$VA9gDmgk zCq%thdTo>7Dds*{ikMMrrh!92x???bchZsC=P5?!$t~u|OP`rLo{18hnM(-T4Y=KF zcUDlo1F3fI;&O&1YFbQC5LS2GV{-zs35#MoOtLkLkqbMA2HW1(XG=WA0u7iW^8I%y z=19p}8s94n(a>P@sa}&Nhc9Pbv*-D17sRX=?g4X}8?b-Sy4Q%Olqlw|F2@+IriQyJ zRttuc-Y0x)rpG?bOUKR+S1(>nF4BFPE6IT`tO4^<6n3D&64)-RMK8Z^Ol=FydI$>A znvO!ziqCwOvnS^{s zUuG;1W>A6REM52PR`8+9vLt+w0e(iQG5bg8pnsfGA@YL=N`t*2g zGm~F8yZjz|T~!VG%9!uMcJ0zD+H`-ddQa@A=dHLX)jnTo`p0DcDQOLT-3*fN=D!&Y zhtl46)}89nUA~@q_NeV9=7BK^8pdKYG4|yG^!3}8onp2DI z0rQ}(ExD~3*y{e}ZETrIg!uNo| z-~<+Jw;Ju(1(ipPVn0)Gzes4-SnwomYBu4z#;NZV2LqPHa4&&;a{GOE^L_WURy|rQ(B%E~RKR8<<5P6_5RJPYelJNr#i-P~W_ zmH@$9Vy1yz19Y#RGY?!A-@1#D1T}q@KgJ(BV=AcGQ06Q7tIOvq#L5P=qf~g+MBs%{dvB!_Y1)c@Q%zCg~i1j|m>8%mQ?ayb9 z_Z4iz*B`NAJ&ZW~8QDL{CWrI2J=|l-m3hOIWf?1(e(;#-k?7r%W;^qey_IA=r4;#M zb90|o^rut!N$zOvYy37O=HcM)wtU`GNuD|&^IQD>p}}P;^fmVVfj4eJemlR<;ceOOkPq*5 z|Bt1Den^DH0A&)ORWQ|Im!TXfVllQRYx76)862k5B{~boaycVGKKEldI^&5X*7_~H zjTTZRvax@?R~OIJDpV=W)a6>OP~-Xn0uQ6mR!8dTU85e%7cO;LEUn}4qMNM8Koa#o znXOd6qJr@<<&HL1Zgv9O>yC##Kt=jBxcZ<{uCE*{&RRbpYA?JpFXz z^X0ix)Wh2bFT>8JNL|xC=j#198Ubni>NUcn-Ls`Gb?Hr(QU5|Qcd~QA$IC(D@|%+z zb%)2RKgG4&TS*XG!Eq0X%9;maIJ`q+e4@@84_HZI5Im?D9F*_;pvj{~fQSA*a zF7T@<$c?=tIkWb_p2%ZBm@!iyXePj%$1EtGx~wywKpRZz;i9CelEzo+-zinss2#P9 zD&@x()iRk_dJ-M3P&D_=mfVUTZMvs)H?0y|R#xM_CM_y&y;rN53)#9U8D4;|72P*n z(}HoeY?QiAYHS|9+jwud0RXXcwQ?v#H14dv*2ycY##c0H2HxokKh?sd@ic)hBDq?H z*kU1Wd-JS+lzQp{ka_z9F+*pUVLv{U^yDJvpUleGr3rvIncdGo*Wfq;HLvVaLgQeA z?=ipVffskR_2P_#-D$1N&}Yp<-Q0LH^{GXNhHL8MmV)T~PF%~TU?qa>Mgr_h`Yv$Y z1be<+Hd{-oH&e^`!$c=>hTrQ;jQESiU*fUBvsaD%$oMi=6Vth{cN=$aCGUe#D))tb zfyxOi4)A^LhFrqyIH0NfMX7!x=*!>B-MIE+R;o9A|BNdIu6W)9oSmE};3yeE*Z$5G zDL4DuEVDC1S8w;D74WAPS+j1v5>cj~xVI|nth^cPN!$W0mwM3(e(!428g-WOjw?aW zmg-$;_h4D$pM@EJWf|Ysdjq>}&jIA?{~VL?s|fpyOhqkVT`6sWgPznwsOfjuuVkqkY&uL_t=o&<$!@`}H68$Xb%iw0>;%M7`q&<-T zLj7g3y#HvfEcnrzY`61kJCoSWfAildb+yffW_?V=3%}_3Ch>H2iXsLfD`>*aA=JYQ zPlt~N@5}{(zQpf)eR&^rnFYw=I7*Hl284&Mqmq#r73Vhia_9@zXd&Qa z2#^K+HaLNhjxK}Ru*d6T74DXH$y>!gXevV7IOU6OGg?Jl;Uf1t*DR5Esfl$b5=#tpt zs+U4ALqYcg4Z1&_^~)rmwV$`czUns|l>p8{mosg?@El{ZH*)?sCUV*zTW5t~CAa_q*k(;g>hx2F<~61Pt# z@I^+6A6KP{YA7a)-5PMpDqPf#3yfB%V7^(Jsx;Pc2GwXETSN)iB}El7qNw=nFR0F1 z(BuxrBzQ;2C7+|qiIGGme4^>hZvIMDatFw&Z{rozE^8|N32#kE#K7mUpOD(DcQ%-| zSi+4k2W2$;{e$0;YP0}jLSDj`NuF9#3werOY|K(!6Bd!d5+;IC2g~BtOS1>j>mdO* z#WK-2s%NA1Tlfgdnl*RIddVt6t=hn)}K zuD0~Tk%;rfDtsAc*+sIMg8Az_$IsNj=PZ40tn{^!hcKDB3BZGy;^12%%{25g^O7*LKvVbqKOWmzsXndF>by9toYl~7@ z{nC-v5An-~oY6_uG?3KMY*!gq=nt5gz(2L}TEK@#SMUU+0Lvcr7%V@-FjGN-iwXB! z4`{Moo72~oqy3ftXx=aN&Z72zIfc^wxIDFg;ZJlmq|V|JIzY=@I^fK5EJF!7d!BsT zN}|PeC!V&;sAZZkg>4_FmUaXbZR*@_f+jSN)4r`QB#-1gGAV5R$e@DPi#DMg+grNw zAc!&3*v9q3)8^*{IIW5?b!u_>Wr;?CX?_k4(V4gN`!5);TDq=kam4?F2kPuS$~0U&aBw!M(V$ipDkT4K6v)%zE^bPYaX|z=DQwYC+Semr5{NH9l9RM7NpC` z%@cW)&aCFqIV5JYlLSn9!$82?IWyd#j;kji(`t2^L33Oy-&GD`?yez=J5ht$KawGi!zolc>2&ps50iOd)Ga`11ZwAS!Wphu!}$~%tq zJ98!q*XW;~HWFU4t`3%oz5*(dc0dyGSu452!i^KE+_j>I8^E&UU&2BbUhRjjYM`z%`04hZuIgjtRfMK@vo)75~%*}eQ- zB)?hox3l=##PE1xH{T(+hekkw?Vg|Svt5^t0vYMEIcb9l7m`5VAU`eJdk`YrCMDn<|CTVM2$8;U?M2(93v^C z&d+l=P&y!_xgdFzG;)M0YI-_URhh^TjjW_F_V%4KnpqIq01=W_<+~sef4Ufxy8Iyn zkf9~*m2Iy2ZB>h2!+jq$kaj4#*PCG85ZP%w~bo8a^{_H-Ug=;H^N^V zVXAsUdT4^&2l8ax3N9I1Sf>tsNAw_+Linw?#3u}mHW>>wiR>O9J6RA)_keVeif5_~ z$Hh$g3@KP22rD|X|Ar{lB#n+FmNj2Wt^e$%shj}044t$zAA^PSHU|cR2V;Nm3{cDA z!wuUgO!RT45K+q&9}X4c)~N|Hom|jsg(y4>$+hbZvF?7F7Hm!{5xu>Tn)Bgqf*abd zWVya*6ig`v228`;{WxwJO!E*Xg%i*$9%Cn+#@Uj$n;WS@?t9N_DydP9ju}fk9m&IP zh_voR8K1bTkxy$MxO17F;iO(hlZR)S@A6KjJd&E`l&6vE?jGwYDx6N!rH1>%BU&QV zaVYSg7}s5je1Hvyv9T!Ji9M*;1~u=6s4%hXFusNec9z%_J%h zo8lZ?)lfaT!|WgX!3%gA5-d8b&oN^W%u5XNpzmZ#5_jQ23VcTjVoIh;X9r8wdf_^= zpG7$%I8dkLT9e_?r>4N_?OkNIlv%SjG`Bj6L2r0dH90h~Wn=dm>-S=cWa5L#6_T3wKb~90lwH&iEyp->N9;nv2fz!ZlMA0Oku{=wFpmTcY&kW2Ae30k$?CK6 zLXh9g~Ni&FbtlOWG!(6haBXeFv&{%*sF3md8q%*#rSc;4x?YqDW3q zS;~^GuZBkJ7sZkot*iFZm^p?EMZVfZ1EwDhpLDY?HNsKX^*?4=XFr$Ns*Kp`jr!`1 z#p;cl>SivI_afqWtUSTZ_N^wiO${i*))@LTq}5Z z9YN|f44YbaZLfB7!CPQG#%OPzqt_|dsWs(8N#|yxw%oC$+&O6Q z3XRoDNX)`fm6+zzT)BMt07MV(aVvmjV-tQc5znaF#`xEV>OT$QOYJVsUonP9HAXij z_H7O3V@;ZA4fVzTDD^OCAtz_9P&{Gl##79mO^p#3cS??He=Nn;r(-J_fePin3wg~$i=fucF}0Hx?2>} zZX@VXcL!=x!(zw}FR%qafbYpVt=bDeg|uMejOJ`7Vyp37HCQ*m8lFI|%;LiYnqx|n z!>x})={QN?$f0DNA)Z}}*|ENY-;SkSq;$`*9R7w(oaAT8;mVYS?$!-$TfqaS4$fS) z;DxHbsn=z@X>hY{722#Q*PM|=>huy}93<}@ zO`IKlwe%me>@X8_9?TP~>pc`yE)%wj&h9%{wek zyR3N+52C&NPs)tlZXerqFz-;@uEt1@e2cz$FZTPc2EIP88d6FIG`v)+i2l)4& zZCREN%r6Qpd|WD|wV9rth;6em`S+giPsa@`{Fg0u>yGRE>~x7_cH1Wh+O>b_{Uol&%X5u!D3Hp>+xk9$)3L3};sRyv1$)E%>E1Ht%t z)Mi)fW;ak~0W~`{N3hyw-3x5Hl-$;Y$u}9jw*RqhF4lbx^WXVtm>C*@or$KBnmW@B z#;%|NtLF5(R3tfMtB`uKi}OWd zr>a7M9_GCr7hRf|>156sifXw+N5m(l5jhKcV`?|k_7m90CurAqa4ypr>y;SuMY-oI z%r4|xx5eA%Wp?+XJa%y5PRQn$a+rU@uI;5X|1ig2hSGk1q+WTsqjz>*(xKVvl19ev z-6Occb}~>42gm#@zv-Yg2UI_7a}El`Ejg3(5g<5kH^=%@e2y_QtKI%n5_d@>;!ttC zcz|!m5dLT+d}{IQA3t_3%l2qaZuK|pRBq=U!s=%4e=nx2WCYrY8@%YE-Qx2*(?#Fi zUbNm=UhB#HrqAP;T&F?G=K7t@Ra0nMHFqNJJkEN?tw{J;B>WLb;9lT&3)K9x8)pX< z8$CUgzD2`y0BX8K?l`b$J=53!*)6+86S0{3i>On<8`L7NR%hv@q5rvOPdn5+sn`@@ z?y3VXj=+Bjd-P71O`iy~Kw|I}0I$aenu@(NKe@KDA#jOda|^Eb@H6nLw7-u@e?@cm zD*Mkt@yUZ`)WQzrA)4+nqU051;8p8>u8L^?eR~YbVp*P}x^T2ZNWMj*8>tP7N$24c zV0+*Jow;bbci_J!-!4$m&;{_pV7XV;;Y?d zPv6h_zdU-b!|BB&ofvU~v^xuJ@y(LUV4LH9C0-`K*WCpB-n*d;a*3=71ErKej@8^1L885{zDKD7 zQfKO{h!SOKhO)RA&8)El3fD=DBZCQ{0+Ot&hBxOP(tn;es>d^MCdOwZY39=iMYnb~cI|k;trG=|#i;79A zDr2it%!Rm2mb7>ty)w1VO{F#R?F-WvdPE(Mla<~EJo2MbkJO7&(pkC8f;F-T z8T6YiBZ*7D8dp{&S?Rpv57IkX<+Li5o#q*b9&xH`-QgiX&2uCbX|=TAAOz*AYHJ`i zL;gl2i?6DGXxFnyQ7Tegv#orJ(pf6`zm=Hen$c9_LRv_F{Z~w13%KU5qLCLzKO)rn zwe~`%?T=kU*vFy#psB@N4{Gw@Lu@k;3w`M{AZyTMxELe|CfU~=f*ItnU(S;^8>!>p zwp>UJirK8rZ5qcW4%zF%$$>>oeKfVb^Ukcd#nZs`5ZISDSa(wkyHkKnv^UjfxNRQm zD!U7G47E#;UEfIc0zBq4zauRy=rn5}^7Snf-1XJZY#7A+YJ_WubC}6lbBh$R=83&S zmSgs?Q7sVw#ES3|r^j`&ao&W2PhYf$8E#VJ&9iGFRypcrDQPJlcs{Y>KjQ- zX^W{Crtb4`g+7mh*R6^aP>aQK{xr&mR7PL>j@$!rgm!kzD@RITJd%E?NakX{44*^{ z*cil}cWR+Szo5{F4WHiqaZaz(5ib^I%5E;D5}5QNgX;an`vw!Q7p0byofQFo;!|}5 z2^eL6qmIn$FQ(nZ(N;1n<418bw{diu+*oXC60g1T8njXd?@I`bGo$?aJ0>B~b_&`O zQjO{xH2zO@DI1b$X6yh{;#g+dfhTuK2~D0%Al7EC@E9?3n~zk$p09!bRvON~@TIS4 z^n3P?QkT!!Yw$)*!x=R{S!+WeOu(T2w#jeMc#RNQ7E^49e~VMP{qIsXk|c;fQZa#y z355b@BvHzjvlO_6y?T!_+zZqCz>>kkZ-|4b1tqNZS&?SmMS-JXlAphN@|N>b{+#yD zx%=-ZW`ut{bK0@)JLZi#ozMxNl6#X{?(Yyffl*84wD<3M??dK7B;Qm5{xs*nPSHth zS1GSjY@ePqq!tYX^ zj;bP61SCR{OGVfBwp_V@_%PyzN${6yA*jagBr`8j`y-Z&iy~Ez_Sd}U%?BlgDFdH| zfkhuac6%;?HC<#>?RKl+iOXMHvMm+ud~ z4K~VKMqH%y$&_^<{1bU%OonOpqq=t4;0d zJ~cDVmcZ#m_fp~=C<028P1#{ytd8N@tpLp_I=V9_q{N zljS3e<&~zffOjC3rhEYr6mqWM$6e|={T+n4wZJ8lFdF2?Q%m$_&Cm3*=4Jyiy0K!n z>y2x%@^S0zk~a-Jh#eR5dkRe^)3-k$-h?@}FPlQK7a{Z68uGoHoR+@?KvK3AuG|zx zuKp>JeJToDnY#IMuTpljX}@AV4;dK@+b_6IRh2$ZNT698&Jd5XoE+*(_ErBDgwBlZ<%c%JAF8$7 z!e!#QHc~MTLYv8Ul|f#crn#CQ4=uey z*If3mn|D1=RpuYpzB|r)IK9s!BEo;h@!tL6{y(zD^&eUD4Mz5VlQp=6wT5|t=#&_j zuD5#w{$B`m!DEfZqwy3HQKYg>CI8P-gllP6Dj(FH!b1HtvkJ-PbuJ6}GczY*%m0NI zxhlD6DuIpFk7}Z&av?|*UYac96ZK56glZhgs;p5_&@U(r-s<(?YH(K4yx^+q#RACT z;BSbW7Bz8)!@=Gb@KYo*-2nnuH$)RDtR%>tav1dVtx zwoICmk?!HuKM>Cr{uhi&suso`?MgwRetADVX8ezXm9#VO>-${x4#G$E_`O_$uX7;; zkzGJG&>MUOwu1y?V!(Fbi1Kc8lee+aF(`;b_wSK4(<6?3^**y=__+r}=(vTYwip?pUERPLDyW3SPO~0CKXE0eg9p|uCdSYiF z^~;{*`4|i>s2gN079>-?xESY0us#v^QtX|5DU6hkI?cypTvN@4iW28pC%I)M<-zk+ zEofzVSuxrN_Nbp%))>&AhZVX(slUo%;jW$6c5%GURl_x=RsG22Bs>&#T2@c6t>`aF z;CrMt*%Yx8Vp?ulbV^B8z(tS#x7AOR$t-7|x40#C=3q7J4!6dL#d&NHVk6#Z89p2L zS&V+R3x2AdMd?rqk*+K_$>mh!4~DwF%niOx0zD$SEOzHM!y=v-;!Spva;fF%mokKp z*E#()tdK~tc|Y7gVsrwts+y{fHov0^bmh~#X*C#T#~EPScg2au?@|WYfJl2)@OZ{p z0eNDiEt!Hwld6`woeC7q6#E zTXC7>0Kp&gMdXb-Sbd0d(DyGXu!=DW0|>}*KRM~vgZo6y7X;?}+(eEXcfLoPIJc&g z;0DYmy8F$op7;u2)g!BRugUY?Sp77vgyMXXp~#C}3eOXO?-cuqga5OUAh+g9O8D>J z_&rv>H7|*TmA_|V1S2zt4y1_J3ba%m4W@ z{}0F-l^}bnhz=9%fxwIl`iUReNPs&`(-akokqAn0b>4ru&lK&5%ATlR`yf6sgyLIB zAtuy&H4&!?%NBXA@MTgAqr?}B@^Li^yObcdhJudf;}lV~&I5}DdnnpK9f<%Ddn7q! zj=~UkjE(o(Na7Hj&lUj5X?j(ve6cVVt{*6KfBHq3HY5(U@-xv&tBeH_HsxGK(Uw64 z77MHsTRi6&VZFy#%Jc89y%mQ9@Yv%)dOsyJ|aRJl6meDMUaT2%o%nVb68R)t~&}9 z(I+p-d)!>0>ll-kI<=~;m_1)j9aR?hfwRTX=x%3 zxYV9)F!EL-uXL_I)VbMOi-+y@CW$B1>m%6^IB=}?VQV&o(lE1Pcxw+4w>89tG6T`O zw8v018zXFMfE*-i)6$O(4h*LE_l!xDE`gu>f7G(Nd_h~TYilL!6J=*_SYLdEvpX-_1;9L<7rzI!qAr?!R2%K1l~-&wuiSd*qGqy?^kT} z*(2FKG4KGR`PtgrZWwIEX?Oj;g8g;FAA%|IG%~wY=d2uKuoR}%4p&wma1wn81JWK> zV7*Q}h&IN#5XZp4Dr6i{?6kVhS?R@C4aOePe&iV!FQhp zK?6!&%GBs+oz24{xSUYZG(Bs){0zv7+f8ve#Omo>X9KN{-CZ$eLq%C< zT7tEKJcms5f>v_9l9sciU;YSNLTi#C?#i~?=k(R@sqcyWcTm?m5c?lb&w(-0x#lZ+ zF)h9xkKgFNByjUh=4lf7y0#V?t;f;)+@o4|Q$+P)nXtjrfeJ<3mHYMQ*3v(7#rf~= z1Qx}eZ>VpJ{usA)_C3~&5Z*0v8SZMep1ulU(rt(1hiOaZJ$A&EV@@bn_0-mHporGm zSImw`>u!gz?E8XuflgBJ<(=@1z=*tZUHcu__zOT_-geqGC%#)Bsaofx^OT?e!`;Q> zfONxyO<*$l%Kq`yedU&>F2Y-B?=v0o^*Aechv$ZCJ;)`%H~-NG+16BDAam|Ze3QFt zmmA{B`nl0xwsRc&O^R^u{#3TeuC4SJyYHR--BRGfEj!n^6`$jnkw-5fbmNWn?h&{; z@Db0dyQRR|WX*_sn?{#yWqrnYb(&-FjrHM4u=dUXw*a(EtJ){^pSl)Ezoe2@H$tx;_v$={wA1l zCtVGsQk88^r=L~Pq(rihr?vlF9?0kJ+k*gnO*i@M=9nDrkoIW%U%1HzK9Hwfi5Xt_ ziw3qxyXog;>xyGT^6;SWHa7(sFC#*$O9Jz9ce8*Idv8rWjdpBZ+yK~69FbEWm1DCw z1jFqmeWX=C^AQ8K6SJ^1mwzJXZXPpdIy;_-U?S*|kRrS-tz)>}s+ICnP#?a24xPCy zy$zAOOq( zc1+|1PNhjZ(qzQAmDXP|-KCe-7Z*SN0TIaZBPi;J&w6PLe2G$1MEH%XC1qL|z{xO}B7*yGw1rM0<>}i`sv4@e7*qlBbcI(xyb_?p75RY0s9Nnl{1h zdj2cEfgsP`Rb3p}L>stBrn&gP6~@$0?x)bUL_VT;%8^7WEu#(dAg{JaHtoQ^c0D#( zY=N<02C-y7m@6YuM5mh%vrhado>|^ws2V7O^D!JY(z}h;6!s~JeNAB$PB?rho^afy z58nvNZARp7ZMd3T=w@GyZxi+GJnNq1N%YI)MfKoLjZ!SxuiWi>yP0@c`k|)Rqm-A| zbLvu9dL_sYKGNPFS;0_7*s3E<+QOGy$JqVM_*Kh;u)<0!Lk|3Iw6`P>CQ6#<+Q0;?FNoA=J~7H#RyT47C|>2{tYi*-0zj{B{H}&1J=`` zgUb>zo)a{eqj$=DxhrGgUQDidLgb+c*^Ota(nnur|Dia%1~hK2p=Pl~XBn9u_JJ1O z8orsYU}T9&qQ^uF0)&bu-(LsEH1 zYa(Z7K6c}tv1Yc|%Xy+_k)L>qw#vM$KtUO+j#;aEgjS*7I#?T83iX~H|9cG!AdJF! z_2fu*lQp*?)6KUcDD36aBSc9ie8}NkkItp@QacUc^ssA7&lTr!919Pbvq)Z`k2~v- zfzHNE1gnvp``kTSW+B+cpZQJWxxaPT>zSn};=9-oCF%2)dh(Q^aF%gdd6Yl?`ZW@( ziCh@R?VsRYWG)wdaBPeBSS|wfN_LMbhw6v`&)o~$k`d@5AP7mN9uD)B`DbD7@~g2h zmI*=pjww8qgX-B{{0WpOdFR6w@Z)~F?IBea;gy-;^y4K0jGGawmLORFeUNvJ77z}Q#M7~$m>WxH` zjC;(T)KX-*>Jr2oA=k>U#J+?93(f%WB-r(YoPQW=6r^2qP>R;H{hvBqN094m-6Ky@ zgP^*u@x(RLeA$b{4%+gIWL0Le9= zY&S;7I2mUuE5|vjit)!{q;vDZ#or#|DCnxZv#KILH@6UExGPh6}AzCZu@&%tegWOkhQ?oiNoTB00mO zr7j9oo}FnGqGIII30O8)eDxJO^~Cq^XFKumTIt;#NZI>w_4fx*AGB(azJN&AE;_faOeKu~DVTdh5yn2c;C_e>+bxvR0YINnl4Bts^^xCQ zwWZ7TI?xSYd}}9^5g5oPRCUr}N5SzF(ott0bguyW7#{=Fbx;RUbE3DxGKBHJG1)LQ z@CrjbkGuD0kfWCa`cFYfn&5Do9z;oHw825wFT*#TwuyJV4yYhg${bJ`)3*_xFkG6D zN9RvO7}8EL&U}m6syEu=16d^k1p#CXDE!f#f)bOmSA|qs6af*WB~gsufbNvA z;&kgks5ttHhU%dS21okPSB$+_EZYwY3q7Nr2@V;AwUzVbe5^O&+RnL5!8TAJw$FxF zbInL3ENQU}uNXQFkjzEVtx8+YGt@3xlq`pXlM86qJP=a~cu|)HM>UucJ<1G?+tJz- zSJEe8^$V=m1xz*t>=Mh?WznNgFW0MTaw$&=^`o07HP+r@W|()E2Jwx&Zr9$SIseWH zZ8pmRqSyQ6-HQ^wO5eR%7Br6{G?ZGYM?towyJ9He0MYJVfFyL?GwG2!?0~jr0s~M@ zpG%&@!!GCm6S=Edo{L>A@(MzgL@$1U&-LiwKs?`#1%+C&HAo5w1J-Vwi{HXVC*qgy zFW_eI#g%;Z6y5d5c6}^x)uL$mq__J4lQ{tbLyjaNx@?GSN2s#4DgfcA#Vre2Uv?R@gO;94V{p51u$w>`{Y3 zIr>spUO<`$AMSstGlwq(cZOQ$->G|FbEE;@0rU2S)uvjN9ScPWGeWPo?Ujmc<+gC2 zmTO~Bo%P4py5qj*7IpT)tmu#PL>H8-PK27x3uT<{6bFAhKfVArkacp?=>4s(w>j1~*?Lal{<)l`a|-3Qs#?)f;->yvwkWeQ{7r+n z8#|8r(o6F)P02E$c(KbSJeK=CJm-Els%N?7wP44q`cEs`TFhL(&!F7M<(k5{5b_mP zMX~t!)qfXP7qQBFO4BOjM}3f*{{gZu5{^IV8M{^%`U}>2h>q^TkO8im@MC>|M%41oR_~2 z>`xx>Fs{n`N`v0o$iD^g8qNZ!m6)WuZNWh8Lw?1JC#R`4f-$G>@~ZKP&hcEL^UjUH z0qp4{{$smV)A@bN|1g6Y>&34%3tVl>*D!f|-o{rxr@D3XI1hiMOvJD~<$5@bU?}%%E$MSX60uBow28>p| zV(i}2Ron%3DyZjobHJ^ciew z^KG9|#`uk2JFfrw4E?r{2Y+-%dc;M~TaDkl-Lfn%TTuMnm0W2?|7NcDhk=4ykjBs8 zwB+Db|M4;IXNJ4O;9Ost4&1hU3?HqN#U=gtZO4Fqbu-SBH4YFMg6SftXVyW42^B6( z_^;nXh!G+FgZ9tjMT{9WZsgd}<42GoMM{(i?O`p3DOJvrqiY~R3}aCCfK?w5LlD5|I*tseHxZZbZ8f(H}wYN zfJ+YK!n|4Nsl1abOqZMi3+xO%Cur9UN0Y9Y+WU9#+xwj***g0|IZUGi=GwG&`@c0c ztADO%T~WwVht67ti^Ko_^jPM&$a*V^g?|Q;j<20w!b&sg;`58Pg3e1xJh{3HZ$l2# zT5T>18EVO^y=2o#!KBzDQLklun+mz)h#KOWYhX$4#h?C(>Zc)sgU+_apu@~F%xIgA zE9^o%2t&C#bn?lKK8)xeB^A2svi3UD>p|!IYS1O0a6Bxksazb>z%tkQ=d#NnR7$}T zQl}xWPyzeRL`v z4?K)gz~aqpQ<|{+c3dI{a`rrEBg&&xY6Dg)RaN_JHAKp~3anoC7-NtxB4^^@8b`@2 z@J!`q=_0V|gtY3-d|_>_S#8Ja^PztM7I6_@0aXNekRf~)r1B7zGpsl2>dg3nW2pTGu1F!2`6lbdfS(_D4Lh)aEFBK zP#DE17Y>GIW+{Z@Y-YHWIUx^14z$_uxI#(yD9}Mza$=DzmAsvNQYEDmS=Ee(+5uU5GfxsZzHjG?dtTCe4;czbewQP+en+H76RInPw`Rj_V~>h^i1` zCKRdFQYuM+h?X*T32gARVn>n4w0zmhYYN1o5-V9EdpY%MI|XMS2RFuOiFK?=Evvz> z$CLj=Y)PoKq-2s**5y@= z=PgWpY-f|1om)|Z4y#D>K z)yTV4L_RjcnffM4eVV{`h7`phdmJJcl|voxcq2U?XhVPeQ(4gyv)MIT3cDB0 z*xggVd)+LiSviRP5U#%htmTXZxV+JNX^a`XxbNXHqHYqj&Ugw}?Y$SKOl#%( z&geBcpYzUmzKEXT(l0LqN;p_ua07P=p-I*^sE?jz377l1o8_@_OIB8-8CuNn;#tpv z8}LM!T17V}kCyVoOHd7+I9ICCr-S}z(hikgKs)WblAg4dXRX1C%sJDpiYPUy1Ivr@ zG_P&W(x8U?!cjjox44>DP5a8<4Ih`%ur6(%95QW$E$r8xwv@f>h2p!J8;0B^xBE6t ztSK%IS*|7x|5?}_>;FExN#v8a-T}k2uT6ZbQ#wZP!J*8;nSkKN@ zI76?OP8G57%x@*3t_v6;K`)lYh6b~k-RvHIM>IMFUk%`9z2j#icRQ)Ii(*-cJCVXu zXF#IYgP}W|mRnKObFz&j+qX{^3xwy~IXH($8}vQH1+D4SV~{%LIq;n@i$KEmxOKjA z2y@NiN46P-A}y*)KRe+;H~5F(EwjZcaClA>eA+j?-fl(=PMu@WyEOmnpkG1}#{(THiyMtPoVuwhcOo%P zQ9Q*lz^!sFuUa-Hc{lviy9>m?hp0cX+l~!XB{(uVg^{W&`koGKnrovfdWx>c0xEi1 zC-2#(+qgTi)4;&mKb68jRWUdnytFd9IGdT3;$b?Dd9L?^A=?_fO=7VoJU^X-k1B(~ z|7(fD?DINOvO*~gIq+*Z_Sh0{%M0cjy^0FF`N=h>q9z3-wMBBdj+4Niv%=k@!zdh; z(zrDg^T1O}5eNFWv@^djvks1vxd)mpY|6G^`nZVzxe5e3aqpfR_V${9VLB{G)#z#E4hGU>>da`@7tH#2)*wQ0H+$=VVv7DMb z=*uXD3C2<^jY}IYRU{;G%)##KM|9+`%)%L(>&9JDq^wF2Tl$g}>7J%B!8TDW|NIJ< z2CNJ#>puQF3(P}CfkZ|){Jwt#y;n>WrNgBt8XludBQ5Db2@^yUai6k_yFrt?n&3x} zQ^t1_$uA;D3~9xKtdf7wwM}6wLwqZ4(ndp(J4}*ATa=$}Y%iQCy!o>|bM!tL6iOZv zN;uSz@3V+oQy!eVr#zIM3X8}!tHgg|Kt4RaA4#;)qdkB#wf!>Eos^h*69M^(8! z8SK8Y)W_{{vX08bkD8k#n?ATKKWO4BDvCV%NIA@^pXxKna|B4B97n(`#exLQW_+xQ z#L1po!G%e+37a`{D?bQwBl4R&j|(Th+{;tMz`q2{f^mpiD@tmUK1*y(|3@3Ztx7ez zIW#j=nw*nM6RM@7QN&jKyl~92s?p6=M2l$4K`m6SjC8!$12{HhK3p?0t6(GddOnxq zk}V0Jx4Alf$;^M`Ka9{#&*VEp%EI{c%}{YIm})#_xh%8$z?d4u8C%a@{6IJHMZ5A8 z#-YFXjJAs?4eRuqRGCiV%FoRt%W$ej1neXtgfJ?K9V~LMLc6ITE3?f~%Jzgho2ot9 zL<_j61MIuB38hfoJVzOn!W~qtjk7Kj#4d_zpzYeKH1wY3i=(ykz*>~cAnC}^ERDge zQPsiC`-IZae7C|Gf~cA=N8%?1{Ka2{Orwz_GrP7QR2p4kuf4j&|1S8h?EJiCoI$CS@AAGV#4@3*(EYJa zYZ=Ub#E8Pt8+aT+BPo(OrWk@pjnH>%DOt5t)afDO zDwX`{o0QVdiP*|bO^?bF!~`2rC_BN38@@GiAMh!nhOA5yWKLgf)9Twwe>AwCYqn|0 z)y$I?UDegG#0Y=XPdkaH1v!>AgGgCg52&QCM`E-Dl|0G2#c6sx4EP6Fjn!YMgY5iO zIR(ss`PK>@Skam^4fILh!@NzMg&{afs4T)_SqxcH$BPRL{}!ECLgX&19KkzE(_q-q z=c&Vzl+ZafMm@1pI?YoE^~i;tg=To9I!HR$2 z0FWgeVgyYZWm=}!uZsPU6mFc5?z6%Q-j(QRGc&% z%0WPCTFym?A&`S*u!v=--Pxtxf0*6d#ogS!h}*4Q|K0^&-OXLy-Cf_M-QBfa;6>i! z6<+7HUE<9M<^2cAdEL&n+rj)vxy@Ew1=oYK&`ZtU?~_ptwO;c*U-U)aro~i`j9b%v zU%I7KC~@ES?Yg)12N@mL89m$d?O*@>-=ca8r^QyWn%mMnVEHX1)9u!8?bf$ASY`xZ z37%jIZiu_Z!tO)hlv?1Fo!b4SwMyR$?v& z7`EkAcAHNYj$0&Mx=R`JR)FI(G#++@AXX|x`5_abdp5-U@WcLN(TSln4<>znie+B-Il|A^+~MmFMP_T{E^fLCCFg#PF%q38A8h>B=k zFg|B$2IVZ4Vbt*CbY5mTUSvwPh^K96S+$7Y0co8Ui(v-jC>CEj7Gr2m=PWK=ghFI8 z=3_I?<6B0ZpSEXrJ_o6uYO1bktG;Ti&T6gRYOd~Tul{PV_G)(^gjTQ!br|Wiu;chG z<3t{6Fit8NM(J9<;g=5QF}CNKz6e=ZH@^0W&t2#(%#`; z!Y*W0{)q0t>w>0iv3%-SjuN!qY{1rGyte1aCSl6HW?~j?dv4%d4q>_`>Z6Wnw*KZ@ zedf?b>(M^sgr)31?(E#gVq)%W|6%0pg4XQGW(&Lh>2R%W<8o-!&S<Yy>7P(q(5P zUhTog=(^SHo9^xGrfHAtj;D=d5?)#0_G{z52=Wz6sLtz2R&O1}Zjcb|YEkZqChTW+ z?J_2<*mh=ep6mU-Z|}g~(Qa=KA?}+t?!OLi(jIX49&ZINWOpX$W9DQezVF9=Yyea2 zJagtpe(iF8Y~;S_@lcHgk7ev_aFW&t?`D~b_yz4IZ3GtyBR*o4w(zC~=e1~S56f`- z7H5Y}@XS8s;a+cY(!lbDVg|Qu$)1+cj$#^*@aP8J`X1x7o^J@(@eC(ux%O*+eQ!W6 zWRECv?hfworYxI`v|GyS-@Bnj+kc3e7-hHleq@Hg8gYz11Y-5t?em?Qw=7`Al zjv|Lr2>x&%H;q3R??V5MKW}l^mhe1t@*a5q_G4mka>#OLck~)x z^-Ra_`etnZPV9CsV?y`yzOHuE$o5|s%TNai@?Gv#Z|pta<$-=}9((t|hIN@9Y9#&ow%>n($If=_mI|A-0r2UJIO zi%9vlaCwhld5nPhkC1tp=Ll4%`3<@Gi_rOhfO(kbd5aMGp5F+cAFq>d?sg}4S09*v zPx>BTXFHc`8XpIRU-*B>gNuj;u2=Ys;Cigr`mFzYh1Ytqj|Q>7h&%xMJXm|J$NH_e z2(!nCw_o_R&xo{F`@5(6t%rNB|NFDIh_2U&yZ8IL2Yj?Qd#ty6!q0lY7ksV{{Jeki zRHyTfkNT3g8fAa_RF`xNM|zSM`GME`mT~%}7k!Yha62#ek(ce#r*qUdc^HTKIye26 z&V1STZ>FF9|4P5{)^B!_XLf;~_RwE<&!>FaPySZteAb_G(noCD5B<>xe(0xu-e>-# z?|sbI{L4T7CeLrs$NtyX{b)XZ-A{e=7yp6pei~nFWAFa-@BG{!{`i)D>yQ7~KY3_h z{niGEe*y>k8z``#!GsDCE@Ze+;X{WI4^Av7@t;F~7bhm%NRea5iV!t|6lu_7NrWgF zqD+Y~V#|^;XVR>Ba;43aFGKRo>62s3nlUZ*9J%wO(W5yx27O4-CDNx+b^esew5rLL zII%9}s#I#ygH5AKBpKGL&9OkO{$xp0ZCkW*sTQ3()vi;#YxRn)nlbO*xO~439^BL{ zR=7|Bb$eA@7%kkfjtM^o+qkl2kdx1Dp1W1B;ks`z&n!Edv|rS!g^FH%+BM$JuxGQC z{n++p+PYcePK()b@7=+L?=Eiqcw*#~l{42H)NS+T!=s~~PTM;5?Ao`VrH;MuckbfH zlP_<+`uX(g*Ry9HzCC=`0RaFZ`2+<60RI3ib^u8LG66*a00{p8{|OvOu%N+%2ooy& zmxo|Of#dS@5*V%E!-WQ;UHoV4U$l?^#u2QDv82h9C{wCj$+D%(moQ_>oSAZ5N18YX z+QcX_r_Y~2X=?lDi0HxuG||v}5!4{LasEy+MLD&p)vH(u-YHmAA<~sf4TeQIv1F2e zi3p}8SXSWLm@hiT?bJ4_-Me@d7VWx_Z_2X-i;m6vQy$^NhzUdK`%^H`0|x{)k(_XH zN8h(9|m5vL!bVq)!A0dH>VY z$>7G<$dd~kN;{!wyf!f6wwg|D%;?Iq+imW1Fw8$FH!J@nX;OB)fiHwpE;vHFd)Kl> z%V#;A`%Ll$MJ+u4kAFed1TFU7fCT=7RA{y(sE~kSoraY?cNtThO61g4;Ds-3#aDCo z#Wa+6C4KY4h%n)25(LvZMNl@36=WfXFs_6kX)@IpBSzJs6u^x0(JC|lOCZp(1bl^i5!Ch5&2#fRS@LgLRE}8P!;-Vsb)|`edQob zAg(FroS!{s(sXuai6xzUx`d!Xc_zeVpDRHyD4~c3_78I{!X#u%nj|XefQvEerb&k) zgy*E3cG{&;fhy$Xr+o6pq^GEsgjA>pWqMMasmA{*XLGE|YU{1e6?EyM1-WWaiY=)F z0j|W>X`q6Fvh?Uo#j$u$Cr~PbkhBBk2vMX68B%5U?zbFce8UCIn(vUOqe$LVIeAQ>_V&ic(P|yOcTC>d5z&{?INP{s)XXf%PWisoxcum)SSOVpwi8L|qErOwwY z3AmYfSIe|m!hp);9nN`C3t-s)3G~Zq0*U{|n$-Ze?OCOxF>R2|wXKA*LE9RH-9Hef zgNZ=EtyM@%yeUQHKQD~6bxH`>Lz2IOuS9c8z~-zF&sUzgkONfbWoGFEay(FTpAV$E zPr1*Ak*`c8d6EMzS!|FCw6g@{d>yMaH)>R&)Ctrk1?_CioOee3L5(M0-axyuYO||x zcJ2N7KS}bB`sx#u=0NWwgnUWyqi_HH_~)p$JDv!V;SBgeXj*3RlR&7P|0-FpQxL zXGp^uIxs4$!J9#Jn71DOgIdZ^hSmQB!owYQWQaFO;z6Wkw~KLPiA4m^5SPf3DN1XK z_`{(M6*3hp3N9OA=|^7bl^8M#M2s&n<4e%E5H?~?i>2#@FzQeeH-4rcb`(gx@^}z6 zp3xFBoE?7G#YXxZk!}S5D61QPO^O~)MQ>R zNf1)%F(zz;hA9i;M>1|te|B7DOUx+BG|r@wFp{OL;Gs7_{;`$@QDZ7kDHA+eMU%1o z<3b#%ON=zLfyn#^FoXFIQ$Eurbec_wd!D43txOat+1QVCR#TY^wB#NK;?JCr(T~?8qdW;o z5NI^Cl-*<{G0_K3aIUj8+vFo8GwGU%YAlZyCCEqHh>*RZq@M}VB`z^iua!2%lo#FN z)#fKnXhOrLBxFDWb1FhgRD+=y?Vm|Mh>Sz}&yY$B;Zlv3Or26xso$`wR`<6n{>}7^ zW!UQZCi&3QiS?{#O)CpIX+w$HkEkhxt6Hg=)Y4fpt#X|!uJURtg925rfIZk$A9#&_ zEF%?&O{`)U%h<*`_OXzStYjw}*$<{PFV|QG4nDxy&U*H$W5+tMVpG&s&y8x zU9NPe3tUv#Wt+3SUsLRW;0E51V+lAhs|Fm#X0npZLYHt#F8OGS~pNxWq8dF==J2Vw~W2e_seP zj&)4r&!%|B3swk*6WC%G7x~Gb<*|ro@?-VJq{&W(vX*&_C-(Tz3+aywXXRq>shD7%$=&kGjW~kVH4ZcLGHCPEeP#bJ6pn) zsCJKi={7; zdTohLa|yNp=}Pza#^o&SfHDy1L67=uiQe*_dfj^rpSqlr{@Kkw`~)!;dz&|ib(o_) z<~WG^*43_Xl^`2eZ6~|Z%^q65dzR}VZu&u7D!{g9y|-`oyJrYr#A7QH|+_~-uuwXKDM_PyzY1ZS=l@P1IMqe`WJ_PL+GNq#@l#3y{S$60>I zcR28ToHt$eH(KlmY7kXG|5s|ycYMd^cjcFVzD0TVhkgR6fse;o`}cHpG(b;BcW9P< z(075HHGV3%fS|R2iRXeJID?(FS#KwU+GlxG2WpsRH1k%1(B^P_CxZuwT#`qD;b(xq zS9#HJrtP=_hN4Ox(hnRpE6l>(`NhmdH7ZfJbsH;SgnfK3=;JJ@EQ_JmQ0D0k(5 zVz-EQ=7^-2f{{3Rp%`~dkOEl%3ZMW2px^|<=ma!yjKuf_-0+D*n17<^j3_vHT$qEZ zn2NI~c(0f!PiJ^QsCjOPgQw_+ZioX*zzxDkjKDaIGynp`NCW98jG&MODFBM(CyLJ~ ziKD23xCnx*ICWFFb_KCcwl-FQDAq0tvQ?FxijM)@x$qZTJHWFR6-b z$cSu~1uZy}If;ShSCTl83h=m&z(|Zlxsk(IjO>_>Zt0F$a0()+lODK-DHxSI$&k>; zYY7L0|J76}X+ODF5Xevs25FU4SCwNYeta2`HaVH!7>dM)3hkJVY6sZ>k)Uu4 zOQ3-zsg!#h(=%#xsP3Vfx#)9O(~o> zkOH1*jP1ygLRpL$8H~l)j>k}hrum1g$%Q&;lS?UO)!1gV=xYB^4Tk?&K-IvQ|EG## ziIez7A+g zkN;Jk<4I_Ovr=k=4dw}%uEwCzCYF+Epf{6GsooW)tAPAZkSR)|x$jo#^_$nc=Gc|ULZ zqm9{})d-ta=$m~hqabRgd)lWbunZT8pUPRH8nj`I0-jrblY3Uv{RF>X*RTmjViXIPeA0>6UIepILwl zG@6Zw2)U{_V16q=jeNsD<3Y3WIvG#ZicYNj-a3v~aPuJ{?Fed?|?iVGF{t@-(~ z!}+Hh%cld1tQLx@UOBR!+JmvuuNA7MY?`19`gG|DoJLEu+d6#z01E$*pT6n@>uR(# zJABC5pJ59EHkh?D%CkzEqgP3jZ;sp9Fc^!l%(E4SMixP+U! zjoYhjnT)D?qbUHktgExHTf1mlx|$n!nme*Xdbj(tw{<$TavQg$JFvFVl@w8guP-utQg0}RN34JkXSnVYOrtGixVzv+9Unkl`-$O@?o zzbB9d^GmB+d$8Pkqu495ru(sN3c3#JtWMh}XwxNEnfTC%7|J5VdC23fwQyTewC!-M<6Fs#Iy>6~G!#9OPw+>5(Q zJ7c2SuW)*41F^TBTEs{k#%rp;QhWkTEWJ()!}(dpN=n5mT*dqg!UMd;LJYbCEV^PW z#$+tTXB@VAfWs85#vs7P8l1<5+`n0DKSTdIry&f+dCUT%3&}}L$OfvsYU~96fWu#K z$$PBCZfwZ(3d!Lqz9C$mC7X>fLPlOp#4W%AuKdV5+{rkM3zzJlGOP!+EXy+d$)zjF zNbIH|{H6emJ|+yh0qn@IjJvul!_h0fAixYQ+{eBetdxATp$y8U+rOZjJYtl^p$o#u z{B*ty%FEosfvm>OTf5BA%+mYE)f|<)e9dA!${=ja-b2dujKYyT&f_f3^jgjf9J`kc z0=R0sIB?D|+yd`x&A2Pc{k+5Y3JiDbyMlwyB>SUp8qWR<$}9lT=?lHJ`~?vFy2n|| zPLR&;9MAIn%f|f8i9EtuGN&`okra2wT z{5-mx`^}z8%5;1%04$zws>S-;%dNb_uRO^`eFAD}(jG~!H;MzSAkewI)yIm}8y&_h z5S|lV&riKBQhm{jIiz5G)D1nl9=*Ul4a4Gk3L`zBVx00{Mb$H01xfU4jsmMy};63%PnvW#~{?c`nA5=0)K7T+nCh3ZP)lZ)l}U!bBdcL zJl80U+t@70yPduVt=ZgN%OL+?+NYghm5t3z+tf^r(MDqo7%je0UC##j%Hy5f$(_~N zoxXa|0<+rP-Tknqebx<)*h-BIy(``I48-eV4#pte0W9FI{l&SR*z=v-^$pmmd*Ax4 z#>AbrD80a7eZ4j<-}0Q*^nBh@Evo-OFzaFrK@hq$UCLE$)i5sM{T-DSp5fhX;~GBW z=_i$lJ=r+j%D(&$?d{f(eN>BtDk`4ExariP%axH#*;ftX6TZND;IJ1S($uWuJU-w3 zyxP6YxzSqWKMV{&Y79rtDJmWW_>7wr+S)F;&rg2TkUZraE(ctC<-Q66El}86zQI4v z(fm8)!93OF`2uEMEXM!P3qi2tZH>?Wpw|2R&~)Cyf_>-u?XaAE+o?u$ARfoA zE#S|-n1itF$WACKp5!y#@+>#-|Xa2Ztr+4@EXs?e*WPYFM^~zq^fSp;<@hZE-T8O=7cWj zs!s3n-Q|Xi?;HQ0>xcdEw|&iE{@Njo4WerDrH=9uZ|1@*({t_Ajtt)*p3|=^^E0pG zxWMaw?&+}Jpu$eu_>2sLkn-&=Cux4{CC=hiAHZA*^HC1qI^FbWZ@Yfp?#oP{_GT^KX&v85z0~M#%6;CRP?ZK0ZKRnl#-&A*f)xKW3gHQNH{q$Dt<*+WvLay*X8r6RPrgWe3C_X7EzwFEY+U)Jz z8Qtrg59vUD_MqSUN=ooI?drD;>Z$+rkj?jWPx*(A=IkEy48H0LKBxb%+>kEmzJL8U z3jDYq<30b3?%qG_t!?OeANi7k;FGWH$M4)FKGlzo)a4%EypR3zPw?Vi?r|=HEidNH z?)Z5R5XOQSGxpEmL4*kvE@ary;X{ZDl@X*!a9}lLz>p!sxN)P#jSgCjBw3Qh$df5s zoFvI2%L$k+8a#Xss+P{he37U&o)#_EO z3@1vhXbfc2jKHdO{C5;3P?SQ?zUOn<@Us-cBS2*ER%lxDt05;t`wNk_l@IXO?}G~?S;4x0IVoIiz^PP@P4Uh=Brtu>3n`|iNm!mDU0$H-$4 zz3KcT3cAva!>PWx?30ND{ATJfLzwOh(X+Tplu1AJEPGBR7EohNwT?EjM?vlov=J+F zXv}Rur>qOfGX6>{N~M?ZGf~9lJd_VPC2#uhgbqmrO~3WbiV(UMceC!R$B=<)yBcp4 z6Cxc60?E7p%L?wfp@y?8izhc+@C2-odHes8 z#=*vPbfGf6V$Hf3J^GDM$%JeV$|#N8ki(whOj6D~l`OSRJVQJYI4s#C4L~%R(r8fy zm3j15@XEYyz(hCt4MEbmcMDe}c{!}l`+auLj!&I0;G0*haxVcVWsp`H7k>X4!E$vy zbFq)qWHCKL_p`9c68%JWV^5Dv_UvXk6fDLI{cvh;u)O69yA+?#LHY5O~7yc;`n zuU|8Ledo6ocRcB1l|Hg}vV}*w*v5x%dqZo7Tz9&l3^mV1)}B{T+~^BKJvWtit>19? z!Hy-@@ENCOhblkisd!}jp8A|rEThruUbws0&;sTv434CKOQD~{P-p+O{ONCh60=@d z2!{-jD9JLNVBYtOFqXDJX=7 znI83M=9|DNsz2Hr4P}T$AKcjvX~An&7DG0>wdrtu22@}KYv-Jb5yx`{o0-H|=b|Kr z2ZT$sO4c0apw{`uODjYf3*i+!qw#BeF|42qdDuP61rjbVEM%RW^SMmDN^p1tMn4j^ zKRRZ`j*;@!;H+mogFy0d>M>3Mb67z!X3T}CB&56q2}rluj)L^!-P|a)p6C3dAC&YG z)Z!Q({AJQ1O?2Wxe6>1D0Sk6PYM~6xXu$B{kcN>%AT0w~Hs1fWGJ*%}VisR$OS@=m zTOZjaw~)9$f(SDr#Ecn841y-?3Gj1hxrQshNWsY^u!q=0AT((?B2{AXXtBgx89~K4 zAtEn>NKw?RpeC_j8c3ZFK_^8>I4knRbD8`}QIP=pMS|8)Y2?EgD|wg0-3_gu5|kI^ za0t$2VyQ)j3LFw0YLJS~aiR&S=#G-|)4}~Tdn#Ne0ll|2mZI&S(0pYW?@2~(*3Ne} z{9dwPD#XKSaAmzYCpvYyQ=InH7#rDTSPt?@gKV@)q|7G1P#Vp+^{}AgTh_m1Sye!4 zQA#W|8!aQinzCLD-49UPe(-$Am0kOF}?uqEfW72Zt$l4f2j{$>s&yU9^e7ik8OxL66JxaNY-L4OG*tY;3Avg?H_42KKe z@k({68XM{@Td>`m716P0_0lDK8cbo9YrhlO?_z1%;jbLTBp4=*aNdC}*A|LFy}0z6 z-j!g{Xxz{B0{M5tY|WL56j0kWa*O-eK^}D&Tu?TKlqpg!5HGRLUfuIp3u`H$ z?(xVMwvv(AJd%0>G_H4*>mP#*RWiOZv}Y#oWqCZ>;L@@#EH3he+l;a(uI?cHsOfzJ zGm$*!@6I2ba*8eGT$;xB(}Z3J3udiBl%}+=%c|y#v1#B3S9Qmi_2-PES!2hEW*sj! zG_yZVQ&;N|wRYB#GQJu@68E_)BfhhMX!=f}ruCM~9!ae|O>R$@GQo>A5QIPn}$1l&l6Fn zIYgYbC~q<;-#Q>M*_t~H#*%T0R!+RG|ubn&Rp+06RWn%CrE$vL2GblbYz z%uWfpi4yL2R!87o$~n%pT_$zbnc4~8ucDHCHz*d_)?$}+(ocf!jq@{~n+2{6o%z&! z>)5-!ChqWt4KjIS6BjR6I-%cp?q%csZU)n%2j9MJDO+2Za@4tq8UFC-mYTL${d5qG zvR$V`zSxr%t*{L`=8-{~-CdSFuvh&=LA1 zru*r$*2_+^?zvv_H?9AU60?8*#ewg2?i=4$k=tA9P^EPHdz(~tlX>>;T{^9oE%qX_ zIrHEa96~%_wS|+rJEJ3?^Eo z3%$9O5h7*)*XbH>Lx>qd=zSfi|`qz^OpBoufX76TSQax~?$5GO?9~p*dqh zjR!=&r1Lj(+q>h#t&!rrVXLfcqOnS2D&XTi_M@t#`l$9=B@;wCbGyG3T#5KfEsWB> zULvu7_&GZ>haBO#5UR5>%r^hQa2QkrrB3oc6+^fD+d?lSG@V(8z`GB@JFfEbwca5v zd=tF%v8#8>r$ln8$sFBKXMDS222PK+p~X2Lp+;`8WccP!qG}ZP+123s|+H< zzn4QnhAOL~LoI_4F-^>G)h7BCKF^jtO^DSUox2(IzDU>wc z!aYGc1{D0hS)@R{D?X$!CNZ?6a5KFb)H%6x$aLDqzR^JeM9NW2!&7uaGx5KP)4s^~ z$A2`!`qIHNQ`s@Th$`;u*xyO*&`Oax55e8|F_ioqDp*it*iWJ}ERPDc#M zA&AVD^c@attC;jS%M`}1+&U)Qs{(~8Rxm~{d`17H%4PJlBy*=ElNdCNLBSXdoHIa( z%**z?w!d7;hb))A%*3IzPu#3V2K+WT>!pD#!V3M*blkgH=mI_Hz++P?FuFIBT*)Tf zp?Lhmj{!>#_y;{m7Yj8`C^gQEE56h4Kh%n?7sO4V#7z-}3iJ%had|s3`tlViZ>O=C|$;2J;z>MOE}F~z3bR^g-R@~DZ)%qdd1B$>`UI1P1#J(M=4cP zBtyE3&ASX(Hr&;P=sfOZ*N^?qDMeRwbxb47)JLq??i5*c#aLfuOQ;oEs@>R-wNR%8 z&lVZDR5S>pJBTrLyM$xW0yIT5)WP(mSutT%HiXTa<-xtoM5<`bdQH*6u&*DCtyzSH zb>Lg5g$2IFQKNlY@C@9+waV@^++Q`>I1OCImDs~I+KC0(syxm&Z7vQn$X=SkSanVI ztj&TT#Xh6YTN&6kJcw`1L{w`-q$I<`bcn_s+=!Lhx9nKJ^|!};-2ZIamtz6lom&4K zHA25N&fyi@zGYacom{1b1>dDgz71TVI?RHl%a{F|x-`n#+^fC6_Z?c?joM|i-@w&h z-F4gn7F=~S!qjRAw(Hyhw3>sn-qvhS@-O;&Roed^PT*jD zQ+AbHiuK_cu38=rU`KpkIlklK{oiCP;#w7w+2@E(3x)SVCSHoHgW7R7g|{Th+Ztquk&F8DWU*-qr2kZX9880p?QM z&w6fR&?c4Z-!Uj&}Z zH`1kvi&rnEiUJ&4DQ-`^bWI!lj_-{|QcQ^6q(QO;=A|qr=|#JL$lw1`j^}g+VjrgH z6`toHHr~oT;O3?0J9gtbR$L;EXNq246b|VDeqs0ZUBCtBke1=~U5GbQ!(+}@R&6+# zHA;BM*KIu8hwF|}{fCB(VxAMWpjNjC)><-rb7U<(76tGN41DVp9%|=0y%gQypQm4c!Zl;_n#h zHXPxh1dqC0WYM*n*FDTyAOm-9>98JRPR-pR=HvYZW%s4$-_>KdhU<3r#c*-gh-fgm{Da1!U?LZIn*n95!upuIzL!XLGLZ z|0ZpYCh(Z1=m?MN(7tFP#%Kr6?Dma_T+L^PR^4v=XAtE-|XBdZWQ!pRW064nsr+ghY0^N4=aV2YYrtYT<}m<<^N`0wpQWf&Tf-7>F?h23eW0qw&Mn$avwi#C(mjkm*J3%@VQQ6 z*6t7OzdK8S#WZ42K?3e+Hp~)?(Eq%|VacWW5A&Z$I;4itje3W~8pW>45odwX>zRc3fV44 zwqHCBo4m{q0&-wzXNXHjI!}L zwJ35?+tuI0H6(d{6LcahBa7_=6y31$v3^-bbR*h3rH6M=7}!fr46vc`s6BjQx3XIK z_mKI;m60Q&vnjT3ZSMwTGN+Ab!GE`I?ddvc!vw!sKYkfN?e3F=7*T~>;;mf)@tC|c zPWyu6^W|3++(X}&R~_`XBpT1?s@J;Y9TkL4ciFpAU*Idi38FwLdQ<2bP~9VjMKE9G zrXA;sVB#7~>s3PFwd8~7Bknr4=yLew?eF2gKaYW1y7HczuiI6xV$+WtS)PF=S5YqC zbE|Y#be>(cPck$N7K=`IX*dHSebQ}0s+=B=`D^+RLVO@GNQ`Fx$b0>eV(+AmdKpCSa9EX8K|C+35 zDwv4^_s%0BM?00zf%Q$4m`z_kOD0hP53$^|Csz@Jn$FBRx25Xq*EnrDISQ$OFRXDD z^s(pa4Yr#G0R&ivYE674V)NX%+w%pIFDL6KN!5M1Xe1DLnI+dMUBBILX>2L%-^Eft z57j1yvU~@$+pp?)AK$To+w7>e*=TRC_?Kd9R783H=5PNAC_3oOxHYvLf;)AL{41Yl zx=W_)Fb8rkR5(PBClN++sMJa=_j2g6;=X?9Z$+cOUv1-l@|iE$qD^xQAdj?GjWX{ z$I&!f2I<+@z_)HVY2F4_><;G#7v9jaDS-y(7xnRRJp3q(L@{isi`Y9oBlb|*9bq); z)C5Y26QlSzXy8gjT$bRDe43y7bx$GSw^ayr%B0^QwK$?O zm`It83|GGfd=SW3PtuqgBRQymw`XRj3}3EgYO#c0FK~5;-9X&Am>1j|XK9ro01W@$ z)ENp(nQ`7au<6-FKd@PKQ%R6vY)xHXsS8#Xt&Z$kkSMaT55gyEh1SLeDW_R6G>Z^ckaPLDU9-J%Ol}{64UeDiO$dvli^NpcQ;=QDp zv1CK(ypP;F)ptqTGJ#x%WNg^7+T3meqyc2P$>l>jq-o%PYC6S7LG z;ZEGOrs@wC?)HvHJIA0mh(bVN{q3JXJWL{%!sig8x>1-+obb<9inQBR5-5^7k4g2G zAytO)&TGH!B-z+CF+87{ce-Uy+X#>8m$i1I5Jgq4|J(417*-tPVZwZoxBACXy0zVP*@V3ZZ;GNU535d_+1~zUa3Ee^GwY zYS8#m6H}zbVBMMm#IH(@@)L+HF!i~R6H0_4Mi#ymWH%~hS;456Dx@M(#UYmR$rGHE zv0yFb7N;TVv7#xFj8|NiLO!o{r`45!dt>E>IFW@S_hG;kib=^_c-?0#Hi9_U zb85_7h89VXbju9!DSupUK!w1}Tl|Eq$pDR9$bp8)Odh<~b2Q54h*5cHa+JD)wB$@d09?qvU)1&(2B7*Z4F9r`BUY zS0-+*HOvsMoqk|CRZKNCOans+-P3Qydeu8ux!#cZ^c(3QYzxc|xWv&?Nz87eDwE`v z0AFCX{sQcT_^czStAWd6#@|!^8>WqfjMu+bSYuDQL6}R*1K>YrAkKglb$u=1Qx=3K zW@;KO0N)upM<1gJ4MnR;zzNTdRj{i&U=W33-pWO~3ww~Q=sVu)oPCGOF>PcTSrdvKN-F^8r@7kLAOwf?l8Mati%=U0 ztgYslD)UM&3JxVeaFxNR@$Ub9LGyoDxWJxRZvfcJVq^&k*@dEM;H{643-DFOu{YPR zK8BnleR~;H{GBxOM-YXU1Tw^-I37RoM+gt)4q{}iuur;d=r>QzC&ojZUMy?!H#wy3 zT0$HqWLRQVqfi1>>_H#3*a)g)IG*l@mP&+7J2RCaQFBN>|E;L^f$Q=#Lo}UQ-{+P(~=3au(-Zd7De-5IV4QyPM#`7)lyy zj%jj$!99VyXQ@RbrbMhjKAmnzEd?!lZ|oq{1uMy@Y%bok4BIS}jw;QX$Qr>xj3 zkgg=+*C?DxV(yWlQuT+7YCzW}>!KddF zllhz=U?~-wDwTdy;pq!jMnJ|XX)F%sZ~W2$ z<0_EJM9K4Q4}fw}wh8^^0W-*~M>buuo0$;03qH!$3Ttf>3f+aA$hA6vgGUqARG^3N zS3nS#^v>M3B}_bL08tjP07CSK1;028<@b#LXK$XxYwj1KOS=2n@V=k+B3B6H$whFp zG$fJ97-POBa|dAS`xayy7msQr`~z<2iS;_RXwA^#j1!E)l%b;uwNLBdHlp0fg4oc$ z&zj5$8K<)jqy}s-_7OB2%@GAbE zcvZBKl*_Qta3Gw^alVt1MB7M&^;qaUsI0K@668kEoF5Llti9wpd7j28rHOSa$kX03 z-y~Xm`CA95j|5o@H_d;myoZVIuyT<4yPk@kolhWiVc$m5vQfw$^3pVuknptpFk#c# z1yle%RBha&H`^e*8{6L8c(cSbrL_$n3Vw{WJ&7_fH|1 z{!bTjr!A9CUsiFui71A~46{IEaZ~w`BD4Cesq=N^!`Xhcm&+ebn=(p2&jJbo^~K=N z_la=cm+G2NOFrzkAGhDa^vfBukvI9zOCB{T`}=s=_D3*(2guDw{koSAdIJLjfo{(7 z9Esz9Eart6h3mfG|K)$m((}FnVBgfjNJh1abDi+_ybb^1e~B;fPMY@_QT1+r@W{gZ zwAJLji{P^|B?$eh9(<05 z{6$^8=|a>wT`eb7UE{IEJRaP_7yL0@-S-ZCqzHYHL;O)vJY`%1Aj$p}96=q6LF}}i zfF*AOHNVp#FJ%eyWF>wc35PX=KO+S0iXoo5kHOB(J_srP#wj6Kg#L;U#2{#i0EOlN zT{Zv20S`9`+gVl2Fe9JP+CVMDAT+ZO|NVTvqwLh;e5y?kE;hdqfw7%h- zVW7v5P;hu3*wv$%&x_D_0vxgI8d;MPfr;opni3X?=m!ag6C#J5^M$*o4UuS$P&|rw zQw=&u4k>sHv*iryI*jb2bw$|@jaTrpJw#Ymi<(Rc!=j7507n~1#Ns_6sZ}FD1fadQ z5Qs42h_(6U~b0qDM%I6OPtwpbjJ`pr2q`@Dam%(UZEu#4=F)$Io^je0c$w1V@cXuop;O$leHn92ateQ z5@~)M=Ry}N)Qx71lpOPv>Xw|poErXsF`w=9Igqc7C=IPvW1z(49luGMiw;)h> z9#b2z#zD2UgzhUMy!oPjNz2Y|MTC3uaVfKmT)Q~@p2j-QyVpFX;%)OLZvI_WAHXl|s zOI$-xR8uulzIT&HPm)_fZ+Gur5eukAgV4jS(L;THDJ(-aP9LenMyY@g<6~whAq}r> zb~oiF`IweY$RUU7d(I{LS8w-Jo#U3rtXXrIS4r+(FF{fxg;KEAop!yFElv-mB-H?| zSEXRv@LF0kti;EMTz$F{t}m6p28C=>(qtLl1o3T@Drr=aN`c7L$FEe`S@JqaHR+57 z-v4ei8*TDqXp|*EwrETEBL$OH)S}|toEhG{C*0&jV(&88lFnd&?%c$j)|AZ9BI4WR zA=U7wttCCY0m`y+>n0}%rHOW-tuws!n{#WvW=g*XR1Oq!VtBhO3bKMgzPCU_c6ZaX z6pYFTWW9$Yw>4c3ZxuT*82Mcz2{Gg)dT9|OX)l(7L8op%cri}%(8Yajok@irDr*9h zbWD>pTv{TIjy8?9)&KLzU44dIL}@=;^-O!|z(r}Qac9$F>&$$qg>31O|AR|Ifj+WC zWQ*xJ;_ks_>`v#-hiC@IwSM^OdHDHmNg1suCx>t-Y?9ytI~{q-SxoM`*0?oVy?9tn*iU2q$W`hyW~G zOye*KGMg<5+H>n#b}yI#>J|k#G%QuKeE=$=M~P1oDDgS_Pe?FRHt|RS!=6W>s&rXu=X6t z;~As!9J4APMt;OF;pw86hT+K`OY`jOYY&;l>!XVppOYHPW$Yd1>78j0u?ja}gX&)` z8!c)Z#X*I3Ywyoo9TI2l6dmoqZRu&(0y{-?1h!9vMGUcn`sUZbAFIycYDm*4%_EjA zuXM2Us1p#a;-6Yw^q`h5$=(93Ug*f=;nzt8y&itj_Vl)iy|u}XvPq(}?u+*R2GU8X z@*z4e+_1F~-0~JS$a#+(WB2KrEuNYzXG$jdO@8N$NWY&7X7A>Z`- zzrC{K?SC2PV96#@&j!`BgRD>n_}4~$0%yM^&7PK**OfQ4?{;6T^{>#)@Rx(X0cY^n zCacP4c{*mT&cNzkBPwWJH0k4VR$WBoaCGKl0qZGPk%M<-?GS-+C$xzap7B(kafPj( zXX&2yh#sD``LKxPv)371&1R(b8SMBPU!D>qt>*Y=3>>Wq&d6CJ(plTrzH;q}aIeLf z^Q95bY4`7QguKHzXniDVag+B^^H z08T^$?fDEbgkfdVAlm~K>|Q>!3Yc*kn_N0yP>2}f9$$0eoi6~*J5~7d2*4n{t(v5N zT8n{JActGfLsRI6u?QQN%~(^{TWvXCyF!~IIiD5zvAjIGvP`ykJUaPpUDpPs$z1z) zn|kG*#)>w{EQj{;+4+L?`a(nGd{pE#G}$^@$Cgq06n4f^C>ip%c)Q;sdRB)rm3=zsklL4y6@5z}) zpoyK5&zpA@CoUO#ggVED=toA@8;aKT^FMfUa#024_FLQj7QQV*W1VtpAD?PXBy}!% zbe@#+?Nz*==#roOiW)DR*!8v=uADfu>^%QFaY8me$#b?}XML8D(cO446UdFI$jUe& z*K7o=Y2~IUMLVFG*udjEN|`u&o;YLP7|e=VV`DmJIU93`I$6&=8ST7OJ3ma|JE*Zf zgD(Hev^vuonzzD*$YqEsxP|KbnnM$LVfp=_R_5%r{0yP$7%}VEvlG@*;~biKdf{_l z6=e7lsq5s|=Aie*KZA;!x~N&astkImm26-Q^A9wxT~yNO6@1k@ zon~~~dw1PqCFXmMs(*CVg$PV1nq9p^D9~%R$VOd{&lCSVAdeT73)$KQthq=Nn6Rgx z>1Ta!nO?SWbdPS{A1P!HB6Od}K0gwn_61cv&%VH|LG2ZOd2z|O$*p?0wqB8v&UV*A zv+;R)^1mh3tvtxAX+^r6k9qj5`$D_%P;2uHoB1hNYnWI|KWy`L;qvj1%%um$Gc-gV zt*i2H_8YXs7ufZD+QI543Ei6Am(#Z6x4z0()5+Hbo9BB zQf=zLSvbx$)b!K`3&;BM{ztw-LzEE0)VuY_{3(K9A|3dmIF@y(X+AR>LiMJn^= zc5+Ldd4U+Z=8WL_YW(37X*oPG8$xtz!@}<`N_WGJMF{60j+&crj~Z+m+4g#gy$OHP zLdjS!>*G}#gDj26#tDXfV7=g{WZt6JUW}ytsaZ+yVKfCvEtdwbi-Fc z>6*OnsDf-vxtLE=Pq>enW0*$>*pwU)yfrltDzimdrM5tswS5($C;=3(XQ>KP~|(WrW6UBKwyMlr{E@<(>dH8 zDdu@4UZ5uKKi&b6#OS%EN^a#*#THz|c@#zMU-PDRj|yJ}o_1NA*c?V_%gSSB>s6&# z--7dhbL=l@eu`X=nzPJHyjNGmg1+6b)Joo|GCUr#6zTY(m zr?M3#I}$7?f%Pv(I7j&_$Pf`o6@bLYxpl_#o%vOD_ZyMPd=RRWl6ZWx6O@8R70YiC z8yMy!H73d$HL>t*(kU5|4nI@9X4#e;9r&g>v2SFODP(c_Qe^$Xg~^~QS!<2sydHcW z{xYJXdrOib84t@!EHc&;i=Rq=uS-_FQ72Q2=xeRD85;ibw0kUQE;R=`H3`?wZ=@fy z5MXFp78=udIyVrhl0K~Vp#OC!{DZM^Ql31K@mLV4nrS|HoW>>FhpWPC6D<4X``ziR z7e;TVE`q|tQWd-V<1WJCo5f8mM8oZ-sq^>M+BOZ3!`?D;$iGK8)%W|{lJD+SPoJke zXFD>DWj%7$*Y64s$@)StfD?wBFKen@`*)RY=keN0D;$t^Z{A6>I>n?j$>z=-r+?0* z0b17^E@4WjR_;!zBPf_^O&@9wIlJ24FVBd7JJAI z&W$?CwvfhynH#=OYlz;GV`+i~G4Qbvey%MPeKzYLp_dExY0;nbTw)@(uMRO_(9*#Lb_P6W!GF*M?IoJVd%}8JCb6Ye<~HMPS8ayi?yuA=N0+s8i`|$l0qg z&9SSj&eHvG;9kWX zW@S2FgyXTa2}LVXuVit!(!rQgk?ij$D%RCKqY=j2g)EUJtiMj?bPXJ%&K!?;ST&T3 zD_K+7D-MO!duGv}=CTCPN&yLiG;u1s#pKX~Fg%WQ=cjUtUq`9d<%)7K3v1Pn zhBCeJW4Y2nybRxUkQP#SVd@8o`(kBiC|nw$^?SyKDv%lk!~h9*JQnl& z)B|&@v|1!@r`ms)7nUY|HPKaATI+JJ6qu`v_anh9DEHGKC`>(Yr=w!SBPvaP@8zst~+T zXQQ>FsNV3Y%Co%mkH;EYl1JmNw+l#D`x_(TNUW65H5Ua;q#mTTt?t{7=1%H{#5L!% zV8;orrBOO`RGs7Fd&20Y_BT3J*SR7c+xFm%ZA^W^gRj@lm|A?N&=ak3IWr4EKNpTh zsokfT_w8~@MdEBM7}C`t%w}B!L$?J!h?~J#Zoc6$4M zQ5`$LBQ1A|{705O_)1;bKLlwbgbr7`W_P<@QF^kWI>ToXiR(MT4k=rDjM;q&Fre;r zR`}qa4sz*G+`4YacT~39x*kk6UK-D?_tAE&1R-9^9zq2{Zc1LpoZjq5{%`#)0`cXI zLVZ^#QIbzR*1g~1+ItcNgvl9&!`qts!2)Qn2s@fW^Z|kp%O09FVFgA(+&vLFtsVm0 zer3}BK4?Bi;Vy8Q2%?hk$5pkXsalMoITXS=JV>y^%$!pE!1i*206}FXK`KV1-O)Y; z&%vo(5v4W$o%q4ux7|e{!V7iX?Daj#m_nL+J+L_ zxs?J0WzvNS1H?SF_;CAs@y__E+WTbYS_~ZfhF=CX_e8()kgfe5(giWX3W~=cbwJH^ zvrE_9--tt8VZnxH-JWL>?ZSf8b05E(!nhL#nY4xoUweN=h&bkp*n3LYkw&q#i$Z=6 z-LCcvgN7PUx~Xvi<|1O5uL#kkBPFZia*Tk8F|ZpC(l;$`1KfH+TLF6|fnX4zjjPNd z0IbU3<-<$OG)#e2}^kF4DgyiMlrmZtGW{lUWd%Sg4m7ub0h59jBf9gC8ROlpsx*ETBMa4|v7Az*652<$MH!+G4ikuQ2BEev}%fyyXjgDZ8gCKE9? zVO%Xe7dF~ZK8oj5Os6bAbCyqMH7)ZTJdHbY62OLjG{!K%{@yROHz#v8$JI$X1u+nj zAe)zWaGdSQ7p3kQ;pmVrftBul73I(xdWhgb8RQVeL+A!r4xZSPa3ox@yL_|Y**(;$P(J2#Fxi@QE2W;`kyIMFxng??|>$uos>D0=Xp95*UrMC%I3-E6$6X_gBH?Z^;25oa{2uWl-d(MW`5$4 zbCZq=N0if}{p>G$zVwMdKKQz2_XMT#%>J2xdHe9z9DtZnCPi9eBV7)%3X-F4Vb#Q& zgdf!PQ*Jkln9ea6?ntT%UlPp)PacvW@;)9~V_E zCsS3ULiY)ovNKlIz|&@Xl^MEK)XC5a5>>a1&{}K|W9wMZEs#xs+gMwl+Th(JgqvFY zr5hx=V(lquV>DlpAX$38W~(i`Go`ktt*UjV3wNg$PblM@E?P~dyD_eE0i1wEm!v{d zM$pmQB2&suT)*QTxdqM=S&5&rD(K{ET!X;q&H&@;Ssy}uIKTd&fPPYK3CCahCFx*o zs^#0jtxceedx3r(>Lv`lE?ME^651Tng#PuNK5GM?!Y}1HV1GFe10K_Msh7?Q<6@HS zR5{u9vvGN#lKva7xHZ)lW#)D~o-S;q><^tSl8tSIi3tb`{?3mb`wV&y6IfjWnNwQFAltQ!>kC<83`p;aF3TW$^OhGxaYk78*(wh5hud2NW&)=%~= z1n1p=@jc*z4hofW=-HsX(GH*3)Vq^LX~D`qTIBN`@O!7hZT^UoSWE%0#@u&3iKx9{ z?Iq&Q_56Mvag)tlI1@c@a zMZP3s&H+9#F=gP|Ho1nZMPb?x`3)TIB^qVY@je`pk<`* z)5!|j$T8EI=a^Sh6*GQ=Q_t@(C0++OO-KhO)-9#B{O0^L)Om+Zk0z8GNzXU zMmZNoXRjIx^8zIG=5-ePd>7567W<5YlF3Z^Q*S7N?7@PA7Vu<7Y`4?c==z=$%65Dj zHgkIppEuFr3_0KTbG#2D#17bgojB=i{Vd+?Vvzg9Gyy+85;bcgD0Z}>gpDm`W=we0 zoh?!+HkDw)_@!Zo`X1qnsM(u#TNkTxoRjZQPLt3DGb9zmF!a@ygX26C)2WN@opNw` zzF_SBc$tnwWs;Saqk$wyhp+Lh`~aD%=N!Uqd1h%MQGRP$irUqmIZ}zXToBbR5OO-> zZH+RxJ&kU1^bR`cKfA3v9;4D>Ogc{eY{_Ec}{6t!KesBso9K!l$i{wfGm_iPGN)L*9nnz0=g z5If?^Ia>}=9JJUNtUSpR4Sn3x`&J&vVG9j8xV(-$%H*?~ten(7=SAlW{foMNAbRG| za1yv@OY?5YPzmZOwp)Ka0ly=B$r6ZgI_CN+J^E%w0xFwF?*>~2e&Ms){Qhye)`uo` zv-k(xW0qBKyj4zC37qqjWT#3@+mI0*8wi?Zd4k0?I;w*lHk^&lZ)W|g&(_~CKz`KH ztJM1|=vx&|M+NUkab|%kw!uFo97S~<#cUkKeH+lPCU{(5U5Xq#p%}b}QkIF$nbBF&+tJT#Nc$D(9a<(nV>Co`C&)fi4IBUmVjv_ogyW zJ+3XdnIid#KYqOVmBk(IO#t`!HkI!PuH<8+&~7v2HaI5Tma=CToetbI*Kmi1^$+36 zs;)bZNS`vFb|YS*FWdrso_8Z8yubV_{NmsuemeT5SiJe$9dhdo*-0$kH<`E?cyP=$ zeKxc~(jj=TzqAXfzenqGwUu?N-$bTDdZ4&G2>T_f`Clwzxa0Id1N-pP^zHr39ARN);u_w=&E6%_Seg$*3^~)m@E1j2EkX z2F~&gABAzqohMyG&0IN;?!lS5T&khNpgTL$2#2Y3Ipdp^_7jT<&^TXt_x4qh)-ve_ ze->FtO5=J%6Z1l&$MyH&Rdk$Z-jJppVI$mVlu9+0eXYJ3oIEPTx837(mS2;vB?>iN zsf>x%gVLC$uIYk;v!5%}?o7@Z#y3%Y8j2>zS#83YM_f(F`iUGd4TiZ))5X3}<&#QU zzXj@P!RVN3+G3rX;5+H#9nOo93O135kYhLI{1KB+((x2DF4B-I!Nbio5Bn9U6Al|H zPNKs23?mENPF0Qf5SR)0Z1@D6pNpJs7+Ubt^>ZcjUqBmF4*4ROy5&cNhp?V#1vDiK zQBnawmVC$O#W1;;eu?4$U(^HBl#`Y5GR?To5%S$>I{H&H_)C(EViEKUXH`y&8#g>y zfm^B?Mq%?CHd0CEH?N0OASajMv6ZC!DWut;B(@{Gm#@%AS$e8%ocB-z-Dy1&v@BV^1 z*m*xj6T8x*T+mPCmksyEZvz{0fXu!4=!)xl6HxXzJ;)+LJ4iWWL(ILRb}7l#ylLHJ zg)vE%Ppu%o9bld#(B{Q$l$r8IJ1_UAl={qvXqE6nIl1DAsdhv3Rv|7Ei5>^Y-f;vu zbaTU0J1(3PJkjr2I6gZ|Fu7nPaLf=pt&2;@T%IghrL1MB-5L+WiLS*OJ^(RUHDm(m z;?`=7nO4iz<=7g~#V-_R5sb5QU7h#n#MZC6%u*Qe`i-PKUa)EDAvocEch6 zg*5kn4lzo1DC%w_o4|;`qB+O!UM}{bWom^nx^_(V7DB7A6b3|hC40V#+>20e4t%jK zD1eg^K-4z`TH$pG-~Qh-vW>MxBTkXzjjhU2*8zCxx6#TYa;kFZkFg{RAzuC#Ye-Td zf<)`|-XM*Sq3QXoQY?lLbH!9_-ag^`@2M3l)Lmz#RJt9@m^`B_=0ypna-ibZAW145W(R?U@j;fJ*4%7KvoD3( z){)LDiwDR;A|w^J#!{3EZ)~pM(&=N07XQNv_NBrkb;XbYN4-)5*jbnD;bKgH;ZBIg zq_9l2!Kd}DPfo``FDIIK6{QeJHkT3w^k^*1s~OvJ0+;l&LV_}c&FEP#R2pR?f#r=0 zd*9-@`x6VB*JAsgDR~$>nRlJ6yj6rO8j@0V)V%kWJT*`>NTRLs@~=ASu6VjdfA6(Z zUELV{JI~4DCwDvgw8S%EDiV#<%AtZp5`cy-30J5XWduc=l`?PmYJc31{Gfi2uw`4n z0KHQ4=C%~TP6_~Ixzf@x&Kl4;o{r5J_X-g?w++r8oA1O=TuGQ0tdsgXdvMpF+_vrA z-!|H)lN@kvb!kc}sT#6{*BP^;m4P4H<*6ge!>Y{)!gBSE0qSYYcB=D)tFHgzhgE!J+|Hkuz-p-Z2LJKJZm$jj@s9N26fnliRe%iJ2G&b- z2;yXUf7;kY43B+=Yi6$1_g{6;PSKwlI3f8V0n?yRrxMqB7i7UmIiR ziAzQi*N(7}7R6<$vOZHdTEA9fK!i${C&Og~v}R4~`M||H5*Ak_zkm+;zqpQET-&Ds(+yd|=Ozwlnf!Olk7!SaCneeG^NrV*dBay` z`2ueW>mrPmOn=W)eXi8HDK=ASdLCv@s!rD?YnGc`nXf5i(G{xD(IC)R^jxm1j?^|W zR!m#=qW+bUQDMRN@H{`7be~=pd2Z#{OI=jc$lr&v&;nYUFa^~Gs z2Mzr{SrPk>tO&;^>Hj?;prvL@+QS3wAsT)!M=lZuAs1q7j$P~KnI<*q2Uq{^34!HW zRb~e^2Yj~1sltgYfj`Le_mk6txyYBeN*Xi8Q$<+v&d+MsaC2p9b(JEevu4;ip|IX$ zoDEw`KBn5v?$aglg@NB1Ml!ewM!I2zrg0r5AI#f3ePK}W%~Zc`WQoikfDB@;dSDRX ze_JE@UG4Rxu=4Lq#oX{$1|)x*D{HwGh$~bq!$)-2J6)i`L)i~~{<50Yf#~k3uWXz+ z-whm0f`Tm?h21*>rlBE*?3vHO_h7;j{fVCF z>@c0I2HF>)v;7_ILg0O;2G@5$AX#vTB6ruh%7%yJ!}Td5Tt#_8%a1(?0-u`KaZ+43YP=wYYTjlZ*{y3oM4 zD2K5PvTZsGQJ3r~ix4$rhrQMq&3Trz#Ka{^nQ+BBU3D~JI-@qEqy^G(W$&lb{sQc! zRopejrAYaQ9;Cx9|H?=vs>J{HF(H7kFYs@kPD9b`&ip7RXM6tZAC#7se6J9())~iv zPxE>yx`9*#>2b~$az1E$so05-n3LlYBzng(ZTc@3W(syhui}G@)Z^48XzT=Qx9kS|tM^BYfCM z$*#f#3T4>D5G_O>%>G$HPAdl7l#Lk|GARk-=Be7Kb5(^_Dq!_g>saUQ8b2b%9Bldh zb(u}3@5mf8aDS%Wc911U|8oO%B*|5hhxuZ$r>`J=yo8mghuk1(9_1uhBM=3r$PEAQ zrZVg7YkWKv&RkkL;x=jg@2l1XM&Y0E9hfcxm3y>C@-OK)x=+L+Y&n=^xOIYP1V)7d zhuDrF;f_+CsrG}2qhjeBjdeUF?INYhQRD*QPyxg-h?*W?1(_{Z85`dS0~#_Gwr|h; zl@GJWzAyiz-v@bbc|i!NJr10@O`!Na7C}@g8SZ;n?G(K}AfCq}E1*UB%S`@nL61^J zmm}J%yOl8NO+HL8JYZ>f5k3dr+(v0fdy_v9Ma1f~S@SjexLBO%?T%Q|K86;~F8b}^ z|3_8?CS7%HunyCZ(Tco-cpDMPzSoD)P=`iKUq~gT7yCkle8emV#ikgQ=wdGrQJokK z;ugo4nKDJrE3(b+uFQP%gc*QlmkXGZsl`=`GGjT>?h@_S4*D6%Qyr%53f>YXa8l<-QGMD2I1;wd6kbt!iXgIKBPBAh z)G|j?A`*ki<^OVkBoosvYxFV)@m)XGk^~GWM=K8&R>h z!zvXArq6{<^$*x5;&rRE(lL%dWHIV*FBwctxk(O7N8x^W9HOfn3_qkNxe{xH06k@} zh%f68Ira@k|7gW$;_MX&n6ixgNW;#=Y%pZ;DoOnFei>Dpek7C@DlTF&M^3tLMo|Ee zzyI!#iceN7fo4IhCo@CIK&CE&iJlMrM1vmd_B;CcK1O>00dtyk% z26CP~J+CiOVW3yC69=N(iE1ATxA-vcls<~@zNIJ{N*aN z8&(we;TM~UEz+F7>vFY84zxcf@;YfFawz^vna6RJJ9#T05L?}cd zOqHVwJWp;d2Hc0HZc%GnKNR2ncjuOIvJ0EPr<&W}npy{e7mkUmn&)XM&4V91EPf<9 z`$@^|oxE0`tjpq+`C?%69+~Wd!`JtJCwER8GugMSYM=jJY@7LI?fl1b^H9>Ib%%=C zJC#K1j5@jdPV}F-W%#P!qdx8eUX|yp$I4;hLo12%zo08_gKaU@?si_QKY((B6AQxL zdo){@&{2K#zqzp}uf5jX=_?ob56$$MKiz>OI&+ze1EuE`vBHddR5Y#)k}@oj%F?<= z_Am^7yz^Q}LeMAv$wPD6S1wf2M#o~wBfsG5;z*?TUg=XHeQ#v7ad{wvZ3k1Ql`@lTO6`x0Vu_ngH(NAOou@Hzuo&<>lK9J>f}-`S%yiUp30ZBXW5KDqz*9ra zvu6_VyB>Vz&odM5m*uIXb5hi=35;cvm}60mjZNcLIv88fob0*+`q)7rmzT98u?N!L z7{5=>@zg=IF0F?^8#4@Y)H$ZDB#i68AKj*t z9S`9-(q?+@EL%?#l9TC%(fbod(LMfT`J7UF)up>kO#_7~UY{?K<5!4Esc0e8t4&CH)b z50Nkhboj^Cx&X6J)&HlN7psKL&4bSmT2BHwPvm@0nv{T_kA9+RHjUyw`%U}^#=ab` zAH{Zo4G6wo5B}1GUUzw(nqUt}+CMr=cE4PG*$Mw}fdwK>|DYEKS~Leyh6LG!1e^^C z5D5hPHU}z%1RpvF$P$M99l|EyU~za1@`Hdq+z{Z=X+n#rLK6_75)k44i?*{0ilYs? zZEz1H0fIZh6W~J<+}(9>g1fuB5AN%ia;JU9fKpa1IAsXDjkx-YuA>#dge z*=w&f3+=4*$aFwtd2?hofi03ncwB@xW`TbjLWILn#9!{Hx^(T#$H)ePsD`D;YS+j@ z`uCBkcIIkyhg5XRV{{Q9N;D$uLqrgIdX!+g3~GNsnN)Z$cXWXiFe4(mk~6xKK58W$ zxcnH|mkz8ojm!tc4xoN0v4{#R4}MG&0J(To69C~*WBa9ILE- z4r?qH&C$WuRD(b=F)-aWRVo%zoe+x+JMNJxjc_eY8MH6`@@JJ`EJSP756$M)b z9*rdiygSE&HLy8xK1L>E5hUOeCPAbU4x~~`I8O15Of&IJbsJ9+BuqA|ND1&vqDD*ESd_L~ zqw~5AcP0$*Cd^3umEqN%b}N;U&X5rvnQYUJvlk|C`jEbz`i_5Oglc7m{7cizNC}Qi z%Zg0qZ4-=T$ef8!+qOul%*YIk%5P*f&WaN5fC`h&ydwnW9IKyEr@eaS-)eoBnRW4K zg`@p|ibIrvMg*Kk6V#{4#m+2nM?)nx{QOrF-kGA%t-YWu-ClMy{@cz63Z7g>tMr+G zD7sI`Nb!Z7=-GcQgD;9CXY*xXmql1dd7L~b!~sQ2b13}i$jn|*umH@5FKQC#d7Rqt z6ewT5*1;_*6)8VOu+j>MJ}G!OmK0SK()Jaz{?4Z&Dh(`0;#v||awye|D#p<+#AHK5 z>Mw)eDMR{%OpsaNfF7Yu0WTRU5Qm6B1yd?^XDsx3Dno%QN7yM#W~_k!gly-PA1V|6 zUQ~l7RKnke!%Bf;5mk1h1rL8&mLyc+1F5We!cJqXYLdYTi7L&DDnAKMgr|fDKBdQ^ z7vp%LR!vkUosW{>_cT?NAB4#{vPe(dB(W@r)m@#tY)67 z1|Br{*>J>uzbdPW1DOi=?P8dg&bC`|+`kHT3iv(>K`IIa_RDG^9vtb6WE7dITB0gg zT_vqynr|IkSUf0QyY9C`{&iHk<4F}2YuWaH3VrXm2&5LuQ#%(`Gw_u6^+OesEKZdb zdO~|KqBTx+ROP`M$}g!}A??Icn0DfsdpR(we*30Sc&WVCs*;bpF;=^2o)Jg;ABg84 zT5kl>Ol4ChYO~>XlRR%Tv0+2vQv56ajRM&x?qe~ZLdtL%VRxxR;j*sk`-^W!g`DOWQ#m8@;B=WpN{4z z;^qjZ78BVzA8mL;>$FIWmPq1^8T3|{Hop(Vt&-kw?H#pzOaiXxO|MbjemYGqlhsrh zcHvb?p*qcqOzmpxE%wh10A8GC%Qnl-G+&AjKdZMsFoaak1>S7gJUf>0Eii8eHmfah5w;blcGI*`aGf;gS2SaboDA9xt`}Dr>TGul_L=q|QG1c-_S$7n z0OY3Po-6w{rpTDP*%Ahued-If1*)D0SGxw`l|dh^ao{h(AES}-lzR3+;|I*sS#t2F z+Ev3H6Mv=#4!Yp{UdsIV(DEFn|GrEg@{QHJe7492^Lh)!WRA2=;cWTTp%=_#fM%Uu zrfDduP=F27d}AjsJ&3Z?1g|5Qz~P6prs30Jq<%0e>HMeHK?|RHeB#PwpLqnhA?j{0 z%Cqb6g!4J9Yi56AjtDr1hgE)e)`Z?YcXYOpcR8zNUE|}`CS<$tvhlg|1#J4xvQ&ci z{+sQ#nzzB6mgmQ*>X>BhuIxHnkiwcF^qo2An#-e@IrOSK>{znFSvIwuCIwG#ynufL z=cKWgJzl4Wv+S{=$5^rE;pggf&g&pC^Cdh2t`qYrq^p7FD~n-Ey7D-S61HDR7YV_0 zfc#2Jtm!)K4_{uF6?7V`p-Y6@Q|>II-mj|w-@2`Ad+6Cp!$y?_-+ICeKdS>lTvxX~ za7>_9Yok(rZ4o*(4Tea(g1s*{2W%E6ZMr;OHnVhfI=dl* zqzn2ltNK2(+oVesOx!TcB_IS6&$3#@vOVyMy#U^-vT64_8^zP#07Kihed=s&cQSRm zbb(7r=j$J**ZDNZl}H7~lq!{N=i#u{O`*DNQ?~fzw`=0}h zISIX*xmWDF?n9)@y}HaD%9^8UpCi5LeU6K5_-*LI+5BP*e?aVH6xNZJ0z#JlpNOu5 z5IfY!*keHayNKYp&I;8x|In!m#g=T~8}Vtn!tO7DGnX1DhZ1r(dXv}3BQ$-c7@qZQ z@cgfflicqgI2`tRfMb2J$Csz4hcfUsbtoOvquxsJmpU_c-#-jeoC0jnt9mA@HV;Dm zpn5&WD>Y}z`b)c{zsyONc%x5{!0UH*=asR4e0|TCd(NZm(3>yL-p_Ri>|4$U@PF*WA8ay;3))>=^d%CqB&krcjyr@@Z-n@y)X$s?~f&XlXj9DcTA^*EBFS^{`Yr_CIe=& zTfEk2P7g<;UBfrtKr59bE**ud<+Lguqf}%TBUOYc9Kwb6@g@|jkX zZ}cyVKPOUmr9+et#;BM-cCW=XThvI2T1rpGKqD$ zmFy4vEU?l3yMm1c!FGRIg1bcIJiQxbf$v|I1-##b)hH+pAKBMmy&vmr z_av%yxHqr7x$RJ9wgmmN5OMNLGfA>y%alGB1%~LnIbRCT3{5IlR<%@OS9N}@?9X`Q zxt$$^*oZ1}SD&2Pid5V?v;Ld`Y$!CsfBwQMJVvpHMmL5?6NrThbDk4MQ_e0Qx@}WA zXId9fbCO;a=>iMT*MDXoCaY> z=N<<}&A(-izfug~Z2DlfXT*j8c&W?5IRBUJ(g55SHJD2$dl~3bfF8@LG3 zFWGtlLvb;wR$LU%b&*WXNOB`DWMc(#PZMA2QEVymyp%(o3$Idc=4QF`*XC z_VdezoXg#EoOoO_s?G;@S{B2%c*7g1ED@`g$-mrmR$>x3$LV=ljx>lKWA1fb0%;xw zw7JFSTd>+w(yC2TIOAHOW1QT2e$VF?5VSR0Zcd}Y zU+zl0Yz2eKu&skya-)sIQfht^X%2?n>6Grw%b!*snBA*ZtZ{7!SKWoIL)ER1)~_<| z!d%a=m{3Lu&Ck3&Z=fUH&6k6slHVQw>qOtM>4(8#+)Q%sE9s2?7~Z&>+=17%Zmf#b zu`X9e)N|Q}>3wzY-`fN>uN@EZxydrbeRXd8$&7kAZU5JIU@I6U*F}<20{HYqg^aOz zU>=s^Nt;4Q{It)_Oy-^l^ZfVp(y$`nazTf9Ftu3h253-mn-PP$p;7Ro}saMLN; z@;GxB96X5AzM>|3*$v~nZ=WU<{z(qEv-fTZCV98baX=42Wn8EtND`zFj<`iY8lAG+nx+ClFWA9dMIb*M1fS?_QqCXHJ} zG;Serp71?J>3C06?m_ef>64K|%r426s^rx8thdb&R8SWnMWx@M8-Pjnfd1>#*A8YQ zn&RAL{SV_5`{0BcEd$c8s6Sao?Bnv~3iSa1358Nj<7N`$AKj}1Y+>wn+9p(gn?|Ha zYuLG}T}&Aye~AJPL*sgEb|^+8WR+p+RB71kOE^_p^78P`z;D?Gzw#pGNJ~{R-iwiF z&Lc+659^6w4j(A{(WV>{m9s=<%>(DdKO>Y?x6$KW`X|B}9A7{NDNOyP()<&mfrB864J?j*ZlT!YRyoo+_$XJ+6JT-#FJIk7Pzl`DLVU)4o%iv4k3^vDA$S2 z8{fGpygi%L(A@K<42vIEZV48HF^c8V54FYG>N_R_3?iNK3zya)PAgCM6UYr2etpw9 z1Gb#EHt3K$=Ai#Vu!&bIi$2X4UZG}`>v1ClDBd@1dI9&RLJzvO-z#`ar5k>#XC2ns z(pXZ9lUfH^YDwz~L;`W%KmC3@bRBFOF87S{(i{$27|_7_2Ao__NBioYILYJ?2dm$< zr0`&VvpC?0k<+UqTx)!V-JJk#pG_9Nv2~G@vPV_;m@*rzP4M%Jr+Rmo{^-4LC4c>% z(af{)8LyT3Q`HE?$ozH#t_RVHSRI>o#yrIhppP=9j_r@MmXUVbi1OQodKrlsi!tG_ zp@d7(C-4!o`oe|zmDuCKYO3@K3_7ZzS!#(t^+JrhI2KeV{W>r`)f zFW=6Rgf$fz=vcqMhL=+wS&JQ^3tQ+<u-OxJp}}n=p>G)B$=>@|ZVowaADt@F zG|%@nCK@a5&oW_wal$%y1ed3rS%;dV7Q=_MYz{2@Z0~WTJH(2 zacsMhJtGlxUaF`WfnjWtG?4#z95obmz_H*mH>Z0T%fGMHq5yHCL=aDKvT$pd%m4jx zlet2V?AalHv4GvGv#FtfYvcVolla^;c^lR=abSCsG)Zz`@Uf-6`spMVTV+5{?rxS` z?&@bW&)CONP!6pBwgHiH%-Qd0q3lXa&0k~5WZa`&hx9ft*l43Vm%Zz^->%M{_x?BT zc1SykQ+6KTA(v)rhc(nL#Xe)-MzOVLhQ%!wo3~f2wylz!Z|0uHZ~9Bw(_$6bNu!#~ zwX?*X>leW7KpZi7?eve;Vf_o^u4gDExA){hti8nO%ci5?zoX7Gx9_LW3wU4O(?$|^ z-(bB5|1E=APM99P+VevP>o$k&gotYuuMeooN42@+?RKb>_A#Aq^3Rp>#i>E>4biBi z$CdnzxX#+efA3?6Ex!ZRDg8UD*3RPxqMNyJpA~~x|8-Ar@EHPG)hbHpm$w?a zh(m@kSi_45$E$dFjC+orZ5AznpAOAnw2X(w%}J>?PZKsVa;k$NfUgjkO`zx6su$h(Z@% z2cj;W80=yQ>L5?*LU0jcgr`KZ5kd0lI?58No@C29;sGxFfH}j{&Gx(@go;-2$9uPD z$+qho|AMs#w`X|s|H5tO((V4I)8At(*dqIjEW3Y6weu?<8?J011&0XR`}#xRV>=UM zM?^|O@3Eb%=PCkzi|MKV+2`sca#SUP*fmsG1S%rtK_L*OUhFv|=9NGciS6w9A=Lkw zPneiSFxj~qTTYM!)Quz7zfvSDpv%jbE&Pxq&Z#SWS;d=~BuK0aUpdet!aT^nD8NQD zOr0%6gV|Hih=w>c#JDkpqrH>$HST|(YI7X2BW%SE_zkU`kLAK=2#lbXL!I$SQdyGL$Olmf@Ve>9Nn9M*? z;|NSPq{HS+>{lTbuXP_2Xb3r5fTc-FR(pumMC?7&WQp5p!57vnD@dx#t8Xowl+|vc z+pV`DOnBCb=hDqJB-$J-zDO*^iP-BYCqbOupM(30EMkNeF)-|G-izbCtniH z_-^!o&5(qQZpqM%OewXjoJ|~PVS*CijJ}e^_mT)?-4vOTaC8GNLJRj8Du7B-Jd2yhl9QFf>9> zf}w7d%grX+7}7H%CSvo5V$&w2W-Tw9C@TvO$Cf-n{eprs2Btpi4FgU7G6~Bp{skjF z<1{l2+u=hpdmR4+3fY&Nz_Xc74xTo;9oO9$zGa%;eUUyinWp_P?f##_4u`__ne1T5 z@F5?P$XRcMi5TPsrQAiaJVs(Uo6b;5R;_9VL>$s^JGHPeV<$##OCwu%t0>o`h@dBX zhs*mAGQ$dzgSZ5tAi-^kDUix3?C&cKoGDN3ECVa3syM4w^<}us4*oR^|`@k_2r6c>&H1m~02`C1hSrj`YWTNJj zZ)}>0!kkyD3Z2NFd?XRQ8$!YHkfpYP(-xaJvr)eKqIzyKcs4cdCntKNCIj2yP-Q3m z^_N8P{TN=3^dYX|-~DD*+KF8?5NWqed9n;S{{Wa;nt@gY4ojZqP9}>$e%w+;igwb< z0^GDXCDW`@{<2VRGHP)<&v`J7XR3T;qj0o1t3s;IPAh|tx5S#WfXkweRidh*zC_5Z z{@GW3?iBukq?JruI;~4)Jy|iDM!I@Y@oj%ZDrKPV6NZHAycnsZ3`>V}vl_Xc(u2<| z6Ht+w51EgD?j!$#X7`dkr}`O4)rfDwMOAqhQS%eh%wJ|rkJsh@NQKYDroGN*c~jJR zN@jh|;ZcW|A28May=bycO{j^6S$zoeCz!Vq0vNk$DB#W>EM(1dfMMdU8c%Yo^9j+)ri1B9x~*1f=n9}&Q`1*HC3NLW$%5Jk zKw_w30_my+2cVfl$VZ z2h?=(UCAb0cjwe;0r z+d$umkt20Ogzwu(5_*{5^)TKbXsO$n%ZAvg+Y5J^t4M}$HQ@Uu=rB+PCW72YsuYW; zKZi+t=O{GT4G3R=Lc~{xz|d_~gP>47IzzbAVSOZl?YdXPMe%J61tUze?S-6ect1mA z{GF?6!*luF8|Vhsq0vjFaM4ItU3qvD}I1a>7_wl9heC6V_; zMocm8jp$R2e(3Kna~g>D=zr3O$FDP?>H*Wsi%jnW6c)y44#aHi)EM~)a1sZ&4kgrj z213sbHd2-Wsiu@~C??aUZg%GGe&!yr=AL2ZYC?ZpBnEhp!!(wmHO0m@VIqqp(aMLZ zH*nJarDFac;mIXLhUGV6n@t45WYp5lVNo>}(LEN?BcWz)W?lShMU80W-+LT}w&aud z>KG2{I4o(!EjEV#SZV+s^z>u#Me(JOVtOpIr;nrbgRJvS?tn+sX8YN9+0#q+de%H3DK#J=11C zQ-D68;=83rRFCap>Kw^rg9=8tu_<5~FnloOEN~jnvTNEG>WXhYC~)SkAEZVQ)Q5aV zJ*DS6VioFZ>gTst+H8~5Vq+X&C3}TZ)_Gd4gJC?Y2RPj6kv~m$JL}{}R+B=~^*E>X zuwBcwh18s{rk?u;oV!!otd1bTT$j&Rdu-Qh&NnvC*YGbO3U&t{FIJY9fEwqIHm5xT z=j5qarbq{+5_LVM2b%ZRfJ3>X5gq);aOOvpU##{w0`^()!8d01cN%{iEbQ;~?HkkW zZ@*zYkJ#V({e9iEe+&EjjO_3f_Ltcr5Eg2OW^6itu}-dk@N?%3CGE?@u+{jc9de#! z{zrSPEeG~#2lIP}JC^hDSetG$hq3=KP{ZRuZl?{~4qyEp3E~|4YA&8=qS4$ho0Mot z<4956@yP8LTL72MWL73eD6Oei2$D{;22M+EM`Lc*h0E3yimc7ES73ZFE-b$NEu8!K zx^erANe}~B@ca{A;BELrrq!m0YV^C5A^?{v}3uoVFBpKmYEBN&Y<=()6!C+(yXQT4Xg;`wJBM;Q zQU7)M(R;0Dzv%dI1q)Qjv)giG+;Y+Db;)9NYAL<_nWiY_?k+kCK`ME$Y1SyjT1}>d zB$9im^_obgJ!qnMi1~YtivK%uJJs#ADm1&|@4eNVxd*#>#Q3Kav_9qwdI7^9f4AO+ z9z34MI#WyDWnw=j!Q2DlMuf^eA2AVA{AWCBmwm!L)zdr^u|3RSUQGs`NrIl^5^eyy z2j#q*sI6N^I=8~V*O7m5EKjfJ)Sg)VJp}!~nEr4g;kL@Ud;%Hxq?$hu$30|dK3Ca0 zd4#*GYQAuex>uV&C!%=LKUhzTxexxCva|QFBlqbjyYBdl;~YR*i1M_6;${3Z&!!bk ze$e7tmvVK{Q_Q2wI_dB6ZDeTL^l0!|H$fFqWD_4;w=B*-QaK;f(@ge zaXmmmrGvd85k1aC_64GTVHfkbG|UhEOvi}Zc4;UY{pE*~&k@b;K+s1PqGAu_9nlz? zUuHBFPBi^-MEpE*6%8pMzcI`=gi_T%(|&ycSR7`cBjsR;G%ERt#qxQ7*`#Zb)!oTb z#Yi&gIV6QntxTzeNBjwUO(~cc>jbd{ziKIj);d+Lf~{CLo#2nm#_3$mW;?wBe$&6Y z%k7Tf|6tc4p7WRL?U86$8`6u{f(7O?R%DZRr>aG|?K0|&+G~P~zjqqU&VMu?2Nsw3 znV~;BAJ@w>*}L)L+8*ZejdM(|ul(H|air9=&3J6zP5JM<&_!#GLTd24wZOD24x9Lq zL*zYiIzHiHV2AC?`-+qkqWZYToo^vkz(vj{s2`c~%iy1-fv*hF zuS}n)ZwwSV{pu|mf+-4+FYgM34u-NEuP26b&BQ+%o(fc|`W2}7oa8_V@A~Y&9a=z*YsUN%8cz#T6#m~tWCuRYn z>31$?57dV;DwZId&IWHFn}XUn&2)+!4ui4`JJ9ddSW1`l@z1l4D(Mz0PLN)5i*6## zrmC8bk7uge4+tv*I%{~UGzEz6AOWEh8s%(9a9fRGZ)f)Pd7S#NN|_lPM7hChSqxcc)!M8O4?55V z_+9HL^HJ<<80Nsw=AZWl*zebMzN;*f{H@ET`j)PG6t^TpN;}qF5VP5|i*Cv>W!c!DeUQH4% zcfJwlw#=Cq4{BwxK&&xkO=AT?_dS1BJs=M)mkE`0b;adxeC;P9#vhFvedDq`XRUI4 z2umvqW$Cmn>+woFt2AX?Oa3DgsQ4GBdAGgAQHpNdiT)j%Gv;hB`uzE0uOP~;NX@%)n;wn?95*3c1pO^ z1MkW^a3nFlxH@>PHxSx0oARAoaGLfr8y+~}T$hJ;q%l~_xIE{uXCGn5;91!iS7G}l7qe}!MX7cW z=PQpO$7yjYOFQvy+jd-6{$oyLfQV9(dIJ9AS;mMv4BS$`jbP3%xQ01hHxx9f9LWd| zB+{vVCdD)!r@)0^rXKR@@D7)0(p6cAv3y#>}6XJ*FDUV8p`>%I&zM=1xpqnQm2) zbo*tRMpT}~h4)v(0T znbF{mWhO~ft6tPLjXbaEu5vZItem%%Kaa33Zr{68gHK`F2g{I`RZSc3^D6)8^>NgD zbz@OE8hR}}`f>*rqJZi_!P+26zn+6Kj$2LPEBZysXvVT|SBK)Ui0WY(z*vp0{w>LR zrgaKR8}dKsg;Tik7Oh;-k(x|2LixK__h!&ESTa05l#cdCpzK^=$EHe3% z*KZSVOOmdtf1gZK3BMtx6FL`wG+(f@dnBUz#2ER_g=&Ot*m2^IHOQ61?%=fL2EtwB ze|Li?Z8QDy^3|(~CQ7Z<$d#XO%rqzpC3CI4$`zafN|M z$vkC^(Fgyv09+TE3MK6Ej%{?@S{@f@40L2A$LBK!HUbSw!3M%>$M@Ma|-(MU&3_<%G&Bp_Wshv?t+L6|;bulwxmmA9{XWu!;F9jG z7zQ3o5Rz^5uYcsATsMLVKleHD)Gm}doM3%7IYDtY)jY4y4{eYeCfz% zh;=w?1cGTs*tWr%9~!o*C`oiL2{Y#ib1ZX&*h=3(~ZfNF%Fr=j-+4 z{t@CAWS(HsLa}T4t2xMs_v8n{w-XZl!W=TfGh}lOxYTJ4cpE_S2MNsw7Vy z3uAeI1xa9M<%sCZ_g(4=J)%r~znqmFbtwEN*+D#`&t8UpzKgJPlJp89uixV3=R|)h zG^?Q-h->;cSRn`s6mR^A5#qzt7r7(~hWK82RUrV&&hL-ht$bZtX)at=)~m_hMxEYBJC+`pN&{Nz-*}SECP4g1 zej`V%{rI>8gUfv0A!5>o|y- ziw#-^q=F=#5xm;x`l?7Eq(1LwKA_Dy1n`fixUO+j-K|r0leijJ)*{ z%K!9{*wC|g#f#2`sHB9qd_t*~3ie80q}JlMYuYuj6CvOneRUd4T{|+IO)`m6Lzw|h z0BMm#$F5Z3do6|jERq>%1GK_&GgmL?u{~Eyeiu*vlMmJ>jtj{{G=21ref)y$i*s$W z&tyCosYuA*PN6W0x-J3=-SiClH68 zVx|UaCax{6*fPy~a*b@Dfk@(#bT;ZmzO9Hk_tUOyV!q-4Z6(W|tI?l_=G}A4GDCb) ze~Dss?NFdHtw&~|pE%7alG(RX^BsPwXtol+fnl>AQz@b&B@qkk#1gth3N4NO0HbnK zKdA0?=~E894TX7d={s9#ZgL_iBlG^7Q5HRoSCBpu(^BYBn5_N#z;#zw*3X>G^U_sQIvgMOWWemnA;^;tQj-z-e~Fd~&)u|d-`(=@)O%&o>;k*btKo57ns zPbSgAC_yQ7Q-lQfZ&e5%Sar}A?&85t_N7_(!yL`$-$;xeHvZg$$L zsGO8|hDx&|`U{I?$DO_sIyXl1lw}L+_{yZ9lYAnpGN;P=P5LB18d-tLOzp(L8tM`! z%cgkW5QrRlC~+ z7_7!vHgwv4c-nqlxwf6#^H$ZfdzzA;+zHRDfe!)_fd*ok2EKy^1(=6AB!-Yd73gO} z`phF{pb@DV4zA7w22W_1PdX zJQ0RA+;S0b1#Cv9e@2Gt@A(-k=tOhbY=Q+kk?oqL*#M0+rv5A4Ri0L>gLDnc>hW;2 z!ak1MQ(0rxR&PM)XZeo!%kd`UPYC)`ZS}^zXi-rt1iwsId*$Cu-`oRClE4g0XlE~N zO~(sAe-xQ*%x;d~ zMKIHLw>w751kzJ!7Al;Pje?a{)EnkTqX1(c-{p%2vxqAOc?MnAeFu`NVcaLLW%A0X z>fB0rs91Ef`iLc}N*=eI77$GYNA4`y&sIzNGN_5k1=4fBjwls^N!5t`pzasdwaoJf_aXAgJf2GS z=%(Kwqyit`v&MLt9!jc_q(j@Xh;FposTS}OiwQCnLx+}ziMZyOEwM5M_ok3=GO)99pM*B<7JqBXp7lt1sTln8}rpB$Gl|E|;v2}4h| zD1+TfGL(Z_p3Dj(?_tSOpBKc{t*hEfLyC$ysxwb(If5dKYSFJAXVUw=MIROoeK)a@ zA*oK$wDZ+o(h%lZQ?qtiK_874`p;D-LCkvzqT^r|$vdmIen8-B+KBX||EM zf|y2xf-_BtN7;x;DZbw^Vy*{a>D{V>h$I);<@PpcEjL0Hogj$;7S9yEtUmlJ1xIbd zHpC>HPMRwO?3yK4(XduYC0H}W^@79AQUak+%3WImzlV@l5_}4^m+oc3wU=}2&yJs@ zgu0{&?VV38l@?{9SEMoQU=mBIJWDSQsmsbO%u&o7qHe5IiMj)IXEj;-H7fYk}J2^@Jh;rVBO%NWW1esbKny;EmWd}Bc4W0DZu<{R2i_pcSECR^t zXgH;@REV-2hsgy!*2lK$9Cd_yJAEN;x&3BYvN_+95AgNq1g86`u;=4pmWzHu6~$1^$IdS~8hA+QzT#JGV=us|8V4qDrg zRp9Lpf-T__*m|Yz2kqqews?YN77OPs%28Z$ly}NhHyK6Sekh>a>_gbZgiIxAAQu!W) zA!!k&U;%`293z4$@H+v+?DzFRS7sw(Uac|h)cQnMkO^hg+Jq5TeHs*GD$E2KWgoy6 z5Uzsx;h?Cuy@Q78;?~BzIxDc{mX>;77CYy6Db=-GYY$e915yE8ejR7rvFf?dyCj?D z(XC|`ug0cCRu7_}+1A%w?N+u9IYZ|D7}GY+h|$p#H$Q~lEq~_fjG=oc;ojLWTV2*-B;EjhV}a;N(UCJ4-)431%7%T(uJKHUKbSV#od8iYHLJ2wTXaX#5B>2 z`}?o-e7f9f%g5L{FBBg`v|x|!Yx(*Ba=xvt9`63F90Z!JKN9(@MnkQxe?weJwjN{K z`gz{!BZ8;&E{FjAv%~e?E3yXElC_=r{ukwP>S{|05>9O8Vl4@mPKC;2zo5-2gv z*i?T`q1>}4#bNILw8@7d{c|xSsFO4QzVL6@J**)EY-7&W`fJ8t!714ck5K(VRM!IHiBsJvag|SKavB>nQUXn+HCB7oi7e@ zz6pU^vjA#i3HaR3yK{Z$yPIMS%a5FaH537d+tw9dQ_H+e=$DV~&F167AT!l~BMt7Z z2k>9l@O6|({YuK&?sGrlm+gVKhb|!7dipka9H*s!mVH-w$`y?}K({Ovqv z)NA9Q%C*oo*RGJ4bVKe>yKG0gtwsgcNxNUi@)xqZbbr>9Pnw_tYTn;NEs(Rh+_R!N z1&fww-?L)qe@5=Hb}=XozAH9xqZzrb%~@;b_6FW-TOU2ZBYGFXie0N1_HH96xlK0q zJ|ssM!5Ha{C+XH^v$i!C6RG@733t4v)Qb0WReIO?{x;^Kf={H9o0sXfz8iDjQ6~&u z{F9OoH#2&|CM$ay^VPfmXbM86qFS0t&G}8g`g@Fp=RVq*cds%Sc*1kJt|=?J@5$Qx z44QM@ueX9=DdD}3gI*d_6AxYHOTAkA-sDd)B|RVdwQtTI-Wqr4d>%vNRu1;6H zvhjQn)4fjrcr}H4O_uo&NcyTg24i60`-9tOiDx1d^q{UrK4Dz~f`}}TD8>L3^uer;K`ci>TvEYtoWcKjXz{KFvs(mzd<=LL zb^RXbyH@5)VBv@VGeq<;i0dXU~iAcW^J5U?67PY^2D7N|BB%mE1bN?}d!7?e+? z@~z%Qb}Z!QW2kO=Fy~`fs%xmdMYw=eI7fQ8BSDCMM7Y~y7{YAWk(musU|4ja99q3x zr@6m2>?l;rBUI@qgjXt3r94z5JzOb0FljaXS43nSL8z8Rs5gCh5Nkw;h39{q&U=jt z26aJQbdlK+p^0sgsuqzgKciXbqYBES8y>?8Q6uvsf*S#mDuC!D3#9VZuvYiaQOPb3 zVV{8({sA7*!|5^EfS9$%a0nnczAdsqDtgQU=8NA;}(baczLpwvgY3?zBs)-`IeQkH8J7xaIP=?R4O0 zt;m7&*p-Nw^`q#w^th+hAe8nH*a!2sFM%{yv6rZ^x8ct=QW3`zNh}#j5|+tak#UmmQYz0V5ow38wupK$A;$JZInNY8Mv8WO z3eUgfBaNVEXZgCvcwMbjGtX4h_9R(?6o$ZvHWeBD410@TX)ao6NP;9OWZ<2huStYvnfrPpSp3n;;*uF0b9 zIHM$3v@v9~MrMk(XH6Za#YftWMP`m`MW7&I>D>u@b;#0@Ylt^crJ(G)Il1y(F^NWu%&BMS(K;%KZ2X)=qG zjtUfbibyky6?sA!D~r`mia90<7&=PitV&qWi*#j*lpeFOql&~cvrm3~F7~8941K>Z z1=vLSUpq41?Na|~m(V^HDrJ@!WtK29mZ)_UsG}F5XqSDw@2CPPL@= zhXqEss-wM%rz=65l^_-w(6~0p15#ab0?O+E?RC_gW!7v});zXXL$u-etP($P|6txO{eth0e&vX(-&fv>a9 z`4U0!5?hG(gWzQ&zjqTKaWy(nFsik@o4Gn$X0-^ielWs8#=UF}AZ`n= zt{Ub<@r-Uk=&N_>Y*C1AMkt7yDHlj8j*^pY1bR0!Mz@B0H#x_*;Zd~Z6L-LrbhDzH z_9NR}tlJg68?SHVREJc#JKM^u+E|!ybagtYp0SNC+Y8n^^NEp(4BOgx8)S$(>pP2@ zts7xVSc2iQ!V>~^vYkNL*59mMRJO)7 zngpkD&xeT?6y@&i(?+7Y?t6?5>&xz&)9RhO7PP=FdnR}RX&fpFRg$bO8pqD(&Jt$| z;e2X@0g=7K(qjXoUR0sm+0C)xg@*Z{{J$BG&2?t}}`ohW~4 z?#P~O$e!F;8bPcd&UYn@1HR%&cJ0|17GX9qc$d?auXXi6XhGzXW3x>m$n(csfDxmT?`!MsVUaW za!DQfNH<+~XI%K0dy|S{~b>eC4K0=AM1xU=ZbjOXD#9;%%PfF&@_}UglKJ<}^O%bY99? zuH{_b<><5C&Q0V*E&$Li0Mp6F<;y$)XGiazO$ZpvURxRda=N$%oo z{p2k^=lf0QJ8s&2?%d2RJ=j3tUEbf(E$X!G=x(0plCJ1v4hHirx*NdhXwK;n9=f%? z>$v^tb`AzQPR)gG$F5%L?0r57pz48+>~~D)0$|#%egOh7?XP|4l#b)vPU4G>=G;!} zU{C^po9QPk&STEv;STGSUdnwi36t;-<{rUt&hBqM>5dNWpkCZBJ=%#4?E;|esht2o z9zM+b*8UID9_EX-Hzxh59@F)^7#(Q)&HK@Gf(JPEb0QE)frAcfbQq~EfCjk?KUs;6R+-`p5%wH z?uvd0WuEj*4+fWh!h!n?Nl)oW9`a=l2;#ii9p4A{J_l7l>=f_lOuy|VK;CqG?KZFQ z);`)fpVg;MI6WWe)O_>zY!2$TB>?t^ zU&>|Q&5?fyT7U8su=QAs_>u4CoB#M=5BZYc_kMo}CGhV-Z`!jx?FvuFZ{N&2FFpu= z*wfDN)b7b@FU{8u^p*$qIDYtj|NDXO_<#TVORw>efB6I9@hFeQAn*5Bzv6-q{C}M3 z$$!G}p6I(f<$nBd`4-e&VHX(6rCkxla(--ulh_&)sy%u}{g^{?xZ0^s~?K zmN)Uxzw&?Y`{51{hXl?61Ljacf`{fDJUA!Jze)cnNc=}}QW!u73mP;iP-8(r8zxa8 zIk93yl6^i7Ech`YOE3guDvZgIam; zPNiDaYQ<_Ilx~$#QK$f+J$Zr!+w{VPFf$nnY^jmv!k7ycdi2O~Z3&Y@BUZe?DC63e z9S?hvj=XxPhOjUv^`6~vd=M@31$cMw$Q^Y4qvUiw4%2{L$~P$Ab4hf2?eSwGT?yy}x?)*#xq!ILe&L>z@mr z*`NeK0O_NT5;h0}rKyVZPdDrsGA=s0jHAn-0=pyYHSa9j$tV%rD=)S6T6FQnpZxiU zDb8k0kwu@%`f5b7;uA3p{c7t?zv70pE;k_s+)qf`lB5Qrlb~YmtO>8WppPIeR8mPJ znJkD&CX2MLKp#h}k2SHhQ1M2sPID7RIO7a0h<~<9;ItWM?5aK;%j~htf51G_LL##i zP|z)p?EkIG=AvRQBIcr$w4wrv^v^m%1szn=OpDykO#65Qbu2YGLrPE1UXXKDR-bal zJ*~8=Q>pND1T{WClgqNpE;H@5P$$FezN5J=Dk&h?P=OW1*aM5n=6Lil#=os|1w3 zm}$U8GvjHdY}|9Hbn8|etgLnZ+Ut7{m3(XcPCDE2v}b-4<_k)gx6@}0e%x1{1*Cg% zYxSftPrM~g;2&4aa3*ltuX1Mau3|+RZ>Sqaz3P8hhTHL;ix;y1L;NkY0 z+2&;SLnV7nZe9aal&=I9rqi(xEM;I_;cWE4qz!I%;0HqpWq*6&$p%UoLKxyqcnMS>12x#Y?ZwUv;HY2^|3R+7nZbJ*L|OuR z*FjO;EQU*DqNa300zdqO1SIfW6Rl`P8nW+!HZmg8^3*r;`LKc)3?mUYh&LqisBu?h zV;kN0M(JfSduQAo5p^g;Wr%TnP75LtZ^*$kk|hIs5ELPcM@U10DUnQCWFZlGNKGxW zk&!gy9ws?SN*Yp*zx&7Qh6q6~-tmWeq}?=vh`~SdE>D3JWF#4B$t7YElQ@H=kRB+$8GCkjmZ7=#H|J5h($8O2YNdk78jZPkb3dT>tV?k-hw7 zA-$7ISgO^y3YeS%behGh@(H-}WH5%4!B`oY!Ca*MteOH~=QK08%zrq;9P-2%87mS^4T9279ULS?%b87Z z3e=?L1STbiS<96wG?5DB=Rz+zPKRoG4alb{TZXhUUcPL(n=tG@K7N})PalWx_kFXbgq>vq0&233gWBWh7urS z&4@o$!3uz?-yXiZz%#h!MtRsE}0O)FZ^3e>FHtLOJ>+moTnb*S;IY>Siu z*R}oxZ>$3)AX%wT)h73^$z3f}MGIT##&)!@HLP;`YRTEQ52&^^<4*&D%w=zT-TPYVzW2THwPXQ2YsN03Pif+FT7Sa}BmVw_zcmowaJ{(MyQ){d z3kEEG8T?=fH+T=(tr`P8nO_{{iNG5ca1ET%%>Skbt^?+1Q;k5bjSS>+(Q!se zUf=J?9EvB0;Uy#NQsjojvK!@44`+w8+vZ0&11nas96IKdy?YcD5U=E)Xzvyq+e zF2DTWG%q&6na$-}7kl9+*R-eMt#WLWoQrGb_O?CFVU1HoMo))2tk=BlR==*yX*Rja zO-}84^Saq$=ef?Mtn*y|{NKlBJI&8t_Gc4Y?EIcP+4~)HHi&uFUm&k%y}o-lhb1}JQ=&bnrlEd@IFMlzF(^{ z3k0+3dqDT|HwmP^>$?RDl(7!fw_>}6?5n=>gTCrh!R-5o$eX3H-Z1r^CJe z^S_?xxZfMV8x*;s+q9!YzytgTDQLcaOF|M%LFS{rBs{;n8$S&^HYRjJ&?CVq^feSr z!VhdfDeOS=vn1%tz7*8LvSY$3%Rbhd!T%WCIs^nX9UDGv!@=A8y=maV{{uh)bi6tY z1yBeyc!NPeBSb-zwto=8@-ss(R6_TgK1F;)6r4Ur6hRc6KoHDCDQLjv>p~G6za-qm z?Q6tI%tTC7KT=e~PXt9q?8HbkLqmkOK!iO5d@=&;L&w`c{?o&r@I5}n#X5W)K$}Hb ztVLQx!ca`cOH4*4T*gf_!!?{hR(!@3q()8*#Z_!YXlz7o?8Z`L#%F{=aD+rP6h&u* zL1HY#A{<87n?(ytfX~1`7=XtF(8Z_o!G8cT9y~HUyE6fUfq4wMI|0ae6h>M+NQ6wp zaim6N#KuYNLU6=JX3R!wgvfEE$p414NKbr5i;PHy+{BKI$XG;3l9a;>1HyEJ0bT4z z!pkULbV(B1FvTM(lmtjms)&-z$wCB4kc3E$#71fKNN^0wZfr=2oJffzN}*gzr7TLO zOu~`WNm`u4fV4e&yp#Q#9dP3?@zFhUJG>F=$0E~8I}Evz+cv2z$qZ=9rS!<4l*Xo1 zO16ATW_-)GtV_IP%ef526i7>w)V8XeM;ug1sLLn<>o@^}D_(R4#@sL-GBr6H%(BEu zzdXncXiK?_OGd=RCDcr9+{SX;#=X4DHH^s7^vI~J%t9PYk{d{@kxYiPBt{0ZN#HC`g8YX8tq9$0(Agxa!;8A>gizhgPTZ7G^d!i6 z4A7&a%wzxs6cx0dfVX6TL1ZjZCw)>Vjncd9%OkA_P@v4CTT*F5Q4}o$3B5)CghzrL zP}(e0+{{tLTTtCJQ~w@a)BhCH7xm8q6f{6XQ6?=!Ee(Yw{f8snNh$qPKn+y-Oj1IG zK`vd=Kk!~AT7@|UDGzb&Kn)FJepKZom3d82LFu57bUsRNCrE-Qk>*c zoa9qdy;3^;2MrZeSdCRdO#yV|Q&UydMWs_x)l-~YQAmAJASKgH9afDSR%3Mr-vm(e zlu+LkG$ZW^F6GrCWz?Pk1y=n6SG}I*})nvd{f?ZjbO~!6@R)6JF zUNzDyHPUh|Qk*^4dHm621xR7dSjJ3Hj#AS~l~*~X*H7)FY7k65ZQ62eifOgkXEoK9 zt=g4!+K;u_Ri##Pwbonp(xfFoU{zP3-O)L7*Lii*0R0J$C0T3zSd^{Vx4l`K4Opwa z+gP<#M5S4rHC39GT9O6Zf$Z6yZPTJX&>ij0qPkeLg-~S`%)%X2M5R`ojoWg)Qj)C* zyxrVb?bgZ#+^tR_T^YqrU}f8*wbGjP*R9RkA|+Sc zHBy!3T>s#eQiI)H+}&NTwbkA=-YX^C$X#0*1+QrUui42%9{sP2iQebUL+zcQ=$&51 z^vz{GTHkyfL`7NSwScbm+O9>}-wj^(Ez#i>-M>}e^qpHH1w1)*-lQd4XP{oj#9o*5 zUH}dPeUzto!d~j_i9GDz>P_I!SX#FAO^>DDtfgNHR$pvI!X=P`4d!4DUIGm^QKsSn8V2DGHc=MV<2SB|9yZ}S{^KSM;y|upAx?TKno*P$4MsJP-C41#fUro&6%1>R!pl+o@5uSd<_QvL@AIAio(Woxwn z^nK(EzGFQ`Mp_PJAr8eMPDV9WV_e2#8@A&S{$m=>b!1y;6Junk`@KIJQ};@EY`D;}lF(%w)8KZJXBZx72i~*X0Lr^My6kP{sJHl z*gO{DAYOu0aN#$;VLJw5dzOM!fa9L{<6Yk8e?DOm*5O1R&9Sf}`^=NcPWogFfmqy<&SmR@+X*|AZ z6Se7^w&|SK+?u9oKThPE7U~}+YMs_;A2#Zvw&|q);hp|q5ME^Ub!UurWoaIYrG4NC z290md!vgjpq2=PK@Kh(3WdHP3My6_3u4W8o>SJ!|qlRm@25PyEYoK=OomT3({%NIN z=%rrjpk9I$aA(4XX{w&;Tdm!W)@rE;X}7vm_4sJ#CF`D8XRBsswm$53wt$(&>%A^& zr2cEbrfa57g*8rvd|qfDHf=vPZG3j>z{cx=9&OhaYNHe_V? z0@fpAppzg7>t1Y%zoBH7UfM~jQu70uON4PH?AoaGf6T+BR(lPvOC)=JC#G@ec1-#$U2dZ?b0Yq4=BQ9&xCEYzjI& z<4$hgI_?q&=bxZ#5yuMKt!h{PhqcBB-9}$B=xp!)aUc(JA@6QfpkFfBZU2sD`YnU{ z{%x!vYgPG)62BN1hjAFMav!=;7k}}mSaGL#?htS8^R5Uo0EHueW&eE8@$klnkL7U- zD02`Payg%KIuG(J00n%oRy99z9mjJr*z+TA&BR7jW!820s7v zKG*Q-o^=ag@}58jFt=~!PEaqe@-1I<6tA61Uvy;e#Yz|UM8}5n5b;Tlc26z!YX0*# zH*8lfbFYvTtT1_yys|8q6R@H5ZzGtYKvW^yNg za{K-vDkt$#^74OI_V*T-JmU9Z2j>?*c46mtO@DS|pz&(h^#4o8@ieypd>{ipcXK|! zcz><yqz!uXlBK z|8uEV^NYXIJb&|0$8n3dW{<9UWSIC6$A&{^c1b6Coj3S_H!8gE_kQ2`qvvvc$9ZRG zXPhrg0eC*zQnznq;|8dVxg)AV0 ze{cfD|M;jk{69DRsz>?OcXDaRbYK{SWk>pB*Lf_z82?9SnxQ{>gva}T=ldTzJWqZ0 zOMmWXpX6Ft{li~;tAGCJ$9OjXhh;c$TnK&4_x#Z3e4Ebx?WX+A2Y>Kig7VLN?>B$$ zPyg;0@X~+&#ixGxkN?BJcm{g-EZLfB%Txn~3|m{0 zD&=C!4a6PDB?}%|tX72p5Gw01V$Gd!K`@2jhqqDGY@BTgf`10q|uW$eU{9`O= z-u{j=Eg6}i#nwM7Rf7yND#9MDHWfxpE!)XX%hKMOv zU3C^pIT3VFDwY>=6G~_xFuoc2m}N1_DF38+WX>4lnLCyx=6Gwu*k77El36C3V&=qK zmm9jT9d4}J30h`lbh%(l35M8`lEx+Kx#fX+DtH;Yg#TxO6RpJTKS~0OD8P)``wy`C7RGPAi;6VS&LVXg zb3|Vn>@tnFRqNlS7>f#O#}d(IF?j*1Y%;1STMBX2WOyC%w4t>KYmFXLy)w!om&_ou z3Vtc6(DGV%7|=cowzI$U7S^|01LyfR*O+0OQ^%NPd@98rGrn@+V`EJ5#H})JdF5Yg z&1po1D^3QUbi0MLLCC~w_k|+aYfNBz3zoO*6mho_?Jfydva{70XxHTV(fZvTamxwmcQD!!qGTM@-2ger zxvk~yQ~I648tX}6l$UP+b?s+S#TJoj_!aYtTgww)b_9&RZ$*pa9 z8f@beUBW^Aoyr{q8{NBVH?Y&0QH;uXUvn_|5QEX~i!e-MmmJ{821?L_qy*po=7`Gi zC6Sf6TcrWVCr46Bu>Xh^v863Vh)b)b(t^G;r4(0L%8Sr4m&{_<(F8`fpGCwNu;UkV zoY}KV>I;*|Oy3v((T}9r&y~BA;sy=az*y2!FsY2?7G=3a3!ajfrVMB9^w-K>mJ^jl z9A`Y|`OZ>;Ga?C6BTB%yO_XHwBATS;ln$Cn+4ZBLv!We9XBN(HQgodCq-Ye&2~1ep zGne*^Vmd8)PJGH!q!UfzH{prWlESj2C#~p7;Tcd!66}1VQ=dejSrLfvw3*H9sTnT` zG@x#hBF=mt(Af1wPa345I9-VY{xOD>%2b}U#AixjDpIZ9bE_}Ksw;H~R+CP2qo@36 zEmew9UT(Fbt^dGgfxw7UoE|KvKE3O5a_UUI8kJ|294cOUny+U*L~yn1N0$(b*wGCX zdA;0XMZp=&euk8z9L=apv&u@0S~jC?ZKYT}d)Co*G?*5&;_uw?hDZ|BV2xdgKzBOE z+2*x5hl*VpYrC9i?zXp^jOJbqGEHrE60rzEY*V!Nc-O z&22Sjt5aiSB)`xk>R=zKpn;VxaOWH7f@Fcv2~)Vj{%q04h)wW*Tufei>0gY(YCo@9WVH%|4b(71gFh^1~h3yPORWE zyiMfF^~N)E%VHba+WFR(ZtA=8d~2L#8XI?h^mFJ;1tw*=E}5|s$#HCLn%MiIu)iQC z@L&zB;^FG;#k@svf~kb!5CiMQGg~roVasFDHCAR0RVI>goZJf!?8j@KRf53CTAHm{ zn-~T%7avSzA|qLbC$wGsq+HO}#+O}z1~imUsAC<&*OT$hacg6S(^mt!&nbpTMtas$ z1b-N)L=D!Vf(x`u3b&{Q7Pe7^s@nxgIU){a@}$=cW`Zu3c3iG+vp-4D#L7@oG>x=< z7ytb(Knql$5BB16pG;hTs=LZi9(0+FJSzw{Th^8yvTN5Z*K8_?bUWtaHV^FAhuHa7 z2DhtUbFGZq1`D|U-K}5=tn0lJyV#cm7O^Y7Wq=bI)I3)1wuM~R3|HA;oP4rkO+9iH z<~VTLF1L{--PC0=yRpZuE0xtK-$&Y<*)SaFrk%Z1ODD+6GAB3DCAHk7H=8*^t$1yf zv1h4QJkJkNHl3#=)Zhx2>e7Vxho7EniC^3tex8VN2U_hV7y8|CRdt);Yvkmz`pWUW zG3kmd>6V*(U|pu^tOy$Sm>oLrY2+q^Ckb^pxk zmf~Q?HLfqt@Ipboz-B)->jZoC67y8qEM&1$muzDp1De@qG_s5d-)%0=oo3>eb(YT@ z_zYKM?>C2aqic#>yf-zOwts5T^FC&|o7v>wzIWq=9(a6L+QrLJwu_~i@m}Y5^(<~C zu}3eZ*5%6_88^H8bM0Sg_SzrE_6ON9U+O>4J=T>YN(DPZkjALLa8LRu}puvoTaM53|Ib!As;t=i^#)aK~1;(LBo%$69=kZn^E*v1X;BFD& z4YE#PoSq<3-S_>W3=$wImKmg>UGQ<@C{|&i2}Yu2+Ag9Xp-IWNgPEw2eGjq&s5@V z!I?SWU#?~3))nD@1(!JD-$aO96rS0I(H#IHq`-jUm0g6&B_1g@2OF{>VL0C8$(>G0 zVZQZa2+B?p#^NSkL>**aZ&~CdB4Hjv1jFT5{K1(bvLDw~i2V^^`2B zB|&2$>K4ZR9;`_eC$(fhCSL`5fJNjUs7{+W%;d0_l?0D3neFkuE8c=ID;z zsBA{WmELHR_NbN)sg7nTj)G~H3Tc%>X_6}GmG{5IsOWPWn(mcogrQ%YF^z)ZjwYUoIg;ec;297 zwr56Wq9c!HwvO;<_o409BCTFt6p40u>b3?Or)YxXoz~>c)HkGek;^5hdIE5 zWJ+cWlIVMWYga;Ry@F+>j-;rzXR;C@3*BcRiX*qGpL{~&V!Uto*oy4q?wMc!;`zzzpb}v;0{>#`gr~y3pf_@A*jB2=WrU`VWb3)85V{yk zPOJMNVOJ`xR|3o1a;rpCs*Cz6WnyD}=Gut%ZmDJjI2Ie|dY{xPE%FxIc}Aq}CM(r_ zqu>JWH->H2?y5KjYV{VIyt0^MQtvX>r>eFm*Rdqx{tC;Qrf~gk!%izk;kTa?yJNKE_#M$dr~ZWN-h0Plkxi2ZGEbV zl4PJVElB3--?HRm?rS1iY>3t@=QVK22I_}KFt!5fz>(yyI&6l%ABU1?cTU9oO2oH5 zgky&2(Bdz|&TkItaJQP}58tN*pZ}lxiszxeE3Y10frVoQ%U@@nt)mud;<_fsR; z>$YkU?&;y~ETckfqaLoO)+_UJuB-}fMf9))vt-S}@qOlO$7*Os8k~D-qr8ru8y{SV zerPhTOA^Txq5G;psXd==v9c!)54l)b_ zv1qdK%r5UCmg*4qvdEI<1>-LLLhaJ}Ft=8*{GIH4RzwKHZwXt(X=>-w_OLVW@ZpB0 z`bp$D@A2qiG0m#3=H}Je8viQQA}_;vRLMG z8Sk+WOXkl?1p0RBG^VD)Ega7V+pGE&624~)e=;g_F4rzI(CYAV$fux+tS!5ypI!ts z?($=TXdE*y>PiI9axSuBYU{x2>S?nLLvy+AClN~JzIvt8)+_4XEF^nx+IF-)gE2(o zF2Vk)qnap0i!K>Eb2!fQOkc3v4zKe%GmOILtzztYdap`A&@C(m+d@-7tb?o7Y0|Mpk;3brV-Z77xa2J#F`%(n+_MjJc^gyRI{80o80a!=l zZzQWVR^u>WpEgCfEobW|H#;{(d-6z^Q6r!BpGJ0H>+l`l>u?Ed*I{*ws$XWK_ra-m z!)_-s|!83tJpyzBX*rcJng0$yRe! z^R-BSa`Fn8;#HhMp__X5~;H}z!#ZFrWdGp8-WF7Ed#@I>&jC42N^vp8$_ z@&fy|TWcdJhyU(yaj{*8uyvpJXzzG&zxIE7v6Fu^3pTTm^L4Ivv3}e2mcKWK3x=)5 zuYz+nCl8mE2RIzdI7yE*Clf|(_jn{@d12#tn-8|H0vPQows2=Pd0S{bFL;d~TsyaU zil4KVoA-_jhJaL4 zH-)$PmLIo+FRoW&`IlSxvR8V5KeUPmdFG~htz)~cE4q{Gpo&p8=by$gGYC%m8^yq#AP zyED9Pt$BkoySS?mzLR^rSA2^P29{Gg$47f}fPBbne92eXG(!8vpFGRAyvx6Q>=Zf7 z&%EmpHqGDsyyHB~OT5naywCqU%?AVkA^8La0|5U3EO7uy0676n0RRa90RIUbNU)&6 zg9sBUG#E`_w1#;I_WC!G;JAnbCpKL8Z)2W3 z+EQ%GivM0DVX4XB+JA}GuHCrM-oY0yI(3qYuX#D*g4~heaucT~P?SgqLILs0QMSMYT8IYXudU(1;Flcn~=+vZ$kO?Hy&5e*=w{ z5MAlqXQYA!RU{rk4sj!~^)Mlsd(R5&}xJJsUQQ9H8 z5(K#h`=408Zh6w3O1-KQJOU+h6IupE1Rk{e&88(mkQ!8_g48Z&*FVekG>|=5QJbW& zff@Qwv7QEcQm_9gyO6ovDMX$^9u{?`wF-S}PyhtEfUaYV7AT`Y2;Qkul?s_Q5Wom6 z$&n}vS*4P9H32zri|Zcbs7oI!REt5`5QIrf3?qs0Kn^IB@L~&@blg8}Lbq{OoY@w# zn?p_TkHrU-TvJ6kF`QCEW5%@HA2$Pb=t7_(^zutlqqcHFKsUXjx~*AeYrHX)37Nx~ zu>`D3WRZ42idq-NUV|ZRtqCd;{GFX+e4|l^Gfo8 z%~Ie3WxEhGCmU1_4@M=!?29gq^|(k|>;gcdcYI@-wMhdg?OKjs5q4 zQB1Kxk`z=v_~@sv{`%~<@BaJn$1nf<^w)3y{rKmv|Ni{<@BjY*44?o9NWcOb@PG(R zpaK`jzy><-fe?(K1Sd$r3R>`j7|fssH^{*bdhmlF450`|NWv1D@PsH#AqcG^E*55O zAQsCS&j9Q0Bl{$A*qeh8!=e*kjVY@JdW`oZRBH1(itd#VE*WI@d6%w-y6l!FQ80GsK>I<|5l(R_(E*C@zv4#b>Y=?6OP zXHIi!Q=H7C$ve5C%{me?bkt1aO7KYkPK7vfo(fqfhyePJz9CPbLV+Y7+XzineiJhM zGzu9BYCwd(l9$yCXhAIcM^>@~oAW$lKi#;%bw>1@nY<`R>Uk14ax^BEB@KjhI%umN^lh|ou(G$hYVfL50XjkU>W{V z4F!6Sf)t&q`nD?8vYIthh{-*MvLYJnGuX+uv z*1-7C^x1WTbvUeG7t2_A*6*Z(DS<#FOAyLdcCwW%foA_fSLxH^bW1aDuJ7hync9DA=5zNQF{h125RS`+c#4;d@{QLzun_hOvz|9OCyf z*uy;za(frS2*7kxeY8!2p*2#tQI32Bs2jO*wlYh7icF z7r}2gq&eFE=5D|RKJfCU`QHT>IGhviZ-h&m;Y0Sf#Jj727<_vu_cm3%2NH%D{Da>I z2RXqT-td06nBXA)4|&Qbo?VfbyyX2xdCC#7@_vgv<~Db@%MqS(mA|~=J~%PP*$2yi z#v}ti@HokPo^zeoyt_39sF z4fdBao#!)u`_d17a^Ai@~pT-0Y? z^tj)x=}`}Q+zYqzx7R%7X+Qkh>)!X57yjrML3od!^7ZyM$`=;Tc+2bl_sF+9??JEq z(Az%u$`8H&Z<+4-?;qc{y|upghwuH}Hs1%W_htTu8iV?80{z1!KJsgCe$Jm>|Lq5S zx%YO$mwfrhd$zY+xYc|X*8+!^ahc*r9Q9xIXMd?@eB-BpmiK+#$9d^@e#2FKOmwR#y2|fwPByou_^1r+~dzei}%E*JpY&_<;y`fwbp)0Qh<3=Xnfh zaTG*O76pUVw}A*)eAWkk9td1NSb!=xgUc0#{I`8qNQ57len;p7GEq(pWC+w}fytGI zAgEm6r-sCZeQrpFYnWU|=z9OqY3*ZIvR8rs5Ql#FhkzJ}f>>Nf=y5`KLP*DiYd46D z*ocn*=!k{Ldh)kG7odnS_=uR8iJC}Ug@}X>L|bQAf%mtGq*#iOXo>KbK(e$>7w`|3 zIEtnii?Zm3o#=@SG*n-(hcF0>v)GHi*ju&Of+h5VulS3`XpFV^4`JYd4ZD5O)Qa-BkMn4c1R03T=6nPpk700#0OUkpptF~lep!QX(*F%Xp?^b z=#dI>aWH|0|MP9~sE-JFe>8cFMcIf)nOjL&k-&A3Ai0ksc@mK1Q3&LG@d%48Ig@c{ zks67TS;>^M$dyW2Tr}C0#HEwrn3f!;Py5qMxp)$zh?6fllPJlNa=DUpIhSHNlPbxP zU%3THV3&C5mt6^%FG-jx$&wf;n0Q&38kv}fIhcXD1s?g72-%JTR8%gJjU2HFdpVa{ zDVBi=nz%KZqiL9d*_VR(mAQokS-F^_iI=5`nv*%3wt1R*>6)dvlDessEh(Ctsacx#NuLDzp9UJA zhnb&9pq}fQQL@C7ovEPnd7ubNp%!YP32LDAd7&KIp$5vJ3BiyP)Sm9?p(c8wD4L=w z8kliFp&)t?QHe>wbap4v0wjqLm^qOvx}!YWqdxkc%qE68IuJuDq8OD^_Cu90dJ^rp z2|xOzP#UEN`l2uze=0RVm^q{cA%;#WrC$1_K1!traic4>R}Oj-5b6V2dJtU-rf&MC z9xA3p`VVS4Z~Ze;8rbF7Ma2lwB8lOQLk|CL+eku?bP@Iqd)Q|t8rgRFa zLMo(l3aEp6sc>onlnSYaN~c?Dr^cBOnodPyuRctiYPAMB0wK+N@COs;`Qww>qh@YCnFp z5H@5UrA`toDLG!(^=9dai5gt*RQX^4g&~S*wZat*;uR z4&^@P#EiZgsoFZJuR5;;YogjN~qN%;duH*2a?+l~rL zr!M=o9{K}2YPRo*wjXK&Y}>Xb@B=ApqH3F>b8DbdOSKLAwN9(BMXR)kM;@aZDFGI- z|4^)X8&A`2%ok0urzZ?W(4nE46Qn1eSZClsmVS zTe+vpY)&h)d~2wTYpjXuv{uSa9N_>Lu((Pawtm~RircXAiMgjMx}z()fjPRsTe`#x zxB9RNJ}?8$`@GQmykaN;p^LVdo3_boz1Azd#!I}Y`?#Y2s}FliwYfXKvAej58&!FT zq-Qj~O`E=o+q=2zxY&EW_FK8wTfCOLz5A=ZCa?zo5WNCCz&;=W18}{?o51%AzS+yY z`isEFTe(sjyW|VM6&$t}e5C8k5xR@P9h|;=YplZixM~Z*`|G{Ho50|Eyea$xCcwD^ z9K!@G0WI9X3XH)?%TQ;>;n+Y zy)4YX5xl(*?7%v#56vsXF-?A?(Hkk--5Z0=w(R zP;AFOV8&D2zdfwSYh1&aD*<3U1A{yR0W82^e8>a;OtRIR#*Q4pBdo($OvcCC#^!6s z=-aseAOqN-!SvHcGSIsejLCRR#Z`>Pr_91V%*Sy1yaM6MGW^O33%!c$114a~sr<-g zoXb@_!SMUKqU^*2VFc`=t^#2M!A#1e{13d`%+8$413}1!?7RVd5Qa<;gq+B)Y{))v zz|Z{6&uq!ctjzyl1R?+o{zD$s5X#9s&TtIQ@XX5+u+4{i&AMC7Oip=JGRS5wMbZpQ&ozXp=)XjXj4($Uj&C3G-z#Jh4Sgq7dEzCNN zQ|fa_*kRBIUDk~|*1QbV3Q++S{mtTg(r}&2OD)sKY|zCVKmC9VBEZ&d?beB#*QspO z30v3TJOEmK5Qq)XhMm4_Ed%JBc$-|#R6W^;9ofgr5sVGf9O2oO%-K!d*CT?&gW^Xy zP1se9&{s{`V2uzJfYk9U*R)OAz`NHxP1wj>Rq*3S>+IW1%-ON+*@`{X|LoWcq1!*e z+g9z{{{RE|J8W44cR1Z)Z9(l^6k#_?b^W2KFZ|L*8SS^?cB3{5Voz* z5NZ(do!-`M1T`%`Fu>sGO#w~|;!NG&V;$iZ{?aC15Est4BHr5>9#8M%MN*yNMo`=> z-r_7S;y2#ea7)t6{Nu-);sn9MvEARtE#w1%xdQP6bI{{V&caRZ&l(WoPK@JLzPA)W z0S8XlGSF4=liwN6#2{|vIzHxD&f?766U)g zSIy}H;pcbG2ukkhn5*fTuHA#-kXPxQaMBdZ2eh?J!-_%~~w_fQ={@4i7 z=R=<4mrm_)Yw1j0=^C)>JKpP&p6puA=rZuv;N#(2F6O)r>60Gs`|j+xj_R4N=>$LU zq5k9EUho7z2O2OCuKo`IZ}0<;>H>f8)cz0c&g%vd2B2Q>w*Knr&gq?=@FS1$h92U{ z-s~wa?|uE^@H5!1?bJ2@F7N*C?*E?b67TI7FY(=8@doel4o?tS&Ik*C@Stw=MGwFa z5Am-43=3cKPY?7RZ}d4I=)aEgG|%ri-{6()MuFQWF;Cb5u<|rd_VQk?0uS_+-th`Q z@oP`<2C?*OK=Iig>P27a1EA#(zw|{m^*m4VNN@3JALwOY_=Qj3!fxy^FWs6w_J;rX zEMN2kK=&hG`LAy2fH3iJFA&`B@D$MScVFw7{|}>|=>rf3OAql(PXT@}__jU=fROpL zokMUYfx3ocTNB&1ZQHhOXJTjKOlCg`4y*cPTEB^`W`lH0@`LgbP*y*L8ABdL=l2IdQ z^|^P8{CbIu;`U9Wi#r>Ogunn1KO&WP`gjl#zuv8Wf`tcRGg%Idj1Y?oBSB)}Cnk|f zz(LWQehgC|NJT-BMIgYcnD&OlOQN()}p!wdf0Bw_)|=%rM)CXCEdc=X2ZX@3pue zyTDocqf{bmAugD;b7nD-$>HP)cX6Ou3Zx_o(D$v;Nkm$$wG7~9B5tK&sLb)Z#Q~CK z)WPlrR{brKU32B|_kZ9cBZ1v6KBC9Iik@oYzZ5Z(p4lBq1 z<8|NHZ!TRy>uHd~!-Z|GU>8Tf=fWaVWO}1@;%j6+miV{_owmKYolKT}{O`B+7KVnE z5)`L(ys~eU^}HG+R*~f zk`d9X3368j&ce#xKB9b5H)@viFxAkNMhHhG!S{{iW~&Q~2Y&of_4(nHM0=o{iX@O_ zC~kI6{y{$B=-c=REEzLHqWBUtWC$jHVwn{cvznRxx~y3yhikNGKP}AKYO_f(Aq1))D#J!xSXA}f z(_5u0&$Y}&JYMqH{3>p0wQg2ol`<=tReaBv$tly@&b_vjS#LiTY_ntL@-7?9*DQLU zO9xSEb<8;}i@MEu?b0c3IE2!T#9dqZ$S>Y+)*tP<#>%~I=L-3EAoHb(FCTghzyHXb zx4N^lh#rXVG3>O2X9YN|{cvmYaJF7BJ})CKsSacOs5&m%`7 zJjw*N@V{6@cXLNgB|#JV&dEp#xzClBe+BedC$J}B6`Dg%l@`d(Yf#qNAjw^rJu zUWX9+?LdoA3qN}(M`XJ0!XKB1qcYa$qNeV^;#r849Nq+@R}~_z|40@qpo%`$+4IiA zE~T0ykCBELASvS>q%~DxQX1I9%#=<6!%q6iioKUP!p#tKb3-I{Z<0M$&PmK7ts-Mv zh<*Aaf>QTS%+C{Wj3nVwqXj_q}ZSJc?9#zJ=c&< zW|qzoJZr6#W(zw8+3dT86Vd<#ESJEKKc;kgG7_SKcWE^jV)SG>(gH_liDB#q^maOO z((Q9eIv7Xv1^_v_CzfB0jiwYL6=TVhsG9B{kx87dl@q{#WN9(KG@O4rW44lG(jL`B zSFG3(Mptub0TmXkuz(5EEwp5Rb4$KQYbB4Pl#DBLO5)Ybi6Ai6*hma(K1ACY|2?)i zfWC1DX=w>`Ob_NJJ_UEvDY0dzT=DkAu64)(nVhQ=+K(u5(N(~R!QE|%pZ&3L=%}J} zAA7-=IJKPKn_OxhMjq?oKG7#Y&Et$cQAYhh0r}5N;!}K_Wr=pOzDr}V3zFN9coeQ~ zz^rXdk92t)8GF2SR09ONw@Y>qQZ|V3hqY;eKIaujT9?Uke>zLr!WO-fB>SL)h z6P3|_em!-}ak0w-yee2ge)BU>dw`7ckK*XNJQUH=KeX^VoWDG~lZ`J1#}ZC4O4Yqc z8QQ~qM=rk#{r1%fpIe(dFGEQ#kg<&@i&=qKe;t^rHHev*hXu=A(`qJ+Zgp8Z#ink| z;}KSWP_@yDpims|z*~@%w{^+n-lc7RSQ1&SCWzO%Xg0hVv$?5HX!+R3YUG$giTU)W zShM9I23R9Y=>#io*=AA5CT(T;Olywj!~s8!h3R~MhD*Aa3oxiFpgWJVE8b^d%5BI< z4W{^PotRopSW7|M%;bEz*Pt?3v7qrR{n*-;^mCY1C!)xvJgAT~o3zkz`n}X_*_`d- zATCeDCtV>3t7$j0Wt?9!R~s19n9YA~8Tmd_SexGxiC_cZ7Q*sxnd1=|Yjd5w1}B*fnVt9xcfnt}>n#@qb{+4>&^ZUsNY zcAlrW`;}~O;FM?!R-k^%Ei8L>#B$DK zwEUMl17C*mwr*2?ee9#>dkkxR;9C)OG^RE*>ZtoH}S{*w>@KVINv8l{+*cnm1yLrhv$9r%-vPEdCMd|*DV)F|Fs71zOVqE?rJm2>&%k@1L z!@xH72;dRImh?P|i2{i?I-zX(M&U#l{bSIo`-6JKVt$L#Ux*2P^yBdNDF1{LNQGOk zD*M+E_nacesV~N=-!GF5C8gdc)hO_-hL!tQ&(9wtiU7&@A|3-G!FV7hOfR9vKWIYz zQ|X{jgddg>Vo-TPOld=$C#+vre}KhZOqRb}#w|kXLjp-&T;ls1*G6q|mabm!Pe?S}o&Ghf{t^DcKKts1JlRA}DYVOJT5?-AII!_lK$v zJ3UA_noD|@NCSg&h7}MXRR^SgeT;yOjQISMjCmMNCYOm$mG*3mi&XC;4^1~J=~-s$ z$JHJU4GR_7_Z|WPav1;{}6NJmMh|yjen5C_MRvyfoUrl4-Xq3x+|HWk-Dc7 zYwMTkRv*hTm!CD4|HCgoFaF&Vrw|VzI_@pM6c!xhEw8XM_>eNX+91cZDi1%A6B0Jj zy&<{yO{4emE9`~!4j@b|kPoe>OU0bXl~oI`xJh%m*JY+CvXzV$J3~#&gRHnu9;z!I z$WQLlE8fxf>?0@*#Z96-Oq%FVk(5lHy2HWR72CW-x{8azyGQJTn26s?~(3k;nSBAzE098-|>MO;ZC}Gb)eEN4FZ+_>DrjZ3; zCrb)E=w?wVR4@%@F(G@0!zO{LD%i#`@B(8oDKl_s%Ab15z3VEGX38X(s)UGhaEHNQ zkFzkJvtSUa&;rwV6fz?pQ%n4?IS{1n^Nkv8r6;_6M=EnskhIuRvHI7box>9NGv;_d|60i z!7F^(C|65RLEgh)$iaK1dLN( z(wtmzHy9!y*3#)*)+^QUbyzT1)JhT15&v9Cl2A7jST;XdQU1C5Q(;*{KpQ7loBeVw zvSta*faCVIBoc8ARboD7P$%?L%e6+mL_xDeLnk#rw<2B_z_FVCsTItzTxy|fm8PBZ zI2GoxlDjxf{Cj#b6RHq$9eGk6he21(1Ei!0q-t`llwbf*qu0^7UU8_^=CG6ixl+10 zbHyKnU89Zd9gKCTYSp93vbcmEl0N7#JG`i>UZc{au&Db}uWK`y;3cv;Tpj-Rs`jAX zEP=t?pqhG=`o!V7a{bS)&*d(T<->!umCLER%_Wq>)pd&X=37;Cj|iIzCE&J&O2g%5 zG=m|XhT1|C$f3ffx$@SL#OBdv@PfzMT#ey*z}kHLLeNjW<4@>Qi>)Kb?G=g*M2ncS z)>Sl)^&giDLD+_lr3Jfy>0*#AdV%QeG^6(>;poSyLw7y+m8~EH!zs)i;N}J>(&o8> zF=V=ydg4~s;noeo4zM)pCSK$6a;ir_BeXPX`*7ze-e_l2>2*^n1_mtO0gn^T@MCcM z>C+f10S=*THpm$SEN|zsa~C+di&qA72pJ6dWkNhOe`#QNIA{VU2uq4(y#J_(@D(ZI zZS?-J*@9<++-&5ayG>iWjTN!CI%yml4hqaQCY9VHpW4M&gi^*{0ICbmaRjb$4$X5N z&2xQ+0gy~92uvxKc3B8b1sP4h1Xd8Ab{1&j*hPH_l$BI~>IQzC=0^n#PVtOu3 z?}_?=+h2s55$GcL|m9?n&!l>@;cbNM3^K|w>rgiZQ9qbhF`xMU-- zsW{sa3z>u%Hcbmy%KgJhFcre1GX+rPdSiaeLjp}x!sgxV&Q;-~1%?PXyG{Jf&IDYB zwHSuA(i2N)X$t|QWAY<2q9=2uGBY>DV>d%HPfjb|JTrGoGj~TTU(0GHCW1hid z??5Y$Zym1ZF)x(0kKi#q^}dVbi9+*kX+=UYjFxp^qFo+4aAo1J)Y{Z|$%J3?gmr6+ ze#a`v^4Mp~Dg?{sC*f(}lT~oDRZ{wKqT;bX<*7fCb(*J*uj463Po(+OK?0{4%hSGG zll8T`brzoq%&z5qleN>4b=lU*Ata`-|%C=_9Hpme)+|#zqaEsO3 z`V3^5B-2__<)HX?Tbc1WT3M7n=XR5ZEiRH>2c;>BaCp#;ZP%4u_t$y1B4~Y=U4o-^ zo2PY=AZ*K2+@K`}xt`rfUJNmI)+nQ0t01g_C0yUu1@O|m=gWQu>9Xd?T>Zv&s@bk} z%KmS}IhEnXcRbD7$KFZ>YOL&nqupU}=(5R@%v!}37^`_{Dd^Av6-=)kp_n&chOMsi zsU3r2N~pYgRAxvn5Pd4?D42G26nJ%5dsW=(c$9E;tQd?jW4GIN?kH)0{}|^Oc)ro) z(Clev?Q^N&b3JBQJX(ACHgs_&eWniub&q&;hjbnU5^Pq`c5V%d0^@vN24lW+-THOC z(dG0MVZY@WQ>bER747si>CNu2=ea)S{y`&ooLJ5c&%cnflk~`?ovSy^M-dEbrDcRx8g*%g83JQ z*!OruZn!O%8aiA|$ZpJ97jJ~Pl8ldAQ})x?E)^e(DnK!%~8?T3c!| z?ipk}=1!TBEPkIbE~o15i7>OtR_{V>zfI<%!S zHYYl!210AqMew$`ml%Ba6D-a;d|*E9(lcGh-tQ^&^w0AFst!zRrYZKtp#ou8Xq~a3&=W zjq6*r7Oy6$M+uR?YQLN_hrN`M-Q2W%w7TtO>)cE;ye)@4t+qYvnY?R}KMa*TEss5V zxt?rV9*2ZrO@F-%I(bI7c#vuO4_|u^Ap0Bq@{MMCF+%=`VtR^Q_UxPXm<9Sz7{L`t zJ?m?}a%^AXwz$yOeX4G|3UfUGJBDvPz3e2I{ABBp9yOgtBmJk90_UKg%&0sgsr>ti z0#2C%rmen4wO-D;pQfn-PNtu1r2H?WzNU>lkC?m#u09To0*tBr54XPzm;yha;;5k` zsPdeZ^Id$GZ~VI*Hld?}z@X9St!E1U1dD`Vn^!pR3PmCz%i_aaY!3#F{M6{LKwTAL zB^?bTHxn_Jfv1pxGq;&L97_T!!tu+XACBaZ*i@4Hs2)saP-+cbWU`fq=W}~eTEyH_ z&t%C4bj7vJA1ddv$q+7TUy`yWf^}PBaJ!I*ML|;4I{4i%Y_vk4OR8HpU#_-W!&Wl9 zc$f_b5dc{!PTVZV`}L)OUyV5GR0ruK=*!hvsprDkDOIM;quj0*>9S1d5*vSy_p6dQ zrvJ&LmVduULg=xtB#~`*d0hVu7+)%6ZR^{8TMx)EHEeMmG=zY!wy*iET&|X(_{sZp zvDV^tef8Pl8QRll>Tme9P2A<}#>Kzo$L$~5yA8jL$i*;ZdoZ4|{oUu}4GPCi91Mwz zy(1JJN2M&;>aalUKRQUI?2O)Ll@N}D_K@R4xM(>OOcKLQ8coq0f+~IFV!ahgVEaNE z=VXGt9|q4#jV1jBI{!;MI_-rlQ3Q@=Ce-BeWH)B|QJTzukma=`V)C(KPv}!Ux>&dk zgql3Vz}F|&y&=FHn3P6i=u;Z2JY<1jpxg{N(uZ8FC`!Yn$=pl+o`J&W1Xxm+=tkR(Eg8m)9~CEX&dWTQ{b!xlDZ7=l z5^_dglyf8vypURX(kgFNZT@#v+w}%*=eD>6uiE1IlvCSd|JR2u^=KmIywr&j!nxE{ z6_0k(gaJN1k}$%esq$$_?zV~gX$;V^*}Q(ApvUIz-0n)cUik-}&FUo0VsHI?NW<|T zN2JgFOUsPW^m<{?YjP)JEM9IEtG*QU2Y2tg;#&m^+ZSEiL4w%S!$HD41y}#$TE{^S z2G=`BIc|pCb)_-td2Jd)%T@iRK?a9ICOCy}L(`uj{L0p6+G;bO7ApA4DmTAW>l@#W z1k$F}$`PCXDM!ZqBgy@>*B&q~!0SPhpJ5?uGM0TDs{)t8Oq<<(^>gq0sR8%94b*wZ zZtVB`i(&irSmrbIY@ng*^-QflWV=BXy4zvU)|y{W8{8v<$(5nj;VlK%%@?D?Bie!S zI20p01f2QilZ^Wqo+xguMD!}HKJ1i@Lr|E8kcG{?<*b3 zFYLulGj8B4`7g~bAZkY~LA6*59>IkFGL06Rd5GnL>9nk?Q@)aYmtfoow&&sS4O7usP*eJ#j z8-1L+xria_=xQF-g`Gay<`%CQ#gvjbEocErac7BZ`5*H%GjOisqo*vcOsTuD1}7qg zPvh}H1N+Qk)U$V>a|xOZQ?K^YEo(igSr_&Tx18zx>#Yons6swFoP6@sKWdOneo-sa7hMh=@}c9p8deGf<=-`Bbm z==836vF@btICsJsyzbjqghyP&qSH~tdXucPEyD_j6}bu)N^K9}sz_>7J<`8+%H2?P zyQV1*I^0?6h*-=KyseuYNDP+RFAlXNEt5i_WmZBrERD7*7rof==&CW=svUM?wXSR_ zjOBROT6&tR-}!#gg?k(M3;|q^emWk?bL(6k&Js-p&?7uoAOt09`zgo90>vlwx^CbO z`lJr?+*UCR%YD)-n@TY3XTQ&CSZD+1SL;9lN{OD$2~v%TV_ryYaV;Cfw$iwr1U!As z-)GG!FjYmM9j9i0Val!>+g&i!=NC5kIf2 zh+?`BQ?$YeJzYE}{Y=bm?ugK_M+%inPbA=}X5-QaM2H-%HeAME8p*A1t{qwY7Qh!(ZdvUMAG9q4jBP!XzBUY^ zdY4hXZ%z$a4TMpa&BdsZJffvdAWyRoK1Ln=psksrfMO}cq*d`=cm)u4dAK=Hn?)x0 z6t$$b3bQlPVCJ_>dr&@1q2}EpXK3#q)=>10`PuP6OYPtfyNz01>7yp|?7HtZ5$NUZ zp_!&-utrGDlN)Xw_3@odd=_<-MR_LorFf{E}jTjM{jf6siEr*k~5O{ z{Yp3*GkHw+@l+k}_B#?HG`Ky|ZXKGoUx_6%?0|4dhW)f}1QvsR5*Z5}nfJe2P0&5s z9KOG2-FwTy|N4ENnVTcta<##nqP2`tj>5=cc(f?x@sFp4Z9@;}b;~HY$CED*o#|(i z>y=@AG3a+9lzkc%#66Fb9y6dL)~Fo=)d7Ho3Lh-TkkFM)O0N zq3$)JY~|7fy8Dsf%G6Xa=arU|udFvOQbqd2W$nfQ7c`HsF52LH6*bSrV4#Io0J33qF+-dP20UV-P#ztYKn zc{R*aS#(#>xScI{bkNO2+}1PS#=s&0V9pPs624sG=E!^>ajun#;Sfz)ZqmxOhi0Bg z-ub36oNK5MF?k%9eCwaA%gi2sKaV9C3|VfoLdKM-*{qq)qu?a9d=e=sEnyCaTHN z;#x24B9X1uwu|Yg2k8}n05GXK^NCtrV;B<;{DFx}%94!j=R$@;X^dd1P0)-om6^Lw zK~zDrP$gp&;gE|Ez6Bbg94(+8`#Iaizl2~wxVnj&lWPd6x(JfKys}EH*=ZyyYj%Kh zz@V_{8*X}cO60;H6XRn(N3k#KnFS%3!x+6w0`<*{7$72TXA$Hx$?iPFZ>yae&rR+W z3u}ef@8j_pz=`hBD{SM|{DzmE8kZreFD<0Z5Di}G1GaO zt--=f?FglFjRF9w{CF;z$bdl&=!6;;khoT1S&kR~Xmdjx2dmG4VpwLI)iCeX+4SyD z>EWdEj78}z;^MOj@gC0BZ$#tlrd@*I?Hh``QJp--%iYP@qi9HZmzgZcDU_bs-QjRc z_|i2#&0{7c^Gb&!maa`~sQrS%gTp~$+^)5STh%=Y{r#F86EOX%8VVNM13Vl`5ycGE zOkG=C%FWAFKEh(eKij%UrfPy@po;lZgIn-u;=~EsxLLpQYshuhj*yVh>lVxW@rfX? zmR#CV+yLb!tQ4eq#VWScJ=G=*t|!9w#g@T2!VhLOrMs^rsXiW-HK>*~?3*h*7z>F; z5~Ri=7$!9gC+n-!fwdIwy96(7z#~o3d^*}RcZ~xcN9;gTE4S5(*Gzm_MpElDQ@j8x zLPLOvF_noZ@f<9`2g*hgOV?1hcv8VQK-W;@YAeOJA~nz8zQ)2N#z?Q7+RAp>k`WM# zm47%&%C$z_lL~OhIm|aGyB<|`U^K1OA@ydp&Z(@(D%;7G%?L^WP*{?9^{vK`?s*wn z24)rKO_4-48zXJmyf)dcZI(xW2sODZ-W4y{dwc8tHa7Pr@hmDLbv7R^YP&WhPCm_eUVF*T{2idJ)5 zYVAXq)2~UdMj)QrC82E!NOQF4x}q4y4ZFgj@MN?Sp|)wjEm>%;=rA8e&qa_G9EnZeREyJHBkynv8AE&nQZKeKToWyr^(Bm@A`OfOZ2%p0EaKVYHf zb{*8y>38PJ`L>=;`-hA&x)?f;ApB$;W@Q=MEG@U-91e~y*DV=OIjBx2!_&SKxt!7A z{~WCxb2#=cy=WOnJ+FGdYAX@XbBnIR>>X~u3=1xHuSjjWLl~P48BfzMQVuHa=E`;~ z9Umg9CR`cL3GEMGYY#jrXML|%;I5ul z7w#M*jIDsCjyV*jgA~pY7&j+f(x80xpGc9deRTyZv@edwN36I{XIEkT^-#kw;6cnO zFwP%+QP50vy)pH0=a+D?*SF2}+n&rhA4~|#^*d|KNXPX^*Eb0F^~gYG6gJ)e78ASv z-(q6=-%`eT5#Yn0DcsE8hGOV@ZG9M*{cdZldt-LWnf<>1g@QI5bt`frCrpgG5%Z)T zP(R_zHd?Dlfuq-lnWj<^)dQHaYbSB;ZHb~a;Fj#5m;f}_K#zcbCM zr9VN)UWVNgPqk~`pKa15o{Mw`{MZtKSu!^15S2E)oB|I0#W7p$ ze18;_NfS$`;LEI9nlwn7^Kr*~nj#dP<*(rPa2lS3_}8#v?TFizoB*jrmhGiCKg%$O zg8SV#ZEdC)Ij-9MPkc&kVHq2?@R7&q&L39bV%B?|84SHxzJHd&?sM?C5S~9#SJ!2b z^f>xL5ZdJ86GSH231K*-x+RVQRxbA35)jS3Tm*H1MARn#SM z6WQ&ZMtsea!vh$NX#1AkSauSQqA=h^nX;#@1$43S`fSVoFYQ_GA~|W6R#nTqQ7)99 zxUl3)dMKS5iOMh>uxjYqU;qlG&H(Dfc-Y;SUrD}$WXk+dTi!=9x5BgEbHErF6LWVg zc5GR5U+yw@#`*=ToS#ST$7V;U2ZutTaH$od?0w%;3w2OzHLqaJHPy&>1_(+~A5J(b zI~Z-+GZFdMG+Y(21YdO70YLkHVH_6Fe7^|(^yI9jRTPG<5?MC$ybj$FGu@bm=J7z+Jd(wU=;<_|8C zS}nqOrk?l{!XiqQkQ>!&7e2aTaZ1K1a6HAx07-79n#Klx-m9DbJ0kM-rFJV~iH3pa zmg5?hn4F5OpQ_o(BVQ}xLufc8rctE<=m(;raej*q=B@u^9;H9OLB7V__KyA4?fPiqzn$2 zhJF3gR^(@veDVoYm2DNW582^alt3Ba8--#yw}6m&1yg8;C@_ z3R(!h>(bf>D~>bfZGr&J+8;8&95GZ;$SUnB1`kUfDTF@~4h(7FCSin#;`|s!K~?Q1 zf+~-e;E&pM_7?x~1s)-pn*Xz+MAVOi*##1m3|ndLS4b)gWppgI{FL?(OW8oY)kh?@ z!`v_KzXL>!;u&P{Ns#|a13w26T`@+8O-x64(GKDg z#bwAa|Bi+V7pExDkWpLh(Y?p35|^vX2<>Q(R`%Rd06wJX{rU#q7JG?f<17fQcoKOB z(Bh&dN~ogy#)aS-C{^5b(b4~oXS(10_BSaeg$7fon7B=j7C(Hil##T(V@-x|Ddx^S zO?HAiNUz(agi!-1e%Bh}I*ON5q83S}HL|5N9FXm{4g-f$Am(x=4oWzIDoWvvZX|c9 zCB%=a%KDV#DIx2WxH@+VKBjl^Gtw0TI_&tooRE8EhdgB)expys%=6qqZB>rnc?qi zabPbRHeZ*+IoOG+(rVwLHrGc%P8%q+u2^t1hj}Pen*nHaUL9Efa`)R?fO5lw32FxG z5cdjUtAwD%r8iO-4_M2MuPuIsHpMB|2+QN?Edq<08~+YoT0^R?&!43?b}(Gp>13~M z4yCuYYScKp!LKjHG*hz0eX7(5>ehn{HQjD-hb|=CS(c4o7e`O&wvy7bF*YFpJ+wg zH$d227e(N2jMUKD`;2%O6NF%j553YupHMIOAi6Ki@k)%dBAO6=VMdDlI;@fRH!Wpi z7tN}z%dvu(BpYEH^#}I2Bqhr)C4F;(>=)pKI@I6Tb@>A#gv0!s`Dzi?n_mp?IFmt0 z?AeeC)Sn3qB7GsZhK3(CQlWme2F5AD?gDsl9?Y? z=PR237ONqivZFMF7~KRDXe*rSa(OQXdp`QEm#aCCkwZ0XG1a2-+bjN9UlJF5%J*RC zr5g8L8q0H{DI>TP-hW$Ls=aP1@3e6A%34K$un;mcjl%vQTWKNW#EiJKcA_)cT++oEBp0igl zx1R@N1DqVS)@MJ5JaI3Kp%IGQDgA+1Q3OW{mp1(wYY&DkT~vF0X=_vvl_930&; zTRt{=t%SX)x;aXR&v1FS^e06oxE>{l)z?|coqqhMc z!TTDcmNR0d_oetNm*2lSPv&NCQ97JLv9>e&DM@@aVg zxRJj0r|Dr>X+t)@|Hbw1?77RYh->TepO?Uy$@R-DG~un^^yevRo$p#?du%3E6ajYK zOFo&WoX|~t&q;=pA}j^DPTOIVFKy6{h*QpDIfeH|F~8z`>bjB*OdRH_6}hf z39V`|K>8groDs_99Wn~-4V@GW0;2|R?#%Jx6<_|7yEPC)+V>GUsI(qH@_VV8Ih+Ni)bhnQ5 zrj81#Fo=+j455npj?OUxsiJ;WM0&SId3YP9TZiq1M}TvS&K?IRw?_JpL@sDXhiXTq zX-9imyA_>8d9}tAVS6XO#1vXb%}YjAuf#Ns#5An97IMdgbH^}yqp*%dK(oi4Nkvt@ z#CB@O0!HEhFVW4dF@UI;pw_sWsF;cWD2!vPGUB_f0b7xRG!4OR7AFp{DL)c%%u<&L;=sPa4r9xc=P)gd}iYE zO5(^#;sQ((8XyttHSrrDEwxU1U5Np6NdyCp48+i$r4WXSM)4#@N~=i58coJuO^(`0 z_MlF|giT=@O`-*!ChrNSaE&GkM8m+IN zoD4nK6k42ABA!$+8%OcX@8A1ixz>q4ebPN>GE_#>Q~-%QtG}In(h_7c+;CFjUX$UR ze@ED)53LCKKiFlzW<&r|4cby-M$>tt)5>(xG*(m70qN0g$vm&Wf30TO@uax6W$9;T zr_dl}+WanR%lxq;d}xSTZUK*OG2d%3 zmv4z!dyYU%iF{Uxgl^&KY7xDy52e%_7d&@V$Qsi&C9B+VtjwsgB5VwhU0IRa4hV&-v~RBvw5=>?uZYL3 zEX=CRc>|Q6K_>G8`d9NF=9LCB0X>$Le`PBh&Z;VLt4iLg`hBYtcq@C)Dr?rN?Rm?+ zbpcdO!oSC=d}FFtvTD}aYc|$uw%UtlV#?`FRDzoX^Bd9rRRXrZ#l&m1S6MYpynyey zDvTFhT_cKrdhO9u?Z;Z(*ILajFM!F`>z5noTYDWas~)bSewVhk@<9u6F$&KB4cRu0XJ-wvc7IM+L8N0Fr8+X_Wb4^1Q6iKRmF*HG z;hUs8AoU6=jk0S@=$dohnk>i5%=pT_9mM@(&4xQod~hvh=grpV&B^Ue5wDHIK2`LG z5lke-irFnJiA~metz~d6TW8HCRjrY+t*&@2PUEe%@6C~TEpB?viGJY0e)X935i*!U zm#K9Ue61>YS;p{fDSpky9nGn+ZE@qxv2rcxdM$tPI#Od>EjpTw@alQL(alv5U5(ny zP{m+&_#Zt@C47Kv=C%sFwolt;L%WXO>+Mr^t&?)iY2!6|&Ml*{rF!qkdB6@ew8K1O z4ivAm#uK@AZ}=ubl+LU3f3bcYuJE0U=Uvx)9Z&F`&wkDK?_FPbZIvC}uXf!a_}#Nr zZ93~6AyrMG>mZoQrTM3tP%i&YtGa^MJK(CDF4x=d?YdAAi|{?<_&uaK-7R`O ze`5Qn<@+kuyGj0abZ7tjq2J&0t_Uij1*-yz_^;_iuOExQH5;Y>mt42_L?3f?A2WR) zMO^pYc`r%z09AFj^hYx=u?st=CA(u#T^7aTJ2rpLAoz3e$40-|6LK-r8Gfc=3*D=^H@88gft&E6POd`I?|6RzbS zN1Pe0)E}WNFa!_os`eiQn+3@xMroNCNsu4U)(7o9Z%G!H9@-dd=AVfFK+eAD@A??) zw4Y?DhouCW4Aq~Q^dC;8=<31}vUr%xt{&OA80wZs*_oJHlt($e70BC44R^p0BtHtgRgR5SnIT3shFJ1 zCSF&FUsBKQW)7GgQ<(82m_^5$fmhgwbU^79kiYwG!UyiGh9b^bPOk1dbm=i~8tN^! z<%}~qET05yfp4tLej+!0&OPOh&*N{VY|Vdet;cPhUv6t5&Xm7?N@%^885bJ6ZYHwna>)mgV*jst>IDE zH8{#moBZN2<7V5$^@re1P~MGw=NfePmO8-=Y~3DA&`s~vH9FJb3*kPmJW6xm1w`;Q zo)8MA@ii$E3Z>yKEz|9}!7VcI2Hgn^0XTgHc6}$7a06>}3(0g#&vcJ*ea}yH&oO-; z6L|edcqh$-LJ=fn3b7*DeJdAqJ>q{yzI`FAbj!_j!&>)=kK*z2>;)1S#1uq9iH+I5b!%BCg*PnlZ zuh2>FK@Kt-Y?570pYudt3&J+Opn{h2CEB+{;&HH#pH(X^ z5n*v860$E^s>Ho1kQ%k-Hh1}`8I%&lu{!fd3OPI;R|l)}Rx;K=^A&cm26K@R1|3{; zU6kFvSkh8j{ry?e5dhqyOd~Ig?NX!>-dD;DJI!1fodQyrPGf~!vC!dE={Gbo+RP-^ z74L^(As0Ca+Sx3$RE-;>TTKTFY>Fjro$gzp_~X z93pwFFPs0IVu1AW1l+L#Edly;jAbWee;2-+Sgx8YK)F`_{;_j~nq>cOQxnxtDmUyj z2PenohM`;= zC^}EqxD@wul5Z`&3h@1GVE)N9gtk8t8nk3wM-nh_6AU&cTLdDA;1tSS-NSuPN0IxV zYEDqI)IWm|2K2TfdFs{CUFamVfPo<42jjl)8?`Yp%hJ46F#^Shl{C1#@5E1PxigiL z)4LEBCTz1tu0$I2R^w|>Hc=!1cxHvZSV*0|WTL!RD43St${uSl56 z)a&qKS=!~zW6>6m6^p|q44L9?^Vw-Utl#|Fih@a2kx=odQpj_*G302Z(4q!Ps9Qq; z?T?JgTB@cu zAwZSxzDn!(W$lS z0NxE@1$^p0)GTp$VMJR_KV9(LxwB%fQW_1J_S&EdwTg?26-e27^+wS@07k@Q?ZqK( zfNxr*-lmo2*754HK+$6q1wq$X*$+Vh2omAGPC>d&?_|IP}4P*9Ck z`lNOfu49V;&fDL6dC}Uia9E8sV)n2wbh`5iob_jNHP!%c&BbKTnt;z}Ga|diJjuGh zLZDXW&u?mrFR0C@Vhpbl<1q8G7mbA!H7>vGRt|Z8wAV;Dx*6zg?v$pZHgv{1RK-ZQ z!#xm@tzRmFovGd8Hsl+?U(&-ct-2hR4-8L`U=0jl*ifqsc;np z{=U)R`po!Ub*9Yt{wqG6i>edRN|J4C=dqcqXYhNJ8i{8NLe|prReBXEM85|NS?PZu zV2P2?-^Qr>AKLCBD6Vip!!YiI#sa~e-~%MKzTh{@$_WU$7^j8|b9QIRh0K0=I=scq>hCO~fYS~cy!nP=m#W9g(?#$2Mar;6 zex)ocefW+AD#^QY#rJc09IVdveAugfl^rKGxXHYVg9aH*`$0IOJA2f7zx zvXfB?cO$#s9U@D!W^NrcRXffdCKxx-ZW^{iml>fuYr7x!wX*&8Cc`2yPp*jIzH=WH zFLIvU2lmJI&3A`TbB{GDPL4rjy=(tvn4R|{_Viy{_Gy9M8{{c&vY*V-qu})b9O^!< zOJsmis&iy0>d}ANb?s>0Nx^k|Kb$~lNOHTr+%x4q`&-V*yFh!Fo&Ri7@x!UKB@>3d z#$(Yk`Z|5tWCzA=v>W=1jR8L1g)v%duW5k26P?eYjz#;}H$HpDRPM9iZf+BklR>Sl zZ^RyM9i6L0PENN3+j{)2%|5bLh{j&~f3`h#@a2D}?Gyex&4$?mcR#w$>E6y{w;%3* zaZ4P|0=aE_9byu>Hx~Gw2kLhQ(nwpVhGfk|^S{m}$lXpyeB35YcO9sMyFGT6(_!4< zeGcWL?WR+R?wZAUckWSNjnTR;4n=wHko8|P@w=XffAL+lO~1|^XCL-a_Y{GuUpJ4t zUmbA3ON3V+S>S>B{*RX0LETkic<$BvE2=l~OW$E=-aX8&1bp6oWV+@EZpiQaa2pL} z%AC{2J@F*HFgybB4PC>(5gnDAQb+jxI$AEE1qyC?wxtEexdrYLI^lHsxbeGTHaa@V z1;1hOPGAb66SV2whT%c9qhWF2Hwxl5c9Kx^k;?Sl7zckJ$%=zA$g&_LZv&J}9FU0= z{y6}YH4)|n3Z?u3{)7?Lq8G-KU=WfS6hL8Cwiz-L8C1?363`LlN)Xd98KS2HYHZX} z^N5jNh@eYANbs~jA&bd6BRbzv+s%u*Eez@h3RjY~z+8)XUWho{^_v8WTK*JOFBCHm z9O88zv{4!2=Na@zk@#aG8c;d(hkkJ3Wyt#tUZQfupL_@$K`<;UBJQy_O9zf-B}(SrNoKtb zr`wDK(n|%Hj2hc?I(3eC7D@zo3730|>j6cG-tyysBGHk;Zq7VT1mY1oqu!ZdK4# zM8s8)0bz{~IuBHJj-g^pLZFJd97s9yOdzvOU>3>34RXULDd6}h;@-<3bq&P-@kef& zV5E_`|0x;sCP9Qc6ie~#6n$1F60zEO0uN&9TtNo^Jp@x%k5`XYFl@b6df#*P#I-%92>N3GE!GNP%q$)+pZazYT z(iM#i!oYR-Biq#}r@APwyTnVWY5`KVyH?@Y^d~8t@1j#-Sd=4lnbT(oBVJ#OuN4}n z$u|I%{H|KeWLY+VRYz``@pNAFD}|M>QunG_{+vQGk5coEnzig&=9pCfGpKGqIg8(< z82An^YoYF-yX>sG>>8!vn1p@GsSb`v(g^)Ls;E-bXi|xGS@cKM^zWMY0jVcMDcFrH z$DywJS1G2rAO=nmCCg)`(Y?=N;7YE`uOYjG%MJatMgXJ2UoID*Xpx2{2cxa+iDK+>OQ`On0(*#V$jHoTD20;7T;#p7z@^J*Ussy|2S@%wDS7i}*A z_0<>jk70wJ2GvKSblXw2GNLs0*tYzCY-zFSO%mdo{eUAPNYw-N-su{!>+0LTZ+kZV zIX={%KG1);-|>UlZM-vh!`}V0m6*YLSa1`7XgzE>!|69D)ZmShuC2_ct#}246oZva zD80SSO{Q5*_@OZ34|v4j)d0%%)U0K^CG}TPIdr?-r$VFI#=Z9>Lk3rQmE5hTEbWBQ z&Ggz?9ETmUEvu5i%EAUbu$j!EYIyPLNPaz7LS69_2;x~XE@BHa*3dj-(2|1FsLwLa z*B!tW)EH$$EPy>!tTq`r++pGfW_k+IDmK;nfYL2KjOT#U`+(PbFx6i&HQGAVZ8p_~ zGt(wIGI=mbATiVVFfpk5yegu%&;|nKYkH&5%h|w`CR4-^$>#%4p@9kJD5LD@LBXX%oYuhxTS34zvs-`Jf<)%9Z1{lh|9SwNS{{g=AMmvq`3M=Vz92+6 zPpCHk^3`;>*an%yrnJ~J*5aF8+V2eY;OrcH{5%}g`I(pS)UvCTm6S^t*J zmm!;Z_RlH6;?swB3!5kSzG^rV33HoRoz7~+j$r0CvrExStW(X)_F(4o==0N|b5*!A zXEWou?&x!H9)t8M*#Y}VjFsoyUzAI^*H>@L`wQd_OhvoD!w z=Fg5Cj)$xPSJz)shztNW>EG>&%&aq#ZECV_YNym2vK?#nY-IH8*YzB>)HDf0F6O&0 z*1DCyP+cb_+rafGm&08-3|)|^TYnoi!B25Ykgy+Nyz;s{`y+d{!;aWn9sGwqtdq(S zGsYVHMcw|);KJM%u;@EtqzPT$F+UCWj@-?3jSP}}W) zu~J2|=_7){w7)zZB4FeHt^C)3EreOi{s1EH9-+X6Gv&53*~L)(cYxka?}w#HE}|r{ zvx489#N(X^j02Pg3>ff!dOKUWKLH@B-> zH72`m#xPU!b4<5e47W?P<$Fx(+bG(3NW=iW>wE8*dp5VJu zi@|pm;%*M|kM=ze@@{tzjLr`7_k3s`LXS58^gv<9zlE+``#+xGsGs>`oLy?JoVP(j z!|s;+9+Ej8w^Vi^>Sre4)6nfi-s{Mc~#c; zXyL!-H}`mudzIX_3AwstlD}aAUl;kkT(G~e{(8dgBPjOs1nS!v|1tO}?x}rz9Rhz5 z%7j|3?*dN(lS=J%%jYqle8YeylDm?bT#+!U_hroQbNNdCjJj5dC936eek^S1D%PsS;=?wm z()U)=^$PHOs1f%J%PneIQb`?&6q6xD_FqKU5e`HniTUfX=oKlYO@l` zm5o$16l#P6Q2jTZ)qh$p)~kuD2WhR*>$aGLC}mkcn6K5iO}c`(6kMz;<>#ZLk<)4H z=3NAlu~TDrOsC+UX;n@$>vj`Jsg*ySk*D*>G~^Xw>FtwaNG2gWL0NmX-Q3wZl6_W2 zi%v}&XsVhxy=%SBc5{ewQq@(XZ1!~~Jl2WGHkC9MS{H{R zPIL@wD;f@c0WE;--hv`gQHql?iJbSYKu?OS!O*N1MTycl8ru>aoobN0K;k54=9(#l zZ$y(FYQ1LyNJu-RB+8~XwEPx>c*B_>Y)^J-7=ug}qL~l^H9u|YJC$hsn~-XFHQ8Hh z)cCK%$H0kz&ci^d9zP>zLWVAsaZK9xG)&X9vN03QjHrNelL7+Y6;q)^t~MH{KmP_T z-PwMeDrW!DOI9!W28tk!M;XO!fv`+Q5pe7 zuh(ZCo`KWV86RHa6!C>;z6kAHRJoyurR_)UIUY@oIKBA^__9MlZjHXxc1xP2YUIHs zp_OzEXp@)nj!+@n|Ig;cF~_d`Fwbp>=BBXaXidGOGdluj>QxEFr3R9ztr6ImoUsuj zwcJ=8YA97U5i8j2qm&l@jl5=@k3FJcKn3R~UB4P}1#8!~5hq4TZ!q_LNxFJ@{7uK&0%}S43HG{NMzxFt!;w*iYohw_wPRMh znx^%8OiG#-Xte;wUhc5`cthsgM?0Am3#r-ZK-%atJ><0 zOtXQ$r1xw1nd{R$;nfaY4a=sz#9P7C`q~3O1d^pMl=mk1h_bQFBSL47Zh0j!nX%ZA zStNcSP15EoL)2>EZ-1vf1nHy#?k zZ0U`Yu26To=RmApzdL5T=GR@5CpZ3c+&H%g6f#mb9LY`7Q>T4ntrUWTCOZFeo74mB zqV9Wor&AOjO^n4#_Rua=&kG-Fl#I<>v&xDfYp@A9H_17d3Y+*lGV9lc#k`5+3VTyv zuv5b}Swz}IGFv^xopvPWllg$jSxst-@j69Rnan17wbOt}J{;$RBdpjitoe%?gk#Kgm}n41f3l$Gkk4G!|Y7%KE8)nqp6S%h2t^CBd=CfK0t7 zxNzN#o=R_K%X3wwz~ zFA!rfjFQ=hifo-;l^dB-sS$E5mK!zM27$Te@CD6FUDz#re7H$Q1>h>=vZH=jNM$I| zsYRb8Qu1A-)DHJNsS|ACw+xGI)wa>9NH=tZ!<99rMn<4-l9L zS*z~G0ZaGnRhQ%NG4wNp$+~4RK-RlO-PnCDlQ)JX=Y^~EY%Ge4=q-pcHf|S3^52sa z)$+KC@?XO1yjR0Ai7HItYnr5q-;GGZ1ontaPWj_%K}~U3MnB&LfkD;3s+f&sep1rL zuLa!^mta@1bXw`(+qp>GE!Jp)tb1nKr7$RdFiQa@s!=3``jGUPU5Iqz5#2@lu!tm? zMt({_R7(v!u+@k^S)FEtGYhJby}wYQ#>lDJI%iT`ZjYEgw$_*Ncu^yjK%>;0kD zmDdbE%1~$jzM2*d`o}+kd`AUZ0?c=tca>dJ%f_HE;)4+x1J1ZK1us}oY)PMPQQ$9{pUX+(rK#7sZ+V_xKkc_-{G z-}CfLke=dj$~P@U>y42o)q8H)szi#~Ekskk&O}qxaKfPWA{#bz>SnD+>q{>R&$osW zFFA^Fy;&Hy(hbEW*I5(Zt|@rA%rY^8%+_Cz&s!^o8y|?HEg7^V)$d(Obnj3{wfEm> zz2?S;n0~EF*}m^v#kM_pO8F0x{@7TRaZnU-p)0rw)qye=17j<#w=H+n5`F3 zrputtr>?zsS(SQ-pSjrIcZPoaF0I1UcP~wuzf}6^0gvIZ7`{{h?O$hEGhnF@gPXxU zbrX6oy%#b3luwjXoZsZ5|KaHZtk$LAnLGbi;rf#Q&S+Ln$+#%Z{pO1}?CxQ2zNSZ< zG0^QZRT+jo3q!KEf~U0a+VMTcq_y?# zSvFEYF0K5t>|oqTVcq(yeygTkG=`Gg+JvfR!X32W~PDi$N)+-pgT1rDf_a>$ol7 zu&*_g1ZhB$E<@sGY(;M$jgHye+@#dll{^T4Lr+reewW1oRf4Kb66Cqu*iyAKSgl^m zZ5&q(j7dWZ(XAEi95ll1LBv&GQ60#$<%l@k8p!nFXZgautTIzAe7^MpSc0m)?PnT& zh%sCk+TEw3UGy~Qfu?NZLV}vK9Z9Tw->%$O^!0aAQtEDl^`Nx@M-7TWgK@--Lfae{ zdR;Wr94p;CP?>I?u1=^e=}a1aejjeQr17E;(Y)op1-2r1a{Y`=_nR7dxgj3P+9v&3 zI%9b1@E~~Yjx_z1bNyE{AqFBI%oH&>4P1%p#!;1e#7#EeR|6tB{i-Y&)L^`UvYoki zGV-n+CZkP{tdv_(va&cB3a#Ol=Ym_!!mFEXFlXf3=vwD}@XbI*Xf`%R&4ya!$_m_3{iNK+`S;Z{d138YzZ zB*fXtWwg~?aE0W^D7?O1L5MB!L{Ol+fQw+Hy zs&eq|AoiL#A(1*eA=Fp>mE8vS>8B{eAM666#cZ_T10}6Pn6vyn*h6eHV--&dyq7F%?0lqT5|*VEi|!Q(Z;Coft>w*}lbfs) zN+aFmuliqg>at94>QV_@Nk>)5YIUQLr|*knP(W%Oa@H4HhVRKE<*_Lh z0cf+$stqf%s3s0dicPa0JOaat4Axe^OWtiWeVLmZBvDv9p|CS{)5y^ z&b?>K;}rogc7C3jT`OWo`4E1?DDxY&2&qI2TsQR0#*4O)TPr0UJN$ZPs!2r!jx;84rG_Tjh$brg!xA68sO9Zp6t-04u0@mY zS;|F4I7E3wF_{C9EGNIr_P9KWU&aA3DYrod9xH=A!Vr4<=`sL*ZY=4%>zcJz7k)ZW*! zqS$c7hXR^$Kh&tKAKOa9&a^Jcvg%$pUJgS)*&^-XjP)OxaQtr6C9PDgWr7{}q-yKb zK!_%**Fs*vyH(+bs$}O%QfqV}>Pi7!ZDY@pE2?)^?n-UY9Az(NfrGR!Nl%kyRat&S ziKw@JZDRwbzc5Zp(-_keHn8=RhcJdT|rj1lukarL%*N}S`RFx_{m#2G)G@# zWVj(`J(*2^NHy2>VLnxFg`uRf=W2(<#W?0m6=)i|#V8gfWzD1}zJzgk_SI~+AGH2? z^;V~9Yig=%tU{w7r}c>O;=@)BspgD`G0-OoM0T~NFnlS+wDZL-2vB|B&GDA)#}fQ{WcRKIO5CVe4PKGi^|hkXQ?Kr-P%P%}g4 z*#A$w>F|j+x&Cj*QwDd^pvDgk%r+rho7d}ziLOO}88 zhi>}#XhX?#4qOuh7A>owoRFP0!X6{d_AM7`ks z%Dxw4*IR3U7aX>>ZItr)qu(i3VU9r1h`E75URofoFRdz@fm|w3d`bsi?I}T_X)$=k z5A~yfK#Ix2XxSaPuW9b@*J6!?;B``DnPQ4N!AeqvYLA^`wx#;L%2O6axPsgS9%uE0+kI_fL4e#^OK~3#Azgw#-Nal~ zYz~AFghdkhB`yC!Ue7yoeR2Z~8xMRcXXJH%7K}wZ=#{Jx4l)y5Bx-ax8Q`Uz4-tbr zkKc!@>zXM=YCCQcsA`~S5^$T3PPlSRzazbch19?GNN6XN*WID|W7L5hO*FAkRsXis05C!nPPAi87@fhWxbfWe9beouf9 zu?tdkL?@B76=qUCXHv{#c$U;61(MDuc+Px;o~fn-92X7=ei#<91ot>9WBLM_h3^2S z_Bs+93W;y~Pl>ETFkySrffQ>9m|WpE#IB761hRX>=?F@sRy+s%NMR#L59F~Xkq0uk z&*F*SF{rZ&Or#h+aF|~9eFMDrr8vT3IjEFK4PhwoYM!uUn=wd3OpNi+oFvt`1{3*7 zO&70ArAk-kC_}JJB^{pQr{4D{e_s?)!jFoZ=GR1K%~O)93&}`o{U)7rredE&7?z_l ziCopmWt?`GG}Ke348I7W&lru@{{qaKaVU{$J>laX!%R-dJfZ-lf#ph88YmxC^y%X? z6I57kbCDIz1!%=_Z2O0sqT5VW00Ogf<>;)B=VEabxW z>Et?l3O!RP+q24-7_>U6loG6BoUHg-XhpdXzl7$rsAWZO4fB_Fw1I^#O&+^Id*4%4 zVa}!6nPFW@G+q6<>|Sl?;+z{cqo-$WqBan;4Zz4KvUo9t1{(yLz_MtHSqRjpnu?gP zN^4Fjxi%y~*J92JqlSOup6&0IDe9Il9s{N?heF{a2Y?B<+=c42wQEm$CWO#@&9BFLj}((y;&Jt~(Jd`|#+0?0xOP1!_MD z$-!*U$WDwd!)>vs+`#1aX?U+-)Z7k{XHnX7Clrf#9Z?=`srTjO@Ond%iDf{ET7(MDx898H4 zrThN#0NTb#91_hnRM3cW)7lu!HPh(&P+aF@tNr+GelhrWW}6Slo}7E7_lt9rAF8e7 z<03q5?9aBWEL%D+uk}r}hpvowTRu#$&DAgL?P*aU-&d{$_nBNF!%y?MBDj>P22~dJ ziWVl`w};)rQR0Vu7y(XR!JuYrWBNG15cA$E1b+;VN-{dd9g`ewsJ;nE@IEXI zZmt|4!3^m}8-(}ZX!_xMliWfuMyBpD%bDev?AF;9dQ>x%vF?~Oka?sCs2Ym$C>E|tX)5k`QR^l}TEB`#E{qZk#`falWaOK{Dmx`m(SqVL@Gnw&m=gH*b z))Mgyq|;kthV*RETH8&U$pZbQep`%*zVF20dkmSbo^y+FEywSs`Oau+-a%eH|E%=6!JCF?3P^f8#QDVUSAH??9wK?~9?QP7$FuJ* zba}6y!{FC2Y4GbU|D%|j-wU8YAydd2Jw^IToQa!%n2L4G2N*wlx zbMwN%mPF&=`+{R{O&z3~8f?`XJb4&|>h4SJ?4`)zF^P>VWf0=m=^hq(5|Yvy8rB->*&5=; z5&qfnbZZF<2o1|_4R^N)wYBic7x(?~BlwIwB#zoL-#xtSBs^>+qOCNn^eL6g0mjqJ1t??DJ3 z(FhN24XhoppoLWW3Tu7(TkSZ-cR4jOA2+=4BrV|i%eslFwmoyL)z#>?PhvLFg5xF;mH zCWxFSke7ukdBhT)CMdSWs(wS3NJ}JIaQHPEsLh#dqM2;wk?gsW6hHhM^+1jXCpkVO z*@-j7*)rKm(v5G&^*d?UDRhdXX38Ir*h7cpziIJ7lF4pmQ1z{n2r4nY&xw2Xi_OW()=ycNXpXEpJNYWQ)#a~(1QTdW&FO+DIXdrb-n2nr|C3^8F>g9l{6VO znkm(m8J?vX6`b+;ZK>2h6z&r-?9S@x!0_oU^ab@7JgcXlZM48mNnmN~&)j^Zdn3gd+ntkq({ckmXpT-&u&J+9_ zlKnY#qU`gR%xTRG@M=0VUe?uf&W&a624W6udG2~xE(}*5e0lDYM;;(O`SBUeW>q;T z2*bTO@2gbq*mExYST4C$E_Qi7d3rtrZ7#M}E;?5py=OkwSnl`oJp8k~TVvJV)PMzQ z>v(Dp2CV`%q&%kdLJ7}8skK76vwSM6y!o<1!(d+ltD;zoA_sQ>p_sUL+jmk^FTFN* z;TJTyu|oOuVypII(XnF7we%C}LdUf~PFwdU;}u6ys}S;>8Di`X;l>6?(VV5uT%_p_5eh<6~#!E6>60iTjeDq zm8XXL_IkvzHSv)*73Gx!ykBx`b8}nHirdDDJFN1$q{@4=Q2Nq~4aJI6wMt+dORJ^S zeuiN*NCBp`DoS1o2c)XzX-o6dt5UcCQAhkS6ylk{9Qs+f1KP?(tBU^g>QkvtyqVvo zRegq6Goe}Cf>(JTUVUp--Jw-8;8}Bx_ZfSywuQiIY^6sD0_<=CBHB`4KIeB|YmTfc zuF7jZq5g$b%{g8j4ss3TdMzYfEkQ;dCUQNvy{?58@I%12sy#L5r5s`b0t}H^OC3>b z4o?O4YT(Fd;Oc1LS#RKbZQzpzuvXNHNXvrel_tvpG}4Xr77YTgjSBcpO59Dq@EfYa z1^$^JAmTUZXg5OdHmcw^8*w)qdI9E|8xi8_$Hodk(CYm6Xn0}`x*Y%m>1J227I*7< zA?_B-hwy2zleI8jz;r{dT;F(kB-(z=_WO8z$f7h)oz7^5tE8&Hn(n#si+TM zZ_R#f<5_QE&1fs+Zrw@;xQn%^X}6}0HwCY^<>GhLOIQCAXseQLEud?2I1o3q;>VeR zXs&3h#P9rp+|l6G8KvD(+0iyY*C|aGHKkIUj3K9g-4e{*S+U+3WZi%?1GhO|jRd~# z+C}c(KJVH&@7m<JHJWF?9&~?9dbRSyxG*)yK z;&&Ei2rzfFuXc1+b#z@vbfaZ$U32$9ky@tG0bU)TA1itQojtgj zJs%a_m^S@K6`d%N9kdZ0h&lq;f135YT7^5>-ZQ$nW%@xK{n(xT{4#yJ_+~$5AW(bZ zq2hp2l|YHNQc@J4(AxmuVgQO~Q21>?Y@!jVvqgQpj5=<>XS@q{qDLcg@Q8cxJ!9zC zjvZ7Vyu$`isuL)S(qQf|#2q<=;XUNO0oTOcCiFU3y9}WPh=~&6H@Y2+1zR_JZ;V90 zji`% z$u^@Y1mlkMJ(Zc`%5TFFHURxjWB^4&cjY+HrpG>V6l^e_sxv;yGwO)aNv1Q=o>}e{ zfzdmmgj+Z^mpPt30bhSHIUNbyp`RL$9Q^^9Tz?yV1q>n8A;XYBt)M7QCjwY<0f;;U zqnXX8onxaq!+UR&jXYE1GE)-XQ?D1J=Nl6UkPS~ZfL~rNb{QHPG z#5iQs=+*=nt9Beu9X4QX3kUj z%y|=-5ob;BRL%%)PDoac?rls{Rss1Yhs|q&Jnul1$vN)HndM4=Jw88X)x0Y2BDd{= ze$}Kb@8A!>f@IeMQb#Al=7b#muq)4!a^{?p?yTrbsq3Z&v?Pz-BN;D53Z3CE8ITLT&gRi@o#IP7-JFjjF!%Q-rtxMyDy5yp}q3g3Y zlsOCYW7vrYfUr5!0GjiDL%ZpiY_Z)~d0&S5vGD-?i8q-yRtdLYZK03^HWzJs4!ZhJ z-$&mwN56KB(GYG<@B%WfM@|_4S>D?T3|qTCi(tUot+E)@!1ij?hVmQQId30g^dQys z0@5yYo6IT#(vwNruxEbF& z>}q1{+FJl^9N7XG?55d#_t~@epEmdKv-bsjcb9GVS~vg8Z8vNWTsF(`Vn&zF4&RydIPm|Nd;zr5XK(cLruSTwf7)+RcJ7d(cY zJyg=eH1j=zR-9*vLMgo9TNK!{WSqCJ-sA`G?jZOd^X84P)*Z`qZ^AI2KJ6bT*qww# zAG!3MFp`c5K%T1dLJu;W$!{F_GD6Q39&NIocx@g5CyyojPT>rpSfI{UWY6?{PA%)#wE%X5{_c((fGa;+Qm%m;$b0}V0) zmh~IRt$T-`8UCr{Zk_GOC<3#SYcXOL|Cz&dlE&9n~%e#x1Bsj7K79}w%TdCj|eX^pvu-GzkRh0bPzWHoq$>3c)rf78>y z>E(Zpn!YLKpI*FrnwNi{0W&@5UcM0lKA`%ZQl_85Bp*9hkgPNB`e-lfJrCvb5Z$2j z9`J`V)0zM77=4Zoe9-&Y?#b=Uhqj#92e`ty@q zHj;P)LBvA3SOEm{lSzK0yz?v0ca9FUo|mbPb4GFucY6^GNLF!Rfu0p3Rhy2Mr4X`l zqT|pWN5Hihl*@plINEoG2r-hsSfM0U%~DPl_Y-TbJ5$qn;lVQ%RV8n1Ol6*g zt}9U*QL}5FTEwfIjhR(qQI(xg#`LaK)wD=)M!o4yd4-^@jez*tAy>-1utk)J5zkSXqA27(o&}M5 znxEYe*uyf5{K1_)C+^|J+J9p{Wv7zZ6VJG87<6xzg}9_)kb}a!lhbzkrQ9yNe6hE` z%Xp*1-sdOajidLOvHGe9mX=^-Fi)7rp&#DOTMV_E5XnA&ZHn`}!7G%)*1YO6&o-Kk zsoZV?l)Vm-L;Q>9dWe)-=cW%bCG%>wDk5!)?7?PlI_C@)W={E>Y6I-gBm8 zO`APLA)|dg=f3560tdE)tJVE`?x$Ruv~w!$I1q!;{&sfgg2-0D zzkX<3dBRO(zrn!?OdiJgMIZ&VeL&WhccBE?k>_n(6mwzBp}HVM?(CAB^r4+yh6rAe zLVJz$p%MKELpj*O2ul@NO+xb)#|q80`7Q*l6+^8B%)Bvs`U$=_Frza`C^bN+m9Sy_ zbB>q$MYOe@&Imo4M~3%aXE<37>ti8$ZCx@iAM1BA9x;a}Z1Q9M6%A#U8N zB}7;-6v>SfCP+r7MeBV{jSC@cB_J1PnWDiEl=283QYyttNfjoPw8HMf9O>8L+7~AC z^~pSv-PgaTD@?+i|42#_$w%1>Q{dQ!4#-o*hg6xEv1UEX2;pJGu{9FG)|QNDfsqmn zzC#=xdrFcyx+o_QoQK`jr%H%w&8KSWQ2pF|mUC~%$U5OEgj}%XWss?HhTb>(HAzx! z-)xT8gH2^k&MxtihQRiB(j~RbPJz%5~?i5E-KqtdsZr>S_}&& zpcTfX!NTLCDCAlpmN&&zvi}lfuxLZ8s9CO38|;#=1G1vOah=IExF=R=I8$Y%QH?ta z{A1d5qCV)Up2GLHn(cmEyJ2mqm*a2l*2ICne|>iLMN_rAX{E?%*-8e{1DNz&@Iu>1 zNU|5sERtunQiu9{l|krhMiiwj&pqwhFRNYZP*__t@y6A(sJaGTLk4+3#F}WbTFZ<# zy@~3%<`|MFd>!Q_zuCD~K2}Nt+Nq5#Kb`u9kz>oeshK@?1?)GDUmc;Qw&pPrIt8hM z%|nz|xDDqCw|vX(UQKi^n_gq{V#^RcwhXrD+#CNeaC&yI!+%&Y>p;Nc_Er^LxXyRz zwKqR@Avco;jHf4n#uj_|zB$-LaT|Pm5$(kvs_~!B&|4Z?4o0D>BizT|oc6`-C+cPn zft=_>0Rso|qiX~C33Sk>tAN}exqmy__n_oC`dPm?MEa01lEJSGNQ1K-qI=2>z9UB$ zDf|8tF0?U4HSieIoT}HY+Q4LFiW}3H%cmJ25Tt)h9ar6ANh-=TrDoNfVxVG)jJiO% zq4H>TGOLftc!@zxWtq{1`yJwCGJ_`hvtZHtM2uR?!T-x$B0Q>@vJvNOikWjB zUDc_a_4D7qQ~yd(buCddaa#nAZawaK8t|S5M!>lyagXCVgfJdc=c9EH5bx(ucN8l* zU!-dN-eaLuxK@Y7ekvr|+T;MVSNP*xOFjObT8Xc(Ib!~((B#?uH>cUW4QromA9X%i z{xl@`aI4@$2r`3CpUcu~ZuVfYF=u_5pZVfa^b5k)M!#bosP+J^11nzr<tJBca;&x*c+W)ZgH#4@p49oA{fNWsnH?6(3D%aZS53)BQ$6LSo z@>Hv8XYY^Cvo(?YJf_-x%i-5ClpVzo`B(vc^YJ%DjL2S|exj37Sfd|QT?S!BbYlA0 zdHB-JUS!DlTgrU%n9BTN>|2(NMFGzdqdfac3hzbB->&1=p~o7+FLsv!+-=`lI1Hlv z%~_e5u3d?E7Q&pg!~dz;>BMG0Jn23rfM2)&@OiAsZ~Ys?=f1Tb_O2x+ejX?Gz8zWe zK2julG4>)_&6np`0#9DeuzUH_^h*DH`a#Z z?dp$(KrY|C^u74*%H^N#e))NvYV(6CaC{zAYo0ALh+dPfKF;{{KfDtB?pFNH_UNR% z&PThyvrVbKBlqxZ9_RG*4fk9I+53$`AwkFX_{H`>{-hJ#3%F$Mg2m#8_ZGOpWJgfx zIr}Xzmmz=x?1gLW6&1?*w49Fx#2Xp(>Q6m=xBOtt?g(VQuQr0+xx}!6l(0HkxCe;C zZK1^+7~n&?B2EY~+omfFfoyF{Jo&@F7;1(;LC+Ekt~R zqwlxacN@BheUALxA)QPy>jg3QNbw&BV(TlS4i{nenQVCoP}}Fot{bBE2ZQp7;sNv$ zD23vy20)d}AqOl-wFU9q)c!yd3AYLH9t#+7ZmZbe4T%7ekzRvghsI$}Z;4Rn7?^9Z zKL;Z6z>%IAiD>Up8w$u|tnjqVQ8^jOa4d=L6Y-C@CQsmSu=8-Xfn+`pQc9p?;hkt8 zP$B~cDFZm-w;&o$G1_y|ab);4n+GY$M8s%8GTUM-#A2*KMyj4bI7Viq3T8B@uqm&X zep`FUeoU(QA`I_j_>akOg373$MPRY_SnbAmiA`V~y>$Owf5V$}Vd?~_ZnkoH(j^%s0-5AHU3B+xbhh&=xai4|_nqGf{$I_JF6_H0uk}mU?L99|h zRh@uul0}G;hk}*qrjUXxnuelRggpFAd@3Tq%)CWT!URo{izp=9$RoTftl20aP0k>~ z$`?TsmP5j$5-Q!vOu;ry&H`scYUQB_XK@H;0c;B0Dzaarl(|7!#QOt@ zK)LA0tV)R;Cu|$YdpOSx`usG}Ex@3tK%%0}%PG7#&+7xBcDTrYs7f=a9GR$sB{_%o z9>NB>cttVgtD;smD>F?WUKyw?X{%t2jV^+!qLHL3BC4W*&~q!yzmUOxiNAbC*E|J{ zbj_`P+0k;x%KwjUIZpz}@1iQ2w8%F(uaPwmD+{4yI>VGSKK(Y8T`T2;j%{|z{nvKM zH)_WC5Rp4e)ms(jb6*QAd^oSbj5MyS?iAFecMvgstC0g(jSK2R*-^Gr{SRwr5fxVx zE?V3z1PE@yJ^VO96Wrb1-5nZt8V&9wxD(vn-JQl7Z`=cYdBZojv%6M}&Y7Q8r|R2# ztBWWoOB^pFYbz5*DI?)0Wf**3bB=iHn*=0{=1VUWimnzEtRdZ_{sL+kZE5&ze~$;Q+?e%LFKnQ*G+&@^dgiVtr>^uAi{8rhD2wWJEa?Vx zZHSQR7NF=wDro0m#)PpdO$_QcNvyuD>E|Ho5>hVB-=nH21nDy9j)vkz z78Drd*KOgyz^ztqR0SA}Y>7i#xIZ50G~jPdUTij1^A$*_&5~__B@7#YhKHEjYT+Ad z+!}(1y1!HPN2*tQdkyGdje2p63UQ2X?ol045XZK3+pAYbx(owpW4KYb_AWN(Bn%52 z3>6#*jyw!sg|=T6v<<~q7laJXSV4hh;ep;kX&MN~o*+ccus~}awnR|611QoML}t7m z$hVWvu@iX(!s_0_X4}QVioxqOxWza5thkF+vUSS}g9AcED_IpB0>K-Az`spUc?@>D zw&%IGo~QJo7e+G|JCxFTsy2qyJf>FOdH;siU( z?xQuE2!apPGN|3XXnfH8iIC zViC00@MZxuv9vZ}12+U%PhjlT2AIdwEjeJF$b-%8n!y4kV2$k~vZv(_;xz3&Bpni+ z9&wUcW0QdtljeDnvwV^XM$LLZ$!)gDPqWF~wn+z|6uhIROqbSf19> zTDMAQ?9p1z9;gSc+tchiEgi;$&sV^9D|F{6!&b`?ww)zs z(2Z%k_O$aAN&9U!`<3^zUB`<`ti9mo?HGcXzlM4>C7CCZXZct5PfxookmHi~v+Zfq zk#6u1fxUy}sU!Hz7U|MH;;a`70?<4!GqepPaJ74)#@yU8W?wn)ye)0cMO=v&3hZt|1jcnALn2mWSV`{o8WPN6yOgDRPbJdkA1`)SZOAiKQ zdz%Q?)RH^xmb16`J9;N~8stj}Y#YNzRIDRQz685_NHn(7wSJGg9QLiQl+73DRiN~J z0mzN6@AlKT2#Ou4^ETg7~LS9UMA8FzOPFOQGpC;g*~lb1K|o$KYDGrg-2 zGLi;;%+cCI-jfS};#0+%k>R>006XNZ+RYC+fSVZ_tvE=3=^<-;}7~|xV9_W*i@Ju5TB&F#sIO3Ik`53_E zT~P2d{)je_;!}PgN<6)9z$2>Rjc2&lQ)Jz9PM}w2f^T{LOPP|7K>lrU{%rxsCwIrI z+nYR}CMoFBtM&*r^vg5F;R^-r%U>-4YAA9Ey{kFOO>wP9MUP+Sj9=s_Uaph zdlyB(9Pi^dm;fkwz`~9nbUNI3<)s+;v4;Yo(aZmLVAP1wE407VzYiKfhx#?M4@6l|3gGB@CzB31D|J0vdACJ^UVZs6 z-XWuVdz@JX7?fI`Q-t0p1YR9o-Fp#zwOaTSla4p&!X&RC!)r#)QI4xMy(LdX6wa*px1rl_N<4HGH4gm>paOLGv zOeLFrcVYAl6iBclSLytVZ>FcKzRv5 zJo~C=t6y?=9<4-Ctzv&Rf|A!XccZx1y}!ou?~QDSQQu4Jkn@HgXC+FMpiuvOT#F)( zxqL3APFCJ)B==*x@Jw~2mWY^lKv6x(4i~YNfvSD5CtSb7S|pZ=oy>-#N)kGP+makC z9%znY4HV13zV09DC8tFGi1{qt_T!=iUDs!;qW1Dg`NSX8(R+WMk|MqaDCaRS7JD`8 z6w7(C#aL(KkMo0^{MH}L613omzy20-S=)|_DiPSN3Y|V>vS__%+sM`=_O;Fmz#XSA z(2K7qEhYCI-Bp^M|6?Auc&fc#`)5y+u0qJQ!%C$0?#GhI+Z{YJ=YAeqQoDa1NoIaS zw_Zgn6Og2`-oCl*xK68F@L0n(;?>HpH80Dt&u#mR`7g$fr(zrAr~3#f%Rv^&MfG4%U&*w)T#cBpfQs?tlh zh4ye8K!zRJ?F*}#rxa)hTlV-(INGPaNrN>kfo5 zHOE;C2CkjDv6DRgiC)jIPvoxx(Ar_@XvLZ?QhMH|G4>$p&)c(4+zfq%Gxqps=`>l$ zpUxC&#fA&kRp@xd7R;5zC||cv-J1pYQknhTRF@>*o6E2xsubv$7nU`fxJ4Z74f)YC z-%d;GaMNmoT;(VxPQ&VysUUt(SF!w;!NxmWvow4?oAQ2&-lOt;f~R}EFpo+yQ3r}_f$*jX7l zP`r&JZ7%jcb2Fgbvq9H|1?r#xpE;pk$_rV-u-Wok`80?3`|I$y`8zYw<|+y=eLIJW z{a`xoD}iV;tfLNFn+2L5VwK78m^DMJ3WEXT5VNECuLWES=E6rA_pHBMi|y)6fpG0@ zHmX2xX3|XUr+SiYX3v}jb5zW7(b=|d;jyYD9CF9JeSPQd-nt3gRFaJVfW6(^KXvTS zUV@w^7=%4#(fA@dvYg3kIi}xjkOzFmk%cZp<`xQ&1oD2vSn>sxb1$NMq>p4)s^3XW}wFASNgj8 zA3Be`A^n%mBSr>4LMR>@;TGD$H_KUF_5Xg~)p_Nke!r!s>^KH1Mli?3$VAB67hxui zkDBwSWF}8qKKjoK3^gcvu$ieVA--ziHGHdEs;XF3E*{(qNQzbUw_?6Ll~@{YO3_!B zB-rAY%#64$o~yhtP?BkCQA{im`i88(V$+0jvqU@eHs)f0+n2}U^>s?a5lH8}dGNm9 zhP#R4LDjGcw){dJO(=!`yA;E%^^T!9=S0PrS@O^EQZ;ohtDnO<Y@9Lj3d#T-)^+F)7Bjs6w1)}UN)`Uq>zO^J_g><$`Ju-V-@Whu zI_ff24Ppi%oGgD#d?bi~zAb>LEn1!xE)mqm&9W0$IweZ7`2QvCQ-5jurSpE^eeb)n z0a+nbrK>eu$QIhl^8ET<=M>~qwcm28(PA1_nRBRb!B?r-Dado{TkE}Z_Utud>S^PB z=%>q<-`1)Y%3m^XdZ`GVp?P6}9 zjML{b?vm?ry$4VJNd#1Q;AN&XVgk6A~9S~=Y3yS)>3pI z`h~WkZ(y(D>sIF_R~aY?ut9xzo97ux0dvqlV!)7v@tZjsQm2I zbKsK$c05Erg@252vC*NjW_jOh`&5+3b;oMMQ}r_M;uO;-nR5C(#ZJFvR#>PRv--?K zZtYMI%l~75;@T@c=gx>?zfULLNm_30(jY;A**K7Om3hvwdHc6{KOf`(|_#t?L+UFm=7U@32)7Om-q<;5?MSZjl4$n!D+d zXH%Yjq_CBHuLa=NtG*!j)5v2S(;wE@fy>hC-dfIg$jmFwoEX~pYm)s?{Q=f(G*m;k z+Ar2{d8q2QG!v4@>-$2d>h+x7a+<<7KZWGfFJ%W<;9x;E=<&(w8Q0S1Hg|0bkU2?m zJctNY(MOYzpx;RF;K<0q>wV!wWx-iN3VOFEnf878nSE)23W^x(YwuzdFNnsfe5RWY zd4<)wwGvy9wH3r_^>K&U@!Y(fHoS2iA{=6plq<43SV{tF>P!<81CQNT?j5;+-9fS4 z`zg~Bopl@}J1m2<{|ydDPxM^%%oh3tm<9J6bMR``NfnvAlQV! zcO6;};@ZoaJ|x87(;GFQSja7Mlpy=ry4UqdkIBbymv--KNa67oNw!CRz6aFs;oDe% z&Tgv3Iv-Xp7n*j{6liBmKRt8nZ{H81(``}R4N$e&BNZ7eoBqSvO0Nm|sew`18`;B! zPMd*_xT*rtHu1+fjcCQ%?kAFN6TNDFYGu-#KQ^QYaQTJN+sh^(67Xuqy-@S)fC(E1n0Jw90=McU_0Rzsecl`k^H1d93q4RXp5(jkc=)^_6Su0#2T z_3yS>ds_zDXygSNm}^}A*P_0$Kc zpKbZT>9o;b;dB?DH{iguy_lN~WK{ZC76FX3jVI(KNnhwowx%q0B;oSLZ8o(8ijC6t zm1wAgPV&mO)|RT*^AL|%#!1DH5Mha}G#octiS`As3UJ9O+|x)NfF;UEhDScT3fIK! ziaE*pl$karuyp!x>*oDbVA1$IVYV#L8pT(zzNdiYmdw-`>zb^|wk>YKxK6HC&DQ`< zneL%dwNqMYSxie=l7K#ZZ#F6fQ{pf%=>k%I&tijx~k2*}I)k;uav_8J!%1aKM2;u(bJ5rSoH zT2S+q5KJRaZENOCQqXAN8!T=2GAM}mi-#FvJXNINY_(JwgB6bqUXJP?Y=19jH9|`D zo6F>UO*GiOiAa}SGib}%Te?v7U z$pp-wRnUK*ekq@>QfMPi^I0z?wx1EMR8qII@!0u-x^3Z@-I-=n#Y00cUL9rm=}-4w zOM7`*JW3^zW#hJ8j^)L4_kpXT&A^!5wCnlP7E}J-NdMLaKhVw|-`-R4+=w^$Fk9D!W=1Wk-Lc@Z^mY$H6? zM}`yqStm;mH9(viAWKCE%i8)o6GS-wfUx8?=yLp>4Zv`Y7IPVDT)VRzbw2HQVyN|R zoc(Rt>1jLaW&JW0T>CDG^6KmK;fB8&uN6kBgH@V@p>VeO#|~$N4!`0A$IS62T=x$N z0fy=s0TKRVhL`1k!8rAw*w_19daN|DRyXXA3MOw~ z9-^Ry!wI{|NMP30i{W%9uSI@ipE$NJsYNPy)#FFG{_KtCub=q&(0{j12r>(}j1ep- zo087ma3WUu`MKAS@H%*Ahwn>AkD+^?Xs`niBqh@<9Wp33f%jHQVIaAq8sPJF~i-{M5(H!a15Xr zk+T#Bu07K>`5(aex>Guc=wvo>>C zh<{oJ_h&l4MC_%oezG_W6(24ym3t<$%(r8fuu>25d;h3khSQzqxWk1O54E4p;$(tWb&TRk_ml^{C z#uEkFkt#Q|(hN>bG>5;_+6o{5Z~Jq#FbBWHi@g6e;$FN}NL4wf&5sFcOIi#}m+; zIj9ORajzibb$=-%^i6P{?`@9@XNY&mz|)ND<3v0|^efaob%P)KC(j0Tbc+Fb(27Tk zrX(4rS{c2NgDT8P@(OMh?NSl`YV1bXX~05LmZzLk%um))?H?L1q8o?Lk*0`VSWLf> z`KOh=X;E2cRee9voQi!}M)_}&vG89)+2BOCMhPlzRocz0NVBJS5ldsc=!#VB+ry^U z<=Z1DlKuVZAl>Qx`S|~!!Fim~>f_8Lc#_WP2`8R=hi*uYCml#QpHkj9>j;IJMn!E9 z&mBw@LOn^qvMK8)MH_Vd+F2+DeKEuMl2ywmzfUQaH;+!}h;8~tiNYm2pTN{i6N8dT z?O3;(z-W3+q3a$;Fu;(={($4}!SGvpv@Drjd?3z_1%>FyTjE!*3yqDtJZ6j4u%PKk z0+PvZ83+m{Cs>6h=wG-DLOG6P#Wf=LTAn@WGd7=V5>*JoA2NK`u|Njg6b}ABqNFl1 z1^&1J9tGx%ByGtW#6MF|_-P0X_+_o5l4%-$nHm|7jU>%pQ?!`NuwmcC8f&ToUE*Z$ zd}Ji}<8Lw%V9n`!TI354Tr*Hiz~2I&Wq<0X&^UgN;&~gHVE0r>ACWJW8;+JY5+90X z?<;wn)Rs=GyQQ=z{oR4215I?Mqe-|q_@f+0FDN8=A%ShtZ|{ zxjza+9xoAhXSN)-X@$+d!X*Y4GoOV}8r2*FAE0OurCgZKi>jz$E5mK9iJp~M`R-Jy zq+yudORQOCsTQCCEYO-*Z)-xcE3&_!{l zQ9~QxQKHFJfIVyrq5v*Mn$vG+kEo{Ar!MuHePz~}{1EeJ9aaf{8lwcOf z=3Yx_psT#nKG)UnQEz8(p}NwskPGqr%e;LC(CXNHWAki@-9B&7YCqPv^sCJd4cH88 z%N?i{=lK+V+TYR+!esZ}KQp+G;q5wSz4AefGluWr?c8!;_oDh|d;%7Q)!U_m(Ys1` ze|a4Ee;B8f{2p%h(;$UrCH@DI$W`z(#1UT~XT@S5N2#3hvh@?odUBuqHDj2tyB4s2 zv`0bmJSzQAOS=q{LNzmkOs?4Qt8~)r6^jSnv!EfZ<=-BozG$V`b)QJ9JeV_d^)nR2 zkr99kFP-rWopO?NOIbQH4{ary_TFxw2T}IAVf~CWL?>vz4 zV0bdzMURl~k~v9Fl!J>wh&`e^w4ezrc}8_!l79&j3Xp0?DpeIK8mdunpqyfVIhSDU+aW`?b|)=SP) zb#a9o7?Y(+S^XDVn$^b6OmMAJ@i9JM`NE2MV|5VX&{zqy_oB!qP$Il-%nX2R3X8Qs zEt`9my6m+_+JB?d@Y2L(hX!3P?|zJW_s~O}qOdz#2%Pu^xFH+SR{E__o>sK}L{Tu) zzkO_I51&)Ms0$EzbC;pzX+)*wCaX4Qzb~AB+Rx5ecw-^p2?*Qf=5QOcqkqVW%r;?_ z=bGN}eV;XfZy0&{26)?i1bw=Z{S~`<(C`!Shtbneq3}aIbHJ&@%=1(x+x-@?-w_7( z^Xx9AB`uaO1pU!_Af5a^eM27%NDy$LQoQ}+lyjvnZS?~qu`O}fZ|QORv6Mac z2Jff?%nZ4nwtK(LLl&Bpg8Gb`z29Z@bRH2w6WU)7HeB`u#K4Bua~tmu6}6og{P{1l zm)(!8*zaHosLlF>ZggYhPrR@h|8Dl4)2u+i6;#D{L$2ppsrCKdg*{++Kn#&F_zn7; zA^M7SCj6>0EBvC9_kQRUcyieS_?MX$W)m|g*( zWCWod10EuSj#q+^MuTR)1mjo-o*xCFc?V;+1`&(~}@bbN(%&Q@&D53b;q1c3> z{H;N2M`1h+;e5v->V$|?(vA|+0G$;bcz*8h|6f(1Rn5lM{h?MH>BCbhdh-+D75cDZ3kuVy- z5alBcU;_Cvsf2*iw3z0ifUS|qgfT^YG1}Tud7}v5K;GMf(ODS`!4bGdo-snJp?|bv zn^B^mSJAF0fQQAHakHr2*6@N=z%2)M%W?3>ufoC(cuqXyizo0wy+=txH38D! zTVYFxM2LpD6UOyNC0UA88El1bX;OJb5q;IN6`@s3B2PCkT=0{`Pr0u#o6^T8o! z#DQ6pfB75LSC%mMgncL-cbpL~>=VzOnR4rlsz8*aRGz4^mPqK6bb}I4yp}pFovJvN z@@$>_k0B03qkQ)n9_iCBxTGX}{?t{5v;*n%A%?U^>D2UsBv+qA&+>G&wsg0)bWfdh zujh}IXsVOpUXJ6)uX>cC+{u@ium%h-&v0eTh_*?}DbKt@$pEaSrx9i4Wo8ufr|0me ze*KootRfFjlT}WX^*cJNu`RRSCOe-fyC6C{$|gHZCz~cICK5%cn-3@3C$q&S^N=Hb z0yW`KG(A=)`!9cX`dZGIP5KOKZaQNc4J^RcQ#5oq3mxi`6JwKWx|TDilbcqa89Vlo z0L@yk$<2%g9zUo1KIcrxWVmPM4{2l3y7)6`*hN2iRG|Vo`7)n$u$J3$p4$pA1h9`! zaIPA7K23ex^sK58tipT$CbHV%lCx#8j%8^~VZ&TH-if=7m<8NL-#GTkbyohvl?1 zti4naO+;@A#)7!QwBk3&tF*+oqAaVTqP?QZwjz_bBBH(AfI*Sl7q=d*vW^L-+PA`c zwxX-OvX{8Z=EGCuTNWl;f-hQmGNAe=tFq_?yN9U?jksDzwp!S>`tYjKJE(d!rece@ zYQwfrYPM=*y~>11#5)|PwY>(wR1JBlxgxIGAFnx&iRL2CL=&q$U;lmm(cpZk6&9#{ zL94{16#aq&4N> zOK#J6G?xSppKJpFt%1O{o-Ml`Q?Qz$;jQ=C)S32E>k-^WUwp zuh;{EU5k2M%Yt1Kat&iK4OmM;lYbZEDWl$Fbdq9o@j}E>z|m3VvZ- z_qq>o^IWc5%^5+e*P+E0+0z*T%7OUk*98%*Gtte-x{(`J?_sq?hL`VpKI@^ZuGwY|q4gQU89ZGs5@t_S=ene$onQ{SxW#ea~tGGM$6`{sVRG0}_*MFrfp@*{fo{k-ynF*!(5n;-3uQG5LXIF;cXLJ1Uo zCPx3!LjOK8P%kx07km;D^?7S0OB)<)!~W}d1q;sSNn~g*a;tn_qkq4D!9>&MMB*lF zc}`p9=6J(q>j=xli2PVQ=^(Th^%fp}hIA7D!^RUg+8#Ig_xnWI2Rn%|QBFEBp%WfHO`wjW~)E7x;Y3!o_fLy z>NlOG!x%fRn!vc2pzWJt{5H`aH$f0E(c(YX_K{}EnY-ScYds%$#lY7bo?XnD#_F0y zpF+(sMoQ>h^HSmvkj)FfO)H-Fy!(v`z0DC;Pt#)J3$jjP zPAxJ7;Pg+puqhAo)88tpJmq<}-kIw=EO zO=evcsamGIm_z%t8Ue%!4_Kw`ns!xK(665NRe*^Mo<+q-Ml4+UX0lqtx|$7Kt?63( z%erClw%!a}69z7Oif%LuZCC^#*}N^ZlET+wZt@nu^s=tS2;tOYZp>WZcJ!_bTHq)a zulP;j5|*s?R&S0#6*i_YH+mdakBFE3XE!F_HX4N1tlt(ggtqq_R>yNU>J2td9afX7 zaaUP!TFh7c#9?0Fa7Qq=wt$;sUE4cdt6+z@&Ec)nsm)lSO`(g;(cBG`yv=Tdjfpqx z=UiOaJc)z<7S_6Oi4FIV0DJT`FrIawW_!>!a4&mm&mU%=3$V9Ow#8hJt~oXTQA$18 z-=CG=Vlx5pVr_HPY_fMRuoxb&O>cec2Hjm8$O~^s$M52^ZHaFSf1So1&OMNUth3j^ zNRxv#;y2~6z($7qgu{DXxtkhn;B7LnBOBP5ZO0I>%2>F6={9Unw`2W&=f_Z2Y%WZ-_G?jN1`^zRI>M1iavJJm1W_KvTIuojXUMf(IZ8_d1`^&UIqW zLg42hhCm-GqzDpZ-L&0WZSK6kci1(?-n7D*m#SV~!P+%a+O?V4)=yaN zSGax0x);K}_usih5rdJ0!EibdI(58Kgg$a(-%!NEXWN?U(#mHwXppih%my;A05f#k$tG*5E{s8L^_7jpce z1q#@Vn1BNvWpG~%0o0)L6W1T{2&5#opA2;cY9%Vgip9E1ry3Q#7y`5~_-7*7$Yk$$ z?QR8fpV|H+a4&x_ipyaXnk*pU879i37|Tng47QX_aYdd+Tw8WnZ;}secR-ytUai&d z5Wjd?y0MtdWL3)hK3fSU^p*IXn%I1Kl4qxqE*a;YGTjzt_pV2T>jK^X%i@8BmHnUl zPFGQ69$1j;_vEsphaEsx8RSMZS*%pbrh#-=np^tWsj}VOaK9?JR?)7%5g`(JANMZU ztMj?hiih#8ZrgZTp*PkFua=_qd0%rM@_VHuC60L}uFO#ksaOt_KmPqpUhqUw@Uo*j z;%{9~C)-cfYPj+nla&8tSzJ<{%f?ScVDM7Fyq2JFD{)a#Ya$R=`!39?(^n{vl`KoFy$uyQm=iLt>szhPSwJ0ZHqZhbl4D|1+ns zgQ^E7o;<#0`_I7YDmHT?2~VA`Co%WS-$kmiboEm#JSXg0NHt~y-3cEyCaA^46eJR+ zn%CUUeA9FV)c!yeJvS7*w#_GKAM?q3m%dcGVCU5R_30~0@A1CQaYXV)pH4Q6XxkzP z|M{4j!APb|_(eQ!058hKcSVCxZpw1@&di5jafN@(_0FCWkJ`o3Gy@&36ggH)auy6! z5KcEvKH9uxO7ej`k12XgFPo5RSrYAKWE-~gmpNrk99syHLtnjl@A)q*ujKz^#ad=cet~4K z4ZTJPI*s0Lo4c4ZTIKwa`(3f7*Vl*tNYPx1W~?)GCP(TvOp)M!pC<^s@Mt$qc)NRP zEvWz#3#30eSHN*}xlh_j33)DPSiL=YuawDo?|x?Qdaez@)b~>3NA4P5&4F&+fzs*6 zyblJ_Juty``7i&@ZCbV}q|4ZwB2Ic-4gGGUhE^z)ZcbXD&=->u!4p4*AzeQf<9F*i-(3M z`0Jq;e99*LLdD|}Elm>@VyWFvMm_7xub=pzDB*Cgk4qRmjWi6>e;F@SDpBzKrZ_Wu zxp~f!#@{~^2R@;+2vrP)gHFs0mElMCFpd-91SW`&Gk(&#*2i%EGsRqqs^yTR_A)oe zA^s#SPW)aMNqDz~ZerG>W;v(%Ywv4{rZjzb6eiY-BnCE4~iJGu+u;21;pUC zVdLf5lq{|i_kUtIN^GBhiK_o5bt{)>qg2UHzO&%^yq_xwsZW4a08&gP7Yn7%t50;>OI#7U*A&F9SFQafdK<6LlW?BD_{szNR`iJ*G zU}No{%yO~U{#A*Jn#Ks&#(i;r8<_U!4-+2hsR-ayt)Q8v%oJp!zf`dtdbe2Om20Pm ziK{O5(#R@u!Km!Rsnr5^Ulg*2iEk96R9EyLv`R8D53~Ly!OQWUS&So8bK?tYwQO3R zXyYHtf6-dqMLhN13ifu$A-dh|sdcsYmG&APx|`cPEm5fsPPY|mAYAiiFEVMhVt7@b z`8o?73pVSog`qaq%bbOXtZskTf1K;OMr0JiIGAkc_2YUq*8=Sv9RxR*hL>Ba@!6fX zNVXsHR=RFzYaI0K^rzxffj9aPt6V(;GwDaB+&8D-CV`oGw$c2>@@n;AxovT7!hZBQ zMnL9|b+(2^3nWiA8AO)UbeE?d6iYfJcE(%?K--95SYANEKM^xFBbO;JCN6hk9>dIA zfU)G-sCr%#l|5`IlgJ_j*>qnzqcB4VY8Zu;NUAH_oxzWn=p0%}x*2E>)6$Q~WVdpr z%VC!}p>b`O_-TG65aYR@XqqEAlO>ftJ7&bxa1^QYe4oWEeA=|cP3+;^N)Vm5jAYg| zztj{QY7Zisp9|42Wii94#vrv30me7EO|=*2Dpu`lw!`DqF0A$j=o>5WyH%ig1v>@1f;CVYZzoj6 z$yrWsdwSTbOQIUqH&k%uIjsfSbFyXc=cWgmTn_5lRj~G9&*BFgdU*^J{)M;-?xOAV zb~mv?e17zLJ4xMfeA0uCErV<@lm8az}fH?HMngY`>GWs1;?ty4Rskp8{jq}n#jOmL2M#B=Arg_m&( zgqw|-w@L2GxK%f!f2sNY&*(ikY@Fe-`Z)+Ezjr+UjO<)|e1iV%1H4|P3{DgN$Vx8M zy4|FFUqKhS4*gEo(FJ$V4a3!Q``UB2Kri4c`tHa3S}BU&DT*;EirLuHttWD)M;#(9 zg2W|~`?VJVL6BHb4AEQ^mbCYNf&nK?^xm!qvr3GlQ;f7q^lXDZEKv-HwBwU~--udY zmf80y-3G{yzO@1V6_UQ2*xs)({j6F20h~qh95BR_Vyv6uY@MPat>T1n;?P*JZwJ&j zU;AJWx>w}BU;al24Rl6AkQX29;3orh(Q|d+RDES+`5`>m&-U-f2V{zQ70Q4xzzR1Y z{7amk<~ybSk6IG(_5b>llLuu;P_S?7=BuZ#{f}ZY*KdZJM;*4@J(u8sFr84!-;+VWBUn z@&W7744WVfSdmKFat%n5ib^gH{alkYYWx{ONqLn$=+rqFax5wDFX8?#(n^2C8e_=Q zenfs$+%jjx$6beI}Ptu=DGR=R?yR#R( zA-J&7YtbPR`=^P$Qz|M3&pD>2I zFm6VNU97C`!npG*a?NH?B@I`#esg_}p!0xq#;;KzDaW7hg;*C5GG4mxN2x%d(4|^F(#`Q8;9^Fy4@#V_2fSaoxnk~Hg`F* z3fS<);RN~daIR1?swgs|sgTtqNtmHU{Sis+sYU-OdF?4HQj|f`uF5|On|I^uG*KI! z<6Dyopvk|`jU3_ipYl5_iu;{Y!j)6|EQ;$0a$AE6JA-nz3ko7n$ZLxu=be**3<@Qy zNd*W~L8N2Ti&fVMQ(+h~pR{K}ucm{IW!LN#E+)f5MCBci6>2AEju)qP&y}`+D(<^a zhxg8$kSe}?pWeoph1pViJ5YjqQ-FOFf6kd&HJ`eOn_A?Gnlo2gz=KsFlu9O*b|f8z zIV&jo7lSFJ@IV^1Y_Ec0pm6R!hmkrL3PSo=B$$d7y>rA}DzIcxq;HXw+{#p}QIy=O z6xHzr2CC2Is&oM=FZy$kpD0&Vd?6@OV2-JU?@?Cz^K1bMguuCF^$}$bRdNMY5(PC< zAvI{os0uIl0*`?j59>S){ycB-0{PGaWvW^UpDMS4nuzs0{k`g{``jvx0&A}7f;-|A z3Y=S=>Q9Ba`vc_=XN4d5>O|GEKQO}ufokLi3)FAwDotvXZ;N~mYX4a*aItErrm877 zsROjFKcaS+9Rr}TWFEKiJvcO{1941 z11_)GF9%;K$_i;pr^d@1&fd!h$*@Kd096Qzl^Dp>&ecZ(LFyi4EBsq(8u&|E21`&6 zizQEuB^L)RuclRZ7r@>B_y-a~Sa<+WIA=!{MQqi@5PqL4E4DeR?dH*tm0o3}td^Gq6>E`0rY1 z(Au24>b!=2Dyy2k!@47)PML;*WA0MS{YE^QE?@XUQuV6dmY&*M-LLVbt(qY6W>rcm96ua!7G;Y0H^= z-6{M7;MBXf&@IQ;chxZJ2;Uhb0R|h%L=AtJ>)zNAXZMq& z2_Duie)Gbo;W>hM6CzC${4^8NcMu+dDv6;QZkmZFw~4aBE*@l8wA#38$oPsZ3KeVh zBgP452|}_ohOgN~>^5cM0i7RiUtH{5I7}h;Dq>C>eOofdbW~vLHGxvG?UC`AP+FJ} zu&ogC?2<^DP#ErVv%wJ7m5GdGh!mzu!kk9`4P~poB0-fuiOFnEP=ARwm>q z#t>tT=0lBc6T=8I!DbCDI#X^>3m#z`9yZeyM~k%h{lsmHbnqNUHz;J(#`M9urpp)z zFjf+d3ePi?p^JjS0tIJS2AF)@+!&VdZ8!{X7j|2>(rSl|p5#1Oy8&!!!G~Gzw%P!T zWXQgr((Y72ZJv1+-=J#g0 z%V}^>a2Lcd#2Ka<$#N8MKH7aeI&H%?8X^EO)1Thwvph>|HkpdB`A)YtNpQixd@jIt zGELx6M`uG^W^deVS5R|~8R1}Rao#y?H#i)#MV?eRAZ`)M_IgCCW zk2yjP>0o{698MH1S{+aH$xpJnZKeSy(`h!B&5rKPHjbk(7eW{1ONN3#z{Fd!YSD;0$+HM{HcR0!6k3vI$h$msRp@bz<^3tptlGr8jz zP!Sh=f9xl21;Ygl;@Q`|#&qR6m43@<&5 zpdQ9Xj$Jho-`L%7z3wGz?^$a-ECUx+Q8~nwJczMxkHtZI?~&>&H#U@>Q1AmMG*ZMH zMk3?fh2m;dGt5=w5iZ^SR?!RI%Zrx6Ydqr7O$!0;i`RIbmkaj3YtN&f$YY?B7k0YW zA;gP*#)VVs+;;U$&Fk7m`OYTs8oCF*2`qbvNzaJvc>=}X#kF`6W4nhvI?>O#yLfr| zU3w`}Jh~b^2OK>D=$%8Lk?xPj!F7*mP-pj+=Rm1Pk1w99n$KxckFnj>K2km@$d-iNFipC+T% z6!s4W+pj78*~iEy&+9n_**AN}2e9MSI^&ZW_}cx&w-4LD|H!W}-KT@XzuC*L2id>B z$Inm7u~g|vMG8{G{93W{5(~Ykul1hf{k3fwGXwP(3v?Buzx`k}ds-fsoc=8U)@vIPiucp5@X>o6a`fXhX zY}5OW9tA9Yh?Q6T@}&Nae&yF*;gxq=t?lAmbB#Xw$8V5dG3aBh_tVJcANcsONeb?>db?7# zH(fqM?{$HzaKZ@<4yU=bg^02R!(pnMUy%)jA>y*zA76bPio&E(t+q}gLypA<11OKL zDaI1X|Lfq)>-|Nq^|8M4`Ih;U-D!kGaPVJ!jmnR#_n*+ z`E|6Mq^iGs$;E08DB9?H;hRj+V%x`Sc>i?AxYlfo;S1f~V4+dRm@x$5%f9egB*1Yxr3b-i}L4TscXg z&ci5)FUnqPzUVoz6?i8USI);M;OsiaN}c7pl<=tB1Br&mExOrhFe6*1j-Bq^*4H!_@9mI<}56eK>{(e_tkoK}K3%Vv?-6yr;tIR|4b+dsM2>3U&2e-`?x zKa6vtg4iPV}8r5MIWMUwaBdclqR{>BjK@uZ=u06SUL;k@Lbm}C`Q;YM(d{!MDX$d zf>-u-q(zSVlQXJG&0LH>W@v=k8)`g%Q*1svYKh)wI7=Sdtxqbf2vrQz8r}>nKsu@S z<>8DUH6A@g`Cieh)b0Fu?(}71FRL#*zOm#IbAZON{yxrNfu|wdAoMPN*!& z%#8e=V7wozkS&fSwh#tXO5Stv-OnC*ALrkq#IND<7;i>min1pG9Nqcw@@xtU6B}`< zS{1OZE>;4nu=j8WSAAGS@dCOI6t+0^u5Vx%A?{;T4M=n@_LLz5`ng<^HaCgPCUzIM zs9cC4RXMp~!3+s>EI;{OEvv*ViM$m{)+~g6;R_xOXknam84RZsUuacAS@-N z9&|2~{9Ri473kEIT9acECk@Q_uqSh*0;r(#HP6?kP}!p};gIt3L`bE&B9xGQZ<1|n z7rIYqyET>mi?IGTg)188zz+7>Q&lD&#b05X!V;}RFG*y%K4yc=t-@N{H4LVfzJbn; zf`-leYKX`^1CN!WRTrodTO-~~=Pf@u8?Wgaef*OI=1hCl6O~g|4AzmPqC*zsGFv}i zOd%}Jw-hYY(%4*mshy)cAcwh>+;>kR(QQ58Yp9lQ!DVZVV!PplqKIEfH3qi12V`O+ z{n48+W|N7rGL=JN>S5}sh>P>w`w~?AnRtM?JeH;`t5h7UZ>Dz7u`>SmTg?H|(VnXn zUJPS|B{VHOQ-Cx^hz3=)uz#@#mdoBi1jt!U_$EyZ2ZSL=Fz=QsnvC^%Gv&ceG<7y~ z!BE~q3nFrwISH?e-_|gFQevF3m-?5zJ7r1+7RQXIo`5;PJR!w0pHHD4D*~I?DENiV zWq(AKiPoH?hVxSb)9+y9h=HC6S6y5Y|9<+sS!#Wbg2%8&u}CODg1RB1I;np(ib&SR zMZ8NxBr#Qs>sIrgRA@d3<4y3G7eIw9vc-pq-(Z&ud%ahR*&}ZGJ}@!1%g^PZ9fJn% zyKx8VBj#l*uR;BR;zyzRTghs)i!{%Ti_^>1n72Yh~s5GOcuaBT@Xk7HjR^$vKu zy26x~UZ-sI&$uY{AB3>)$@e@vto82U=VrPK3_~X;x`0FK%f}s?x@T=8Vopy|g5BM? zw;e(URn@$0uq@LcDUAjr3*hxn_OH`0H}gR&MwfdE?g-fgI`buQ#h?jZDP2 zU3OFigM!##wZEP>5vL zfAp|#w&!q2i$u(-*n*mK4gzn%&f%y*kW9FciL8Z9sCDPivNAMIks>p#J+=VIuS zl29~ZWV2$kj^vGi`+-5K}ddA43gWCrOf89}}c*%fKNhj)* zEqv+0}0`-+j+r!`P)DG1JjBn4QbLHQDNbCHwc4 zNFa=O=t76xmN+ltz+#@vgurr-FFSs9lYk!lRprB|H@fgAm+7e@*-G#}WG$hv<5z)v zvTq;IKF>QA%!Se|#oUO6PoL#CbNggK>ib~=X}LpvdSmmBo$k3$u-T|baPJufYx|yP zyM$_~!ob7RoJ6WjkIBHkcFXaBSonzIMuy{DJ|_I9GN-C6F2%$zmJz~F&&4=ZAz5xe2t(q22#9ZC=(Z& ze3~@F9I0%iN(JD^MUSn_s4boM4hb&7_>mn)hl0j}TUOc6M)V()?-{0xRQsB>B}?yA zP94^9ms`^DmPt@#F&4$w7_68JEU6qxE7|)P<@7PA9N^UKDJ+?wcdyG%}!|d&G>OC>W1K>zv8*Se zN(-(C@5AWfFbA98y2rpQ>D21tx(IVV+q;px%5xJ-$Z|U+2h;bM^@OT{-%{ayYZYK` zZEGi|X|D@KO94(6=W zghS}Z>E!0cxJP*-)W!ZTq0B+qMF<=imWF(eF^pZR>tK?o!FU;LTk;swZ-*^}g7R3MYhK+Tqql(OFxgO|++V#Zh&I(%!Y$RS1d0_o-9JgtOYi zav6m4>yS&{HT-9G%JwgbKeuQ(rEG`R2%*s!krU3MfOa55ma}*XzWA%5)S4DcM_J06 z>fesC&g44m^{@P^jDLL{bTM5ps+^&#B<4$rFdr*SX6g;FUH<8^zKmRM$50@SvOce6 zeT*>S^03Jc*<*Ipc-jT4K%axrCI8S|n9f*-2 z0l93xU(0N;l4sTDc3*#-HlY2yKKi6Hwyq;J*(uFj46{=)wi|S9T_EJyl$~$nkdx?& zz6fQ&kS|LzSY6X@t9c~5Xm+{w6|+-;F9eC%DWOpqBH@_-H87&x!p*u)t~9b?xoMF# zv4fl`{a878n);A$D0^L5ZzVY4|5vo@Y@f^A2ukc1#e9iKC_k=h8CC+R2z)U9KEnS` zyP8d4r(08tnQ^;)Q1GCF1`Lnf5sBs0twX}%O{w{!O3T&qkbhYdJbf<^EYohX6|AT+ z)=F1IiQvkRp_t4>12ZW$x*O}I=9GSL*j>S{)p*~YDn5A_Zv(yLNH*o$>URgVp=ofQ z9=A<<*$CG^uXcdL32-J^arSDXWm+o6PZCAW`o2*Zcr=N3w26sYGg+)!`p%Y%pa317 zRQ(&K{uOiZCe;cO{e==+0r`2@Tgxqo4Epg9W$A1J137XM6{5S-E38us3Tzdpx|s(} zCC*Vit+LgJ3nLtqr%Xy|w+wUr3-v|S=N$~eezYQ7nPZtFR>~%kqon1tjAQ^Q^`sgC z%fFc7M8yPWWEiw^FctwWZu%8QiMfd9(~YBE;6+BFj==}Ds(46D67Rrb_4BA1_2DjH~)aN@Zm@&ZUU7VTT5#qy#WHdDcIjPpTf zQ!S0w&@$LXzz^X!tT@VcpGh`Wbwn)3j1Y$e0rfrLVsKO1h!3dbrLSdal0&!==L@Qs zk`J8}_-s!~*lNg>;(bb+p~5^JWu&+*N5X-~Z-&0`5bIenb5(S82xc1WtdFk?B!| zyQpDI4Qy14M`B|~;W;9_<64Qai2bzK-H6c@Dv_{UZHY+7r^S~)V7N-@WDaVv<64jk zyi~B}prZbXGCkm3sYr)=%@^y?+5Tx~<@v?z|B)u8gtwp*1187qv%{||E5kKXW=?s*LtFgR31n(aOALFJ{uyU=^7 zJwTO-itmbfpC!fMZ0Ekc;<}E3>hM}~^?VG|U!4Lw?hmyhV!h~Tvj_hn%Z0zUEd$k? zkEr}^HbWvjB#P=b-R4KazqP&WgMZa#_wLtY%kcHI(6T_B+i_`@_qzoxr}z66tN$z7 zl`Lm~I??jGGnvr!tZ=dka<;h&<<;7bEGI1x$?%V`(08d7b(usY)S(b6|F25M>50e@ zDD)H0JBnXSk#S>KBXN@R(ZP!nsN3&Fq{tOnnu)yFRG1RcO8N*`@a)4W3m3RdCghk! zGU%>PgT6By0IahS$rSYlN~`KZ0(sSu&}NLUPK*e+v+1~)sLTj0(M2NJPg1mB!s4lI z%!HSo&;;c$sD6Z*kpoPn?<8H4f@1-c6|}zs1ymEYeGVSsPDUs~ierBX6f2w>qw`0o zl7$Lbh@R%lQ8_jw(y$#o7ShVAV@mwws4!)!7?Vw7bWQV~Gu zA91O)u&N50v#RWmt;p}f$(k#U6OLiILA%tL(B zr$`~}&Xr*T3DP*KD6_BfI>V?#4X_#Z=CF;c)0STv(^9G}xEOS2q&yn}d8HuKbg>sd zC=i>YYV7Nr!&ksdnk{W5unsm^>uXz@t$o86j!v)Zs{}l)pN zO;&{H?}0$A{{ihE9?-U23j=^Aft%Wa`-a!W*EeabJZu=;_t=j&bM<3A|Ch^)6C%MU z?Fu3^@$hsSfPVfLr8Q-G1*KAlOYQ7qc5Y0Nusj0!A&nQSgDvBaJGxfVkoXhg;Cujg zRPu`x5cJcW%IYzwqj}uZM*iS6glAly`zHC&Zy=qs1*_m&j7!ug|3C(oOE90*DGt_m4M;4AOb4QN~c;z+jwv z@q4V5tX}4y!5a4xmTntCqnE!fEqA4%**5afCbafa8hj>&P%>`5^Z5_W#nSJ#+MykP zOO`ll%;M|>kzi1TM7ZuRGtl#d))pI-S{nTV>@2>0Tkb;T$gc1|2oiz991sHeIyCMF z3%suHptiP+UYrNFtx{L#Y)M9oU3zxDZeEcvOTJr0ar%ARdYWnNVNpc)8-y9|IITpR zi8~J1R~?X?4l>|wjmXUI8N3%VgvyCk(jUJ{rp?ub((R&{mZY!S!ASO zWuFO@dE2*!)gieMJ8@Ej-kMgOEo&|Uf>yu+Ptek1U=z=e zvXOvnt-!s7vzDfI>H`xv!Kr39?!9xB3 zfqop|2H%tg!_x-LSp`Cw1fyvO<7)>p;{}nn1)qXKE+YM5WrAT=fZIS<>UA4pe(jsNkgRYC9LXLxMpCV)0qGHp-UBTW_3i)1Z$%6P= zn2}LYap}>SE1zAiQEWTTC%~yrcRl@7r;V*i4SJ@WpqwSKkAbT1b@)rTH6XoBK9((x|*L@t{ix<0d99Nef*V7h%{uF#tCsc)%-yyqfp`pHzkb&#+m|0Dfu#eKPW+Gn97#5z*x&bsax39UT{bkO-)lsVOz-jQfR{m%a|E5 zl_AXWf|hoL;Qc2(EwKm~4KFlNl+j+)C0h){FBbC!e3L7dk156i6n{G{w#g_GqA%gM z%}|OdJbXqYrx6-IFyzP#5veTlRw*^tEwz3rHm@wTu`QMAD7LID)mlqe=qOdlEb=%l zb&xA_kSmdTDYhmkS9mG?R#~!*4;^7FG_0P^1Ew#Je<^oH{ExIWS+^q9w<4XsJmNGP ztO8jJ5E_OlHF-hH_>`9Zmv&9;sF+!W$mbQREp~v%C^fCDZ1JsX^R243%_ctmo*#qW zFIDx4w+`u6k91TvPr#u3P})87JA-zklR?+9LDzY%-RFl5My$W#ubqBQ zgr2K|YN)$>Mx&P#%Dh9H%&ezN|Ma`n!|F98)7M*6HW0j)6Wdj)vBClx8bV$gQVAO4 zCmIg<8{pO(Vc8mXqGiZ63HXA*@&qCo6=% zs!0K&1-hZx)$X?&L#syBZ#lnK@=i>*$=?Bbtv?9czA~U2eM2|-*~9{9HOp$kAQUEs zXbMAWaX$OahtwLP*PK4tkY?AaaE9sA*(@vn`-k3duc}r*yZU7LHo$rdP_Lc4D*Lm+ z7P#J#P}T8UubsEEy`!^J?zNdY$+C;ED@(7P56LZIy(1#4$!XoT1`ZmrpeBdCJx0F0 zrV7evy<;G&+v63j&JT0#wObDSv$O46XZ5$vpM))!p-rq--9HK2BkbCDs=CEoV6GW@ zLEl;&05JVBdKah#3gkT^BDech_H+nqt z2eQsOTfX%iuJ?fax_LVX1sL0;6FbEG2OsSQ|G2jdl0#=h4E`c)$5iOLIQuQ-KjiV+ zeDFF<{?=oRJc2Ye?3Ok3H){}6p_Bh?=uexV+(ECpz>tK%h=%=$hh4X4Y!`ZVmx#a! zIB~#xqtioR;N^7~N)*u%%qXOKK6E%avRu_~+&LUd)aY41s=+wcJ=s0~ZG>KBJnVe* zh+#w`d+d`~mAaB%gq9I484F?@r`8`$)*lZd8mIMd*L<5GW}Wno9a%sc?^Wmq=Z`5N zciWn(!hD5-79CFCnCe8HNEH}rvFj7u7-xi^R@<4Ju^)x$2e2DYxtYpU_&2S0jph-x z@zgh4Fg6D3jfgRJn|*^lA?o>YHc4RLmPyog7CUsyHQ0TSZ)3Z|)0TFIG&06V?% z29tyi3sMFPqJj&T3g`^e^Lz^E%65x6319EZtM{};h!B_wYChr{3C_m#xB z#o(^xqpW2g!I{m_RWFo9ctP|~l(o>!|JcvDy8&doE3gG?Hk->r+2~=43t>zv`6#RL zg6k;`t8&w;tgyrBdvn=}{r;?-gG}wiian##qZJNoaH4AgH7ilm8_XNc#oZgz7fY}h z%jr|_g9aOeV8Qup2bjJ-!G6Vgzo|{)#El69!bO9%r5Y@mnyr~B_%fmm7-wvB55Wnd zje)ogW512foUNgNVR6V!4wD_-uR9wTn*?fbZ=2i4-8%%AJDWAT zCvi9kBv@bLaiD5%*SAxV)|e!cYlOrz2su! zM=kn{(&~l5X1vl-;0%1O&}wqP=I?;hz#7m=?QT-wZcn^`O!GD<5FK*+^iz$D(u)Rm zhHFN-4(>+#qI`|#^cOA92=j9vx&`73JR_bx|3qG`jNwg4pec;5a|~~iHm}xEZ+Sk? zNTA$)>Ps07(Uk?!*|P;QQMTZMZ%>)88CY%^!8bX~w^HDnW9B0QmTNSYTMFgdV&)^6 zpnDn8d#2udilAGhS#<0!bv_CxShRm)q}Lq(u2_TM?6^yas?@Tb17i>t1<3tjiVA6CRE-XP=AE-Uo%>`$*qg65cWlF(0S-SKhje9bT*5bVx7Mw z?8GqkF~~lDKr%phoIpz5yQ$I;!W2|DapYY$(=;w&{jHV_ssHp4Cd@-x{1?NI82VbMyXL!3VaOF!vH{M?zBs%SEF z1!a<5_9G(AP8T*-Z$ZFpLA2rXrKW^=FSMT#;{O+FrZ;t5k0cw$Ob>y0@bl7Agp-V2H-P)005E1nKByB@A2lN()@eLF=#t%8P4 z9+y&JF7zHZwYRMiyHHZ)_cw5@dwxy#$J*d@Uyx-~MNbf(eZA^(`+^U`?7XrI+Mqc}Je_ERRSZ3D%^ZvL$j*2y z$p5K+bWh+9+whWoR}vZaRHBPqCJgelEH2>`x+Dsrxe6~V=|cTr6utSFLSmG-+7L&? zPp4`2LG0QdJ_A+NLFR@jOgZ}3Fq_NBXS|*eFSkoy#rq8r^GjJZ3t?2GO3KY5DFsGQ$^wfF9nmGT|Yk2T_Y{+QBYBhfm zcfeNXQ|xL{y6_EOTJ~{+^_1{GL`l`+c)qw_4b(&A*7Z&Da5DbB!gsh+gU2wh zlggQrELd=PZN`Iz{`PSx5|QCQKF5JHv#c2W(}24v^mZ{tJIG85f6e^N;Nc+4i3F7{ z$xbZIR1CbTy%Ec`^(1$%ep6>%I(%gxw+Lir?I_Af1vf;HaF?QVq@)Th+SK=@%G#%A z!@b(4j8P*vq~|Z8l@?92j+}yrV7<S4ow@r zx&V-aqMb)!gSu{l#!3ZlF_k&*OmLnr5uG|9%{8nS>{RD>6(5iM?x(;>WN!6VY1ytD zZe;-%(>Az+51VE*8xI>U2}I6&EMERk>py1$JV&xXn>KS=xB-8c{XC-=HQ1Qnx#;A{ z4Lq>$N4`64nJF82gMxU79*_MV-vjPFoZfsu1!)0pPmsNvUJqQCpCcMhyt=zc-H$WB zqu}rM%{;;fzh`~Wlk>sU)}n~2Dj~PGo7Y>*VByDb=TOFLA^_KZH>~XlvY?2GA{0bt z4U*yZ~7OhGf+DK9;nZ7=F-m>>$^E%MG z%NU14d-(9)QFDoq64?lTBq*6J+EQf(4^R}!A$1eW#1Y1C5m$lX_s} z`DeAKTn$xo(-ca1c~-|6A6#Mzi%o@io@RqA=W`1gO4&d*e<(YeqR#K+D5+QFB}aZ` zgRqZ9v_Q(Smg+^i&BtF&cxTN*IFl~TX|;=C=GYt2a|ee?1Q__mbsyY{I5rCup1p?= zM@~z^>?!0EZ2tHdGM1pdkBZ65VOdcE$;63m&_w7}!!8$c|8~-mdEoYm+_?Fw=a`W^ z%8n93v3e5Ms8 zrH$ZpMsvHp1On}r-?If57Wj5b`rH_GkZT03-s}Zf%;m13laaBl4 z-^&my8mMgNkkzYWjw&kfv2z0+tGIn?uH5JwvJqnl9yh9GO_bi`+EorO0#<}$oZrSi zo(0~B_?K$1`5VDvqvkL@*zz)39+-Rh(0m&IZU5LadFYdRC~# zout*jEK^l@6#3O)N=mmC$5DH=PuGMxU`ebG8UiW{YR*m7I@W&WN;J*hA}i+cV?A&2 zh$1Kc`;30gpJ;l4>rE6dbt2a{T09+8XWyM&k@WTkQ`>%XyrTv7X080SZ0Sxjv+)Tf z+NXl#Z8Unfb*RhSLAT<|9-VfLQhqxakm9R;-vs&?WiAvywE4tN-~QMZ*m+NF?zii4 zbR2x!XtlI1ObNV9MC(wf-@FA*h`?~<`3~pxTyb+W!|lTH4EPAz#mF06)b@0Y zB)mW5*ymHZ=6%})H$Zl-OI-RG0k+?V-17B04j7_e=1P?8bn}RJyT7!ubfP#81rc7< zrt)>ds{QNS&w=ssir&2F@k!bFo^+m{8b#DF~g|>~L0ieOGg$DP#j*DaBHM z^vDqMrzSSbmiKMG_R+!!BDnYA`ir(#iKUc_VV)1*#EK!l^*#9YGZl+4xcC3D>%F4r zXN2hnoCG^36jy#S)iiB9aRdm{-u^5<@E3!#vdh5rJVLcS<*O5rJkd^}E4Z zks($2K5y|Mnl1_bDM^D3NyBqVqpl$sX!^Zl3bx-0X0%B11l2+Qo|7@Dv7^NvT`h)GIQ&u{@FYpFbNd{Mq`gh5I zW2a>BD2Jo6NBB1Qy(ked%Ecqxq$1Y)e@qR2Fl3UI2a8CI1II*DA;uFA1Y;;A#Jk27 z>Sf~2W%CwBz5FV!}}5q2gEo9R_64XGzxWSbUdk?wf4QhMe@m zxKs0lD&<5_qFj=Dc)#{I$1k}|{Yl^tnF9aGoCCS`Y5;JMJ$CLlgAiB~n<;>Q(;vu8bQtVil|5)E!B#cPHC_O>*dCWYK zLKl%jBl3jQ@z{fZtCY3yNcPP1z9L9KX{~ztENl9BN)dr^=E!~K?Lc{bYG%23=DllX z#eQnJS{VX%=2>9og%VQy$7hL`ay|C=72`Atj>0saq8j8}21M)!lJeF0%)Gm_ZT1+> zg$#Yyz$nqoc2^JVqS$t}@{amo%8D{)SI^5vH{AVqvftmOn#Gv!W+4wFRF0>-o7!#_ z6e~9VU>E>+8D`aj8|gg&m>SV{<-s*)DroQXUK>ghZ?m{VbNGj1q;Y@18}bUQ{?m_x z3aoD;8_82cj5FklGaSicT>65@RBEkilc*Y>a4LYI22#R6w)YOp%vv^NWnN-)J}7a4 zCUoI1B?29++Cta3)KjF?lbUL^m-6C9_QF6h;K+}piEj3o%Hb)(^WJ%`t zl7yh9DDfoB56DD;CD~UE@u5G;(=e`z%RJ2*1~t?0#427~8X71w@D9s5-CC+SS{j?v z2Cyo6HCmY7%0@VvNRrDB)x%2RkdA_ySQ^?2T;J_ImZGMYq6AaG?fpyAit2U&>JFPL zGMnmG$*M^(vo){kzo@iK1hqm1by5Q$g!7er!?ip;v@#C0Ub7V;r*%HUbh1-4(z{nR z6*V&Nb+W0VRE$@R1a*`xbV40;Wszph-&GgXK2QKQ_H>%i&{AvK^_|V?^<1(I(`mX zBb;F^iaIS0x~TyxK|g|x+xv% zE*)i$jT$v=FYM*SbJd1$fXws?fk>gyu5S9ymUNshP*F3**f8XH;YM()L~;9wYFh~< z9C-|?`YdL;C>Y*)>qgSx)xhXhWAjrzl7eoOf-uW?A7fntl%$H9yE9C=5`}dH+)W#S z!*{Olx8G}w2-=L1xxV2!&7g6tu-Of-6bg9-7ndJj{x9v8-B#? zP|X;_X30DON8NjLEv8IgOz&#U zcppp|;mqi20nE&Mf}VRhQKlI`42v59+|1E)0>=0!yFtcgR#68sfd{gs=8{sz69M{T zHM$dr<{{T8Aep@tDFkz8!CCz=wBp^5u(ak>GFM~dq)DA*j+`WOe|k$#fOyA2yvIu1){0M& zWc9~#N;|PiX7--embuo&Ek_cbrzCHYHX`IPQahFr`ierw2_&a^M>dVjc1=Qd%}RE^ z4ejz%_3_A#^B+!uDyOlAJ3pmP!)Gi*>W{mR?C@7(NR|xcmFS~$?aD59t+=g~Kdi^7 ztbvwiIT7|LTcBL-vxZWefZUTwp_7Is`|K_I9A>M!FDHs$Y*O1SYnRTw;Z-E9l+Zo=WEQCZ9NwYmeI?a2Qh)s`$9OYTXt#Mm+Pr# zN?+{$d^nu-IG)d3>Ixm5XilVF*&SZd+9^JmpUl91h9({ZoyINgTff*T zZCQfiw{y}j6LX!MBb>k=P7pySZ6vlyEe^M|=QDpyR#co)S)HBIqfu_ zwv`LIQ#7iT70JIt_?7D%6&U1g7s^lC)eC^V>`d`^O&aN{`EW%8KF~^ZvBx_mq_KR3 zi}RRAb`x=4frtpDb~7e(12+g+uXDR{2i;JBoVmBJD7@TwX`;BjTzP}s(Cco1>2Cbn zZr^%u`Ow^jTW>}FU2_Y&i?ZDD8oBd0-AP;BNl0H4_Ffm%!WrY8a(v20tx(xWkzvcC zM_=wz>)qGk&Xh*)6v6Of<+r>vcd~hR0+H@o33pP`cRF>h(h2tx@a{s99{gVJlH0e& zJnlO1cS1pKqBKzqv+jwP?(AB(V6yu@5uxZF&w-T~Mdf>qWmisI7lEKV{n=ZpfA^@M zTdhYASNI401P`NLH!bN0^MAJ{XkG%Ok9y!+(O!=bUN;5h`@q>dHJYdz+Nbn<&ktQx z3q0irP#u}KcSxi+xGUE-q|7@S?NXh^ZQauoy4N+t8aD9}E|Js+$nqRS>yxbPlVbD? z#PtDsJtqnKq((j`mHDJ-MWo279L_Jb!jhr=okO^tt1M;jLPqekOcA!vpMD zqHB!J>se*G0;{DYPuuZ5LS|oLf}YBPs)Ksn3(+nE(;o1*Sva-an(8hzc4Tw+;X3cNhyS$ykBUV$>cu{WR##Vmd{(r@f_Z^f-|6J7xIpoeMF_gUcpwe7csgttNIm(jAz-=luzr1zhH z(v#-hKkEk$dAhM*e(A`w?PqD|91Yks@}2nin7-nDh4x2 zV7%_4)ias{>^WrRcew0-x)k_3DDa3SXocn#F5&vB3}8GK+TQxloe=3(my64XNHg6~v11!pES-ra$sotvE zEyrc1Sq=?L&19FzI9#VQhq^%U-F7Vow@x>%9kW!S$alQo0_7g-cGjf~MWu+d%cp9RQ?q zNO(5|+Y$R*8El1FfU%VR9@=e)nGk@>JKOqKrhPyG4$Jqu`w?bqjsU`!*#oAU)KO$p9I-aTB)*pAbZUdGN0C{JmQJt$HnAv0|7 z*(%!xX`~)laIIOUt?zIoUSu6Sg<>U1v|qGnbU6va$Pu{+P4~j1Vx3uJ)AVKc`0#Q9 z;pems!s>S)cHHLXyoueD=pwb%-te^xJT{p?*kR+-aF~(5Q@nCx;xl;3bqp%C!SKIG zr!^_O)d`-qQ+{q*kUBy0KM}hkqPm+a)J0nnIz8OC>SYRh;_BH!T&9*JJ_a0PWY-ov zuO%#BM3sDk|Eaqdv>PRe6WT_Jd+hru)4_%^u%{9IK|I1lhN zKfd_BI*Xl)P8F)%p7_yNNN%mncDDn~4T>no<#Uq93K5->p8MhUYv!3o!LGy8?6#nk zL-sSG3V1DsjN#6C8ryOPG=Q-ku$b3HXEW1+T*rj}$o(%Z{{vDV4TUsA-q=OcNZvf2BWK~U?9`>Yu+oW=Sj5{y{*cCCd~+0p7TS6Q8M_!Gs}gLFYeEdg{Z-@ zjunpMllIwH^+dJ_8G+0p6RChdFv1j>6u<@IlkL2_xs!&B-Fbj_`HRmnZ6rS-JXPKI z0lI^Xb5%m_ux8U`+Hr)6ZuI%}8Qa{&t_x!MLpG<%*y_ah}CdDNG#a4pCaQUud8QW2%#h0wbF-fc0V2oLiz~ zUj1Xl^<)ItyRaw-{RlCMjJUA{H+{)sM~bMfs_Q1mT)f@m4yFQG+`u4Y-3x&x1tK6bHCSduVk0tg$T3hBPJsSv3M^FiC+#kr>pftOX-`B6BhU zLFZ^Q3?^oLxqboS_SmpyCR-|=e(`<2PXG6a#Kb)PQjs@2Hp?xQa5>5-y6^3MJeIc+ zGsxzYNC;x`O6)n!)#mVE6S;;i6|&to3)-~kF`q)~6qn?5KKE$x^XtEOyJ2#ot5M4K z9nQH7Vbtu?+U*3~oQcguNCN0>BHwD!{WR|m4}16qVN>Um3agLsT0wnE^y*ntO}pgn z@X8nus=2$(ayC-qQ`pqAzkov~g5#Kf5d*Q4Z;&bYJMkxllrSTb+={J}wH0*4N|F=x zs95;$Me}ahLjsVk5r}P-L%&>AfGHWM9n!m5X59R)z&p8gk-pNtwew|gOqMnsURo%s z^BJ05#;pPs$Reh|)By7en(oZzHbnKxxMJgdPHnk(0_-Y;6e|NLL=|M$xxDzZa*S4b zzG?F0h#Y%6bhQ{2xtRF~A#4;*4?6X#nBjVSf7^q#|6%Q}g4&87w2v2e2rfm7Yk@+M z;_h19wLo!q4G`SjU5dNAySux)TbBRKJMYZy)n4pf&P6UVlR0NH`F)=ceyShmjX%VF z0UCLT%#soyR)yV63%re1_H8zMg4e<%jwZFu5KuH?LTmGHS$xoIhH$LBlveFnyMLtS zU(&uRVWk#9_ls)HP523g&d@;PH{4pvb!$qaqxII2n1YV*(mhp#dC|m~I6G`+r9fJ} zeee6&w)0&B6^ShqT{i!g-xrEdsk|f@PeJYJ7q0hdLIMZ#js7r2V6GT?Jrpg41Uy|P zWBha}2!8e=Se`R=>EYFVru(|iGyUI-7P>^YvjuJ8<~l|MIvX2vgNj&XD)J0C=`B-@ z&GY)&Ij{O28@FL0jD@@jt6D0NIJJ5x)}%14qmaT&boeMY5w&z1`;qps4QCYom`Gbe zhMc`lycXi8FZ1EnNxU1PhOWJYDgmCuWt6()+?y>zP_EYs_$X$69BcFZP>Tb0FlS$RJ*H_cSkoa7 zs_EIsMkj)zTl`UMkWh|vR+!RAxltoB4-r-^<&wHzOz41=U}tl756xbKI_ucKGAnCz z93560*2?2CiXOVJRqW?RV$C4AzgnwFCnhdTj20@~53_NSsIoFft)s&^iE}dpwa{ev z(nmtr%O4`t=?1^f%XaE2J|DiKxE1Q$MoWFfg*!}WkVcaeuKOxPj5W9CI+w&;YZ?~~ zF1HazT}-Vbu#GoL`;tRXnt^pPrn@*gtFee}fh!X`aYGz2B@gJ~z*62GoQUSllnHq}){D^d6 z$Mj|yoePII8Px;7`PfaUyujKeY5+H^9E--~^{!r9=? zKySS6&TZLygFcq=^l-z|bJ_H1;IuNoJV}*XBypj7L8(U6;|sg_OtWnoPfN8PW;|P2 z6DhFE-w)=#CWkfRwD4OUX<+sz9pDYzE}$d2;aj{8IT$-CA2SGcYNc%$T^HSC5O1Y? zRhSYAcK?N9{Y>$FF-AXvVthJQbX)C@N}@GwZ050ggcm{2^yjWbLN*uH-CObq%Su{7 z#&WZEYkl+pQNo2EX83ii{QYvy^agQ=epWkSkskqrRnix}tZP5g+8Ax~unv3DBxqW}qcXJ8(Lbl&s%6DbPeM)rxR*c@9iQ`fj58 zQ$-)E;VT}#!CFD~hT@u!##jA>b)RnSq+?=~l{u$+l9QY{cOvZUWn%N;sW6rlrgGd3 zgVo3al1kaHZ{3L>*O&l{tX;=6NFoBfi>cG|7~-2`a#?M(mzlb9xD+BXYSY;q6fM}q zp*~Uk&XP^{ejL0&JtA(>jOwIDSu#XOP1t@Fll^s%cO3p5 z(Qr5_V&E(qzQ4ZqBNGFPZicpB_ZMYc(sEvM zN;U?f@mlxhhnMCLRPu)AB@YB+=jK#mQ!-xEh5CDZ#GlgvM0?**iN8^aD4D3OuxKMr zC}W>wG|^5$Tr3C)Z7z5zz+CJKVl8tm=)vw|iQeQRG37LI8On+3)9p~;uaM<6tLG3I z-za9wTo`vQZ%f1OQp6HGV(0uxNKxv@o%NJNJN_nDW2ja`B$=7FtbwK;l*3oEcYD42 zhcO~&-&lz_OT$=$RTYgd(jeq4tD%I@zkcmty5P6!q^7Donv;f@rZK*=iP1rpQlus# zwuufam6ob0-LZ)z<32^s{<2<2TDVg7%@agK!Isb&P^!)A&-_Kw0K&HNvZ ziqa3G5)UIzii?0IGsq9rl@A7>2&IIWtjk2Zc6%##YSCgOa`SBw*h zd4VCY`40mL#;2sKy5b-C#dvCIztzY%QTu8p4<$L`pob?^y*Lf0WyJ0_wW2c5lOqGCNFMR^daGFuZ8)A12*iD2KGwMDE1_Hs5Kf z=InQ3;^O@AKG>H1;JA{b{rJ6v$@Bp6Y}1mPGW{zd_ze=u0p*l?IZ`3bW(q%{%m3^~ zMoBhKh0884F7sz%1C1o03WPDVB?$InSn&3{DMabsS&YpnD+YEG=?zpf)nLqrb@a{= zM6v}{(lw$ruZzv2X|6%T`{~{q2joKbE6GJdOjF0ys>~RUhpymqwr?`1ZzVJ`#G0@a zpjpP$smxeacR;=XWC}pb$lT<($S3ttQyRnH;-rLaU}#<_9%oJ^r+5JTLhV>;PgCrZ z*VA&WE7?SQTFGcGbs|{Mz(!d$B-TJC1dljJr*J|+Uv53R!abG5py7fkA+157NUcJ4 z*CXeMs~THslasa%xVTv1`_JXxi#k=928CK$gjNi1D3~rK z?zPG^*a*$_BY5{!7b298Tjtqh?7$H+Ju)N61y&T6wHv*J@39IT8 z>OsSr0<`Hfs*{Ly8#z$-v<}9Qn{>+6&{@9=o2}9Bh-JTT{R503u%pCvV4w1^DFhh& zQW)(1P%e|={e@F4q+;1l9#Bu9J+s88@-|~9g*F@uoE|VHF}L6V7yO=K14Ee$Nw~Bo zv(n+_-#bGqT2b)G67NOHJ3cbb1^Kq>0JJJkL@I^QZ*Sze z97MID9-Nk|K<4lqn0)IL1XGHpq^!J4FZ z;SiE%c#HzqXc8foP`KuAjTOZrEjrgB`e(yv-L8EMAH5;q*IZPj*rxX!7Rq-{gk9(! z&iQHMNc!hMA|#AKpSx-b*LX=nFdnAR2YK}SX(00hyf{B1ObooAF}XB`IFHm!G<JeCNlDDXzwlI%ggk#KmXtWK|JiOCN`o#rBuKm$i&m!1E?Yw+CWRTT5n?J0Kp2Yy z{O}v%$+v!K%5bC;Nr&S4!y`^BZk-FAa&e}`hY1Ougg&>AjAfwa9ULC9Ds`aDj^E<* z@*nipb)af@q~ZU1GWH?)o95ljlmS<0JV_giY-8<+$1P<#VQxDQ$FYdkjY}b(U@xWV z6Nyx6p2A(gqM1J1mwo00nBCnbL2Dd;*?-3LwFstyRf(2E1C0dWK;u*9LocPiMCp|& z`i8KUKzMNr7bA*9mGMwQeAVm)-F#0@^~jO-3miGestqz}D*CeMK3~4glF#`m`L;JJ zqtB@Ln41{r?W%!VaEz;lU;b&rftK*-a8w4^&Lp6grvFi?)WBGlov}&xaNFW&L^+*( z2(`wN*-oXtAkk7u(nlM?i$ErR^*3i}{R{(v+wf{M{{NGKBzQ#pVSLWtafL=YwcR`w zQQ=r5y?&zk*s?VK8OD8G|3;WYi%n^O-t-y9r9QSD6tAOKS+8A_;q~pm|K^&es z*fk3P@KzN_{7qYaN|lU4t~w|U9SVm|6^2Z;IvkB5nmIk0ln*cz?((*2Dv;a%%e)Gb z41M>4&!w%U+$QFjS(i$fW4P6;CMGIkc&46}=p)C3S~&%kuK@~V^M=L=cpjDT zzKAW7+4$Di1Rk~guut4&I6VHwHSV0ql$5n*Lh`DT=NQcy zv^?cj@gwt@XMn%X3%%l^;n z)acvcQ=dOoO_|I1sqQPmLQMsGOrZZFQYqJ&*b|8N*J!ihiCx~+x>QMbXP>bdq|Tib%Z6E>kVHrbM7+C~1*-bMCt?HA3o zwMNt0as45Ij3Nc^h1%(=P487yN#K(Q{p7fIo{CAc%-UI z#-Nr(myheDwDm2WLAM1TIhWi#qBCw>t_=s`+iVx!D}V6dNJ!gO68xR-oayjRp7(VL z=EsQ|oX55u(|z;d`%!Av>zGG{TapLgE#W7DJ&Q7m+@Mc7L_Dh3_68u5$LpFdbY|sV$xmO44 z>N`~gxDyxjb5z_<0>I<>q2pn7C#lm5dciCq3uOBVRQVAM`JpWO5g$1bFZq2&Z&Y~x zgdl%1kUx2oKXa2mEsg(=BY)B*e-c-JiX(qYiGZ)_7`C>5q3`*b*paC1{J+rzNSgV} z3Iy%glY>0t|&@Sp^N zV&Fr9mq2F80j8jkq^AHXbf~d;p=q2@6IGBz6VPTTuy`q;q$yO3CO~m0w8|`0;V1wJ z0`3^r2YpVRPr$c9-L&H=3=%!8hcmoSJ$%459FYdl@Z>8KEJxeze!LLY;Tk@t9S9dI*X*`E20e!;V}d_wk}2uiXJ6Dh%jRPsvf^ z^O0{$QJ;C-GbjpN}*uK2Idv26J90+MlDTyZibaZCvDKiuL8@Dtc1;^<4FBE&y`Rp`>$eS&TYPfM}l zk}=GZiDLK(oFQ>iA@N*pap=#nJhX9AZt?7HF?Pp^EL`zYC5aN|iL&PL90)N^8i~C4 z@!t><_u)YlB2gfX$mpv$6B#?RPBNFGT^-OJRkS`r=GAl77lLd^?rdnyY}Jr7a96}r2u7~m^c#%*HL&PE@x*{4xOgi5%Jm>XvN5{yK}|rzQN}WXcNb#W^hnv< zO4)`*S(j#c?@Afla{0kY*^z}|+e=03NqE0100mH4So*K}Bx57BV)&$dpRR2CxNH=$ z;t;WXVx{~Hv4TFeZJJkMFk7%3mxgd zl#}YKlf0>yvah4ne_Cn?Pb(o#D@ns@3c#V2kb+fjEw$@XWxZ0>GX&N1+||dW#U!g$ z+3o;^`6@A_k{Zoi*wKn#X=T6v6@32%P?N5Oh4=@ZQ;ht#Br?@{tflfSwN`VqmiJ%0 zu~xmsYsF8G%8(YMGhxpcN=Td0I;vHy&QL&T3c%}M3EZ`gP<5kLSfj*WXiR7oS^Xx7 zUzotZ0N`trPZ~j#7Do7MHTVk@%`!*QX+zj{Jq=5<&M9uj=sz40M3>QGqOQ7zlW)1J zSed5{(JyGw3MlTW0%1rk1&B4FA+?UVkp5}dwPBToBUQSi2+qGWvR?QdjG>E1d8k+G z+mTwJ`s!o2Taf%(Bwx`cJ=$l~n&!YB*xj$eb=<_2zgiAGWT%)b!NQ1BNOZnS5QyE- zyJ;l(+3hGIUshf_=pl^m{{g_Q0DlkYT>4IU^fq{H0IUoEDIH@IyURN#W2gt=@fGdu zA4a(r1^~GmOxj7L-$k<44aL%N|EmkCx{D;e=ig{IbaxLUPY-yjhu*Gpg}%EJQibiT zL$z8Lx?0zNw3nF&ARyC4#{eK@=!1diBiHUEE9<%WYRgF0`zxk5CCujM8@0zAHkW5N zEkqm4br+u{0Ibymx8411t?!elL?i6`+y@p*?;(;2qFC$c{?%vhiOn^Jpm@Ts3WGc$ z-OmcqCeAzr)E=@Z8(`t-690UU#hVV_+EBn)uiRN5%h*s5@-Rqd$YrfNZfrOteITH% zFSSiKVr+;{W~h*GBtiz0E4*_o4N%U5=^s8)m_8J#Jrve9(i}dT@HRkv*5~Xy(uO=7 z!!VY<)+hQl6jnCU|JIdbIW$T*9^;8wK8CzCB{-VVIpwlxuhE zvJ1S9O;X0pz*J9Dfl;Pl4F(#tXMtsq;%5WgL^B-i7&ommPiczFWi;+>GZ#ElG@b*< zZBzW~(~yMo`{{t+Kz!$v=5T8ANx_xkUdK9e0}+S5j?vNj$Tj7SlvFK zYZ+gART#?i+DNsWwSOOOEyr}XTw5w%euaX1lm#SZY_U~u1ZuC^TFsouZYx;|F1~Fo zy>F8+jZVCwyAYrclayzp)z;5DmMLI$0_7? z1ihhgG6789yO1$EqgFe{#3SmNyPUc^KdO|VP9=wRVH@) z_=bGJe1~ckyWlTJK<@+mh$Aq{k;cd8<*}dik=DjeNZGODht3~cSW(mys)>DdK1|QZ z!$(5?A${nQi9J?>qKJzfCb^@WPZ)CJ2&j8X(Q(=)x5Ij|Q}ZzmX>i)0yH3e+)XW56 zl{*^M1x)ZAv}T_A6Q8ph999zVya<0;t~h6z{=%vY7`ZrW;yY;P12le|ZFgWmEN+0e zF6gT-PA1Nbh%ZicFItFCIQ-7nKhTIG`PVnrJ-gsO-A1VI0NBq>0QoCuy(=*DS=00t z9oe;p-4%?@HLUzK+~(EW#^tp#)Z_a4x6MOTegHz{6;9_BY~K}X)-_Vr4K5h16%4o` zo7hVi_)_uZ>N9%d>AXe(-_q#a;BDe!bz(4(+(va@ef7C!xV)jBgnOH~W!qe*`NB_A zwWknypLBkQA9XFzdAHz=Eh-P-yS!oK|0)%AV-CLI=f84B-PXK3@6LnTKzTIYym!rd zbd9>8L4RP}zLVL!@%a8EzF9QYf$5(0&J@^7>$@2e8LZ&_qlq|yJ<#;LW2je7`~BzGLV8m z1Z*bbr>IHfU{4CEaGL3W{xDB?UCX8EUGZo#(MTS%a0)>_;@`S=SCu9s@z{C|j!jo% z-DyM)nSICC2Pqjmn6M`Bvjx%-UzIC(LfL4CC4@d1$j~W#`BXR+Vw0AbzwlS|uX4}F_(qUj>-V5-ijKIL1KIJkJuUYe=3teTEG#TbLEIbQK*ENZU?4F;>v zv9`S=|IS{H`?T(M0w>8+dCX_&EN&cQ8jCH5Ao{I#lKRmR981S_?RcjsK?0*ZO@?0Y zs33zr<0s3{b$`{%@y~)yNlBWWU7jrL_nkcZD>B=xpvRWu!cSpYtdVFjUMDqOq71e% zDW|-7d38AU5EV_{d|8z$$Mbs)vqnPtPPAoV=LJI;ly9*HT$J!~e>XANHSI^=F~%&) z-&L2aJ&MV+D94+eRZZq~T(li-*&7?)%uW|3jkaa&Wkt@VXEeMp`Bb)izBPw#KO-lM zK!{;CB&&hOnc;R;{JX;FLU-p-dt?`inOoRNe{h)uu$3`4AIZsGm?R;1Y8?2hGjW;r zs}C&i`FK_^o9xS|a+&2R@4A|=QhW>^2L!0P9mX%JgSpK7RTo+g%c43~EUL;UG%afe zVF^xS8^v0VDzvCxE%NJOS1gj$HZ4eg@g8*hQ-|@X{5BhKi_Qoj^(~umSVcR zUG?Mo5ZWJ6HMUs{^sAQVbj!cI9(Npumcj{3lQ_Z-eV<&j9cF24a~jt2(Q#f@vEgxO za}%r5p%5dBX6Q2S3L|?);BqZCEyB(1Aa9`By7k->Kj%RvU26Sb9{Jliy z_-cOfy>sKGsrEsteqkw?uj*cqHS?}01pMTZS&{1F1B|DZaN85Cbkog|gxKWZDkEb0 zv!tB8MrhV_8z}E&5Jn0;D&AdA8%+y|Jf_OM1ny3Js`L@N+WZKAqzI0DbZ3Zb@ff9R%3De*^eYic4&_DsGLHB0G?Oh+_eQRFH} zM5~GRlhj&*@FPQ_B}7EyMczozoizFp!7oZ_tB%@u6_TQAJs63xY!V>~c(SI>6j3l- z)W1U9MlE`-(x#*-IL_VVug8^rw8JI(7&^XL<%owG%$R{l(P{{Xt==|66p4T zG(ks6UTSJsmSl!J0nA>0<`%_&PFR-s{YL~pHD_Xi&hzO|2qa=)l?J=#@`K5bcYmHJ z#<|~m{f?)G4|D^de?x;op|lW=bDat}$}X06DrPXDm2Wz83?O3rA|oBD6gx7PPg-s+ zYg9Uu5ajePsP#mm`D8w&aK4nTz+A2TU>vOiy%hG&7sr>NKL9zQL`3vNFtK^D;NwT+ z_1HdI(F$&hE=z%C{o0Q!H?9HJ8*mzB9*=-W_m~%(7r)Gb3DDMgpse% zpgzN{Qqgk@gxD4Ts)xE_r?Ve~twF0Rs*Nr61U7c9tD6@OB=s=XwttZt)(9e-hKa0g ztUQ|57F3Z(&&%!dURSFE$r@^T&n*#R5tiI>>&s9i|3Lf;Fu%K3hoCg`h&fh>_QkEQ za$@w-YSp|f{Tb7`Z{rj9y0**I*fc=NY>V=yeX9A`)pld!prEkKdQNW z;?j^pYU3up$_(gTtj*4l4@R5OxgKdGg=O{)(0Mb&8&n_oQD_%oCA~d&(AYyqT=%%RXB!zJvXWT@+>>-N_l{Dn{gNY5lbuy@(uoIkvn z6w|@5(k|z3W)l1wt%MC#LMvs_qPP^(uC#1|kXF%hUsLyWj* z03saRGqr{F;n(ShYOUO}lJ9rfie8;Ur(Y&Ie}t4Gyqg=ld>$oHtt)gH$K+bnT$x=s zFAwxLv;1m2-HGG)Il(1o9jvv+Jyl8x(0*q(hgx2bXUkc zTKsTd@_KIbCrJzXR`(}ZWyR}CqBD)6nXj>J-0DOxi+efnXE8B&EIN$dedBO}vlite z9O&!W1V4Q~gnNUGLD<&-L)JZl;(rs5*|*Q+(=0B9dXqf3MoKaDJgViLX8((4{U6S- zqHv>39+>=?WZ9`K_`)=w&U2g4hI39>=^DsDL=lLcOU8&X1q?9yLleI1rU`FI4 z&JMN8oBLq;*PTJ{QFy)AI=YoS{{r0fdF*B*y3=Ft(pyhrt9!zwcQ=D6jOl3^ea5+f ze*Gv8ES{AD>*im_dwgT)fw67rTbZYtI7=cHe>{8wLCb`eFFFlTNMoa7X5Ofjt@B{tJ8+%F(u-Bk$Eg-a$Iw z$yXQ;_Sz4wfZYn_Iit*Sn~wrLw34*bGhe>kWa)jx>V0I#+a-+uPn6^Y z#h-FP7=x0LT3g7wfKyyBJn;Nm&5&)pfo1|gUjhGYfgFGz_%#@X0sc|?SI`yDrZoS< z575UiLDV|79AAOVzk;}y-AHf2xaorUbzKnY-4JEnxO0ME_XG(Xy9tnm@cINv*95;> zb|ZfY1D|&JPYIyg24bW~VHyhsHL)$y3E&V45#DuwdlMwx6JnweVkGQkIO|FOB}D$o zL%zX5Nc;f*MEb!g0{Z-3V&)5#98pv|2%%W^1S|=VxAxG#_4b?!LKt_G#tV`dH?v|1 ziLCVyg?F>e35x#i{qb7>Z>{<3Sf6xwop4F9pW;_u>at!gXe8mLE<(#b zY2z*_OA$#50jaib;WaLecv0AJL7Dvi^wxg8d=dORD0-|Al(k+g%N}aNFmqoxSNw*O zsb2ZLE~9j@pLuN9(0!6v!q#U4taoDHp~dY8#qIL_P%-;1>BJUO2e>T76~lYtjs%Q( zx}gQc9K(fC9m@H!M1)Djecr@GF_Q_3IX6>= ze3*;Dq4~n-#e-NpqJQ(*EbFQ~wHc!shGoov%!CpN+LDRT;<3=fNo>Q>Y^*mc!ck|P z<}$wWp17H9Ly=uAnejvZT|;4el6e%MkUEKivmyDpF899AfojQ=bg2|=#&}D~vN5T0 z3J8AY!P0oCWEqL%bfFBHFL<^+HD{d#Z17=s!?`jex#7}ba}DRmh6P(==d8PUiR3C$hd#8_=uy-Qu@f0v;g54r2k$s+#c5|MbFw8Fqh@+Iht5kZK44%M9ljrC-q3lH;_p8xpJI{Cy zPIqOv&N%2 zKm|lboY}D#YvAh^#nj?{6`7mehPD30V-Z@3-{09HEJ9z!bFqlQN|y)t{zN^@Mr# ze)4~uAWbV3o{{9o3+r3BC9E0N(|j@jT6p zdF_Pxz%3QQlzE-``M*{wHsz`|C~Ers(+;BJg0dh}N{}LvD$sVp)kIYh8^Mhcl8$qtrF~{&X%L1HLhw;sRp)s4-N|aVZjLc z91D#6BCemfbx08)=zF(9R$M&s-Fj$Xa@D?d6KhOW~da*&)c+zT12b*&ugm8FGdQ?C15YP z)h~Jks-+TXWl?I>i)y83Xe1;onk6hm?XNhNFXa&}2C>82WWZ`>z)qDRnG~-8CDaS< zwTkvviz4Pd(}MKg)uTmaEy`C73(%_WSG+`*N7%KZ1r~;7SJM*~%L=so&oztRgYVpv zgVD9E#v6Hdv^wflc+T+nO*GrzwPxp6`7(l<@0SMem!i&>z@HzlzFvERcVQ<%qZ(#4 z<9(&_d|6s&BOXOFYkk=ido}rf*f5~DZo*b7j4IxcZd9PEx#(J;nclziS#6cg;A{OZM$iN0HlHj!7V%Q#xaN7pnuFID z{7eIaOoM>pZ30~l!bAgqS6`p2ZITNEAy;3r%gl2Wq^khJ-k~f)_h#*!CCB;GsZ6+7RU z3>n4tc;x2K#x`0g;V->*OS4C-6@r$^Be);bEw6O+ctNxm+k~il5*2$ARC^)=MuZmz z%&3Ms2fK`!d!z^3M1}kMKMmOm_n9iTO*(ey`F4#LOn?%LXYWg@#4);4tomC^0ZXQe z6`M3v3*sBQx^laA6MOt}hHL}-41A^psDE4{ckE&JbYXYDP?^%o{UIYhph`3`tT0rB z*3a`Dr) zYvO!e)Drg46p7;k3fC5Rb&7OpM;Lrgc6hKRr}Ff1@NMuCChL+y&sHA~I$Y(_hdBt3 zo61KceRwH+f|7~bLy*eJzr`obQ_iE{&ci}n3hcigt*%VDIe<$wImOnZ_; zJMv2ql|1|slZ9Z?g*g?%{DlfM2MC|T^2XUg%*9S@^5#1=3)dgJNh${^>T7y9*|;ai zRauMhggYx=TV9f|*A0huQ+S}Ry$Ur*P48aC#iDTIRz3J0sBRzCbpOrglYuOgbHB!W zykYLVF(kQ^d$g6VL`1v1lLOn2H>`JBIR|7rX@i5kzl7*j+NeyPBOW?wzy(F;+J#HdHN!N+i)CuP0IfUc*a31`seQ&GoLT$Qs{ zfl< zyL?<>wt2&Mi5YY)w0Wrserb?*s;<1ZZ+t3{_pq$I4-S4QEPSf^?yl|P;rRIa$%0lc zK3R&xHtD&Ke&Uh1ZZ7<8vvO}emoNF3?zQ6XmPIc=?2e+Ao(27$UEn-ZqFf6bJbTpM z+Qfq@2VZkt&cKVCo-RdB1wJo6*J~MO0^G;FKPO#(JP*O1IZ1EudM-!7PNTT5xzx|aHXgS{;PS=WR%-aQ zq>nl{czrPJ$0-LOSs(x!_W_f0inJ#H5zLjI4AAHef?7?=k}yODX32-c z2qiORBok;=gW#IEDV`n7dqAJzjhC5f`B3E06k@v80@X$v>-B|>8S?(7&j92urHt~7 zvc57dc%j~6ru26t$~hA|cT)CnfTZ9@A2QoGU>YMG?(Je-!lIIK zn6jN}ql2gsU-=boH>sNz0kJiq$>xqX9O}=)vhTM(Q_2{batatbftWR5;WIBt=_{ye zJ^5kY0@sA&s7k$|cCYdK!_h_{|CIOp-4?oymYglKK3F9wR>p_6QR(wA8=JbG2l_y^ zzR$S|sSFIO*^=*|c@tSMk^2)F2#Iz#T^}qtxaNyi3Z3mZDf%ZH#Qv=OEy!O3cL_8H z14|mhPyx!3;mTafjY5&5A&Qj9OwMs?>MrGe@?8K~eWaz;2kwTe+i*dZ= z0NVneoWvL;sSqui%QfX-O9fXD>%k3g;2T+^ZXT~lxBRVCO^N2vPq;KS&o7Wk?I>m1 zfa@^V3@4d3D|v>d6j<@{GAaFI+{_3#)-G~TY`f!{pUAxNOka3_=Wu2pup*J$5ao|Z zS5KYVOzIoAf?rndGh>!l+hHA2n(LC7YMCM3p?+5JM|a5lA6D*BEbCLDc}~1-IIgr@dY!(W0WIs04;q`S=IWF*O zF*)tT)Y9b)RB>||_Catkvdg6F{f*@3JsjJu3NduIyn0ypc)k*UIjLLlIOdrO-qInFt#W!MEZN;@9d!)|9Xu% zaDUC5b3JH3>_cn4#JvoZ09?YGW_=b&`rc?DbZ zO5m_HgNJ&703K_3y|udpV(fq;9<$+bl{Ng2fv28e(WqgOu*JWc_=@?(;rD^Tv2^57 z_BbNTicwl(A_^1fI90{_3c&_{w~*`(OBtDp6?uBe5H`i?_4^S#LDHFXj&M1`J>QkV zx8$Y%gS8^<-|f3+4f;noB>M`kt@RkbCP%B4mLMP}Oq6WuqS9tO;oE`z!M?%h%L_lP zDNp}s0^u;5agram<=h1*RI%6xnjya-xDMUy`hWYGw-#bg$uPQo?Y)?OLll{k0i{>P zMkVXAA7iZ`lBHKBRvmS$AW&tz)LX{cl45cl#r<#N3pwrxE@X8$xxe_uQW1wj&xx1u z+hW=th<{6vDK?)~0hjiHN;dK`+JK&F-R7;9gq}Vs3sOZ5^ki)GmUB^$$Kz=;m-<=GewZ6sXuNnb9Rs| zy?9IhQR=0X6CXf4nK~dx;8l}CuQkM?ydz`LpsW-Vufg@FSw-N(vLgDdIA8@~q}JZf zt9dsAzp`aEW#?~gH1Aj8#bNU55yePWs9Z=v55|C==s?u_c{noh?w*rd*FeTXk$$?- zWc0nvj8kgvM>>^>Yq?ZHHrkVsN5Kpwx)4aDMRfWvU)HdO=zlWjB$Im07mDu0S zT#mTDEyz0z-oYKZ7jhXU$OFIES~`rbHplYeq}=yr{(zETH;1eZml=zn#W_{I>Ygwc zR@%qOaGp%R`Kg)0d_9zLKj75nzq@5$!BgT=m zvrww(uP-0Vci+fO9B+bBWfD{m)pD0baaoC2)A>_3Hc<1B+V5@;8yDREJcDaGSW6># zIlO%Gb1Bqsp9tpiuf749vV8uJ%f!miUcyyZvI$cnMcK*7KaPcz1taT4FXw$Dh995YqaJKVkyP^)H-cqW; z5OY#F<*a73F2^X&GZ9Lb&x&Yy)C6qw>l}I|c*;O8mKqRj)TKqN#=hmmIZg|5MqV;Z zVD>L|PBk|)xtMM&|4f_-BuuQLrMA&6z%3{4v~^v@u_5}!TYYc(6sVXKTgRO->eJv> zc2BfbKH1iZR;WCf^0pw=`zm|iz)`weVfW_F(|=acP!k==Y%Ro1b$I{O7@VLOiKMl0 zk6M{bwtkrax4aRc8Zr-6VOVq6GB`fqEN%aK@i^q5vHqu_*$@gIFDk2;8`?*mThT=bf5n1 z@g`i#)`i#5^Sb`0MK1flXn|ys;kKLnP{=R{aT!y)K>$Wnibu5176_7^iBR%?B3bE@ z4h1!V?ZgXf!?i{7evu#Mzc}Od6%r&7ao&&Pw7*AF>LJIE)RoTvV-28E7)cWad2UgE4j)#2tcf+W*aWzY%r_(4x^OE1&U zhK9^zn~h)sjHj1&F1gU#@68t0GSPM@oAxOb#eFDlsXwg=mHhfvieWEfv?n4r-xt5j z-&7HRB#)5BFj-zAyMjmT0DXH{LDUJ&6Wub*pCRr2Go|R8(CSog7+9?-q0X|3KA0*g zrJQsQf&3rEolf+F;OXvdFyCg=slY2Fgv6A)kBZ5pj@@xlwncx&!mK+5SC5uIW4#)t zmm)&EgaRJZk%6=UI>ovaS>*3*S1h{t3I0*9BSV9&eqfeVEISK^n8z`dqTu?m2x>zCCsW@2uGyOMf3BzXU%tgf)=SRkwh+N8Wq zx0Ko}RPksP2|Y(eftq{S=!~BT5z7+8?3isz7R=zGpu?>}ukh2stItw<1o8KxCs=*X ztP=5JMd=rG|80~5^s+0UZI6nrLUL}&p;6>ZGP5VsZwY2hD5_R?6tGDyl0-cyz4Sp=^z zev`A0vzeu(l-DPHaB1mD&ZRKKr9k87T?(=y)$NFU#RjvXN-ST&DJ?L^FkY>&+m+t( zD>&RcNVzd&MF0NOw7v)i8ix}|;>DCt?E{EFoQ?)CChn_^-{zVE0Id%!LiMC|*GH2X zhfcn>tMh-P?DOiD^_fzhg<^;UWLu^6G4hu#&_9fLq_F(mWA7>$8Joq+xm4c-=SjjrIjTsa%r2OhwlI?+FESRw(eUdj6f9DEx z@@d8W)9q521rG$h{l@*qW)h+Eso0?~$A2e^q`}7=5D>WmoMvp&=j%*!^q&X3t8UYn z{iu1SOTe8!PS7(8*r*80hbPqfctQkdW3qJzSX1brYCGHL8{2Zf91WHH3e zRV&i4h!Diol%|mv?4!GQ{@6z1Ps(N1kP?kke27UY+2F8dxwKGHqVLEj!vdn%7_*U> zt2zBHz87O?_s;_$XJRWDli-OU)V{Xx2bEX-TaD}2-f!Ur&Nx-R^wR5FQH^#V$X5le6LVmW^7okn z62iwxer+$#!l8BtL|TQw0yx5kGL1>(vtbx3Y++?m+|LS?H zEP*=`8>+_7&0IXRHfA2`z^*}m#Ap0{fV+sI5*7AIqiYA;kN>{~qD#Vgy+ZiSudcnP z`Tvlt(KY(DY`XouQk{h>=$n?u_A9ST><2~d6l2wLmu_Lt$I;CXAr82n@(?}tBONfo zQ`ePMFK(&Q^7Fb2X;3nxKef#E)q#E!41`c1$Jq9fp*ku4lehzt_6DkaQs1bkU2xHr zfuE;Ze?DWiL(G41c9&gkb%DBuahCw4#igaVmg4U2?ocR2i@SS*ySux)LvaZ1L0jD2 zA%}OL{R{TTjO6ng8FS71x#WJ}k8^h-PF_0MGMeIh^&=BR2LMg=5oWKr+gO<$ok99$ z#59DX-zDqgr80kzExC`)eyyi@GXbWlb5=pogM{-je$o-^w22F{rzd&u5qNPy!Sdz} zX$vQNya|M0$zrFp74Llxxi%E2KYXmU=ootcHn~T!L;ff5!8dl#8KC0#{EQb1KDG9l zr0$!dV-iaV8s0WIkO=Ur`w;RcaYWNM=OTfwqwjX5B(554 zraf#Vj%5f|OZyV|%$419t?RB{X%yK!WB_J;+O?(o9(*qKhj@W9iK6>i;Ue&!cq7nU zMx4d{Jb?IR8}Ny%ecL$9rlJt5_%0`vCi@)d_3{rS`Cv?w{W~^eZ3hJ!2H%U1*85!U zze8%o0Z{zCleWY^#aZH!t@e9#2<>K#b&AI_Al4~w^94uDy*@URejeNUc+cM@cH zoj;|2B&GCyPA0?ADuyV%aeiyuB-*)5EbFMM+jEi7$F)?6^i(XxW6eSEzTyw*p_8B2 zTFr(_IwSkPJXte2e|blf7SeO|Vcv~H-}{UTpBX)=&VSdF?!$cR2dPHh3l7z`sVvJy z9hr1SO0)K<8LsD|QqOqP8}1a-{kLL%uSeG}PfNqecUqrL*R9W=mMXgL#r;n4V&6lb z6oH3!x32YHzrAK%eg86$TXZpSyasN0Q3#`);)V7+E&S?vhV<}5XSz0D3%!J%>!*A# z!fM{qQjA`Ak^LTedR{Mbps#=Jgq{=LUQdj+UtaDJka6s|ca0%~nsk(Aa1IuiAN}@* z{r<{^5ft&~T@g8?!pB{*B zgD_)_zw8IA?f2Ot;A?8oRY?$uv@dq4-@RMFjg}uTFbHoX0I(b&oEu30ep{8*0^>%L z-y~SmJw*F|kSvUIv=VXp3B?iRu5 zdH#$vBA;?Yty9ASxq-o{A?SSwD?7$)lp&}pz-Z_L(BlBl|C2lOOdy&{*fs!5vJ@1% z3{vU^{pQA{SN_d$t97j=-=}W$WgDcA@}8iF=U9Z)mWDK-gvZl*UTfldyMrpZBXkZT zG9E&6Q6e+BBOPhO|Cp)07AOF@ans!2e+;VDj)bIu25F;aA0p}qqUKYhAlgw|v=Mc! zQBwqwe;+_|DAD|vfnN#~a+V?yVPl4xK-(86|J-BdEkf>EeVz}(Uq@nYrK2IOF$<+2 z1do{MhsbsA*ju;Q{Rf1*gK!kem@8@AE;FG(d?bJAIJnD@-G>;2N0iT~k(i?~)I9Mh zsL?UTu`?Di&#mzbt?{gn@t;xS-p_Vnp@h+2brRsTDI64WeI(~;1@iHDs$UF(0s1ZsY@j7ksx2XxVWifCM*g`sq=9YjCX{kId zp+Ip3dgVk%(0}#LXO9&3(HIYp1oxE`)wD!k!c=CuRJYL-Ri0Ge!^AL;1aH(>Z=Dzq zP-={EvZG9zi%uNr4!l#_yLg2i@|YIvk(wuy8p@MiOqdp^lU_)dmgkX>JerpE=u%V) zEGm?%^~iADN{O{hFZW3IB}A-9OYi2%95_r-v(Km<4g9>Ih#H((o0c*7j%4v<&Ff^v z*k?|*r9m$|&@WZOLU2O?@GH=^v}wz%J&)`Ix~v+W?6EYF24&dew5;8<>>Hh&JG%H~ zo@__LL>rLs6Hm&uN6vc-G@F(KEfYSt34_w5z{=)gJ>>>l<~kGRB=HE}6arRxvN6%} zNXGJ{YI7~xl0RDE`ndysr6pUAB3yf*rWmKcmoiM@DQr(DEV8NYfC3KBbZ(+lcFz<6 z`gjiB0)g}b;iLSevMf5Qw8S!zNMIT~WsIwG0Si%~glB=8Yym4;p}TOQds~rPTTu!{ zkzsq0ae9%&SiWw0@sHIaADQCs;RQ^xMZdy}On8e}#(vNq6-pio7k_+jgi8F0N&|UI zgLO+oJxc>+3qaweKxjK|X>m9`zVM3#zg=odX`r|mDjGme}q{(bV73Q|3+C}*Iv=-Sx)>x9>2G|YV|)PD}5E0p0x~> zDuX_+V(6)II=q|-2j09Cpk6AJ{D2Kp0=GsFC~bCJf5M(5s`BGS?6j(`3$OO)1+1Y} zueMjM64h*s0mGeDn^$4BpQ^T2t1r;(C#|ZF!jWN*%i;B^-8}*Ry0ro2)dy&`!17u+ zx#IKk8a!g3&9Q1IMLvqfd#VFR+FL_0UPBJ4{z6>DC|OLyhX`X`4ek9wUr`SiP|fsQ zPfuJ21BKKxbri9qHz1fGQ!-R@Ki9*_HE?9qOEA>3^EHY?YTaw!U)D7;QrEBX)>A-W z)vcSzkA)7K0DZhoTE}(9UQL>iYHGa(p5uC!XKb8`Mp?N=cH#yR^d@Nrfa?V|sd0;T zMvEqTqcTIIoZP!w)$9vt!8~pz^J+1TXd(A%F??>2bP>h^z?*uthIO=3d9|*lH~p+= zwtQ~UYi|sWXk_iEFYv1Ms%R;RXxHHbNbt4WLR#$f+AWTo3&(#LS+|sOHkTb&wJ}uQ zU5zUoQ z^lp*yP9^mAp^EmhjFwagtS$`v+nh066Mk|<_n(L+V}{PvXS^vdt1odqE5|+Bbv-Am ztzRly5Gp&|7~s)^yZ;b3-(uO@k9&hnx~NV1NHacRPxO+L_*_&7(S%^U^HZ=Ce-0yhw8y*T{&onO^bSp#R!7Q=nQc~pbY>yqVGL9K!hEmzijkS8FFA0Mlc>rh{P3+#3iWg z%YPZIf5FaS1nhJ4;k|U$>yN|rA(PsVqX&#~qqp?i;6{3nLE$lYyeBHWajWzJy*7Xu z?@<&sL>R8|F2=Dreeg5-SO?>{ls{m<2|RD}DKhhqm<(XJ@(-)Y;QYi7u39kMOD7ja zUsL3JfOS1C^?ulpUnL zHW971c)N-KD(y({M!@p^4(lIoXWy0g-=q^A;?ur4^QtIhq zHtBMNEpBSnWFlC|=XA+23!tt5h!R+JwOt8if?Sfo*Xb`y+Cr>s0iiytXd){~wnB!P zs~h^OBUQ`o3gdNPh*%e35_5erYVnu-n#1~PZq*vMz}oq>W-+vLf);a@Twr5(eQnNm z4h?7h&}T!cYW5%LhU_aC6K2CrtsYe&H`lFLV5)NJc8?(WLw)^%Uo}(Xq0dX(zL&Vx8b&T z-V6CI5(SOGcc9OdmBQSRnV0Kx_guHD5%F*kcYrED=VaRI}GS-mp!hw_TeAK5q>MPVO6>tr}yk*+I|NzW)9T%35@b-lgh-biN*Z zi`%n26J%vRNH@gOi{5yzxmRuvHM{?PY{d8RJ@R436BhWZ-}T-$%|kDa^lj(AbkEiZ z;$qq(Rr`*&`@%OF&Lw68lt`!Q&!z@_;X8hhCo&(exENL&9+r}wLTd+h3MNb^_e-Ns zzXfc3v>k_D95=ijwY<$wbYn*-0=}Fb4NuMt`XUup?_O3O*D;@if1k849-mB}NMoKZ zk)0wKBV3psz4;z}Q#szuHu$@-Rq2a_>3fWEe*AoKQ8Rhu{C0-Iw%Ig!gd_A9%?_7v z>Vg9McysasIpzW|HPdc*jI(*l%65@{_Fnsc?S)dnGb>#PF#)Qxuky%_5id_LV*nIF zSD3zM!is>Y?rSVVTp^(=e)3}}r7NMFYs{$&Y4Q_hmFu!MK}rAHrMEe>p6hXDfSceg ze87#u=7qTuZm_@|ox^@!^hG<_JJ*6?NDy5Js;4c;G$%}((EkMj`p z&R~&0{9)Uqb9m6+e(+NQgke7>K(Rf}@BjV7SnfW2V}1-2dWeNS=3_qvY{Oc>J>=#* zh1NVIU_a^BKE5hmK)VH$*;9w&Drg=$o<)Klq8Oq*j|2Pw9=ZcF>B$@Xqee^n851C z&$W3sHs}|n@Pz2+J8#DdO;T7k#nSoC)azHQtk=SyPlpKYP8^0Q zof0V|KK{zY8NN~7nU(n1m+2_S{<8pAfO*E7ZG^3<@oJo*>zI`iiz}EGcRO7jt1k4$ z`%c8u#Wz?OH zMH!;gs{T?g+KO2lsVk*$)Xz%ffsw&EJ!g~kG96TVmzH(QP1}22oBb?~4bSaC6%4mW ziK$I*Xcm{QAL3hzu_xY}7Nl%ef-BG7OIky}HS@Ac--+}tc_nBYvDL@}`|MuRSBSaI zI1c$vd&f=AaOJ0u81sW!x{{)Y85=>etf>eO)zX?hU8o!(yYEnIn3~484t#9bjIxFT#^Iu6MwcC%pws7&&98y6yG30dLcI#Ay zVqKf6+dD6-PCXz|#gb0`qJ@-GSwXdxy z78#|XedxT({uqVthr-;wuQ;qBP=-9%Pwt{P@zcS0RNDxr|A?I|rfIwBjN~zZgAi;X znMxoWW%Ytgyiz*A*&Y{lEoOrHxYUQX#}% z&&aO_<~j|CWVpet&Svi|kTe%_eSG1|Ff9lqqnxbbo%te#6_+MY6J4K}ub$7M);2~C z6^xJQfKWeswvA|nUZ)H)7PF1YjQ$d3=bNw@G0(M>v`kjZMvE)vIJE=|Edo+PI=7f? z-FvjVF9M(l78EXJa{APbxwjp^#E3^@WhCcQaU{%n@o;5bImMBUD)aGK=x0E(PWj8u zr5p{*3W=UEgIiarb;@oD!ryt+7ho%u(9gzFS_G>pg} z&TzL%Yp@rxd38rFieIgTHw(eU&?>#VW^%|NUfbf-YU_$(cFeLi*ulc@fUKW6BRcEYvgRCK?| zM@PO1t2d+b)OeYUPc(CLcU^ofHXCG6l|Qh)oI2(tTXv)@F!tT zUtz78ZA`PfKJ{F8mF-_5tF@qg2D#3zgyN6M2y^EGt}W!xzZ!-U-YDZ{Fm?sd(;3vh z%B2VC|CD)Np730(Dp2sT!g+?xv@*Oc4bnFs;ufn;=akJT=-dl!Orx}ubgA))GSCnb zj{;7zSFP9o%%gi+8aKZy&|2EPw3S?4&$|;Ux3vucQc$k`MrmPZG<)P77#{oW+NN|G zMzGXOzfs&wxJo*R0oJwPuy1Kv_c;$<>)4pPYc?6NHNYL<*?J`9hB~50uLmK&Y`qz{ z1A_#Te4X?lpL5;2H`f(yAbR6})R3C*tL$QrAsgsrKWANV$vlZTHwxh;JL+&%NfO;b|E3>F=+zhX%3iOEkL<75XnUL;L@ldyqyI|+L!j^ktxqDB=y7J&r5A|43 z)q&>)sgD(~7%yQMX27Sp-skI<+dp&)Bf=PreYl0fc#T4si9*=l-&-Kyr=3U{S+SVft=MKC_}P&9djmyCdL`6>(#}8`{&1m}KcUKE9Ff8( z{D1H(#a#Obf&mgLHV9=~ND|@_8ZXEiHWFI;1LFFFTA32+W)hm-5;BE@dX*AdYlAwS zg9bMeh656MHa%Ir;wtigf~SKy8wXUxhe9sILRlr$K7g#`fmAPpnixac@+h_+hTfHC z{SQ()B$B!(k`4$%+89#m-w|S4hvH&~Qc&QHq!ET>g#7!0)JPnGbci&J-JG~> zg;aSghv}Sn=)rJ#=@5qWK#1_LNv2HHj&x?FL}aG4NuzYg&1g=gct+$vy0>&eqBt&! zc!~u=9EpsdyqJf)n0aM51&ol$oOt|zY~>DTaj=xt%dnsEm|vl!8oyKnzg(ldT$8?B zv&}dLid<}_WNq+xn6b>y`LPlk$*fj!0&NrmplmzFL@kMQ9mYs7aJ2co1=5!vQlBVv z2KILjSw+gnM#@%tOLo-CZrK<69pL@CkPmy9nEU{qkw@8DoD^X$V!({cu(7L|TosAMME5g+axQ|h3vr=h^ zN)d;9^1=q(-KZD>P&g$~IQ5>Kd_e~9U|d)$!ZImC*Cvnjfm8ESubopD9|DAEryeV( z9!|!PSqHIR!;tN}?nqQ{ZO0d{l^@N;I7F<9NHy4|8R)}MUsU%m_aqNcW``NW$HtZ27V9f?Ie`~io~lro5H-Zfx5)$yz;5WH^c=a zj(Jl|O=FEkQ6^18gGEt=xgQdX22qPf9E(Z{>Wa4u012?_tC&7mMI%Jf5fLnqG!PU8YoH_~Er&?!&?2g^ zx~$L`tfbnaB)RBh_^hNQEvIU%WM%0jzUmkVtmGE0B>Y@S`3cNKoJ%%X&5&40H&{vh z9v;gSd1wYKHvm?IphW!quQghUTPbPM$r8{_Km^s1>Xv@hEyCB$!qlrn)GaL1G04)( z#@B7N)lKElZMt1)jRI9BfxIx_Ot&WbEg~pVkq$A|C`wn;wbup}^oQ5$ElWeIHGtJs z`r`{&E%>O}ESN$WG)p|_GWRf0` z)}UI#FsxL6c-Nq^YJK2z0urSUkp0*j-FwPstoOxUvGOg zf~nTYvDMr6fpog8cCK$UuCMGGZ0#fJ9vc{TgI5ZpAg8-}83OBnIX0}c4Gupmu8r|i-Sdg)tYFBOt;W75ACeB*W>Q$_0aWJJjH*S`WtKanI? z<@xiFz;Yjo` z=5z-yROr-d2_ba(?g+vexwMGdOO1YE`=kGCb;T8^X%P~P zVt0jQC;AX}MQwMZc*Gi3L07y5K} ze)ZA*w%hKG*&dO_Zf5d$yy^5^Vm zA6n}sb7%%u#7$q6YyS#~<-+mjIJ1s94OBn#yM=sg&bs)uh>ei(Ci$c-|jEJy8Zsd zh1OQ?P!7`*y?c?-?m+kpo#Yn^8p}0p*xC8VeW88b5aBD2I|l(RC(ixN??zWghL;lL zj+EG!BKP)Vw^lS~m$D^iu|P+LC1ZSShYOc8s!um8`&Wd&fP8kBn0D78_T&Vg3S6q4 zG8}W#b8nfN>72S<^ts-xw(D5HH4C|o5b`bH*X63Y6VB4L(!Haq)SZamRmtA!k>DkH zjH?;fop6dhx|^#>jjdJ7j`gsvPRgY^jT^twE#KNL-*=?6MUeXNt!|D>Gt7p|$2Gm4 zYbM2eS_g;J6|7Gf+ z>&t3l+IaBXd?@$lbjrCT@;l|SbK!*|Be(;7?Lo;}z!Yd$suC~_8IZg` z4$9bk3>)!?d+-Q_@ys>?`bs~A06bG!J=K40dX+dBxVdE1-$(RZyXK&BvpjzEbMw)< z)d_OC(|9UMan3tOE>;3I3O%L!dDPo^v>H7Z$vcb1lauCkzzx+*_|;IzIh)*}TM3BT`vTQyc~MJw(Hgc-wK(k`L6V{H z0zkbQ!=C*{Ja%YKy6?TSYF?A2LRVbhcI-S3{hq6{eKNv4I(~UgEqPs(crBEi8EU=G zZF;4iTc45J7Atuk+P!tT`DXh)W(qy83i$r()sQ&-DapsU%yq8BJUxBG>o@$=^#+olNJ1(^*?;q&EUh-9m5tTnX40? zmR$23H`E~J2L>jqP;<40-(VFMxn&2QI~TeJbD<0h7i3>L4d=5$>W;Bf(#Kny$^;qm zPlk}HQ%I!SMy4K@)kyAK$R2;?hePYY9sLqb&c#j9t4gJo1)bI}GKobMe=^UytiUH6 zY@Z{?=gJfVa3s}zhE-ZNy*x4T=WQE3_Q``3RuBvgf*j__%)}1AW_b08l#p4E6(au- z--~MjBZT3gY)DDF(BfM%{~pQIh#Hkx4Rawa#ZkiG*wt{m800h-75_M}Wi4E{gJaP( z7^)U?LHKoDg{f~(!w)L$IPFfA|1%O~MrR8Bn~FyHVK2>sK9MZ_i{uWqC|+UebS839 z>fdA(+cX*x$5k0Xj?1?Xr4k;pjt4q{vuOt+!9y#wIYCEhfSk~8&ig_jZgq3fJrCK~ zjJ>**=@KjY##M>@Xu2aIlX_1;s(JY%U8zZQD}ANmQ9DCT*H!zpD0QGEMqO31J0Ly3 zA9O5IDr;6=g@6hv2hR3eGFDc9W;kum9V=H(vq#daZ25w9d|F=cgP6X)rC5%seR+(} zuBEEoqe|=$=h(8&Dtmmo0>&$Yp)-p}pS9(}Q}?v{iSvWC=nl1wT?T%d#?inKoR?J- zPKH!mXWzH?<*7Qf4wg~#K>oP2TxJBQW7B!{=w2%Evnf_>HBpdZWs57?Ug}=u1k=d( zh>@CadsH2bZO~jAhDn%|A|jEu#P^|0(VCCfVoaI@=|`!5;r_Hwl30V-H11qdvY`hl)TijN$7#iJ>7avn&<4XF;A906wo)W zQPY#2{58ixckZalZ@;b_$S105Kv<}17s?K5^PI03_G+BYG(0^TYzoI@*tZTo2ynEGt&YJbg; zt5LHp_3!zJOE*4MM1T%lD4vZ{-IGOtjg!tOmm60nuEmco${Le+i!Z974H;E*c0=?= zm`yYdpa~@-O|hxfk*{6aO$wU-)01Ud;*Dhds zjNuv`4}9z@-NiJQW!#?REN%)ae64yK)%Pe3-otIg~; znP98kh+OzO8i^uOHcQo=FHiK`4U4Z+1i!{JM{n-hsxBw2xe7PdN*8#Qx?(_Hm3rjo zi{kFymGYlSl65Qys&BR!p;5b@S-`h2;oi$gXHhRxrY=_wUDa>D);!bZ`j;3}HR@d| zNj@=uk`!z?ymZGj{hcb7}T|F!Ck6ty0!OJUfU9L26d~n*ZL2v zW-6A^HtUwNC$F>b%)9d7s2|mVzTfCSDz1+5%Ce-L$rXU|Q{~gqz`EOLrr4Vvvdfe+ zr9x5q0u>)8ve@EXQJ^;@*b)O{g)a3jCHiG7I0U2NtKe9b&eUTJ5B9da7(d@cLqL+W zz#OH6h2I_d$U=#dl3gc4O}UG<~3 zmWH%OQHXBcNg?`Q)}>}kj+A2TB`EIh+N8)m6zi4?j8->Q@ z27M>BDOlEQBpUziR7KS)Nn;qnt6J~sL+=bZ8WvEDa>b6qeF~m_MGof0Zxh)MD3~ zb4iMDIbl|Zw| zIo8$uhzs<0Vu1>vKTM+AHAh!sl*~5r_NNOZbdfXU)5@eNWsor?e^;l+=J1kr6^u-@ zsnVkeK-6yBP)PZ~XJ>`eK75F@V%f{YoT#BEUR(7+Lmx{&G)!;!I#j1gFce}AY3-qo ze}7@ms2NF0xA}9(aj;#VAY@(Z*YRnqg<6JnKT*5cU0S_oo7fefAJ3x7?0mVfe3@*= zSidu;c#PQG{v$I#Kb9mx1J$b(2y+}9lvyQjAYilueE5g$cs!tN(}1#RrBh4K^=IJU zY01AO-H%@$f?wW4=EafbxHL}=X-(#D9N>CyU)kFH`O4A4vYv7kK1a+%EypMeF5QLd zn%Ld4w;xcHIoqrhy(Q)6S3vFMKkaXu&o=hesq!l9=xTWVK*N^u;8HM*_kLDy3G$~*mYobO*epJO2ciT$TNSLf$t&uw$lz+J7|KpFzF zh274WiZ&^hFBNM;)zs?>N#2tUC%P^##3Q?5XMe}7LD}?dFt!rbK{Ic`RPgO5Ti=a4 zK6x!ePd~1OL3T@!c}-k?`=on=)v^;b|BB%`=aEx;pK%W8RH}1wdytD|=E#1<4p+#y zUm$+s(SME$A5=H!q9R`p(HhEBwpB0|r6pQ)3E!Jod(+pMKG$wV$xZXorT2rF6VZ}W{H58zFm@csq5Bi1alo4cf|tsO-P6xW}9J8 z^I*aai)OMqH8Rj%<1iMZ53*A4DYeh2#@_-m>q#+IwkS4mFuYfcF$Bl8S*K>$#hC8-!$e6uOi|L?&+v@<)-B;1b5> zA#8#L;?n<$a|b!B3W#U(oBhA=^yi5$=Zp2q3&X%rJ|ZB(!$4se?OVNjqj zP*f7>+T6Y%6g+xy0;bhI2dL+3&@#ZJhTr3jN1lM`pQI@~*V`8w)_?s8v})!0qxD7O zDXi}rl1xJ}IB|z+V@*bRzu%C;1C3O+u~gU=O7bcut9&@dN0+tH_^UB@Dltp@s(h@e zLMutS2<<}zuB>b^6D8V2IqPVTIKnzsr)NU~wE~MFqxy4G&1Mf`5;ZsQBc*zx1sawj zMyf^UQ0x~uYHn>hogg!8CB@|(VZ1~I-Z}o-w#LKq5af6;iQ1WEq6nxfTOor+y|4^t zPjPhFJRb(h#gnl##e6zQbbDww6_hDgs*wpW}<+i)&5Fc#y9^iFIQn%f>98C)fL$L@7EX ze*ZUS+j3|&ioxeDO<0PIN;Lw`r4UC13-o)kUy#51)>ep-}^9=XoVs$IQ=I<0P{0oN*(Fi=T`+4kxWkkVTsNn|% zvE?_#BJ9;SG)lp<#Xk!(af2a3;jZ*YrT&PSIC(F3%bzM^}joz8NI#2~Q6ofE}|+k~@r$^ zcA)r(K1P68Km3ghA#w+;fM|tw5HI?lK0bez@RJBYGMmcSkBs?bB>lngy6rte4tI2KdI z56bV$#Cj+waZZw?^DA(`ew@C5nB~iG-=$S@kGPu&5Yg|W#^DZ>$g|X&= zSA5ph)eSEzSMvE=L`PFHLvhqL;7ugZ56UVE---`Ja(;hJ|MsV)t?AS*NG^8c?_%rl zZPo7-2K{YZuC~6@DiLolJxtcWE$v;uML1(aEPPojpd%FuFBdT$J6oLx3N@Zf;~RJX z6;M&{8d63OapuRbdqsoz7JZwqclT&8d*^v%iY5PzbZ(|g$<$i=v))2&rzffKG0UAkGkQ~WBG@8@_&fgAL zAEy7b+9)K|qW?H< zjCGyl!LMBPmv!uiVng~8iJ2V#ALu9)g)L)W{uk^0*JjGfhU|OBpEX;A!6vovImikJ zl;}H6T#wg{AF^Ua`BrD3z&^!v!rCCi*co`0J|Qx&rJz^-1cA4Og65TVCVYt%D7>%M72uSvHtn$NKbc@@ChI^zx64!UC^;MrSpW9E2C!$ z%ds(}(}o3Vx{%HhT!)D=$!Xb!x8s>0pS(yfAnE=-{OGB7=6I`#I7f^T zRE+HCbbqzBCt=hEc6z%?nd9H%_|-Q4^Y=|6@yo%1K$%pC#YOfo*FFg{->e$5O94CS zp|aLP&-j^3Hg+ck8|#3aH|mYVl-VYN$-@lYhI1Cp>zv}eO5_Vm-Z*_d2-*o zAPU`Z%BhZxifs3?2GV23_XD&ZW~1gB?`wnec9G_F-1vwKIAooUBMs;yxWo6hQmgZ? ziIUgK64_mY-|LA}j@RmD_q`G;3Lb{6XtQKCMYodggb()10+-)olVA5$iIUI082KGP zTUX-;AK2Obt|t|DQRqX0(A!bN#>)YV(36p$*HFb91wC!EoPO1-frc)vE1>5|qvq{O z$^>f7<@BU%I?xCg*<2Y$5(_`DqOjw8{c1j2F$5(1GC*}Qe{toUYh(}xiLgax?@2Z?eA zV~+%gO9v8{21o$|rCNg(q=V#_gP(o{2?B$ly$Hj@8b>#{Lhd0#1i`8g!HN%o;@bYo zw4pMzp(@J(lE6?c_n^2tTxu7cZ;>@HTC9F%Ws>AZQ5~_2(XuRa|>DH0q)> zdI=@;S~=#H0CC(s=HbEr>AhS^je&AS!>+_YfiaJzF|d}gQ1@80m6$j8*gIhC7nIoN z)POf`#HHo%qtZC2zb8eJNJSHXe>t286n$ZVjEx!xLl}2Y5ciTApE4cG$diDo6O+Q4 zzy!5S-~lDjr^Pd`BrsaW-UH*lqQ(%F!RfS$+Wd5svW&lyj@ev};vr06DT_tbiF?sb zV9<%x;KAl1Oi*2k{l*h3N|%U5m$ZElZ~o|CZjpHKkj%Cf$9{u8910NC3RxkDX_AgH z)8Bx75~a-qg{r>0PWQUs^rz9%X-mZoHv z!O>dABs?aG@TB5+peB?h2$rSurlsfeB$T3N)U2eI9Hui8X4IFZ6FjDQ61pwE2T|Gr zonTslmuw9K3t&Av#>S|!XGMa^22$+;U%Na@Yml@VXp%BJx^-OWvh56|M& z$;}64B3Wfjg0eArvyjHJv1PMR&~orS)9XibULV~B5prpGus@CE9;f9X@aE&8ta9R)rMh z#R{v%YVE~NNBPc2Nk4gu>~#yh!;36rOT4U#Raf&3j*4VJ0DeR<(M62t$_L?bG%bXvQ@*L zRm9gV`4_a*=fx*HT24`ECDKC3e#Z5OJCD#(K>3?#;Vq>9J!rq9-go*l?(94%kaJG6w2!c zJnKmGun5uX)sE`w(~-!n>s(~(qde>1H6*O#Jkrs;zdEx0sciUAnA%6HdRpsx{)qa| z5oP>x^#XkLg3k>fD;gNk>nR!PDTy12R~yf=Z5KeqsGBv`ZuJ1Y*egh%RFvTt7wyjwB>cQ@anZ^ zjko1_HD>Fz7j(3jFtj^Gw7Ev8(FS;?j+fS0x3@#u+bTM`AsxNMoo$fz&Ww&YNDgzM z>=tibjb3LpL+3PK=PYrTyjT0=c-ydEHYSYXy}BrFL{tbg-7=lCdyBYx#;f}vqx-0% zyM(wKZaYg1x%*#41(c%pSX}guq32w$`!A$uZ@e4kr5z2Y7ooBZ0jCEUqvxgq4q^@9 z@ZyTUD?+_2s@8u03is}3AFMtA#Rl+#9^*i$@#UuPjj!kVxrnHs^YDl}`b8)=pD69eBE0m6)( zcVF=!oP)h`11Ocfl4}DC0BhnxmBxVq-nAlS`2nc?&|Ab{R|g(f?+~1KuX*L4>QXpm zo8gydY0?2{Sk^z6v;!`TeWb#5_7iOymAKyixOPze5v0tazYy4<$S5oRo>-ey-*)E2L zGbbk3+9qGXV=v$-lEzURK(YKE6gKDgqN`U~9^B5bV2p5%foC)}u@gDDYco04IWfpT zx!pN|W{*_SIkwyh2JwTDeWvFl!RQL$4f*LO{fT{y>8X<`*r=I7{Xq|mi8M{X`3q$S z2Av7o5L6iEeytZe4a3X?U?H7j#GH$RB28}D%y4GS!DP+xXCZM-!vILNknve& zpGCLVWu-1uN89;$S9l&^>l>%b69OBf0vqGtwLXOnu3A(S1Hj4)_8$Ytm;mG# z%=~%QbQ06rP~}>qz~;{Sd;7F`jk&sIu=PG&(S}h>D6WNQvW1nsupYV5XghI1y4hZ} z@rJq8X1gh203fK|{)4%S?E@HL+I}(ECVbmG>e_rZ*u;L@dRLj=a~>o9sfVk-*ks#y ziW_ha8>8UAAAUo)?2%^l=RuX5AAcK7ykhffZm!yZGfKDRe{ZP$Ki1A6yw0dyps{gc z+ezc5ZJd+Fwrx9UjK*$k+g4-SwvEQgiO!#YdhZ?H**D&U@7eo(-nACm4t>m4N9TUW z<=zjy9atd5KPq57H8i5!k}lfTH9z1{)C{Nkh%b8`ChtHw`$*!;qJ!^<`_=B_;1=TU zn8Vh-t=^z?_7R`hI#TbUIrwT5zISKQ0vH!Gikf`_F9)#k1^8_p!7H9ViY~%B!kL(@ zT4f(W19z>aPGKD3#y0oMQBHzcPUxo&f_%^7eRoW=#|_bd^&${$mFI1I=Mhs!CT8=s z0vCm(7czP$jI%w3a;K+J0PkwRh}JlgXUe!D`?P;+|HkfOT<>(mZesQ7oT2I*YzO0bdl@UdvWIqk zptpp$d&PQl@ip(tF$~~3buo^1S*tgL2%dwlIp6AX#cRCj%)Zgty@oTKnS{K_%D!1g zzWwv*T_syuL!+h!|HESh|04pUM^$U-f828E<8XFk3I4-*XE_Du!jkJB5t_h=qu)hb z?NrHP1MRV}^l@q??`6Q7V&GfKT2)+;BWb@KAD@T1%ez0qYqjq?n&4YfR-hF40bKyv z2ldGqOj-Pa!W(YJycZ9b9l~k%=9xf z1t@;{it`$s(*XpX2TF(q#K;43xF_au2xlKh(*|8o%Qb1(XnJNk8#J&ZQ^hJhdKBly!%b$^q|f!q@7`$zA$cTf&E zNEXNSeDl2ED-f{|Sd!?kWOLb^#Y z)^yw=7y}w%WG(EmkR~e}I{zIYqxQpFO9Q&0P}k+l&OadGgz$|sQ3%SE4kqAH@V+Vn zNhB9AI>?B09P-f^GJ(tpvP8GJl+iAi!o8KwIj zf@a2$D`b=>Ih|cxU@5EP1m7!by_zT~ z>tqa+s_DIpV5`N6C@n0Oebs!>IGJEK?qLs%PSVgYy>wkewx_8d39r@->$4uuNLtg9 z6-`w9TtQN0H2$Odi^H6EmCd0QJc1X(?uWstZ8}PU^r>SzM=LrJ6ys+ za3&<^DA?)*NNE;*%`KK-eB~;48g%p^7!R+Ke&jcC4R8KuUR265Tigu1R-YSP?HY{) z$d)=UC@Dxg3-mTqGbts2D>GUA@dsF>^a^B=`pH(BQ}N zcAad!AZ3?GcJy_xI<0;rlq;w!TA7I*zG*EiF8vqd06MET1qqZszU{2?_PVp$tIs** z&`q^!6c<`~5BvsLv%qOpQ6OccNykp=VFA2K;4r@^n(aQjKX|*NP7=)Irfqoj?rFtE z=G42E^AArs_0cNHV?a{=Ln9-4JMC@uPFKa9_Lv5-ppunUPHD2~iPKLTeu?Z=ByHHE z8<|Y!OP@dkNg@0QZ%#Sxb5DKQlod1~?)@4Ers!mio%CGxdjvF?Q%({_mg0^4NXWe# zBSs-eqHS9^S*6d)7Co4TIu8L4oBdi9#aj|_0cN#CU_UJ{plq%e8jrsB2w0&qeXFCV z@+b`WJL9Vyl@DJa@sr3Cpdz(OipTmih&weCME_<)P^XbOHCYiF86Wn%l`PaRdTl;T zv{xRr64(ifwy*G#+bpE-2WZJhvhYz62)c{ms^lq7_3|Rs z#TfkEf2llbmbY^X&d-!Oz8`AgufB=_r@}E9E>z3uF$d(jm=bj2XNgPErd0e*hl+lV zCFHA0o}Z=O!Nn(le(Q%ASD{skPn$3!HA$P{%fqR#92WvhIWn+$Q^QOCkVLgfh#)>N z!+}i`b(Tv=n>H!t$gxb@Cvi>%Gvwdk_VtuBDyLt$9P{Rl%2|y$010RO@o4~4egKzT zX~q*E?AeS1rHgZmxWCFN!f%7WPf05Y6;N7{@astjsxm(uR(!43wFb zXPccIx5iJi4^iCVl7kGQqhQeL|LKcWh{9Ogu-m8nWR9EY<%iaC`B zVUnwqcmijW%xV6eQi|Aonr5b<5*|`RIjKq>`e3Hg&(ei@JM?PWMS249@}=KLNoC0V zOzDi}iP=zUl{{H8)N{kCqkOW(364EHsz?gHkJ#XJ&p{?}_;mFS%%u9{!xJsu3bioC z#{2@DOLGb6wtfvdMwN#GWIC5Gln6bpw?4gI&&d!QJz=zYxVV|DZekG` zWS4O}orJcW^C3e3tkPDE>EddulC?9{Zq*OMeIS3dwRKD+nu9!l=*pqFmWRyLha~#Z zh8V&of66rZJonVBX!#H5PZUmA_>0lZ!aiI!>YIwIBwVSMgfZEx5q^zJ?@|&%0F~7K zJFR=)w?J*B?CyOO7#@6~>h4_`_si-7p{HH8qM%jcAkq+>?TO28m9#rlWIdq1{$b@HbeN6cmA0pjw?Cv(t{ns$2_Y|%DA zG32B?M{|Ptt8M(}&24_~x;egJ>fbli(?aHG11ag3Il(QL66SXci3IgQ3C)}Q_Mj69 zo2D7*S;+FuA|ug^zvFqn^~L-?);h;p%k9-HRmL3v@z|H~QUL@$wW>ry1@4wMTl-3B zRBJJDwW8dQhY}B6%d@qYwe=~kCiB-zOZ36jUa`ew-is|`ZI4wlfw~l;cN@oFqswta zjfK%R#@Z!m-Ll1Bn=LyaQ6c!&Gau`~fAD0?y+WP0SaH7>3|AScvt_KR#ss0EWn2ZG zKy*rbxDE3QY-P=Tt9(5;fotr94Cw!MxGU0D!qw>{-A}y3Sz{-nE_Wx1?A<+0e&yBA zXzcFQu~5y%I+Rww7@fc~C`|Ss$9{1ix15^GFzhkPEB#Og&v&kZ*E*pcV_Q+dccF{d zKGwbERR8I7BK8q;C|JF7g!VcS3yl!W++8fR);T4yZ!JjKQ_AZ4x?@G=y$c_Eo95j4 zY1HN0$BK0yk|(*1%jwuhw)d#lC%v@X_TE4If^nm#dao1H+zukWDYW4`9bR%j*9E_b zwexQIhsYh$v4Ym=d~af>J@+fXFjhZ%bM5OmH6>j` zlMaWf>yz-%CSKd?dT%?wybt@yK5jAu-_Om#&spG1W=L&@`E7xVNyiJqg`Af{ zIOW&XX{UrhzI&{0ziYv1<8CMvA+U9Kzn9=RePG#);Bx;D&Y5<^0|8ado*Q0-0cjyr z9YOTBo>63A;++uY7a-VKNI0+ivxD@GRjj%$h-br(r-Osh0VJLPl5_xZsId_ng@m!{ z$N`juU$R~rK4;%Rnu{J98{sEy9ICHt{T!yPKT6YJirBc(62l;L5LmtdSr3HR z-}+ck`q>Zq*maP&Y>>e0jVN3fz`q$kc~FSCVF)-aiZ=WDdf59}2GYJoMSMdU5Hvv& z7Kz}k{HcmTDa#R9Wi$}zAfl>`G=Yyj6UaKV-(WH)Jis#`dK;mN9_bn9snn4%YI1)Y~=KmH73@CP$DRyWabPS>m){zjV82ke*8S5<>aW7%M zF=90#u3iqAejuK@F`7cm^yifqg9AbJwLpDftC?X>p5KUhOf)ys9 z-rxrhgzKpxCq>3bWTYDxWSVs*PHUw)Gex_+2dqqnG#W=KFpHIgkYt4?JYXa@6VYa1 zWD|@hCKD0Bn4i;%gNZ)euXMPgW5l1atqAVuMJ`630yV!)gqgaTMc z4wYnfo>&2yM#0WP8evl5Rz!{gXB?$TX{tjBE$hED)R)bfeH3MC9BCYyIZFOHPEjPz zNm+2=wIXq}BEhAiaO7;d6}kBzWxh#e{v_EFiCM7BJT||wAitvBio#FVIaKC_pP~yx zDhr~nDnAe5BxI#UgBL_i6{Ig`Bz$HBNmS$?RIr$n`AJmyXlRu97fG`s zg=R6(Vhk>S$x?Mum0$6z?UK;oqS1q@VdtVq(}L8Zswu3R9@mnT?6Moqk|Y1JCe5-3 zjhd&Zx|``DrR$>Fq59XP2+O4TAHnlHx3eU!^UBdERF_Lao68)!VV=Ru#w2P^RV!du zSv6Nx^{By>sHzo{rWK<}4dYIAcM^5aB=zV`4P)2^buJ~W_xY6QC_a*vA62U=sK2B5 zazMlyq*=PgmWQPe|XobG7wTU9Ny~8h9&vTn1H4YNs+bECH zueVjLQ#>rS2QR&$1b4gYxY=qAsIIvttwbhit!1qxEUuL^uWr1rl$$Pr`E$~sp#${1cvMqTyn`6v+wXj?As=8G;%h6dHeY#7XO}hPAx^9PBzc$w@Cv}G&)=hl$ zPKtDLX|(rf*7sFMXR6k72T`6)x9<3L7cW;fP9?Na<=p z4(UQJt-vnnO5zyYRc&Kc={!_@&WZG&vLavr0lUoFXl8n|57Y3i>lkS33Oo8cd{amy z^MMKrFvSWGk28B66S&11?6L-7wsY8Mv(Af3?29T00-G2thUPvH$T8cXrkxXq5FS{9 z<{}gTt}X*9w#7R<<)bpCuRkWKA@Px+Sd|7&vyvmK@)y_LS#0Au?>R6-@D3ZZ3N`G` zq4%yNtn_y?C48|tlvblJEOQiS+Em5b<5k-1H|W;y`202zbYe*65)dN>dVjF78WxS1 z>|pqlH@+NA!^0WisqO0o@6f@japR85hwO}qsC^UIft54h`nE$jr1b4diKlphg;tvD zNdMMm6Q(%eZDAkCyvtd2&_-fXAAHcpUuofOWZv3JsEcpx5Yhw+HBm##kR-F}`jHV3 zCB~x79sntZwyR6KYcHorbu#BPI7$yU6BR(Pt|kCyB0`0Aomk2pMJ-u` zC!bi`S>W%O*`Qg99hnI<8!^jSCXt#ae;8Bw`eUih)kN*0qZ-2n&yncu|6rLZ^q1j% zoJl*fytSDlN}ieZK6NZU2uwbp(6f{rIx_G*02*2thn$2~n^}aI#SEpH#hBF`Swy2* z*A*WH`a`0TT8a&!*q~{Z6q_WuS(mt3W#}P&k=@Nx8|U1z#OX5Z*s>(dKBcKT&(EG~ zMcE0kJ8u;`OMYTHBuG4qF=Hi^}aSo%(ntjT8A?gyG(R>QP8DAv5T1Y+!F}tW2 zvu4LQpMblZ{;;VLFe%Nu_?-R~%~;IAS%xGduoKw*(>qnTmSbpASo6KiBOPC>zT6P7 z&lQmUF?E_7W6NQ;%lBdT%3}Q{a1|_M8@^(7j&?cLWtCyMr+R~bR(ukkd{i}MpX+LY z?*Q?tW}7Hx$#Na2MXQ)eYm*yd+Y=-GNUEIo+3cb@TYXgGs8+BWfl@HAT8eR?ay!}I zI{Gj}8ne3sFI~h+nh@GY*iK#HgG04y_x99~2K8*h+4f9ouTktG=qCLG-7P8fFA{xk z1#z7i{cZ~V9m7j!2^Vh)HOy2;HQDsTOi7)K{H?$xY*!39*NmaJh~g29+mOf*0j#CY zywec8(|0_>cf8AY{NOv*9cMu@7hyaXVKSGW(|0Hm_d<9sgc2ci`Uu4_E=(!+h5omU z$BrDKG2|LY)1t%VEiO#z7gQxKKXUHBvD)p2I5UzxsHNPi3c99zbCQ~N(Fk=-igD4d zapC&zs;2+&E!Guo`(I#b%-PH>jao`N$6Yb~T`3^p>={}w*6BOm169j|#_*#Io|{_D zeX)bH9r!`B=Fvg^QriAOCH9tS+fBFop``xfpv(p99-PV~)&%je~8;AGuub#$w zFL?KWoDgzyckkF=#s0s-6<|aqB0}^LLPDRxeqqnyp%I}q?!^|*q1*1^)6ape&ynI0 zfBrp}7(B-vKL?jY{n>Vp06zz_xdn?O1^shjS$^_Y|DL|>4m(l&? zJMFFOBA2^(Efpe%@36yhonAXW@NDO1!7Q-gE!F7wp}Q zhwVS&}COQE+d%$L>a*Hv-vp6z$AD#LRh-OEaghbz;Yw>eEul*gdCw}t-ug1zst zpYKVm?`e+jS;@zNpG}eei>{IrM_+YHA_6AM=&`X{_UQ@Gky7I;M1=HGVdYz zkAd%xCFUOy%Wr4De2-$?=ROIj2pC4j|3;94kPtDy(qDg0Op&lYtbec@0VDAl`kvLR zjGAIe#rsa4Sw}`A=(F-f(wqpTQh{24IDa}Z#o+;cK&BFq0P+pr!@dpU#rf2iiE%m&7?JuVmfL%@4I?- zLtFkSPZM3NZ|B}!6ny_r*qR1z`NQ#XGVju*7m(jZw{eajzm5F*fM0{^&~}L+xXLs` zqPMq}%np2!LgM}?JFM$EEjf}Ebc)*8A9!RroEyliDzW8#m1nLej~~CB?Jb~~njNuO z^t>0zd*Gxaj}Svm9#aBJHr678RiE?~f?72Q78x_o=fx*2I}p4ASW+h5(jXp25Pah{ zjF4jtr%A$*Z7WQn9U1{sC(GM;m_!*zNFD}Wd0QSOZ_$_T#C~OTrHbVz*w@eY`M}@v9lG*_BktA8B1x;X z-HOf5)8bNw^74en5H)wpqD?}ig3oDPA10~Q^gyYV}gBHXO`*t<0rfP2>Ee(Ju>*rc|eHj!np_bZm6Wk^DoSG9}>E) z3;L8^(EUkqd{`!*fvg6SH>IqOx1ftwR$quZ!Pbb>a7`U2jLDqCI5_+DF2S(}N=lgASF$(@i zZSb_c6{0pwK?*#?nk}su!_JkR5!QAZv%FhHmeG}X%ixNfb71?<(p*ZD?@5qH?=D4* zzXn$W!VTH`j^T6!{lE#=pYQqehUnoIA`J>`%s|MU%|f&8#?vaAmWq*TC#;qlSQ)2Y zMO^d%_kkgXS$qC=Ey5i4j@cqbARjRWuY!1p>ZcJyy; zpklNK3%Xv2uNryu-y>oqMHXTZmbj0Q5zcC8Y3Eb6JdR1#JJLyDA20`u$e8?{OLLMr zBDZ%N(D#lO2c4Ty{$`NX8l6kGjw&M5Pa8F&oJtb4IiO~5lao5SNlvWD#2hRWuOq2T z3T#g$y$hHA@u8I3|Axqd`Z8jC#_s+8Cy2K5ankPN2yZC9n3_GDTpcPRtxpAaPzNNY zbA=V;V?*tj7&iU;Z$s>rjtT9e$H=!n%s)H4XqcM}bNa=Nsg2$YOCe2Sn$1cc5(8R< z`jWE|GL7tcI_29z=}IPA%nAK}t=PTFrEFiEeaN%s87IXhEApm_C9)WV;5DbEu5Qwj zKYQKS=ixOKW4BRN#OFemqf=T|&bbfN#o_^0;!;ZWKlc3@dw1f}ODMl3iOHNj`bvxk z&7H=046IV`TZ~)f-_>z<9xLF1=8TIH8m?6I1#!w6nmpBh2jP%V!~Yr;;JAt%PG2NB z)e@1;iM zSWNRou%$uswUU3K2qa~$yS5hZMQzHeN*pDbd5Taxd|CPp64oXHRhrVFg>gGlc;4m_7hEoM$O7nS7nasrG9Q3?o zmLuSn`AYj$zfJZ?y8luA8VN5$Ai6yGr}p2p$9bbO9aD$swOMrM$0U&Hncy3=$&c4x zbRgqOO#^ZB-#*F&`XcF>ewF)8G6rZ#|Lxkr6Y#g7T*LLUNXGW9Y0k{=Gzm@bl>5UbIh54YQk$7@MoW7 zJM_^R4ik)^6Wu!`R9%?B{~d-*xN{7DKhp$z%0nryXPTlM>wy0*ffXv*p}>VG&Ir7I zhi+~;2}hSdG6IKqf4k*a5`WjAx>$0`{`GmiU2qb-7#iB*oN1LcH+?oPy(+smd9YLevFZF@$`062lgkQjo zl#S)LU~Bl*k9$N@_9|%|f9nCxp}h@t$BNU{4uZ3JByH^~1*>EDqo-w>p7cC5G9&0C zj;A7{xYiK4U7bOGrJ`!G)_Z#~LKQR5~8XUS#i`T(-caFImRf#g${bE&tW;*MeKj3hx8d>>IG7bH}AAddtOz z!1uo4^gDa|^qwiwUmfeu7a{-Jde^VW9FO_!9NXWTm@x0Mz(i+GEbhY~5j)3i@5{mD zmwAw#TiieOMun3bh+xVCIMEPX*mzl`fy3w}! z>+C4t!JS3m7Vfv5&3AHYMzyg+L#n081IP(vOg$(x1M1&8h%cHm>;@C7nN-aiEzD6* zz&xxMnVP|k?L}1TDZN!L-2;ZLc^v(T==F6~@+QTtsia)WPtz?s#U(0v6$2Ty9>s&` z=0=slAx=(%|v)Rd9W zMjQQr+Q!|=5jq<M%6#;?5b7*Jr>TZE(UN%u^h!@n^}} z8E_tHOlKJ=OcBpn?33OO%w**pzUQe{>k>Qd@|b0xljtLxQBMO41(7KDjws0NcAr3b zTx$o_E+*7+dbef!B2q@2!WmbW*{?voZH&Vj8nU?wBI>Q2Ye-qq+if^XD&sIC%sHy9 zRsB`lym@BoBOF?>E}Ab#d({e*Plm=*O%&IQU}OA%9A>kF>(e!MMm@(vLk**B?jC3` zx9%)X&XubfRUeJb6~3H*h9;6W=GpGt;@-*RhHiPbRo}+i;k49kIQJUybpZK0#^K~< z&LPb)2h?G;0?AiTN?@|?Sg?sjAA#Bw;Uc?XlOqK_$^Jy0p}BCO(IX}EZ6TJHp}f@b zXn=lg9vz)o37y=gezC6ny)lokZtiIzpInA@vav;Zer(nzObjVrzUkD1abUepYf{0g zEGhJ3K_KI1OBoHz+U|m_HmulzzEX)AkNJ~n_PnH-jh#tg9|=B237nSpJFwvQi>YFE z!51xa0?K`bv8+RGlABQyXC6atz1{syFbM_ANt7K~yXeV&Q>Ojn00(AKD2IV|*GBJ~ zF{|D|SoN_=h$7-+VI_YN^Azn<6}@vgm&DANnF|>1Im> z{*1H-{B-yP#N+QmYH$q?wKpTI+XshaPZY&=s$Y!gxH;&gn;MRjw!n|?)k$Y4CXx|&ve zJdwAz7;WTbck<8ljDD(AN6b?0rSSJRi$sAU=x@6CBKE6*qparf$lDe-<6|NNkFMk95`HNhvWqTX5o^=2(9RVL$}B@}O!`5r2(ne`Z% z4PsREJL%QMSGpY0s37Sxz8FvD(=0u%jSd>_wXHR&m3l^)Rji$~VV0Q2d@<8wl(*Sm zHa%{i+73%>M?E>3-nH`~j>)T9>sSj2L^&ZGCo7Miy6pE1#Td)~fB6hHPu9%qfITL$et=VrcuPj7o9$ zW++Ooa4TkSS?dJI_Sh?*Fe&N?*|(VnPhJKjZZ*bP&TrPLFV0ws z8EN$Lt7iqQAjmGaaL)IW^%c~vABPyB;qkS~_v9g%>*FpVyAPv;H_JlU_EuS7N(L?D zu-mj4)*ddtv*V&E@6tfm{IkEZL&aj{Nxz3gLtkcvzawcFWG)%PkgxV9 zzB5K~UM9xlJmz5kb-P|1!U-N?(dYDwzJ+`J`9G;w{{Mq|O{I$!3WfF(eOq=gXpDqf ze~%PXG$f4ypvJtKUr-JQ|1at_ zNMfNR$^sgIQ}iV3zLV`O_RI2?oQpR2WjoZB$b?=JwOESb@L3I&x9xvjhf?5KWjtp% zAG5a+)WG55TqMBZ<@pNrA8PHwSGwYrGE)E=g*!N2p#F4scTb5dO~{H?M%h8Czo_9u zEIqwqNxa%dv|GH8t?bEma7|v5wk`fgQIrewK3#_Fr zlq;Tg)6UWiN42(Hr_SJC~!{f*7V68RxcfrCw-LESkZbzVByc>|imC9Iv@VMrmfSGoCQY-U8w@Ywts& zj5lJT)~r4k4x=y$9<{MC*WzK$pbl&Lg_}XJ0ssb3Tct41l=K*H?q~CkXi* zx$7&1(EXtbNtI&&Yn<#nG8&4=t+1yut)~ozJ~FSOBq=tF3}br6%x<0EubEb8U>ab8 z6C?^~Nk(V=+?@{o+a|mkI5>OGz#W6R$ePyuXP>nk92+H&P}3=6fl6fcY=lR>K6&?~ zueksn7bFXD(hWs;?T;Xn3xzk*1IKe6@c&7@)&(*YWb6@|q0l;on~wD$?Q4m(9Ln4{ zLMevez~}!6w1|sTJlGRT4@+YC)Llp3?Ey0?9+)#7P|DM^fI5;@}8ODDd{s;q_2y5>zB;y|6}PZwup)ArGbb z2uA(uLIB zB$!~GWPTs}pR&fm68t7JZcDO_9C+!)P zY0j}H$k7R=gA3=Aq1()7&$z(=-z|=ut-^4DW#=iezws&k=hWoLd(vjOL5cAwQG(%6 zV*wmrL*BlaaOoN;7TotIgkm3mHJnq#2w9-TDnb&pOpABeYoJ}qG?3c#C`-eoNu%`1 z6)p?^6VH-JE`Vw(7-=*g*t!sis*Av3@Jz>V%8`%#r5sVcHeyrPC2$d?@Qa;9xK+9Is6ac4S`!+F~L~CY{MYe2F2-$NJd1i^Gteq?Skd2AI_zL40;CvDC-LQkqLk zX>F}}EApnQXl6_8*R=(3c`^oJX_c*g`}$&faucC}t);81;MQh#F*BYA-i!Jagd%%!D|<2NW9p)$JAwgtB9NR@bumPhFiA^nCOYRQvm_(PD*&bz3|))9En*r+w@+buAea+sSO1t_9V#~(oC<5V2AB2 z^R9u0o&?=waeBHG7To-w3hixeTzNmMjuyZA@mT&DYrkx!(z-R0eO$ONuP>QwHIZ~| zN|%%CAS!~xs%i3Pbdp;#56`C{#|&d`lh(EWii&~8^{0;0jyn!HpF9RY9Zo3i#D|(_ zJQM4ecWnD_$3KPxkuCs%X<_ZZ4HW{GF8!Sf8s6IU)&I`vcDdARe?PXM<8{ruvP+*P zIF<*utxj(_6?}g`;qe2FEqXmNSm?rXX&xDCwz^jDleCA)ckJO!yXSI#Tu1-%_N0;r z9lhwDv%7Q33td*Y;nKhb*L0kS%fHNJeBArC^e=$9`YsTtleq>0; zU@5E_d7m=}!S+>47SE2K0?#9?0-LUA4;|71pvYL8w&oqO8hGE!0=C$}U)}e2 z&mZ8^K|!xuCV|hTTX8rg3HkizkAES*yq~(se9zN!KDOlF-ZIwTkEHRyQUKq3I^Vrv zpBFs;PlfR_p09X{Gt>{i6nH;FHuVK~Kgd=;dUd}~uoMd4e?#5x;g<`!gztNaGjy0U z#IxU9=&!rw0G5^C%<#YQO8pU2e{tXk_=!7l#HsM8+O4Gc=%@!WTKI;E2ZbFwJ+%ag zv<7*Y`-`Uf;kO1vlmxtdhs6o=V6XEMZII+t4LE)BlcW!hcnXLc4obocMs#=oV&O#` zri&rrL-kAiyv4O9)X?U$`{>VfC4I3py-#2#>+;uVgEJQo}$l^Yfr8Wsh% z(2Y$Ei^4;W`4Jw95FQuip17iu5vH4V5>lfc0Cw<+cEzer@zF95&BPCn&R-Vj8j%yvVL7Fd?e3A6VUe{K(Y0YQ|4w2~ zTO%GMVoz40TP=c1OFdccRhZ+V##+PIf5gHeMj?PA5G?<6BgC$+MBn^~eNK&T{}Bg& z8ijxQ2cA1lFf79VdjJ$y%ooV`vXwvB;qfTkaaZ_pB%^VxtACi=;^{5pxEK<+z-{qg zL2=}#(C6?X_Ga;P9tp^+ah#Hg5*`UWX^CtE2{Hr;(xVBb_|Se9!s0X<^ol;@AoNd4 zR$4L<36v-!`T68aG|@~B`vJ=r?gO0%B_Jd`IS|MW>Ao16?DpCHOH1*T42J@y*lPN) zlgIO8!{rVq3u*wo(o!SZQax5vVnC@-zzDtr=*3^DwhVx%v@|14v~-V@5KvqwqWfT~ zEKV{e-nDPCN1DZF@s9wxQZl@zEcFnO;U$@ocbc;Mtoj=UsQw*LtAX+zF|$W9yq`OE zaP`lyWTsbIrp0JxF9GrtVpbglu2w03Nf~ChX2NJ&)|h2xuO`Z{W@aBaEo&=0zMmo6 zh&y|LA#;j5Gq4p?Jx%Dq4SS3r>x?05ZZ#VLG5bg}`(rhIh#>0~lyP5#DZrre^G0>Gf*z-ST43yF1BYL=2#A>EDr}M3-2s<<1`QbESD%fZ(lQ)0VCB7M>U{G zf}SFcaW>MSTL4=AmMC7$fRo7}IG3;s(sX!uRRDl0fL-W?bFx7(BYW}^{+^$s#f2^+o6V^SYH}JGK@U1s|!mdI@ zjl%5>EY=O%ND9AIOcMr$-dxhf+ADq%HGP@}RkWK#UK^9OAejd<0#g805lyP*O-8)U zCeqEK){RIMVW`w8NV|;&M9ro|El#{G>aWf0xlPCvVO@kwx%W*5kqs_Ht-pDj&8-_z zb93oTTFiJ_qt;s$wOhrsAYHRkIj%B@vxK3sAp6o!GUCA z)UZ79ungg7F3RXD06J1xiR%(nyGi+J3#qgP8v2BA@o;~G6B&c#EGIIn9a$=^+*g2(J^7h2WYRD4!D^9z0u3^ zhR$g)0fjLH1=;_%ay)`~DztJM>}BkOGJAd4i!s@;!3XHGnZA;N;HXuhDjLWVo+kF0 z9w(k9u${%@A7tE|19{KvMh&1%!o!0%``9N(I2GpiyynfrO-0%_I9P5_vDe@6ICw7Z?<03HYFmbQejY1{|X%QTU-b zs(N3%=Dys_zjXjUw3m2n7h&>xKiN!DRFu>Up}E3kWafD`pJg}MMT47pUfU(8yd@Xg zGV`nzE7_U9-f#waE7r^_u2qYkmkXR;fY0U8aNQ*WnWX^T75%vR(yaN&ta)A^I0t6H zYi>7T<&u%^y7Bv(C~#FRdbOZx@z>;nzb+6CPkMwL+EaG=Ghmn>y$Dw~FXm$mcQcQ_ zxhS&P+ax;^H@TvXx`4zs@)yjvv|Y7k$G`cuF|C^gxGq|E(OnFvTFl$*9iCjJWM&d` z*x+NI-LTm@tl9=`PB&MrEq9L5IxHOW@4&Dx?V;{~*>;fF48`7e#G_}wU-Y8MEhOq< zJu*XmeGnS5-Trnn2gsg-$eL~+-=QIe2BU6Sbs}QD_cCU!m3FRxch=@@w;*(OL6ehk zF>|dXSfnvY3mZ)j@B3e8ckq1rv6{C5pNRt7o$I8%=1m9zg;}(ZZrZCoNxStGpG|Jx zeZBW#CfxfYl8v70k%is?P1lZH%yHJ%Y3$Xh zufUl$+94GC*)M@(8L*I`h58sopsgAnpvu}#yB3pqkRDd)+EZdl~K7osV zx%1DypAiZ4K+M@t*V%{wbVlt(Im_js+!3eY5p=+Yw=8f)=#(GhVuAE(;OY!aa=9mW zF^zV0+;vrx?IYOO^)T{9Q)xWu}e@4uZ zaID8(F&D_JR}lKZ{6vUMS*#sq04(^ruM2Uy`UY$1hP3-49u=$n{c7$_sAuPro?;8S z_ZB|xhGP4S91Olj5QJtIyn+`vVUFEl#okBCUW0YK;e@#Ru75{5eS_wA*SB?x(0do} zbAx0Eb8Q0zzu&WU-D%0)v+Lg>fv-`gkEOcrrgY5+&=B}(C~tl%wt_Kpzv z-d^%(srofR5U@1$Tp?hnS-lg#`A}&8(i;n!(tDJTeSxER8%BT6+rIiMXsRCjY#jRt zr}zvDrhbNpd?@N#Gnu}R?0(Ihdd^1&!D74}gCEM}XWIU~{;l~auzx3Yc!V-E_`~{s ziw>Zbd3*i-C$~2M5s@Xa_If*t0ER-K5MMF>XA}XL02F$mFBnZB8bhr)_xT%TPz`Cc zxSJ7Y9P|wtH?z&zU?7Z?PpHxTs8}|W2l<=#kDHv(V!ouudxpglxlE-r zBNs&F{PAjPtV(L_r3=k^u>~jUQe0axGWefoSe9%BeOcPtJe9SJFq`Sf&S=C^fbzjU zYVef{{)(OPkhWw9>Zn`6Pb%YWyQ2*dH3xy+_xh%ZRe0U#QgH!a83oskepz#rhn=5& z;Ju+2Tp|%vx08!7R83ZuXtnwwBzozV&M*CU&L=ZmExM7b_uYFh3I)w&B)s^@Lm zBdJI$jOBpjfy9`FKQV@B^1{=%s z-whzhOH2pNPjE4bI;79ga>Y;c5SS(^FJt0x$uQ&CII5^{e?^}bBWr4y=i}O3P}1U8 z4&l*^OKec&=G|;kS5wAO<3&`7vJ2q~!BLaa08N~z^EuPhs#$$U7FN={TyWFY|7E)< zVk(~Gzc|&3g10D2;;OdJpE0PWte#osrdR(7sA`er6=7-kf;RCsoUv3}8rY!3S~h(H zHu2VYZg3{?J*fmFL%p_roDGAqe4DoCQAkzCrs5wo7DT-Ue;6hnPq?i~P`kAidPNe? zNF*o=fR5r6H*MgML!pFQtI@oeo%4-iCK|?}4t1VIn?Ihf${yPNHG7 zwPwppcW*|6`7;yRv!?_5vDklU%N)E*ZUFBO+mFA562Z$rj6F#+0C;7II?&$6tEUmF z@K*?OrpSkxL<_@vuMUIz9*nC698MHf3|AG+BRG8S6)}pALS-=iHcrzkW;Gkhe6R~O z-7+E`&l;aNU_y;7*(+at?G#u^4x_9g=@d1<4Id^-vCuS3a+;gu=WQgFuOTU-<``Q@ zZ~!LqBJ-)FH#=S>_yJz z>QX(WALr;Qu$6A@6nxyo{O4w?tbUhrc28suD)Vxc9$~!dci3YAwbn8FraO;~$SL+u z)ETwUd2TpLSOG#oYK!n0UwDxc9zUsA`B$_8yijV1)@8*zM1?|ZL`xcpSH&2nz$kpi zQ*n;7*`)l$qO(_39yzK(#kJX-_k$9F-)G9WE#P^e6=EU2eYrq!@C@EVOA(*8af^Jm z6qKxO8c^+&SU_Ud?ZTN_((0l|zDhQU50!jT*|@M7Q#wDCm9`h&LLt*+X%?%6Qc~N3 z_4mc{PT3NbSsrOIwEH5;4;mS%bj2E@yFx9(N@+1TrRwxVkoR)9B^ zy@=H^AsO1KTbzY>wYE;06pGwOWzO#9G}-CtS__{L4fVVy0`FW}4bO4ye^f4of46C6 znnh>+d$i7Ck6qaVZ1Ht@$aG^FBe_g=5L7qXUx1e7-ns1b$92Vq_ci_)7+ow>4|Z&Zb6&~IQ) z{}|M)zLjY`+gsa9ZfWbRl?AlV`Puwo!}X>AMc8pb`O_pH51#IlaBJ=ZAAT3oXy&sCHKs2AIs7TD-)t?rGu z<~#N3*xrRM;#u0~vvo%V%6yUy*`5|5vj5d`{ax;;c3Pd7;%MOLv$nkU=!L^_OKRWP z1G#Ay-#;?iNBrDC@5XO=8e;upn5l0+y|%VYAqi@me49lAI2ORqK0F=ZoVf9NEO+%HEXY&~ zpZLd{lH}*A0G(UC^YjG-#hbv~lpA7V&!rQwm)+s#VGCF0Rew_Z>fjZy^(l+QRN|-X zHPKTKi0|5w`5S=q?_;%y`IHaZ8s*b3}%f#VkzOJAE;dfgITF|7~|IN z$pXO1@>&Z)bmL+FCT!6CG%&t=Ywyo1BntY2iu%q^IVE`4JL&KqDf>y>jqQ7bP4+$o z`{x46;^%Ia{@eM}=Ig@p=OeoPN3VG|B-HcgApnGY7t#HGNZkEA-t{)gzD+uz&o3V9 z_kN7HfS~`xj!qr(?l&WFQqg^U-}#LP*4)bKU?FVFdP0l*}%!cahfl z{zvDYyZ%0O_8tOnyziO4V32}Fe^bRG2k>Nj@dgQv!V$_s)w%00Kv?OGfBC@vjx7-4b=-ajyH}&oXu)&y6j7T9! z8uNf9(sKTnJ0pd`SWYt>2|`5v21Dh7t>h-8&@XM91O}B#Uf@qajC2 zWToOorOPh{a{?tRCnRzw#$*qqf?fE<69XebjGuJ#Ty2s#Mt>W214;PWFZ)anhM2xB4xV?MxAWN ziX)|?Fr?Z$WXC4PH4~-XRHQ};Cc!HOj3@+aoMFu#+D47j0pv2EQ4Wyf2pjukH-TJB z;nylcZtFsBTXwW-U=q|KIxxi0^UY*p0VB*Dg4vuU(}`T>x^3X)zVj7bzGq=_dqVzl zW2y~7{v2T}PEsVwVd{Va_CWUgknFETm#OOjdAawgyaV}{%wMk+J|*mrQSqGs>PGnsia{bMCBn^F#3V(;%^AGIxtNX_f<`3;uNAtRV4UQ|-kQDF*Fq5I0PXQ^r|DoTGS>Q^n&FNWf0slsAR(k#xm94H60 z%-2eSS?I#b;Vj<0tK2^jXGe4d{ZX3?RZ~$_9z76Gl3b9&3?rsk79$MPdYm`b1-OVU z>tiaKsxDPrEcxxI**0Q$Z!URFig$NNZ@h=7Q!WXssyn+bxcV#yd?-sc&Iy>RNU1Jp z%V`Mcj)J-;r2Phm#9JoKE;Z~sm(8=(8c=4up)^B!)V+!%TNmc3JLMdsR-B6#oeot+ zviegum2?kP^#>K0gH+ijRkfp3Sd!H9Iy7#))nYD}?Jza#9iW#P^0*iy*weHoM~0&s z#Z_%JRX2x(36}sxUvk4G=0_y}-*PqP5)RZFfvvjXqhcMOazWC#Nz|N)oK}(C8l=Hm zJ<00Us9M>fTA}Td1!07bw@fmWMnJB=hN}WGhuV;-N|UL2V~~c>he9yo`UvB?!Iv;F zXr#(i>TAQ?8>EIR`DX`W{~55DlD zvnOgPr&9N{Y6vD**Y90@FiQhvP$%e;7~JLOvRu|2ERxj(5SK5DIPhwA_u9n z;=0+si2z{B%l8yAw=f8Z#fG7x0|bA=d4_@G)P(EWfs@~s^#;2i9C(o1j>I%vI}F&u zoXe5ZXeiQX{Lspn+^$(v#ggA@>QtJnT3~?^vJ=#Q_%irm?)t$RZZPip2Kk?|7};^` z!6okmg|2Zv%DLL2sDz zjg;DmP|9IZ`r}E4lZ`W+LnDMt`)iK|NMAuTsJ#T;J$RxB_-F%q-yO!OJ^JXqYo9dB zKL+&CCQ?&-Fx5sLWd_1(dtYy`84wjiF|t;HwAnBwq6&op3&M~*#K>J#`3zB&KLl4W zRaZ0B$~IMvK2!@f)h<5N4mQ=_I>ZP))NnJ^IWpC>J2d1pGet7fpEA|glj27*B1)D; zYTDTzH?UdSf#Wxk`qH)n%^0o-?VykCn9N~5_iU!jP=@5#K9?0}%(Q}!O{0%Js?9ys z%nbC*JetgXugvwJcVV6nh>^zFZOu`q4B*92#NZc(zp~V*P@)oXY z=G_m5tVo9ZK!ZP=8$M0PK18R!$>xSY^CX~oLX$a4?xr}2aSV|uKmR^46|AkeIh_0- z%4!Rz=!0OSfD&7Lkt;KR-a&A*k*wN@T$e>Z;YqZbek_%7sP`Y{RMSMeBXu(~qa}0G z;A8KrLoMK8a@VmLmf1f}>v*O=3M~3)pC=?&7Ufh%#Y+cSSEo|)R)x@Kp+sjXv}e+G zMv;PN0KL%SAh<-_FxQkP!;ki`J>Ww4!5 zuK0npnSr^*ffXR2G0&)%2~c=sGO)B0L9~a=Y3iFPDLVl^eq{^V{y_`V;;FJatuK4?XQIoLtObUV5pD;K4 z*Muzgw?_f@ZuWLyb}!lXuX<)EDE9Br_P}cKdvSY3&TB$g3ozubj7O+d>5h;F?2<41 zWie*9wnJ3Q6|{aR_;RQg?DZqofBk{iSl8EX_D@&Wggrwhq1Uhcjut9ZEuc7y07`?sq8sv^@}beM5A8 zJ9UHj`<8Axz)vs;W7~;I-ArXC_$~Pk@yP+f-X09u5%dmpxTy}NoWAula3)8-gEF@z zig9S_wY%Uf<>o52gbm;a!2rhZiOuifm>)QQg8|)cvD96#>>a_>o!_CM7$kzg1)*fR zU1XwX!8N=6qw4QR zcE1M=5R5{LRV2#qD3T{XmZu<;->wqyE?i-5)S=84Pwx7#C^*jQ$3TQ>p!$;=R*jo5 zHLNh#10={b0QNy&AD{c$*@W1w+s#4$$<^RD5ELrm9!l({kL(`u)u|QZr1sm%dl~2* z@*w_nW5@gwi|v6m?56SS#qRfm&GheNb&mvlk5qvdpX+Cd<=<)B9`@VMej&~{KW@0X z9~%|jiLu>aQ``*%Udc+5$w99A=0I-j2Z3W(*c3NEm}j_dH&yDFWPOh;(5ve2yZG&= zRKJ(n>6hx5$1G%z=3gEe$X+%2FA2ZBvU5CImT&w@ZkVeb@L+^%^@pZy z;MA|T8S@vfUk`EH-Zu8G@x)%@*dOc2AD~SATh-;)+!BXK;#bIEZz$wDf$rqqU$1~> zj6jLIp%{n#<=b3)XZaz|2R&E~?A!Gir^jj^908weu8(RM2PFOL8*v|T&^z|DPfEzc zvVi@n-!0d&Vl0tPy^hy1`amj`QmzRB5T7p{215J3kv2o!pCkAi{Lu2jLNOZ| zlL&Ebp=_>1E;hZ_+{dAm@n6%ciWSy z*G~z~I#Z=vDfb7VF2!%6)Qnwp?$2?Ry41M^1^!v99dWHhsGF^ScHK{P{+f zgyxjzI7}?PN17VX4PQQ>>jA=`QF8{@awiR*LJdd|K~Zwg{R_gW*9=9D)7T3^!CWzP zL#C9Fv<;*+!&m!5c$6N=v6ZUj>OYCIFET=sqT@dz`J+&bhQEP0TsGj?L~juX*DxN0 zBW0*yOfiV9U>r%R@=MHT6_jeMj+!)+`qR6NDplX|biu&-j)FSf_^z=a!zSKiKfM7; zEH?s;iknpDNoW-#J zElkHdD>n{Lrz_3)7aGp`M6khSKbWWO~swUp*TY44Tx^ym* z+$w3DNH7L%QL^3}O~RV+SyjCJRf=r^z1-`i)S>?m!@!;&H_&zM+0yi7HTiT5RaiS2 z4Bh$P*X^qwqs!^5^Q*_q%CzvT&jd>0CRlog#V0D#NlD2~V%6;6;^K~tyiQw%D9Wqy zN$FA>_PT={8yD z*8?uqW1OA#gNkMhhjCEJ%ePJRUm`+QIxoi4#^~>7xxpbTF z=DTEP2|#esYvXA_n-BXJuydaa`S*bjfGKZ#kWMf*QjD6c3rBenu<_eUy+8f~Nip?J zLI4RiAEJ&T6xs%W${`_2PI>!R9WFm9dZiOW55Y?sA-^#{RCqV3I*dtL9;Fjjlqy>^ z@`_Cl5?@1%9=tXRkBtl>s6~(s?j|TT0%Jsts*O;%T!E9p*qdlB1_}!~(BJ|F4-qyJ zf@#()(xo5?np=`HI50F6qmYsqFhH4H9koVJjI#WD;0Hf*7p3A2!wr~-~*7%LgzRxs3r%!xs>jXK*-xOd}#Zdh{gzyKj` zsK5+u7DpNa%`vVJeUAj2Tk3AoDL$ROn2c45|B`UdEL@Zr0uwOEL3A6x7*2&j4j9$< zlnC)Ur=tHACMlj==Wei3IN7l(iUjQ(cEnD}&dOON)}$O?k72^z$R-Cg#E1avT%i+4 zB z%NUk%e5qfOo!^aqkvD@)CFj;EfvG+d0#dMT}tF(gg&-F*p?SmtM2SuQkPWlf~% zk0@BR+JM^1Wr{h}!Br`HBaD{QaU0{_boCT6%!oL4BAJ--jlZ7%@}?J0;!5#k0=E*P zy_7HAT}nxAjE*Ym4-3U5(nL+I7IUH2PEA-#`{pmP(&su%4J+JdG|TOE`+`g~cTbj6 z%IhO;KQh18Ei*LP5B5ToG`6hVLw=IrynBrZNFfE0@DW!P7v7hDHcNM=t)fb{-U~rw zgSeA&ZK%a`Lu6u_mcL$$(IN*h9a)0tht1CB^JAkZ$Y0inWY*X+nq2kxi(d3nrBAR) z6&bAt$qy$Yx%yR_PJ@5F#n1|9j(@Tb1xw-QY$_u} zPXCQX>l}Wu%PKIzG$Xui9+RJ4yj@aq8a$?E#j98n5r6+OA2Z@K@|QZY&Z5UxRc5Bl z(GXmuENX&F&UZ5x>!NXmqIh=i1NZM%z24onmTlvy#SbNH>I9~-CpHGzPWe_K81+x7 zjPWe~C#j~}Smm6+&7ru!c4ajCB-uZG4@iIxMJ4+rNu%wjA+DasBl`&z_pgKhvp_tU zEu)BK$6PXySWMK?xMyE$?;G1dvyS7$^VbCdr=}I*FlNp5eRfrTrc}!9yK^%I9*v`i zqyf=#!bk@d2bcV$sqcNpUuryFP{>sOeoP*7*#Xn(TFX!ciTLfc$rGzY*<>xQ0`f8c zt7A)EaV3JYcZbl^>GP1SWLd@EH^tYN=cP_x0lSDz1*PNHepbd?Y5O&8^7NkztXaQp zMRbHHlwL#MXGtXW)7NjnJc?u(v%8n0oi^PTmZtUY;R+!E!dE5dn}l=@TMAubg1nCg}iv0vSA>!fXHjCVhU z@anL{=c^5(?mbzb;c(Kom~G{=C(&($vu56RNujLETKl%UVZB!td#Y>n8lXVB{o`cJ zyQmTt=$gL!uuPj!_jLRFavqWE$2g&h`SA0rA>I&e&K)0dGotP=xBhdG=)2?QLQ?i8 zV0(}cQb#u;sWxy2QSW7w5O}z4=1q8}o9Qm7yXBKPOu2I}r8}-5J={qM+$28p!4Hef zyvQ_YYR&yBBQCbxUOL>FFWM?(A9;w9ya<#0OxwKo*Swu10`CLqorV#&HR!*#>OxlQ z9pUbta_FC`uI;9U4wM-j0k+_iciwN2M@+UK#I`V%vUf}gAfs~{JT{S#a+ZDY0Z3cV zn1*={84F1nkGf;mQMqe;cnHPY3$?nhmRUEhIdEf}-@x}mS;7}O4dBuD*=ht=5^qrk z52q5;JS4NaIuy}_t+F`)txbpkgtfFCgmQy9NQ1>F(E^Ejfc5F)^nRSy%oEYSyr+43%*1Qx*u8!FM;&aC_5~=tmPNSKSUN z6$z_Z_8D#7cf1@@&m1(oTsS1cHBtizBBNBttO2QXbfNo3RYS_H&-zH>{i=NZYHFIm?8^Fn7CWaYVn!ND%S1 z7dduek@9ec_IbnCwq4iw_6&!`wppCW*QIpDg>_}9$Pm(ZzL}XG8RYEf5@<@NVT6+x z5o8Y+?QV}6z3~yAdf>ePOmM)-Si*OUbc&>>^aaF=5cJkZc@1d6$+5~wmU~5BXbT4# zbGerw*OPJtY;@?rzuLER=+5+kd4y!~WNT1c3ZEbd>0*)#Q$uXH{KigWCUGNLDkE_t z{Xs%Ky6A07#DhIKBOSAKWx9eNR{9h`16VprsN^Ch&)vB&JoEU2QI%|HJJL<5J-Ps@ z!?*(g9r>rfRx04=R<-EuBijg%?3C7QlyP&!l~gc&1j;i{Og!60URUNd%UV85ZI6ic zN`kidaD8-V(Xoho?*O(~R~FCoS<3A8a%**j8X|ss9e4X+lo*kpfQ-K&Y+!4}bO*hy z*aeAPlV>O1!qi%x3fznmq-bE-mFr_?1mw$y(e1 z;}UHw&Tt5ui3FJIS#2Ac5$j-W?h)=--huM;;Pg4u^GJ>Gev4aj3Y!q{MeM1(zze9bpBpa-NxJI+b~=Sos{`q>KJ#!;|JIPT8V*+W6Ue zVpF+4J}FkY$q!gYAEb&CwvOcF^C9)fqdD`H$jCUlb_0EP9uMiF!iy{I^2EMxesBX0 zg>;@2$u-5#WRfSpjgc4i7Q6Cq{&vDWbzLXNJKP&J85A-}lFDoGC#MOp@T59B-K3*7 z(r;oimKHyix-krRP1tVS0sC$cl?KqG}r|%|oIt>LU5=L_X+Ql$<5WyF^u4tlQsLF1DwiSgfmZrqESf z*qbg1^`J&$F0)fZ8X=>j)e*YuRB&v-(ioe`FpI!^Pz+}uMaEN%mje*OG@}rj|!J;ZJ z`A|E5Tb78-{cBDGuaurR#5%GraV*{T-S~}lVJT$X%cOfiYCAkdWS6cczH|b6b@?Hc z-<}<~Ex+%tWS|#((#>y%?g=Wol_CpMvZMe%H(ttbY_&$G(y#A3541BKoia_cyBys^ zNv<+dVX~5TI6pbNtcc#FyQ&WBIl+j}oC~|kH>2LwVk)#E+{u<)4X+9UmUEkt#x+@k zEbW>tYa+HP?ZyhRMAO z-X1IGfz>B!RU4>OZK!!w@}v)TyBCj)_hvW;E+o)xfx>n*du|1@b>{=s$8c|yg;)%L z@j|oIszZJ{1U8~hGY}3A8B=?8VEx94lr? z?M+h+`uf@RC8KfE?Kb$$iBfGpk<&N*+Dju6fVwr|I%6kO%{$ij2deWsBO7;&D%AW8 z68h?-vTMY*xl_*@gk`ft?(am)tk@;TCx#jr%XI|nMrU_-(wT@vOHQ7B*Qc*c(y8_V zI(6P-)zH&W2dT-J)b*6~R~YxKyTuNSznp=utO(fOnVs3@)H2S&>#6r^IWyQ~3|6s~ z$vmXKQ=ge!-oCy_B+4b-gUiNU62U+J0=G_N*nC~ag4caD5ocu@v{bK)@%60g1(f$uAmlvnXpdlE1 z_#@#Nd9Rxno7~LBLXku~1iRqzRe~vI^nXyfjHA07mj6;}gF0#M{!8U5`YXU$X}3I> z#uudO5nR5ondZwY*IRA!u$L8-StPby(6GeyQT#%WW=~CK5H5rMX{a0O%DCL_eoyso z_3u=$ThcUmQJa0M2P_bsUQhOhe#g%nearvF-8=yTgk)h?7h8YiC-j2cpQpXr;#~i!?qN8WXlb9$@gq8O>aX)}BIXr<-PQ4owtO^!wxLO2 z_bQRMT*KJrE}N|=h&ZS1ab^eHt0GWAtLP-C3C4`A6yZ+L12U$Ydb-U#NY*sc8OiNg$MxHl>Wm4kBUb_yfz#t~(05(z zybzW>(R?2gI2GeiHpJ99Uv0|YD1T4i$@L;dnUb>vQK?#IBH=qz=f3gcv2WW#3Smr2 zU~-#a3lVdepd~YlX&$7q3#BRrO3<0)M~mW8#b(^PhoHGbwOXPinH+g6D0yRH>>A6S z;U>TbV3jXg0cz9CgfW>+jpSm+4)$e{aI9$M^ga$tF8w4_}vOhAfU!n z!&&or%CmiGLEO6)4NK+fIdw>Z#Z?AtXXgqrwYUid3}Pb3x(uJ?7cyyN6bz>0;uV!1 zY>adY1#@O^XD&df^9<=YstP3&)sOo`dGghM106J6V`L%iK8i&LYeN@?6v(Q#7;ebU zia6n{ow6#$g{kuM(4BD1Q)yw`M5J!f!MB(JPDI+PU!Q0PF+zbzm8lh=(r}ar_yUT5 zf|W!IqWv$mCb>d|0F^6g5hV6{LGphl>BGvH-YhapPDM2`v_EAOih4*_Ers_?brjOY z?s*qY+VdVRgc!mz5`x&oCO6>qN)~36wdygN7Q|IMX=ljqDZX2AP`j|LiKV{~uhS<* z#b-j4fzX|WNf}hOqjOBf(Y@HxsHir*q+4d9pgXf%ZQ&J_V!6kKWOD>(C>k;+Pj%&E z4eh(xe@I1I4_2*7`pPKGB(6guQi10gPIunmKD-n{1UL{=s#vUCtPvvV+`HX zPDZM!(0Lr;NbSsFT$^biou-%S@kS%o0&gG#0#Kxf1(2^!ypR1`2_f%U)Z;Woky5D= z_H+1DQomd@W8r5B`_B;2v;&%HcG!h^Wd6&DZ*D>cc_k(LM_H;6-8|*rOmpgf+Alo? zMjB3HDZ6gI{Kmt4Qdy*lnDUP~J3L6dkP8dxKyI02m4>uClR|3MbWHnX7lSC9Qx1D! zW%FzdW*$CC);Ev&^sBnkK4nYtFu17ft^2g!v?oHbbo0bZb5`Dkxr|VnBG4ozdH6bJ z!8Rx0CIc=3W$!~sli|XbrW^ryMTX4Vp1mz-vE}T6nb5b=>YuH1RX$?5l2I1w;8>hr zF+w_{bAV9S982l84G9Of^(=shGq|s#9Ab2Jd0YutP4IB>EvB|V)~W~$oK^?`oxkSS zpw<|vQDvq7bA1KW#@SeJTV?HhuC;yyY>fQJXs7v8dt(gPJUGcn?$)ledH2s*p7E#1#Jvf8aoaP!jhseK2r#=Z9(8vVI9JGOI|ZQ#EIZ~m8y_S)-^e*0ypxf3{e z?S1d1|G9al5 zeRUw8TJBWr`lZVfRz!|~P?#MAF`H7&o+ZL)s6@?!$Ug$6_#;Y4WMF6Bm$R`nhT$BT z?m68UY+ogn6^vuyIiD1@TVcz1uCV_)I#ldXZBMwZ^rL+hG}%~P^d*@BzS0CP?f5)p z9%^Vm&mms{|Mtq+Je$3&oT&A+CZX6FEBmi6UICjHZ7=;g@Yc~InPmG={u;()Y(79g zbsu)_{Qmp0+LX=NEJJGNJnyykMETs0%6}c$tiClR{+wNdD3ZKH0m0w$B#`+L^V>Xg z69F{s?h29ZWUk(P$UN;nhFBdK-|W4!Na!(P?|Wxnv2k$B`7&Y{<&;+Owu&In-Cp&! zqu0HL(y&3V`1*17J45G)$=rR;Lk}*?I;&S~`E|L**ExYX>uZn6vs$0+SX1J2VD;}UWBOuQ|uFX_QYaQk@G)P0*V-<5TY$KEN@L;p{`3!SedDDt-Zs59Zo z?-BrAH{D8^!sca4&ie$+_4Bz|)_cfRp&)jR?hX_CJ-E$_dcID0GoKBxn)oI{r zyWT?q$a9sL*sG%Z^Vm}VCyQmHO&X;(g z3}^~aqA!~J?1y->VE^fa@l90sk1O$sf$^v=aaS+##y+vRz=pu?5k_)Fe+T+y6x(kgVvLT_y)PDk3bc;YNp?`6L z8isWXmvzH%!aSct9G^oGxI#c+u7q6bjJ1FL)ph+&Y)VGL0$M^sQo~A99n)|^YhWY% zM#6)BL^O?rB;rK0hlW?Vht`yab;E{MkA!zU+rbHjyI2T|Jfe;LaB2>9^^uJ5`4Lq< z5;mV2vFaXGrV-VZ>K5)EUM3mZ@EqER6Z!o(ylW+VR5Ba}RS;yy_&HSlcXZ=PR4+~Rb82`wPHcT>^fpfH*@?}iWOz4Fg}pGc<|wMxJr27yW-v7F zsWc7`H{x6)swp%MaWoE>Hl7?1Nf8!<-1@hSQxs7$9E1|F_b;CQB@PFqnZVu}=UJM- zW0^n&NEGHy6b*xAZ2e0&pl%@^hj|*#9|p_ul1TQFK>w1U2uKo33ln$=RcTGYUQODY zNfP!*(kly*2n(PRS7P%Ik6Egdr7jxP1ci2cD76~SWUt9NNzh; z!WmH4eU9`EOX8#bLT!^G0f{P>DdAEn;iIWBfD{GV)W2y8Ck={MkWR8MR{WYNiGU>U z)>KdKG^Mm84cxTEwDc0qG*`^qgn3TN+;SqKu-}RK3`A`%@@xsq{w6 z^r4qTlhsUpK!#RXin>&0DsDypU%NZ8Y&3RuN%QP^`#u=LNZbHND<4`wlm^m^=5DJ9iE@7tShs z-XnK@^$X9B1)Do@|bO}oa9gU^#uUGj(*Ro$UY@7K&Xw9H4OL!$A_XW+@D*GlR4 z$Y;eXVC2bQrz_wLFQ7ex;`J<`gDc>EEuaj~Ab*XAo6SPTNRS2OvYZw0!WHtt6$*qG z@bMI|TNT0aWWs#eY0LBJUkl~5@{QK=b;k15wNjpN(=}5QX=@Y7Uy*4%3rx?7IMRza z=}KJI3YpqU%7`f;()f)iA!QlAc*^R|%JT8bo9HTP(<_?s zDjM1<+VIMSwJKuE^CZ(mV4kgVLIPO-0lL;Ir(P>(@T%r`s`$#Yz#Z+|LMk;ZgfTe+ z*60#|K;#MOsspX+BhTt79u)uPv=yxo(uL|}ylUW*{eE~g(6i@6u zWVNJb&5PDQXzhQ?cSN_7RlZSb*Ada9kiFHhz?VVRMpFDl5eJ<~g|`WSjia%md{Mb|P_tmXarH{h zGG*mx!f*A`+O^=bVDjT=s1+K3XEYd^203dKHS0!xurlqQ0_~Yby_rU%^9lo*CS$J( zQ~YuR`X=*=riJvTW*!txFBDt z`m(_Ff^ht%1Gpxy2sB}@hRi2Hr6QE_p=OXmv&MQWcr760XIpedlQn#+Eqv>AdRysR zOHoBzQ+iVre0$+|f!BJo+j=wqzk1c6!tQ)c$&B_)__pjfWNojOi1EfSnRdIkM$@;B z;_((c?V_3XijsVHsug-_{ZhY_V&x~HOiw-J-9>k4SsG3To<8_~81KgX@os#A zJ~V_Ly!S4fieAphew@sHA=%z>?LKXXKDx{SDTICm?|S67yxq4j{@6Zxok7`)27ZG9 zt&TyRjX}NlK?8yzeXl;*%0APM0b1|6xJMyu!9ir3Av2vJ&9CNUf+0{Y7@PsPXUDMX z#;~63kUGIg07Ij7q>!riQ0PPtB8X+!cVpzCVi5SIvjMp)s{6m=hXVU>P0H0tOLL+HD8t~@X z{I(>|N0y{BZ?LY1g?oR4M-Jn;~b5kYOYguj(2mOB5IDVbB-eqN*qP_Ltz$*bPPUk zVF-WWfqriOVqPg~M(}b$pZ*(W&jKiS5t?*N%RvnxQ0aAO5zv9c{V}u7yU35YNUpmm zKRE}USEo6-X!5a$87N1lu%KPl7@^xQGuh%je8xunQ9w`{Yh!M6vFmAV?7ITMebvUmT|H+a)rcplGe6w$$Na%7R7FJHb!o} zhi|P(_nVt7q-Rj842W^9;A1^ecU`q}crt75*tU;qW8|qn_5>#)oMDMRg?POkVdY7PR zP3_S590EJ{PIR{!kai@HmSI>Stam!px5icNwvsmvW^L_{mkCejy*Kg zTZP(P$6%NA0A(%w&EABV9gp6cg8Vkh=cp7VS4E1f?Yhxx# z?=)NfEQbH^5@9c5>V%jALhN$A%5I&8?=Z^lv@rUtts3RU10`1PEUxQ(*9Rp<2PN9~ zw7dE&KKneG>7@P>xt0kfSWieC<$Muoqh5aF=j}Po>^WTTC2ia(&9^JM+3~5ZvpJ?q zaT4(TN=8n^%bDusRrwR;-XmzzE7m;ZaL20%ew5{GArR5^O7>-h;k8Nz%GMP6JO9b8 z-X&7Z!etl3Kcs6UftzW5%x7PeS9uC};vkv0zKNpOa8HMf_ z3dFxV7LdR_6zV-h>@Cdf9n|d|habw1928c26gm(DCo>8s@dL}R2T<-EVa?&^)y<+F zIkp`ANGzBF@*`Hv75(&`xB!X{^SxNi0|PTqocLbg*S(-VkT2$x7WF}b`Cd2X!9f7% zWd9%+vk&g~s9P-!X8&5!{XVh%yd(g`7kFC* z>Ay91@65$KrcDY?6F(PsKW^&3!3lk<+5SjmMzN0lJp1*rdwt_oBUr2WDOPoe0fvGJ ziA3>i-y;+Vz+^I6ap(~UMKu?FZywqm{QF8Hm?_ChCLT))LZy((1BXh0P>z2$A2^gr z1);eYYR(_YWpcY-9jv08gQp7VMpH;Rn9e5Qi!gQ41n)&gqtHqkq$}vBmVok=O4m4c zy9?-kWh2O_?TF_InX25cE?sK3I9g9dKBML9CYs1yar|7m)-2NNJewbL+(SSneDu)$ zo4PN6tc9wLv5{nd$4Tn5#9K>zwW0xS*1@#{n(*-+T`yMc$Np(Ix9c744hxsqDsU@D z6QM~2r)#iE_MshObNT5}Tz2hoO^d&+y&XeJ&f5us?`uWnpA|zybl+I)BmaXtt4A)} zLil3?4Uzl32P`qxIh2L?a}}i@_+w9@4?sBgrx)7TnWgEp@~uV?&-wxYjeB)h+8C<$ zP%HMXAX}RU#XaF5vd3BHfXK=|BS=h>LuS|C$IyV%Ov~froko5AxxB;*V3L==U3q3rH?22534GVKop7DmUlE#BmIe1P7VTxj2 zHm-8Iv^xtbK?sDd8b+54m@5X#lNgI?8JntV7NZOPN@_`_D&=B+VpybzbTmM11=?I2 z?Vv&};G_t%E{B$zwF?!Rm4^>!iCQD&Z!p7NsHYV#$*%hEDn`*m%ZTiaQ0fA$(} zVpotdMCqiw$62>MC;nwUv4pm5>sIv1WfLguz^+Z;lQ+I)pa1otLr%Nxs{#0T=3SX~ zh__R(E|=FieBt*wVex)VjGym)?=+tA;qG^yx2etGPhxY08r=pw z!qW{ko`q2o%W`<4o0DUnH$Ier#{`3CI@k`_J|@3c5d#p4JBaUF(>MauK*l}NN)uG_ z5jeJqA-wLhFpipo^<*7jl*Xy=$nqETOhn+YFb=)*y9f*v?=Dc5Iz_jNC0NG92tCXF zXUxouiS1e%YSaoZ(d$J>9UduamBk>&+&@DKG2|h}2>5lf z!c10CW-Y}K8#o;NW7Q#cXr)+LmF$eQR3<&2*>KIkk%u#j0+Izm7`OXOvYJvlbH!Vw zN$>*_z85KgT~BPNi`uA~sT8E}w6Tk~$#C%@s|p!Qf{OPnh1sfrF(p`yqwTiZmXsavG1y0l4j`MCb~da)i|)QW{2cT3%+tgdxB-sZ(TiE(6IriJh8s+D}J0CwGDh>gaURb8aa6Q+D%oE3Mg;2t8|6 z>ZBpsU8Kp-TJg?hp6y$Cv5%QbEPji**%hr^qNFk%5OSQ;8D}<>%q8nshsG@+cPcPg z*^B+woKXgDj?>=-t!2UDR|?IT-wJvO5n`Eu!0Uutwo0b3&apu8tkS|W`5(kb*e9Tg zO63xJDPfhR#OQT+0V|Da`FsQq8A~}lt6-^KRS=VM)_GO5r)C`%XFdK4Jv_wuaxD>N zZR(&+e5#jylVujhL)_`*^b~(ZU#$R?R8t8t9r9_TLYi4jvru$d^tyWVqE1zq0XmgAAXEMM2S_9zGrWX8}0FKZt6>wQaWF^Pjs|s_zo_ z@%I>hdkjHjJBFoH=+mdPLIQ&COmPuR?p}XP@fbSAIVv4f(rZrDA39{%(jU_P)tvF4 z`kn`WX)03T(WAR%pO5-sfl8b*>DzT|gxr89Yo0-{ziX?oy8N^FEN7u9;BOb11Iq*rBCvNEGODitpbzW3cC0*3`W(Ce}S(Nq))< zsXib9@0{;9dv4j^u>bqEibC=gERvQ_NS)`qMqT~6{YK=JF~EC@H|!<%xiuNlpLPKk z!d4TaW90?$L7aco(3xa&U1#pwB+(7FglO;DwcL5?iTxq3cl9z;l6_hs(7D`u<=L0R zbqgDE-#9MsF?_7KAoJPUoCWfK8%}7W`nmj~*7|2_pE#$XwY`0~mEXNrV*7xxxqasw z^4)R8e>l6RsLbB5@#ERHF*W_NCc7s0WZSk~ldY*H+qP|6PquCMy#3ez_&s^g_g-tS z`*7da_xk9aE7f!?Xbbwr(s8}E5cAG3b)|16Y5~zsKL?m*{30*1V?T=dH{(0^x`M=QEl{mlWB)RoZJ)em@0i(eE)?tG%U6Ej}7$GJqQUD zz<*ZsHAaejAktC;2K$@#)3ce8`f@5nC3Qqqy!$}T!Xg{Rx4fbXF298q2g-t) zDt?P8XL6^Xw~O9)YX*hOne;0V3F1cgQ4#+32ojVT9F*ATm+}z>5Dfz;F*$9TYP{Pm zmD`j|hAfqbm34;7?}Zb2#q4t72#G|gT>8S9X$T+SWy!=Hp_-)7M;r%H5+R1{-e3vH zxZHgtEbqhZFT^jIC5%2`5sa(08zh*51=CUyFH?EdkwnUWH7c15t3wW&BsCGUjZ)GF zSP#bjs*7+49%RN62SqnFI5tW$RR%;9hNnsXi5HD=b7{u<)0~)DpA;++7$v#*A{mZ0 z=3hCAc_C?p6xe87rFSsuO(d0uCY4G#hNUrvK{lRDH2(Hu+(mg@&3IhXSh{qOrPxJk z;b!btnq>OLsKn$bf-@IZ=jfPm4}eIjoovFNFXk`3bQ4lzqNsGUOJe~*s)$Is&}FhRDmQ6tfjPMSK&HTE zBEL|kdl1m14n$eeCW&L+v70H)8OWcP{WfWc9# zM3esXfH6X}n+w^7q!C;j#2vPf-AuW5dbyTh`AHM`gF?9{pXuqO>32T47t!ep0Qeh` z+-s#g*yRj}X#8qWJo{xjoLaukVe<9?ZY*;$hfhW`b0oZXHXTe3R5@{ZF}rXudCVpU zc{vLXt%yoIjsZP4rK1QYD|ZH%%}O1qFI0euLEMae!v)5n6h6$E3;hrH_{TI|7d+`B z9Ez(Fh{INy(^r`b89*wl3{Nceok_B0P4Z5`Z+s|$LFCF;6fi)EGa@U8?#sxE;!h4Rb(;X_u{>zbGQ6i40^kIYp8@T-}~s_iE&q^FLseX7=D zskV=*s_-wW@~c>hQAy;h*)=VRUM?$}s_0!V@oy??O)5NmEE=h*x!I}%LX@Pimk~D? z<=B@LlHrwylx@UReormge6C0!R9($?rUzd1zmqy$uFxpo*LRFowX(iYc$or^n$FGsnv_ynWmRhBmv83wD zu#&W-8M!GKnWd3ar9p+HncE~B$FEg*sbB}E_V;u3fpRr$Nky@1MSp2E{c|CM7|4JD zti03`)m=@yS^8B5jE>PtWLVG50!AbQ3vJh%4@0wKfc5;Vl9#KI$!p0|E8dT5)m0Rl zF`89F%W9WuzMHH3rW#R08h>@yi)}X|UA0FaHHKYv#$7j(*meF*saFmy1+i;XA?FGq z6Z=)ES|@926)gv=YA#iUjN5Jwe};|5Y`SIXtk~)fG^vM|hDvFC2O(ot!vvuK1*@0jl#B3QsfJvUGOiix(a0aw}@xCxF?0a_Fg(ehC=oYA60QS(1rq{8lej+yLV7xp z%!bm{Fqomq+_C$-Uxw&c2eQ-KmT*QEY1vYq<>*fbABP5LS0?Di2jM6C8&#o#u?K&# zF(sZDRTTD^r}tT=H`Pgk6+*+w)lB7ab}hN;4RFjjzVLEc%w)TbDcoSxVvViLOv6*L zWI_)$nh*Rn$R<>^>!Hm{ihw4ghpk*D;^O9!t%utpu=HWueBGtR! z(Y3GH#vt-Bk>4TzlA)Xcs})MS0;3sGV~;O`XJb?{125y7RRpN(eX-^X?!Rg;>*^B#_9RZS@z8t z*63m8l|==LCCl!6~-Zs$ES8^9eSivZA}qd$=h_$OJX5Y z9a7c39!s)1*aTKzrGaQ*gZ2`p^9|lGDveDC4tyOG1Ff2%Er<2Ar^RhTmo{Ujb@8Ze zL$=P1o(w6z4CA>E_1P(`k81pY%>ZxtaTwM%Sor0ndFD94IM!O@7|AfOLw?B`3l=(v^xp4yKuWY_V0STQdhx<|j_`Z}=YL(Xd^tRP+VFLwRc(sIv=fDf}zFTNAVxtqGOePw(QPq~Q-aY?wkK+Cy#Ix?@) zdkCj?`K^B|lVZQE=a6w?47aq6ysVh+aA-4pO(o$t{AHu@>>yHd#{zadVs^peaVJs& zM?K;s?CuDU`yk8dT*YB+Fk&UXa;8&qCysk5pnf;vc7daQ=U?i|G;+72cB6q}Vf!E2 z9yX?F>ODAks6Ux|IP-Hj9wef|vunWdL+kk_`Yum6otkE?*byU+FgfZj7P*$c=+!XxndM%(_`s^_JO%ENEv#e4g5r1?1n z^(kBk#*WE7QSg}n-F=MJ-9*UUg~{F2{ly355kC9uY3>oN?%^Zv9%JtjGUG9A_UzsA zl8yQr2YVH9>>B#tTO_Af;kHYdx`!LcvqJF2*WNuM<=G(4Jvk1}3DrB-_!R=(yYARo z3-vXd$;)@fD}m|3tL4?a#=Qij8TQT8mcV=4zem-0g>JjMy04|d`b6n_#6H`|pkB6J z-*nYHW%PKI)p*uQxTceNhet(4!@xBB_Z<5CUfJT+1nWCT>N#ibz5wf0A^*}{;y(NA zJ!k&8_}|++=rwS~W5xfow8u8B1P(L>3gZJt$T#>{w4Lv8!c1^}WedS1qQ1v)xHt9q zuIu}5*!!NA_*M7#U6lA<+P|%aeV&5+POe{0Kz^P%J_gK&sUXp)M1mei#F%~0LDT=cl1^d)Jlb4E(pYH z_c;r>B6(D-T`MTaYOPvPretP(Cgk$ zt3TJg&MsHftcpSgvn`ktMpgm)tBp%4OSZVd?tcx3Hw9&MIrm&5e-2}X%|Q2MvCy%q zBFpYsE~&C>_C16`pA|`jdh5NWQs8sHK_|v@(|*r5Nn)I4C-}AD7RJK9;$e!I+>}zp ziO`1U{KGzNAx(OHH3gX_osrYT{}mpX@n{a9aW0W2N6RLwuJ__CxYKO%H`EmtXgj#A6do0hZYj zl<|@xX@!8AFG$)l@yBqza%Vd!#j>1q&mxESF76_!hVoO|O2{8gX7MJV%FUOqmf(x5rAo;?~deE}X>XKpwQuQKZ z0o||d-O?Sk+SnjlgWCh4C6^*yYkG5$UFl!b8Ljf z1v;GTeXMb&Ua_FL{c_BNiJ5N&CY$r=pC>*Dl(xP}QH#SNAw9Ce34r&Dit>GIqr`D` zVPi1rSx+b%4kijB;2=9%??)c~4QmCM9tLJXt{+i*2u|QLxaC`CVJ_hIw>T;WD+gy_ zn2xZ2Y}z;*5}}@jOAJ?|UGq6&5}*Ek{#^n+*EzHukA%sO z1Z(nK$Gm;5?lweMhvM{RM5I;`HH^HnkZRYXgE;c~?`Gm2f+;S^T#Qn9z$*bYXL7rk z(iO;-;-i4o=S8A^cP3o@)YJ*?l@U!^(rM!@C=`xeD0q;)> zR*U|p2-bunOjL53<53!`GhIZaXw@|drU~5!*L0VB3j4MRPl&0wp-MBjt~5!;P}IK{ z*7|tb$Nc<^XaP4txfF?T1UP;d)}|`ix3xc{FbJIgQ6y168<}*Tw>dlJH0HlG!_RtS zI6?R}$}#%l2o(Suil}2E_<2jGJ%>JbY&0?46*6OPYN=nwRlh+r z)`~{s)M-HF{4<$NXvNWKi1LK+_z9~2LM*t91?(#NH|T!cb5A45H74Rs9qCTJ@D+A5 zmMcu1oqJi%!k#?@VK3$v$1caVHe*-2n9=|y%8|BD|B4p#BP^}){Az4=wW^4*T)8;m zxv87`=drYSd&aq7RfihN3^3qY@epCviVJO~BXePr;CKF7Fbj(|F(8*5&2hU9nRqyk zo=)r+cN%VC_Pku2MqHm)gYH_!Pgw$budTgZHJ{5~ALl|#sK%<46?Ygo%EF7ejN7+M zRbDW}z=})mUB?m=A>sCLb=8U2216i8!C-v1vDYNo#4qM%3rw(m0g28W5`#| z7gwr;9hsCa%Jxn=U;ew9g)b;Q8d*XRtF9p4dB>ogWwfgA%V8i3ol@_ahHG@32;RM$ zl#nU(Tu#?U*WT!FmWxtS4W(?%Vu-Ugh-$wK{*7`6%W@)Fs$lycHwO%#%cR-T*8mZZ zS}6BMrC#OZ42wN~4e2KR$#G>;Q@w3P)-hrJZ;&yBE7~!zI^sKUMyuCMFvND%>Z&Yu zo{B|01SFJ8PaELYve}v#dd^Qv>WRgX$z-4$O8^=FUO9qJaD1I@Q*j0;XPT<2a*f}s zn)WmmzeW%1t~ZQRHkYfql^x9@k!^+UQx&5VBBTg)lWf$*FeGl>3fe%nSdRaNY^-y% z0D7xzM;&!;n;qUji^y2>IHIyt}e^5M4oR9Y{^pn z`Oq7;`mEYB;bh?Tw3E(v)Y-y$ZXEt6|2p%V(JAxTs z?mu%pijZx$?AsMh-dq2Mw2R4V=RwGmxMbNb;7D~tcs+?w?7ruvsAv187^O}5knW5; zXQ*It^|OAfH zZkk~P_5w*)&Jd^9#!!2JGq)qV%33z>C?qrQ%i1T$)84rXn`iQZ*6Ry1j%7aCJmhiB%M` zuNl(&Z}k>@H|1tYx;ImwF1K&T{$(}&Ggg?2xg;Dc%F3);v4!61xg~z<(jRUjxuzj{ zJI(0j)^`FHaA)mQE$tp=>`dV; z+2}5O0vCnJ*TA!F4lz!rG%eA|8Z@&J|L!iAWp$tGg$rfiMH*V(W}oC4z6|MR6zSvU z8!QMD?OEzWQmwZ#=k#`AEe06&eG)$;>t%5pKA!3^vcM3Bj_$MPd{3M7KF-49WNvDb zZgUf7hx}MP++3F>BSa9(F4H|E*FLq~A*3~g64?b3Z=+4)VMdN#52@`0=r_rV)q@)z z4(XlVrh1K$-!SYvu}IUf>Z2;=pmh_I^lz>i=760|?Y(Yyqmw;s;{6iQW(&-71v7;E zp=I0)d3l+?TV!}ntetsDIwG5etz_hDn05cDf5#5mewWo-m(@euBF!My&sZWRk2J)3 z%iE11gWSq_1}B==%*qhcu}mq|BQ)}z50Q`@go;G^VwDhoZu&< zIOW=|DLe|rn`te{_ z{5FSw*bS@Esufxl8`O4-C!c&fFc&c`1{NkDGJ$-7&`v0~~<&>M~ zYU$dE?|o&F^F5h!I+cG^VgE!CV{@X6`k}3h0Zqnpmiv_s=~tL?luDXMQS|qKi08~a zFjs)X0>McicRV$V>iA1HH-*)z+$e{16`vCaItV3Og_hQPYl{m)2i(X=&Ie< zDWdqUH1U5w&Xm^qP3IFR7grNet3X)Up@;K_)->(qYG+wwUUa%JXLjP}t62rv2-Y>X zqBr11G0TU?p2hQ)k==;i=^afJR zD-By~l{&qZF5Z#-7C7w^vFRtE7sN?Nh1XtDqO0RQA6IRV%evBkD8j>N&$p7IVwb@@lG+h99T7Nk?Cg4E2YXz%|liM{_?~ zJqN9Phe)(Ti=CegH!QWx38 zV)c<`MNa?KQIY2o+j>tkbc>f;?41*_7P6U{d$*rY${EN&>z_c_R);b&UY%z*)0{u8 z8HbkNhVD>4QC%-H)*e3{dS z#jHJ5tK@Um*L;Vwf9Z3`41Hd0?7_&e&yqJ@r@6}bpF1TM71tG zCU~#9e4sV)Og&{m5>!Xse@qDHC=GRUm_!+M6o`)O*K?c&tOPC5Ouxmsq8d0rPUNst z+$9aXB@G16NF1P_3cSDWc|nT2CC&oJ_x#VlINzO7As_f4*=BBj2^ToSlehq&puosq zp`anbKw$L$OF0X`i!tB`m>c~(|H&NJ>o`Y`Q0T!NCmxPWE)DFlh)fx1;9)A~yw#6&ej&Dv@Yq zvgJ?-fx4Cn`#reE?gR&(iU#>Dkgi&;uY3Ccb-=TK@|HE#Z1*6v&38h!*7j3{ewVZK zsbtC_3J4f#r^yzHkl`Rhfq1lEdlQ+)BBPzHji(jCbn4yX;8 zdR*LxRw+FCsBED(V!9bOaOt1_)h#$~%oa?15U-awoN7oIZ0o%}+o#FfmxJD)B|63- z^RTrlW#c{C18%flsiF!=*3t{ zAHvHkoZoD1uG)SX7ML`G82hX@+CL9v6G>SOg^+4u7h;zg;>Gx&qcjU+{Vp2QTv<4b z#RBORWD|X1$})9DRf(_rgdkBAEDUWL;Tu$=%$Sw+7>)MAec?r^=6P2^0@WcQ<1b}1 zX{kZ;*)&L+7lnTg(qg-U^au~yCbS`K#MzEdnp#%$mv{?Nzt9nsqiJnVj`IcKt;hk= zr(-9DNiaMLDI2FDMfu5VKtlgI?lq;XtbbOthJd0}EPLo%O#^?7E|BF}CI1xnLNY?a znj(h6{MmVsHo{{;bq|g;y>KfP+eO{v+bL}dXO}p=jBpp&p(HuJOC~D|4<44tKJ#db zutAK>tknL~+4mr#%HxI;49hCLLE-R|jY!QY4rV7bdJ38!d_pRkKA7>3YY}#W!s2uR zDz?AEU(@d^jaAi@Gywd~2Xc`ci0F7~MB+-NemHRYJ56Y0nmWZigzzyf8cXR_!TM&8 zYvDC=o_It$y5W+5I>pX-Wlpio}7LjX& z2x*dyzS6WwqexyE;8;ds0_z}2|GCJh8qu-~Zw8b~5zk_l1=^fn-S>H4ZvkaaUCa25 zFeDo=_&3om!`E@5m9QdEGDCQLDv!!at_N{1{_O~cnUBQ8zKG;Jg@2W1TKrL{hBQE# zpRO}dcy#tH0eJz8_cJsuU{v{)r|5TW71sTcOx&;7r?TR^XP)fhyG8heI}D|HO=f>5 z{bG79(m=obd?}W?Lmg#T6#06)Xu1A+zZqcyeLSq#gFau5Yd~Kg&(|Oj7*Z}6?Ekr( zg~q6MSmYU9{qe80tIvTe#G8E3CVYU9fP#8hQfCmPhlkbgD}ygY1cwf-G#E%7#3i$s zhl+eBy7w{>$&qA)e2AMg(B$Ah96tOAHIEwn(f@PSLW%%gX*jttA(~don7Hw7IJgr1 zzph!r&m&1R0hEJSXmCok>C|{07^k0sY_fz4siP@)N@QM81{Bz=Qu&>?37}FF8D>ig z3jmot1UGfopHv803`BIf&PRWR`CZ7hHiE0=JF)@Wj!Y->Reg>>D?Ep%q z)o?-W=op6?>`bhwWNt&yQsk|hofb3me8jaLZP%RC%o>ih}f9FqDRMs(jgrWE& zlQH79GVx5&Uw_|Z4ro*Z<!?2_apwvR^w_~tXZeWZvz z+J-}Tl(T+I6_ZhDiJ0ibWAq~)l8W*4s&eg+_3#<2vuVU|eH9d4A(ja1!Sn-f8eJxk z&Tw1CmoRjjD%vQ{pqs1&>jEDuEmUa`deWDl>zb+@V$M}3Y3B;Zm#StuEA*bnSB7Sr zYKm_|6sca-jM*QUR?sBj0e!&X^gYs_FJZ>SbehWaPj%5Dm8PV0Xd`;fbtxe><}4Gy zA?aqQge4m@I+?Z6zs+^!3{}>|6Ud36C;K9$u|F`2z3W?VPc7ZLgFn1@H+CSNTSpIV z9TO*X_P^ZP#zLwIRPy5NVljh9UPf?m0^m4ZRywv_Aw7oZ^hC)55jH=oJ;${5uG?F> zPLZ#@_GR>5(>Xh@E*ZThWI{gcTe`0 zYG}Qb=6Z%@#~^pFQZjT72({ZlBieROG5++&WDTzaRB|lI+q_}fqYL?;1OLgQ=p54Y zwDfzS+$Z908oY(3ji87>WU}~}z6`JSyP#aBHUu7h;`bxQG&ckvW*#d1w>FU^?iz<* zwNH$zQJ#Z)xw)J+SxY-S8%9`N??_<#!O@$GNHar zTH86tqjv2Qqqe!L%elniZXR0Uy-wJ6JL1_Bp)=#uKp5>nT5Bt;aHb6ju~j=H^75Z? zGI^~g+c}k!5}(-Odd&w2JU7a0UU;bAwi^F&%yaQt<3IIWoMY7Kr%Sn^C-vDy7Th@G z@ww!Rc^#71yN#CUJR)Rz9bebEy?X+uGv~&dGw(c0u=hDrmEV}@=(@8|uilTM zdtD{{x=D%SKQm=|AJHbc?=14z_Pu*9rSZg!_piRnnef~p6nILA6F5`N@m{9LewsSw zzsBwHx#IOl$Kw11iRmJYri;&_?MVpS{I~77??n2Z?az1RpW}P>EBkXT$L}ft(f_)D z|Jat@r$oXNO2d2lr|!zJ-^{Up3#@m9g!h>Hp9tK5>u2wTZ`TG#cYr=aKfmh&l7CpZVPQg?1au$kw3z#DhUt)xdOhLl zB;f|6st0$41^=cFUi&Wyc32TdEU0@=B8n1|_#|LTHE?jqUwbr2$3q9sB6#wr?j3Bf zZnzHE2_!dAXkHZSEG5JkF3gE5%ta&2trUi}H5A=MnKdB*`Zm-ZFFcSdJQ%3M3Uu|8 z5HxZHhXoH00lkFB<3%`72Z3_Ks1KDM2h`*(&|;}0vR@(+BqP*QMR1uTHQ*vkQzHXY z(f(0mD#0l+8AfE4MmB0hjTWK#wMxyq37&+ZHCROTT13HdL5a&YggS45@B_?R5dE@_$NlVLIO(0E6Q)x?J!A}=ROT9f&z=q2B*_N6eks>FRHZqj@4?nGR zHSJ$nhBAJ-cU#&In#_#0goKE+)Uk}x)3ouiG`7|B_ScL~)3h3?3@eRjn%hXa0hx)? zEJjdT`s``Oh*Lhp06nwISXI7_W`Z#yy(5m*TR0fJ? zv}Ce64S6|F9`al6Vq4CcX5OGw<`{l% z<5(Otr36br>Yil=`B@$gLIEpJ0qa{fyL15;PeC3{0k2hl?P>folrTm_ZhlIExL2WM zdZBcCA<0=mZAAXX35MudGC-?H&8tX*wm>dD)o>PKUqS)y78;wmNG!d`%&XWUvOqgM zl}P2E@*AopL5Wj(u{A={cB{%wT%M8|H!nN$vc*-N&%gktm5L}f{@XGz9%c~=c zi)rH_t&S+KcrN?&jR2{V!3J_E?tj0mJA)4Y>504ig^VCR6 z|D7f%kEhLecCLU{EbEu9?DVSX*Q$Qds*ORY1#11BPOl2372=RYJ8`cXu&TsDjKdbH zh52q~%Td92>oDGHh9k@A!K)EFYESXLU#!HdsG}!L{ZFQp%)4e_t;~V)9~6iO4MMyA zKka%d#QM4MdZCFr279w1{s;g-bErA_43yB^4{QV-a>5zO(22>F_~&-t!7Ds7KArQ2y$@iT9^PD zG(T-!kU@)wOml{2tEP9M2x1e-d7TAa(^#aCC2yNNVu^l6i+)9uyG)wadRwSWYX)Jv z<~!sY84LsqBpN<|y0bVvO}TUbY1L`ND(sI9xB)_uH+Wl6B- zy+b*w!z8LDeZ8$fyJOV5MY{skS^>N&s=d;>tE8hHLhwr)#1?=qg~O!02L*6zukXoE$eZr5i9Yy?K4P8TyNO;t`hL`C6;nz`-i;x|4j2`_UJIn2-}Hk}^k{$&RC^yZ zNu&`-^bx2$R0g5}7`_f%pCLG+0iDT#MyuQpEkSYSVL6@7aF92|i;fI%A!agGrTRlou0{I%9o+{`SntSex!nn~CPkDseJM=6Jz^ByoV_XmRJj z6n)d`0zX7Cyg8y^C#;zZRW`M(FD8ZxH8cMeKExumg1u4X<`Pi z`Ia2`mPe76<7^gw%`N32kTERRM01wLCUiXORVrL2YIE*#?UiD9z6;ImV;G<_KZv~M%sh_BIQ}d4Tw%-*2(mZP|5WkJfOHS^yK8aRkzE@i)n#7TrFs&%QF_ zKDOPVNcSPK-ma>^A(Gs_5#tfw*DiwL4*m3!QKry8z(_a!UN;d8tH7~~+@YJ_A)DT@ zYxXghz;d+E5%2WAOZG8;_s%>2asbHhFv#vW#P2vj?(lBofYNS~Jo^Y@Zv1*+4u0;4 zMfTL5M{XaL@wmMEtWe<0!0v1*<{f zcJk0?#T@y(LhquX`)ny|eo)|SsQP#eWo}~YVm|ib@?sTR?i5se1e>?_K{1>~vLKFf zF(+_&pm#jL4|Yg$hW&+fx^?AjXT3ai%4m0KU403acX~@P{FZ&0x&gf8Ti(CATJSre zVL*crgp~|kj&`^?od&kcO?rRc^b4RpF+$>iP%l3P@cnP0>W&78um5#k{9!((kU#!O zdPd=Y=bU@z%dtVAa7?d%R|XO|rsvog61e+ie|L#;ouzl$XLmqcBgou)D?D>ed37W} zdSy=n^T**%R{xG>=8mf7PATpN%K!{U;RdnhShnYml4<|XpLtEts`7XGDu1U6dXNKM zfk;L`jO#-357SK-n zQw`|Bxf@(ve@s*GDai+%fEg^X=ZS6xPN@2QnD42!`l)yOjYj`Tx93AP=T!>zc$Z|4 zSpUsk@C|gcbsmIN1yX$5nz@z``;>?sW4an1A$?Jlf0+Wk*KU7Mk-}*BZ$sQ7Mfbwh zl72+jg5SvZx1plJASsYZ?&iP!BpeKMxOo!N36pfWAZGxCkC6Xts|E06Ka3$B~`FM5cy>PXi0$&iI_U=oK!ZWKHP92{i|$99#bTN206^%i268dX zbVhC*?g9jig{qPZSxr3{L2e9Lkh@%~4qqBezGvrHYn1}#hsg_mT#H<7k(=Iay+psc z7Y^l=EH-X@yrvINM$6;tGJCu@FbyWRZrma~`+LUArH@-WZh7zR|} zI7BvrFL-T?C3!~ksQuRhP71}yhCH*_5Wm@GQVD)=Gxzxuxj10J@b{w$oYNkh_v4l< zIP{?yYTXu~PQi(YlBq8A^@0>89Vu~)%hCD76*|aTf0o_DjnHuNIAIVaRz`LCyTIMa z^jYEE)iC%gNlp0A4myg_D>pjzQTH|2iBIh{vdH2jV&%%x-De)mz})LtDu{UBjbal| zf`ObB+X9)5CwnKMXlqmIHymd;c^ff1k&ilRip|e9Tw3G42I~i)KUL6Wd&f866p1qp zU6#{7PMt>ECM(ZLVV4J8W?%w_oPa{NALc6D*iq-KarGi<fS-jsqlP=fz@vgjVIN zI3GjEU*f!__17>BZS9Kx2)WTQPTq1#kmK4*fB)s7bS`Aw*17NJ;v9Eg6;Ka%=@*rk zbdBOL&vIT=eqO)J-7kh$x5roK6O}mcPQFSxDfWGmLK5C|Uf|XLyayWV6Qcno%!$3u z3j9A`m)Ya8-{!zigWj*+$+F$pXlll6ewl3Yi#lLEN-Cmv{uA_j>yk@3dT-eJg|xzX zJ>YusDE|k{gaoX|od;ax+8=6i0|Wur0fC|rh!~vDD_&QLeA8%xn4fp~YI-X;3L)tJI3&h^0{fnnF= zw`hne`C!B+gH$MJ;e|3rs3{(ObY9h96csoqZPcZ#sn?`z!MoyTBmFUrvlcXbaom}C z;+W~e!A$h~L?dBkOw-e7TNC-u@gBX`*v#>oA37LmBfmk|%;eI1xe(YdBcdWsu77k) zFycJK&d41Tvfm3tvP;LNunj1d2oBrtsB3YT?PDKgD2P_6a|v4KLtIUMB8i=p@L|m8 zf`EBHlVA8`oa7P*k|?RV+$RMIFw)Xh3?T7Og#=k0BLYOte#D)QSc2Rz5++Tkp5jmH zqC9W>Basv>O4V?8shkfddjhcLnYEE-E8(=I7IJT2$iToVh28woqaiIv*(6m&Cw7V;lTMIS z>{3=qPpZ^JNzFI5Sp19lObtF#Hr#Eg*eI)1zD;X3>K`q2;>(H3T!fN2@T{yfg7#yB zmamOcs>1ZqO8@gsy%%P=#*&{9u;w)#FWv-0omrt5h&EALJ`ak%6P?n7_ST#X#ACyxO!=5gm4nDd)QuaM-OPYg2}n+3C{acN)kkP$}S5W&OriZuimD7~> zRu2a!Qwuw(9eLOq#;~F<5P95AtX%H7O}*X-3*b5Tt`7#Q(sdrg=#gOjeUlyBE?2}P zYttkGC$r*~$W9SLM`(a#j+YDh4-x-R!tlT%ABIA0wFRIN^vdBuCHSK*Set&+zRTUo zgs(c(Hrf#7I5^bp;2IC4NP-cEH!Q5?C`&?jK=xl+A2x`@-rD}dx-uVLkm zJxk>%3rp4Cu1NxXFUm<0c<3|1JI#g9HD^LlsI&L^%mwaW<9w!B(jQsP;yg6Rw6i0MdwjB4wb#(X zrtg_i7*3^D@R!_TU9zq_&BX__mdh9$3o$>fg#JsP4*$B(fV8sW}Sv3Zis*}2_y#a^Sm^|0*TzK(qDu}!%1I{XakhL5%9h`L+f*J~~6ia83?CtSxo zZjKYvxkTqJXvrM*h%$X~w2{%-K(l}8=Ty34jpNw{_vf4lyS)1|^1kzY#MuwMb?uMa zdBi!>*706tZv@*3h8o8;H)3n|m#$;ah@{})Pvt2&C@5>*OlKsd)5R_>4bhUvYmQU^ zzQ*2UQSd+S?~io*_e?lvZtlIl`Ss+7x_P3_$sHAGXGW^rxd-%XFEPwCl2h&&5~Xr# zMrLvxn3%mn-{t|1WHE+%dtW$kzOT{vdrp3zHUh}4Nu83M@4#+fIL&lj#ego?f;Juq+g_G*KlXld za>40NHwM;Zp0fOxz4w>bZ;ZnJ!5>clWB$70Z*DPeq9ib2eeNWym&WH6b)&c&_b-^dzE+`Md)u;$;1PBIYmfi;V z%k|y?UhbRo?!^7B8#*Bj`o78Ey?gh9H|sqS`$BEAtqc=F$cuuu6~b4>T&SY$cE&;v z8GM)@!esQkAu_!%D!t(a!j~0YcW?;riOv3CVQIC(13>{eox*5A42{1fD24cRL~jt=2!aCy7khAng}1F@MSS2j6R@Q}U}+l% zJMV?0*aUcdL{*^#e((*k(*2Ih?PqBpOaSAfh6>|&2$vtMMzk5wVH5rRA!g_jD!uVL z)j@3EdQeqocsoke1Zzle15W1Sw^gCIfl7}2!;m%7FpM#g{>QKl)QC<}vSRd*1prK@ zQN+ZjmB~QdeUZ=HMa&{|*tt*wfH>lKAnq{8=(s3uvoXSvIcy~~;+ZKPs3TEeJ>sq- z*=jwcoFpDDI$|Lz>WC!n{~!T+OYipEkaR2@2`uc-A`=UyQ%`0-WdsNY_kCS2Rjjivk7!fMJ)hegNPfA7G3RFj_d7 zyfHpD2^j1IOm0k$K}}43i1e_v_dYbwMYmc8iw9DUXB|j3e~25{RJLZ;IDU-iJV;s$ zN_C=*&C|a|d=YXkg!LmvB4dVF%`%SG`MX?A#H=DYQLnVcYo0}v+9KweJy!;Qt=%syp~ z!cR%qEK1n<6bV%h=|)eb0jDyM=3=N7pf2ZVFXzqxirAY~bo-^IJs9v{lnk z$a4{up;;O-AYB_}%{GNH>jn7Da0KiO1k?Zcs^B|Y$Da5mvTBv+7#irHr%9IPnfO&i zWmOJ7V2Ljk#rbE6pjGJDCE|L=mNwvEec_RkBS;NPasa7_58-7&3#qk&?3+{Vd`pcR z@Q84eYEAQ!vM}Pls*=cn->ND)Q%j=A3nsN-TFENJpRoE2iUP>+P-*&l8wJe}=r-E`^DYX9OlG@{vCib#E|Ey!vAMGVocVG2S zBxU_9b*G;zPP*z^>?_8)%FvI?{-cX#kKtCx@nsZ1%dBOrb_FYJRZG)l(zfM*rfM>< z6=h<0ki#Lii|UH2>rxDZx|6NC2eM|u)FktihD+9pchQPd6VNVMJaS3R8W}CvblEBy zXetJj&%$O{R|_dx&c0l=>QXRQ0FoZ6tMacUifJYfse6lQqTy+l#%PU+LKms7#RzG7 zU#dD?u0(Dw_z?%^`U0&FHFJtI^QsntUsr=ZSL;=QO}&a|%8pf99kQ$CpJ96d z=rS?6?!$ndOYN!5rH=n$?JUCLXaYrx4h|E3+(U4Jgail)9w4|o4DRk0+}+*XAwY0< zcNpAZ26xwa+}-=``tEwsU$v~Ny84{MvewSB;w=OAstP7t3aznLeIF#1b|n)zAuDT5 zh-PKjcs2VS0e)Rjs?zEsUv~#*Zz0Hn<~czNGRP-co9!y#`wsQ~38gz)a182_>^k`b zvi{}7oUvEf6l5jB84i;I#G|K2Ot6LAxrx%K3(v2IVxouqwuum}hr+c*fvty1w}mRJ z_vuWZhHDEicY|;eL}0SvU8HnDz6})H#O2z)Dl%a9R((D;xbf2MuUd)$uG2TJ;t?6Z zICTuUYz(=*4ZlYl^5_`C^X;y!Z?t4-VN-zd2vk_#c7kf>eu!>o7a2r=w%4lwgpG!6 z$bLSlhT`u%+iWArPEE1NEyhVB?7Lm&GoxRfq*pIS_4v9n_$mdbnm!#yZOF(rZbp*c z#_G`!9s>DQ72^uzb=#`>2yzHJD>$Z98{y;TJY2AkT^J*D(We_A<-Lv3=v%QKiYE>~ zfw%LL1hRbFM%vJQ%UZWe9w%FX(y~tai2Fs^?X*vT60J>;@eS9FP3g6xv)}+$?9ezW zs4>?fy_nj`dZ^(rg3p_&@7=!7u)p8NdztjWSM0z~_P|%?z(>a{MC>5I<-KQ1a1g?3 z7DIL5-)I&&=}!RXH)Cz$NnmdJhVq9MnjmWeuc1fO9OW-pt}!!@xeu9z4t&)Ju3%@VHxXCHUYm2(St@HE7(=0a)aC>v&clmeHA~7ax^j zo2S<7C#o*&p+cxGQBt579<0y;3bg8l#dzqUWAJIf!nQdqKJjiaEuuhM2iUD|d>?eMf*(0u-3Wz4 zu|u}SUgOWx)v+qovD6a;7~Gx3Q=CER&JH?lUa@V@0QOHCc2^syrzSQ)Zrcw6w&&RA z1ViUX&=W|bIpN~@@w&|g*X2R+IVAb)j^E}v*k;$ohPvx$vDz-BG&ofjCr0oieTW_E zkoB-^l>Av0lCB+!>4mOMG`j9d-v$~64D~$w?A+Tvk>wh8j(vG#b4EOM_(#l^wCnvc zb|=UVm~7?{F8hz0_K(@`s|LI8YUiW^ww|)~<0g(jV{F^F7W-7KFwRfWQG(~b=fO{1 z!K+=+x!S!G@RHmYA7*YCe8P}z9T-ZSq`3hDvQ{cF`|Pf0gg&?5n;bP#oUwgwHGG`0 z&+QHXS9=@ITIY78i??5zZbkN;4K^<|&+YWp?#S8BpR1h>_MQ3UZp77YRb6jzaY_*kWM^-JqyhzPY##cG_|3y1ColnccgF#60dt-{IIk1T?v)g`E57-tkh}2T@*n zptxn`xF$p&C2*MxPz1`bIWtV1QnBk=$9PDVctqiRSihUENO3?i?TDJXiV_60r#`6s z4R-tMo<4Q&xBnO{_mJ}2QIGqq(@l2!ZvaQ6OfX##I{JvfHZi)XW6z3Uz2&0Po zKEc)QziOv=7|Mz&_UA5-@5s*UE%NcUPYo`oBQ~xL(C1c|=QPecIqNmc<~4`%TA*fG zMDJ;6@>JY)S_<=Uj&ZP_a;W3KK(ckP{d)sj8hVMGa=`F$U39rmAqtoi@ZOX2hUj`j zY>^A;JRvexhLecQn>UV4Z|liVJ{L|iu@#Giw`)^Q3OLS7gLfm*PFD-}X7?`vrambp z?jEi_^SVCyn~yUoKH5IkhIDTQD5!d{*w^QjA@v@A)Tocr4}Z6XL$L7aj8dm_`XWiV z9THPN>IYc%K4Qh7F2$7G+!!bUpyX)Nz{{uh(bL!cUdqLPxp&Sq*Qu&x!HkPF;o2B zW~c$pyc6ko7P92;S;aL`ep@qHrHKY(=F&{GpREX`SE}}y%lhU2t*iHB5tsO&&WtmC zeC*<8ZQkKaxy{4}r>-SE-A*Jj!hdaRt*+N+r_bCM8!&$uh3w1wZI6bTCPJGy3*tE= z>Z&8X8b&r3u=!iOqq^Wk@GqmW4CXBk`-q=8sVX`gS^wBB1?3?ccZ8msoQN-ZDYN0PRdh7k!h@Vt(KTSY9Z5YbKwhAM7pJ~I zmp9Rh$-OlZxrTV}{+<Vwoa;_k-JhGJUG0_=9T2}r zrS~JbnLaXUWvC>+Mn$76k|7>tTQJ_kO}`>jv1C8g&)J#bH*~A1)MJ>g@Wd)3=|`?K zO7!hwDIyaOb+Bg?;U_D0G@7HF&-@Rk!A@@ytl>mQ540ZM$QoO%BN&cu#$%V_?Qjt}!spv~g9qKsJ(LW0h%kpsRM#-$)EaRi2 z(1#ysXA!38R=$U={FZT%1MdNA0^%A9NN=b zwpAsOUk2;wIs5E1WG?$17fKit|EAYP5u5tqFll5AcX2U%=_kfNys1mls>1X+G?u;W858E^ z+5e9@L44Y&_?fZ$5sJ27V>Ijfwb&zuA-52sFdUz)M)I&91AsMf`Ev~({R=f^cDt)G zU?Zxp@G0*qcmcFLlW34O_^ynry;eGBLMZ?;DJ1uPw@;4eyi&I=STRYcx$+1y2uyJ#mS$4)6-`AdIHFW-DgRO$^sw zA{wZdL$gro&fzdQuhE0(hwtKq5k!bl=J2231dP9SDAMRq!LL2+qGF( zebNFmR<~%VnR{)yXw&nuW1$>!KW0LHwc*2FerFI@nVE=x`kim*KIT(->4{}e#J6ow z$=x{+h3QAKuu<1?oEvLllShwAkI--_fkoX@8Onx19j1$_D2m?+lHqaX$RaBr0B!hpYN1vhZ~9$#!iLt+vZ{A&wi^Ioi=lg!Un=;D~QtIi>6D)%MS+lwJs)MJFQNh3~cR7IM=f6~W|R|I-NFM}oZ`1Z+E>|LV5Q%m`{< z_Do^qVHKEeYaIV<$D^6%2*;_Ht@51NbCAo?NXG8D5a?qFUXI&-hoPF(MALuXp5;_*L~&y80xRQdnvbmvfjX?NWu5#Ec-} zE|C!aAW!LKp0UEcwa2J7&gXHRIz(+s+u7N1>bM6_z`f$93o9Rehnxz($Ha4Gt)VE4 zXhxm1K4@Kmqk{N(8LIfXP5tLV+Ht6vQZMqMftAd?!(-#4hNPG;U~=ZZQ^Cf ze}#QXe*EO-`uF{;GGT;t&qtVG$VK~eCZ&{VX_?|KUcm49UaPgxr-bGiS~R1w#_6E) z9|OY3&T1$VCckvS2+u>5tL!qmJiN^TA}CYhUg z>79f&x9{=)s|AdHIPs8&qy;@SL|Ce@Mra1gsVWzQm7jB4Xym?R-k86!Oq)?^&rVY` znmcxW{`k+mEr*XK-Op;pWwn<2M2nW}?-~Jj%5-y)PIB_pgTyaylRkF7Iq`LPcsVULQ>%~)hb;&ikXJy@bDe5BM zs`*H#&*ti8XUedAl&2W<{`sN^#dbjV;9FF{%+6ycxADNHg>R1e2klV_%@jXf4Exo| zBuy1(?JRp7qem@|Wrcdt3Av)hnK<1BzLju%9VjOyLaWxowpRLUs>NlF(+5qyGSzZF zHGwj@BS~`Hn}#WTb@*OrC}s}4y^YS3d4yA(`+N& zWMS0NKFL%yr+ELs!p^8-kEKygp5B+J`XH!3tH0dvn(ZQ}-I%w?|ET@ku*uJvg;AUb zO^X$9QycYKE=bcTTi;G!&f{mquQ3L>d{_INl~Qp_!GfRmUXERTjCbEo>uLEw@nO*^ zj`+eEe_KK=Hf-5BZbSYwmpq*!E{(V@Y%Q@?O-wLNhZ>43=&_d}JT~CJ@GvTt3FNo+tKlVSK`8 zcu>RTPQI04VbMphGjPT^t~I}N&`RE6`4hKY5}t6*w`HXn62GMt1=_A`z5 zzd<;o^Lo7YUS5qqHooiG@(`{OijeO#> zNHI(^MD;T4mk!(=nOP-H?3Jbg*M7pMHvDB1-N|WmB%=q7GL?Ozd6U@0XvuS>AUE`0 zF`voPp42$ZiYfPdkKgSMByDlK6lG!+i@a?~&gNK{qins>Wr$|Ed{d=G0C|-cr#biU zX3>=-A@v$ZBYJ#PWX1Qi_|1-g5MYtL_nj~pdp~xWl=do* z@}-yQ1(SUv*-oUE;zM6aBQX=ZDbDJo`=-O-=f8X}eQ2I-V*aBb?JA_lYcXe|Ad(B; zDP60n*378dJR9Cb41qpOme#AY*j1LQXd{mV8~V^+XzuVE-$n#lL#peLQ;oWmk_p<>~s zJh1K%Y9v>Sd0c>whRRh@b!MsHVOfV;B=AJb_eSIGa1c%Kxr^zfy|tn~n{gQ3N;`6S z=*P)${)r%DzuH5C&1%^p%YbFE4z*%do%wuy zh%yT`8ud5-5q{Ew{dpd@vZ2m={^(QtWJw}|>9FSM0(qrHO^TKUQhxTpZ1(5c+|%Xa z)47_{L5_;mL2Jt!=9SUYbn5VR=&6Tb<;Go=rBwy=;nbtDYKx$Hn}T(R?reROWxLLL zm&s=6-6qG+no1)1zYC&2;HBZ=P+@Q|G&1p;+@1i`|Co4FP4()1uwYSRbH{prLjjaO z<{5y7J-k%R!rJ0>g(C?J{~re_vUI37k=h|Lxh649G?gP5fbMm8psQew9D%F+<3d)b zgg#-s|JyfcgrAzkO2ueHg<6t0RxtT@E;^E=UBHGkgR@?~k2MBe+A{&`IN|#|sPy@N zI7qbrVr3*#spkFUr3s=inrnB5Vmm0rhUblT0wUWe%&23p{Q|SOU2V$FzU~i~Dmlt% zyXZrF5>y;%3Fiw=R+}-p+NJ9_CCfa~RBz0cih2C&F`z8NUz)D>0U9`Gnl~p?Ujug3G`nKhDHi+>6O~bYkn)2Q z-5z^xH2s8%2DSoz(l%}h`ZMB@YH{$)j$ouKH*89l81Jsggh``rhp|K@qho27VD4T1vyh2L0VJW=?$(kt{WO!zA5)e*tLsA1Ub~&z{&i}rUGnIT} zQNILT+Q}Iwm}e^Cc$}BeTABGKU)_iv67RA{P!CZ_uP=)Hg~U^u5*mh-aw@;hBz_`& z9w(9`Jo1rdwtF)d&rSmI@3-?#uc9Z@+?uq#lP-p3lRY7sP&fG=TA2%?R@9GZmvXWn zMQd|}TA1)?CmQ#lQuG|!O(GV ze-uF=-ZX|#QoYr8N)ZluL`jfJ1Df?yzTRSE;D(yaH~l)vIP^l<I8QI#U9UjP)i8$Ycpb* zTKr%O#cOZwbT?j;AVifFZ`nJg32zYORUNy9D*6_G{zdey_2ea8%`%lPu4*=mW~5*` zzJWB+MS7gj=*OjfwsK*OYDN8xAe(I3?D)Vy|FdwB0ZwYkD8^pt)5Rv8ghc*lh&?h7(^R~VWaT3G`*mCdbD^m0)6w;u6GYS*%a7 z!)y}5a`87)#Yvysx{RL+^ukQbGH$`ZOvD~KieofblnXR2!+Uv`!_Z$YN$@}4t_#y| zJ?2wZVhOofWQ8J0JX3ZE#d)|iQ2HQqV3aCy_8+5SN%W&6?^rxPWEKW7mD$z=YNMiG zekIiU=`5Png?YZ1Wx~-CbJ6MLB^Qo|a&*L!_WX$j$RC*G97vRGJKt##abFpp(s>LH zLDweUBPDooG^6kJjr_TT0vCuawZG)ttwWQUKQHsbDb?KoLat_7TV|N zU$U-l|CaU8>X9xj^z@FF2Cr}Gm^Z5%a&pziicSE_uOxGx{?;&W4+==z1C`teK4z|0 z3JO1KOnPwD7qFn3%Vn(0r{C3=zFJvIRcOw`Y*ZV)mT9oK^^k=g?wb5Vf06l0t!?8j zHud43*+;Z#?*f`y24&71OLfA_ayYxd8}LPL^Wae z*zFE|<-#u_@T#PY1#V(<6LkWUF9QDK-A4QU(7#J-7ygM?H+M@Ro9U&OOwn`efvLHJ zf~zKUm3i%vDYcuk`ZCo1WE%y?ZTR=ug&pTAeh@%DhWDeN-5*|KTExdrzQ)TC3{L}G zQ};39$*UBJH9e+tk-US?R5Yd>aQLg=Vg20M4oO(r#wc1m;(@Iw#FZTvYsd{4;t!HypD~Z zN!}$VjfGh(){|Mcbh}YVVK|R{ZBo@>&w!x-|Zh)hLI8Q->K2or6GRf zVx0DQj+Tc`4^8`;XR2kRm}l?=wr$$H&}j&kWXC$TYs)kFp$X-~+~dANax>qFk6im0 zB4u!vwu5gpo&}&7+a;6v?TQKKMF6$4PlIUZ!gi?rKo|STXV^2)TQqC}C+B2;G`+PJ zyE@Z&>S9wi?QYbW>x{hPPw2f4(C_zmX_0cFserfB4!P>9B%Ei+&&|hr*VmJj&6l^m&?Y>Uhdp z^?u#lgmvP3@&f?^uDEV$f?_BhRrH{j6woWmd*RdPdC_M{)Ni5b&ojNxC85^|HwbL( z2k+)7)1*u~?=qBPrP}QYzV*2d0i6u_vY7oD2|`+c_~WDcbliGkH3tkh|5?EI>!I~U zY<4C`QvT!WzXXE?@;eUyu#}1;7Lc<3b zqVkut8W}v-7=VO!9t`%r&vR~wLNT!S6beIV?)UJy=E!ifaAdUTBePh5MmSPgEFw=B z)?qlRdt~T$I8+7qr32widQSj+WW9P^lw0`3Qta;cSemf-|H9&<-J;LF$5Ru>(K9A| z)`)06h(m^LI}sQuY6QvAyC%Fb04>?0KOTnC@+8ouMSoz7XXc4w(nyddj{VFNrl^sy zWfmrA4s=!%`pWrV(?i5DQKZO7D3B*fS|eWSF;Q6}S-vIFk}>k4G}c%moJb=E=9Yqx z7sWh}@RAxQOq^gX5$Bhd{1q(;sFCc;lNz3u?5~kPB!R27jJw+;NSX%BY)+L6OG|Hg z2Orb29#d)ZQsx7J>;U1E!?aTKSH=< zUd&*zil{4Y^GL>^duID#2J598*?bC(Lgp}W*6d>%y^t?Kph9*C?le!<+H#hBStdRe za2xiBv-^lsD|C2~>h;YA)4|4R}q(f}rK1JPHq_m*?8p7JVq;DD0ZNMEw? zsnYY6g|^Len9K8S5A&!<3NpjuNGN#%KXb!mAu zj%MK!Q?B}oU_&7gzobfbv~-IJIMG@@Gg>(@TGCTqc2r)2`Lld@rQD^w8o8|od#wDw ziW(Hl8nU0Y1%d^}PsOz!DY)st?lR`gJ*PI3?Dq1~Wu}tK)>;&;azf@>OqkX`F3Xw^ z5w(PEwLHhQIBoxkG3xm%%Bb4@3Q6W8ViZ-}2_PfqJ*C%gd;Ak!t;Hj)FJP*jVfrWX z=O2z%EtghI*y(G zYPDDYL@B9&pSr-&pKhOg#x%%xvmjqStzo(M3txeo)a-N7~L(S4JpC9W6M|9kob*5DGAb)N@LX$))l*2z#>A>iA8|zxHXd=*V zN2CJ4fIaM=d+^$O|3>ueOLU`V_7c`0D6ABqZNse`_dqjx*2h}DowP>6b$!9?VI%87 zQ0V#X+0py6{Y`3sj;uQcBHN?qoN0$Y#{sRdr1T+wbn1C-K7sVV6fH{IX$4K z-ED`-pp&FRn*v-C>{r1Y5|wVZUTbos0^s=$nw|7tN)6-k!uh~X20hz*96g&j*o*i` zoPG-^UIdQPLh)mL6;1MUMoIc1i==tp*og z#yT*^r+^c)C-3+pVx0DSs2!7RWA@9~&HA9r?pNUeMM=Du|1><@8m%XC4F9U@H^Ne$-IA1ih+^bfV_z z^Rz6=G=erzCus7peF~;GP4-$N|9OUKqK0+7v4so}37eiF>1d~^h5uYN!wi~cpO_=X z8lYsEM*N6~COC=kO#)0c8Hd?VW!)+0HBA=Pjv@m_27wEX-*cnW@1emdJ+KBJ7~^#i z!+uoF8qD7@Z8kAykp*Vqn`gk99=8&ln8!&OpQo>yWXxLNUtiQ`Sun4fQRZtUum-Mw zUQ#0m7f3Cj=fUe|Em>791awT>ye=YREqbubQv1%kdII+&7v-!wy+O+?*30kgqyGdd z#wEBIv>eYeL6bM#8@Zwf0$YMgQn4ms-Saz`h%VA@NPd`OF1bz9%Ab66Dj-k_@56*=3O^aA<Kn0BD2gY`uE@K~>bskkmpTY7$c|0D&;Di~Em52$M*}-MkIq@ouR2dpu-_m3l(A|QtaD1Zbv|X&ITF2?c`7gw zy$j18na#csdO6r(J~P!h%kXgI3!FdzH5%Hc{tcP3)?9h&ME&n3NFqWPR!W@>&cz$l?V=i zHue(L9#w+v@{{h(_9UvT0FXEavciA!)Om~Cb1Knw^m*!90B4AQ^BTeLI=w(3Ao?1% zwPz%E_hs{X(felo?Pz`DOv~q9Qs72S04;$E&e!)|Ozy$s{3zrC(--Ff!T!>>3tkC! zp&xU8ihcKq@{CsR6b*LGFL&yIb861E*iL@*w!2Er^2Eb--$8nvfpa4ma~6wz8)tiy zm~(%z@jx{75Cy}O|9cbTjhe*v>`Mg~-St4k2K4H_U&elkm%BagJnHT`OT)Rr?0QV! zeB_0l!&Ps`!`cO?Y-WS9pBB#_*Y+qnh zaI_aVCpbX8H*#t>)JP#e0Loj&uIX%-56(wf4~DI+t_T3mmp#;(0>MZiw?R9@G|eY? zLgi|_>3B#`@)!MHybHNOnG9~{QSq&reYsqrAZ%LA`Ga>3vLbA_fad62FRA?4!k=Yb;iR`HdFnpV__sZ>AH6uf~q@AAS^C|1y5Eo^> zqgeIS1dmW7DeYLORIrvA1eN|P!^{BY(L&aiuT7_g|NLl({O`)JBF+$d%|rfJXsLET zR>W-o`>T7;0Jpev9VH06T%>1*@e35@5_8&%H17WZcrQ4)-*-X z%NvNH7wFVP$V~lO5%NQ&;jRob=U=fbuB-EUsMaUe?F`rcM#-A0!j&TgBScudV+4Cu z;6Evr*Q-xfm4jPzvJE9~`sgL&BEES!SHgJq{kfkJ%YW{ER<12x(wmD(-`6grYbHKc ztYC$M9kWowbHO2fw=kJM018SD&j`RFGkmOCvZ-gTstKp3S_e{S_cGKS{N(j6cX@ zsB$~QqhakVMkK+YEEnS2%-eu}|0sOItU+{$2_0c_n0azQnIHFiK+K1{nl6Vd}*GNAppao5eeBGoH=cS=Og- zLRHDSVnS6p(316UFvk~iH|0>eL5oepBw97yBu=pu$fsYyDHD-jxl)XrBfu%3WG@{U zi(at42@`5Y8^u&)C`$AL1n)0X#_T^Oh^uv@f(@z0r=(ytxQ10|>S^00`N}T%Gw+{r z4ig*oIg2!hLCU}X-H%76wRO~wW$juXo}Vbbn4Y%X54ssoD$$h&vhQs)4CO60q&g-} zu-q?A{jDB3uRyrJo3%FgAvPUwfZb}C$3{0Cvnz65 zMF-FA@^%1D`TMXIU;DM%YK+mVqlm*P8}#5eVJGH#7jopKH*C4dWfI1WLR4}2aa7Pf zKV?emkG}mm5Sd-%Mugrs?(y8mHeqG;0$g`~%ffHWth;3OTc9`<-t}~sO2py<))^`^ z?w=U3wcNek;Hf6{G96OZ!5(tppaoNfvf;@_yWwGKEeV5* zd~T`($drS>dZ2J&5X5Q0VdVVQQR}VG!?wlVqb8Kv3PBj`=l*ipC+M;Cu7j<$pvR+r z^KfZI=g0QC{*{lLveb!l$LfuhVYpX$(}Z`*78O9V*CBn0gZm&97f#b7ASo{{jywCs z7B3$kL@0C>R1@<>Dj(3|GSvUr7bX{J@ByVUpNd~BHqOYH8T2^XATb(fQJ%}V&)rO4 zjgzSJRgC^t{O8R?oC7Xij9c-?!^D%LF>YB8>@i81=u1k^W-D zw&l+Tt@f#3%8KYB4#u#~W=-6Y@>mX2Mop1t(`IP)IJ(NDZ5mIr!I38XwP-RHbrU%{ zWI5r38UQ_h%+%O~h5x`Mlhr(U;a+&fV8sV6-;HaXJEvlXEySyrZX7>pz56A3RGDdl&r>Wfc4GM`_?e{$8mD(T)&#>DA*FbRs8;o3}9DHmGeFAmhD1&q;x7d8#9^o zH(8WfAx~1VfdjujiN!*4?n!B?oHNa*2(s%$Fpw=?56BU*O3lnuU!$wF?}<>A3oW7B z&E#w-tvWI1v(%U*05_K#pV?(ptnJe+)=w6lQA8SXEh*T=U?=Pd;8_l>IFzSs-rBfZ z4^4-Jp(m-~+L(tOuQm2Iwa$}UI~V=joZld9NS9$z`52LuJsqbhu3SpjUeU7_oFbCj zYaL)e#Gc|3A$=F|**oVQ7e3>zpA}^_-yYk(*KupUWMQ(bqWNj_D59L+ofhC+wgrq@ z>R&eAF*mfPumQsP&9@`I4{G2l3O>b74&>C{Yw;bOv4Y$PJ`c68E{iD zKOp3k2O^*b!8!37v4<=VeQLA|>CvVY4E`6D&~_rX;_fizM$(VSi88A-YPdTZ5j?tz)NWA%BwB zD~oR{82K$_2?$HJmgr5A+j@x5MV8fz7$#Ydc#iOsF(^~m2$=M0i zdFsPkYTsNN9by+p&$jlVWLM^-9(}j~7rFaD`aSe9ntcU}?X>@TZN?Pbyw>%4R=Bu+ zv#r{?kyZT!{>gXyuG*Y4rF4s|_<>9(=h^TdO!kz?Hhao0+x-V48(yuU_bBJ$(`cFZ zRn~9VmX4U$;n>7ej~3;vPmI^C437PZA?3@Gsn^h>>|1*U$v!~$`FzplT;4S6lFhjG z>XXk)z8y=`^WU47S4vyGKLP{)nlP!l<}2D1+k&)!yj=2vmxkTT6+e-c1+PiF_|&_# zn!C~ayOH-g!BXAGR^5mq+>BJ;7?%Rp4d1J&9qvkP@}b{gN<2Bk?SQ_nJaK*;CN`Yj zETTQ$a^@CG$F2Zo9xFpW>@`Hj;cgXXAr#Cenm3{jXn09a+rXUugusoe1L^iF|qK<>39rAo5F`x34s#|EqGJ@|+0gi7>j= zF9osz(QiUD%D+Bf_H?E7_5IgjsnsszR7N)@v^LW2lNvno{A0)p?gCi*8c`!hP;Sh!};e$L*2gE zeHV`r7uVezK(Z50I{qDY@;j4s5VKnhMpyaU*|U$cu;0$J&!g~nERrZa-fv0iUK^v{ zg!V!D$|1|WVSA(BQg{*!yuTAZ{|W{EW?bUCuMq!b)TQ6f9oo+wx;NnWZMaaK(iASF z$ZFKbtv19{T*8t+XKU#8S|YSY(i;<59xljmUObIVA_{Y)c3!LoQz{E-tX6xho@T7B zP^|9TSnRx5ePur$P^|JMln^QC=ZjEBX1(~XsN^x4DT8#dr(_`#I!IA+;0Be*jfg08 zJR2xYQ!!jIK3d*BTGihYVI(#6B5jg5(yA=bXf%}YB0X;<1-2TTSDwIw3nv_x9%~;D zSLPY1uN!KwEs`GY6_GA}Y2C%}hZR{#=crSL1WN08j;}?I>(`GjWlk(d${1D-&0%sM z^$&@OOmIq1%#F)7o=h&>j2~gjF?deoJaCSmNacu3EoDl7Hk2I=MBOkN@2!;E;_cKa zp9*M~1GU!f8BO|>2K%^4-^`D7Cd%HugdvQ}#+--)KqBW(B2jCT4M=he_5HO-au@@X z$0zbQMe?_QCbN~N5E@2Je@$A9Ou&muKY7+}oJ{N@CY5;35N6E~8c&9N9v$`^zkZR* zcawc>nZ{g~zq*+|=9QqvpG8$sJhhUcVVR;hjU+^xCd2C7efdG6GWrzAWBe7cT`$Lu zH3uIxe!Vnvk2FmggsSg32{V$PrVg5>j#9d;l;^2ZqT~B@9Vk1sHG}UZx92&|4xW9j zloL?q>Yq{kf~6c&3Ls08{yi|x5G3=#t7kG(=|{sHT9iDh%q)75JYB=Q9C&y!anh%I zEXQmP0V|vwd0M4PQ3y*}q~lx7v!Z$sm>gdoJ}6WrsD24=&}eJS$84^;QnK1giL**s zT1M3vq-wH0qRYAPPQY?Ssm8FY=r%|{?9FI{6a=flf?0r?F*#eTd8AT+SdgD1=iCt9 zwD~Jo4ySe=wbnpK6pHUOMSu53CCR_Oo-dX4LQX~fBB#^Nu;-Y)&&)F_QwnU{u- zRhcsdEhmDPqHfjGIF|yA=XVm9g1yvpCzgY=mQ*+w^T?G_yp|K!S1Q3vNytHLvG1Ij zR%82E^s9O`Xt~jOF$SzsqasVup#qPu_52c&rNZ8CJkx-z6#$wk##(Ch((ou+Gq2KW zU)OFI)oAis@OV}4Bv&_7(Q@WgvuRNH2bKeaa)hf`egw?Cii`)m&=AS2I+CwNtZT+t zuT&&y!D3G(Cm`B8K`U+2nuW;gk)VwYh-QYda$c224JT1`nLFAX)P9_1%<5NkT368>&6#p7QU`+h;BYMtYr&=4%Qdos)B{4HC8%w22`{` z=m-ejpz15d^H;Q@JrV@KR*w2&I?G~umG+*f&TYp^ijyvuiRzTh#uPpXg0+@UF7HUL z-9V1CbF*Qjwe=$-7+|sm$OaJJq1i!5?C>?`gHQvjRB=pnC;{tHrGpXw*N47_f0|fe?}yi+9-Wb_5%@ z#a#4X22>=nx1zHQX?1k;Rdy`3{ipVf7;cQBkRY^MdkSwxN&sUK2ZQ7Bd4oM2B-%uMtRrQeUi@nSa6<^cAaA4(OvXGLLR z{bmZqI`CQAx1WT(n*p6oOg#pT|InGcE|@A$?rZSxJIEe70}hkC53f!RAXo=Fjc|up zCWjN-VLC>JVrF0X^~6;70^bbsT((&k%;>PEHMW??E2-Y`}weVNfBH!5cQ9qHQu+G%cfsLG5ZDHHIhf{V2Pj(^J z!@(!h8>g!-JAc==m!nPk2n+=Pv~IBn=GoALNt?w%D4C9Ojm(*KvE|SmbQAkbnZagT z*7lad=C1nW9tw$~I3F_E$mX}6Guab}w*Ks5O+;{l&2)4syTx2>a=x*-a<^D;YI4PY ze&=n68gsF=u-ejKy9qt?QMd64+Q^Z$gO7r~sctV9LqXwYF$XqmbQfm}XJ}$-F9h=K z^LF}~7RdD0*^NdhA+~5GCpX@6q&*WK^K7Rc_0b%q;kxmLezip|LEiRo$|`(`*l*0 zBZO7OGxwSY#Z=PfY_4+$cz*RC+r`SPLym6?QwWcChi#6XZ;~?t2UP&?y)}p66%PtB z7o{pN)KT`_X{YlB{a#Dn4uNA|-E-K9L+k=g$H|Jp#6-*~mpxc}o*Zsd!-Vc&b@JBY zHAHgJ@$3HWSCl)Rp%4q&JL-}Xvdxow**jDLmmQb8#7P9MedxRPObO;}un4vKeX_!; zZ-k1o37LxPIk!lu(=FRh#26y=L2Tm5XtgO$p%HcTP-k(${u#XH%j7ek~c|mLqO+L4Q{(;LHJg zokNzhYv_0fW{QOVPqC2c->Uv|!tJ2nQQQLoj{w?vH{HBEL(R+`@c<%o8 z{$t|V-*f_1^FDO--pzR%XnHyM{i1C4C@yfjzWCTVQQ3*st&_k zyvOTz2MJ`tbR1sWbG-E6P*IEk*!{mRsQ3en@K|}(r_sulVRkHKW*-O#Xo)#3#+z%Y z2V;nY9B6nPM!F&h8M8l|&lpH1)2YRKjwnLAlo_Kx7#-B;_vE6HzcHg%9taqT!^lO8 z=a&=<MhRHA4<$@wqHi*%t#%3}-E zZWR9m*(I^eQg2vCs;FG$XnwV!>+0+jziOdg!*Nq=wNcZmNi>N<1*@LEXL|ZIfAY9c zlwfnE$?^Q`nF!$#sh=mdk+ zmgEH27xbvAZ8djcwyS_BZJ8;8rfiWbRA}^?(!PeB+)M%g@Q3q|W@Xxn%q zv>IR%gsJX3x?=g$|J|)@I)?pyZ7-g6^ADaf4dYX8Fh4tN0f2=2%}`H<|BWO?)%;IM zvWhjFv6X#Ix~h*nNeW0pbLgoZ&;ChhBrk63UbEB*Y|x4_XS61aIM|v(LqCah_k`GW z)~%f+-$n1wPN?kc$#%*dgLXpVB1?yc*Du0Kqtw^xz-(LTma)|Ir#GtXzyU;>tHC`J@)d zN_Bswf#qeZUZs_r2W1S7Lg`wRRh)pQ%yel#xU69Kn-kGQ1e*5qB8VV>hEf#{WTr^; zKN*_to7z;|eo$u@HNQ)T4^z{^&J(hT2gT>vVB)t=^-wv>_D$n0V>fmm1~%mVf1xLg zJ6qd{Rn?Xz0(Ovnb#*EQWBaN5)>ak^I!x89@OwM{6lCjYs_w1$Hhp)6)ceg)l~*?I zkSyqeZ887E#&yy6L`QY$O_+hbmukz#t)C1A-fi(VE_`mlH>KyU`_cN-V(>^QsxY^n zMPh$yYZmsX{QwPnc&4{N`Yis@O2=Le$Vy@EY^^2NG6qrS?zEUh=j-M6?EbAXPMoxJ zb8@{}#nOL{<9pYyQpNGMt+A)WVjaLe#y&7x$nW6xRNG&>dyD#pr5dUs)*j0S{hb%M zjn%6f*Fuo1-cd7}Y28`J&dIa6W5K|*_R|Mczj#6wgRxAaAm_exQYGN@c2nf%{7J0Q z*05+xhX~?W-_>FG9+obxZ~bHM;P3-F!<_>Qm;&!u;k~QoY|fa@fa3IcuTY-4m|R|r z>~WZ+`8hwzw*8mMfBTZ~JsBGJwc^eQgn$Dl$0>}~%4oy!lVqpSyc4-J-mdA=z*@6C zQ@ep$uQf8sx3duMmrw#NmkR#=B1Sg+sH`5Hk4&&+gh=xObAax2_N!-v2w^Tt01?{} zh_$T#K4U)SyK(2&On4V6040EtZL)K}5QA09!HYFIK)$_oeG7(OVM^GjhcukwQzgsD8281*%oks3Q8L;EOEglNc-LbA%Z+#d<71kS)B@=m^4}RBD`l~bNNzsnFv*9 za%`iE7-Gx0u$78R@v&ftrRE%?rl+GqjdOD$kJVXB&W?`R)M#x0ZMDdI=6u(@XvJ9nFQ;29u|{&x+8{qi zwoK$jCr0MNUs|?ugH1!S9BGwwdk$JAv2)?P$@LO@*OnUgMahPX+5eE@JUzEE?z2jv z;nLN@Y>EW&fXdkvt5o*7h4PwXAjUBoYx{d&-QD)aPEtzZbz;M0+os zX~k{EvKFG+T6YGzfnfJ^PA)Vmw>I76O5+XMlDi%1jmGMnN@0pJE`oA-ig8MLg*AT4XBUfwtU_K5oXY+w*B~Yy86lkvG0xqqXp%Hz zw?^vr1ByBquFKuFyA*Y3cObuy?fwFI%UB!3wKs~MiNCr`&PptCRTZewNI~JHDBqtj zD~3dixF*ZHn(`q`^;db({>tHqALF&(<+nl~r4&cEjIu2Qe~%$u`s zk>WzP0MDcp&1Ggo+}4Q%5iicTbC~VgNo5zfzm}f4&CB{*{qEr!zv4rV!C-Qt=qx8K z&4UBWtadT-oUd zz3zvzZnLVAYk9<$1-8i7c}g5dlL?Qjbp!T7shwrI(Ja~bu_`_9d+OYZUP|TUC;!2$ zf;uH0U#g1QiNky2q?Ku0MR(*OCZqQvgYQKW*3z!V@oQm@G&zXwlqVkR%hL)~){4hM zZG$zZE+{4BP*C8enS|e7hc@1H&Zl=Ko{p^{2@KOEf%|^6{o?TK>pJQ8?%fMbOWdfP z%IDoK{_Fi1fJ@KA4Ucg5WY-5RZ+CV9@ZVJvFbcQLx=k#!4Z}!y7ic)_e;RW)g;Thi z|J66C8R~1nogt13w=uT0?yV6g=O`x7h;IqWkW{bm%P{3K=%Cr(Vc7#O9O<0MVoe`1 z{q-nh;M+X`P?{H@Cf{pU=#h_=ahLFF3SB<&5`xk^$^#%c#y0wjpw#Q{KAvMx= z4dd}D@*uY-VEYS-a`!+D>Xsq@@frs1aD2An0ERUuTP^dMJ{w>~a6IJ4(~xb|Wp`eH563dK$^tC-@jaY7HT^`K3OC{A_l zP-!3A_~1qiiZ}Fd*A52b8-iD}U}s^c{B9T088^$(sB>m~A~tJMh$vpRpI|lL?*}pJ z>96{04RU3jd_Q$n!yRL{F!P>YNn#@xV!2i`>s~eC*?NV(2Wik>>kA}D*N6wdt=IQX zRCg~9A0oGCtjd5mk(EUjQ>bKiz zMA$II2*`_S88mx@OiES`78nlA5VfNs_nJpE9rVJ)X46IObC3a=#QzMCIy0`N)|e^@ zfv5@O>e{4`Kgzy#D{Al`q4pqwqzpG>GS6h#{s>Uw#5-;{kH7NeytSt~NPE6^!3Rl| z47 zO=$Ru6#nTyvh4A`i_^32cFpK?o{&|h9H_vP^YEL|{@VepkYNLN1VlrO2~CZ~A&5=} zga}PJF~tZ~DKn@~&D_z=^`T4{p-d9tOi4juCX}U?(&nnnr27t zW6D!AMso{!N^|j2OJ{VO##3d%Qv1@WfWD^fM)y~>ri+Ar~pc^+~XUQK^4*4sycHhc=Wa3O=mZ)i- zVF!~!1M;C0aowzq@ANFxM$UF>DB?s7f)2?s2=(`Ol6MCRp-Ii4InH57iQ`C5aky8p z;VomO%OWRD=!HqN>#6kA*W};v8Qej{u%u!BrDoCA2kj(8(D26qpxIo>pA+ln8aJOlAK)!a~9zKnacf``^J#*)|&NfjnF zD;PYdq6a@?@&u!l^w(kzbnChNF10eDW#*w|#m=!tvat~SF_(Y7_TX6?OC_x}t=omE zmNp3n_kX*e?vR}4JD(eER(LEHYK!O5`5#h65zj|%c`8@_cakjd(~QZZTN=wK#*skQ zvzwIi0Pu?na8tSGV(nUE=-QL4)^mojD5c5Nfy5RT_&|anBoQU9~{_ z*ZM3lktQe8xcvHJx1dsM7erompF2ka6bv?=v9h5qE$6~2PNNN(GpgKMAboPXjBTaR zEVpp)y!7us^!B&(zu7fxtYF+dcN?TqrmfQQJ_uZ;3MoBzwyv)ESAnsqEB9>aJPRzH zHMUD1GB_pc<1cfkto-L?g*R*IiB<($JCWadP(OG!=nv)EYuZCvq7NtxH5qz#%uck?>Q<{!Vn&D7;o{Z7?^F!mCfbab z_vTmFNDSTn%OT2`{nBTP!3WosHyJ})Dq&QhgG__63W;|@cDuN&MgRWs}4PH9JTEAHf1`vG{9{}|}S z_Yb@*dKjr71MXhlE6@v=CtHg!jc?bU&tpkx4G$Ue{#9KZI)cwuhMZ#f|2iFmx6GWZ zfbY6{%E+vk1=;?>Dp`In&dwysKwF$y+&U~QTSv3Q$*j9*w89R)*m*0Xc|P*~rgGQ6 zNY;0px2Nv=wpaiFI~tEpceC5a}aR-w>UQ;Lhlbz4!2 zvyvR?QtJT8Zfz;!8DU3(TbVa&Q5*cMb|7algdtN5q~x9Zy7|eX!_@{lMjH4jd>HRC zZ*!)sS(BB2HF>=zDNz;b+qT0|jzTBER#FxN;W?Hf+;eU#a8_Dm3F1m5YuL?YS_hU7 z^=k?fkUedeOV8xa4$JPE`M=&nfc9V&rHOs|I};2yQ^%A2Cu=35XVwA{T!)xQ?fPp^*g5VGjMIeObe!NQ+bvOna_+G+dXes7M- z8nisky6#=uvi)|xKE%Y2F8X5-#uA-GtHDZaW0d>+cwlxQm*S+O!D#rh!$xGQ;&5{+ z4r;=8g?jtW$S!5mr_S)^ByA*LN#01fY0`Cf`|gg?(lKMzc~bYGDWLwFFzV+jz95>81bK@Ql>(vf_Eon0waLSye$`%bv8eu>EPR05&d2@ z)>%ErUGra3b?&X^1yD7{U3Au2SEN=4^7hzLtA7yxKcQ|XFe$J<|1Z=nnto=GYYE{a zB>HE;a45)&5k97rCB7jDQ-~2?>i>qi$+_%HXM)+W6K!7ZOaFtq{dTp=?MRY?C8V%& z-WbZ|e8}0kbEI2nr6fS9NW;J;%f#d!b$_|g1bU$+vI5%WVrD6xD#xQqv4|A9$zq!5 z!i-B*!T~T}2m~bG=9`stZ9hWGf47210Ws*T_J@DWPX^L|YqVs&8h{s3yr2!!YClZm zma0_6ZF#i_%7XXdR!h|q56d$d)5^RysFZ~$qmR1CWw+}EjY%Q#X=dhM9m3d9eZse& zz@D%Frs8bZtL1i!H{l00BX+m+*MrmGHUI75d!F0DWF&gi&DYN(0bR#wjg%O?fLUYh z2|*N^>IWj60QQ4xGtzV|JQ|Su*}zT!!c#Fhg1T!W<=%nyaBiGh|4r1;8u4 z%>l^FhK^HJW-JVZlxra=A{ZU5DAj&*ODSd=OlqK6SyXB!Kv=B8sYbF4Se*%PU0qOF zYEz7rX42UGIhE46mFB5gKoKSK*CTDOjl!P3V%S*XaAsm}(h_H9%R?Y(T#C8O|@Prg_sQz8y ze`uz5Ldn?($wmYGkr+->agcSw&!pt=ef%3dmHo~+v{$mHw5obSCHIzzh0sn3vE5gjqrLvc&O&g+al z)J8nZ@e?Wr+OYj(#DUOfDN*peBJme65^h6X1hZC=xC_pB2P6$Ex}5JQz=|J%1Zo)U z-MAy;>mYecCJ{r0H}yIW8Grs>h)eq+mF=~}WsMt-F;|WF1w}f_jueXj&78-K zbSTb>!O5h8dup2&R@8SfM+j=6L;#)mr`t4B{xj6jpd&B{t?3VHlX>R%n$;eB)> zeFT{vYnwrHaV%*3SZKOkTz0aUC|-9QGQpxp4hixv1!@V2iBuw6DOwENMIk*R+UVcy ze}1Rs+w@*svK)<}@#W+ZzdRxn46GN)=N(HG&?1E_q?5?Mh$&brgeOxZA2LywkA9C` zOqmuIBQ1UwGKyS`@V++4SYEBmPGr2nJwWnlhoy2s2d%;!GpXF#m_B1`uHv|1Zvkml3jsOJ~XzwxgzvZ_5h_#O4GTVo^ z8f|{#!A4TxTFmFG@WBy`u0K%pgk&|^7E0{hYUuQCoUuFSQyAT9nDv3+{qV;lwZyqP zdJnZ8-K*@kUQISTck-M)Ct^(ATUmNLsr@;ZRd!OuJW&sw9z6$sbsh&*dsjDYJ$IN) z!F4)2kUHz#`#ZO;dw2(TahyZ@40S4ZE&acF&-Z~*gWmS z*L zxgXh!zc#T%PS;fBW4V&Bwk3QDHZPma4;)JpI@jsiIqPHlobd%;dAm3FeHg_?vaS0} z?$!mg56-+{)75p6$P^m1{e;xs4>P+(6iNc20_X8=ZWIxK{&|3+@B%hy2usB|e}FpI zJ{rvv&WyiJQ%|{~WVCq4JnVBs4N~B8;E}(F0(=r--~H)VlXr=2;{9nrZAgoq^&>v3 z`&2Ogb%riiP_r%n_!n~LB82|~v)~=}J7r{_AOAzif73rXiFOFo=*MD%uS?)_#}ZME zV1p0Al_jVBk^uiiSJZ7D>&5%VlKjhlZO%FAbjQYjhUVT6_iJ11f{nAAmq7@^+n=Gp z{WtyBK?vi!AmnmgWLU3J&feQV2QLvSey5%K*LfOYF^gUAt8cE~Z58M;UP9p6 z@7p^`QvG=Y#&0pr{{_Z1aNY;p)Bn$!0DY=ATtpzNMxbF@07``4Jg2`LrQp7+EBJcQ zqsNbBsvx#8e~5LTpPouIEN&kbK`d**B-Ft)9)2k4f%0iV5X~}(8Ua}C0ZgzVcpiZt zYeDDX4%7w4??(!TX=)H z1_?`sptgrWdj`=<0vM>ntX&1o$^mw;!IqYRLe$}=5q?JJg6gkQK!$L$m!wp65jAaD&I{Jwy!}vuzp}=QPqER`_`lKf9VduMvcHi7ih** zwa0XyM3umTRlr8)w1=EMO7B0*;HO6?Sq7=4#SFp5?v2MxN5oXX#+|lD^-9K^pX-eO ziMf`Hn}3b#JCB-JkL#g`%=r`U9U+GdWl!yiVvrCYJ03l95(`ZeQ}ZXj-z@&-SKJJB z-1&IIqh}nvRZLYxJop3v$1nt+BEYRt%`g40^Lq5tc)}TM%-DDo`b6Bxc;W$U{J)3< zCb)P;IIv$di7BA-fG7%!#$=a26M)|q@eh)5ELL%|mNCLK@uilD_v^`*zv3x2VwmAl z9;yE_cO=icB?)ka!5{oh2bULsOTL9oQT9p^wfbu=m23?cC&d+Ib&-ntmZ~C^Vt)}M zc9DEvp7O^k@&?@v9yQhU^{2H~nhIAsz$-O0GW|dItg2L6_*;71Te=%g#&~%esZ{g} zgo-a4LOX0aBuz#>PG%ujW};L^aYeEXPG%}iqHm;tRdQ@DTyTL^riD~inOBynRHhtF zTKGnKRmR_RDcR>EaaioE?(+1uj`Rwz%vP!N|HQM!Z&^4SnFwn9&lrgfH0kpl{|oBg zrO8~RNk9NOd6R0O@mpm#zU2Tra<9BH4`>qb-T?L%{D-FE^;X&b^SSRGd7p65w;Az1 zlJaK{c2G{a%n|?ymgt=HyswRXB>0?H&-^qvmqW_@V=g++;Rx`8eEcW}_{n@^_#78U zSQq9(GTg!~uRuKSd^qU>G++TZYCema3WPUG1WXYfus~E3g*d9PKngLi-qzm{1y2z? ze7~p&4i?QCMYKGhffgk~6DILErRorj|Dv!dJ^v4|7<;}*(mFk`{)ay?n5lNDxppZ? z9o*%vB)*~$A6TdWUxdA$iM>f{zZ_22S&Xq+j4fH9KUtar=VHNK9{P?9s)5yCwt(vz$;ajawZHRQ~(UKb`>Q>WngtTLt-}2C4H$QbKK#U`=OdE%+UB#CypG zZuJp-8L48m%TZdF2MY5Y@&OR-bTcpCyYxo8^d_^`+`Im=v;O8Cd5yM?g#_a5p@#IX zjsdm)gQf;jrykf@ZwhRHw5d0>t}%!*W+s7PR4J=gMua1Vz>>*<4{Esff&~w(#|P=u zUscw#>y-9H6^Ek~2}Yv;0zK-ez(HUTv^u%aEM!bPD0LF9A~q03FAti1YndEmftpHbQKv>B1v}oJCu!Od0BD{nt zMajf-{GpN6#-jsfY|~0d0)b{D;Bbk<5!EWl(oEQLggiN_3-o@r?*$)H9L3ph*C9>g68Y)lB!7) zz)mi~Vn3Q$-kU|wVA?-=m$JIoeY!-odd3j?7Nep1e3}NgnkGK_tgX5u@w%tGY6GJC z9_V_;srwMRyKZe7owHgMd73d~QItN~;SvVY()n?8d%wL~8|emGbh>_K_QC7++(q}m zPWQLl!0XG@Q}Fg7()WQ?cZXayaBLNUb@z`~_49QP-ShNNi?^ET3~z1qKq~eA{fJM} zMm+hz5!V?|wjCCwAMxuN0%eT|`SvYr4c$j~nQ*srPPZ-RkC=b$IL$4Zwj_T@5uld<=Ww4`SGkh~f{vfigzvs|Q`DM_98* zKBnr8Kihbx`{VF?4EHTLJ{o}D{Vv=6yu3r2S3~Vt?NK}r+5Ql z_$`>#W0>9JF4-gh329yPA>u8z zuyoAhe%-^TBH~}fQw|?EmA>Q0y0aKpz5UZuUD>lS-Ln*d^#(j})1T9qpCeiLjWOF*SN2?V1C#`Gc!xl<4Pw`ptfR&ZFpog?83cfGq&0rvPA$13J@K z*W*|@-Ami^;9tn_HN%o6{CcLngrA+q(~~Dxi-7z&BDpyyPz)4=PA9Mv=G%ArvU_wU zy8d_1(kK2RDdPMF{_Li0MXMw~oZdWw-ZB^i*!w4(mh6g<-!ysPkpAVAs@=+RR=2+1 z3i*78#rulU*Sy8oO0VoPI0M-6)vAaNG{slzwk<#N{Fr=fuOi~w3H=f%Yt_nbTHkI( zYiGj8XQh{S^{%@OJbx91Z(Vn13PQHjZf4E#di54KS(^=(ETe3LHcMMGpkxP|Za3>o zuw=-$WMsDz6bohY)nYa|mp8wu^|_ghzxDTe-TZ6XieNE~Z}YVKzao(}@o4`3{b9-2 zHOr|rXPwe;-AzBemBpM*i=CAK#C0u(Q35(J+y2c?(AV1B70jQh^^Td9s+z5)oRKBp zO;Wij`I?!X?BQX#`5C#*WVwO)*u7%DX64xRJ-_L^z_wfK_GDeKZrQCK+ZCJY9WtJs zZ^T_7--sFRz?I&tbI-<|9{<8I4#D=oW6$2F-i(Uw6!`r_pQ3n#K%tm`*#$ z@DPiyA27X_rnh-1(>nMyod4A->BCQ0yLhnOLM%UgE8Xh2(;|8^&x*7_)U^-zsOA3J z*ZmmOv)Py9U+(ie{$S`rpWW8Wnh|0=w)@}>=G}&>IdGGQrZW76F>d&@G?k>tlZ~FO9dwz7e z>NkN5;Ulgs6?<#JjoMTEr^{_O<_HeOKWhQG1Af~FO}_JML+6{-i>ve~YdInbtL-;Qo@ zQNDeLg@0!ygCgOpA zZR=t1^16Kj&tS*epp4qV2QEHmr%LN@l%gLl8Lz+nZ?ur_F(vL|YOgij__Rh^#kUS> zx9?Emhud=>I2|6Y_@8=se`3d@BpJezD}qV%J=)$OllP~<+}AoQJT+!rY6d(23|<>` zpvmPfk9x0HO@69k9uw+5* zz)|5V9Z&%MXR!9ug$^r)3hy8~$b5mH5qnRdo45b??ZNAVlqsM^0N<$NT5iy?#qC(; z?Q{CxGZ)h*#m!WHz-oToM;8cr!3XRWgz{0BhgQGWLesycS^rf$_eI3_Go9&cCE)cw z{&K`%`}Z6W#0=YWguDcX0tZR?Dlxw=7zDDUFD^(R5eY}cru~#yK*oyE3^iSD|4Swj zPt4=LeeRTApa@b{uTEd2m`bG=nNihBDhUiA5i_T+P$3&lB=RuE;czk*D?+B=S8YGc zhfRkQCB`rQd8$^e)nb3LxpJvdua!d}`bQ1eAAz`pTe6-?fhZsp01tPORJ@(X84?|QMiYNumwkWFW1oWs@rM;%SbWAA20=fy68FApJ-o~Pnz zDqAaQ1!MTpf!Ws;>fy#>9dM`{m%G+2=Nwe~*9R=YR>k2acxMep3Cu|y2WCE6^HA;iTY%cIgxT+goUOy zfbFdWW7lKi6b5T~#h*-DUVF+PmiwovOk0nO9lO7lm095y-V^dE7($&D`0La|=_ zRBRM%ap{qFS#(v`zK{+I{Yi;#xTZ(&UKS{0gSjdr&*O(O!7ZlRC}N@LrY>SqDm$~n zEfkibC=$Msx{lUP@`KVIe%?vPIe?yHRY8x>av3SlO`}_%8*+J5P=Zap!ggxK!@z%s zH%-x6M=U~>a>narf1x->T?=)s2Yb(-EY;H(Na$ZK3A^$os~^e(J;me2$5wY>b2go3 zoUD@jw8y2LN|XwQlS_Qb_%zReXvTdyBhP$U$C<0J}G7^%0@=C5ccNNl=%R zI`Z{$CdJ38c|mVie(T!EKfCs0b>5T0J#{&gZa8hcD=W~=`f@=3fudq98y3L^m7DdqoC3Ht$^$O#iQ8L(SKeEJMiV#PKU@C`Ax zSs4VPf8w)O#M;sWm-Ebr!o73?A|xmF4-7=5&jn+LroP#>511py`Ber9vBOKWpyen= zh>B#Zthb5K*ErZQbsxNBn*GK#AGejWJ-p+#=$ku{_ZB%WL{a`#b;e#FPV~8dS8h2( z%}t{X`q)FnOCOF(V39%i0Y&g*Rg7`6E{<*eC_yoe9M$gD%Ocwlcch3`xbWUfg17KE z*F%sO{yv%CAG=ISjvg>w|G*6Q#rvV0gBI0$)= z`@f|ApEA&56OyfJM?|F<7H8%-ay+XIp|iewG+hKa=&Gb2hpP;s{wyT zCdR^-|E8W7qw}CkwpdmsLerg}k^X&E)JJp9dOns$xtox5G+qb?DN+ljY>a7xKO#Vj z5laYh&j&It#W`(L(BN^;VE=5A!hn)#W_(wUmH(YVBS#~-BsJxh_$ZTt00Dv}UJ(FvuKE*8O=6+FQWFXQMa5E> z|9N>^lw}Rgpp88-A9@dy4o$5oz^t)+0ctGfw$^$wFj%cjZY~tM)mYov8OU9(E(4!h zYt8KJeUhZPb5*O2PfQ>Vr23uyp=Z4=6PeZ-#}TthgzoQ9R*IvHh^N^FSgp&hj_C#!Bm7Cn9hK287-}A{Bd+m+( z(8n6#ZGn5r?o)Wy^17ZM7XuLzIBuZe)I#oCb6JfG)=*BfLtV!V*Y#%57GE>$+FR2} zuLl~P+c`*(qh06+xbLr=B4RL)#jm%cYi_;c(!`fsw`&U#{oYlLHr~}pf)j2|*DDD2 z=f*v3w?XvJ1t<_z~C+@q;KbvHlLJNhr9cctg{x4+1D{cnU(`tx|e6D z^L&usZHa%pP%yDc5Rslk^n)MbsQjNu9~6dAl5pSsP&m_{u-ziQua7RU=AIoF4*3VZ zPZOc-DZc(JzD^&$&msZBY@UvXu3(da*Ce45T%n`i0vPxL4VRU}!fZqz{czQSUQ7Mw zMKmD;!i?1|w@HKC=sXy{?f-uFW0(pLMst0-47^tffxfo*@W}t*+YS-B4zb7dZ1c2# zKX4Ie3j`+(Y&>+l{1)bY9O~i;Lu2DrCfVH1oID&*J}9Tk8TBt5wrjNJVXzLpb%PE zzR#6jY>-UMMRbJqr>OT8AKCGc$j?#U>kgi=GVZP4^f#WfO?Gc^F zfgX`|Hr+86Hf~i@xF?ZTYST_+a*mlx!C2SY>fz3cOL1NmZj_jQ>vE_RU8z)4adUhD zRq_!P-m#7*si5qULi%Cc?GdeG3Bl%pykU`C+3^5V5zWvEKi{!n@?pbaF)YaOjiVpv z+PGyS#%%zC3|f z9sRbl$-Xk9E>q>UGHIc*zF%Yx1y`E~s?L`rPvQDX5FQ8J zRL|UoPP;5Cn3IbQo6Oviw^pGjR6exZ%PvH{mQb^X&)>B_b;Dzf;G>1XB`zy`na;R8 z&bAHDeumC`x{gV|hHscapZ**UFa+%WRvyI=H7}2#qEHs4U(BhV52zndVP2Fr1Q0)R zky1=D^eFe?D^pM`a>~wPC5r$|p+O8au;-$pF3U>m*(&3v-72QMU#=6?E2WPQS2V5a;1PMQQ%<8U+mtNSf&sJxmwEl< zkaiT!SLU`qRcTHJq5_vJAXe#WBD9W|6?&G*(l~CL={(vtF=q*=k&Mh>n-zM-I zdeD=SO{ z>R~%_{(Ra#IX#|X8jK^_Dq-uP?3*+Un}H>p1#&@GkV-CLGi$QlrifaE5UNgvt0=r$ zqGogPQ>zPLs)A6^f+NtTg3yL{Dg=BQ(qYTF6eC!_7Ax%5$!8YjztlK(7Ujd>igGrY zW4A|VmPhT@4a{^$?R3Z7wrABe6)|_Fch+VYmgEuj%q7DHDYggACIVi!tig2C^LIph z)Kk|fO~7XQq*!qnVnMh&jMhEyNbGALS6Y%S%j03|K{L8@Ih$t`I}=aa3x2!$U)xjc znthj>bL@JeY?}-0dO(78&z-e3D6K~`b-=q$qFik+0aa$rR?WHOz2#ojyiO1M)FI#A z0EO5|iT-_w{*P}pe~SHjJ6*n47{2jc@YS^+t=m^4`rxO#6?%qX(0ik1JK6vFcS}_N zs?97f>+r91E*dIL-Rq^Vs|&n^>vW+A#2Tc6>3-BKeeLXjtLY=$EaRI4pjJav?hXi7 zjUZP;2+WsAzl~H+j1VY|Nmq?1#rGGkw~0%4X`T;$v>sBN9*~&tAo1@tx#4`w==43o zW11ge^uoW7WPl9dV_6xGqNtCsN1^#gbiVA=zs**$EDs6njprB+37<_EW{vp&^X6h1 zQq~$%FzyTF9+DH7G9VrE5gH4)nju4~90;szvG^bTHa|kB;8!$1I%~wo z)-&SdFvIF)@A+Da`gPQOy(G1=KA5u9_@qVQZ!F|)O7U$*@qHkGWz2B84JB^OCvI-! zekg)u%y)WXv}l4@z9{2k6liRWy8 zqQudN6=$aTtJxge`=v`Z25g6B5q7_dSb0_%0Igp zoNFE!cMhW2HM2c6;_}?VpP6F>%wWE5tv{LKj2e7knyEpXxzzR|uoz|E>v@V>r8Al- zn;&(bn0kNf^!FU`sP9MGpBmYl8`@h2nxE!ETZcVcS&IXU{Y|5C&GYR~{mfU(^)-|~ z_ccc01u&^n{7ux|EnJ>~E`Xd2`HPxw>sk&Iz|2hGlm$Fwc9>kzZzD;tUF97n^ zLbc{(ah6bVmR7x&k&M>i{^oKer@8vzSb>*oU*}%_TP^OFzunI~7%%Jn&-yYhTsf?2 z2`@c4pcB83*Go2f#h|mV4VL_Ourz}^^zByd?biJ5*5j_%#i4L-ETwa-<;?f~#_6F@ zo`GtiZIqs`o$WJgzU?OBtm=?rUq`muO3s}AskGmm^IqF*)Y@P6+F#Y$>q=hbq*^0= zohFo?^^RN!%s@1&UmS`%c*>u-=$~0=nLM4^KFZ&`sav(TTqHanSL6cYd+c1~!mf}U ze-Jrd>Ic)WpH`e2K0#e9e49G`)2ZRVeUv|V-@TeQyojrCm|nemM7o)Oz2dL2N&rkl z-rA=^I)W=WVH!B;j$1Ot$;s9N@BMAN{Z2HV?No9dCQcnW{juDaU(grWwN8f2x3AB4Nb$ES;=f*NZ9y4v z^(+=<%Jz2)fGe$2hjplhubZ;~!7!>ZD84-xK7(NXGZ)=E7it(+e(Xm+&PS2F9?}2S zi68knT}6=}#XVdluwBKd4h7d97!x3FPWM`Ru2WsXN8=7o;trUwomJ;-S<0?{GT9>t z*l21vG{>DhW7=uj8|0+ANPTHyrH2J1Ko}ys8xgr1Gr9kl@i$d)H#2xPAqvL2vzJ+Q zvs^pYLAL8}v3Ov#&=R<0Ms_|D$7ET1Mrw1^;5_oia?mn&v>J1Ecku97J73d#@yL7G zvcL511)jOH!_7Itg<=u!qp77VMT|91HQaro^JR{;gL6Lc$ccu3} z7JCP^wpx47_As6vTrO-(HqUWa$w=37<~H}KD&b`h4?AZma~o*}&a1AkpUZAu8gG$l zs()|(`+IyMSbNq~c(Ch92nJ!Q zP}0s`W}g3QxHZMuB7;0@&+iH6JWV~{1J1)Wc1<+_%Zj&;849*(ZEst%y( zb03{)%ZgO@18H&_$tt~6_wu(N@n&%S@xTnu&)ktW7t%85S5*L=o2z`N=qM&eaAJ$w&S-q-T{K$sXZC4( zO6Da#+qYkPX?`bpzPqAA%n# z?)L6>wGnMNK#Q@ZcC#A%B?x}B;c`2dzy-5KZo7VbFpT^G`f>SsZ!i~bjn~K!{b;LR z=5{76UXFFKSeI58%;DKwDA+A=-AM3joOOK;{bV-PZl&pX4MV|$;T^+upch%>#&2EI z=`d^DB~!=$*STcw7zya|QvPBiO>V5y?Sq}khyNJg3$brCux=`%H{>yP#bmV?T!*v$5G&_jtZAmwn8W69VramSVJALyuP>E+rm>Nc0S`fe>;J;!TJTL73 zO2*Qi!y@x?nrcLKd`%Xu6mbHAFjW5v;z*$fD+ouH3rL^3CKdi&T}Edfl-j`l%iD2w zn&~t^f#Ytb{<_x?DVXa z+3h&8&a!Xar#(S+MPoE&X#PXdNi9D?Yc-oBMSFJK$4CK(QJR7~xgJV_C^p)))o4SP z=b77a(|T>6U6p?1eL*?)=$~yr{omjSJN`7sV7B9|AX=a6JUv9e^Sn$UuJio&Sz~%ZChIeC$#TcC@`5O~oaX@o z%X)qj*h_8wod|-!w(*kR<7GafSULUUf{Z|q6Pa3>gTw-kcggH1k4;PxUB(dc>o+7w zaewMd|JOkXx(xGx-0m@d@0yN5v5fL!4(N7hTcwh>H=>!>iv2&{$qKg@wi$i&8i9EQ z^{3%4bL!783hE!txrgrms*0r$j0NG9oz7F+U?~;JDP8e=&SX>c~*uvBtNjp~*EhqZGG&NOJ#@Wi%lI}_Ws zZ9AFRwr$(i#I|kQ&II4)Kib;e(>?5}KI(ewt*(CV>%K&t(jS4-*?Ux?%n%FnlR%K5be5dlZ(!y~OT2*=vHAhAOEt!!t5M-(&BEmJuR zS7uz*qD%CLAQ;WiY`yzG3=5$5U2eqc}ZJ-UQ!)oIEt^z?_{&1}8Eu37kN7*DhHUnJ$b~IO{z{Y$O@Oo-Lrq z;ISpVS7L+llWSREGHE8p0DDW14rOHI2_OW?s+`&{ck&C@jz}PFuhWOWOBo3;{X%x< z?}}g+0AoEPl>CPvrKA)}0T|zBCkjy}ZDcL|?%S4xV-b1(LX@J=Ec=v@n(kw(2nYQr z#qw!H-oQiQQmD>vuBM)%5NmSn^_v-Y^xA6Le!L+6%PW*z zWlFmg|9v2WBn8=&!b*Bgq#WetcxoRDLep zj!e@YoJoft5-DCt-IAj>tRye3F*&z^oUFE7O9;Wq{b9(;%>Ku4h7yx|L|3Ik2Id6h z?-}DY8*A`=b3QM^F!FY6GT987rGEeD0+{wfybWIcJL;e;sOVd<8}H3LxzNmCE{={Z z(!zJ(*9qZaw?>Dj3&2-m+A<}zVkDZZ&Gl1DA3Dlup0v#^8U~Es+VSJ?x(|s*%s(l2 ze5r0yHe_re*aOkp<(eE86V5CU9jOyUd{FKq-PO#&-JAGQwi0@6TaNKv*3pTbBhs)e zRQ>?8_p-JlM{WYjy#*_lDzlgwXFh8gptQ8;;KoNm!>(bZ-ro(FKW5n+50!blrHnBc zL=iCISYdjlwxr~7M}p{u6zaD+H9i}imW&>M){G9&+zLd~aue&yVnwOc@nEWR?cd)X zasOD()KA^DXy{z?iDbwNK~VL5b{5HYdH0RYfM>a-Eht7E=?cdsWU4o!H{@ts3jvB@ zN%*dUJ96fBc>tUlCI%%e2G)8zZjV)|e^cH)qJM(q8}s3Det>**x9Ys8;~IFSwLMu! zMKqk1^I!36D{92o4>D9Edb3(L$8`z8DN~W~&Po+2bEb}1n!a3IX*kmv;z!%%WF+p1 zyJC{s4Nw&>`X1)AmTE-eyh#ugGy^@|&Ph=p(=_}G0|abgGMT80PUKYwW!>hj>~?Cu zN-^g~VyEg)KNAIu*e?dBap_mOB@kNxC+4>{Pz16MooWQn0yoE*P$m5LV3qsB4<4y?N9$gqIjV;)zw0HIUVD5P6|_G@>hUE3aO0iU_h&Q!y`8$c{W zW}Nx1Kp$&Vow7+3qC$9+b-xUXc5*NeDo-M2tb=uMZAmh_tP}RW(ji%p!n%GvPqcGy zNRB0U9YQ37RLoXuT&amnx}C==TCi<+^a`gT1yyKYf=k4lk)dc9+>gt#O|aLHT{)c@ zy1lbUDeMMRz{U?$W**Q(!bg@m#??kE z(LdPNBA5K48Wki@`zKjaIbHbY3lAyRR9UQu(3R|p%uvM2=%-rJa9f9j8gL>ry~TwG z_jfxN0qsD_WBt5BQ-N`{x0m55>@mE7ZUombf)rt2G*?dMa*D|hbH;(uOg+Ynwr*|guh>1)# zD)kA4>yD|Oo)Pt_`1Ym)9l%V&SL2_%nUtvo zkyg4oFa_#D&cBi}SVu#$(%i9bW1E$1`H5XBY}5W<(f(Qs1d+yCt>h_q=3mc;SW5fX zthPvZl5K;{ zYy2c4q04Krh4mhL*Ppc06cWbmlnE#0k+85qTWw?Gs26*-FKfP99v`=_sjcU2xY@H}sI~ z1z%N8RDJf7jMm0YN!Acq(XnpOm`u>#ciEC@(yV3D&BI!=Jj4b*O*baj6pq+NN2=`h zT*7wLY`5CLYFew@*!m9)6`W8?y5G+f3!Uk0_u6eUl`i%|PNc0Cmj*zYl*;A$tMaiAG?nP1SCaP?(xojb z_n7T`2N3k63`<_%H%G4j-K91hRPCA3ll2#&Ld`!_w&5#jg+}?B8(XQN{U=)h6e;;d7?`uyfh{!k%y;Z`R)w{QW7Uw zT!xb$XLlI$^HBq3S|io%Jyn=3^`8f70%poKX4=t4+F540)y6+vjda#d^ta3muZ;{* z%=D*D|C?oH2a^0hf?~{T{bmafNHNqkhrRX);88Mf4hN&bNMI5x=Qo7If&U>W&X#N{ zl?^`f+}_euppY`<34+GMMxEfdWxPdI@kE51kC*rQ2FYwhnZ!_RvfA!MtRTsdk@t0( za600zhD7;N)@F=Q4d4TiVU@emOErVlX!#(q+Y>kGfWY9>B3cFpN}z?hSf)9wkjIip z<43bF8Kp)+CE~rgSR{c!e6t2rBR=)c0W1CuX6$IW?9*dFX{JT7JY1z3-`|=3uw0t~ z3xGkzPimjAhjAfTGFimz?*VRLcGE0rd%kSKFk|z)dztskavK5QK;vZ!F03t9sY`t9 z?q9KN)_p!A41{Nq15AHIvTO@@fONZT0G+`(?|MS^ykvRxvq~Vk(czuw%6>ov_wmov zu;dD2(GP2CL!c$@g(r=_5_v%W=SD;?ABB@M_NWwCOTJN% z#E1+87unFsYM2O3tk)kU1pv7fDdIM1&S6Z0pqj{1FMRaPO6egRY ztrWQyI+xp~po{32<&Okg7DM7`mCLx(MX1CT&`XtN)8qYzWo@Q*PA`&}aK3Pvk=44a z6LWn|tms46wl*CYQBSHHVcX0!bc7G4lKIPJecciZM3yg~v-W5#$Pk@e>4Yctfnb0u zC5oW~Zum6Nc8nZ+BOs74NZrb<8A|0Ckw~px%g~baBVUm#iBEzOEW#BcA^Myhpn;QA zK!MPzQ0M}*`!f_d6spk4zCyDKI?3W)EtKI{qiv4X&5&M7g2A(>3!@nwC{@yMGA=f& zmf)(I(IRL&$;jF~)(cI|4C#yo0=*45SHJV96yf(CZEG-9jHyn6bJ9NNeXn$&tgu%U z$pvN=;G$R*IDWOr260i=%z>(UEVe;dMmI9S7y~}zKzuLR5r=>?nhm?)`EYjRre59r7?wwyB|(Gd^)P=sM|f*d5@?_yA(qVH_0%_uW&`u zIqG`lL8#iL9W+##U^xzH!!b(9pr|M=(Cl|_skw6#bSZ=l>#p5{y-Qy`ZAp_)@F#vg zb_*TOqWZr6f3mCvkm3>p$eDM+lw0~?<-~}_zd}MlpmboMfCrth4nrY5hy+c>@`8q{ zgqfXV;Q&magU*H)VZTXfd)+#20D7*Se23}9E!57CZ)H3Pu4?LCXB-^6->qwFvh%2?dKu??FTg> zBR0&ls1wfA)+j3;iICf~H?6S0IuY?}S?>7`&dz*}9l{D{L-v zQvpC0`ss=T-8UyfI8RiKY>Kh`q&TN9mU6gA%3g*o7s2V2uzhJN9L0?$53m$ePHjkp zp0XEj(|QhZ2i* zeJo*0(U(-`5{SvM%em1W7WB+iM(X^91wv%;8R$98ycJhLBtoq+Dz)+)-cmiBxveP- zriR*zrr-3qr=7#94!_c(>9)M56}3E0^hE)oa<|u%4_9L$F1@kvA1kqJjg?|lq&1>h)5u1(HGhNu24Lf* zwSBtgzggBB;L!UxA{jNJ(VueU;K{8MuGfyaVOwZoi=`Tepw{{6TGuul-Gdv@){jYG z*AD3)K{0z96~~Ayv9{bxfI6WNN1gYnw4Ms+ad!h6H2c})?l+e@WCm}oz}ns}Fiv}$ zX9&2e?nB7^4{HdKn{NUIybn#VhDw(|F8hd?%<$GfKzMUY)N{A}kH{4r>&+ot-Frva zgm93#zpmxM3KFg9ZDg|~lt|(e6|0B=B=ij;HY|Hv7?T(z*fxO3O6G{1dv%Q4*Fe(p zA%tvmZCvApE;*q~Aii~#Osdr>b#zOc5(juhp{6l?e9CMqGXpTH0QQi%DP#USFC$P; z_dM}b#+>caebymXQqhAGmGiM<*0}XCXHZj+_4a)te5SDwq8XI^`iTGb zeK;_6FPC82l9`5Uq99eD-%yv3R(0)1)B@G&+5;p(GpFb7WIwY92S+nB9|Dh08yHb30hB;;ew z7ahB{E7~0Ja&T=}y)@1n-`u_pWo%#lsnDJg+9=|4>mk6s^&)sDLn&R>oTRf4K-lX0 zfOiuyk6Z{=zbN^I@HQxndr$Vtm3sN{^99@9$=YxAfdLpeX*S#UZbFjDuvXv3X|kPy z{D3y-EZ@I3d@eHJ>(;Rs)29C1ZJSauF!>|b514DX`= ziN2EGUl(7~o&A=!ihusaot}Vu1q|CgCj86<0KQ!F%X)gPyIEIAq#au|aRbmMbZJ`VU)B@Xf8JgT+v zFMef{FNe*%E^wo~cZT?0hiTj7`$(g^ z=!+^tD0;!U`R`!p0A79e-F%7L{eO-5?}X`ovH$G!CrJ0kd-G?I@NWb2YfN?D72y{) zMJ!TxnQ`-)Zu0|k*G9q&gnA1Ug!C8H&}I(ThFlAnS`8+q3}zVfKgIxJp|nQF^b8aa z@ILV;;0O_43j(I}eRuOU#`KX~3xJ0V>;?;YKlM9x3+Wp1Xf5WeV)Fy!2gI`bN?QaQ zriXT=1bSP9LSO>fY4|&E=!H@Sg1?1a15W+h*uw#m4uVp>}h44_yNZGgG z0gZ6Vv#{wip9YKIS&Q&Q%IG^v-xH1C$FV>`iX{>a9y2BoGL9fUP(vX>gAf!ADtKNa>XRexoiagcEMSEr@t{4N>^)ARjoTnrk(5qrc{azrFTCJ{g- zNO2}IL_}pm+D4K|YpwCM+#&R~n}B;H>2W3@KqWq$CAV^vfIvch9z^5-=V+=f89|1`VExF*8x$(nR%v}4wIj~ z(FP3VuX-qw+Z+hH?0`Avkq54oZmEg*z=`;9o(npke}`4@kO8#mk&kW_zSm*?shRb; zhyY@hrHz$?VU@pDkq`4P7l|5?sxlvz3(=mlaEB_z_uUdZ^B3b@9(f5rD76O*wg)kE z(Uu1c%U(W3XFf90h9wK zKa>d}bfM083SWgKKXge56)5#YKAaSy8hKf0eY)62F@h9`Oq_l;sy ztBT=q@PLalaqtR0Dr>dMg6NIB)MizXjq;e+$_KU5@{P3<)m$Z;93?+plv6)toK)50QXs3xIfMQt z;}`kB2|$OL*-2WZ!{AjqoHa|4`~*@Ip=PD~Tv_p2|pIp=(L3m$hY9 z1yEMCP?ybZ?ajW_<>pcq7L_Ss)QFn@8d88^o2-h!_sbsITADgqtS73$rHhfFp-UMH zg%I0HA`6kcnttTYPLT~ZQ4NAo<=bxvjK4r&l^XoK8Zl@*WGln3K>?14W zC)y&jTAly3NuZa8-Q#m~@>zny5?tWZH8s=iHxKUB=I2*rShvx3=F8E5(e%dv`tpdg zN*;q$^R0{MP*CK!b%F0Y3;fFp>f0Et>PsTafCV~`H`|~BOxn2-X&9@@tu3#Vvn*gb zv#Ss*0o;gklW+isAB%Bru4jS6M6n!Aw@(J*4ov5=zpBY4dCz9~8aE0JPTdyaul!$m zqaVG%{iR1$g}??qqnkZB8i;)pdC^wwhR`4p8+`cGjpaC9Fi1TIUQJ)pO_R_iM>Kr} zh|tYd9kE_N$lK59q=)|d+sobS&cRz6)f*kz4jzyh@X?J!+pzTun$NrI?!D9AIv(+g=b{gLjsYMt>^nPzhH0h zn+8lltB1sU#Qd`}U*RvXqAB1P@SjhxC`ltv+>z+2zewK0xRHF`EcqIrqi9(J+^M4h zfX;N+t0*d)63xCGkzYkri~|r?y|SJo6JAM4uyHvy;dwHkf+vIdh<$*&P6-`TmS4aw z7mlu7!`-Dr9WY(2-oq+9UI2g9Fzx0(?NP;%i9fg_v@%Aab7O$~v3%NuysMO?uBj>5 zIG(#f{;OW#t*LCC>?B$+{;iQ;*?mX?pexb2GoL9o3Z{e#rcyFS+E-Ef4l~-gCazP) z2-)4`lLf*b6u2AR>N=yRxFg)9X5Ui-+OU&VxH$#1Axfb1Dr z@2QCFuoIn8kFg2OUo$IR^GG>UtDjRM3O%rN)1#Acc+)vT^>g2sBNnjGRcv8-0|tIDYfp^ zS(zoA9N?v^5mKEAmOha2t#P5R#GI>Ai0CETt3iE-wcY5oq?|RJ9~F-*=yCOgj?a`H z9pdHHq}KTIRL2hu+Q+B>_cFyB<=Ji#(;gE!N(BcTel>P}H3OKMkis2Du3639n)k?= z6QE0w{~8gPnnv}UL!p}wJu4;AnSl7*BAHrBjaf^(Ud_gxL8b$1lvy|d*enD{tx|Ol zyIyUu!S*jj!an~cUY=XI0ov4rovOlJsMi@ift`|#p5eD$_L<%iyxwIWAK8?dAo)aC zx!V=YSrzinf&1EmkO5I*+)B$?@1|Sd=h>Yj0y1zG(&xkJ+!fXmZE zGhE+&5H39`C9_$zH4~9t+;na6*JryxX1!l`J!yKY7Y~R>0K}H(XdVt4s}FoA;&6oy z^jdR5#BPiK>u@0FFePSx0B&M`YP->P*QIh1KX#EscJw4><0b~~O!x%MaIjiu%8O@8 zZ+rU`_mr@HmuKftME5u>XH6saShH_#_WH;+x^{&S6hanMh!B(q;6D$#GsiatqL#Zl z5wqQEdwe&x%{?+fG(GH+xxl+U*uy&(jdnatNpp)*BEoXuGX1j^^G{fgs zqvtXy_wdzsz07heZu?63J8AUubXK=Zm~TK|0SeP@n}6q4HTIU5Z=8qll$HKASMS#O z`r^H7@-WU!?%8_Jk7m8vN7u&7?ThL^itoOP zDBQE&JkizN>uk>;PBpZ7KF|e;&kQ`PGhA$QU(n1xQ0u>C=v@ZHodz(x`2(gM5U$|x z@36i`9Q{Tlrk8Se|Gj;`ip8yI`M#z3ZDJCf^0=;4*tU1wZY(oG#u&rSLaw$Wez{r)G=4XST2FKOGQWIN#qU>GV#fc6G_9>{;qA-u`dy-)N$ zgw3Ac7HkadKG(v1+M|FD_TK0McCPVWUTj|`5fJqSAVC!!4EkwBP^qKq=L`o!;mPER zDILf86@CmX18)qdl(AR<4_LH?qLDZj1*U4u1XIy;5go20#~%VVki#B*3d#s9+KN$3 z?L)koQlXGRjNWu(>0G&7u|%#!Yq_$)az<=m51K@<#Y(?}ep_?psy`dbbi`y6y)>Sd zMZ|S0oat~hk&HXA@IC}$Dgzay*O}&6dbY{z5Byh{ipAlmzCH(x(ei`oR0eC@6UI=+ z?|i8CKs4^oGydkEj*%-Wg&OU(28`I`Nk<02L^QVJBiQ|Ivdx~I^$kz<+ZA+uOb|6h zR@VmML{^D>neTd&TCr#lvJ1URi(@XhJ_H5A?_qvyC&3;3jI3LJyOfF9GD@(|uR#7d zXfT{kzn1ZArcy3o7}~qvbAcC9e`{NXula^1u;cik(WF9fmKKy5ik_hVQGgLqqb7v! z6A#ViqlHS{Fy&(h({q6sC(k!l^Zj9@oYz9VXh7-Dau9(|lK?`41&kBJs3^U`j3I?x z-nU=33s-iW=w+MrVKpr!QW+yIRd!JIvs{l4`IKZ|+fx8E0UYj556ADeZ}9NQ>8ONzkst_VpU41N7cuuCv* z{y!`R_VRS@nS_lC>E*SJ-0TIBcw8l>k$SG0MskL(7(4FQx=jm?ih4^KmW|YFxbYzP z>w6P@Je(aV$0Z6UA-+LeM)I?809NB%ib<hPr&uj>TVIZ!1a&ON zL4|$nKee3kt7oPBW*RF*HA(t(?K(rS<2iBuQ--S->9DuG9kKen zZQ5r3&09L_1-q@3oA>AIDG&g}^UNs??s*rOv*xI>-Wz63M=b)cT~XT zA?~3Z68|R)gK?Cn?wk$=fW=rw-j4};ZvOM6ZcVq+%f|={$=fXw7g9;>k@k;GJ z(@jWk22pn*YuCXsVyJL-8k`3vD^};7DThJfo1I2KF7Uk3lGcvpgBV$C&P^~W&VH(t zSmSC8t!tSf_D1a4&m*Ej%n^t_P{7y_`2=jN`4-WgRk#4hLVc)kmnO3185<5;f*a=* z2|S~FUe$Olr>4#JJl~2a$h&+ZmCV+J0p%c%-b1XVGYPKl*ifq>b6mhDDMAUjh_W4X zavth2*=f3%LZeayvvUbHFP4I~`w495G{v7fNI%MDM# zh-b$Dt0_=c#^(u#W&t-QasXO!vjIwhc5XIb0r=f|DyU1jw)nm1BoU(12sw z2q)a^lh}xUXA?7VbeWk*BtKdrlBq}25gSRQtP`ffw7 z_EPHM6sagHl(-rsYDJmE1!v8Qw9A8aR9~>UBwZ2gN{&hf73;)At>t1+WMj6(*9j#A z_M(m0V^t3bHKkAIkhIcMfpHEM4SQyKiNXUX#k0Cj);egLE9+*cZP~iC!XT2GBW$U)$4_*cy5TfcBm*T!Ya5k;1 zc2m!|YLn?|L+;D%Jn*!J{o`7b5bK>yc=hfBQw9`aYxD&x2LBgjI_H|A4MGKI%!n#f zHme5a(SN8FvD3Ex5Z-%x_$y^eXm$SPo0{NlZT+jCcEJ=pdjZ60nr{agF1pgFpBt~# z&(n2^FWksB<&an;RJ5MGADTei?p>g%j3IO~``CW2BU~f*p3{*aaI?_H)zdV})Pt*j zh_XYabk^|>~tkOTSxcttV7U6%&v=P8#@%4O&l+eze&?JZho+%gyz(u!U>JZ z&nriZ^qSO($#x{F#q8He=(a2?5AF!KhQHa@Ccw#WQ#@?;7{ahdp!u4j31sG3E-NYV z*(Q{fu9Ew{4?CPjSiWUGj#iMsFz>q`BVqm;2%xl=rCihJ`CS;$L8MQGyi|wa@tSE= zb&l5MS`^nPL)bY#yCl4WRWHgSKgnwtTmCjN=^wo4-{E7d&}aF;Q%^o0F5@bv?Bzv5w#8-cOWJ-OaYldl9)!BCe$TwLD8@K~+iRcg z?KsVNe7?7j>W-e-e9Co>+I2Pk#l|;-?S)W#Gd_*`JqEsc`L$CX(CsU*F!K?)4}gQU zz{%ER8g)qB$A6j9$Dbd)b!|;Su$vF#+b@W_UuQrtiOoGDSfGdQZ|QmSgma$LdiG;N;y*QkwivkKtX4kK{!$bX#mmtwu=dXc+$ zk=x`~2M;CZgLH3PKXQLm*)kR)?RiLo1b>+W>YgxHz$RBb4(q-(=I7tus4Tt=oW5X^ zzN5+B6XBjS?*7IiL69pXP+Zo%O+L#YwzQ%?xFZ1~Sblia25*#JIGKS5oOm>pc3cr& z0B}9FO3$Y;H;sy*P*d;sAU}q)Aok~g-Cx0LFZQ&LwvxBLJLy3}T24Y0VF2f#02wMK zadO|TF)T$en*pU@XAmbQ=pg2&P~%_z4{pITFF~v)VR{p8rm6fwjV?SHuA;tBh~z$& z;vv#zk@BEgnBqQS+yTO)KJg*$TjB17-;n6-5z43tV?{zDv_t$NA{x=6LPJ8RUA-OB zqGHY+{K&45HBaeW(cs4EFi zTv5~N!KQZcB}xgOBXPf{0skN3G+I>OIKbt%Xy8%Oo3@xeEJxUdu|ysT1R{xalZFtJ0JLAd z@!o8^III!QqY*{QvJA7DIyf* z-csdT(kfTdz0PfT-cxbjeU3+xE~pcU8zPa(lewq^oz4>R%3_6Y(ls)})v(eFpaFfP zGRr!$8ZsdZS23k3GK-&5ir#D(<$Lzp6U9n z$wiZyB@@}RXgOx-kTR2r>gv``80kaM(X6g%jQGg{P^tZ3(&`1-yJ8t*$lERzFGlsdlvC}_TQBP0h-MFll(X7JdvoxrivIIX?vka=&gu67OU7rfFec6hYN#r$U6=oXMPhnNft3Uv!r!3`o!P)z2 ziF?pt-@ftR(fsj$RE=!|RM5CoRaY2}{7t{a&27~*yjL`%)HFrFj9r#rg2(i(AY6Yd zux`oH*p4PD&*|n&>6c6;N)L(;je|d}C{C%VF9&H9t7$f?`|GHw46FNGQ+cO|a>lPJ zY|Cw4g*AfmjibuNbcq-qN&dM`^{yJauU5qf83f!}E1O=488EKNqpi{Ff-C1#`%SNU z)vTZ_1)<+*@aN2t9S^&Kg*Inv7%nZzz~S2c{3>%aTX2Pdeb|DIm9wkCQl1xy=7M~A zRn4wP6OPprp4CN)R}y5^uysNUWEcJR)_8Th48C|JQZz7XRN0c(!djLJjuIQYMOSG`jD*`*KER(z8y+h=SXr4d>ypMx_kqu!u`lFBM{Kaj5W@ z`nUNiXajw1#=2~x_kor1_IGsaOn2+}_^7GIY?Q+3TDz<$(do|8>8fGsc3e~OLTYsT zEJv$ujt(zeXNj;s4M&uWEoCf1qjtqar><9LRMnPb zb@@TJ&tkOAmO*TMw$DH=Z^sl!! z>E}Q^Z8t7h*MA0umo6J$CE7DzI;XO_UdtdqNsafA?bHvxeO76Z0)eNTq%geA$CyaP z5AFSHz3itI(3=G!4RD=$eI$HCWOPF{#C^Z|T@-plbo%}Opr`oz7!My2&ev|?a% zCkF|02h=YI4BrrpGe*q#hrfNH0rVpWG~kEKW`_*uht?e6l)kEahdU)_JK~C=B)JKY zKQ`STK!Ut||9Fp!&qPGdL=<1+4)0(uW;vM7sPfIY;%z6|mXlY{M0UqSE_e4WgnyjQ zWV{7hitRup076#ypiIK3{1>Mz$ zJyTQ0)AbN_E0hB+(B;?|v$hoTxRTR?938J#Q;nO=`0VYf5^)2z(?4d%r2=LWSn!_@OFM3>k-YI#m=mFKA9MQS(Fc*$<3UrZJ*x3?buzLOZr%=%Cw$me5!cYp5@9}N9ip!*j;I> z+2r?}jgnhWnORS#+KjO6)cfvs#GVo5@+!NYEvQ*7j$A6G#-2M~_`9B^sF{^HT$lQ9 zy@BoA)C{)l{BTQGfLdRhxK^$9o~!L#n;CrT+L80gP@9P#*>Ua_d8~ds$$9aMb$aP_ zlJB{poTV<_Y2XOENvNglr5#`B#c!KEa&Wz{&&@%d8||Cx{1uxa*Q?hXoA*|me{y^6 zGxo1`mm6m5`(PapV&;j+77lXf%PX*d1Z zZw9w+CvMIUVy$c8FI(uX$9*qr;P1c198dTzhwyJ|X0Ec-t}x4F!)c{9T@8xZAPNN? zD!*?M{KHN!>@Lz5PX`1xQt|IntUkL~=@l=%Xd!onUcm_j0yMy7ff?#H;XMFSDoJJW3=BE!t%@_6xc%Y=BJg)B4M^c=vSCf_I#@> z;#eneIu3KKd5#LNP7V-ODh#jo ze$RjGBWvYu?Co#WUY)G*O{?+Myh)secKc4X9(d)M_1!E8cHKf+*+H<}^gt;lkxv-`|JI_90$X}_gI(xmowDsJ3<~g>W zIN6UnyCA&2tUQ#t>*tj`B$nFsAH$05x&)~)i=Y0qv!pzzH5w3@n~R&3N4XNXxv!Zy zmEF8LyV|a*fm>BQnY$iI*+awSCDrdnH(+>`Lw+>oK{o>+;N(9hDT7N1ck+()i1{3f zN5^>d9fH}P$VL;nT&^w3;EU68qus0w@?H|gyuy0z{0QFsdyF;g2F`Zgz1=t^d%Vjn z0_A(m*0=x3o1LhrH7;l58ruE4r}w=7{!kwO16=XXSnS8*V{gdyl-0eCcwj6jf2=$D z7f{W&u!Liy0q@(n;|<&U45oIQ5V}=EW=ZCvv%Y-N(`~$tca2M6YPW3;ihH1ax}yuO zH~FgP{$+BPXO|FqqTOaq{px*IcaE#>w}9@t9(HaHVXvouacAsa7VAzd{samU?gtD3 z{{%6+%WpdJP4^i#m(6VY9WBaoBEQc62X>lhh;oitI1VcS>S`4MtI?NCx$@Io$v`R) zSTfTl;%Zkm1JpWo=p8|0GLt-DC;EKhc)W-%VMK&enM^ug!4dqqBe7(rh$E+ylnSL} zI#o{}ekjt}d^Uh0X-5aA)n+Cfipi)8a{*I47>Y^xd22N;3WCqUcSmlW-YILK!YV&9;38Ddp$#^1}tWT?ES5#)PoDuuO zNN(o^5J+B7bft(wL3B^*E*w^77_sRIY3hD55zFY|wpd`;D&30hD3bJU2Um@JJ8z$YxtI9XpW3r?PMtvmp&PRNYk#T`_FZxr9G1Pvznv z;~6QUl3Evt22o5AB&7jpmL>+`2cn4nHLPd){0(4X*^zl366m4OzM`cH=HpT*A^M(} zD6$1e&DxfhNG+AB6@lTYvc{e5==pVDnX1yMrW6Uq$LDLS`F=SVB&F%}6|2R}f@Via zjB-Oo!aNJhwz@84Y6Pa=q()m#dGp*=Y71152PzB|=VfYtk1I3N+aD~~RJ2^5$(Shy zJhy^LztNdOU|+}$)oMJ@aEcOKmPnH^e7xrWZVaevn0s-e+6j6~E&*;lJ;+*-MD7gO z=0``~!p~#Vw>u1bzFH~{`YqvG_n=N7Dt58vctZhO$C3!Fwe&s7hwIaiL? zfT36;Zg8{o%=Sd=L^RiM(i~|8ux-qhDWM(kAMS-1`^3VP;+qhM@ZN0TJN|1maiwD8 zT00+MPit{=tENlJ6Z&wL(>NSivPIy!zEn&j(K((khUPTrn*qFDN|tqoWHqVCXTJBt z9j?d|$JdPJ2%#BL_=@nXtdYhiczj^CJ6$Yeiu&HKX|zG9MgqLtLM%78FVI0ck5$Pu zLX`D-+A(S?f87{@U{4(7F5{k2DUiD+qJbdT8dHvXg&pM~LRJi#{j&qa zlq$f+3CHG!jgQ1|!k}?1rFJiw+{&ih)8Ydml~^I;x^g&p(`75U)0yQCPyAP|hBk!L zWMSeCBu?&lpCIvQjl$ytHO3Qc_d{uc85@9}^o zp!g#N^#uGzW`}+GFjh|$cTf&`Y9c7@hrwBoz7nLzCo%xT`Jjx8O$2?)_>J#pP>via zl8nJmz7z#9k(8Wp$^q&z{Y>+OIpH0_TrP=lp4N@ z4#d<#&~!mQlo+)D1aC|b30g7msi6qOmQnzYYd(^1DGxK}Oc1V8Ap{yUAGPF6fU9#Z zRIj-Nv&2Hsnp!bBv$=r$i$dTWQd%}(lDQr<|EnjWv!h(jpI8z>QD2M_trI!zVt)6N z`jHsdwOWEbD(|}QJzi>EnV4-0mF`@a{>q=4nGn#Az!_027kYPNtmQM0Zx7z4cvGwG z$|?U>fKBRgs*$M*Ri78iSS$&SG>yP=%u7cduYEu@WkMo)y>hU;f2C28ny1omsiM|N z3X0i_cJ|DHO*%d$HM=E?!lovPzISF>;yh~?${2EHKqA8Y9*27SjD)O`?}Wh18OJ`( za|`P^wT=*KigWgzQfz#l!9#o9@$|ga6Faq5*|ggAeV|-KSJl6%E5SSXlJZq2EG838 z>GJ{_slCxr=aaup^UDpl?zI+U)Z)03 zt6u}LXMsZEbP8tO6H|ZHNVQ+gXV&9rk)K1q#rftw++dtm>TAW^RA1D}>$+)|C?Sc@ zs-`CK>_emUK%AuLpLNP;$WcdZS;PJn&X$Vi>?^59J3v`qRkW4+PiTrAmtNt7$<<)^jPCl0J+01V2t(fY=+;Mwx z4~;I;-#uy?j_jT2CUHU<(^WogC9#r3tr#EU;HKB5!f3aSMQy$H#09R8BW<-}*-;LF z*05%Rt+9tVC3W}NdRa*A4ZP@xM=0{n&ElK;EU#JAU-kL3)-o5v^Gl7HmQk*Lm<0VS z@tgeY?dXcy3d<~$Cl%a!XVY8g-!&^IiDlIZW*8bdkz5ZWh%d~k7&<~PVg=<+)Pvq` zn_?aSv6c55fw&7cqYmB(B-a25TbDf`SBI2GbNfF<$`r)?(eC@Ho(YiNeR-|i#Q}I% z%4HDGR1Cb0c=``lkelW5yj|zkllS}VsTbL4K0{C`&(q}8SDE^{XQMhbIShd9KlXIF zU&IDGo?Dw8aeOJlc0Pl*Ef@D@zFyNkpLS7=ZCxYG*MrXvXv(_lH`zX)oOu7XK)?Ym zYF%kW+DF}Zo+6tIPzHE#t7=$Sz`1!-RJGG-d3KM(lNWq!NH@BS+=|O!1S6 zcCg_0LFfx;Bn_~&@+QFw4v6$Xq>R+a_FtiJbMCiW`qfE($nhG(n0vyZuiZ`Wyt;%u zR&DM7yjA_s&t28sRo&nDjw}II*!ElfI*~gG**^nZ$b)9Rz5A5hHF~4{ zZn=-~{9}kcx^rWOeG>2yA~M)N@h>NKF-#b{9I>Qa1M@dv z_DC#-NYwu|0wzW3i~CA761B&7dt+CQHtLq2#=A` z!VPtKA5O2gx!52~X`9K0wDNiTN;Vg(hH!j27HT@%U4rB2Wf)dhjWyO7DtULN{p#nI zYpv!%?5`(r7O4aD*CBlI_GpV+2P^Kt9wLX7XFq#VD(NEkgrrciIA3rA3_YaIN0zf9>g4DEEzssNsYq`McqTVaPg#)|8UdM!@OMO4;t19ciTISibf#vKT8ON> ziH4sKhcOU<@=Q3Rk_@aAp_E8e_tokaV|F@-{No&AVlh?8XR&hh+;3nsr^3Ql*jkZv zORK0^@b1H#`N)Z<6d6B9V9ttz8epNadNIVacdZx;fV8ISqG^oZa^f|H1*NJ4fWE@@h{IHEt*T>p|N zGpdp+o7V8+r_cIPCJt2!&)Hk;3y>0ZBFA47IJ6H`!@R_g zD}HsaKF9zDxnHxb;B(Xqg1FkOcWOCQl(U3%&x<#b%sR=eA%8It%-!~3!S98SFg!1X z3*AN%xkY)pbBdrzXcU(MD4v{zC-8U`8%QN|6xoq6U9(ls8^GgMWck{urSm&L=mUat zAyq^|NJ1hnyD&-*_g#aZA>aBvpC1}ZjVNiVrN|{#9|b{MZ^}CfI{I9~M~PR7l{8DV z?80TWbja>{E#TjUEyH@sTnk%YQAfesV>P0d_#f|u2RH1!CdlV(-|xyFE#mKgNGZ>* z{aBiQe_XYw{dn5+xcPYge=`E2$7FfKHlQKE4h8oKWeLtdA))&Jk|bu@6BOi(Z=xo( zYgO8V`3WYBO&}WTl=KG%P%nb+e;dkwxxEDXRfg=m8t=ue6R`*0AR0_p9|?9QA)U_| z?=M*&B`Z7rQ=&mETCgx$JAniXZ9nc-Nhz8byAb2gY8=a_2!Pj!RC?DEnLG9{VydxF z>RfS@zho}TXYoKVl}c=|oryTyG?EBLcvw`sGG^pL2NPdQLa-(zHkozm=f=y35Y2HU z#PJ>#C?g&qGBe|jOqCLYFa@bG~Wcr{%69I}Su~~EklTQm0CYeRqX`)9w8Rf{quu0KF z@Z{eg+r;Ei?=yg8%kVZ9%TQmQctXU9&iCuX@UHKu^F?Bz73!@W zIYrKD>Ror|Jq@se4Y5Cov6Aw&dZkrcf^OoC-DoHGX;up6)YSN@E3bAr7h$&_tL){h zbRKc$n)RjgKJFomB$z`2=tzIY1FB3ZW!5INpT3NMRpuO7Yr|ot&}Du7P~!hfQE5!B zFLyjO6H12Sc^hlKfPlh?rN94&qFQeHk{qa5!%+_%CsQ~_^f{z`QB(|=nCjKX3ZfUA z=i1L5Wpbg8dL*m86;W*HY36nIQ+8>EW;Yp=E$gaV3dGx${>;{mTjZE85o5c#X5PsbSl z{$;FEPdL^lTOe8;t&nQGJ|RKYY=MSrw293?CYtw%#zzZU+1xqxF9#g8$J(T74|D3M z?fhkR3TVt%}UGR z-_lR{=86Lgsmuqh<(d(+6 z5eU+2te*Cktu?L+P2pwYal<(Vgmgrm$JNSs?HtPLoN|4@HSBh+Ykt2ukKC;icEsI{G2<-S2QXar|Cj5`clFCKjs-G9rL zc&wOebq2Ds0-_AMc3Bj(fobaZx#92srZVCubb6XgR_reICSPCnf8RIm_?&9^KHULb zo<#)gu4H)Lkq-HLn;H3S%cH%zeFzTpLH{HNrma(G4O*M?KK{!2_$^W7b_ zzN29MK7H2yIPpt=4uFRa+-~*aOxNC$uy}oTo@YabhO*FAH?=zn*bMiBZ}VfL(!OjB zC@&7-It^0t458!H#wzg?))b&=3u5C8?JV{e3;;Lc-;a zu&o?nX;{H!tD&VY-!(8o8r&mDnEd~cgaF+m=#i~HEyCSTLkZI(olk=JFwgL^y`YrxjIRGpY0G0s(a)dpj3L8v|Ra*@}r4AkU0Ly7J#T+&BS>}&P zwG)B16+eyOvW()4h*QN1=5&ND`v$h{8UGzSo*p}%H9o$)FQl6)xC;~!hA0(aG-5sa zltBI@9_~STb0{-*i`1W5P@godG+FoWytr4iO31ko=+V1t9tr zPZSS!0Fgq;m4FZ#t6Cnb<{3KLW{jT^gY}9evBob^ZWVzQ!F-au6P{|m7C|2Qqx?1w zIs>4+mSPB#B;N;s&Pdn#rH|4c?)x<)Q+g~Tq+U~hK*hC#!AruV8Bs)Ga~Yj-gd?>@ zn`0-MNB*EDijRKHWYkJu!Ajb0OJ~W5Pl=BzEB8giP9R-P>VwI2d`$>eN65yeRew;y z^0IWM&U_d%BJqlfZHwt%3oY{m{rkZ^OWXpySul zA=t42Z(J!^;kgP{W`E9-3ShDaG!aI;g7z1X`W*8L+x|?p8xyV>p}rJ{wfu+D$|Hc&{;271WAtn9iD!YTRTx1 z(NRi;Qz;MYs<6b@P?3#0Q3`A?lF^P@9Up?97uy(+s9^yBV&72jp58|%TAuA@{7Z1s-gw-iPwTY00DWavV zV|XhlH!QC^19!e{pp(gw5lnYH&xyv#P=4H~#z)wF#N zZ`Fphm2Z`Ni8gud+HGiA#R6|Vzh(NIJG=7xU`e|=OxOGB%KNf-`q3}?1>TSVK9zV? z-G&WqD{mRLI=y<)MI@I40PO*&_Z(qgF!IgTXs;m&xWQ?u-fr5OL>^?iP`*UkN`AN+ z^o!>G$svZUA;*8267VCT?L+$6)zvIQy(u43i2={AFSFCwvJOx_t!=5n(LYKpa zo2@2QL&m-%{T?B=LTC6usi$!~bDps)PX z`#1+}`V3^gjk`uF@Q?vWlz;e3e z2RuR~gwc<;aWcL^Vn478(AyjpUe}t}lziXx=lj%vY})GE7*-5?ZaZ(=MmIr4+dsPQ zIlKk>KCo)ug>QC~@a^qETC*;2V9`!WIw-*mi)!ZC%~l*R@)4x%!(P=qs2AmN)ILYSbZUwp;m`ZSz*jqZH$Y5B*yxEMd;`w7M$Z59nZfR29Qi%dF0&Yg5b_4U!!EP+SqfFGv-9A$hG?HK@4NRPvkL1o zFMm|TMpxzslv(33DbqLE&^vD2PARF(g;k3w` z^J#?rXg>d`)%84${^tDWVY5G2>oi!qehE?C#n#rv!u7uI^h6Bpu!Pj81y5eF|M{Q9 za|r)K(dtuCxw&4%RWgKw?pWBB-&dR!DIhE$EcVgQ+>;yGn|ZqB{qybn@zYhAVjSc1 zb42QJ`*V}nnVQc%JHOGr*gZ}AnKCnMl!dyaSbw?(hE*=#4Q za-kwXpSSV*w~^a-uDZvzdTBU$cbf7S6oe1p**kL6JD$AA($^W$vG+?v_dbf^JWJ5jPsA|N0uddNREJ z%4w^{bvihmbxA}k{|RKKY;gtNCo}tqq$Asy=bs|=FA&oK>GJb z;ob-g$qDJ%Iq&d>|2nAVFMRIbM8vm=0I-Ie<0{6hIo;!MU>lq62Pppyv6d!`kgNnG z`_YnjKZkf`m-{{m`e)2|F+KB$i+Db5H*p#8A$0d5G~4u>!4RlV^|N2E?{){_%dYZ{oztWh zR4pgooC1MIGdpKU{@cB>E2NzaT7Pc(C7B~St9sBBcsEc@rJX=CQ3fi!Kyg=wQ-S2Zw6eTMZZ8QBvfGx=pv;SA?kJIej2zOP(uBht8bNPMOCI_ zt<;9AN;?l!g{85jD#tSvV8bWe1LI!Uti#&yjevRYct*3D9y4W{3KcQfT*lmWcH)7lBQNps-h)YXql3>5RD5R5j`$qvEJ7E z<7Rdcxn1{%=;4fz!wj7ySy;`K`UplLo2r4o-b1UFP2-fiBJT56OFjNa%%TMBy-BOC z%iN<<SYlo_!tA<1WLb=z&5sc&dp(~oN6wPX}JwwAvb{uP|vB_fR zYDZ#OY?OW?xZ3LyZmrvfsT#l?6b4CW`wwoj%Ln{Qn^ z%Gn$>+L8$Rcs|*;1Fb@gbM$6Oq*&lit9^K%@qt6pI(^g6$Vl?lzv878KC|xz&|<~C zsV}EM->|YP_2|i=RMk!KzIt-6t^;q;3U5#k1@D_}J#lSualfQRM2OPdD%Jo8t4zreL&ij*k#!xXGG;C-L%On+g7*3RqGUKZ z>3agEgoTPZ^FsmH1vPd!CRe0=Lpn$H2873}c$>X)u7zlUMuvBMBKHmX4BA{xglbV{ zQBwt%5w-K@KfD5DF$G0AImtX{jWGsRP_?OD5jaZmr0m3_bNYjx$V#hL$F*vbj9hy1 z{1ED>dMP7l?1$^8G}$0x3*}caH(O~(k^GSpIn$NQ2vH^PZOUV#HD1AHY{VjT%W1)B zOeGd$r0R45ok0-ckUalbmhXw>P}+*D7(OkJwlI>#Zlo zzk*+AuFZ?1m1Y_ig3=I-bygs`m{ZiVHMDM2{D*)K@@TE~j|@tVB&!wNZJlj7){=0W z$=}r_``qzQ(n4S~&Wx9PhDB*DFE*x8X4Kl#`SR?_CRHm~?+5&a=znSJY~N5&)=LCB zhQx{NA)bX4{WFaU6?xRz6;=fZgO;c^!?Fwjh?nUZY7Iy$tK&Can&z!Kj8e^30({h? z{ajBqMuQg$F1v?Z^~3d<3N8Xfp$}w`V$L?pOz}2Nb7jMJ4V3uj;(B2BjqNNKH>_DZ z=nAIg9-nJh1?8h$A~+Qs^76LSBZdUg&z)gnwi&<+(JQvb4D2_mhOz-mohR4v$mQA! zwqS&cSD9?-i|xyF4E&)d*NN5A>qbR-R}1=6|mZVNdeRJ3gHiujJGlZdHL>c$7@I zJSlu7`=BV`E=z5y@pYYqIoX?s0HE+3N*BDiszPNJ)VSim5C9sF&N7D6eBZVkWBA3Nwiuf@ZNrG=7= z$5kxh5Bd!5IUyYK>znPN_hox|5@z@pzbD3Yc0Gbji4XcOi31d>Eb?f8y+3y_ARRKU zhdG)^eM-wE8uY!&y09e~@u;L$;3+LTy(lL%dG^xv%yVb6S>oLzr$ZlB^Brc0e0pK8 z=p8C(3BAWF&3&>^B(g2@4Y*9P?5HLEkXl*_V<&g-v#5}DB5R$ue&yrf$nG5 z5AHBaitmXfaGjCMLF^WtTqz=aSwD(cZMd@13sT?!J-g98zge#Wn-mlHCTIopWqKdq zI>T_ggh}g#;pihe+o%R>eW?jwjk}N!%H0<_kQY09O(GHwc)&LLU=x@w3wrW3xj5T< z3?f@n7kVI)b75k5;0`JtGaI|Tqwp8m36kLxSt5CCdSSU4Gzxp4(HKl%>pNjeA`j?F zX?bzz_z}~2K~ga7A^Cj0lf35Z?N{>@-@OOOcso;71ltaJvZ33~{&1zhb*H#=F6&e$ zMGy2WwA`!o^nDZh)7TNlQdmej$fV87!aO*#AuxJB6x~_-oP>vQR)&Yi6`C~IS2qB^ z$R(^?on~2mZqvtdFCsLR0UOe(yD4%lQ%nWV){(@5oGcQ`BPJ!<`(;?-`o(}1L#BPu z8==$R%3M+}T=}je605?b%h|xS*=*XxOJEAOG%=`n-=XI!ycF4T*+>!aE8Og2&?0&i z7M`zVw}e5ax(0{q8y(Cy*^w)uUb80RpEBH7tPF~x92mNln2UVqzEr{+sfcs}$YhZ; zc;eEmTp*IkLc+ft0TF#IxY-1qV#|NSGiXJV-bG+lg>#}QEEA~{*ZZ?~xlOx-t98N) zYzT8QJ2p)cc43D@h8pt!vA-OoVSXp2Asw_kZ0@;`;5zK+`q8-}!^qbad8v~F`#vTZ z)5qx~k)a~IG$*D_HXi#vNJchFiAT+N5RFIHpP?!pdB_u)9U53Zgm#Pds~`XUeEjsT z5xPN!cpcv*6QN6$^q2J*ls05#BVRxfAM&O|&jB~W;$SoMkZX~c0Qvw#HbE+hXsv7K zlx=5rI&}_igOBMXjjwEWnQ#~pw7Q^VGmTJQRn`DrD~oSYHo9zhpNw1u@eL<@6psk< zg&e4KidWTUYF(x0JGyx1j{!y%VT%RndYMKS@X6R1!2y&>UDr-X+xCp4QOXDIIlKlV z(dGl$5hPRTu+yM+>6%?$A^x{UMm*Ub-md&8 z$3*to^c3$nSx8F@3zWy^R2|E&zlW09yL0#-BcoG7-`=4fo6>Ue7~=lQyt^oLx?+F| zO&7E-$l1Z^x!A^hu!Bl?<^I4eh<8cWE-22M)Jo z+H{>$f=BB#ofvkV@)w=Phu~qf5lb$Vzb+chE>k>HRdl76%1)oJFPewpo2Qbi#_;A> zx*z59n?hs*65@j?^3kY>sr@7!+@_lvWtu=OPRJrsDdr*Fq%Cmv1Je57scVL1-75M# zcFJz`S1QVrqABOTj9IF5dc-7My0DXG$DNRMQ<{}S@hw(w%8H9Ej)4njzoCF^{bWWj zXBSOn*Rw(c3`5(!HNrE23BX=alr?nndYemj^*vy&ZG>~T0{i?At})ffO-*E=IubeX z%A34{v^=bOet=oCVsSclb4sXs-i3Ox+Lc|vdUSwhoU*w398V@-RxnSkngpmJA3Ed@ zzkt{s#xNWFrmED)r_&^-)2ye{Y!(`z3Hd2H;=QEFxTJ#oA#ZuEp~NFv@F7y7ww`GF z)c~YbX?vdZhpG-<@NXJa&je^&MAEkej?2IN36Vg z`y8pFe5@las*Z~pya09{hSg&1MC*VWd`mkFz#X1qU7N?z1XS^+A;tQ_^=o{*icoF1 z4^l6(%^4!8vp>oeRrHVm<*-M6a`Nu)%OWI`gU`(x-^780ay!9&>gc%!lUu9NY}@Hm zOHqqLKjn>3T6A%8H_+`Tp9r`#D!C z-6^f9jq+tVT%JUHv&o9&6yrUCM_aRK&CRu)L9V#OQ3Ix?^Mph@MwrbmbnN4{)knl+n>kS0V3CU#GX zx@<=>kcQ9rM-$zqTqQed>C$Jj&SQBN8lX8l)x+e)npJ9K1tbnw3J&*ODqf7%x%`k{VA9hsEgh;5P?Lc<(>&2ta z<+GEeGem~b94f1rl5_W5Yus4#CU&cq+@0i4a}A8Mw33aalGEx~+l0^4S#vXoo;;OyD%I*OwyWF6t=Xpw<|naFrVAss?y*-1xt6sUHnr2XCGV$|@(%2|mxln$ zyB^b9-d_fK>Mp;bOw}(t^=ux`I7&DtgK6tWgd=GU?2nKiQ}_W&fqPt$7)C zGm~oh>&X^F!KOyf4)ybrKHLEA=A3QB8kDqr`L%@6`e#?}2F!JxytZO|x~7*^7Sp#k zSHm|H?|;wuOheSHBbE$jWqE`sx?x1GcNtUxLw&RFYRp(Rziw_lTzHHx77vScSVy#ND0sF-*g* z?w7T0jqD{%Qg_4Y&tXf_jrn0`vmF8ufTexhavoRn73 z#k?m?#H*xh*GG9fnU%Z9Wpme7YX$Z2^w@I}{9U1EGtrf!t4EjN<+C7jQvvIomdXoZ z0sBD;M`QolSYP=+NBnnc(;Bw&pvo{Oc*-mJ(w8q@&D!D2Cj59d*L~uLSGS~Z>UEmM9|VjgPgWkPrlNL;rkIBlWUHk> ztM}`R;2QZsy`1o8jSR$)w3XW{3=eCESC-xvsQ@ok!bkKlueyM%$kHcU4!5ef8xIAS zYK=FS9czmccFUFA>qY+J;j3T<`$iu{{t<_qF#F@*n*E_X5l8ZGW3PJ4XFAh8S|>2{ zKp5e^4m%GUIRh`5(!EHiXB3Aw*QZ+mrH>lpTUD=b{qsMMaIZ;9uc@?C&a}tbm|Gl$ zc^`ArrEwbq9!tV-G@Y4U(6=~4qiI8Nz;?*UO(=(TFx%xR`eaxMM~1rS7-a|((T}q{ z|MOb^i(dcB8UL#t|LYt7o4ijKqTpMQ{}o}t6$ncB6b9i?Qk$}>B4oXI)TeZ33YPD@ zP|q+|0@bv}uop5S;P(BM6 zWnMJWm3ZNgSc33-I(mVCClcTTE)#uQ5I`)T4d3o=rjTs!@U^v{?Bt{Se1ozp|2k~7 zxXO_GikfKd#jBP!M?W#Wl82X8q^`{*2#wF}%ri}P%R?~DL+Xps zOuo!5iPEIntj6w?h);NW6kw1BdT`b3Ss`fE?0Cv;V#Bj`QVgr{A;XU=$o4-Nig2vq zsV!CQBmSg=2oqS=M^~h{X~IZkg8Df%jChTQ4x%~#sU1uI8dxMSj(6i&H733;n-4|c ze$-A=xJ%1+5<>|!O=tFF+b!(DFNIeYS31*9FJn_n^)FmHJMmdLS}V*Din1!SgtJa7 ziDAstF!scoj>NCd4Ae9>w8nWV)2I?FN_ObOPuo>%7Q(iY9n}Aa8=^>Tt^B)6C|XA; zq1b!NV#RCBD6gzy9VvP*%EsRR>@VzU&R$|U2H;|3B{90wADY2{RQLzE2DTmd&!Wj= z_1S_Z1iZN*>7x=`$6WjMQ^#iC^2JEYmBePmuBKm2e`5E z!~U!5@Qb*ebq8@J^@6Jt;xvF$7+UnV0o*5j+8&+L8(f zRLe+8C_6(BLFU-WNZZJ|c^0NYHm!{Gq>VD8&d)7!CqkoF!{FFV0CnIe^NX^bQu(o& zb%Zo_c9TNX=a~T7kn71oQ(E-jLk6dux69L>*Q@xhPMjn+n!m>mgK4y{2~3cK`p+T7 zgg9uMHCB%}CkyhEI2-80^e&hF_vbISR7O|l!_r@Gbqkj>hjv=SG;T`{jw|A3!ZSVo zpu}m1nXUW2h9hnu3Icl>ZhXN+8qetW8B=jWFPgbqGjNIiK+zy8zdXY4Q83?u{K@n8! z{?w54L@sN+Gg<{F=qADE-sLXv-#F;AFg{P2aD3xh?J!Y&`XZ^fIYSXl2|3s-Bs}R= z3FKCE2e>*Uo$M{5sEPT7GV55QDVHd5HR}fwrfJ}}x6zlVSA}SiK)0r>cgO&oW1(b1>S9WnR}|&tS+c?@Nh$#t8KvbqP)c?3 z5uMX(oMKQzY9U@Rjhxq{9;!-8XUq|$!?=uD&wSF*COMUrm#oz?Gig3q3H=|hNt;~f zlwxpm1_Nx0A9{(AswnZ~8EoT{XP5D%LZxtet>dyeLu`-Px#SmIb#qt8=3g<|RmfDj z5NedrZ&i6sHR&x-#K3GYoO}$46M0u_CHthR9e%Ac_DJyat)+g>o2|Xvu4K`ME4J-RF^t5v$#z98$xQPerUh3xeT#n787A5Od`sC{dle*;O@Z z7V?h+LQ;d`D$!}^na~m%vABxyQlC6Cy{eH;T0@6uqPa~~zcM9y>(Jt$Hfq??JgO-K z)?m_aCC#vg(x*)2Dk|gp(zk3W<%LwOrUu7?8{QL{dmPP7WAr3PzpCS!4uLH&cIDgr z3ex&0g-BSp5T>aMv_~uDXfPWenJy}fI7?k$#Q5?gzC*(dF@;odGMYQqaTVqV)sq@z z*#W;3nO4bx3@`FpZ9H53Q_X!?3zf_#9=lvlCMaH2%Ee*YL36&|x)*4p^l8wW7^Lo@Z$7 zKxV7;S28xOvThoL`m9kP4{awTWDk^?P9{TJtD4G9uExCj8(}sj@W#y?^18HRDnom+ zJD~;~F>A0vkv_zA;mQkEAIGZ3wLoEk3-MqxvL{A37JObAm4#$1j!UwHom{MUU~^G@ zKR;j>;hIklvq*B$*>0J}nhx;Ob3&6nRT^zgECXEU4#yk}<)$r%Qv9N1p}Ek9Yw6F( zt&fb%IX8%Y=~)0W%W~7{Quekj#wE8@A4FYNP(_Wi*Wjkqt@)j+V`h1?gfbRoRU5eW z0u}~q^40e~v|XM(>U{NEWGFhUKzz5W^2>~_jlA}j8VO4i{>)K}BNQ_)LKjqL8kX{d9$^Ok)Fq9XiA)RRsd-d-joTN#7%x$Q1FS$%VRJ-Jy z%<#9#B)#y&MSc3;^C@GRt9yVgMAUz_E1ZV7F>b!o&OeEpTvrEa-yd*cKCLxl?X*cRwj^~hCV^1M%;vs^cN3$* zEH>g%Y-Gj>J{+x!R2@xcc^*6-;+C9$G=l%Yj8K$gISOTRf&$$poi_yM!JORZT|3&G zQme(b5i&N-*8=@*zy##Gy~n3rG@{i~sC;t3g zSvTOJM`EY}IW>lU&)<|w^`xUvR8<4NM~6&^un6OLq^AV-fTS1X$h+(vlN6T+ewLy_{jWK|MI z)`OlmIsb5ia$pnZ()SgoFESC9#&{(BI+9iOf0C2WlM5Ms9;~D*mz*W}G62Jjt!OH! zOAW@|3P@d!cJ)g9Uqy1sQ`%?ljq7Jfvk&vfO-u90Qg<;%Si;B^SqL#us;uT-6 zA=HOsNnWrrrSPoODCHcGs`qShK8n?OWmp9WmZqu+BdS6uuOQj7x@-Pry{1i>s!Cth zD1?Y>NGN$s>qkoSLJ$O#%`7JXM`||OhDjAg*gmB=Mv$rdWl!+-T|}M|m3pmGrrjFz zM6$gE9HHq)=r>eWlKRmVLh!jx2Hkat80AzNvEVDARf2qdApum@{TP@?=XmZPubs$4 zuxHW8MRIiSj3MO&4<)fx`!9*cMX(RaQcy_A%!;sQ<$p()hi#P07|Np;;o>VE@MKnn z1smmVzi*U`)6iR7&C1?C*b9l*vL;W{!c@<<61!b$I^o}MG|AChb7*9znOoy8zn~^J z3`6Z5CK!;X4Lz;UyGb8OskW+?2-1^+$ke!L9U=uKWq|bYe8D~+s5txcdMZj4;??nM zWK3b^lHU#KH0hzOrssEK8^OKC$cA4Z1f&tgyo4B%36yz7NbD3h2?!T&C9824VTOND z`+J|RjQf-N4XivgNYw`~wknJcLh>qzti8WKC`l*AKY~liDqjCk3X1==7|!_la+v1u z`TGCq4BES&Vv2V#st%#(Ux$G(9tfy%4E=ybgq6CZ_wJ7;(qtJ4;&mRxZcxPLdsu-5 ztwGXfFCvG2bvYm+U~&gUDBACv6bSxfiuW&)BeE*o7id~VWe6LJe$IsL>7!ySdMF6r zBPErpi5OL1XS|#&fsTM+`_WHa zYALSNgv8&nW>TV7lPY)40k-eO!n)WJ@z4wD{dk8=4pL(ek0S9p@Z*FmT4+2^^T`Ij zB~s_NlXRa4Nj6o4xRDu?mOVq!L)iuF8qQ;`Jz_~Frlt@9<1!u;rm>SD2b?g*pc$oH z(~Ref6TbShd~fAOqFKX2wrK2LHxjeNBJ?9xy#`4+Sn#Au({W)pYK7fl7vgVnQuq|q zvknzQxs$qOlnO8aKx|PFD;$|*(_aKAZw2QN__In^oPOr_!S8nq7Q(-jpy8Cku=fuw zAuE}XZ3bMu****zye67TNoGsmStaT7Jozh~Q|y)WA~fKd)i{-#11&yQ@c76Fn*7y# z?fqdQ1(wZM!jv?B!}f|Cg>gz>YaiyP~d8f zE4MVHbkmu$(5_AIgEc07*qRE^u207-N*73%2f?G8|) zBH)Yf4FqnAue1*QytWJ6(7h+nz#L?&u@A@9JyLG%Txz!W$$QgzIo9a8xT0M^4bvbVAO&cE7?P+}j@x}kHZoIbcwed_?~ z*96yopmg5-=FMTd|6+{QiP}@+{Y<+<(2LnQymal<>9c=PusZayROheOwZ||8R!vbo zPB)RYg^r}zF_g|J z4aq(^I968bLmRBk2p`|Zu;A@{GtnHnu4V#U;lU$ft@=V^jL|*h>(Ui+4BpaTdj-m# zFpzf4zy4(Qe~mF0+VSdmB(L$`@Hu9<*su4@Vg3W0JP=H4o48nF&8zp_gCSjCGPrj6 z^CwFe4z%8l_t_KxXPY9Kbc17Db6-ZBZKQYOwJt@$98ijDD7%rd=p+6V$I)dVZ_(b_ z=INZZm))Z^hP_cP&s^P}eTHJdwdy*;Q8un?3p&p1o@Z-vVdOQ?HW5TRA0hphEr;xJ z-??$#{T$<#W2>Q|wc$156x_>eZVi{&JDpP>B2WbvLW|tr2y$$5z2~(j(a9RcH(-hE z#J7&Z#NENPsA~(<*%3&>-h&||%2r{p`0`H!joDd&TEN}6ZLTxJT$dCc`3tT4_Zf6X z&RM-Fjg+FzEzx5ppO5N|>-EeP)1BrBCwnJ`1>P%Zb{BUxI%g0V-zn6UjY5z90~D>- zdLco}#@v*9(6i^2A~QHGEH39;oxL zSa{|G>ZkiS?F^dxGfaX0$=li);9tW5)`eZTXWn48SL=r6%$T`bH-7fZ=QjQgId-i; z9>;tLZ}XkAd)E%2%ju^_`nXA{`yZR?Gek7)+kY)hpywmt4Gh%#Zi+A)@B^0TpW&EEf!a5_NgVFLnme*Ejqlb z!4HM9v`Rs#9R8c?MjGbsODEPA?p~anHZCoGgvTD%6rt>4cAQW8S}y`G`^xpt{>m$U zzbt%mO3fXp!l^mkGQ$kk#ocl-Tz*=3=zA)IK>5C)gHQ@i58W`MCwDz7_XtAhh+GW| znFyO0kDz}`K{+o5T4kZHF6xO?PzR-+t1UJU&rZ~kwu+R2g`Q!Bt5%5YzT9b%hfg}C zZ92!M@+-j7X^x8$Gt{C6(^ur(`i!8oJhj@71Q^(X2AWkO<RR-CKtu9_`rkE-d(y%08wIKo|Hs_CCI< z&7~*JYH`J8pEC5|DWs3xdc|C~UoGSow>1~4PDXQgYFyivYVXsn_@TzWo+U(QLneyn7qUnX~ z?v<#QVeU7U$OWBF*%q5ZoqovS4We{X%!rn-iube9k9}2!HcIq}O!Hf@DQ}HovkY-8 zbs`!I3(PQmE4B@IF>yKxLc@lSeNCSX7x2tTa~sjeDi5MtwKgrWWwtP~w*qi*xEp%< zuwptipJeiAW|M32dqSfQk4K4v+yj4|rtz#e5QN2Jm)YcFI89qxu$fz8ttGf%K&f}DqCDHwd@04y&$dfyRm~jBL!wKbECB~Q=nbe zDZI_hlRLRm)t;leF%vCevii>Q)+D8YtO8Wtad9V+AthP-kdA2BfnZUl&&3u7XQ|bm z(W+dz?V)*PoHEcT8D#tF^yiVcQYPk@?kM7Z@~;W^!=_r{sfI1lKU)hMpnXR@0aO!$ zRNRs9*14XLhR&G&9xdjr77h-taa)#=U7o3rVYK#ZcB|Mp!0XcGuc;5A~CWQ z%giWKUB@DG<;&t|V2s>A>p6deOCisLh+#5wJwhVV@|ntu?9=oSCjNYS8i%f%xvj^G zb5qWuqZ(B>_m%{9Nkx~K+gd{FO=Cx?S;XqK#GQ>Nu8i9iatr8)p_ZSgh_tu{L)zOw zM}bvXn@WZ)MObl4C!2UBnYkwmWmZsk6dWeWFXQC`?b}qn2OZc{nkva*r|E4eE#<)z7CGmhmGzoh_*7H2rgUTSU$os* zaAjZIF6#crPCDuiJGMHuZCf4Nwy|Q{wryj@wrx9EC%e9VPMxZKy|3rhsG2ovjxm1k z^H#ZI<%v*M1V0yYx@N8!dl#5i{A~431w`VxRTrFSUBlJ9oytS!)ouVXK1cl{)8ftn zo|w>uxaG#5YO!n_mUb4Ve?aT^5LlYx!_&O)Y34hy*r_7 zSI5kQO|myB;tOHpZQ3Fi&l-OuHVgiCHd71Ql8pN1i~Ci*3Vu}_0c_( zF@yAI^H{BS)NF#)Fp9-#)1c&CJ8Qvoi}ebtXlW1qAh(NnHLrp3!5{N%doO8mZZECi z4SzI1Y-zs^DS}<~YXhl!>;V1EQ)8CG?8iH5j8annsa5*Cb@WEaUlKQMScXNE)v1k` z6~UA%w??m}REvgHcvDzBkOgi-M^jgUaV2 zzuAJppyK~K&5kOD2HGL|qrlMY3|mit*>aCui4MK64nG1q05B;!mAwKgDEg7^Gp~_} zr}qEEEzXOeOF=*29dJjYE+DLN$80x-muDau$sC7+V{_beAvAToKa9S+7y^~y{k2_3 zOEbctGUn3jqM8w+xJTk~$LcR29BD=z_{|?n>M|^cNvLdcBC8IRWVIKN3$6M)F8tfH z8@s4ooW_S8w1IXXsEQ- zH22u_#qc#QF#bD7qT1~knIiKFaikqhpt7hspMi(Y#E+^(F+loR=+kDD9 z2)vq!-g&1X<{mA3wc-4U)VdGG|BIxVMVy?vsg8}V~`qv_~N%#z5x#XPySUh!<`z9YDrabF5eD8u$AHOG?qYz&;o5gkUz}wD~qAecSf&1hM(1&+t%HxLUf6%W#p+z z2P$RzqP9pPycN<56w7+-u=Fjv=Hj>^`j#>pisy`JfwVJwcdWx4nG@+*z2INcBD%zD z5eLVJ!@Tv%`)T$h!Xv zkd290+5;0P&NE5F0CA<^lMVk5wrlAIVb%I#2{R+6v@#n0buz44bX$V0sQO_2Eu|2z zoF+PsJp^8i76__EXdR8A8~x7+aazuMLejN|xLhYtc4tB9j8e8%Rl zwRdZs#$<|S-_~lq*2Y4z*zp-7`Fq1kA$y>swo|sXTsT^ck=c6Ggb+`+n^IYU-x`@t z4K2pAZ!4|6mEFYYRSCs&L27d_Tz%HZS#&6wfv#G5OQsduHDha)_$KK#J9K4EJD+Ll z0}V04EtPEe5Ex=0O)*@tGOrPuZIKKlf%=rtF>3+ypsQbFp~>t9sHYb z3AL^O(Y_?0nx{(b3;caYX@3rEz>xFZ>*w&l(Z!Fd?(p9`|1^(sycJ5enExQ(^y8@#rRqNt@v6uSjRb z&y*#9xjJT$M}Jst9q~NoF-=7O8MT3L=4EpgJ({wqJoTReTe&C?V6_m?TXMA0(rVt? zV;j9m)3*C2KYe##n~sKQS|UuNQxUC9=pSq^PTi$)+sKwWwuTKrdNcbYJ6fFfBipw> z7@xzx<_%h2O~M1iT-H$W$Ikgz!=&QISw6Et!wo1V^uQ8AIFxn>qy;A6jzADB2GPgz z^mp0?3FoWef2Un+4pwIOM`BR&1S-(#^s0g>Ri@$t{|l_v?{oSG^Q3q*kpgZ!97M@r zDxD3+QA?o7j1s{w7HStJp>*6^!q9=s16VklHRd$`N|b1@T+XKR?(b}4QtwMLM`mR< zM?KJLwLhF1T3I5IY_d3H4%VDEm#G)Xd&2cn%Ec{ILHm_7z)ZfH#^ido=LfH<36e%VGp5P#FhG9pjnUhz0KKF=0M!p z2nRB6%m`5wbW-p_U^lA>$OO$3h%#dEHBOJATVHQ}_5mvWBF;!sR|1B#jZ@8lT zD}*D%KxnKPFF~%8a3@DmRyj8w_#{Z%J$h6Cy06>xasULfpe4qYORRIt&M~5Wh*iMu zCPXTIbc0dP@`zo`)A1{@O#cxOAz8>pjR*<{zC*xANzrorHt4}eW^Pa$Vle)fmaF~o zFr|52crV-QK!q`&w65r^xvGvamWM*DIX#|S%XG=BA%{Q>)JR)Qnv|j(dYEwjiOb4G zETPq`o%{8DRb;vvu|(@z`uK~^x3b7ViwyBma;bEDjjnae=k0<5P-$68|3_H!)&^}g^38RU9B-9<~ptWPLcm9 z_`AQ`&tb)ch;M+4z6(z<&9+C)X4Uu>V#KaJT8?^7Rg+^n zW6LK&dZ>g~jr!qMlWxQWo2G$BO#0`!5v?vx}LUbA|kICS{Qv3 zz)9UsCR?h}s;hWs25zKzq0KI18l@0-#BJ(67tVq~g~*Ote-L|>Bvr=~=eGV&d0j#=_@I!c}C$X7;VS=o)CUple)X6pbk$kL5y!UjbmNLcLuUGc4ynZdDNx;xw`YdEB z0+}$%gjD5~T;?JXycoCv@%fnD@&IOd%Q#Gv%Bm@ViS|Bq{%;etT7Sn#VipU&GgsBd zagnOvq-3qbqYk712N3mRT|NLmJmCq_xCU*mfR=+3=n1K8Im&fGi3ZP*Snn)kqZ2JX z-y)T5VH_cvU) zmUtklD1ALA{n%2IE+9E$2bQTmx{$P4I)9Ik4QONwB#UDMC*)$WSZ|oU83zWI!)1*b>{NQBYlc4Vs{f&u^GHyvlZPaL```Z{4G)E z|EGVh5k*#t19WMmf|tI0wlNn$h@?i~h$D6`_8xCpwv)je`?8EL_%KCRS^qBJwHJoWQ3Mm0A*fnCan`H&ym`&Y zLw8~Fq~hYCS+Qbd^jC7e`)&NcJ>zDYltM$ghrFLvnyRe#S$g+HJd_Yh3hpctF`}p} zj+xBC-PQk0W@~D=ISxw`=EJ_4$?gdE7MwwHC;E2!&$iQ zItvx5sIA3cnL`!*Rxb0=%#}5enq=`Yhz>nbt`cBs5ge9rd{z)Vr(rj#yA`gX#N1q*KDD&=;xb-C~Gv7m77-q)U{ zlikkjmPWQ5X&PmdKftD-ooSYGB{Zj6Ic2 zjsuFe!dY)$y=}^WU&^u`Z^>S$N#X9<*1bqab@NgHWTDZV|hX?m{~s;{E5pMGM$i|joAKWaXoeU3xNF2?|# z?$uagrKaDGWCcHaEDW34!f~SZ8pkXepvM|(?d!eUvC-c*6d&j`YtQh0^*2yU=TGaA5lm+?&1p8MKI7zu#&jKoR*SSHV z9t8ntMH%_!qj2!t1Lbu712o?tT4I=fK|8vz;5|;i-tU-n!>W_Az^-EVNxb(tiK0rom!0C`MEu3lnCiPExROFevH9}zd_~X zRM?yo|6v`h50)wQ@uLrhyaaQuu*Ntta1@k8&*e=SF#mS^d!5nmY0)ZOQ7TN>+P+$e zOVaxs$o0T9AOt7k&%qyF+SwN;#DB&|=kaIyzPK1jLJLn6J5Y%~NXbJ;^Vd2UAtVUPV!aTH#>@ipW)_l7 zhQ#H+6ot`uTZj8EI=sCW=&?EF*yG3-gwA03JBRbJ1^H0+aJ?t7LM1m77c zh*8?3!F;hVqEmS zW9U8Csxge{LA0$%hlHBal%b*`pw< zFgSh;l%#$Q?Iv|r$1B)pTB+i+mhf-UZ0 zW+9>SB9lr-sKX1afB-=#iAw%{p8cmF&3v19w4r=k!2|=sbk2qxY#~F4mvG>EeyEmY z(S0Kx5DmdXa)D;bmtqhg%)oDyjmjb$3NtM0RN0+AaNWU>@n0?|^q{BHAx@II`;Bqv z7;MJEFi);mD)PbV3$Gka5U;ZGsqYI&hS zVtI(?{KRPhGSM`Tj{IM=xs3Z?kJ^1aRq%kY91VsXkG4vZt^&88qX`fFlz?C0>5CMX zG#Q*?>FQ7m6PQPxl0q~p3d%`|yFx4*iayH}jZ0&si084NJI01hZRZXn1;RqEzXL&_vpuBm}Wg0j=6|7an+%}lRsdAYX$rCGkV}fYy zR=dgel^2|rhq-4SzJ&ndMbxH0XbT*MN{a-rXv&2QIOp7;$<;=UsIsp&F6J(Jvo%sL zyhxKpVWMD3FKso)atT8o^+XYM!KN@2%5b5fs3MejheRc9$70Dn5(;T95senr^>Nxt z-qh69&VNf_&OLezEBud&XhQiA7py`MOP4>> z8*4!Sogeg9uh@?Gl>f+PWgEA+-w09=jkq(EO7ln5B8$gpsNzncq? z0D>}@rJ^vjTtNW;=2Fq-f{xC2@?~>zb3SWxJxT|(O}n|uqJuOO==(!$G%MbYX2HR` zv+X@22vSiPpxZg5O;`m?^HS@^1LIJK0^I1{KyH7BbFM$P00epuwA*)h+czwFcRbtA zGTXPGTaQ)SuNZpw!P_6+dQVN;mVO(zaLAs8FwYGm#nwE>Jbg@(8ix{UE{8A`kovIM z`f%0yf`Tf>BKn67T72G`lTljqMY>Kbt0{Sa45C5(^wxq~P%%Mf6^CB~0k%e6jIP zG6t&?;2+YL0;KGYEUutuq&_8`A=8o85uQ82gz{(du8M$uXOmWh+0GeH5n*Qh zJ(nTxmEnJjbIdM1NFm%%M>|M$`y5wFC&61>ysCc_CX9z*__B>8d9yu&R+TOd<`j&I zX$^$94%)l+&Z2Zjr1zzp!z5*mRdgfdSme99v=dnlM2`&E$zqVI_XVyFgsV52Ck?~Z zjrEI-99UMlhYyn5KSz`(9ZZ%HVoV6P!bm=I<&QC4( zXS%KhnSE%))Pcd#u|bxp*wv{WFQsGmVW#d0NAh7At3}kPSuy^3quX&rvzZd_F?g4S zu8kR&&3P!2u_x4VQ}P)U$#US7NhCXT_mySOmt`-KRUf`pKb_S8uhrnyxv$&tAl=0f zomELSjK&E}LX%nI)p14fdeW1L@t1iP@2Pe5nT?4$=8~3N(uJVZyzUcM+6ig$X`~ec| zUGJ$X(r}c%?Re4tx~e5H(q&b(bzZZz@zh?JkF~EEzr~kzE!j?Las-s`^(X#SNweKa z^G)a04fOK9RrU?S^W_AuokHa0B;Dx^*^PR$DeCog+tbYo%IQJKDQpR19F)Oc$Stx$ z8dQzF#g_G{^*QRab*oRrw26Akr_~MA<(=70#}`Zlo&I_ADK;`XmC1KN=1x5MrX}@e zbJ&W(^c*OA()wb-bbSGm(=~JNzKN!|rYwn|>VauIx^4|~jGp0O3x(%AwmY@Cj3ZcZ zgmPGAz0YK|*OImW1+tiV3Kf2_=E`vdkGgwTO(HKzM&awhS#}(czP7Kj0MXq}$lepu zJ0ufYOtCsMj@Y1?s`JL&u*qGk^*BcO+#QGP6b0*ZnBG5L-8^;Q`<6Pzh=Zy2To{u* zTI1h_HmA3XIQ`W#S#5UY`VRiuI^vetMg4H$+;)6VjxdjbxBg|%dko_s?s%i?EOdNm z47&T0b+}-CBn3H$q(Hnz$KU>V`tLC;uGW>}*##;5>5UcHq8j|)^+g%}y{6~`zuujq zuce5d>$;7L9-A>J=Etz@wre;vx-YqYlY)b4Uxe3GzJy z=&GsMMJ4XRsQks9kA&;m0$s}9XDKXBjX_1vP1)5x82VZH_9Z<9HQhI&Fa=eA11jmy zE0d{a*7a*%$wngbo3g8`iQFsf4_Nn-u<8_uI#5_mO<4U%SanNSO^#pVHA?d{jJxeS zAojfh6xxjJ`TeMF8>WrTQ^M}e_XIM#$HP#!ri#rW>G*6AC~ zjJACE_I^zGdPT;1jplfb^@MT1c#YJ2M8bFjZa#q9AEU^hbITtidY`_d;EOpQtEQi; zC7-h;pP=RAkH}oFg_f|{ny}4juZe5#$q}zsl^GcasA;2KhLUKO}v3 z27N&weVESZ_XWcJVzf%N+Z_l&ApUMy|Cu)!hDk4YaPo71Fai?#ZT&<(Z#asKuYTer z-dHe+mMb8W@@7Xoj??mvBs}357%ON#rOmNGrVuU4H@sl(P^MT)?n~zUQcE%y`>jJ% zQL_^=RCyMvu2z>gM=qDPBz|8)@|6b3n6J{WdX~tX7aBi+XOn zoGj6x*X8MOJ>RLX0DR$fu$t_PyHA@`e{ejUBoqxeRj0f?F3-M$O=n_z8lBhn*^=9S zwY=P)Emz1*e|Z}KH%qodZ1vjS-=3fEkLh`P+*@CeI3Z-)G zvHBul3WMQzrUVnIgd>Y15{da-{!|Ws;BXKlL!W>cWE^UzQf%2w(6%mjFy-SmTf(-R z%;tELrGPakkqo^8RYst|M2U<@eet{BCJU2HGX9{DClGs=?%}klX1iJ+5ei?N)mSG$ z92vB^W>mL7;vI*L!OcXw3=Trl=bcf{JMxubHgw^@u0Nd@fc}*&?Utt$2!JFL^=>D= zTyIPZ*vxu37tE(HthvyR#g$u6XP#6J(cg_|ZY_{fD}Dc?z61tM?A0|>f04|ptO^<% zd)903oS&~?(_rtgO>3YhPZS3gatClr{lcy5?(xlAIW)o%$fsb|m7Mu3(f2hlf0pyR zY=TI3g$EOvV#hFHR|H&XVK<5)4Uhe%`JkK*WK zj}0V*d)O6ZOdr%R%pqjn5u(2hI`AVcQa<4GExnfuU{{quQ6R)T$_oO)u+95J`H#h? z!bFiHyQ&szD8(|npXR_@48NvYz<+yG!D!XLeg(jC5FF=_>pbrWa;687=fZs666Z$} zg`j5Ox2>89DnF^77Jkygm3hL^rlY9G8&FZ@8mwxZ@SFK?o|We#9qm*=(t^@0LaG0b zomHKmnjKe?Sp&{%*w;=8YM}5eh-*iw#L?AVd|ZtyOKy{7QcgY_$Yr4^=Vvs7b>3n) zToHr*C4ltRxA@bA(bRN?l@F{1E@e3`v&U?TjHOudJ?GjeyAx$QVWQx-_&=^(Pnn#G{&L1+V)+?Sgp~-V;QpMz@d*rf4Zi)C%nD zpA$4=%wOvLn`~ZajRWgac@l$dD|3)f>V`)f)TG8ovxVd6#7LvbKWX#me0_7P>-wkT zAS+RFKq=Mi(P%aWDZqeoRnmh_5Tp8T;wmNFfX-zFj=`sL`GD`@bxoaTethOEX#42| ziApji*oj8+z_+URe`97h4~AuduKU)Sz=Jq!YtJ|m{i`6Dlw=fEfnor&7($<}F%KS+ zaiFVAK7{3ha0}!R7LRv_qRVUaXN!il|H1i+ zHCVFM48?aPCKBquee^yz6lS=fC_4Xr{v`^OzaE28^tVI;HxwwmQxNvI6@h<1f5oZ0 z3uB?<3A1+NR_PQ^Il%1~Sk>d1A|o3D1j_o8QIUBa6fD@Re7s$9PUNk7kC|3;a0ytsWB_uM>|w4dPw@hBbd!Rm z6Pbc{dTf0(RRoVQb$$7&NZZnNIRSTtj_2`G*IZRi*xWf3Bo|e$L2Rur6^X7`n7TBU zY5QG3${OfC= zwWsFR$^R|XKehCJ@>AjNuQ6jR6PLhLJNz%9p7Xhx@&>@g^J~5gWw&i*vf8EYTrJ4x zU-LR*joV1Zy0Y?Y= zAJ|9$29l`_;LBaB#&z}5P_GSo2L@u&+|<#A-2}01Y>}$B`XOVAhj2*m-O_yrU_|u| zwQe90Q(lHvcXi(E* zG#62O8%n8ephEWUl2Ce^C(XXk5~1Z|YhPT*7G(*gk2(dZB$5{MHdV4opKG!$__akp zR+DNUa=pLhW-L*>K44w^+g4v3HenGjsk(TOc_e9DYHGmPI5+&`;Jb?X)C^j;#s?Pm zvX__QjHFpx$E^1pCO3;mw5w|4bWH5|uz3S7tr?bUHm{bRy4)H_x}9qdwuWWhhGh`$RQNRKDL`%P!(w#00JV)g@;ymtOVpna6tZ4Tr#x;e4LbeREmdcZz_(3bg6Fm@ubv?qK30>jr##c@ z>lRP2Zn3Rta4zGy9~St5;4%rX1hx%hV#`M`w)fTe2T{|@k7=88)~K`}KZ zUA6*W@p}K|({t!G<*N0v>_r0;ghAoMpl(WRMjB}3wI=2dO7esk*UkOq?(rPB=Nf$I z>PQgk2(`>r8H{3+X!*m{h*n)o$<43F)YqKdSM7K3Txf_*s}|-<2)LWp!g5g2vdUO7 zdxvr$1*WIdk`309w|tnNiCM78ONa$~@JT4R@VE0G`#T(x-6wq1KSVwJyd+TAEj(RZ z%M;3&&&0yE*~H0|XI>;QVc5X07(f^r3{x5yX%=2b;nSw(R}u@h5ewO#3OSM+@jqrg zWUCf-n16C>pyjCVEM}PRZ)@!^zPy#lk`&0^k$|w#kkBw6saPoMLDwiL84+d`c z1VZ)(aswq2iXtfGMcZt}uY%PjkHYN|Tr|MUxB$jw!_^OKC0e~SWaNLSdj9Bb7%*o3 z=mYgwsIpj%Sg`)EsK!yxtg!GAbuC60rwTXITSr;Y&X3&IU{*KV1@$=8G~Y$HxOP{# z(%x7&iRiu5*zMF<=CWAXSV$?*jz2a zR+MEZKJm81xsy;Ivp|;SWb@V-#nZshla!iL&$69(IE`4yvZSpO2$ncx+mMYrFoZyU5xrqg@RM+M{80h zz)64~!6fARrLwlAZvT$fkcX{rjrlkM{74H^b_bI-N%0$vBz{HCD?^cZAz%CsJ+wuB z7i!Qxr4MqX9*#uION9D>#=I$S;yX?=pk6a}UyuP<(Whw{+b=o*x44bh6vfws)suhO zWez!5DT_Z;?v)T1-2*FAWAenKs$jFnU?Rw{QsLE8^(8WN!!x4YV;jx0w|*!0yy_r$ zkz$~(eDMKtmVn|{0cVDx3)pO7^d`fnb zeo-ZKzGe`}7mA#vcAH1ar>iHIkL8ZLr>J5_xsMslyyo127l38<|*i0^}RCdk^&hkvbvcw#XT(UE>9yo-jB^9CK$g*)#)qb52>13>)_okP0u*$a#Jyu#%Cw$=ad;9?+_<6=z!3I!PH7=h2w^TCwsYSJau)W1-qS zBe4~`1?|1g^R$KYy@?nA{tM8q$KUD0m2n}F;SLWcvsNNI-dR3o)Ys8U&KW~J-r)hm zV-A9E!=>(whEJh@vrn|>T;eK{_sl!t=sL%#sEjR9goiuD>DlHiGKi?a$El3200>a$ z_S)6GvY=SQSN2JD_u|w%NAyf^WsG^|mC1K50gIueG7v9%eL8yX#(VfY(*+_B7a4kK zNZYUl8+9$Res*-hYFA@b_R&YcSz|X+HEpsF{a)i#TiJ{AmQBdy??af$=*HDZ$5UrwuL2}r*l3mTI*Bri}k!FIoM(uf ziJ(b4j{rwGE53N`B)FNO{;b{nNQ3ZRw5Xcj_&~OX2S!WwGx02^PRv4jFL7fn<#-`* zNOaOjEG$$mn{7_Mb}ofhE!jm46I<2o<94$mwslo3Oi9mZ@)QMs(_WVl6xPu+)R9W# za3!&D8C63hGAqa#3+9`181Ff8c%#+QY*kjXn;ms{n@g2h)1+yuPmxUlmk_jm{|l@y z$%U@Wg_iPzE2;vP>Z~+nuH?XGvFS|2(#~@xRGVHD`F`Xe#jccts+N*BHzt?kdt@?b zXCe?~7HCnXODFqi{8lQf7PR0-A1+rE3J?IAn?|_ZAcnfo&rJ*ORUhCwd2R8b_f9E1 z7#hu1-^9|bPPLiTw%p~~QWniH$|`f$W~0txBJFG-#TGeA0}SsT4Y0FQX2*xCwsmv% ztaIK=d(irw7T*x*m+bD*Mz!h2CUy5d9?}p2QUe6nUXRWmIMU?R<~}#lE>83qHPt?> zA%XxwFDPv{F(Z-oYVHT!jv~#TAn&B`*ZzCP!VjeMU9Mi{&6TK6K{=$uM(bJS?0&t- z#jmJtKDr=}Sjf}Q^(@2)t(r_Uv0-KTq~>yMRcA0f`|MkDV9q{MK)Po2IXb!6;h{UyM4I!6g#+epbhIK+ z?wme-wX5;YNFr|b!Y>EOZu(oz(clR23r%b!dYCHIi*QYH|MB=|7U$5<0ooSc9aDZl` za^9j5UT^S@6X-UnpZ|TmGcu!So-X?i!wPFrAUAyar=-&tk9PWv4BBE+lWJ!pWY!3N|$g7A(?de$DI@7NH54&L+h%ug+R zl=IV9Gd54l^q0=`C*_}?JHAW9*Sq}4D4=peAtQ?DLhybG2G5J{xCt7US`9QqWkWgwm-}I)fvAk=F8+PN#@{Q}B7> z=^Q2qRkZ?Y;zlDWke?U5jOM~{G>(!AsJWUaSq6cONq6$&XujJ@1URX+#tc1Q=6QuU z+3dWL9Pm@NNOOG)WB}AAy*`?Za}WyCn6;>mN+Z=isM?)U+1z-&&y!f^#L$^9mg-YQ zw3G{XzF6AY9a5Um(b(O&KL&k5df~C|U{2&sZ-=*+c)vdcOXkouQ0iTT;Z&FRcQzp8 z-=c2NQiu6<(9o_aQ%y9?#(GY7z1;N6kt5yhj}6QNz!XXmy{UdS{d@+TH(>lXcvbly z8slj12CmYLXe|Y`Tri>v7?-Z{T@R3q&A2Gcajzq;3UC|DDuHDwjjEYAlc3?|MUARrcK3# z6(K}Dfk#XQa#V;!odgu_5s3^pfVP6}8;H`BttIn0nE^^9zMOH>Typx8~8!c|FB&?Jpt{5@!4=t#={*ZP)^n59Z?L7wmMMjbuy>}E_c2JeXuh39}?JVS8( zZn4p*u#OwY()eL1uJkURwdsS{LA<9NNI7nnM3O8aw+-3U?RM_1rjE29oTBR`u_+<) zR1E*S{7)HUM4>hCK3M_JIEk63e5t*W^1L!DLH%Px1$Dvb9sOy{I3p=VF826yenUz@ zGzn65+Hr9v2tzkj+D@#0$v8+y%2{8TDRFK!Rw439!}t24^#o;evqdjb2IHmc%fv!M zTYR=21ifKnDqCw}6)F@#+O0dk%Ey_-VsG9cB-*hWS*Cq=LcCA5b`i6?xZIr(y1;mt z0riCcwHxoYxf-cZFr;N9V4?_W~)FFkJ&n~sy{Yr3X`JQfu$>voWL`Y}zz zJD0r?#B|lo?G6X``XFQig^E;?r9}7Ct1-5d5l@ciy#Z4Rw_ff&#+svCh7qG}1Z}Xy z(}mG9=eIR%;w?~(xQHRHS5e`_e3V@Ev08A>yY+k^llXD}9>3|f@4ZXjeKjidb$>ge zK>ARw4Xe1xc&>B(7ZLndp<)W>>MQc^$bBtO+>-{MzfwK}1!`k!BU}aclJ0+`{%l-4 zfw*Q*E8WZcWq}3@^&pK9JFrNE|7;<-YG~yR?B3vqHtx_jZY`CG&hg#_*?0?rCEb2Q zti5=(VxtfM0lhIclpy#h+S*{P z1GtRdjck9nw@$FA*%sOUeXwNcZ~E{!%hegGK9g*$ZHB}}G}fC)X`q4$?WJLs=s z0#BhfE>rVp(`&Sk09PF3;bHfOG*HknXdJ8pY!YAO)(&_f$z+Q$>e?L{yWN0C#1cL% ztU8x+-=R;suhwUCb{BevRkONP4Iv$7>2O(Ef0zp-(UHR0$jtZx_sCh8 zZ9+CaSKg_?g?bp}imXRX)u!BLYj?>DOC%`ixx!>(YOU(-NGe4CXeIb^Q#t$b;|rq- zEp?q=`jWREb5ig1Uq3k85Db*8O9U@1v(0-4qLV7ewTtD)uqP{oQ#9Kq`-w%UMN5(s z%cW`YRkYqlx1y<{z47))Av>7Xf`^H!`U~VNA++9;$q7GetshKqFxaBxQ#VO%?INUR zm=xm!PehI-1x#lWsaE1U3O00?;KPJ(us?&6>1uh#=8%&ha=8) zch!X<|FmS78sbF!N39mrf0+U7xG|->kU;muhyb04d4HzpDS|EHLVytL-D%F6An==L zd1TLG)GpS+)R6l35a{1rV0RfUlz=-t^mdl*+~Xb&B{LA27e8K13@L=f67%T(RB2(6 zF=?=`Dq6c{I{c%0P948FwJ|rf5UuoJYWRsz>1vn`+!0jq;tFC0$gT$n^pMO?Gu8W= zp6_ClN{U5TTdBf8@}LpP>-$fkDlOe2vo+UMUlZr}lV|A$j5`6-3z{T;P3&lG+m7=z z?>q5E^@7tO`M1P7s%pb1^RY6mj)*oRPns8&T%&BSE_iZ8zz!BRvXJZK5@Y``tQ7Hzr4``5Nfb zaXI1U{DIuEM80hBG+H)NPj|~11!ZP+k(0Ma9(}9YE%rRT##x8BLz4e7!xe>(RNQo| za?Lras!s`W_jpaw;c{`uc|Z9=u#Xa(_KkXXMq|`GI9M{bN3BE6>&CElbzq(ZPIlUO zHL1*VlDqfnX0^*>QWrEa+#*JJ*+hCAc%+ zS2&~!_1(uqTLP4dxEz+iUh>Ihm7jO(U}tM(@L~c`_;o|D+mb>fTFWdMlt+%L^l}2!|Ww0NwL_-M0y!w@S>D zwMArBaPqU)v#0cbm(g)ekMrUKn=@W|Vm)~`;1LQW`N$=^{R;TdG8-uK8%*w_$HBXi z(b+jFU?zy`O*JE6AF^W;TADL@)f^lBEDFx0szLVDy|av*iv?veYk%1n2yf$hWjeZ= zwb;w3+p@}O%>%NZf&I@NHRpK<=Yj%N>zwG392OmL85uBl;5^KkT})P7?(@ym9bCy& z?V$-=9RMLM;(kW0-hBWI!#oRL8Yka|@Ne9K)d6O}3PaFs24uY;wv zA9Ha^2Eqdd0$GAWzqtqg%rl3~v#L}7abzlkuIvE1vvZ*1FIDi~1qemKa*}C;d^vJy zWQs_0cY-8YAH#@5y*PFpg;*j@eO8>Vf8b44Zw+b z341B!(b8n1lJucjHH$GfQD>$f2sN*!^+q-F|I%*dMTk7VAAY3bghJ<>)+}^r7XWCF z7CQ2DaDgpx+^Rrzy_?*qbqv>F`1857`+ zhh+o2M(GZ2l^61C%nPT< z_h=#rowx%>6UGdfLk$*0Xb^ZsUt5yAm?~GK8xona4f?9QN*tI4u@c9pBSecLnSWc3 z?lMk@D~a2V59cMaXe+TT=m%@m4u1b2_H|^2FCh&4%zzn<5A!7!HTDZ_5(b_i0Fg7( zT!kg_=A`$v>YJSqmg@wamBkn~#(mjGq#neX8^@V4A$iorb?+Iw`s)ia2}ItxIvf7} zhbw8VjXAt3F%u}TVL7bf)IXvaQKe0gN<7)D%}4_=O!v?pygCA05KJ8W26U30I`d<- z3HG@ArI_XR1_ufKSTw;Ja2vSn6B^smT6(B@0ZJkY5X4CTAcq#l;06Z+oF-rq27IK& zKx6$UneuL7+;tl*Ef1KYR`NLhV#J^PB1Tfx;=BbkI(X#rFamnPJ(H0wA0$NhvP@P`|`rU_LvsjJFk#s7cI6YY+p#M1sLSc`(7% zrR23g#UDI(fjtOJfVsyVW$RMtXdJYBf##V32kiWaIEgh&43h|K3g3~FyE9_Jxt9Zkm1Io@Po6^OO=JM<3>No*Tsh@{kIk zRwgw+v^N;ZkG$}=aF3a0G#g+GFEtL1bSkh}FRW$+TgHMbzd$R)EZdW+InplMV=RY@ zFGo#nqfx)SR=_ToBdlyVP8w)I5il9TAra{T6gK#c5_$q=cK;MM4%DldcZn zCWXf!qxi(or9=yvK-0J}-dQLQr2VOHkyOr$0-yxcBbH)G*DH?W;;cA zl9pJ6Wt3sTe3aQecgp7C!qDX_Cismxeob4^4I&cV?cfCgHi(Q0gs2*MK^K?= zuLw1PV20?m;jXmi@SoeRBD3jbHA!2Fpk5F5tfK3zEsligE`2+jqO=7Nf1>S8(Wj=A zIA1`o^pPVMmx!dUr>hvBA=x~n)Sevz?{=+TivQFw&^uS%s$r0tCE1+TU2kL1M$|L7 z1g*kw7(j0o$$3GMLVbfFT6`gh+E**_F`IljlB0D%{(6zq~D^cOCAa)OGB`fKtgjY9e z@bAej7ib_i%~Z0pLlcTKD5IAA2$WD?rCX9m{;;VD$_g^2&e6VY=X4q12kX%?YEr*# z2@Cv%CEfVCza>mMC0t{GAs|Y_VT2T_37cvpHN5&E7x)8*%gsf1WM=Z4tA5YxxLL;v zBp*OTxNxphVDY+JcdPMf(6|bARHS=X?0y@m+X$exdnUW#tYVapzNzDDAcSCoHDvl7 zLI0XvGf>rN)^!&F^49_~#?p$!l#ArKfR6vRfzkwg@KFP~Y`_`r;n(OwidT3|6`C7y zPXgCyy3F*j%*Fm*tfnnV+bI0dCKkIRGElRnf@v<3LHAn zm06HzA37w{3gXf$j*#hd8tuhW^aUNV7GGSdk)F{ZNc z(leRcg9Pq_QGK_tHV%I6o9oJHTGs4&OZ*j-F!NWl0IEP3?A9?z#Y)VM*WLrv2;f@p zJq9+g{J93fJ<6eq`MdZY!oJNhJkLl0o+Vx*DcLiZ+nAI!JLBIVQ~NvJwU^^!L>_7& zwr}u5z(S|wKZb5Lf>}1?#5)w8MQ9~lK;MQ+hp1#lWO2hemVCr)N+UJ8qFcY} zPPwjR!@d?FdJQic#4>=L?JriNv z2m78tEhKb}Vr?yJ49-F<_JBv&dfOY>_ zXr@?jarnWVrA6++BHk1w$Hh9tU~~Uy%h%eQ%1+<+sLyRn3}Ij2*ZNiOqC;=%sb=oB zMo5DUPO}%uga|U`uvwTBZqc+>7Gu28t94a({$T2GbS@HkmRe`01&e7P8LpR!cb?{E zNlkj5zGQCB=x7MB*A=k+%;Z?Oe{o-OB-%V{q<50nY?^wtxUitG_@%OTK{tMX>Q6N3**{OQ;sq6}VQ!+d+`q8-ETW!S!x@i5cQzBBgfs>vG4 zYHw|#X3ueOgokLS*KKWne~tCSPXD!^iGu{4a)C0&>Cdpm3El)*-cA(+sW0brInjYA zU}x;j#FOIW^8U&?*1C7;K$>(T%g&?_av%vgc`~!^ow{P&Jj*M&$;>@7$GBpt-D-`s zW@0kR6gU+IcEj3QjgqR2yvcE%pLfCAjxB9$AnC9TA1{+AnKLZlN-N>W3Br9{jkXB! zBZIZfbF->-v+i-TnRc_?bhEo~vxmAlJh+MEhl|W0G1=Y6lHB*0wz>LN^SrK)9a?NE z*dh09{vo%-XLS037^Rh#<21tLUz$R7iLz_frn`B!QtTjMZZ7qe%so|WKYIr%CTXbF zoM2KLew%}I4R2uQ33bu zI1KtUR<~_OQ;DqLJ+!Q~p#Sut=GUP4(+jFSocn9S@~^RcHSL4%OsRIz9@#y3Q@h!g z2W}38acJaPmv?jWWqj9T5DJbIkPGbAND+ zOz_`WxJNIgOf8a16TVAgceumwaEoYs4E)@6iWNHY$9?`2 zJO(Z2%pr8 zs;yxC`!$vhcnmxIa4HEk$!apK+`SY5m`NqYn-elQ49#ung&rgbLHPNexk$XUip6_mb>T48 zii&*B*xJbRM}R%yjY$eq0iLdAiExS}8?5+m)6}}=FV?AWmKlgO@O}R%vDOI#mq&1^e^sa0oF8XE#Hstr4^jV$VoYQuP1XFGdW@x-5iF9Cdshs!&^x? z$0-L!KrOVLNZzJm#-L-lMYA#mO>SKmB^Vp05teIi=!GoT7hESD#FGw|mVw$hU>({*tccRqMMW#9JSGX zb?gOVWIMM9V6+}o#}RifjM6c^To0Z2zLd&;l)X70mdShGS>o(rJr?L8dA(S7x97dA z(TA#Blt<;ggf5OudM}+!2=*ME&tvwi?N#PUzrL0}K%u*%2txhA)1I(=WH6W-y*HF~ z0a!aa5Mt`Su9XXm&tS*}o=0D_ZM^lr6EY-G>i$o@vB6Y)-%ymx`f;b^gXkAzgg*Sg zN@&)P(*IovO_6T?AH00+Q#68O;ZP_lRF#kGJnv8R|4>4weAOSvv8dYV*JE`)2GiV3 z2}%k=E$O(D4Q2xrP^kFBLraCc7HsR!XWfvZn`^jn%-ihXCQ4$>ahfMq>vx z>XLf#p`+h|y_#w^I)nnuCV#asjeYQiMZKTEFMtFKV5X+56^->!AtLYyco;bC{YME6 zvAJa4>_=^3BwkBy7)@td&D6``wuIz!<5vQUn9WER?X(Nu+|}}RTH7>Hzjk9$TZ9x! zl1_7x8z*}3?%{!@I@|ApCp1&-o=SIjg9uiYplmO-+%5rqJ^K37dL~8(dah=4Wxy@C z-~(AZesFisQ9-_``;6Dn>-Q|V3RQ7+K-bejzO?8SCzd{Tq1YGcz9Sa{xmY;PWEad( zi$q8IPh|=r`QB%6HeJTDN$*|`hpUOS-c`w~(-LQwVF&Qjo=W#zH(Dn|xG9c@=wVO1BNiSZwlRk3(< z7~%Od7shffY!}cI6?XRAsx%hmZYlvzq5EGAg}fi%xUo9n%O&Hx5CSYV>l%z2k$a@JHu-VA_z5MJR|&lz-%~wav9sj@|T6!wW|{ zNq-smH5ZFtn7rbRp;VQ`C)zQ%-^Yn!Vl=_3YN+5&lOd{PiXRu;D-=+Jv-&YjoMB$E z1KWjNr2bQtGEk0);?@!dpwZGzvj`Q5AGB&1bXz1VpTw5P0e2~MLxtecsbFIG6~4hf z5!Ux%VZni(uSeEkrV8H7D%T01p= zf#k}vTZ(Q_*49DZ@K^Wu9ON8Jc4a$fx2f;&?RHB<__Tdp66qWj_h zrxN;ISR&Prop~8dovq=c)*A20jm}P2M1Y3NQtL5xmQoi-O0b&?izQT%!bI%% z%hWPHL&>LT22W#=-SkA?)~je28vt9jM$b=D6K790DFRqRY>~_&41|K;-;h~`#Yu}W zVx!Xt8l(UT8lNJMc)yD@mW_$AI3+TA8vnqY8%@D-O7{I`Od%LH-d@F$SPcjGQt)Ry zz$GCmlhqXPNKj{MGndL6Vfsz*=zSof7_TK(^k7Ca#IHlx=M`d&OjomGXUyPuobL7EDdUo~B@= z<`{KK4B#$C2BM>|#(A(En2FIQ38mtga*A(pmLc_W&fThWcjcp2%+4{sx#YtHWFtm= z0ojq8lv3XwDB8nIVb|nG`!;S8rHs$t$u?C67+b1WmJ2Y9R|g5BtEvfSETQ~U&b7TW z(CLe;tes=8suHu5xi}W+xL#BZy*<&Vqg?4j0A}%KgskB__w|zoBgV&6nf#Dh9oM?A zPX|?*ab~S{RH+8SKMul3{BOLxOt#ueePV5?{k{p6KmxC7Ze|hc$wmwAg|Ts;Scm+( zZz*{l`AK}Z673+`*em;vm!s;CqAl0K3Nt#F%4{6xx)IFaBC%IZY@EyC1b;EN~a#;7*z;6UP+Zap_SfSy}8mx7Om|0wHWK%+@y;kAad5=S# z@Q&g7PTFuC@&k;ae`2-ijB%%fGmvZ?W8Hx!3*#Qc2x#SU4t%@hyq=Acct7Fd)?lz( z(g);yuM-k%g!0;h$7H8i5?bg@Kd!Zssp2`M4^{0j5Q#vkBtR!}3!P>hJu4tnJVVr8 z9dq8S^e-;=jsV7Eh0P{)GMDp)Jl<0?#w55z%-x1UeA#UYRIT8MT()8&u!W@dTsM_! zL=k(}(MMRGS$z#h>8YwEK{c0o|K!PSZJtK)pa3c+lT^e# zUw`ge%(`KuTjTCyM=@68S$%r*_GM+ng#BH;cOv$qV-2pxwUEgNC>o{MnL>};P>Xhs z5k<7fFx#B(%VTTR($V3i(ejO%xVI%!Z1cXm#dQkgx}w_N5@sPfmh0X6-W zgsw}31EMWYjEGL3G=~s%?>78p_X^eeD`rK{zc^6nqpxU}#9Oqfa z&^0Qx`TgP_xs6g*-W*ExdBwCTm-?Qi(~SLp%zNeWdDcFsc8G0Di^O*&$9%GpD*qrM z(GQ(J@Xs?ypI`^N&-;nqTEeFrKbR9rH8(t8fn&V;YPpnNR(&pFNBHd7FD`BWHuy9( zzU+zX-}l|*1bDgeZ_8(IzD73RcToD|$HfZPO}ve_=nMHe=B>$NZMKYjwY^T$U)$>8 zcq&@t&v_OQG^}{L9>Djt`kw!~|9k1ND8v_PU3~I#`M}Wwh6>yk*P68r)D|Kd^3BLh z`1~!+Yy3nFedy}(|F^0C(iEn%HRAWzTx%=M=T6<*=F&?`O;2n35KFy6^Yu?u`>3P{AJb*rLTn5V(J!_3t5w zw9Mxd)fLQ9=1!av*)M@YAa zf0IT?iFkMjmtfwVEc~`t*&*U8V)z_xL|<80+GCX7XjBn(c<*79JW`ZBL3A3I|3XxLme_Ku9p-GU|jEa7I zZ_FXUZy~}kr>JPAsI(al_``1>Cg=cS(k+tyjwTZyCCziX!X{W>?0g_BPavjAHAGG& z(~RcR^s^CyVKYd17c>)u!m~f6NYSJMk5Z+}V@&|&ehZSY0g+bC3685Nw#aGD8F3m4 zAKWw2QX|rQnbEY{lH!q5JGs*JH4=dD)b6G4bShRPAUWqL&bKY|=@Ho`{$m<>ay)YvXDx~7~Kr5D#DVv@pMVR66giNE5(YTtea)j7Qm_Cf0>8u&mHRi9E zhBf*D7AllY#F4W#mXZfm_%NlJt9pd!HIu%5l)3!m6{3`R<*W^>h|cjh$G0x`k?`ZL zW$p{jhnbAL?bY0Rb?QZbv}fhK05z8w#Qd$c?AO&i=vaOmP5xPFeh3Wg=m%vf&OBuQ zeC-xHdd&g~w><3Q%$DBlDbFz^4@L12(G*m_KbV`c@$gtKQ}Z4dFi`pZtjGkSBtCOzvDF!t z)Mb2fK!q1F0%d$`T`eX%DiT=pmH$#`#Ze5OsnqTKThAn)B(hj->Gz-E60#@cP@ycg z_>6e&+#u;J29z>lC?MQ7GauAk>RKTn#DO(BQ^4F?YR_XQI9~SjSey!g1=p42aHG|8 zXIUMWM<14(=mm+`2i*AgDz@lZW6>Jc?$NkHx_!m<8r2@>HqjXuBngP?r6YiK+ zWsX>x^eg|-fYQR{J7f?|lzi`S|Ity}M?>i(me&$luko)gYPIs25QW`3Wf&zNK|6(T zrVgT6L!DJl*CDVNU!NXXPgt4GyIu@-$S5GIJ>f1&U9Gf>Y)r6fO#CN*2wUfsS*{-y z37x4l=1s|;X;h&p@T_cs>20y9Ojpusbnd8ErENUYYIKz`H>@y=TQ^D|Y6kvm39wG_ zrTdUy*P`0i67=kqU|o+b(}I&F!27GRWv%stBy1H?dopT~-$YAVR$FFPgGxq2UWZ*l zhn*T~C2geu&vA#Hc8mUd%j6zD?zx>&>qEA6hgV0N3`)LeWcF(>B^S;{Lbj~o}7qYl8D-lb^mWvZB@2{bOXX$LICqi*2`p9uQAT-%8jFyT7 z4A=kAbHUraPSkU!-AP4UjyG9#w9hNX+kW@d9r^)=B72DPv~PQ&QY1T$?q$FM0Lxu9 zzzT#dl7=%uO9eCcPCs|T8w}V22MyZ%!E`;>&qLTYJ+xB&g1jx%+U3oBxR>Q!Fu@|DQc*5~C zw8Uzgv8Sk7xtCrq;y%NQAyQ(aQSI)1ukMY{o&7Q`NGLtB-V^OM{nyWqd?0O^j;t^q4n^;OctW0A=*w=SM`br!Gf$oOW73+#Dm5< zA71GOnz9D+J7*Bi#_RY7kzXf2k-fg((XFh8_Bw{~>W=%6! zkH&+I#%y|ah-OB>HaPsCy_fNfsxe>`h!xy3b2M4_GA>e=ZO%8q?bRhCJtYKOD9T<; zn;f>m>i~{jp(D#G@LHB zdk>m3j4Hl#JVcNF^l6Il9)#%{T92B@eVxJqFL?Vb9@tF%A^{0^j+GL(#&)$8(!z&T zuOQLGiS)wyewcOio?QciQ(tEVy=S!fH<(TrwW23h&IT#KBVcXnE@)J_i}f@$ESetO zXhlpVRZQoK&&G$C!KLascNy?h^~}she-#?YW)ij}dm+weydeJL`;ttF41S3WPN^3b z9RKmvXO=sAK+|EB%x4kDc4jswPAPtbs(Ps9r8WMv%L@(Wx9;!#$Vz60N@`<_H`?-- z$R?6b2!Zd$D*8^L>~i3WN;ivD0N-l&jcbklHW9oJHdSk!& zY@ab3JpH^9fW9jT>B#|avBks8+pb5v?#n@Tr-}ENeK)9}*&{pF`$s-Ys@@RYiM>{A zIDOxy-#JSz6LYIM`&Pb(IK+p37>7ZSeKA=$nfI;G>$*6`ZdL5Ta>pz?<8hPhjtt|W zzSNwVz+RZ|;T7r*{;wrP9SHOiCLM=)7z<8UyPHkA5xRB6Vz<#D*KaL%68N^yCU??$ zHh>S=0!a?KMj0cOPA2V(DzXSK$8PD3@PS_$xwd}qlU&6dI{m{J2u|O5_$&$Z)Y2jt$ebIM%i;jze^4|@X6F6Z0*tP z)cd^P_fLK#;rNTBznH>x7dkR6Mt0wCyH9dRZ>FJdnE3iP9Qrph@gK`;j(_{H2YmzkS*h+q-7IgrT%Qoyxxsb*fyPS-Pdc`uO#XxaWk8 z>6TOe*o^6L<8%fBx$%Vb==Z`l>D>$4-w;9X+@M$B)!TbHl@iw zOWAzptq)R|_t9|^Y)lXFOb>kVA2Apf-SrNzNP2#MdCLBJ%NGxc>3KXkJJjiD>Urv* z)kY7xe4rAf9`U`C&#M<>f7b4~10&x{W1fY*J?3maFXqA!et;3I0cT*sfEAFt^IooX zADI0fI`p5xn$Pt2S~Mkm9T?nPVBdvfJ-Rv(>Ve^TOlZ(lr?v_eZMM znpG$MvtgHudjnwjgP+G$n2ZUE*)JI2BpIL$JvqO}AN+Y(;M12NWhW z`vn%p&Ns(lGV_u@=lPgFvL?sU<8>IuQqn2@dTdCj-V<;<>) zPMHYs^)>BfGtN*aZY~C;KeG~>!MC%?kt#}Z(Tt!`Ss9v&&rJ>aRd)52Zto)Kvo{sh zZ(EF2%$=*jS&RbM_-8otTqK}daw%8wqfyE4#ZptsJfJ&}u4nOQSr+}G7}@}YD{Ll| zYMnbRl}aC684E!5xttjt$-TPi4!xTWxq}qGuF0yYI>2?E(j83k6CG~@PSE!B4~=e- zRXj@1>714gRK-jIgQ4+SVGOHULh&16b>oW6^aheTV6(VU&lAL-`Zww*WZuZ@j^uPo z5wi<4o`+LYXQ2AtcGJrDby|_6LDadWGu{|d*NftHW3vFz`MNLbv64Q4y)#_7OdHL_ z2xQI-mY{RQA-p&^#{`u@t%H6J2APE(%eoIb#DiwaHudZ9ZN|-G0+hBU^J*EVV(tpVan)s_AlOmQ4;m;qnqv$l1$Kc{UwvI-Y& zM^hj-7_Ws30gFWUtvfFKJB^Y*z*VJrF~=dph+UUgL{WL(h897! z?0;P@nzQ~cDaZM`0dz6D9?n*Mb8O~x@%?U(yyATA+gk+lZl}5~^xPoxZ~T=sIR}92 zA!LbM!M&6gsODs!F(k#oldn5UO+63;ThCW#(%kM;Ze*hwyORdeCl-(1Me%s=6A`kz*0h>)LI->F zs&#a8>OrJjdzaGmuZE+r6k&ksV6`=L6ffsA8Wy?WDX)SLW})3Ge}&N{MyqXixi#JLx97oK03QG zi~c*Zm|P8J9D+;nN6pz$z;O(2ZnV^E_K$Iz+?iyTpS#~au8Je*I;19Mo2~sNkl}}7 z3#V3PWf8K5gS1et(&iee7_3)8PJ#0&Juh2@Dq~4zjLNJTmS$KGWDp(*J8K8+2ZO06 zz*lYFwVD1vh{$rn8UZI3{_cQlo$#kB3~a_&@_~**hO_}0cAndpG6ATktj{mDoNkIk zVPT#r|G=9xxU)lHnhb^bwX*^PSPG81kJDzf4TXU6QvN(QWieYEl_ecZO5-mwA&Dya z+tEi-rJ5>5jLGloEek0hn(hoUMz!5lT3IUT*_^fFQh{P*g%0V@1?O~$$hyZ`gzeL@ zTB;T5s?>r}TEi81Y~@>Q2JgZ=?h2De9*RjzjTDxpW3u00B45Ld@U_tm;FzJAG<(*9 z)<<(GW@`BvwzSF&>+=43YS|ulhl1M{>S~WE!tp865+`Z1wSkLu;)Ip_pkwAfDknv; zVk?>Iin-=?oLX7aN}VuX)d?fDnu0}Z9mo7NJoskc#z@QA^(V(53k;ozN)fhX%{fs76?c8a;07 zsnn&#mNRi%r#&y7plgm+kC2)iVmhK>a?!fQvrWNU>y=ZhoHco4!jvJXB~t;?_xXDLB-+vK(z^lH;FAcs-MyISx*s=9-qZ zUddY(FRKY}>XaEqQ%-{u`pq%-cw?+pu5 zO;2xkVpfE$w4wf*U%nZOs{a>?9|az3o2kwDPoM+FTAtb3rE946ytST+yY_O33~}u& z*w7GmZ)0?Vv7WbjH}v41Y>H~q(cD|l3hK4FLdw?rKw_3?&Aa!Odfg8av2%j9@~n_O z)YcYZVS=LP({dl*BGoO2zY!e@jZrJ?b()NtHR35WH;>+RI+X@xEh*?X&VP$ONoA#b zFNIw0`Pw>W>#xm|Vw|`w_}sXnZix2AvzC?CyN2W=Pb)$_Mvr`*Ix%0)z2wz~2`;p0QEf)7&HNoeHfobQvLmE8+AJ5-TGOq~iaaJgh{gO>%x|mTH$Xfp0`h(~zAg%- z?s>Yg=XsT^)jG1)yUDPx5~ls?DgB+(lLX!-%0`cyaL~F(u?6dusrEAX*PcJGi#EfX z;L4(+3>S75o$!}C_+t}ygBp5K2U~WY!!Us&l${-JF0bw#LyAp?Hovv4*3=> zDv&Mm5QW(c+ubWF+$x&#@&yHxTeP5(9H*l2Tn4v+x0imbRu8ok;LP%@)xP~XddD~* zWK<9&D#AxB&NnEy!z&J*XNG={wDJfLwc*U3?_wMjrW;3-nq@4CxMmDt7J1wu^>uAKg@A8)EMeyIK0fWCA|C$nG-w<=vO>+bHD7m%D!@vC;&eL9 zybv$SH^M?+?`R^Nu1r6!EM67fZx}5?-YEr@cM12bl8o)_`A#n~N!K3<9;E3+F)-7p)p{!Wju^97;utq(zgk1@?sy3`Y`+M0<-G7Y)P`k3WA0>^=jG2c>cw z#gJ9TR2P`N$fQ=3#hh=MC4w_VCz;Yzq*#EX_-qI%$qhni6K^sS$0q>pQvi9DXrYZv zsj^JoDIgbayb(?+3r&nY8BjwkRo?i;bY*;nZsh$TrGObB87|ZpDKe>uO+I-dFIsYR zaP*r74aOy(VrR#Mi_G-AXov@J`ejTwxMOPqApLu+f>=t59$2|5-51U8$R^pp&{xMd zIduzc3YLks37D*y^xOFW+3nc8ZH8{`(ko6*>a)mAp-gSRbdHOKjJ`}x?*ck;Bvj#~ zTBBs0s>WDv$JdNgR_H}9Po*)R#SN;ug;m54y@73~0RG;Ay-AK;aL0p5$RnQ|P381t zpbYqSaJW;dO>A=XIP61}Kqs4MKbved{b<#oba(U^?5kXVcH^L!q< zu&I>D%kC&<@w8Y65V8=2cPM|SGTw$3=_@p*cPjp|h;3n4Zslb>a}aL@2&!-az=6vaJ^;n)X*cG1sWWHW&CH58MhPSOT1v%Rp&6n9F~r!)2)a}cnS z+LkN>r3&q9@m430B6|8S&eU#lJvRR=`m2(FxZ+)~B3|Plzb>H5X8y}N-guj&^lK)K zZv>8CVHrm(ok$t!We!Jnw#_5}uNVGPG4LObIEKZ7xX;{fwvzaU(hGP|mvVMotpCAg zLFBb%azRz+PL;oGR3=2V7&te~Hve`aSYM^gVXGW+yQJ9l$#f+K9)0m*S0-ds`D53- zONyf9-TY{_T2S4h-ks`X(e!wgy1uv?WN=RVRsDzf64fgRYcVMCQXaiY#Y$D4g@3xh zqAw&{TBTT-r??La-!w}ktIQ(~6y}qka9(BD4NtL_(M&5;gc3&|Bz_cGiW#9YO8T+*S}IW*=o1=Xt&0!Tf8Ewi5#N}8 zcU5zRLKCW&61x;M(1%Y4*7}3B`gHZmL-^mY)tC6R26D859JEHzfztELmAJ#zH`6jX zYCzfPtr*q6i`o+mdYw%m%_dni-PvLj{VNdoFc_?oJexwlTxP1=f2P*EfYq9>p{%Pl zFQ)bNRnnGCZxVg8V^1siZ1whb-u+C;!_?r30rFi|Kg1P?7OD?5;r)o-&5|?YCpGER z1+kx0Eca1vQ$TPQnlFYQ>2X<8kOk122&2MpUfn^6la zWO$k`3rk^?2E(%3AKlhgq6`n&6+Uw;zBuXFgQ8(nfpWT=-w;6YcdOEOnqRxY?(B2W zSKtoH@QjA;3hUH1oZIHtSH(ixl}}XQa*&Y%E?9t6onh7}(#MdE-4N4x8OKHOo9Pa7 z$<|el!L{v9?&4N;$Syp`9EsYyZD^|kUgF#9dr?|ecz>rF2p(M2Cn^|o3{i+?H+3SJ z+@MwtNuMFxP?ka1DF*&!9^R&C+P&G^0=n($mZ<4snB}L;;OEH6-|hUk-(f!+AK1ef zAu%O%1F2G(s&Wi!ks79;Dd5|hXy&M1>Kf}K9DFC;XBPh})2(d@+I15+=xH*|VUyo5 z7^Lt1%kMjLV!Ew#9IJ{ThzNhEQfwqdx=c&H?2>aZCO*l|aggVFxW!=3DPazc=r&*p zwJ^9JtaBN)F~uchG#Rip)NX`8T}|1}%+D{wMqUx$tN>POrVMt50nMf-MPOBv%}|I* zG-N9rVyfqB?qX-cx}>FdFHc5dNVajf#j4}yVfw;vs#Iex#Ax`ca1=+yn;@Wo*S(LY zX30Wt!APoLJ0$YaH7wfB7?74A63nq@?MW=V?MmdGN4Lt7=2PTcfarb zuW`R*v5&?OyIt13Kg=H9OSOlWYxO}4patQ%H8FQUc)tTXOfnzv^w>`^&IIx61K%(wEVVs_g3y9E_9`$eokx$4*bx#C z1P4>Ml?4t}Cym3-EGF+xn@db4_0D&?ZKhN0b(<}?7=uqu6|1_Y%3Y3*?&?mL4$d@e zdpYb^n#X$)k3Lk3l6n! zY>sKBjt^Y-R?ko1meDI?`B8cbUwG`Ri7(D9tnitRj_kItBrZg$6nf4MzlL;hIs{Hr zIZ_K=NrzrXaa=J|1%EPIjtR9XR7Da>wOidkKhHI)y|=@2yM(?3A|j|87AQERFP)v& z>`(ef5#Sy1ETcPrFdV`eMaPU(dvt);vu?t3G>mmBFf$OuJ<}Ah#hN;aH9Ho?aq5~n z4=lMHdb@`Cdg{qy|Fy^L7~}NBY(A9=prSld z3zf+`Urn`@Dm_;p2CNn-@Gs5-c^_Vp{9RP<@Nu_0@$7}DDDg0^Eqd%sYwb#goo#E$ z{rnM=bEB@Boo({2&bTgCb8jr5x4#%KJW3DvHzDHk*UWK_Wdogu z7)}&PLAR~nU=fw8>dy)X5a&XLLvj0M{UQ%4JXvWOUcN3jQ z{}M*9zWq^#Iqf{v7ozNUX_I#8v+Q=7x?K_)#rJg{s^?f_XCHC#81Vxo3LgZ?-E;C& zWZE~YQwNT@c@)Ht*0k)UmYOr9dHgx=X$ZTR&jnZEqpZ2O9H!1%K;@kFYJHc+Q=7%J zr)x`U&V3G|hnpQ!eZ6fFdr%(aP9VoH@4H~P=U8>|PWMMfs1g6huhxfOG3FNEK-K{- z-XB_?e{Xrs#y!fBplI6tZE5j{vVZ!}q+gH!4CP@I!?eE%jJxSYbaGHf%AR(+@YU&M zbZS?y^!h>h)_=a2_X}b3*m3cRp!RAw4GuK@XnTIMuJ08cCe*?76o)7@S87_ziP9R> zvA(GiTdLn-ezg?#{mnT|&jezus}6m%YcL4HY_DG&|Z-@>IhoL&($ z#o}~2MPf1@j)IZ2VlzkE7LF$ay?)Mc$QLoD*L@R3_>?Yc!13(*66X9HlsozlKE$Gd zx;{^c^LjV^_UmjWf66@@N~7gSp#aJCLR+$xY!yZjLh-nA)k1~ZBFaW4ULkiX6a{0U zRk27S(35EGuGFDGDEJMlzIuG-Vl%|~4B9<-NN@>mB}jSAnN<3|Qzy6i53aJ!L2kyl zjqxn}bH>t4Nx(S2OE=Yaw!tc{WXVVO-mFwy9yKN} zvs_DK(S5_==_js=fz!{%6)BcaV#@}utFDPI7~dq*rCSWeG;}B!*gl*6Oj(H6CsIWC z6#C^(dCR-PR5dd|)sQm(mjdD4rkeal*p4DUa+zwJD*DQ1{C)Y*Uo#6f6J23c#>Yg_ zWONk;9r_HMJ)xi+HUigtK%0UaGKm<}(3zn;SUoIKoG>BdyN}zVJkJ+gTz_TU@FhPd zC3tPamo|hi_MB>qUt+CSH3+O2AAB#kd--e1nww z3WXHvGCyQFvBRycZa+n025=++0|-^fBQ7U#-qW!h)C5jThSU_k1Ej}B1%o^()-~B} zGACWb7wL0wpEX$Hq<(i2@sA*CJhLqLiBra~a^qDC+0?FA% z@!Y{zCK(xJM|#l!au)A=cGuD_=J9_lJq)xwMR7q+AjW(kh#rkQMwl)!kj7`wR4P-B z4u6A4psHG{ki&(|2_(D@4#fFEoG?QzetSH@s$Tpk5zWi?Q7j(%om(x2vv@~q7qO-dRl5ALee-v+_e1flnv&QyaqBHJ2vp1_U7q1UsWoXyUlyhG9&9u6` z&*QRutEVO#hNJMG|wM z@Pty)aYX;WrL=5U3K@++nbTCW@-Ex3?^KQPE`zSc9ggK@UfN?x<4vF1xj~kLzX`5r z)d~hQEJPKK$I8tLJ4!thzB^c_Tr*QPPQ1j}eFGQvGwulQnVMEuw)m{)Hm}zOtMqNDLmrq_7+)3L&*wg zD#A`>4S8Z=m_uR&YEE_}L&*^OZFlB6h5u=t;addf4@MJRyY{&Zqtd!!VHu`k>|#Xu zg#l&^Wo{NeqqNZb1`Zx%hmL2$>*kdN5e)3~Ki*P0w1hd)eev;MS$4_n55|C*H>oHh z-+6}!Cs7z1WX*JTAqs?lG&q72DsW7HvhL#N+B#=pqwUkvNik~+xG=N5WTE4_iI)ca zwD(%yrC9bH(Pt?!m{c-K_HYviA6+SBu6WE+V7ti*X@8a=Zd?|UAU`^X(^I=NO{kw@=Oy;^1(ao z+Vxmi-EA>)G>hi<(t28UkW&I^&K;M_d@Pe}wR%JN30iVV|uPj^7V$03Q;_!|t zTr*yV=bzoNF}*8)7)Qd@eg^k*MqGp#%5){SjQSUuB?ePE*m}~O3YgTdQ`A}s!?%`p zwfu2gErL2oYAxr<7Ph(si2o|T`CSuwW~%UtbGs0)Bb zX9sZ97EVVSb9l9NhU?W?(A#d%%~zyR4mD<f4s5!2Hzqjy zX8nATd2n?UXoLq43V!Wnsp@?mj{hzLvBcRks78DbYn`s#vZgaGfp z8IW}5j^)YtlYm51**0t|n3ZNv#rOSfWlaPQ;SQv#K4wCs|JBVXH4vxd5jzrEH;N0) z1K{UHvYi)eDRZ@(*RQL!( zpu!iXctokDRhMlf%0iH#$a?NSrG4X`6M$=By!Iy%Th`Lk*i zTg9NV3XtkUJ}itTrB!eh;V!2Bo&2Urr9n)-a1d~&dVCb=&(OG*j`W&pA+vGTbW~bJ zm3*L&!VUd3S48W$dR+a8UNKXgI&@1>)BD%WP`ENiYeg;XsAx>cO_%+zAQs931pwBy z{&%n^Ve+xC>YnKq>KSEXnAEP$9iH;)^@?)%EQ0lX0Vkt`MjCYnPf{W@noNNQ${mc& z2BKUD?xr)1h_7Y}ahS_EUoyc7jh`Y~bwvII#EOSuPq34R2ZhhTCBXB|G!k&q&zpWJ zq&QJi!oyK4g~wno%|Yn0apZUQ*;S3BB;#HX7L@YKKL{9i8 zA6J>HvN|mLW8+pT%bj#>7!l; zrCug%8$2V{`zAm6{*aEp>O@3u)8#?-`;y#Dqp9TgX`qBS#T`TFJ~h{ja2cz0zt%jpU_xs5@^hS2BRrq4`fI8L{^s!$PGk( z$V|c@vUQ8Z+S5s3UzMT$%7utAe*7W0{faDDL58OuokxNgC@wgE$L_uczOGBbQo|(dTvk-)(O@dD-EK1MXL`qHrAmDkQ3LGbwLWSjF z)^((46p5!>GM7-!HW zl$fybO-$n`EKy(7kWx@}%3f<6`=Meer!VIuNoH)OI$jQx&VWG8@?NB5v64hLL=w%1 z`%MwpyH>&Yy`Qy)ZqB;3HqFeOOdi!(jJ>crmZ`1mk5g?<#L+%fy=agCgCQYBEhYcq z;~Y?}QI3Jw0=F3P=&Kn`E@gZtXgv5cm!+DBSsPX?rJpfzb7NO}t9dbhU#di|SdTzH zUHL{ZB?!$Xk7UZc{a*@ZtklF-r3M@8;v=k1 zskMTomR_Wf?MD!*4^F$jJhFLPN20m@r zpbz5zp8|vbB1|wrd|pR>ih0Of0@<8sMu_|HL5N}Io|juxcdLm*@iuo+TUrJP80@Nv zVUC}dTPG1~>5QRPAjY>%BIQQPnzDV{DxVF1C(!u{!odYt5y5*ANr+(buM~ z%@3?}-f-R8Cv$4OQ#v+J#<9AFWNn?wqc(R;Ioj?J>)e{6^pB)kI$t2|e2uhb-`DCJ zAnpdJrfIe3w$pmHbr`~GE46_P>h1G6H%_9Ro9H~R-Q8dGZax$HIDTn8E22LgLG>fs zefIz?HTBUsS%!P#oWl}?^7Skv zR+?C)ZevAk*9p=WyAPOYz=5T$pB{UkI}~vmqeX0tY?^?+a#KhEfiH`FdA2F5TH918 z)Ps4Rl`gWd#;p9eT_k0fIr_{$6}Q-x_CF4WRk(dRrG_CD67d{E>1}b7yeV-8VOJ6l zd!g9%(T#6wg8@xBuy*Rns-WsZm-4;Q^jCEm&RvL)5EJ;!ZPVYhsY}xiS0o$(D|mzi zYcs8n_0{Po{C)*%D8pAWgEH6V5m{SDJDzp*H`mV+f>5^PkF8tV=Vn9{bQiDjZLl{X z>~(@0-;a$Z{#A~4zV#tS&o;$#_QCF{+$9Pe;Hq0I&-A^!oz}iLCfpcGnSD&l=kc+s2eu*e1MGSB9w#z)gC2te zq-r)Xn_lZ|+ArrErwJKit`!k1PWjub?jqW+bA3CTWkFx@RBomN737X} zC7x#{glzJp#ypv>@294XoJO0xSJ)nV(9+t^Ykz2gjjij%vYEJR7v#@%=-QWr<>g{V z!OtCx9#?@^pPem+&JZghmmct(do?0&Yy=di)XB|Te`Zb@GJcQQAe~37(N4CPmcf5ZH z&r|81qxKy>px7DoMEY&c$BbIrOV7^T{)X>~SX>D=i^A7#L*ChSZO=3wGFnYT#R>GD zw?Vw`W{dC3iM@Zm-;B6F*1tb`vLnK&^Q@cy;EDH=TY%4qU*^a!ELCMn0~oAUJ1}=I z^i^MQ34hA;z)>s#B2hnZsz4Hnz{?d2{4{@3ssPeg*RKJ|mSO-gmH&@ZZz%P^FVi4K z&Oq_jK;Xk~l2(7rS8rj7;M-I`iF9AA{2-`Dco1~}v3sy;dLSBA2%T9lJWLQ~SpcMn zv|O2!302^4s?ft!f7RAdtFqwqN9oT2TRC+uYp9w&oCJBok+Nk-AjZ344ipv`Kp80#(eSx#rqx^hs;%WqNcoOw24* z%=BvH+H3SfdR!A{OpSZgJZHq8*Qi3Q=oa)?#D^#ti`ehcxbt+Yv(b3KT70v6%neoC zlX=3edIF+{CVP6k7pK4as6g~-6yY1f^Jv`TX>=P^93^brH)jI%SmHx?EM8k2Jx&ZR zusk9EG{MB(J5)j$WH1TFB9U<|7G5JtJR%u6BKaviR!%ZT>MWTGCkbmU`L{)~6j#d0 zX(C8nlF*ws$y*YKiX(MGgx*;&P$8MIE%hoqMFuD7EIl&_%&Lb+|EoHQk-_#;q zAv_}$CnGr`qnJ9gEF-fbBR#q;LrBsSK{-9Y&EG;Yv#>3*H6tsjJS!z4OYAIDXiXrG zE30WNt3o5ww>*8AI@9J~G~yB4JC=lNF5_(+pKKU8*p|KCmb1B*!-$hZc$NeWG;sW4 z$qGBmInBsD_sG~iOTba^eEK1~%9SP3miz3Hx4D)JOP%|TCVAWzHWZNu#+_eLo(CJj z4;KPhc+NAI%%9+b4g(Yb&htAh@?pmEfQ4dz$MO*+3Mye?fVT+1T@O43Fn<9=!pKa_ z$as4fs~47RAWl9tcbb14C^e`LxjhUEZU*gpR8X5**hoQRTOsQ^0@y67fdYs~dn(_1 z)WI3Q5OI|kXjS$mJ$uC4wPG}NE-JM{+qiD%(Aq|vm(N?EH<(tBD2DiyEHWu#E={CN7)zOT#R(L+(asi@U6U+20-lz zBmVD&kphTkR>!?p7h3|7>Oj?Z3zE4@>fx|AAd2u$CBJ6NN&PFc$HEsYDqqSg`e^_r zQh=G0>e9$EkPl?AS!lv_=()($51Qn&cjQ%pf9qV-GZnS-aQV=*wTKd>NSPHo>y=<6 zAc*P3P8!9;t!2G%HSwBt_nCjO+QT$&kx7ZcU}uB24@AjSelr1y!I=TIm>msRUis)! zh=|xVd+%l9QgweUio4e<_oNDVEb3w4OR@CJIkP}|^<6K6#0=l7X4f0Q>uZf7D<78| z5Y=m1B$}fon@z3$tw%MRct!oGXe6fvA@UG z7nQoSUR)p9kOs%EwOY=3Q693~1^eO|hZ(p2fgFxuJ?&vn5ZPnpvotdcprmcrSsr_lizXVdt71f`| z{Z~i2?VSbyd)a--(+8>DF?Z1?Xw_G}F+fB&m;v8tk5@w+)y#w6$BobpeL1KP(gStZ z`ELNh>|Ia)@mDjtT+IuhQ8{$ySxW9*sw4y8!|yYn9E6A-aL=mn%o+xd9stl)*Dr@l2>i}wT>NF8}ppBG@+Cq-$~l zfIn&eItpIkW)eUCmz%#go_S=VnsE=hSgU;oVdOR%l1#rM$9iCaXXYNEuNZHtc)c1N zWoDbF_x*EhKx@<;! z_K6OJVym)YbI$y8`jfY-Pi79yPa9RJw6@Ew1`tZ zN7yw&_XR7pHUFtS6MkMx-8Bc^H80KA^+Z?K?OEooJ&WJf@-R7v4mB%Czi`P5NR=9A zyeJ)5K%S`T(cG+;fL?U80SNN}bgsJe=$DdZz$ocgD5jv4WM|!UX2IvG53J^ud{#a# zm+Uv8A5G`ixEC>EI!8ZN!KCeuHYa^S8%C|QfV2JOozpn7i@t~}@$_|I3M=9jV=A&^ z;yPgRh--VAAYgo5Sbz->ulcvhRWQWm@_&aJ}3U6hMNy^(m+wKG+8Diml461Q~-wS-Zlm?YOP&GJ24V zt_8aSNRu>#TPrbJ3tfBZvODI84Od1Bs6L$#xqDmOCxbcrCw#|%=mP5q5j^PkX4m=`uy#;A4<7<;|Yhf&Bf#UiY zLH5i!_B5BFE^hi13~*kj3l=zi9%c#S19IvvgSfamBOr4y3xC1Dw|*yk!Kx3_(7nwN zdpI?@vz@e@@$1r#Z!tm+d~|xd{OdY$`)q&uvd(wVhoQw<;0hpv=%qilCA$p~*Ei66 zwZMbWta}s7aE(K7{qT+4z_3%myie1)W_iV+H#v)aa|l0k7WwNA+3w=jcK(&&d_dr! zn(&HD0c4;T%BvU38mJE^*L5%8eII(g8sBx>CU@hadwMc_0CvlF8rWTz6d`*Cjn#&|kXWU_Hv+hksu?@xPMfo&4iNAg7+qd!D^y5OD;a zje73It8UP`TVj!CqT}8ydfpbYUh`(5gBhRf>@HB{-^uJ=vZ^;{2+m-cU_x0CWsw>h z^d=h_0ZKOyg+#Bv?Jl-1-W0E1)puWW89%)yphB5olkEB?{KoX``if{;I{A8Y@?LxS zKZW!^*Z4nefO#K<@-K=z)x5Qv8M+H(NDV==Vy*iK1KUIt*PH&pufUy;ZTb72xVP1r zuUFt(G%`TwmjMYCL=+(SpB}*2$Xv0^4_P=QQ~9UiP#89&;i39(5ZDkn#8`Zs`TWr& zcr*qC$ys#7bS5BdzMzu-R2GNTaM9b19#}r9?>GAI##4UTUnvYG>x*YfWxtE%ilx{j z5DQ3AVGuJh%me*?4#kqwrcxmClcS`HWZ0VsHbbxc>V~2ktjHu1yYRas1fc!Q`O9=#43oY8o|KN%cvuH(HsaB+}8zs8p3@6R|tl?s`zE zD)0N&=2P}`=BG0okgfWA<+%Cx{|1p5zyzm4!-i{}z#A%7aCg?JDh(!p9u`r`aPZ-cVHLhqba){qdL$_Q~n zSU|6nE65pQ6r~uC*LQ0NQafhrXPnlr66XaUnH-40A^%dO3oLEgIwipGfl!|aUZ;b*vQ_Q9)13-qFW30cbP__O84JNV z$_4z|H-IS(7=UH_9ehz}2u4lS_t3~hp&2a+7eU4Gqdz#R<|hH{Pizq!sku;v%~*bj zGBM(U*vMb_>tI6?K|gI#;+XFCvHHZg6%Om!jPMsm1G=?l=>yn!OAAvO2~WNgkiuNk(Co8YpKw zFPtNz{B>$RD$@TG=9cNm44;~Zn-G=mf;JnIwp_e^aXyt`pcvc0L!1wI>=>1hZS+Ma zJg$hzqBD|AKwGUY4*5Qqu|7#b=dvbb;aY(zlzzhcz?y0`%$(MaejxAbApx1_l)j%F z$*gcTN;d6~A{9~m%j8XgLDP}`sfbdPG7=E=Z~Y==mr9IQ3NO;sITvrpT>R{8uFc-L zh*HNwTK;`L+LE=9*ZqVp=WRT^dp<8Txj->g713TQAzzuK^lsQlD31)C?#BC+_Qrj| zx;VM$$CkNtxus%x>SKlG5RJ6-`CP2#Vg*JqjZ{m8VtMFO;g6UdZmaPbjpH(NUQtSx zDDK5Fd}T)=@;ybWQFJTz#Y~wY3aV}a)f!!u;wT+D4ID4kp>9@SeOz&sD#68SonmTz z`Vt+Vhrf6h+;X*6Hn{*t*kaN9VU2stIBWKvrs%zL@_FR}9r(v$X!}xPq^Ol0$AsdJ zqibdFRkh5Vl=gNFMuXLtjcFFVHc1^*UWf~gg<$PV)uH{ zO(3|3L_Uo|SH+eUh$O6Tsf1h;`Z0-o%3m4bT-O{<$ZDGds|5t-=UxaTdkq$8?Lo&y z+>~?&d-%=$*lG3FpU<_bX}xnqYRY|ojqM|ZJ4P04ZM#l@toe%F7fE+;@txSuV@Nt5 zgP^Hc5=T=t^37V}#UM{a98L5QvUEF)2>_mf;!wLqS)H#vC!ktqD!TtxE;))#!A>G=slv{_+#(A44K9j|RxF}r?p^X&)(@|!)ArE%zj2tKEO zx~(rp^FbO(cO9EDYOULsShK}#3GwQE^woWr>&=}VO7P#U#0xnCVa89Xc``fqDIO8Q zzbplam{!j}#hY!okLTxmw=X{X8~728{Xg(_Q>a{kjaV1QoOsz&`Iwx2rHGb16KXpR zldkHwK4!cnn3G9z_f{nIwyS~}Ti8hXslp7`LOYfnl6<@JS=m=UO4=K*|2(=}o{^!n z_=|9AEHij=8bOSEBhs9r4MErT`TWl#+-5AYEL|t*YTn5y+qU_YKf}e6@FtW>mS%z<-ONBT2D3_VLK|AM4w6HfC+SU$rqnB0&2(M8@V}m1@V7Pav{&-4;*p%$+s*1yk^sdlYQxI@1*grFuEgAk)|ltnQVT9P z6GQ;G>@C=j)<)w;uHudS+2PKTuL@oPd`T4IH4@y z*~oa=$y9``%t{{AUciLj!}ut~{`l8zqFX?^he||H+nGNTk449t$NRLA?6B|aV?YW) zj96IY$0om2BOkeTJC3%%moWD(9xwS}578peE{_1Aa<`PbfWq$J^TwdAb0AMALnVBJ zJ`10~#xE3n{-2kvX#f;I#1o6d6i$p{|`S6qlLh1U;HV4Y0MJCC_Y!3Sx=p=X_A_BeZu$+5-Y6%Wq zj^%wyc6y7>@`$oL=9^iF0vV$v_nn8l2cfpApp45xHS=YgKE)harG{C@hoYxWm8A-d zLdj?4gpHv#t$vxp%uFH3|9P0c;)T2-n;FOFe%O?`t%A6k6g<)5zP{`u8RUAH6stHa zd+(I_L)-qjI9)_0LCre0nmm0$DiP@2lncRnI4EA#FtU%pgPbhhAu_N(I6FQuV(C7s z06_yLJ2^-uuAn~|s4Ro&3^qJDaC;~>n>_xAAis?^e8oER+Q@&uDfY=bg9|x(RrTBK zaT>Ri=L%wqC}xHzYVLk;=3AzlR8(RcUY;sg22xf5vTL69NwQH(&WBahJ$rVqbD|4< z8i9VnOIs2(c}TMt8n~)Fr-Ltbx+sdFGHWy{A8|QDz&npgF8?Ysb8kIIBs*U=IY%-n z|9Yu}MZbuPKF>Eb{VFm;b~H`mvv`R=d_p_VU_V7`qD05{8%;+6=}MsufwhWdfr)$? zX>p>vZ46#?sfTR(NLx~0f7b0loQ7N+fc+axc8+EU8uMuS{ZZ*&Sy7+7+t4KR7sjwr zwesq~f+)QzZuO$sksvvnDzA^C>5`J^s4^Gdob8oz(xzyo*X(AtD8iPkd$K~ebI$JM ztm={Ueif8H%+lteIONijJfvD+mD1hgw3z5Jrir2$f$A%QfS;`VMHJT&s0oj<|#GTByChWZiUUvZ3)6rh&Nj zr1CpnXYPehAK0X~aioK(Yw*#f11@KPn`!_?p}*6m2j;rk|w+JIUh%P+ub#>A;mQysrv6cU3@`Nem>Q-5h3!7$*S1Rzc51akPPU*>k)g8n3DCTJ z%qeF#2VHPH;Lx+gY>vPncv;Pu&^(dBBI(ze-?J$y)JhHF7P9TGU%auP(NLPq$+fIX z#Mq{5r-hp>9G&WP(~zO$@qWDRwzQZW zl4arI&IPC4-xsB;hW9Z``Xy$NB^Pu$P;H@Bqp{Y0!y(Gpfq#%r(o>APF!zo`pj;uW zZ>2?}F|9k>FVq+=&Zex3TQ4ESLi~CmS7U9o)xp+kuGX5bR!eL)L$Ca1ZGaoTHfy?I zyVqCi&sSSWw(HL}1@PCaP`0brU|g@J-nteFDQXM8CYKC5_1kAR?r=u|sWsOKP7|Ad zW6uB#R!3x(%ipU;qhKZRK_&6vZ=pBE{&w%Ga39}cAH#NE+c)p7aBt5MAB6UxjP_r@ zZow$+KU0H9%mbcktki_U8k3r4VM@<`r4!MJD|%u z_{5yu+uU8n8hbX|-|9x*K1blboIS|dKo4Ixs5%e<9f*vUK|g zxvPO=>!)Q$?ph}vHT^jD8ye_P-&xy=*@;O+=bGUZ-``7YYWJn1h8!;sYS++Dxeq-5 z=BnA7)j5x+WXD6l4Cz81y}GP0PaMQcZ^_ae*-GyO{Tu}-uV4+|8|b9OR)N z=&qr~^%SIQjb%8tP(qx~weS9kC*;zcb$eFi7J?cF1zogpicz!uXLbK3@BZRfiAk@&zyNr6@)RCEq7KxCnbI-5^5*)lXC&L z7r_xX?-^I)QztDVCviO+{gEeGXjhc4XKlt;@w`W_Fl`2;V4x%LIil9tdE_aQQ9|p) z$tLd5c*NGs>_G_H*&XYR`Cq&D+>6!B3nHZl^^Wxd(w4@}6J*F#l-jE_$FswWs&m+D zu-={HjC(G>yCI>Q4xgvNjE7Orqd%ja)=NZO*b8opTk-A-)eTm1T0Cpoy=dT5#m!4i z%d_B#6I|T8pWEXvO7}mZuaLuUAwZ924tE*gTXD;4AeL*Zn^)V4i&UJPJn~+8+`ER2 z3!9&tVy!1RN9c{5#~`DVoBXGj*}dGkcemFtORQzwOD&_v z7>7$2?*{SX`i??X?|>-_V(;N|-??*lF7J5voV;>LTC z5qOXF8_NF<5N9F&;v~NFGScGNPxLmD=3N5?V*-qZ{WQBJ?hl5;$Ye3MChiMFq7-5^ zz02zj!$r3J467nyHiqI){5(Zj<)@@ks$ngg9}`Tc)f+FOW{IE5WYU0g%y2T5&irLn z5e)Bwj!qWnO@t( z5}Ld7HNIvz8tW*x$^GSe#qX>68=QT0cdrQ64agqDy>PBl{!52lSAB`BGV^KBf$LJOap?M%&5!%Jn(4=+Y~+*0$otf*)FOb>^Xm+L$^*GLs_gW6Cu zuNd7leNoS*lmuq)HaKY>i@9iI z6%^a1r?R0q7Kt{hq*1Zu?wTs(`^tr~M6v1Ho~reyNX|cGu~H4fpTw~eyB(5=H9NPK zv^1T5!l(s0Vz|$yOnjx{`Qy-A6#NuMjQ}c2;3Y01XDTs36lFr!XT4D*J#;1T+V5k}p z6GWOynB!uu>fj7Zh|H*06m#EV^sSn~RznwGi99=My zFM>0*#*M(J> z`Z)FcoRLzGKcpzKX;-18H_t3RrsNWb!d;!^Cwy7n*n|k_)ZT`DfB0EEfdSJ}+em%j zppnB)mY^|#10JVcXT(!i^%3bYpD^p9WxE$2gy=LMM%s=sA58IHvlmg%u-f?N1FvC8 z(9!SdG$ARHWE%7Vx@(FN&lcEP?cd=s#TPB0MuHKB?`BvSFCZ`2cAs#PV=$m zh;ewxTJHcXVo*S>=oV#CQyx60Zu&Uwo4!&&Auwkn9I|g$vRu|)7-`ed1*H`h;D#Km z{};+Ic9#v>mEnWrR4Tn^x?G<9mUM4^UyT!yfX@2veWghbTKv-`D)tV3%lWnibD(S1 zQY29KJleTVKu(UtAnVT%HzXaCfu!1i5$Y{KqFmasUU8T>wUFYO49tbbKaVw46!j;! zV}`uM6~U6E5k6lTRdrp{s^507-( zNR;I3Pxb8@?1b=qM|YBxtitzF3Kvvq*G>H8hU7k8hvDlaBYeyuU!(cNqw|zgD{>K= z<2=hbc!yZlk`{Hb^dJ30WXgD!csdl_-656nc}hFT{Au!k?v(!Qa7z$)8cgpHD=0;K z#-sgA9}DwGbzcMGo7p>q3(9)11g>ghinO0nwe~f7)K`{kki(@->UzS9f1*aF_mmRP^Rj_9G}4xWAp2*TAT13ZJ;)341ZNB zn=?FU2obn+{u_8OSu^tM;cYes=@KmFUe7rMzqgei@+Gqq6dOwUyo-wVA&M5bbPTbeE7Lrof zew&h!Spg+bcN2ET?taLq$7I`6&#HK1c&W;xA;$ z9}shJ_0ClY%%C#0h5i&=@}h67jP2ovGA-ZCx7U1+NX& zJl7)vQDcnsI!1RGT$@vDY^=<9NH*Bn+X@hG+&en9uEivpMttJ!)wDLxub=-uU0s=r zcMQdxW7sXgOONpZOE;TGNB}bO`t*dEyzf+tz z`egh*@&l{1QFb)8RNY~qfwKs;sFPO^Fm!?KWhQ=(Bj>WdD zjc!?!Ms-ZmyFrd7K2cc$jsr17{U)Y%K*H9Lu78FmSi4^3Q^sl^!Jf-5hmY z`Wn@0vnX5KvIb8_nIgA(C=|L@SK5`;L)%B#&rf;KLb>IADGmboUr#&RRD`^p*?A-o zwXy^YDJpl)b4wmcy5z(NiMtw11Q_(eK*XJG^X-@=10aNskPL|fMm{nHA-o~V8@-71 z9sXd~p0$qt)?ORH8n~Czij-ni?j-n}; zh9UNSVbI_2UB_K@s4&w06c5LOsxP=8Y!lu; zJJ5mqTAw*?rUW(wr3C%j)|y+`8oJJ&C*t!2oR;w})5Rpr#1b_-St&>UgnDY2ry_uZ zp|@>^?kx(%KZ4;D)^H_C>_(T8!QhA`0k}t`$EBHddwz07_DtlbZ`*e56i^i>$-7IQ z?G#TQJ8tVo@Rn4z`^UzLroo9vn(GE58JXTT2abuy>Xv3TN5E5ocPbslt=Jl31xM0};;mZuX^M5v+M1>6uFs{aFa8Wm)hbGL{9&T%+^)pftL(m}?Rl>38NTR& zx@>@>>s+SoBfP96t?FmE?8l|6N~az8V>MVI`9C2-r+*M3JE+Y6)l`Y=H=09?d|AE7 zllJNUGjC3S&*_UhLXzWtto$w<``-{@`A?Lopsw$j&M_zApgJBH!brXs(>0I#(ufv}8RJENPTJ-N9fh0I^yV zGK0x%wZ|Wv$VL7|DB5P^iO+KXMwe zmDmNwToWlGWKwd&Imey%4d8XsXJcnwn&N+o#l#;ZB!W`U#^4r9#3xY(G-r6>{!~X5 z#+x$%NT>~`9q~uQmMi#zl^0GE7?PG#1XxWM=?iY*pvz-`j~y6gxr3!-x-e|LAty^| z9-A3@V4g2|=nrXR#WVFE`WM7Qv7ZXbh`o=vCYXB8d$g&%BbVf5LY9;irDiH>$hcVk zDX(hw#HgSd267V!DUd=IJ2SUeR7#guIFppYQ&#{)lwdn9>W{}Xw-i~Po)s~4NNH^> zvTG^;bql6h^om}F=6fv^7_X>?KU`kp(j%-nXWg{milX^?xY%OTCt;1{w7~+*XXT+> zmQ+xWzm1f-AZ&)x+SlPQP7`;Lg0IRZx4F?+zo{Dagw8G-XNPDUtN}T+7THY3x&7#+ z%5-eOw~bg)*$QZ=aWYAz2xh^j7$u#tUT}7^+Yqes19vn-vxp z;mcn;0H>bkTL~I9rTxEgFv%g;s^h_VLc|r;NMg{h1dih$DC8}Gh|0D>4d_ntpvcLM z0tj%A>vrd@tf;tna`XT&v|Ujx%?XPdraXkG7()YAi^K=X4;@0xQMD_Z51D+|8ZAL& zD`zKp@hpfp$tixyZK*lrf8`@1JA*|PaBpv{QUp*{sTZ#ltb9V24)RG!*I13dFTeM4 z6>JTFFh9RO#Y6K2fOrxh@`+u6Fok~qZ-{WTAG7^7gekfJ!AxQRcl|b$bFu)*ZFGR} z{WeSh;ST^9CNW5gdlxPtV`$UNOcW43XhLK0N2vKP8a0xLk*f0_IXEy;Hyq<%JU>Ix zhh9Yjo#&#|(2b<(%*7~h52H0V4IxrM#mRLQQ0W~u`5#x&e)Sg-L4X#8L$m?-#i|YA zWgrMK`o)E~r{fvUph-f&Bm-pbi2^$h1rf@}BxuNzz}`Y6Y0d-`!4i{UVdW{||4QXA z1|*jmA4(fq#H*4PA%UY9lQ)#Laf3m|HzUX}LHCP~>?Kk(%8W9`j!8+^*r!h?BQZrJ zPV#-vk(H83u&tFK9F#+34$_UXJE6-6Jr}0WK~SWZO zPPEeoO!Sh9&nPK3r6kdiUp-6;u0%JH8n%#1mO;(j13gs;8O`OZ;TaIz*imbx)bkT#CI}^5d=z zH4RBLF>COU%F5z5mg+%h6}34;fYbm;m2xU#5w$e*eazyW0-o4XHp!dCVCnl~m4OPb zidpM&Pg6>m-IB8AmAYUN>Tg?wY+9rX95p3D@JziRS{-QV)qc{2I=stD1PmVfVbW%m zW06utl#A67%gVp0TNtKaQY&JiPDL>2XQt5oF<|NYjsFD^J~!3HR9hS1Db51VnZWVt z0*PJm!ZnQH^HNK&_+8=KN5JpqG1d^)5mr#vfKFo)Zsed)BE3d#&bzhdOJQ*Vv zajx#}u9^tM00=BCj{!S5r)0>fefEX7F-0WSf{Cg_CffD!0EWh*gvotG^B0Q39DQu` zty5N_%!P2MrczOQOG*Cs1xJR*a!Eu>pGyzKBGsn!qe)ApiS@a9)215nsS90r?nw$J z2sR_^P}$e_<$ST`zh*J#3McJrtqg39k~Uy<#<-I3%MwuD`j-~9o-3iT?5$n&HpX#T z>%Rc(J{svWRhB!#d8ctUS;@cVUP)x)%tN z{eDdB{la$d|G{?`sinOLk33M$y1U+y~5#}Yk6D2!`)MDD(>@`D0tMcJKm9IfI<&ZRwL$1JekF0q|y*FfHL^Cj25 zRQ&Ujt-4ZrQ`e;%?|avG#%(J`;x&9Avo$-Ew~w6BX*`I#HMPh4*b0Ah5cw;3&!f_H z;M!dj4eKE}jMpv-?{vvY_rXq%ube*aZRO+nDWkUQitEZFCQUh%o3aa;u*dTpuH~tv zmhVa>&T|=$sC_cd_EOgGW3{mRwdSPrJ`4|f#*QynE5#F7fa&c#UrW+H65{)q73Xs) zul6>}-|dj(_kIFwey{22eqR9kE_!W4vyY%!l+s%)xl6ctE{FL~zG$zHXy0RLw?Apm zQ|dgO_`j_9-;elrgg}gi_)WKHsowf^Q;Hm!`SvZD5lZNsg?Xyp`qQkMy>kS-zxWcB z1!9EzW3Os+xO;a$`Q@DmJ(K;$owM!d@E$MLdMOPerh<_u3zj<#Mp@OC9rfvD3z2`- z0#^urJCnZ~u?i2BSq(LL)pEfOb!`o{ z;|#M(57C5iM=}vKF!2{^fl}oRF;Wk8HV?DG4vhhFYFoC3dQyeDQANa4g_(s%WSDD* zn@4mU1x3Dip`)wf2!#LZ&bB{|$iWWtUX6$x4R=xx%b*IAmWXQNj4+jmNIMO;mwTj@nlm zB32fatR7>m9-A8;H75}pyBh5t9^F6{Q>`AG75)$Vi+E0t*r4(@=yl;1i5{YgdN7Zw zhKb6=j#~?lhlCBgRgY-N_y@<3#9->RN+A5K_em@Ruk=7V;NxMqG6I-)Z@`S zqD9V<=+=@E$AZ};JwriUI1Uqt))IvxQs8i+Xv$M`H4@<>Qgk8`QO{C-4{Tv6d~ju;@}V6TD+YpH2CnSZ!4=`%7I!xC@{621l;X$&IyBs1%9 zvQjKEQC8wYl7&DtKsC*y|E^_q$n=@^+@ZIeJgQs}$&4o0?9B2U8fVaxx16u`+_|%?eVjZL&diJ-aPT~PI2~mG zM$p|XKO;SF_AL(;x4@4BlDx1O?U=L@%YSgB1$nmVQ%ZS%DPGc@`T2iVe<_T{}u;-b?iX zrRwj+avi0T)FtZY#jd!;T>C2{=dm6pfA;(oRt}HwN<#a zcapV;8#QMcWpI;qZ@BgFA9b&|RsE5*i;|U&9VHv@$dl>(oDnEjP&GRl1sRsbSDf{c z=QS6RwbgL7c@qs6K+9Sbnnn((`eV)7YCt^{UMYwa3K^FGWMv8WJF<9X6X8VD-gu)t zUNa_5GgoD!vRAYEN24?i3ha54c4d=nWr;PM;K^IFL}#-u4GK+WvvpLn6C*TVoem#k ztJ6k{Yg98iZi}!aiXe?(l5)98WrtXw^nX%|^!_RlAdYM>rRV{$#68 z6iNVm9X){B->NMTud4{Jt3;|(t+UPQwqv5R3*#0!(W=YFs#9O8ZQy6wsZb6=WQZ){W_Hy1RnJSg~Pe>EOd zV^lvvX6r9&v=ADwKKo3xM`iS`-j^Rnl4jtJ6WVaMpLMDO$OytTRde0hzFCQCLIaNX z76UOqz%btnBR$C0H3UQ%;My#LrNA6x6evrQpxTMy34j}|hH(4qQ^>W>79p^VuNt7oBM z-Hw0(9YD1Zx}EAe2xw6Z>Y)C8wn<*}N6U{YSZ6sRjDn+%0rgd%F8CRV!2_&^UZ_T+ zv{6{aMyqj0NbpBAE{5<>#;xjlswZG({qw*#hx~9SftmevpA+)Y86(yWPzob~pZqvK zOrbu+53LH?H(rH53I{r%Ofy*sGL^JZ)X-%DrVVP)2h+GQz11~s7(aU23A(*Ga|Sn6 zYdv$DRpVj6G|YKd7i{*t zbo<2qVZM#?Z(F_ad9lv9%SP!>0#Je<|&2FdF1D2Tr$MPluwJHwEM##!w!cN0?iPUJmA& zd;Z*jL>x%XULUCjjDC%sPA;WY11i5-3a7iItJjfqw#u_NVKF!Q5I5?6iZej#4Pey> zOt5S*!nQiy24wYCBhTDW_U851w%z3XZT9ATcb5py&g<49MfP@$&DzG*7OUCDd=^Ms zwi+Y}7_e)3acb)vaq|mt^D27>ZF~5{YX_}n&fmWW)pzfqdk67*k4Sd|j2^6jb{h_2 z+W>L@{A(A`y@&t3-Q2arK)4X!)s@3@aC5as-E#mMyARtpn=UBc*SEIYz02KmKp%TB zGQB(Q`mcxKH_wOin1E8oj^ZeaM}2IEo16M11@|K7H(%a}08M#6`bPi3ARrqb6*-?OwC5Pk1t-bCTYDd<2Z@xv@D7&N)@s zJ`U48y{$e7sM+$g-Ign^Mi@F0)IKBPJvG`s&99jY=RL9e?ufTNvC%!Z^E$7QI*%qi zwvatGmOabKSq~HY7ZdnK?I)J&o=;)|Wpp zi@hw=y{w}@SwOmI;k^v-J=@({Mhf1|`o2iGIwH=xEF`?DB0L$NIiBk2!qdOv`MQp& zxqjN}Na6=Qqd#jx+PU&Q>8sh=M%o8M8QrDdEy}vc_5~fJ2Z6r1r6#-_%sB+;o-YvI zI`ba?_V1akySk~lu9H3Y@gKxsgvH>2r6huyiM_k{zI>@Uo&$cjMBm;**g3K4&7ttk z!P;%`_3$s>o~XqxVB~IN5Z!?jTmn%pY2|J%2+x7CC&b8C#@`)JU&yktm$UQ_IKZ1( zViZa~097w2Q|;4r&s9V0-CWO(B=RQY&8-OEEpYB(g7%uim-|rnS_-(wmc5NebO%=d zByV?x;|Jqp4?{2a8pd!HpLJhNgF=M-bRPR`7xik01oLs-LG5=BoP&<1zn`~#PQ1Bh zseNE08kHovgYJEIuATDk;YVN?f@DDXsWNF0ydV+1hS~iXFNOaqS3^mO6xifp0fcT2y_kE=I zfwA*$5!HuP+b^+BS_Dl`JF?BZm%Rap5Q9qbCqmezlh!4A7U9$B4hvo6Y58 zfNAS%ER&1WG^RBHI9q@jWBovcn#<=ZRT|BzwSkfbw8RJkgN{u=<+FT+l$5bWdwB26fMw4p68tu zx>NG*H(8qIp4ZU%;on98YHEh53qxsMMk9a2ao;~3)Nn1xR}M{(U9c3ah>Y9z%>P5` zFt8??aTe;MxL&cSqPQE}6$@bnzMtmFbh8=@gIX)hZoK zbR5R&5^1IXMPT?*HIIg1kfBscvx32hhLQVaS&3u! zX}26D#-WSbZ`m%V_AT+@blRFRg7Dub55e`K53TN#pS;MLLpQo?*OPrd6s_R{S65ze zOvuQGTkyjQz@etKRO^xe*q-IAD`G#4U?wc*uMP_R^f|;}bOvXZ*hnGBZ zqz;Nu&x~YIA(Wm72OF9SY#kPm4~(!<0>3bA)TN78!+6u1hI$n&FN*Qxy2w4l9OFla zBL?r!T)DV~;*EVnF#@*fOGLX5^(6~~_!1|-2Cs2iH^*6GSLz|@6+seZ$BMltAj6kK z3o%j;;w)Khd^eak(pt_&lA`au7Ojb*EzBT?f*_&^HG=N;C)mY$k)c$!iDHz@iw$Y+ z0jG8a8R6nhjinD}L|6H8s~y5Ti;RDxx1yuH<_Fx&Dh_7EOq8(ZH_O<0KBVuG>(ZvX2s!T~q_MbfGcLDCidHbjbZMJ{ zyJ1h?CH$AWd3eJ95Fsb2p_I2sUPjnjKC7MapXj}FF?RqgznkYw+UO7ti4Uxl({@tE z;SdFX<+xmsXH(`5!YQ*zhl1a8Orht}@Bd_A#}|42WuvNW2|a#l2yvO zgwHyZD3?Pon~DWc&$N;@=h{6{3Iv@mHbFhsxY$_AS(vRvZ9o1S5jIwPY7$pg#3*4` zDHQxKUbO%W16V;YT&b{8vC>uJ(%@NbZN?y_I9AZyVDqcgSm;B#0>Dr=?tH`t2$dZC zp1=lm-m`+#8XU=JOwSIXwfN6VvrE#YA^*$TI1EpFp7f=m3(?lXr*qT1#MSGSt1uVh zZO(6r*uQ>S>93XRSY7N)f#I|bEihku0u!rxPR7>D<3sy!M6G8u`^G#|OV3ua)xC$j zl1hgwIo%OUY=*K#8L%QLVA|Z}Uu73`W2Fs^m)d=meH%=KZ?O1`S^IvJ!wtE?ee3Dg z3D%+j3e4PEnL)3dfS~mZz%zh1dL3p;v5VgFGJ11lcNteUz*^Q=%YaN9dJ-^3jP^!_ zG)qwb06xf3VoMuQifK$Jjr@&i)&S|#jBP%6QgV&KH#UQD8mnKoO~9KlnY5_Sk=?G9 zTjw`n=X#xXC~*pEA2IC+0h?toe4x}j6K_yF9HXbbOcMw*6eN0+jk>-Igv>kPCX$%V zXSWMJ!QYgclL@&Z`QzS1aLE) zbU-ccCgtl0?J_`fb;dN+B>Eg0tKHzt)?G)GZADv3>v=BEj5Jl`>)5C?_AkvGKUN6w zT-oSt0P;-1Q?{Bf)oHj^3Wul}Qn|(7Al4^?pPQ}BSx@!xJOXa6lLGw)OvR-*SG-dm zfgXI-HkMKEySCTQ-U4)yoawNzqG<_?SS>k2OEW|gW zq0dx;GneL<4;bUst?Iw^)-+kVB{}ofOGMySmHGV`SJFA0UE{t=qw^H7>h(H4 zdv{aWa|(z2`3leHwGy?ncTE3QbhYC&R=9Z)6wF3~ZvQsplylq}d9=v(b=Lvjm6YAz z>pa-=@zI{I)TJfgrj^ETUdeCM2?>y5QCj3*MQ1^dra&|fg7y9n{*lKKPk@S;jf$NQ z?XkyPQ^1^zv$&E!cYp~Bp=Vc!?GG3K7YF~DR(%v@p9M-IXjk~j1vd#q_hdQmWe|T` zQs>A;4=%odY*HZVW{{S7e_x{@>+S$gJQxnS0CE>Q;*_8~%^;St(9Pfg5aY2NottkN ze2|%$8_ju;VRK-@gBOpt27cgoCO0{FABc4+nR7cBgdnkSpKBu@Gz6!37oVh6 zKWbGU-KQWIIUl2TKWmpTma_o;r=X&BKgJTP6vQAK_#hpEkYX1*_ai?;5kJdP-@F(9 zCpxb&WMrLdHDKPLV#$K;UHryxDI5Mt8^w=}2(0wiuY zm!G%j$HlO#)lgPYfc{WdJzif^0LO1~aWQFslOo{{aL9;%V}7qAKwI)*x~dW9$B~$! zfw(TQxFWGQZ?QyLF;DVwyGPL^ZHdIqfq3Q7L}`f>?m@N9F$RdSNb4^1B4#3I@menN zDIwwM%<4My7UIfu6J^obAkc7U$+tC$@}eOG{qf``$*L*I%1`m?s`08r$!Z9x+Rup^ z^2xeKQ6Fbf$;JO7yL#uXCM9UVjf-Hg{U?Bft#v~6e&XWOWQ+h@X5oj1Kn!8Q=!tUf zDak3x7+R?j>nZM`iL|N_H;l=Vf8z}p664m=*};<$S$1Rfra1ZPB^^=E5Q5BdR7QHfP^I?C;1C<`ndcy2X2E=ffu!AhWInTGAxhgrav#zQ$JPsn z-U|)N^V#0A)Wy>s!4sC0ax!^ySLgFMPYdZ6^N>dhLO#>{h)bB=Kj(&wEDDzw50%aq zmm=Vip<6&hR8b&MQKVD(Ydj)X%q#;LVr;(Lj1bZyz3dl1c~_-Uioe8P3`6IlOlYGl zTHQ*_t}OhdV&F1=U$rbyEM*$J{2>+U2LdU*-01hZWSlo4S z#>_-TRb?&e6)f0BBb7xZiA6)jM%|QPUCL!`u1h^zM=dscl{j4OIxsyad$pq~bh&Q1 zTzx|IO4*!cUBzcb)n%>RU8ABJfb27wRLrbuG7?a|V%e;0=AugNGavV*?z~LoN&wJJ zR%dO8s3<-(cBZ+TKrlp ztx}o%r4e(ajt0Ln?y^LXy;{*H-}r02Y-{!37vLUp<8DjsP-iD71aM5ZlO(f#BBQe! zq9x(8f#t3&?4!m=&}gwX&+u#Ix_Ztce(QE?tMhAf$z-ccMd#5(<2gp(Mh0}>MzeMc z07baDPw+codKt-g!!IpVC>c%&aStQ|3Inr__;n{3!yxi?hk;-h!N#uBlLc3s9?qK8s7#wI03QmV6j+XuR##sU>4vq-aQQZ6GqJSJMIIS7Jpe^Rez{cnQt&2USs2J zQ{(F+iIt;JQwagqVafCDv4Bf-E(s-MKv%fc z{M(4T#@tf%Sh?&Vs05~jSB3Bux}*mtp4B+!`@o3)%=Fo^T+}o;_E6d1sO9<~Nz_8# z{w#&?w2jal9$O0+YOfeSSefETp$9HkmfUa6VujJ{oX5Ic-6*-`A_d7TsKs)u zBnSq`;O$`Yli`<~Sd@~!+@bb{6EYlFGTH{lUj6!G_W=bNRAUKIYeYADO?TqR$Y)Ov zbo@JOdnRiGWXio{KDqp+aKgj7LFc

      A6)encTzV=kA3ebtC*;3RA#+zb)%1Og=&W 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⊤Lcj2j@=_KpQEq2WBMf{FEwM1M!Z|O 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 z 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�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

    1. TRj714YppVi#RTrcH&OxBuk9H^GnGaTm!io&Xf zj}~2yBr4S`s_fKiUD{0$xZ8B?OCRsuGEcY)+LN@{dZB5js2*Q=K>m&+6)m~|DRF9| z;at|fglz+_o_fyO1)0sG@QFb?bV?D1A-{8#o^<)Slz+q!nw@xf&i+o-fLM2^(Ds?f z$51D%Kc8zd7fF?w)a6_AdZIO+Jp2$c!-ta)ZJX+%??Ayz8=eW`gM-e=mo(Fpc@7mKY`A00nNVEnp~0h+Yy9OqC~RYe$f zJm$qB;zD5aHx5Sa)B~QL>jqjM8*(SOtt9|>qui%K2zUrMUn2(zsduWF|F}gZpc~Cg zQ^bZxZREFC>jkh5&#^N~&%53JHIYUZj+mOo@>yO$B536&DDcy~mJ8%HXKbg5&Lt6q z=%9CK%&A|gT5XEWExj*}R`xT}B85Un)bZ$VZ%xYc+=-36U6aZ8MyvCIrWalAItBVr zrej&xW-5ZndhO3wQ!Hf2bB)GRz8x$wkLjbkcq?8PQBuW84N-_dofmY!zSf7Po{CLF z4<`J{ROOHRWcr5Wx_ix@_p39CI2JKD$3i^qFM1Lo9zR8{rg)uWGGx>+f)b6a(}!QT zXV%$OpO$2p`>n2gl^oUAj7%c0N`?DLLHB^-q+9Z;n2<3YW$l5p+u>H7dwDT(&~eQf zp5-4B5v14UcS-=g=B8_H7(-ht@4CT^_RT1T;)dw90z)^z(`WttF+X#1+LEkW-w&F* z8uv&We>aPtv{)K*&OZ6%g37#YLx6e{#`L-^=WM13w zlz35SY}!ZH;Do;|sK|_cCv{>*+@cza$wl0f;|^+NDa*W_jNi=?iMxb})%KcMCV?AP zK31M2q6S)5#j!=T~EmD9V{j#Bu$AaG&*v%DIn{PR9}n<3g^Js0|vl z9I()YOsnt?8c3@)>7n~G;bik1nemi?b*aLlV+B3#CGiMCl8;V`d^_jIoRwExJE89Ub%Co~94pQ?=aJt~ZP50Q zH{?;79@ly%7auyx^}=^|8zF4LgfTcCB2YKb;=AmMc4;?PLi7i*y0n;6Qfz2kRb2c z_ja{dZu;$zPwT}@NP=p6%iOb^zf|dB2#*n<<^-FoxL!D6^>-8tL)bE{#O21SUYyqj zvD;+J6#n86Q~{Cm=s&bJZn4OcJv$e**hV8&xurs*it!xjC6f*VVcC#4q);x-%4}nz z4sY@9C&QNT(oF41HcLKu=Gzc1vxHY9CyDjV_YoX?*?=t{;ces1bh`0e2_{XN)nRP( zcuB)>0fh0fzSZKNGssB_xLPP;rM`*q~Mvl-U&luHp-EA9`v@pZ-U@&jHibJni zJ$RzH3MMLuFhD4`0t;*HFq4os_m)yu`-j1?F!nfBYh?BL6{3(7)9K3AIZ|i5^QpBE z81{7(%#U@0ui*#Emao0u_KS!Fnc0nqXwEFPlpyXZ)DZ5HT?RNtbZu-W72%_JQMk_>r4!&7SiZQld+>Oi^&UKcE1gO)k%@3 zU%blgzUo?m-u0ZhM6YONaar*K`ORo6$lR#tZsxsUGYq>>_4e>au*o-z(hI1Xtv*z1 zzBZ(v-i?_WC>GRmrkQl#5(`YVtDiYc>d1U`-W9 zKLuf(zV=)+_Fl_BZo%M}CaEG9@yy|q{uWmvLfVPmyuICXRvB=s2LX;88Ciy5`E)m7 zOTAdz6CDO4?qnFXthUM*+&-`=jEsdRp~mnScsK{PE{wX_8Z&Zkn~v}i4#o9_i6o1` zm%Kk>WCuaqnW=i_QPRLzFU#u4;ti4w5iI>zmD)WHfftMvOxZDeNYsHW*6G1IQAS#Z zWlZgDuUWYAO*h2S_hQ{<=9%x-xnm|`ADC&gy{=mIF!kX zCX1?oT8T_zbNdFHa!hmn_HX{?7ZRB zyAqngEyOsRuMDImck)?h4zzt(Bkv-B* zNlf>SmFCoX_Q|;cP*hZheDn$h;H^W?Dy7BoE6AD+xiYVi>zVD)O~OQkuHT}mmW)=! z;QD{`QO$sCyf2@TO442kcL2H&E5x9yR579h_4@3(Sh(-duEb_n6zt@Q+e0P_Ul1eC zUH9a_I^;z#am8IQ!e7|cwwLu{4IhW;sC}z!%7%e2b``njxNwnsLK0#!EBM(Ja@!Zr zUI_U;3E;^7Wl;pxQ_JKls}6%WBh}czqHvKb0C$XW%6j30eV%JnP zbNdwz&8Zsqiwb(wvd2%y_S$CHSQx#VEfo?rcn(KB;7 zn*@i&^|ir6yM)Mn>rlTUJa|KT(S@VqfC|ZAxIfI0SHTTZ>m7~}9#**bczgvrIYnt* zFMm5JU+UN6fg&Laq`rRDo4BH`Ym=OocMuENDDCzg%NdRnLjd`2BSdrZ=<5QQ6_UD4 z0fB+f!QI89utDUa;TA5mOBf$C=%WEwhi4}LmXDil`^NF zQ`gezRP4+0R=qsLIl2HAX#!|?m2Ljl;C`;2CaJf^jPNi&aC2plsJS)}>UJ?&betxF z)LE;?IGY{lRKjc!p&6yN^?T9LZzlQxNSHQHP^O<%f|>kP_`_M5a@_Xq7k_2OGG;} zob3z2{mJ#tpts>t;xrm6BrI8iOuf2N$h9-I5(-406;*HbU_7j<&szFn_|CvB8E(3T%px2vGri$^QxLR%W`GZsC5dyWJ<`X zcZCf>;m2w<)^)x^1~6{%yy65^>#l#F7(lUjkoLL@-FIn&*8!!wOj zo0E2zfa&zG&HAICSl+zWo$hIGgtyu=E}qBHTK`xA>TI8aix;STAwy-v!-E>B6x2+$`eQ6&ohvR> z@PC|0EH9|I(4u?%r0tZqNOE7@dXQy#n&N(!KVLFVnm>ZZoda!;IZs_jP<_Tr!pWrm zR`9Yv3vn^RQlkyxp@$yCjRgZq0-+T4p@7 zYcdt~&OcH6E0z2XvpG$fZ6++tt?oHUl$QZl;0h0>*fs#Npa$;eE8nWJ5G~PKpFtQb z?#ILgTCjaf4iCKE+^(@r=E>AxENE;iJrLq4ywt^fI%Wjl#S*{AsQ@<|arojuX6gky zdqh)nZz`gMJnRaLD zn9sz~E?{@sjFh7LYb?0)_$cR!BZz;pk;ib$NL`N82C8k4={fWzxEsTJs$NiAU_OsB zh93igEE*SB@y4yAB=;N*%>A#S@vG|x2)pJxERob$k~B(%!PvP&CiItwfer@lyH+0c zoC(kKUN-=T=4e;a-(LV}Ujs*L$tGZ`k!z_*Q+04s%066N@Rz(G8)~!3#TPW28B}?Z zw5Z(Fy1A~wNeS+GfbpLC&IQY5fme{2K>VZ`- z9A8Bec?bffoAKLWW{I*}zf^$E@C+y)^VSmoIxv)EnYwpgZiy7sZl=c-&WR-`@dKhl zSeH&5tpb_Y_lFgnD*HvFZ2i6_gsj2R(cmaX5wi_%O59d{h<+c^o}{IP;UgyAhVF~s ze$$8!cArP?jz;r<{C2GPOD~GCymdheE9q3Aw~on>*7=!LDI9&lGuBd`2e_TG*N8<93+8{& zyDenIvLC%$;#R3E7C0hqIOdrgLdkgbe>ynk4ZhxM#AFg_YrB_2rvGKpK{y%){GeGH z4M9FlTyxTFsvG$b`ehI(Pj1|Av3k`rY9b)9C<`yur?jyvg=UOjrjMAcVl?75H%Uy6 zyKY|5ftwL6OG_a9`TEKGRrEdn(9%EaR_(pvTMYyDZ9#x=r!{@Hy(OLMpvqw+Ta&;M zE!i5Zo<+klF%|>JV*Q*3!i5sK$PN`#930ngh1!W6Tp2cn*vWue#rUciBe;4A+nLKB z{5}N}pqDQ3RS{+6A>eeDoSzqnY4(zpO<-{&=6!8YyZs^l2bwsOt-lgOGqU!ew7JNv z(Iew?qaDJfwWEjs)7 zK!dNt?<*5l3)+9@g@k9Ag6R2nu^xT_+*vj&SqRLkUu|s!vI!>{sNAQYIvgb=0JMalx&vhbD(49pF9|AcPv(X z?rt<9+LibiF~n}2n{lqF{Fe8SDWb_{gL(zdO=o*`oy^~NtSoePt=_`fh#4de|0~_f zP9Y@v&Ig{yKZfW7@|z&y&P5u~n7+os7N<&#vRYwstxG_$VDkLnLc^%_KO9hD98;B9C3^N39etokXX8iJ@2;cjg`FU{+D@rwt zef)!&_~g&5JyxEATYsf>l96ZYW%Rj>O?|)8p2Nvo*|%rInw%4w1R0({qwW^!4k~nUcw>e9RxR}ml!ES(d;?{ORyS-x<`!LJWT(WHP zB-l8zk8`Ppn2%esK{8X`Kavqof!+)<)XZ`nLgSDCk(RV^t_))o2Q|p zFvHi$zxK60{T40EaaKX#XHQHnb2^2O4;GqP2eR2z$GUWwh={hQ6bWdp8jQ+G7SH9> z;m3H;B~WL^L0tAUr0NKYxdZkk&wi%K=gS47SZTD|nTd%3nw6A6|J-q!){ zOcpsDfsTm-oZRIHI3J~{ts;E(pL~J6K{lp1S{btd$7Y0_#G}llCoa{3Ez{FG zn6fqGx>UDECEA{F<0Eoya<5v5uS#T3EHB17As$EbHZ3T)z%u)0!wlZ?3j0NIFj*+$%H#Oa z?|X+8qO#p}zDq49vh+Mejc6yZbh|^wrhisMMnF#7zr1-*bIJr4UnwD*uXiQls_V7w zqbU4rlL9whh*#j6>5chInMps`c9?B^~!9`}nx0ITiq9nF8Jvp<+6>_6@7MoK z_ayV0n$)Jd-UbE!q-*&n#5|2n1wYPZ7XYT%i8ej6R7vk9G(3SweMm6yZ{Q(0@=Kll zB&E>>IjhYDaOVEA?KJ&Ydj9|DI2T?{xd4d(Fl1HgO?QNVw_Yf~@wV?jwCu|uv`RIL zt+H)hq}-mhG39H)*17&Y($}3v;SO8V3pmz>prB85Yk3`XLA9)Z4>MASLVB>Fn~m^$ zyb}$|O-Gew`k`Y&dn)wx_0kvn{q>098?CD>Et16r-G|j!I6r*Z!E=s`SbR$KPdo%o zo4FEmQA>mcws;og5HLIKK>sub3bERQpG!gNp-h6%&=UEa0sF57L8*5wM|L2Mtp_LB zg6}6sduciS_`a6U;4*+HEm`(x6GHU5Zb$%%EQBt8|JG4<7`s@8so)wo%aQD5Vw#bK zwW#$dO4!pHM8^YDHb)R8_Q7AF7mnPg=D>fC%A{RjRa-^*vAL(5XK&P#bRmv>|AdsJqW8bk zdTrf;_?2{G)xhNz1}i(52>+b()J%wP9mDC+tV~7A3zIlETVqUovp3KcqvYQG;15@R z<{g_7Plb{#IY)&P9zOg#CWtD|RW<^33@U}OJWJZFJn{I1Ao!mM*{@wUkpE$2h>{d? zqB2t~OXsXHv_ZMg(q8+DpC02Dev@-7XITC1_fv2?oWah+I^!*WL(=+B9&x zk_`O33hSAh$(;*}L++H?N@e7Jv=E+_X8I?iD2d@x=z)}^nY*zz7tn=uDXGx;HrDtl zDcj^q?1l7d*gY+$U9Etw`CbHG8B(cA9gtIL>c|8fE&HH(${@OP``1;r+FW++bNM z9sJ*%U;`^^FvMA^ajhrFyMHT$Aow@e3&LS6T5W9%{JV%RBCGIy;p(Lz-xpDPNCRw? zX=>=y+Of-;QNh0;4oYM~H-8h00Gyw+DNq-!(SqfFIv5)KhguH+9WHyQ&#`#UqN%Qh zo44L*PDPpxS(YVunE5*z8Dn_g==QQ}kk z(cNI8fe#^<2%1^~Pk4%}VdyFF5?q_xr&sIrWXJZ6Pr23a5r@cJ9H#r!UhnsD|8Ljo z^{%Z(WV-bdGP{4RwZkiuYIKHnbC=?M@pSEg_0`ie$ho}Mx`nfW*#N!Z?@iS-JWU-) zEta}fD#+zG=3&J^Yj_Ca@Zbrg`)72ng+=)puB#9gO!WsgMILMfHoBn0?}#_{b0hO~ z&r>eWC$Lhl#_F!$LwGONKqxD6YxN^k6Pfb9k|V_kgaQSf?c;XU_nqhk_srJxfcl_s zq#CgT2a}?ob?4wngpG>Y9Y17uGtm(~@ z1PrTGMsSWXZGkvPT&tjfW(KFxU<1syHEAPo2QIOy(O?sQ#gwzO#ABmjyGW-h=%632 z0(o+=R}s?8T2Vn~M0%-4lpF0E{*)5eXj^b)RcW#hRlQc}P0WYn^p$}LM z2UA2Q4ZK*{INwZ055BFpWtp!4@q{~{{860cES24{!j!qSw`MCaD+S$}#Cu9M)0tCh zs0f~_W4lh_m)&zZQ_QjAiZ@;|T9c8lrJ3fnE9|FjAL0ItoIu(xM+~cvZWhTk_MYXN z4(~xKy~yXucIOKY_cajA?)u&1{(<*Owj^V7MndGt!vcL{lE&SmSC;rkTlsIrV5sWc z{8luEp;q`=YbZ^vvi2(@dGdI&4inHZF_tuF)d2Z!bMLucoh9|L_9|TkSC1zI>A&a| zD(=KX5v8pZw{+cSnOCA#^g!;Vmh4n0^o7_z)O)S{o01n`T|5aEpp6J60CoV=Y0Z+qkzo zUVB~HlIr?#v)f<)gdp zLIDD8xc=t^4lUPgl~cTSCx%>~BhL<##eZvz3m5lCi?3HR0zI1+9hqh8#z%Me!&aSo zu#PC856c!yS1!(Vrlo{hYk|y`nwSc!%MyRyix*Bfsf$bS7^~`;_D-Yy506bj_Jw{e zM(kK@4~Cf8j|r6|R`?97Awj)~h8!B04r1N(Lt1p<^FiAQZiiW|fXtLJm zHU$aLcc8re{HByuMIz6CPdBwW`LH*yXF5arp=bkA^RU3ii7|Sst}nln%dARq0zBFv z;^wgMu&SImKfi~&{kL&GHs$mQ@P~o3dot1sgx=tRQ@;6A&%&uZ&s=*Db`j!DMB?q| zhy8Duhv|o=t+xL#G}`eke@(TwHbM7BEU>3J_1=FdCoqkbHWXJwPu71;IS?RNczoKg z{|j)Ug%ct7zZ4(fb}r?6U9o?~YWp8uaTUc1@qL%t1=|_?7>mFa6)YQIH%l z$vliP(dfyajAK#$U64zLp^gvg2BGLqA=Z6-gIfJe>gc-{QektbeVoi%s(^3l``K^kit<=VT_N3 znyzByeSFec&#B8&n$tzwr$WtCs0;hwZH4b79$vHKI`7skC`ySl@=(i-+{$|B;DzQQ z;u}G%*#|-Rw6rzXsVVi@q~`$b$9#A+6D4w$sjJTbagN8F>*HhM1AVvJ1wsx#T$_b zq8@0J2skJ}lGTTqLH%w;P;85V0dIbeApKL(Y+G+7`RBE3*7!(+ZxiIrc%IU@3)AV2_?}*GSc9LiK(K1K`9NSC z+Pkmckw>o5wWbRI2j43{PItD$r6~hfQ8K@J$x3^2$CeKOz`7GA*vqFLIDG9|Z!&PN%fPPiBh>drD`+ZZ4 zvQV71#~#Rzw3E^V9~T@l4}xgHy?a?81rk-P@5CKL&j1ELhds`qmikAwW3t=oNQm>z z?1?-+V&RQWJyV=5@E9`N4Yk<3C0V`X73OQ-X90g%lv~+4aIclgGooE@DJc|vhsZ!q9=5swlb?d=D{&B|Musf;wslho#PlOW#~QQ1yc zrZ%4c?466(D)zIT_1X4cNaw*R^RlXYPj3aCDfqhksL5jqku6j#d#lDAPVC-K}o*AVf1| zU__H?qjEl_y><=XJ^DP{e#m@oi0>EuJFgUHr#nelJM&j}8!0|W7Knu4bnwS`?~4-9 z^&6^gYrGyzn+Oh zYR;qBGrSLzwY!-Zw0pjDgq@WQgio-ftvDgH)_NTn$yy+Oyc3Ax8Uo2wjjR^9cyiG{ zcX3!wMgvA$Xu26y6oH{AeUf%OfSQj{qs5)JN~LR+S(zmrr;!fsNU4_|1lNwr8`(jC z8c2=az|uuL*6_5{7`f76aZQPPOdM7Y-$?3yRR z!{=j4M?5S zlqQQGtqTQGDq%A8juyc3JL`MftBm-LQ#p-_MQm{8eZYX7KFpRBBG)6}|2!}qn$xbr zJ%dCc^a`;_@+7tXG`rw*;P1;Z+CF55);vr`4w{`; z=HY5n(L&YkRAjP3G=%+X&gVlg#k;FQcg$gCSk8WjvMEaR57pD^UC{{!uJ{K$d01i_+P* z_2M-?(d}MXunDUr8@Jq%Vm`GF*mQ*nG$r+n2W@D$4cV31GCyp;tVw3%Cef~VF$h`z z(rx@*m#9lHW6)Yo!j}6wYmosD*R0A&WHs{0Wuz{w>^xJzBKFV$VB%3{_Cwt$r^l3~ z7_wWUud_@?dn#i64o7(IAYbfYMAcMXWo{>MYQg$T3^&85g-TFymg)2qqgk=#L zxXtq_*$)FcRoMpR+_H1*@sf%VtoQg^HyQ01BBnw_51LSB+C`*Euq++b&l$w`C+r+d zxI~|#M$=de|Jz<7QZRdt9c|&YbyEU6zv%~=RJC>Q_e_o%W#p{j3VBX8AX=+pg)g;+ zM%*#K&z1gMR{w@@NFf#`i3g%aE<4z=1y@*Ow4!aemokUfpO04hr^TaGz@${Vu=#^6 z8R0`SPEUTCoNDBZ0vh4a7AWNU(7@7~xP7l#*pSdW4Wh44GxlRqd|te+4u|#}z{+lS zf|!W45LHHeyf}OSJ79IZehtA!QY@y0fW$>sM|j)NMk2b4I}o7TtoRl+vA)0pQ5>tJ z?MOiE2qbeJH0s7c73@G;w959z&inIH0GM`~61to!_%ya6G41PRDmjvhqen^{Xo|Hp zSuEV2LoIh-ior&xDoJS|!Xld!AHbYE4w=f5i;uShkAbr^)SdoaCn{pod@1+RCYeAD z!S>hB{SNOjq0_A&#RChoM}veX#(m*?+P6`XOx`lTp!X z@E~HZW!Fb;5tdc2Btbvgk1ID|_|>#X9IEt3!n|5E7O|rN7_M%wUVaWd#qJp(CeGiR z3Ny^J-M{Uy59ry`*Uvjt5cqGW@>;_r&(}Ul*(xB31l(vBZ>1}my50jyV`>0C4lXG} z3s*QQOI_uzTh|B`unn6l_|K)mcMX&h=CDoj7q}D2y?QJb<17r?cWOtM?HfrH;hc0O zDyfwkJYJ4>LRzLaAnNiV9{H`=k1Le$**GB47#;#i`$$Zqqd$e{TZ-`0i!({n}~S z;|4ZujN4n~rCDN@lK z;RHD6&Uoo0T>i9Za1cc&KxZ~bDlLHmI1c!t873rhPCaoKmh?=-wy7JY6OBOI(l{_Z-wLFjz|#QkUCaDuhV z)B&?CoZ3c{&PCOnVOO&EiIV;ld8=%+<5a&GMGkjt8K4(fNm*gVh2sQx=#;Nwd4H=W z=2KN0R!D(Mws%Eb^dAPRfexS>fPq!&Rzgg-1g4dOU!|tmBN#$7a4quETx#8_o86-z zQ;R(ww#Z>%N<)Mh4s&%{f`6IeQR5#%ik#~qS^P7gO=2j@-smRh%iIq3H_Qj_)|gz~ zchto?PknbH5^gN~5WZbkx`r(>DjU-mb@}$dwicocHdy98^JRWkNCPwRti!(4XpSdP zhr~HGcC5Ukj{s(ZX|C(Hv~~+jq?C>hnejnY7IC1*?`3v|eD|X20>U zhruTdPZt-8+55STBEXAs_wEatSeZNdn7DjWt#`!+gDG<|vN*Z;Si7GnL`&b(zcV6u zuItYxGq4;)$Y05n2*#0h))@f1HZoP^FQ(F2<#sFke<2E|x~r@tq$a*kn@obe z&lT#;IU_$sSL|<@IV`cd!hckV2om|9A?04~T`VXQY(JXXcGlK6yMq-~8O)+CTpZ zkm~lK-v7jcpTJ!R>j(z(19<%KGPPIz+ofgA9^7Q>+HEZ9EJrMZ#~@3^@XfQE4NWl` zNJ39L`*5MIlT#LbBW`plEk}m+ZAlPAhj;*`*Gr}@KsdG9aKJ8(iwtD>Zi@p4YFxbU zl6{n|L^JFX-`T&HT?cfvD*jY$0taJfm~*85hMG9h=d0|dj@)Oi&EB*@d|5}1awFwd z6CGhVU^a&Rr?YScOtK#!2RdU0jTQ}R-KIKPiSGSPsnmXEO8UY3Oe)VNIkxGe;J-TG zI~<(+dLw}iCdw6pXZOm&fSN`>EQ5LxZ+$rZ&);(?@*F%L(PT@CYCp$3Rkb!2uS5lKEZ8Yzp#o^e$Osvs` z*aAkuwT~#D-5@;X2*FcOCqRT0Q+^-iqa{ecgLb&GPosyUwRoGE*t@mnzCr{B-)SGe}(#_sZsFl2A1-_Ma1rE2wB_}%XOd$y^Nt1l4~?4s z!N~8SK0q`OtS`T3P|*C`WmV9Mzver(9BUk0oPY3EJo9&)@wos=fQkY7w1{}utiEA@ zF#@?k7V$pJ^KPo&mB1~&J>EgYxF&N+(g zbqae+u~fj53UJC!5!T+`2I^FEZ0=^)9XnZ@xyNBONHbhVHq-^JXYK)=Ou5k%cYe62 z9}@lThJ8usP?Sa@qIawt927l}j2I4gl>bv_1M1q1`9UWScKaN}kX0;1fg5Xt`-Kit z4%dnQfJ-K~%N9+zq^g7f!Hr03;6``psPzT^=SS%>7=Sq$zJU1msw2gvkHJlQj{A|* zY+~_Jmr!{$=A}_&VYQdzTEad-cZe)I1c9`H>Sv7kIC(mx;C-dMNkev*=Im*!qD7&u zTIsV46ZspCzN$Hx1_Ev)>UiA1*p=Ywn*7pFh(4*#+;18YZq$*XULtt=jc6J$qXIwR zG@aV`olyO7$2ThP7HlK3hU0@W_@IbJXS-SLnVG!Zw*2a^*vVz3{m8#f z7?o+w%IgA zkbo(cdpF@5cN0AYt??-NECB<3lWU_Wa3-8ZYl+)LnhxN+%LF?l;@yz*HJL#Hv7Ak~ zRdx+7MOvT5h@1n>9JPa(WSZmw`7-C8nG*1FLHVKSeNr?26fj&c9^PFlLV{ajWz}kd zvGbOb-c_MjS6-@vxn4y3(CroYeLW4NxZ}iOWj(?ma)Ds$aaylRN?b9(eC_?g$` z#*f3G1PZucXENebDp-7UTbn8`mTYasj}{2}@1lzaNwi)}IR2#`t7jUh2tca>CRmY+ z-XF2La8U^@6EFBm-{1Ik`_T&f?pv&JJR?lVO+=-_V^*zeZ3%C*k-*Kf9%(Xifgj_0 zw!q5i%pvsCjB5d+PQz#_Qk~-^(Nii>hCCRoR8nt<2a=K@=K@~=!$FHbIl8TbVbzU3 z_}Q49Db2CJx>0Hlvor7Gvj<%RDjaQ6vJe|jegvg+UZzikO4fRp#S8{!C&v>p3kyN& zku;Y)>au`F&06l~qvdAJeJpMn=|ZGL`K`9DEj8YbSuN#9 zg=+U^9{!k6fXSll0kNpFX#D{cm~G}l!$H(K*aPoZk_R^llbE*FgO@nw=QUA4%fubT zQ*2MU$+rsf(I=Jji(p+G6B`uNGr(S-c#5jh)^eF$4mo;YnUXK-W?+-q9Ly64iQZ$xOj3hIYg&oXsabjxKNF!JORxsX&NvBr}Hse zYUAf-9`5MI&2!iZOGI9UUyXC{i5?i&iM8v`9!Pzq{vCuGvoKgFx-+cV5}a}A+ZW|i zI;cDo5SEe{o06qbMd@6*n@H=kkaQWUKG({Mz?HK7DtjTn$~49PG{gwt8XhwOTl zJRXEUYO_N^>J-?DLyvBxO3dBP-d#H}q~2@l72EG-@nCw$asdN%+j`YQfm&%MJAN{H z^G{L-FO%A?8lbqI2Py5LB9n~~wh8X5m4lu7&Y3NRB0+quvm+c7IOeiwX_-m*(ps03 zB7oglo`2N{fn?rdE5pDy)rswLttnj)ol~*f?9-EHt9kX|PUKIa5Q5Lxeb)g!7vuwF z3GMM)#c8jBV`?7e-%VRPCd`rbGv6HGE zmancZ@@4a*SR-qYm;osni1|bWx46UR!&)l1d??R!yJ4xlSG<8v9liRlw}dpIzdf!$ zW-oaf+edqv1YJ@5^zB98eCYjS-=L6NA0%MK4^EjOP(%|q|71Zgwj8o^pnE0|MqKt| zc)NXL(;TTxfT|`DAv~q1E>CIJrxUtv#I`V|&8)mzj|%gI8@FE5ep-XsI@+0Qd2-(1N2 z!>;~-WVfNEX^Iu=^zu$~DU1agT`~tv|4};V&hZ%!_~N(mI6%nl`J3z_2c8#C0N?tc zcz{njoP^`tZfe|gI=(v0rqKoXH9(0%BI0ah~Zf^y2WpX@|?}b?QRh8oZ0^>1fPFVDGMq1d z)IQZ-HmLXx6jG6bw%GdM26hIjUXq1nSJ7 zq3#taDhW!LpRfG$(LV}+3mB6S7%T9Q5gULz!`tGvVYZG2p)Cp z9>=gnCy())ZG#2f1mBF@H>(7Y?Rk(6)ege@I|?~=>E=?=l^vPfYMHRQ9)Bm$KR>zu zojhmWzWsSQIZ!$2-pnOwJOCn!B1xVd;Uh9(PEsQQ7< zq3Y*Hq`T~-?{z*>)cy9_G}^_y%ov80cNTA_a8}bjO4e*xE?3LoH(+#=I67rWtCvJs zG(W&c`chd~+%%%34ql$yeCORvO6$bgnp);FRE5M~KUc~%nQgN~g84H$_kJ?fMv(+) zD-|aNXfd!Zw_08kR)?P8foeQQ6<(PbMsSe-t6_TUQ$2PIKIHW-b;F-CUnAjmGBUJ; zx%(m1-}mgXlJ-C@di1q_W0=niKTL6qqc*-^6LCWOon!jY1W%83>qh~yGMW*hKZLjP z8WT3UL<8*5q2R<1;u1KO%w?yAM!m3ZRm1)PajnB|Pe7W3d?At;9oI-PTh7S>f_8DE?zh!7*kuj2FVjHv>hbakW9SEO zhjx&vTjv%{i!53>o~bf&c&Z04XGtOOVt-EB4~BevUv5Wx1gr;t=zZYpM}KBVdT)8) zAPS`$ogYmP6J%~fQwBy18aV14Gg_6~{4k*}Do^rx(wDO|fOu03snRd8+bRiCV-R=l@ zd;)-IAtjmDYB?M3E)K7a7Be;$Gx} zEbh+N&TCy&T(Co)fF%Q@FKUpiV`r@kRd~-Hpk>tqp^+;E4$&z5GDZf`VJzYL_gP*E#|0f8{gsZTFFTy^8h0)=5*>VP6Ke&w0^l7&mHZ(4hF zP5F^+Ol!nC>Up9AKitF@Zb@spNaC6$qL7=_O${aqBV_>f?r8f7QJRdC$5__s+rxZ%A zsZcFX;tLw<)-3qTKKYPbB4!9WMyEyskpxU)8|N?TW&D(_xk`mqhIA4G zg50#z&nkQTklM*biSHp`V{6$cbSPx88JAF)Q$X9RQseGx%@UNKQPk#xh!3bi?Jg7E zUlRS}1gV@0W#{`0lU;Cf?&HwkH2gbK~D*cwY?BfWzPN5Z}?Ja-lIeoXpK z3zn2m3#M(j8ESBBcUP#U6`G*$1tRNkNFgQl-i9hbWqTWxrW0r+M+0|sSb}|6%U89g z@wlKk+rdtcW?f}e@0J9th{x(&!G!;q7}SeGr6ts|!4{&gz6NkecM7tt{UE$Wh z?of0O5?3l>rPGIgjw2z{7RJBAMfG9d2@<#!#oXoRZC4{q@IV&>;*rP?6(c!;Dlsx( zr8r0Zp=9W>4rSs^2+PTYq>c2pn}p59gn@DD#-!Ce2Lo?Omp9Me^MT&7@fv)D${cB^ zHS{qvzcI2Tonhi!mp9g_q`50(9Aj$RVbgN zikZ3ayVPBi(dZ<|xL|8`!>JIR;q%0hv+Pl+U|#)^nXHs(PU--?ciQ}q=XV6|kR!)7 z)ehG*a@tSZx+L+N(ZP{j{5k%d;gnbu8Y;YU32Q~S*O~pny>efsUdO5fa||$pz-G39 zMgcipax$Rjj$MTbG}!}D8XPtl#Pjh~;-#(j8bp)Yqhr5Pj#_Pq<3;CjYfu7R-GSzm z-)N9=RQFNK_jD2n*N>e!#2=`uuUK#DJ>B<+ObA*e2CwTfp(dmZ#A%hIh=mI^_h-iyZCT^G!@adQ9oW+EhccnUWa{KNB7$E?T zX~oUMs+?}Bt)#aK+&`iQE)8D4Ql!Va0w35EHsU>OWfvu`ys{#Js*?hIU+CG#ta}qTYLY^lv*tS# zkZ+$&zV)=7ac6s46N?wkyd$$ju1bL@soUwB_$KrgdcquMp2(O%krN3^^Qy55i2hg- z|6rA_z*<;ctp{!1C;Ym$_{BN;NX$H&$t@M3a3Lm*fd6LwHbEGR5eoIAHlFL3rPaW0 zq|l}A0piFPL9t4F3MM$)BYyNQSAS{4ZL5vuHX(2XAD46ARA&iOiF~AZ;qhA0|G>;U z$5=BnY8;#Z7Ia#8G4`WD$rQGpu|az2JniQSpkZx!Z=+=(VtX!+2m>)YE%OR4e*O;#Y$+ zdmryPQYgWBWSaj($=QfHN}A)@N5<41!?nmYk6#&mu>>tD##rB8NPyC( zl^6$s_O7-RxXrab%Tq+(*(~W6e08(ZIb@T_ z;isB#-WIeCAgc?wfQ&=WgEy;_`Nk&&FXST4G>uvRTR=Hgc=U&l!trz_j>!li@6mW{J8crh^ye1V*11#>X;%CGg= zp1uB{8={)l!_vS%s`>cZcRn8IneSF)MGkPCt*Wd=fNB&mW$}Zq*n_06$$%vKY`NLs zU5(Jn-yIG@tF-#rsw?S#LO$=)ilwz_DY#0|el-TA!jGC+aBomrxglGC{ij7tJzNT8 zU>y8OubO3nBz{M_DOBU68x%S7BkP|nkIPWW%Afw7h^wW6e;T@#=9Low;E-Dq5doNM zzKt*R;dJmW@zW3N*4Q%OO<_8;?gsiQ7Z(_0bCC4)Q;mSSjGWjZ{IX+^bZ1Mv1FG~I zXmU;RYW2M;!(V<}IAItYq$cspYL_oA9i~cs+(ImsZeN(_*w6TIC=r+Fu1JX+_3$?G(&X10cfxokN#Ae@mwbxV+ z4CRY=Y<)|JZ$^1og_SXAd5@eBG}AZ$(e{zzUG)VEu>*Hxt^}Y>la<;;7YCY~36X97 z8gT2mds$4*#RaPJfMT@x^Q*xwn%6fT0RR)?IEaBq0GQe3Xj-)&NLM<)!yo`gDsTn{ z6kuJ=M!?x)1QgCPUIdp>%cF@JjS1j*cYUhPc6BngiTmBp%4PAZUh^lRn`#yx?hp4I zuH4`CQRc~}dx-Wu{20KU$cpS=9*+I*e26|etS|C6@n$b`Fy#o6ZNVw!;Mg69>NI)6 zNY2qV4`{l)2V=&MvEMh{ZR07)fB z!Sc)=3ZNPz^;-4fKmYl=OAr7{L&cz4ORU(@0>FF4eE<;ge(eHC*A+E@_+A4ApiUfZ z0Y}HZUy|`_SH8|aw*eq0YXyU*8qc_yTD}6gU!4!OKItqjwZHw2Lg5Vu>5n-yGOnFF z1_N`31L~rWa}9*c!XaazuVvAgdEg*0_l)I1r%{8fFGLD_Z{moYNF!(L$ECazZHSp9 zI3>AFHQYP+0_$bm*;TbN*Jm})KpY4hwjmQ+LdBynZTfkwE|6H7_2IaPuAsCbb^lyg z^RZ%Z4`{!QwnR9!WTWbrkS4jqp`s&K=w%M-%0g#u)TguP$1ki6!qpteC5Z#Z5YKaf zewcRn37@v1G@pM*fDqMhOMZ)oi1UT8yE?h%A6n9Nz6rPHAbv8jV#!;zJoX{aBPYvK zq{k+nO=FcRzYRu&c3#_n&eUw}L16H1zoROD6~Lx9VV!ZzZg*mqnmkygByXw|jB(N^r$3I|1a-g|Yl zTWn8Xwq7)jPOoGxa5U@ff^p9LI-pu;*qCY@BPfl&XAVYty9YqNoMs7K%H&_ zE&`y;q0i<4T(^!y{Jy0UPXG`MM_hV{3kP9v{c z(KJcw)G;e@lb>;jnW1oD#n<9JmshS>;WPEc)l%XlXGU#0YKpa-uYLP@@hJm2%Il)b z*isSCbm_T|z^0Na1B}nDeh=>}xBA=rLco@CQ$tQk^DS}ICSKXkxl11u;&WaXEUF+Z z-ZX(z68hdq^fLZk55@N0x^SpNnBV4ZD?Sq_^g&fQ^e2@iRO-zvB7Et!exW2>98o5v zAn_UYty(BA`}L0{RI+a(HOi2yE}vC8OIk*#V(ctxsAZqksG@#RUCUt0yw0}W_x*_z z_ZjMM9fTaACXjmpzgXy}7H+?@h1(y#T@F0x1<6Da*V^eA~6eTXpEp z=?>=qam@`9(u(=U*7fR$^y$6bz!g7WtAmRT+hCdj->D7aDJHh;-vr~mKG!wrf5N&D zcM8#q`}Cn;zW+RNRS*OlV_8UR*}tz3CTT7+{;m5iMD=9;GxUUS0Fd~t-Pr_-_0LIT z#9A&Ho`)=t!AGaMJVycwgz<%EA9pIaBHL1e$?jt_$1658 zUatFag%fbe0$IO#R3y(er4}P+J%p151lZ}o_Fuqh3oC1p8xUlBIha!%*Z4Zm8K20#@TUxHEO4;Fzqgn+j9N{>l3wJpw-fX7kfjFDS}6KcP@% z3ZMV$$>y`@68eLJce{uMuSg7*P0mssJ+K_x?)V{CKrn97T>Bi)_|Lr>gOB!sWa_)v zMH_nQEE6UO5ta!fAelX3R_Kxf$E15$&9weU2BnR6F^Vx6Ck`xResraPDB1j$5u)IE z;Jok6#Fs8;grIc1wrh7DWX~4&Ptmn_lg#=7+Mw4D2-fmHO;y;Gk&MJJFMi0Ug$EiI zZj6obkB}_gzn^y>4wXpNf$;+GP^Pjg>oqRNLHO~(2sE)(S(!JN5rB+olkc{X8T<4k zHtacwwYtJ!)Vg6_Dkh$>fvN3v+e~zwt9_2d8^J)3@om9oQE-grCmIBdl&Ix4BYsP7 zO|)RZ0wcmR|7Oj>p)w*Oj7#rD+6;ynnC5{z25RBkaekZ#)`g}@^y$PkR7)9l-zO3! z1$^QL;gu)IH%VkV)Z(^NLoNXe*g^f!(J}MLEebY9wr5{b5|o^ojD2?cD4341KrJK; zAE{jEe>@8)+1>Ep(+SDDQM?TH|o~<$;EtOwPr>m8cgX)L0W${l@^E} z>}+|ADoo^f!wLbVo9LP}|BQ0kGshNEP2qm+3!fEn+Nr*odd)cIh}Zgpa-?LWzP^dU zd4t~UhXaPhN=5c9dG5?-rzZKuo`XS@+8a9fsTol@50d`$4r>Nz)E*<+a`oDP>F26d zn`7KhicmaR`YL(#ohpwkA#rq$NPlj6JKa3eA#ZeV*u1l-&F}pbhfRIg7ywP#Vm&Wis^{wh?V%Q^xlgP{ao+f5 zkeU2A?bvw+Z`pN&>T|)A<&UpvgQdr-QuicV36SEM2;Huy; zsXu4|GG5FbQgv7`=lJA+w9au8nl`F&fjaD_f-Ay>aPllEK6 zH#n_{<<70;Ks^>~R^3q1p?67E{@+6LHp68r`Ju(TE56=q#ALbCOf8(O=g?tyE>10d z-iBrYjY9j3^cyTDzg#SpB>Zh!A401y_NMRql#Rk#)~5?5lFT z2QE$ZvzSdgdH)GO%cB(Stn3 zIgy8u1Tq9}dXa-BvG}bz)W1E7Si3z zr|JWq^>Z%*>KsS{qn@R*&*yHGuT5oCC6lrZaJ!&zC+OR zDD6|6YSA#^5COq@Hdy?yQhi3|r05TBBftnLig1td&xn2QZ=-+!d9!?kJ_Olc&P zAJ!N%ehW+>nghbR$dgE*?qB%DfrKlDSQDAWZLrz(l6oc^@a61x0u{>X^mO`>`A`TZ zB>)LRR#NvUMv481oKzQ^xdmK9!ADvmxYnYKFv=|@gzx+HY5%#haU_{WyaOmP&Ez+l z?z$(33=h1)TiWKyUI6iW1x>#W2{d*lEZnbPpYWNyyiuF$00m9uMz66peLMeRn0i^WvlZw4OaGk(}q?ejd%MEiS0u zapzn-lAtm)PnU?ajS#xJtZtPwF;S)>dl|!%7pDzk_9dU{s$~ zbaUjBhCWg+JTiXkq%gX~%&ClUAW0YaR$HtYaYFB$j@1R&ki+eGlWe>(le>VFsiboz_QKb`)<@n2>bfBv)SFI4|*`cEAHZ2F7If3a!w zpG|+E`e)OB;`nFNUrhd6s<-=3r@vVJ)9F8P{L|?#CjTWk{o6SGMe6?+|29s4LHTFX zUpW4YP0#;g(_g6mck$1rznJ{9=`S4rE!8{!r_*1o{^|6eIR5GM7nA=IoTmTT^cSjs zHvK1#e>VNaVNaEE+@f06pX#lP6}7nFZC{e|PdrFy3T05lm; z4$@!q3C6i_Z8-wO>!YFOWZ{zuUqF?&a@-5M&t^<^0F)wiEr*Mf$jT%&Rbpp-1^I|M zR6!?hYV08gpZ6W5M|@yuAgI&RO!Q}{()-&X@L>9>ZIY-0&a{>U9e8nh0!B+r1+|3% zoy--P^Ew|ofG8ZAT<~(w5Sk;h26qfx&)DBP#AGX=Lf+~aKG%ZY6H(m}dd({p?xhqX z%`22udtdt`C}G=zlrFMG1y)GTH zIVHbG*`*VvW%*d&dKw2glh3MbGK$OQRO$@d^Eu8KB3YN%yrQa6{;jA#6 zb^jFkK5LtVZ_v7%{;mQD=d;_Gq9|`XsV2!H5wg0bNb$ubrQWW*X1}$?auZXI)dSv~ zn7-LiEs)TB4~dz9{$V4lE+TZ2@j_nZpr{6EwW;bCBGrR(zVa5outzxSUP&%? ztbtp#(aD9r4-uON26vJMFv~{-zS2ex<#fa-4#nK7&s(I? z^P~qC>r6SW04>wkId{{S4~A8E&C>6Lt5HNM0X;z>vL?p0=)3OXN#%(&)4mBKbB~?1 zRXe#LrGzl|B2(Z1Ovz309m@uxz>O%tG45RPMC@sfGKF5mE z!J{aqIdY>2jVTcMLhk<0fs3<^YXQDDcMqEa1%uur7T;5dMk=D%(we~Hns*r{TNGUA zk~qs@9x0QwJ-`<@G)Y=+a|wfQ?v1r4c8iYE5_()A{pp$^9T-CDE>JjylAR-edE>Ks zTE>&cKZa-`c=vyqxeDqVb0-GAEgtIwCraR<;F-F`ZSIh`|)<=kkJbHg|RMnW+w% zgDvk=F@+5IEyVTHA__hVgO-;_{WX=YpdY>Ly*^OW2Jai-eV%Qt{ zle5v9c$uMvO92iR5!#Axx4sMsB!VV?gJG!5TXNw2c)n;jS5dNU1)G&QMg_DMYi zi3w)HixHu(Wt^4D74N{zy?v1>KTF5NsuaRBJws)B)-I?6`LAiyCgpn*1z@_2KP17DCh3PT`9KR$*MnBlF5cgVwx~ziWs$HiLKCDe8?7@w=W&Rlb2fgXc_fQVa2YXb^*P<`yH8co7e~r}h&8xD+4^k6;Nqp8qJH)u^5$x#3usPsB zB(Uz5l6||a`@;1mwS5I!CsC2rYhV4%|G(xR^CC-=Rx1E4|@1<_GvW7Xuvkw?L>-pqD&|27&#}&4A zzdwD*5YMaIfP?fAoRE5Ioyp|QimP@NF9MP?A#iGJ#af29U%9j$=? zxx0fy3Q|eC4)ro@gl_(|aL@$z9&`tKIJ0LiFB_6h3PtX=z44Er5q=6lm3^Ice%5db6Sa~EU%u$u}Nemn0$RQPF3^d~O3wEqd8*pL_vMo=AFo>xQx@7M+?FiV*ym9V!Hr;ALFid_}Wi40509vaEYj!m|)*v<^4`Z7=4!FbAMk(8*(NMcnH7Y23}>2#}F8dtzb~JXtX2HUNFo=-)OlzgB2B9FMwBi1CRFv8nV1a z4Q2Q@Qk#rt6HpiJZ0+WtFImN~<6a4`aX;hJ14|@3M%KYq%XB5F8NZiraMFq_^PkN5 zxS2d<4}7CRQpH?#S?eAv`1J$ayFlFrLP$c-xIph?M_7zKKeJ%Re;tVZPdlo9!VE-^ zzZ)zQIPz;svQWxQJ-7Hffd1s`Pny*T@o?>6K#2ny^0P<}YhA=Z5JC;H_o$B`PBQ#q zaOMa&8U9@M6f5;IkEogOf+Ab}%kO#U1 zz`oTrTaB1E-UtG8k=vz36b<7B?W5SN$hQrj9JJe>;B!DmZEDTp9tA2QUuElX;6@VP z*|9g(A^>xQ@{44`4^!r?1=5tmK>q&mdb1*kr!Ud%y-+y%{VC@m*OH4$=b6Pc|byDxme*{u{*a^@-PC;@ZH) z-7(d0E((EUacJXNS#jdZ`gS_{r`t7F5*5GJe`;QRD!*B0KUjYbQ`H|M;FJ4 zghV3`UqDXRS%&5~XU#3|PgzCwW<7=|uL#R>amw*Vrm$Lw=$Ibdyph9f*n^j;o93sY7?ug>f?Kj;;n^FAMZt54ZfjR17Tv+lzzZD zp@wigBkFd~8sH-~A4Mgk8CZ{*G+F)^O(zS`0I!a0bma@R9H z-@s1o(^Og@sCXGi0{Tf{Jt)CzSdE_`-vNxv`o7k1>ahv05*dC6M=Z{GMIH!94>J%4=*kmC+tj)`lYP=fV0$Ik&Ehu-wAo$dRRTEk4+WPLr4*ZykO-Sk$i338OjM zlwGUEP+85_bvK5mby_EQ#!FvmFcB+q8(s2o+%UeAq4Efa?k@>&i)OBA9fT|3U|lX% zhtODyKCa>{dWbs)rHL4WleI&LACmE*&Lw9$B00E@e9{)n1cP8d$Mac2(q+$=+^3O!1khVp6+O=Xs_Wvf^}9&6sb z&^lquN7#e?7HR)Vqi_jFyP-VDfG+G*z|4I(MXO+G|Nz@FVJto-7S@fRXy%H1t&*KEQcNZv6;IpY*`aC@>#bikKs3Eq$q`~CitNc z^F7z$R=O}JB)jryK##kkAc5ex?InM48r1qhyYTa>J58*B1y9f9&;TKYgTy0sYJpn7 zV*Jl@05IdJ@Vq6<6H@qnwa7q7~>UsU1 zN*G@+ewPdZBRi$L4^rou8}eCX6&^!Ydm^OF)yRY`+fZINB;Rq_5d*D^X|p;5Al%R& z48@@Ye8R8c_^qY* z1E-e;Ke&g+HW*Unh!G{WHqdv2--|L71w3$gWOBR^kK-Hd_GHNIKn!+hKMUqlZf5XB z=tT+CYsk!7hdnvnk4#*HX`>TeQGq(+=Loyi*GU;Q-I!JehIMp8E_V zMlBLWjK<7O>Lt>X?--#;8|d-3j_9I<$|2$4tveIkvbQttS07fhi!P@CiwcXF-NdwQK}N(Eu^|PnA*@7{Sj4wbo>yf-4ufCFvhYefBN--hRlt7oS_9tAl49 zNVOaw&PmT5IWc2b!wEPYDi;|^4t3_IekXaA3o<&cM2U9GUaY|L!I^L9KU z5j@y@Zf=ibrick~pPeQJYIuw~^K{qcz3)Q*kapPD@T4%)pW!m*oJBcG*?d}L6maGW zm+|X~A74ltP*3-wKb0`Cu>Epfo2^v8co~whqfIZ;&9F#2Kh@irdXO#2{Ja=o>hqocK|&B-y7;ExL?CfwqQ?e@>V%OQy+#7s#eD7# zr^i6QBvuoaCby(LTLfAASwAw%>hO+x!e^oV6wr=x&L1!5oL)Ce0PsfLg?!)9 z-dW|i6s36$BXZ@}$@UFYRVD%0-TeIIT7GO|PqM{P6SGOmTg^2CG|!0!%6>K8>N><( zHwZYo);dXV%Q)m&-#EK7Pyt(MGV3LE2W3Y|Zp**wvE57rkt5Ah zNk)3!Qlb&Qo33OYoOt_a`gMvA-s;?JXedD4>&^+wZSuk6huQ>Ti6=W7%3+yt>E-K7 z9ube7jci6z44EMm4^B{oEqw#Q%<4{L}MUyo@3 z4|Dz&r$eZY{V+P)S;N8?>~)A)|HHD>m7$}S1NwMp@3~01slXk*!#;ArPO-N`IYJ7v{8;__WL zM1wv3);4BnmUv^`*&M-EY`Bo$dvIDd0c6;E2=EQ@mmPBrWrToo!mC%r8IF^PG?-Qj zmUA0i(U69R8dHY!irNA!F*r3nTY43$d^8&bMA7J;#8VvX^Pe=H87K!O{{QPLyEGnF zJKi0HtPrrFRPgv)7xHABWu>+qpQY3#00#w06&y#vLl0?G_DgJIhQ3T=eJVE2d#g>F zDHeym2)AGl6_{5O*Kv=Bkv3_(Z}s_DuAyeX+H9!ed{A*Rko;;#>rsf*<3VC6plSQ<)l0SkSFJqm0EA?3D>-;7-3bRU zIrHrhHWf`;6PkuZ|JV7XPgo97M3w@bL$x_S`=UwGPYvX3)JG2>XZ0&_tiE3MO2pc* zjdqUa-hAcU+yfmIb9;7)`g;h4rH($;-!~?Tjqe`l&LG1rOSa>l5SCBNpY?{Z7a706 zNg&*Ex{H?amD6#=o^elf-q>@Qj+9>G$8%imdnKMVpTtBPp+bdiq2>n&8Gh z0DeU~Kbg!bC?DvaO0+&Acl{^iPM!XsF_6ow?aBac141ctgJorx0&T76CQ>9Q?CSpjQFmar7 zhsuV_AG>!xwRj2-TLg-Et)dm3|M;Qv96_(wd`qqw)fC$|BNDMjs@b!aaEFPA0_1iT zyl592WOI{FY$r%m>jmbN2%dmk-tNL%%R9BLk zPWPmzW|B^K9x2~j-F(pJRx~@F`QuW~F0KX+ld~{AWK%T*Z(~p6XC%9yUUT8_GX)_l-GvxUs%2$Kad1aE zSR9;CK#iF}49Ip-S$u)VTu~Bq(V3T1@0z|+l{%2$5?z~yuLP>df&`H>heG$>4A%N% zHaKZHDHuhIR`Mt#`ZVuO@__q&l$3|+4j^L;oeO3!s!8h&ilL}KzUP)i>rSsP&GIBf z^!aiJ7)e-1<8yFY%_5gM;m)Z?uJ|`VLDusX z;-?mL8>Tr#b)DEsAIz01Ps?Kn@l&2mKDLaI{H3nBQ18M`PfCOfU_LObQD)0{Q>;?c z-kZI1MvMgLUU-#wh0YE9`Knb`$E|GEOr+Cu3!o+LFSBkBxh8?cex@&Z5K~o=H7v1m z4+$>9XaqgS&F#c!*muYFhfsRMB?-WELyDALLdIk&$~@*=QaJOPoG951AUh^X1BMs$ zJ$1i-S^AO3Oe}6;ITLY@sY7TLY)h1)sBvviffTPzc-tm~?wntq=^@9@CkKyGmF=_=Hpe+dBd(86l6_JhrK<^hmVp!apPU$iM; z1?T%fM3<1J==F*}zX=s$-`)-?D;_?P;VrLgYU zRh4GlEWTy6X`Saf*o~)m^7$Yin>TSc23P7-=qGx$>UuNa$E0r z+_u(fpX%!boP5@-kn_zWbbb43ygu#;Zgkgv-FSJJR`vO2L-SgyD3wd^fnd?@e*!ag ztRtj5mQ+_Dm#Qmj>iBMJk?XaEtKijB1UKR`Y@Gsi;llwpTQ`d7!V2HBVh|YpNp#7$ zZ>c~uM&00&+cpk;ha5S}LIWbukAi<8l&8KAz381$B=t;tce9PTB>z>q6YX6*RC*y zmJOwt8w~EDI=?kPXvX0nj@kF7f#~^CEbs(zHSlQ+&|_V5{W{Y-xi?fnO=nV^_&|5; zGCK|fya+XoDf}?R);{F^M25;f7XaOS#>yc9rtxfzCB`p}bvX38OhwZn({+>$dl(s| zBhw0uQoHbVgL%v}pt80X5YM$B-kNQtr(Q1!qk!O3qid~|{Y-}9*)dEp=LVQAJG^es z<#wSbIiq(I#-LLFS%!4_b3pt`)|)kFxpE;-*w&+?Pq}khxiQ@C?J0E0ItpL?- z34)yrs0JREI4^m|MCI?@#ho(yfl+%I@Qa3Ps+s{SD;~s#)7I9d?y1MOm!X6GS1CWP zNy+PnD>ujwJE%1ONdg)Q+b+4jaDI7DYfb*xKn(xkSi|+&3}UV?Cmg!d4X^GXup?3V@9#?cUH#!XNiKDJM^Xym zF3gL?<`$}2-qExzo4uCw`o~f`|1W=*K#t=Jc7>N6Dn;3u^U({fK|32IxJi!|wucG% z-n`E_L*W^_8q^k1u81vO@#D+G=a6m@$?q=i_4Uw{6Ysd|tJdaeWU|pDJQc|t`_0P= z4(}1L?+w?7q0+Y|Dw6CP`I*5AUWn(#K*F8ZWpwxBcrdxx-ASHhd#%4x8e)G?$KW!c z;rOrIrkerR!N<{tBAB=ZxbD6;y`gW+%dMUV&HB7n(w}!6B0F9>cK~-vPeq)SWI4#I zezn8eSAS*VF5I0*z?g=c|B!k9yJRPDj+PGoZ%sJ7sh+>-e<~u6tD^#HfGqNcHtVgrY`Hf(^h|8i zYcI0*u&{r3Va{k5QG9C8tx%TuW2T_Fv0+@gl^;bsR3*dU;4o_k6XN`G7_ON1BQ;cO zan0dvAgf3J?NNi)_d3$YGv}OgMyk16C}jZsL72s!cu$hl;fv!E^VFQZbN-hQuoJVW z*)m5n+q$nl0t5_oW+I2c!8nj{=+6bVD?U_dsDW~NJlMZQ?hMSjkJFgTt3EIYF`C=*I?Wq!Pr0@%U6; z3@$0KN1*u8vHCt!;+ptQr+tO2sTAM12g*Vt)^Hn5srQ{9Xcpem7&w>#0^Ql)IRgnH z=T3KYYr|3=pF%A4j@CI?E;xZ2tnjMM9vF26BIIFg*1gn^SShfj;OxnJ_1$m&*jC}k zDm7gqIHTKF!^Y-Z9Q9k8i{@ZPO%Dp0q$#gL7@N+3rbY_)%oDWDX>Jnj@gu-7EdH^G zc87d!LTlUMIYR@;MMNs9DscyJ^B(JFB9e>C!oi%12{#gDFAijdfZV+b589@h384M; zZ<(>o3seIr$%?4JR(@|`fU>d~7?mSV$q zFnNG%@o6dD?0RaRi!aB5ReBT%s?}nh63RItY$?pr-|N8c2{WRoc_9I%&{0fqr!4EnrBOVc3BQ>td5T zgY$f&Z*Nnvb%0(2+%Osu%olY&zyq=d7U$)iZ)}Af+cMk<*EjM$?Q(dAO%w}l7)M-r z$M(labcUIp#F21Wa-3w8 z5mdolEW3BP1rmzNc+lKP8>sHvV1Oy|MA?0)PF$<b$Px=woY zc&A=K1)knn4a4f2H-3+hskldZywyI6CDS*Ub09@4H!sD{{uWIFSrLM`cMYa?riV^B zM%}$sPb4)_6eIE|?%%*-4oI_Li5+m@&)|ReQfok_Mo<=RPI2EtYK46LZSl#SlT1Zeq`$MfBR(|;rYx&cAA)Qt1A||hB z@%9bLDgs2J(QU{}9XI8>JYVTk0juQS&|}m&G-R)Gyg~*oN3gT%pI>1Z+=CNP-SY z>*eN4nv$8ELua;gI|)qw6IX_p9Nb!TQ}7y2d<(J3w2nQdt};i@jeske6jjTVN1(rzRxk<5CvIFMn9mb_>K&XaLrw+V=2Zu3lgL|3%e#oz9 zwG75;yn5Bcdf=*|y_OdBk-j$11KFaR**)!sLw<1wcA7zQX{f2gFcvmGv%D6C1E(hR zoP%8S2cZaTsCi8Xr#v+rbcZkne+LU?Ul+6+pds#AeETt#G)Z%bW$Z+V=pqH275JZz zdN?PMLDv@DQUdyNhk5;#dR&PxM4Sv@eS=bqZ?T#8^0hNP9mAB`6k)0-d1n~HgQkU) zRR#ZChAfq>N{jlJPIm}5_Fm$tU_xKBv8I4w{}GF8t6Ufl&nkmcRLI|6<81ed(taNa zYM`jm$2gmaB|mjs{g|COz$Guyx`l#EJVYr?xa$HLw>#MjN4;?3!WN(})6h&3f7N^Z z*e*hj3gH3$(NyMJ$s115&!)HRt2%UXO51fPz(6K!nn*OnMas}Xj7)1i=IkGSr@Zv0 zb5mVoXgRbsp1cJ)lh?qmCBTed811PcJS6(J9#YlgY5dT9A-x3qQg2`^HS~&1+^Q^z zt;1b{+;>{nl+*ozKkiV@Gpt;G78(#dFwD=5y%6K)~l&Xw~p^0^TZ=K_gIzFz@T z=0x+`vV;*c*dyX-5P3$lzKsJCEIHWSgBca)nI0}mbp4;>ih@0fnRA^~b_z-BVr~`y zprJa0?#F#&_K29EdXCRYeiA0BH>#XgH`6xebeVDD3~^_H5poV)#`kz5!L!a_PzvKE zDI&-%0PhEQM0BFmZK_9xW{qWS2u)i`HHER{6FhzXG+CB&Wcx|9u*rYC zx%qUnKej#=m~&nbJH3Q0V@lWKFP#$qS}k@l{kKP>a8OQk0{1nT!4NRPhg3?L5;<3

      rj0)8aoI1KQlv=t#t%M1I3VjHrS$~+ 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≥^O@ue?hX!h0&y?i9R8xi4`aP&ZmL=kI0i!h(pJd_$gA zN^-LS&fl(ATLtRT9->>NtF7am57{G9a9Tv9d;mCr_j7HCN-_{DPJn6HU)Kxo$y=D~;=l z1vsjS9w~VV^sTLPp0!xh@0vxN%ol*NbCGFB^<2UxWwu_V!2)TbJ<27lqpXlZJYDpo zxfZT$zAbjftvA0mC190(L1*G<->eP=?#;DyNDIGMqOQ~o7%nxwzPIOx`B}5hrb_me zr|uTt)cLS^!em~?0xK402;@i~yhuRU8+b}D8^8L_4m10<-NNRGdlQlZXCiOQ#!}AB z+EVXLFP+Y-L|L%a+Sqr#=hNOE`O@oQgs>);d|=^VA+5QLPLjs-O#H|W@o6Br0#PSO zjr)F!<2zee<5ajR-MJ*lf`@LO4>R=>H?v`}>mwh%=eKtdLC)NP^(menNbSoKWO)kV z!x*zJV=`W=%e6iyc|8I0u+qz2oVc))or{`w1y_POovRu2MnGI1{6uDkH4k_8x1qvA z^zK{eqm0Nbzb7*h2GH?u!@}VHP+DxE=^&dUEtwMYRM6p6oC0Z;_!}8u3^zX)57yYC zddo42M{T$;2(s)#{B<_!IlGi@Pq1SZ;?i06b3*lAqlliSf7H03+JSeX31JoQ78FDb zvD=9Gt(QZFTFM9?ziwPj<($dfq>4=WK4;s5B-N}5naA^<4>i@?Z(u6GJFWWi`<~`y zxAXaZeS`Q>0`8Ft7Mn~;9%kRQ>>JW3Q+F z`1#{fPr1^QRS8ev>GWBHt|WuW%+-142Zd;Zb^?7Av+P5N<22T!rT)Nd0d%4 z(Kd^(uf2xw*#^+zUV%85oQkfd`Q0!roe?Qc!*f948HE-|PJYQatR{$D5MV#nG)|<# zh=ge0eC&%eF0ocaqi2ykjhlc@;6V5*8qDsxtu(BlQ6NZ)Vt$!TW(T&l+bfpi4o*ee2-v@F=&|ayYC3 zg5l`Lh60J)*Vc{J98~}Aw<#5V8L`M4CmUc|0hASuhYS6C0fg5v?Dq>M&SmEZhRM9P zqqi86Pt!HP9n(Gj^#*8c=t3|*LNVWOwUNqS&jUi6^9=9Cs%Otuhgxiy2$&HLXX&pD}^)8TSZke1xretQUwaqJGIBTz2&{Q4>Lsn~Nw|2>yNXgrNR7Us%2ZH_j4t8G+vqUPiJgzS|85Q| zkch0{-KZiUp$wT_DFDAQ$Z8y+xyt2aA*j23R4*Wos>fQq3mRX~2P#1Ywtepr)Dbq9 z70vPS961p{!de*%+OO{#aGT0RvHUU#T(g3xP2Yc&uBiXDk*wAI+bqWT$sB>&#jdkU zxpIWV2}40oJT36#6)^fQCa|pK&WYl9MU=5#3@X#6Nw^|+J?2m^MCj%NHYS`by}L${ z!3#)s_^wB22L`#qa1D&L`zGk0f^pl$v9Lay?$$S5GDO@EZr4yU+=0kDzP{8JiRSCr zveygH@V+8klP(r=Yqk&?qvnabz0+6ww;S6OQ|thWjK2m+`Bz7^`<*mbkzz0~NO?+wDz+(m=v6g_PVB5r*?ucEF zQa(a1OW)Y&FEi;5;bRy^{IChXgKjn&viR}x zjtqmcFw1bv$RCqGPgs0dsloufWuXXaDXQYh#PDUrfZx=rMu(2AAp;7c(AVjMS%()W zxKPZklu*tt=(c=7H_RxeEdk}#iy2IBxxe>4>~%cyxrh+H|9CAUCYdCb;AyTKZ9Pbo zSX!oVUi2~+Q}cBES`}bzEFtb_*5(9KJN<3UjERl;M9hbZ1Q=tP2Z07xK#t}7(tT5S zfozH33(UF``dnWtLDMm!^m9;%L=t+BSeS&ZE0c+C1Or%#A_A6}He}K<*eOIXdATqj zjd_}K!)!rK9`4!$2Tu`^&Qt_bd>`!RXz}IA!tD{+cTVTJmV8_Zk{4On6H|U3_6bPa z^#jR{4uQ1c^G-P0>(9M`*_rQbLERpq%BkM~aL++?XT@eAp&Y=H0b$v{%oqXS4m5n# ziyhYDDFaZd-;(VDg%M2h_lhwtZcEOJHX_}u~!1FcTXz@Hu2(8iF5b;lZFQoRj` zx_E{Xa~5clFhzA|sU1mkuz;mAl;WYGkZ}QmKweP7Z1qr5RcDD#mK7tTw?+7{dCWB{ zG}Pb;fsRq=+$)r7v*E#q8d#3h!exvz`jj4K*IzlC<)syrb3S;pzG3K*Z7SeIy7xpf z;PR>)Zm4+%dTrl=-Z~NcFT<7&Ansa=_#dxev4`E9KmEh z`V8<)tFTe*`@OiTzA*ZAN_j;TS@j3l+SN3qe%Lzq>#l) z+KNm7r0n!F;LArd08nzy59p}D2LV0=;K1jC2tWez+yEeNetxQ+U>AKo)^oXHaNFZh zZsP`X4ZawN006WrP&P{3f8~r^6ckMAzV$K~t36)uea>h2!Q=Up0V%%0eaGHXu&1%% zt>sWeC~WGAOT$*mr+U|(FSE`WgNa!dvy6j^4YT8*F3S4t#&)oVBdHpe#pYVayNOgo zyF?{8Cy5#FgnFg&8aMr8y+LFz%FEEs#lkAn4FlNVoi`a-^%ull&# zUr4U4ZR`k|&|OPvAkoebD*oA0^T{o&Ac+>e&= zQ<0!&YGX|sjxVr$ z%~jtN^OqL;))gK=1m13)9&vh(3m?p_CQJ%5P8$P~+4qqm(BfXi3plS?G6AU?8DAAI zU5RUT&$Cy+Cyly(`L(IR>`k7q-mz7~ib)6${k?Mrb=PKBw{UzReO)WzW?}E5xmKqY zNs{lKAoQm{p^xbyRW_wrO~MkpO+-VR33F*q&dhOi9mf&JBB~BiY8#S4SFsZd1@r~? z1On_!^H#AX{}DFCxd8-K*h8iFHqctExRf}hRh{j;wi0T zm1VqeYtWk6h>+zJHGITLI&^V3uwg9QtIeculsCU=2%Q?g9V?&@Kbe~j*neiFSl*vPEUh()p;#WvCE`tLJcDaEFFsv5IOwa)Nyt^z+h{xu)mml z#cIl(TUn>KVvNdqKu*y9f<~9&U@RM4;R94VK5f*=wG_o6xLBI%E+IpnSxY9%jYT74 z7^Rtbl2E7A>-ShigJma~ls95a!OM<*?8(U_XHxmT*prsnWH0M!@HbxIL){xaaq#LI zCqsCpizAxyUraDc#D?hIZQ0D_6ggc*#Fn$RcY!F?15Dk{aQvTnJsA?soKrH z0KJG5o;;aJYC&3B-^aL)D7}GfPy$oBLP{26I9{cbQ;j2w^~jvBeDidbdNgpkE`IqM zKN7g~u$Al_7P7QxR2uuZMGI-^sAtfxmi(j^jqO-6NFf9poS=^D|vKego z7&6vlx`bGmic_HW!8Op2`@{ok>_Q`KcVM!hMe&v-wQykTx+ zW-~13tiE-|Fj(RbbqJ7xz~Rr2?N4$yO+FRUep&SjRa0b|X0s?sxe1D)2EQw>>+4K5 zwZ(u6?{s}jY!jz#iBG9cJFFkV@WTUc-CZBIrp|$>4Lp8nMz%G^dpeVZ>=7;_ANjvFua6{$=s)>Yv)`(N0TZLKvE${vvEC zDU>4=(W^ngZ)_`BgXQ!`t5ufws^+rQh@xF0jca$K6ie;UDZ0HPCmrFc=xg-JUbk{o zR`bKT5a~{PfCY8@72~ts=^2|rEO@J}XX9d`*nn#$AtS)*n-GH?^>g4LZ3`+DM2k5V zFUQ9Z#zRfUg}Sm#0r}_pXAq%nwad)Zx{*C{K^F z&D1@h*&Fg}02Grs^H(mQMgrYMd(s@vZ4#xU%kXnU_0cLM`fp$uSfw@UH|dgbXqp1O z0{Ri@VpmuC$cK=n6^KRIQNEMi@Obs`?Hx61RR9i{&yndd5ulV-aqGvpsdgCFs%kr! zvX_qyw|97qub!VWSo#Iy$OZj;Z(%nlNjx*X!Y^;w&ZMSMSnTZTAyQT4?{n*#Pucj< zm$E#GD9=7+_w0D<)aA+9VM$+E{O|!HvVbobzmpz;SnvhD>+l<>9$0W`E5BHw3_>C%nR!Ud3>Yz@|Qe~JP9X>~WvX2H7sgk&6#h_y#1C$}IDl!&4DR2sO0U(2QAF=NU?s zD0s_#Il2q^8Kc;OR>IJxF*e>!B>0Dw99tvieF zls0Mxv+#P~Z(S@M#=LItJ)UpH3c%w*VS8gw%~SRm&x`|62mS6fEc z+A%N<>+P*sAxG-XMMT|cC($`v@rQ7!V>I*-35Ay5j$)~XBcW*M3jbew_w*d;7B_l4 z#>BR5Oq_`^@x=Bd>DYEAwr$(CZCexD*4g#G7w4pQ)jt0~`fgqH&8O;HYdzhoevcOV zeyrE8N zv6Q6e-3983NiewC#Bx z>|s;(aUtlA3QeI^rsRrqDH?|Kl-8SOAYF=-Il*P~SmjA;+1Xr=jyzREJL`a)QrLr{ z0FwZ+9|##uXFJ5VIXtn)DOE>@_%G;^XMsBH4Hqk5hAeUVC0Ki2xAYD-dOT%X-;KMq zeSUQ)_jo_^=UX1@cemr8sL8%6g><}Z^Qmz7rU-(zhT?`SO!*%%HC*`%<=iosyCR2I zmxeYI`*l#eDZu;&EFa?LijRD>iZmf~v`!c^T@V@fC>0piI2|UMey=+?DZzOxR2$g0 zO$qRpU|{Y75-kFPl?8&D0z%3HGWG`Z{+~H%p#Kaq0|o;c2s#x_@dhUa0)k=x=ji$W zjw_#MiASlcsO<_6kRA&kcs_LcgSkMYTCSUXV(5qHKzM-uY@tgTNtkUFCI9GP!)ZM< z4=?-rYqW40C$DVH=q6@_wee!2hN{gGWSK~$nC8K+q7EG&>ERZ+y)_f$Tr`G(PsXrn z2lAtZqa^uCmr@%|pTNUG0LEq-^p=$UgqYb*k(RQ8icKH(*d634hus+)2TeQU0uidq z6xJ}UFLLwY86ni=7SX4`LBIw%#n}CoLC#<$jLPN1Q1XVNVJJS$%nc!KaS0(FqIUg= zHs~t&g+q-Rn@4FnRt35(hqKSeroUFpwq_~FGY}WiaQ5?Ez=5E>Y7{D^8@@+WuXNndYvQT2 z^dYCJrMaxWo#WfrKEqRtEA?u85OfA7-w-}<`-*3b_3TpX_=aER)NscU@t+5|#0qsI z%k+x{dp5u`(S@vAYARe266ktPeisO3+%kDmi9msWFXcI*c%AwMe9ce3D@5DE3Gcs0 z?@Zx-c|}vcZiN6%g8aONJp4`19C^ zqQUIV5Ok)|Gu{`%^V?P4lDvum3b6>aT;CC|t?}OwOiL;S`TLK$I&Rc1V!OcctK;H5 zs@k&%4{$jxHC5h(9e`dHHu)J4fncS|UtJwCj9utudfi+si^xE@QY6fWKde?25$>6#5viN!fDD`hnOY`Fau^Y?t^RA7L~TDn3u7qt*}OS?SLuEvl_(3n6plt9CV_)Y0`8sy^nROu3n z;ZsRW3wRIa#9LSJ6`9R)a7$KOC|il^Fq00A>JOUPvn8XUQ}AbPty7$i;eG@c4DLnM zr|8R=TJ%%`goO{DMWC`Y47=amv6$BuL7Zq8`Lv)R8BE)=fcya(uEftD6U@R^ ztS>nq+unT5!n6n*do$C|)Ya4z?umBInlVK6{5MvEGq6f@OL#gbTk_+YZ%ZA| z=jHLiKk_VjadN6R^idli61V>xX@^PP6uO(dUr8sopCN%0BwQkJar3C67SMO6&b;h` zZC>}zry1E-CMnVA(mCKvbI*rRbFs?8;~jyfJ#UaVw&B`@*oMokDYjxZWTo%L8h3$S zj4CwbNJwNXb@H8)SJ=s5Q$W9^@@t|2Bo!3yO;|K3Zi2eTiCNS z5vrzBmEmcL8tv3hMI$cyoCP09`GAPPD0QC9j&yHs`qCdkCU85J=->93-Wjvud%6Nk&UiF3nc(uNY6ajwRw zNSdFwJn>Do2>Dige=v_wR6lDm?Vzv*QnC z2tTzd%e1x0=0(%~oo{1Wi~Pm|pT@4$T2desRnTY`cRf`0fk&7izx)^opD84w;=X=+ zDKUnI_=p;)^Gf^{v3^jVlT}7@{aP_9q%KW)b3ZG}>+8Gyu|Ywe?^fU@)^9VHmPztT z>*mya!^tI!Y~(f?G8tK%{rJ=5t~)Yg)Z|FB4kaCYhnGr8WQ5E|esPOUIrv$S10x5? z20Awyd=eiEDhx*9CSOqJ9)8|=XQF$suex%(T!9dXpJgd-tFmtLdchq=Trl~G_Vm@1 zCJb6azL3NLd1#~RGX4(AMuePE&Mt0xhDoYIrTLj$eel~#d3a?4C1Z@Q2<7B1gvbY< z^dqF<4Da2TQZtJ4)s?&*7WqL;WDv=ggWe4tTa0Ef#FGcl`vm_t?)m|W&S6R6W`(eu z{+5~Tq4tI5dx?vDBLI7H(B5nbgY!rt|B%vfhx&Dh!a+y!@2*=U`3{cO8{lyKxf&2Y zQlh$)Ea$A>D6Oy<=h0K{=j#v330qN_OZV_g;sGS*=YylQRvH&v8_0Qs3+=-52oO4) zw#GXW;6?37z9$-5$4J#Jj6kxX?y{xvEC*uYsZ0oz!egkgsy%y)FHjEl%o+JoDmMhb{`;#^$i4|a)|!7A$yN(DatRXN1Vu$#DBUHfxUwe7L%tQGK~5?DYIIjW{YiT#Nx{o5 zY{@1>m#J%tT=K(zs*rVO5rTu;TWOno0Tx8Y75)nWQ66eNSBQq_GFn8m6%AXBu48Pz9ca z`drGw;Av@{FG-NsK!=>nSPw;=Jes)zNZ@r{(NusaUNa&3`^^WOb8G5OrR4R2(*$s0 z7RjlTjFz@ufop|*>~=5a{*HF?xcx;RZHn@4I7Ihp;@@cK*sp9jGgoq}NX2o})Skf1 zozXzBML2pJYc)K~?XppKN^gg&I-C{i!Rg4{$bSHtY8h=cQG zm7zz@()@4~mUiK7-cdu)D<#qig{$!9@P5(C{IOKyNd(Z`srBXUv*^nr4iE;Yr-CeV zzlyrtnbkk}gM!nWDy5RN2YSf8DfFLd43vkQ?Z7sS(+*6kzUfj64`6qv-rS18*&at5Sw{lT`MU%0#I{z>Zt5Wx{hj$3(rgafU?x)8(WY%{1_{6@aOl%vG4u}m$LT2??=8C)vZjq zI2*)GdAtlCPcYawkf#k=<+Pys$|@7PmJ2>?KsuQt>>VHg89Nuq4UcdUZcWf$K{d#< z2b8lS(i^0jwBz)V5Yj_OHI{u$+P+E>^VH!Ds%&ZE)c70AhaAt3g$A&yqg2TWuaSW( zi&Bs>_*5dx*l<rvll^d6N{Qr#G+@Lx@! z?&{wEFiWbvW|_9z@?T)!+golA`q^$Cvw~6y@Frvfg>zBt2y?b^w(UD^r3P@k63bG( z?_L3d7U^6p)~5r**jgK$=L*q(UzHY%z`#>6tT+``MbybN()sTD;r(wZgzFsx~$ z?xg?ETOz{J`J#RZCY0?%eh`3O=4$g~kyN*>U||E3osGaGsALQhXY$qeiiwceU*B<3 zd)aP}2=SJd#U2*&<7J0Bh6S}~_S;z`Fixfvkh$l*UceQssid5Zn0LmQs3m&tqJ?-M z_Y4#^D`;V*w=J1|rE*juY6&F)pHfUx;#fmbNi{KSHI;3$0l(ThaAxBzi zb}wX|gDm9e7b7p^a1**h$0$tc9%zq~Da*kcV{l$61wU{?pnb%CnLTl9r-Q9YQeguR zs<*$du5Ar;L;1CmxW>$Q4!S6wC3#Az<%Ey-c7TRJcwcfJMp#dkf2S}wu_ml=AVj~b zp(UZ3TZ}jnmganSpMlcSy&7>=D1PFuVm13Y=e8o`lqQuT`67U6m4&_pv>3$>2uJo(Nr`HGcaRVspOGPp-N5;%)mbd%`mK#%3<22qmC)k%A|)unss0+G~w z@8G`jgy=a#ck-}lRhT}JpW$8kdw>@cN_h%uVXi})woAo+mU8f@@q0Y)(|LAPTQAG( zAc_0Plt;#j^RDu65r=om-!N%t_pLZ+S_0fCi763oRR3zkm%Str;;Sh_D3FCPp=Tl+ zF;%4K&EPe|K;t9+xbl)SU+~i5X4H!EEe|v%rjc+}eeD!}nxFUmz4QUgvmRN<=J;z{ zWL=IZtOny9FB~9y1kvCi%)kFcF$1%ehL9N5J7KP}aK4mWo zI3F_lRE`Tm{^(py>dL`QV*4fr!+YJjcmtGKXN%Etsjxs+RH6Yii) zp!;&LgwFvrL@Zr?7ws|wDXuR0NX*k*Uc|7>YdoY1e%r{=_Rxono)O=+_jJ{u%VtiW zUionpt&<9F%3EeCzX>S+`ywNz#!XN zUuvTl6?(@V0XyP*NYbhu%{QI9d859UOm#ylTcETEW|oFrFkbCae@jGc;2!tRqG4cc zbRo;QYs^?fm|caY<49TzXTOJL@z8uoj&E8IKt$Gn8R`0lfu)ck&!otN$pQI5>@mtz z!cuDE36{%!GJl?}KIz<6?FBvF23D{nF2hC1Bbin%(9xivGjyZ2G$f714P?UJ0HvK* z$rdTjELixK_?HBKVAAt;-R~9K!L5KB&_&g$c}8p48>g}(7U>cbUe&`fWj;u%tn*7tGj!5;}N zKF|TFd)*$ggi_BID}DUFv6!t@i$m=$3u3(+6w}R)RI~7m;6~k4zS#WeeQK|wt2dCX zuvI`Li!yj~Qx+bES%kf}IY8bKv71n*SeFmmz$N-0`D|7y&H*g zDxAC#r8BOre8^e#%!%(_Ic_K}hV?L$6OR@R3YT*vqu_Ex*hc&NscLua!gJE>t>b6k z%QvxOHigmouKE+q5;uPS6eQ-;60i|M^IiH|kr7Men--=n24RD%8{aT`S?M4<8LILs z#X%6MeK~AaJqJN`D9`(>!(nPSzxsUAox}tx%JO#VGzfgEEzK(m*H(o@T9=|w}vSl~=l`H64ykXJD&? zdzrxc9U7#QVeiR~fF*UGKY(QOS(gTC=ScGtfkF?dyTB8w&9ERi6P=h_94L!aO#29E zvn1ZqJOXp>!lGYA1k#es6UpoScG3>gq34)S$3Al5*Ph5;3^QDzk+^xq95UkCt!U!y z+iHsK=?p~;x>^b#DLoSQDv$z=+hq_)6PvS=U~s-@7+B_UNO;#EQQIp5mS72*9#U6c zZhDM~mq(RoihGb400>-Z%k_a;xm&z;Nr(0dGZQr@k)LA9h{o9!4ya6_F7NKVaEb4< zgO;UffxbUs+QX!}iKx8RyqU058A<|%LGK<`m} z@@ai*XulmUqFX_N1b=#ZD3kZPe+*Fk*2DG#36hDU6(@r&Kh8*X*Jj)cR{TkYB8KLT z{$wQrUMgt1W+f+^#8RSJLFzX=%nJA4KHdJ7y?z5sM$nR9v5>fHrZv`8!*PZd2LzA5 zBqMF$<3*=5l??93h~7!YYYUt5srU@uVuEroELHRB^jd12O z`RIN=xp^ZM>@{mj@3CQ)ZV1@r1Bjzxr29DFIi=Icb?lP-OJr$qeMMB2%@^%>3USQR zVi%uytO}F<@@s_8Yu6YY65`&_-MzA0dKID7zb`m_<~XqF3m7*=f5@cpqO~n6FaV zN5gtOl4W1&*9&-bVki$wR&a- zGXFXX_Qv{iF%t~8m)*9xeCU~5H6@;hLZUnPE;V1^-m8xJ<|Tbq(G&tiQ9uLr3`-DF z^nMnIJK3R~m^&dF9i&WTK$@S9iN(!Ooe=KcrOfF@Xo-Vp0_5ldDa%p&ZDmU4L$8^% zZdxO)R2GG7X}U`c%FYRv5XuMHU5#u30i~Lq^jAx~QVLwc$9s}$OK4O(Hyp(pv=$O;bBVMLS zbBo__a}_^!KKf|~uAB&DC>oi-5M?Y3kU$YXcG2O*?K`-Tp&d@CiI0>!!0DoI*v%uFi0p4h$j3frqh@aa9>dCiUuYS`&K z8)2o=1R0w$ep`l4w70pT$8R!fD>G)HE6h8N?oir?@LT`T%E7395k$GkUn1AJRl)dY--R;q z*90>i)C8^*O4}h}!e$$nH!_jm#t?7vjK{our?|RfrR`PO9zLR7<3v?WDf*o6Fq~)1 zmQ;<3dpP$^kmHoyAqCf!?VUBOkfq<^9VC?&RaTZO`9fh;rs9JdMgaZb@uPcIHb;)x zt2D8%1vXo;Jggf`wkQ^cFCoJCqk3M{cTyW`nyeswrm2mg9S*tg$dw490>=PrW1i?_ zG=4M%M*!w`?fDXNJT)Bvlq<5*K}cf>YC4Mr0z_blKR`^4^ylP`qjJ{4-%07g-lK_$ zU37a$cSH2c@i2my_fV(wjo^Fs5A|DYq52R%?oj$>Kq~dBKiz8YM-mxLhBI~wWq=+U zkUYvEVpHIRML&yir8U|I{e*4Jx#b3$HD&77a&1Cm-Y~OLC!3;>77UG2;iIR@j_uTLe#S>%D_cTa;I#F_$8p((B9cGBe^qwe$=MAdlw#!4@m6m&-YVy=uwk zv*Ka^m8)v()K2-dqyzqF;`l>hC@VWz?T;mJlD6iT*w%c%uXogxMM;aDJAb{!NZVv? zzi6Is%@~&I)M<~_5N=&!t#{DW-M%8~4U(HW72Yz1;UhUo5UoVMtepsQQXr?YyGR-> z=oIfqNTBN}A(aCABd-X|p5AD1KN z#t;a2t|CaV#H%(-Efm0xyd6|L1P-=G>v*|kNPL^bRcQ;ySZO>ZkS5T38RUfN%LJm- z?DTcJfw&PEf{c>TgW!AUBSyAKAJ88mymAJzM%wG*bD2E@?I<<1xfxUWn2dpPCt{@j z83CLV5Q|%lO!*3|!^!LMK>FRfT0@yp|!{q{f;FjSu8lCv(^J4%9~ zO8KxuUQ4nqIe`aH`?`X17pi=ho}X3eS`@Bw>=Pg~e10w~i3cC#%$paXXp&08ku90L zHe%q;2^ee}K-Ls#ec4ZYs^EUyA962bfs7=ibfZ5BroqZ}3U+)z zhM(?Zy@Tjg+=`-f#aGwV4;}J{J3JsxTR6iZVx8`Vh0S+$?nFXpp#Q@{-hOWw^06E zFew^BnasdE@4#K!(Y5IwU0WoB`=6c3~UFOqQXy z7B=59PApsL5`L3&rZg_>73rWSs0U!2KbF=RBB8jyi)`un?F%Bc#~_hfpciN}d!sl@ zH;UMZ`0#K)`RgJN&N*47aaAX$Nfl9^GWSd+#m?3%{Gqlp1~R||X$B*7q3F3YHEIo@ zN>Mr)fzv z&Af45dI}ylq+kNUzUsYaFlquVjCN}0<(=TbIvAT7AvG#;!AdTL_6Ypm4jxSL4cinG zVgPWci>cc2lA=K|%@bc^x?thO$l1bAhX{FiD2VB?)ekioc*5~ir~4FMUG5~mB(z>Z zUftH0CFlm7tt@*&Ot`PSb^s|{ubgwRTflX8WiL&%=KEpT+%+p8lWucRM{PT{7svbS zc8tf(qu4*|1n@H$2`l$x)KTu?D4jno)FP6r50b0*t?@^ESCDh`A=equAo+6>{MnHv z-SATymS)=()GO~6FDc;z2T|_IuDt}B1@J}wRHvgFC*Dde92~Opiw0u)PEdd)bE$gg zIwTgGmo%g*S!gL8Ap*3y&P)C7vTTGlCH>aMW&W@Y0aKVf~b>rT}Fj+0hpLC7i$! zR&6~@l(=WZ$%Wz79!!#mAg_K-EHOS2maeflgyj$H_%@P7`P*3B>CWH|`ybi@6g|*k zb)q{m>n5c)W7HVvwPgGwu{hQ;frcWmSQPa>@O`oW~YWg?FS52Qx z{_CiB{FT!utFN5?&GD7fCzJo!oVLDd`b70r)4w^sYWigIA2ofwKIfCv|1Q3M)%%3< zRnsSqucO{4j{pDSE2mFJUpal^_>ax$>o2EIQvbX7s_7HTS52Qd{-dUquLq}3RR6R1 zs_B!-S52Qd{_Ci>`<2rttFN5?&GD7fCzJo!oX);#`b70r)4w^sYWigIA2mJvA0Q8a A-~a#s literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_camerascan.gif b/Dropimage/img_gif_camerascan.gif new file mode 100644 index 0000000000000000000000000000000000000000..98244faef36070afe41fcef92281cec2c45d0327 GIT binary patch literal 684085 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

      0BhIzfjr@pp_1GZ5mlU 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

      oEtycJ!H{KzQgtVI+j* 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 j(e{2l>PA(?u8t)~l)PJ(*JR@SuWdzPMD< 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 z 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

      IAxNLI8#` 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 otfWb64D{!u-DAZM%RUt zzJ@cyT9}(*O(M_ELLAuduzXN!JDdMFLifp;+aM;@3jj1h7S3?A8G$)gUh-S6ond*| z_@7;!gzhZ9s~v!4ijMJPzr#isa^j(Y^UE}1SEr-Xkhp7g_pZSE1XaCH{!uv-O2W@O zx-9m-#n++lF;m^wK-Yr8t4Xsj5-pR6euAU0^#vB|PW^uQ_}=d9E0rBu8j3MwOlmms z`_=(aqphS#VpnHZ^ST8NHD}gNCE}#*SbAic_#18z{BE{xaSfI)aB|82-PQSzU8`4_ z2lKuXgb?^Sry2BcZLXTCdVh2hv8!`mVRu(Ml82XOyD&%HmS~x_voC+Pz4m6g{{^W* zx&+ZOsT*Xh7`&D}8?36p+Mg)}baf)~m7b3EXHk-7YjWfoRCW#)lf|A|)P(2|I%w_! zd3`&;GKo?eI`CZ1)96_-SyUg!@{||l6x!=pnfTNLU7Z($`R0ISD(;71f{TzwF(yMT ze1@2Sh{C%;?nZ5U-;3BQ6iJ1{jM}wb^<6^^9LsL`HN!zKA%Kv$=0a>M<3&4;IJPz&6L0gFn==wb2E zu9f%I+Q^d|5+NQI+t{D=J3v?G0o7EC_SMv+qDPhkHB%6_9o(mNQR_CgK5=1r+>h%R ze|}A?DIw;!-zv^}t!hkDdh9fFS*!A-{K72&Wfe^h zPMJ`R*VZm&i>JPS`84)J!jWZKQoZdC7GARkpVD0xuuM9(Om+8kZkymAqHXgsJnfGx zlVN!Q_xby0X#G0M;+%_v0LwJ&HXJ}!!FED^1tDEM)CzQUaw66glhfPwV=BrP*&`kv z?OIhJ=SUgV>oFQQ=jX~~BBsau(BhfB;;)%XX2MW6R|9l) zew0R;FUvf4tD^&b&rLqIOpDq-vEwN#cJXecp0u((@64z48fuPrt-Lqg;w1+JceWdJ z4mMFywZzZUEoElw`)p+690b=+VpoUGYxunAx4P5#FX)EnY`Kj`T^&qR9Wg&NHh#Qo zMeOSAr~b@h+MOM~y7IB$*H2jkm)h`rgO$6 zYCb2g{7Pb1hdIHAHQ0xy%ISufcl;gb4SAo#cRqZszCc%pf5eCC=ZmltNJ#E)%k&MH z0{w}km+;|r^}ce{)!_^FI{<<_0#_MuGysB99P!uQ@!wbVKllOBvK52sdNVHh=~e}p zjRdUl2kdA2d7tsoX!o~p4YXtSM~pbDwu|3j20Jka9d~u;F=PX%|FLTo=o%b+WSK&$ z=$;WRlUjhc3o)egtcr{hFiU@St%zM6VAskhG}|>aHz5>|OL(PM`&@s|>KP zcdkHJ=g2aRgw^ka;c`QYUBjZsbyq#1b`kXs8Q5p&0uNiFpANTjn}xKT{_57&^bk*HrgQPW0I`>>#q zc5x_*l;lRxC)m-hRbD6noUWiEFP25#aQf5LNqp&mqdwlXB3dT5Xo19Nq3YNvnM0lQZGqj4_PFLhW% zZ;r-aHI8>b+O;z3i1!V7DJuVRfhTSP{>L&IC;EpZBmuit%hAqGiRmm!G4~SEW@2IrV40Sa((;l@B@=?M5-U1{D4am!c}Wfg1n7TSCZMacZJhSwMj9HP zngNVuIa5N@)AA%!e@dp4n*8bNsHg5yq{mUDv{=(#nNH6TOsD#@YsEB{&ZwR^d4qq- z4Y+0Zr>kS1!G3I+uo>v|OmUOff_Wr0l86+q)anPK?VfGZ|t=fWo|fOESFsouhnv^2jo+nP50QFrs2%7SSdA9;I9w#IDZ8 zt^&UC(gT7J*qoA^%At(Y1ID;nCeK!`C|wRDbdGne)N9H$$A4QU9n&%yjS|-VGk{_e z{YO{FaTK#$-i(#vIVTvsbtE5Ji{miJUsHrMGS5v=VgBvd|uc>hYd=Rn%t5NGdUeh>U z+q+uZTu_S$t7f}M{rp^=TUTvgP2GevHU(MdOz^0YYXS{Z)juw%n*?^P&Q(o0)LWke zw?FTi*J!W|!(OtkgTisYcddw)3Hk%`+cLq~8yRF8fvyg5*9zUp zdSsc{CMaNlWs+%va@7kc*7Ks9goJUFYmFkuyH+yI;%3cM)J^Bm%`oZ)0U(u>-Yk#C zUHQ}1xgOrEP}}m$g9p^zqC3%~c5Io#ThyuFOF1^N`Zk%=w&;1jx0Y$WYu0)K{ob;$ zNv4on4&91iCn0uqjx5vv=;~0n+pV?oqFi=WxPs5?^AOHV<2E!O*m+XdY6`E3#t;xQdLfNAzON+GG z(pX~1G8HQ8MA zVO%?44h)o@r9)V$?SZ-l=XTI^?DEWo?hqzERzrs^nHu(fcAuBcd-#b zIR5^Z{0z62!FU8iAPWNo)u$f^Auadg`3Dk}2Hsl@BtIEQRT{_w!Kd-?RT5AaqU9yF zk^zuD^6?Wk(*02&m;-VEkUpPTCY=Chv)HbZ$9AV1%iXSBj*@>)R^h@O8ti zZDvPzp==2g2LdQvngJ}`+ez$!K3$Pmn%B3Y2q5AP_$GlCws(jAF$;q&pnzQHfYCLb zY}n{QzGvjn|7&aP9*nnQ>Gm*v28m21%@D}c;cK-ladj;<3qI=IZkII+jPx_+~?9Z z8HIzrP^P+P^Yh$aQ)7l-|2;KE_(gLPKFP9`dwwhL>Q;XEDzIW_h6J99l2%v%Uy9Ikt zAkdV`#7LB)|FuXDG^TWxmr+s-oeA4(6)+u}?M=gN2#6&P{ccQT=Jh#$`a{xoeJt;a z!7{<{%9A5s)kC}y?z;AC&9SMtcc?$3={kUsc!5XHdj;+St-x0A$9IaYTPV%#7Nw@qG;?NoO@ja zzuv46Y$vK-J>9Nr7)Qc%aJQK_&u2o|#mF<@?ArPYrsEG;W95k7 zET{5Fm|-tbTg45Xzo^P{lJU@K`M1qNy3np!iLBD-B~f}BoA)mgZEPoSbiBde#2$rR zo1#|a^GYjsQw9OjM}GTmZBoHFQ!32>>_l}Gh#(PemHh@>9wIyP{Zy0#4Ut_`872Ch zh70}DXV;WQGEPRB&=je8gCzsoh@mAeC?U@pVG?-O6LjfPrPp<@Tz`lA#mX7-vuxU7up3*kh z`t!my9$kz(6b1mHRF4{t=uNT#;|GWBNG*Q+i__Tb`RXfDnSG zeAzKkG|WY|OQnrRdEPOy^twp3A`NkFIYE-fepID9rBVow}rek8&9o zj{ChhRk(Y33fb=Mz97?IwwjM9OO?Gdi5ed>v zY4FKZPh!Jp359`SSyrMTSHrn!1Ft1(C)H%<8hRo2$|KKAkP9B_*Fln(aHY(W&Gc?A z0-bf&l4VX3ZWk2^&X(7M3>zE~GZKQ?ZUK8Qc=d!}N3hj!w$bu+tM@J|eg+Xt7b{bJ zj!7S9zr=?Uk~K1gqSdJ_Vl-$a4ap+>$(VpfhrV-)XqJEn)vsxQ6RJmEBh)|KYFMAI z6^H)2-E*{*pP}+4q)DpXaUBOaX3Qxeu5}R;(kHZP$NG$pV@dC$7Fb9ReE6QEE}OPm z43E)ac3mh&FBfkr+=9ierl~
      PHXqG>qhM`$G!FK-L{Vxz?!#W8S9T_U>EhMuvEuC^j+X#bX5t6FsIICQRfIsvP~eH-Hbnp5yT}OGR68*R=wWE zUE}I}f8$K1yZ)`c8%8mMu{S;?z_j zCz7zIFxU8hOiZ0#LWrJU>2S>E(lr(s_4gL*ip{n#6fnr9_EHmq(U!!iNX;7DZxDt! zNvc?~-Me_d9L{;sNnA_ccxq*0Siea&*tB#wQOw&Dm zAOG&fq4$#{dU%d2U4D}$h}n(6ZO(J0^wMXuP{J{5ZcL0yI;*%&gR=^EvQ<{H;vH+R&27rARWI8Z zI2%3hz~y32e%Z};L#vX*X3JtEmop<5?R2MzTf4(NnX^tQg*_1yFrxALL(7Ld4-d`y z%Ya4&+P^KH8L%^(yRpjgO*>2HJ-78OF=3r#wEF(8Rl(u3Ew#H(7M|;S#tW5ieLG>= z?$Wzuu$uj?4C_d(2&d&3$86gpInm%=YE8M)z8#PvmzS-H*Lp5kL)zy=t|dM5I4gS< z(rc-`elWnaw&)C99rWVZjx@#i_ypI_*@nbksd~8q0&X>5N6?+)SdODQf-k-%5_tK; z{NA(go`$6`*Nh%y=#e3#I$|bIhwW850{44c z^8k183`gY(SMB<}YbAdd0kg`^JEmgmU^*q=Y9yAF^~7pQkw68Fe6++7zv*lzZqffS z>^iH{5LV)iZU4tdGS@~Gfq!r@kM-`HSh|6s>{^jsX)B@1=sDq#k-_n>2l+;Bw;w&1 zXF!oYd6u1|5^@tB-kMzh_}SSJY3Ree^XT;6Cpt}-ub(;nMYkN!D<`Q`M1)7#Q{0k% z0vl_d!1`8dVWQ^XT$qA9tNjKjXV5b&6^@uVe)HE+={t^YNELdiiq-nBba$ht%m!P% zKk+A$FtK!TBPRlL&bknw4;kWGY0tmuSlz~cuI!z9f)4D=WV(|mv%&WcDcd1+@2Ax( z&QY5L8E6Da)8f6-!c{IG24jOqg>#!@PAMf)#y-^7HAkt{SupG)ckaIf<2es3lUt3r z_4nsDOUL{+z<0ZLhV8Y~#-*ORx7@T|jhXVAQo8Hz(5tjCEa5x+jD(?2-Cq58vuyNj zSn4GZ>d&rDN$(E*z@G5tV;fu8*^wvzbajATtE>LZ*j+wT8-E6Y7tpDjSGS6u?u2XQ zJXv<$H6-@T~8KZ_pZ=? zRi;32<2;QX3IeYX#8Ry$l^o>)+BiOt3={});$4suLstd(4ONK3KJ)2Au}N04?K7WZ z1v)xD5W5;-(IR}w^TL|0zXZW|^)n>lcz_}vuuK=$K0-LjfO_&_ONAi(E4b!Exb;+~ zwtVQ^Q0+#~bcL10OI0K%lnf=PB+-y!!181RDckdKwWyPp<>ojRw}uNpbba;&QB^V_ z)sox1LiiE@@_cz!y7b%CQD!7Tg|Jbzn5NPI6`$8r<5Ap?``}9~Vo>V0l$FWQ z^RYF9)L;z>Diz~r0&^Gi;OY=XuyhTicpvgyv@9oB)DHSpNh8!O2)S%7>K0xVMl69B zJ}MX+*IJw|Kef%uxUJsL4idqsTWt6a3v1kHDQ7uWR9x-z^W3u=U1d5oSO7TPCTrZ8 z|JyRv-{VlTQ>y?byj+2<&MnQyUYc$pfMu$`qX-#(sgiF&gBZEsF|Ya5zuxbcrq8yf zAs3Z_nueuBg%Oulz%8vnuLf@#4EF|x)h%!}CTEWqqZRtT-o`Tg7Fi3o4S*kCO~rbs z2ptHj9cif@%Ki z)Q?KdDNz^Q(iYt>5jth_x)qYoxE*wI^nmAuz+OnG(9^56)T>i#=5+}WVxch-0fxUY z9DSI&7QIpq4dQ%Dh8{#iLOZACSye36!ykH-U8}ApZn-mnbhTOpQ1g(pu3%J)P8CXDXyC$Fqq{hv2gBctAz*3}ge`bbS-7~mU>Dm2VtDhvm{s2`VL3AKozrD7_Pq2_i z1pko(O6lroATA1R__(6m%YK{|(0{id2KsB)3gAC-J_1&k#BO)kvSN+^T^*@QH=#V@ z{~x&YJLOr4vx%Gb-I6ovqm!&^YE zO1nQN@UfTc`2fL>LC}D2!-ib)>iDO$-h1DtNJ+Ya2E`v{zV&_P)oYFpT3;Heeoj$2 zrN4l+E1)n`UbeNqTyb{hnPth&mgAH9uWc0-Kv{rxdib8C)#I-|B_F=M!NB(mLz`FP z)M$krMjeeF9v%(gdo=wHvugHu6kDWk4+je-r;Y_n25aIkiPWX`84u93j{$2}4I}=x zjnhZ0A5xz&+0CFKxtbpJ7*@p3SgJ|R~nMEACJJ0*-WZbPF&t)54+TB{N zKXHD$@5rZJS8dWr+1Bd%67U30@UP`Qu9#3mz_%FiREHZ-n-HcakS@lpfnEa4eA%~^ z7r!I?CVJa_$&+ipFjN9&!}+BIfmo{uRh%o~{>Ts^>Tm5;NEFMnAX`gDD+!=5l>PMd zEg{xDCQNnB8w{<2-6+G;h8i*R6Idy@73=rJDvuL$cD?@DMJ?Y4$6Gq8 zvSnk!eIt@lfXb0_>bwg?mE=Q%G|z8#yrZa`xSJO%xWSQPXN064I_|5SsQc;dH8UoM ztBewMDJsVqT`Av^6lNl%Yo89NoGWi~AHFepa$LpyMo)6j&rcYoX{)8TMrE+~8BZ89 zt{vtjRkn6y28e2%bwmM$p`KiCd!R7%u@z;x_W5*!vmNB+d6KW}=UAXHbaKS3^YZ14 zq;F}?=S%49_WITe{$9IU`$8!U1?rN=D21UjcbsoB^fwqhDtM!x^&mxeXm)??YVr1K zg+US1hZ!H9-LZH6IJ9!GcI93)Hvkbq$|C-a1-z6F?9Zk=kC|E@Qk z-Ut=1T;bN4%*Twp!=P8|1eUOD|LzzYQt_2f-x;$p;w__0o^nNpcIP2%XL}BVOsh}3 zEe8TBhx6{0Y6gKhFj}u)2{rPs!Vps~E>LemnDJVy8={>(PVCPZ_A`?iP;`8PwsPUqZejrausyHb@ff>_N4OGuQtr1 z`>{W7-4GX#1hXQ3#Qx%&)=&V}uGYTe4=LS1&UMv9D9a@6uU$nGU$s7ndl)>W7vtWU zV341F#cBd=6wP2bDUqmud-6#(r7-j}%qr7CS0)d1E&0sb^?M=Lc(?i*3<`2z6X$Oz zPzpnU%F$nNve+8vp3G0wB%;}&B`q~|1^=j=$2s}>)6g1^n9sXwZ>lpF4+=w%%lb2K zURC%EV!*AJ{?y-JyMj!8i7#5vW2dng{-JSD7&>b)>i+0#DZA7%OpQE-U@mI-9{T;< z2~17a9*tYQlJfrA)tL0JSngfzz)#!bNJ?SI8~(Q0Y&=Wt2PDAY2Sw$m-t~h-wf;y} z*f}T+{afYSjpNi}E@`*jYNT?xFz;}pxTCCft>AZIXsY}{c8b;fX}ToFMep_e&YdL; zbLj}(-s6(hooUp15{dc5qY8FPVW@P1?yg%Md)&Ou>5^~NiyMvmDyOXLc*QS<3I0IO z6Fcn+C-zm2kND0c`_-D-kJby>ZIrdENBtH8t8#jT{=1*n9Ju!O*RFo691>6%N;z1& z>ibf@B=vL?8vSOYwyk_`quy|LC1$@c^!-bl+rWJsSR3?oqx*MZDCPVXbKA3Z&Wjr> znh$Q{o*t+iNa54Ko79hzl}}`Yeiw$cd~OpMC@QDWhp*2^V8iG4+7(b3+E+Qpu)bSp zAL$KW?d3bHr{Q$VzOvK4hYNk>3;h)Pey?3|_4%GP_1`({Wr_CJf%=@2pr{-)*RxC0 z{%VE(CmJvkKQNbpUzc*f*RC#^KC{sBAtU@|RsHPU{H!E?7ls720-U*gG`TL&vw$CN z_}-QX^xg=>K%YG*3}nDOgS>y{@8IK8hz;q(%J0cxJ>5VKeezBK)S1S|~%ADn3* z>&VmDSAkJ(K{0^JfnwuK0|N?`PT>5LBz&H@1?S2=H+mE7ED_}BK=nz^Cr68-a+DpO z+iwKDdqZRCLMaS26^699h1|w7khnrSX7QXQ&oMald)E7=?!_*`LmnDVM%!F)G)~;}{A{>2VIK(|n8x;Kd z6{v0lx5O0=fBS-`=mlRRj>+)_F*PjH2*e6{xrlwif1q-LLIoXPHf@9_9>KBxvv%eF zN}~Uz@~>B@G~8D9D`4&F4EKw~BVan42tDlxCGH3`cjTpCp+Ifuve_%)G&vFXNK0<8 z;kigkVaP1f$}vI=g!5K?W$zg2j0fHM6$Pwaxt@Fd!0h#b%K3Zk3N!QCH9JZpD8f4_ z!oNS_Hut{@LwC--3DS;$WQQ?)j(lwv@m!mtauUx)zo(Cm>VJFAk=mj0j8jmw!mqa< zxMOn9#pG#6r_4mlx`WuXPh*2(9_H-^znshv1+O>$t(%KRgPoA zR9gIIQ9|ocy7gZPAoGN7cNwa;G_)RgXfz&HjE6@jZ2!Wu@Wi+h@EqpvV8`OmR)fTB z0Dbe0;-Y}UkbL4lDyKM6@<8SAB%OjKu@AhHO~*q}u(PT!&JHBeZ@!Z`P&wxBH9X#H z!4l8RCY{}+s?I(I6sGj#KcJ$2uU(ltebANvz~@B8mVJt6_Jgwd2aAKkQ2GZeo#aE& zNqj(IY9#rrQ?j#1iW^WE@<_a`lfp3jo}+C~M;Z>6^6e#v4wR0MPKyInPI`K*O*#&iIw+i)<&oxW0|E*| z|57K_18){=IgURnSD= z4-|$xGU@S2?JDUrn_0`nnG^D#4hlo7PQc4gz2+c8CrRI?PgI_nE5V;=J+q-P+3V?_ zsE=p2@<_E0WV2ah!z^+*J#)AQKf;gaY!zqKy#$F7au{`UxGi$UJac~*=LpAS?KT|; zm*i6E=1M4hK5g;2W-mP#8Iws3I}Sv!&NY8J<@^~?IjYY;pZ}OOzj+MMOMk1JOAPtW z7{<$<`KB@X<|Y4Y?aH|z7MTyMT^U(`Qb5OjXA2%!d;u=eIR3eI<(%*A{KcO)|3r3l zB4BpVg(1B8ZoK;{N1-T!p~!ErFmx^_NhM8|R1|-paukZ+Z52j(7N-JhSGq;9D4;M@ zoW<}Z=@J73R8rtslHdvb2o#0}OUii*GM|@JDHKC6g+Ymh)iI?>A4@6#m9tfv!du#; zP!?@*6uwN=8B-S5TuK@&8{R5&*gIY}aJ*E?;%J^id4F@+NJ;tpVEL8f<SFd`?+SRRE_w9OGa;?K2RULMl;A6R87}~B1 zBsXji)+r08Mv)2Oiu-FvNOz)KKh6D_$BPj1SRY)H&#TL0Lf15hF~=+DAX zkr#9g*-~TKQs>pu5ZlsJ+R{R9Y5k)x)Jdi%#1aQeiF=zzs&Sw}pfJ?ZTy={$>D4+7 z7@U2TQyoGa=W83VY|`;m|~P#-Y#?l`JysOaP-^X-iHEwa3D4k zxpjw}1EhR#z{)V(HnhKNr=5U;Pa~P*_d@BCZV%uw0}fJyAEX!x_H=B$yqLqqf>0*gh`^v*2Qji{L~N(`UzV?Tx##QkMr-`K< zurgTCieLgL76S`Kx8IQ-T;02~FwE3GV(`5fsP&K-wsydc1X>*&BpjGJV_BeQVE{@> z!2H-rJX8=wqs~Hi7Jc~tt#yu7EI%F@&p?fV447jj7moJ-xSBR_62!W_`;%zIGB zgf%tkb zNoQn(8Al#rW+Blqi5#q5u^-bWkw&WnA#(3jYPCB~(EctAQQt?)k8IWb=Nf#>VJCEkRZt*zj1G5X`u_xbxQZI@IqkL38V24a< zf|yT*@Z_W5Xg5jiY>T&**%9tM@EPCSshh9GX&CQKaX)A?iZZ!hTCL4#Yf!~wXkxjA z-}~qm%*E<$pEiD?p}RG)=yUPPC%4oHMzwlu==XPzIcB7=wB1SXD&))V@U&&zUS{Cc zT=+3!Vmj>{7^y>Vz&GQX@-2Z2>`#{Yl@R#htTjS6Kba*cxM11oddiDl^o1n$3gujy zLuTbipqXPEyvM*`w4)uu6m_mfCH$J>1oZ=$3gB~&@ikSry9%4|0=$%?D~-b@cZIVhBm?8H-e#&3pEy`CL0rvzm-LmJ{qIdk-#3 zI_F(vLq`x+lZ-A?rnjPQ%>)Qz8jL%mF2&@X0`|8sI)S-154zRfUC2%|6QF;PDL2*f zGLCtm(xI!wwT3N}nJ4zNs%ah#r$V=gZ4%l{*6wG&IzRssD;oFBB&}Jf34g2 zFEunp9%oS9uzeT_uqH{v3^7h@XC#45R@sJz@zLTTGhNZ?Gr#O!)ys=qkLuhx`GH%* z0aS4>5bHO2&uBBvK7Q}nI<>k;+T#fmt4crNQ#ud+-FccdxJGG2(v;l&1**!$Hiutce6$rtC*LnWu4BYQ+39LoF0(K18W; zs*{D>=S$d5FOxV1AX%49t0IqQ^`5`4JtjpWy{??Ra!lQZp7SYBJWcfE-We(}*dvMK z7?H6`sF@;*?^Jq>&hPw>T<6snpf6QXhqBnskm}4&HdGO`7qQ7m8XnX=T5+8ii`;ltGo4Mqz#>nkbR%dQi`~+lN#|u5$-U91YtZW6i>A$s2R2w`5Py z8eyxTV@N+WQg*;*kZ^O9+c6nhHthN`7qaDwf+!}D)xgf5ZPOvFDh|x?9fKFw$WwQa z)A!EzJ1oHELw6xyC4}b%fuE_J>9{PFLb%$M9n+N%MkpAHYVcvxaiMmZ&k=vmB5<5F z3Zjvx8sQ^ZO@|i3sP;&6UbcIGWNV{BLJ{G!`jJOSkF`K<4~1rnr}>5~JDL`HZ_FVV zYa;9wl*O4#@j!l(zdeu#d7QD$9Z8RDk5LtwIQf-JUKT^encRn$NooLru}9yovZFX? zooYp#I$u2}-;{XlmdG3{#H3OpUOd+K>Lz@IZo&b=nTUXLY$IM5Z`U7{4@NpY{G6!# z;Mv32-t*$vMvj|UUv5)JS=|v5{GtPm5bES}iQ&rYJ+Y45yx@#1Md8E~O1(%o;RMB4 z8@dgw3Wp_0VdVSEbmdonQcv1V})h?#|n3W;5LV}jKP@db&z zyPRGwd43=Myzph+&I(X??p)GzpY}7)&pkLMlb?)!P+WJ-kjmQwC2x8(j1GU{(|OBU zIsp=P%ud!y(CX4T9UK*6TK}oE$wDy~M&)zx4AT=10<{1xaiC|Bl{g^6B#LB62`var zKI7m*wC}zbhk%$)5AJ%*knjIW3p&(&*m7%{-qZ_U)F--BL0<8Zn(a2kAOBQD!*I+M zm?I)wzvW3p<^)sV&$9i|=Y!UulxDbVhqI#**T@4W9mo>R@X>(pHc(B|D)wZTXHs6H z^z|wi4oO9@Be!i?0!?f73qxLGto6Pr>&TA@d_mW^UT>u1Jp$wsN4{K=ldDsp%@HRT zw=rh<)vJoRz6kZQgT-7=#qGr%J?;8{PUJ{`S=-F-JG_>mLNCQm*y!`eB+>9zTXpU`RhTad>LQdx}e-7z5_fz@jHe;L|Ygo$@CO(#Dto3k<(sfwve zu?hc@&T!0N&Z35D`qW+-?+YqdsO9Kls|w7<_Aa(lf#WE;wn{X_IqFp7m|&}_+vtU* zqh5$^Uh$&zxMd$|7&Qwme=ZI6|yPh+EoFC_T1 zg?c}DFK#uXd()#cZt*@#$O!eZz>PD(NZ-WsR&$0+k6SEWj%Nm1&6|O$xThCFSx;B7 zU%TnKUl^L&hNJMsWiON<$~9I?XX*=kjZ}im=#-~)uv9|RR^}=hR?E+CdX4vIF&Fpl z%%e;L$A^X=SG18=JPg%Nwq3aE=4HcA-RCu<|I{N!)q3Sef$EWq6+g4KltlC0o(%fL zy9Q}qpwFLrvNXPzwb|`SO&3BaUV7{8SV29!Vg8in*DOB_@dHfLoZ|iS6_ZzF!VwN3 z@p93O@CPk7Emyx9%0nY?RMnlHtVcGE{TkZaHM03SEC+SxKud$f316pj);BkPw%rH9 zgX*bYejfKz160lrr6@l+p!&1r>47b(LaCNjI@%?sOH0gpU!6`sM9v(bC+@A+=|=edy%; z^o*Z9E(V*CDTN^&Nh(QvHE)ftFiHKYVx5e?8Xq<2KMO;O5clR9K0O~nIf(PNh6`Nt z9-pSGq~?9addDt)A(R?oebR|JPo^UN6J}qCk z*29rg3WQ2vDeS4FR^aJ+cfQviURuC5A&{Tk6YkSAX?OunrL0}yyz1FObykE6F8w~h z+Lgn^`JIc}!4dv+)4osgo&lPQ%|$!5r4gqHxu@mx@N^>wN;?kTi0z69;%mZifJEMC z1GtFe4b}S)owShpbDNm^Tq=B6p@(mDf+d?og&^5*-5j7WB&qvb<#cH#OZo!7C_e-^ z*U>G`&@CwiR8Dh_B1Fcm>8K?QLLxwsq+2DaS7N8_aaynTv>rf=q+_)$@fUP0^qMmC znoIS{XfTX?K95sXCAq-j1if|9IyXXr1|i+{$A$;pAUBWym{vfISjs88nm}ifADHKdTW0?%*NoWnjSjGpqU0N zxd9r_tIUY?R*BI{2P^v;Sr$RdswI|PI z8gU+kh5C#RRF35am82U6m>gq4Kos_JL_ zANN82RykJFe(Z?Lj&VJgfax)p%eRP^Z#)d(#a}+jfBEk3!ceax|Ka<86^0P%R~{b} zhLo=Kmt67scVUR4a->ZCluZ49MlqV22HZ9cd}4|XH9b%{e-?)RP&vdtAvv=M;KJ>H z7l!^r+#KZPNCYbhLfTP9x0{MadKgk*!?gHUVQ6=RTH~se+9rhiqM>H0~5>!+lz%XnWqI!X8HnDTYmJJ-*8UzeL4J8eBK zmvvpC{5mkZez+C18VQ!~xsGD8yC7gEwRl}c*-p*CPJMS&Xl)$sW~UWqryXynlVzt{ zZl~7@4CvVzEZQ0F+M${3FACUSlD0Qewm0sv(=@QZe8>KZx4mhYy;;1ydDb^$YkP}U zd#ho4>qYykyY@B#c9u*xu1Vjxu6)DJ;D+g+^`!r=CAgRm)!6^(wBByK_^&0nmP7wI zt#3JhI4xiaj$7aSx6{gd`SCBO^?xkEwRD5CDD|Y9im=Q3PK%*y@PvO}{r_@Wy4A~P z(rjx}jl#QiFaG7UV(#N2lTGG^hm7xjV#=pDtsHHm*7bEsx(NnPWM|04 z&(0^_6g>R7@3fwJ@oufH5<7PV0H@_Spoq&g4l7rl%@gt}1)SE?$+^{jalDg}`_xw- z=*ksq47Dt_&v;H0Sb`g?t;hRu^_(&B=6E!1`#?S-**HKX`ok+9z-e8(#Xll@EeNUd zq4TbCm%}*Vv{J{z6xXKzS%RB*p|Ij&8=^M}xd^pG{Oz=KxD(ZWoT1c{GJW-;?4lee z-#WbP7k+)U;Ap4n>ExqRu@8EJl3$)EPD{DJLqKEW_UlPXvq;@|PqC)BH~ti-<@kui zkQjW~T;+s5isG~cg2b&N12zrmy&nPfq|{*t2h+rWP3S4R8cIFse=Wh4>NGih49;q& z$!U?D+h2mq%ySFy%SgP9Jh@OneneS<6TY9C-#cqY5Ew}Y>Phnj&XPsn3b-pp^t%41 z(^{^i*6d_1{qA7~7K8p%Pm&Rmu4b$^MRBp*JXnHrt<(Qeb+2Aj1GLgeaat`%%~!By z{maW54W}ti3$^}SPh8GZue$YuIN-F9XDhYak;NgWJB_d0K2x>TMRg`f-tY-fPYQf; zLh8h=P+PF3rxZ|6I=%osd_zGZf8ciS?Z+(%miULj&A+|ny03~~r8Y*mpQ@<#d-Vpc zeN~_v-5AGdO8=UOxbn{u+~Th(yyvbqmy3AVFgY|3Sc3aqPg>j%zdL<<)7@JpENK3~ zX>A#7jec?dQn*+t{%L!q<+!0I7b{1C6`L(G-eVQ0C+)1g?zG+-?pTddSRuc@yZfur z)6i?9gx^qklj5|dhgI8l?`X5w?)=<$TH&k1>x(JT5Vuhbv__4NlTuGw_F)OZ(}-(T zQk)hSrJmGK$#e%P2(=Uhv-`=?h>`sMSb~GojDo8Pp{&Qmo{A~rscah#mf+^!!S|RQ z6nF)0fNdMz9TsD)5t9d&;2tC%(UVX)((}Pz$L<=(mxfwtj~rhkH3X}ZgL(-c2C8E@ zc9`O{bWR4UOD37&-e^b_e+QP}uG3X>snj&Skc6b7c)C;TDNc)NVjLXgf;k^mOLLm* zJwK~b zQ1k8R)!1oDJ*lzvk=W;$+7NrW+bX)Q0i$mgDNAsTdu`sc?D4fUlZwtNdY)sQ2~d4t z32xR9vzbc;;hNTixqv-;R`76Qs>a!-iw^QXqE0)!SG#`6(C^WHJxS%fhpsfu{rB|u z-l{J(`cmpia>O))$4#B_n?F)0PAgESE0O1Cs(NIg(g~J}Z=^-QhvH^La5~-T=0DR- ziRqWWI2nC-Df8aIN=uuusXI6NXNH6RoLQNU!RvrC$uecB`}L%O$gEpG#f-jsu%xn$ ze!?(H+N5~&?k~aZq$$!IH_cwjN8s!-?C4|qC`)ioRvC8Sxt@9^5vmw_N&Az!10B&l zsnLuJ5VjFBpN%tlKKu)gH+2UG_Igg|$2`oqsgDNt(LQ1>0GyWg^FgA<$Oi*R=3OuY zc~pMA=&@9m-IcliUg_6R;xnM0WN~@s)a5UCzb!o6E2e|LSudT||FmCEDqb&J4h5Fr zbieL9t^7}qxjo7ClXpw|h@UX~PHTez3_iQBA2*#Xj|4M-Trh|9Mqw7f5?mJ2kJCAu^&u(eUoUGUwta>kft z$*l%uko)p=$W@^euWOI!Q!yq}oYvbWtsDFGq*dCnCY$(EVRW!jWXxMyvqivZk;hLY z6zw&sMNKnEFW*3>yd}D|-VdI$w3ldG1$mXP#QoHpRuSwY`dEXU8%r@L3wP!QY~Fiu z{TUsL&5nb5(u{%UW+$F0KUI_8Np1BUFlX{P=_B0nQpsj_c33{}wa%Gq4s>~~eU=25 zIY|y~_7a#1vIF^VS@xQ>uS(wkltOm8w(qoLb3%6}8Q!c!q+82Ie*l)?fO=AF@>=JTzVhNus@`9t%MC`)jhKTC+WZrk378UDpo2&95%p2VD^Z^%z9 zI!;&)pe(_CrKS-Bmf#NRNp)vizlV8lk5il$WeF}^k%eW?@LbLKf)=eB>KpQDVU51Q zKTB}R_af>ozwHc9#6I0!eY?6ntz}r;@!I=A0z3a0^y@@bLY8Zi%t1Zr_2Pr{v#|`% zqmr7-tbb<4?94kDmef05coewwGaO=y8a$GU{s zaLXmna1eFPt}EfJ<#GU}p2Q5UY1>)298xka_%wvF1czrXo7Obk?1d&Z>Pfrn1m^N7`>&5`E$+?7Fqba>c3MPn<^GfBRfyshR9l#X zdeYsin|3K>d#w5{K6BTebm3=tQgC#ikmq&tLAc{cKZ{+3*UnWbul-OT_ zlXZW2Y_I4gUE|q%bgxdj?=Qifi`abg3Q_dp-uMeZZmI1r!O1vAaC3uaOi$C}Xmrhj zPtiwO_D5Qu!~}p0lAb^{5KrhoS=EoH(!s;b-*HmvNqG3NcN6aMl1cG=O$i*) z?+%<+SJ6A6^w?eQ6QJV6`F`3?WD-zMlJ!UeM&IQ3m*A8)lTd#-E!AUmNS$~w#OrUT z;Ig>)C!OB^xdeAQ_&qv0mW+wd6b8@re;7ZSWd7F@oI}$GJC9hveo1d8j~CIxT=tz- zaf;UfrJjW0N%fUa1)SEw5?tVH@`F8{SXm@of0HUSI`&a|>Yqz+kDF3Mn;6;9(rhlE zSHZE7vuWwT65K#~R(d*qAoZSy)CrID+PCSS4(ds>={Y(n;lYyCh_nKySOBR}mf$G$ zq>R=->q!SoaKV`so5^&@bXyM)8M$9i+Fybj_sAFo>Pdjp;`s#BlYRtexZ<;bCAca1 zkBOH+n?OCOIqRoo7I+PQxz_wS2&iz4eDSv^w6vf+yucD%$Y5a@P)~9$@N_PWU?>m+ z1>FH!T%Fc0Cv zFVBlV>6Q?9ORE%0Z#$Qi&3%!@6j>)0)i)Pa=$4Xr%Q}u1*A13>#emGVM1irv9^Ilg z1z-t|w|q?ZOZQ-ztp%ufOSBpd5+hNT;FftSRun2$w#vobdK<`j zja1NB5|*4RfbB(?Ug?%Ifl05T?_(LWV&#t#+CGPf$s;Qnx0;$#8`xoUb&bZ)Tf z)O>j$zDm}sS}wL)zO-7AT+P)|B{NR|kwvO`YED^JE63L8l-B5xfm~9Jh9$tl%8SS)YtV^9kY@JhS-7Rw6os8P62lb@w%Gi-Qx7d1* zZ7Mx;;TswC7`_I8Z9TMX2=Hpq1I!k%1m~_;d-7Us2w$U{UIW&$5tw@u%V>C6+IUm1 zPDHpcmaoY{ukj7A1n1QhE!h-e33?JD^faR>Mz1M_vIN(V25@LGYC1`*Vuo#Kq0XAYd!LhIRu&O=Yy zsb02g-R?kHQI_B?F?MJUbwT1lGaox7Z+G+TbQ$e0!Tq%Cwp?hFCw4;6J%<*$uMPFw zS?ICL?3ri*8HWhKaXqe9q(B>HN_Z&L93nml6=*|(;xI5~0@QUGT7d)VNwkfq!Q8!(ehAC(n9}fs z)$pYLaCs(qmcOrtG+cvZZp6WJkzau_)LQ5uGw$nV+}B1#UpH!KEAuPfihq<%d6Z2WY&P^46I&jF;6T6oSkvn1I>RYp_WI5 z%cq3B=?;=mBY^N99s^VrcF%jVZh8Dd`M0aeU+ajpKy(UAf=3ai-Y|^;HK=aHI3S!F zSs327PC;zw0Y~;qfZ7}JHPm|WCvG}hV9v31(%*Zy3PDeFnZ;($m0Hgb5%g8Kv9TR; zDeFJGZ)~Lb*4=s1;=H%Ow<6?pe(P9n{6aPp9AiDwNPwLr(F2P9wZOup_hRcEdVcBg zA0QY3v$!m<01!be#gr`$#4l|c%=JpcvHKmUBEoEe)iUJnNX7_VY&LBm37+FJ8vJ7P zA5w;fO|mRa1DK5ETQGsX$9n-{Grj4(a@LypK(tj5z9R(}a`spzPVIh;V_B6GWZ2V( zpSc4^#lwGq;1cJ5AX}I2+@W_yfg5d>p}Vk8h?!RcKjT=aKV?q`yDWDjK%Fz_-+k~&0aY(yg)55*-cpWtXR6cO9jxei@V@P#EjW8^sx&a z-&IhK3tc#9`J~JLUt4e0BO4@Z&|}PO2Ks9%%Ont7!;VaPB>ZwvX1;QMA{RaWU~doF zAh=48r-@}6CsW|q&a^kw$6&l01pBnS^a(UgEzQu4_|YRcr*VE1i-WH*vUD?<6&sP-8|3B95I;!da;s5_O8b+gZrwE9O(m1-2?gj-3MGQc~(I7QaVj~o!kr1UBCEeYi z2uLW1NW<^7q3^e!&vjkjzkcWJ|BZ9DbH;PG=lvmNyzuY18>XIgzjgnA8F#b&sJl$p zmmMzL^folqvQrL^n5MuUDR6#dI*rqQozOK;r3Q2?y>*f}d!#bU~M!#F3btIX&T@tAI_2r&dyE>D# z!s!)57UqREBv!yVkghgwKZ1)lV)L z{{oMU(k1zoRpPD%7Uq`QtLn}kN4vjS)uwmW8XF=oxy_jMtWu19-3mo>A`@|c?_f6Y z0c#YPIEMTEXggVLa&8ksC{fc&hTSnt^5oZNN4kTh+CXX(zfY|yp>!Wezmo7; zNZi-W?nDlqf|ZeHU6gLGsevDukS~))_;}dUF0(}x+skG*G4#CwC6Xl6jtVeOn;mZcbc8O06O`U^B6Xznm zfu57v?$4J-+V>O;jR@;ojO^o2L`d|v;FbL935gf=t(6mQ^lLpsjm4QzaV0RDwOsHp zH%_$PHGdqTXKVUYF^3#eak3tcfG5ASjMBR2F>fyjl$`WUo+O$FxVGJpHM#4hFl|pR zu5S3a^e}k-DeD1<)c6dQY-`2sNqx~|a34hJCuoDS=wyD$^UK3t#l0`eFs~rHr{S%b zoD>6q_`L*oE1h|Mpre^O`b4_Ib9uU~#^ZL&{UA?mTy(?E zr>p~~<;>>~>1ZMojh_4dGBQE!;`(s09^DSTRGz>Lr{I9i3JTt#JFF};Rq|Fif+p8F z34c-;|NIgcP*`%>-*LuBGINuILk*Je`=#x?#!mLT(#+pQrH) z%HIKc1j^*xtF}11srVwJUfYzpP9Ch|2y5NsCb6H zYE0vL>sD2s%u}vasK!`Jc@U;Av}b!zZW1x^|3FoUXq1geQ;X8J8cDPc(9 zM;9x8@;JC8Q!`zXy<%h+y*j{)^8P7*J{M{U`m4s3BK^=G2b;#C%ve0OeJbTHAYQ2hCVb!`DB7$fIgy7 zjRQ69eDB90T^Tu2mZ+z?fc>6V%73UZcxKJf9W#IW>r$n%rGeZoHl&iqMs+G6?NLVo zx^3`HB>Nfh-K}*dRfq8RsqDm2Y`A>pi$Hd=WboDuK-6=LXH z&th%qilex3JZ()E$S#tn-w{x;xoTkRm+&F6zR!qGR;AJOQ&|b&{U=06t$c(qsy2&n z%#Uiab(d`L_vymFISpDk%Pc_0xLqCk(H2p2O=6z=XwHG@vFvM~z#9w2Vk~g{U-+~P zte!B==qK}X4NvsG@W~Rpj~n4K#(^Udig1$J7wvL;1yBn3?XAp3!oUQ_)X&AZcV*Q` z;>QXzR~5oY52iFxY#udF%GfoDN%fYD+a-Z_+aQ|o%i$>Z5fr?q z;0GU&yt^bJbOO|q0H?+CBwy3lNjFWt!eQcZ%<#i9$xPF+H+?Iw#BVs8N2G$=U~ST- zt}kfYB*t5Ko|Z-VZm3H7H;A1+i6(U=v*$djecxyFF2*%l8BsnOREoqcIsxiQj5Eut zxVUMqFBHRis6O%BjLbiYQL11Z&r-w@*zkSe!x+#G4Exo5Ie7plI3Dhm7CmFvEhWY$ zWE!pX+q(tI+|rZupC`^1Yh&HAVzKHWqFC{4Z*wK6u5G%(Lr;TDFzIzVpU=|wqbYqr+wr-_OK)|8D23;?a~+?_W_;UMb6_WS zNIvG@|3oy9Yq=0t?6Xe!;03vcKY6~gcjD*bXDS{XctLz81cYb)&t?d2&D;kVn@tAU zsGj&{uC?C|>da?V+3Ii@a9X+F!>{>RUx*KFCjjP@*F&w2Kl466=zZ?@Gxyf_OyEd~@)XT}Q!qu#5m^lXs%m>gC#|y4 zwlyv9!yasEtn?pF3#oKF3?fq1X7(-+)g9>cUry^BgjKa&Qt_t}!+VTWeuk@TpG^zO zQ}!)V9v8=PeWz%!pU*g<93Y?)D5VnkGl&BXF{n}$;DhkORKi8t4HKxikt%1AJ|Fcm z#U=NZ%>)8y5V&4FDscj;@yK@OeGogvNAjxTc%RO@MIC^$0_CZu)d5aR6*Z%pzM-12 z(TT}RZK;@TKmZ(0v9FqA4lKc`<@%`Q0Zwa1m4YvXW>v)u8q5dl%HL3X`&f z4bWj6Y+a`M!4dTEG8gp^KI&C2-PFb%PX)SYCj6^Iv93+1O8sL|4>CbjsiLP5AYyDirpFi}*2|35U~Lzrmz4p z?a-m3p3|((@yF^}KYL687KR9#oY9=y=+YAo95`-2Qv?Orb_CAhYBbEyG)ncA{KQpC zhD-w@im+GDT5G*d3nkJ*=}8dN8bIj=*$7haSql3Cy`9TNz=c+u7SV7QzP-26t3VMz zL#GiVlFyviw|CsNJwrIz)1UL$pFK>=jHa1>>o!htkJN(3Dpwa~RL;5^XSO??9gn#9 zdSP|;PxXST-pJ&y*kXkgG&i<%z)F% z8K4IR;9VH>s0*S7!PzkNBwb#ELB`TxpfF{=rEy-E0!}=b+Ft4|=n9Vx=v(9N(r6oa zwqN2Kz%IeL4wIt52iZfbE_iJFaAr3>srmu?9z9`zhUMu}YIb`tVJcHH()tRsSP@33 z2}9|z*Yzvh8J0$kaQ6m^LG@iX0{E{_cdvVW_dE zQN}MuN6#<~st)6*S>xzU;}~p%>IJh&9QPzJK^Fr!txaQxD*rfN6H}CNGRh?NPd({L zr3z~EPdzEoc#GkW(>fUsasKam(r>4=Ih8jH`hP6J{pGZ#-!VgeFTs(T|CiJH=xW~X z`_B^GO!FpAPp^6JKThlaT!Nb&(8Qb4#JgVgUry`)T7qkvokCeoNBx)6n){qHw}$uE z5}csbw#C0oaGS*zR8>}2JN}2$60*htu9p0}1c!B6%kxLvU|2?yootB;SoSjG?oNM{F(~=Xim&Z7*CCOiQ ziudi6{r)(uu>j#W|C`gA`wRzx*bi`VaX=uDfDSNM=LH7+k1$qpsX}Aui5pZ74r@)0 z_+RGgZtI$da}l)qHPCe-RV%P_b!3nCe=HX9=mroo|Bt!4;5ANIfBMxYPP1LWTwQ>a z_aXcB%A!f^T%F{T$>Kta3O|(khmzUSD=}rW-5=i0H#(((0*|yyW`QtPf9pCm-vS0) z-8D-T)@VzV1cS@!K4}&ygZy7;yDU1qOduz53cvia8k*#=5r@ zD|T(s+UC~H>S=jDT>m9Z7%L~Xy>xXciDaARb0QGNT25yCw$Jv`k$(w+u*Zb46#2dG zralh%l9J$tnXBWzJ86f4yN}%#8QQuB%+;A1hhKhAX!;J7z-gFtmc$&E^`*p1cb5pKj&yPcYR@Co>*Id%W+5_U1I)T zhYy&mi(to(BvW^Zzp|0F@vigJ+D3(p`_*ufb8r=M`CHXelJmFf)pKyQUQ#3V^O4|t zK|@4;?Z08HAz{fY^|%*dt-K)KqAg&q4!M_YdN#Ng_)}>Ymv(4C<~&kv)TU0 z^%9t?Te2PKY{#Q!zt)8TS8dF0%|GC(p4;bPtlD=Y?mNEhKx}GIg?H1H?IyH7z3D;N zM#~5Qu69R_9g26y%snu3bwC(v!v3Z7drosPQp-M_6}w;4Zta45GmpnzMMpFA+1^c! zTsRZlorMz!?JooooDxx9*+Mam=-BCE!Ik(@h9{-}r;f7O{UxLa0In>b{|K2&USHm0 zj1I(rt6M@6lz0izW)KmDSuy&m{|aN#J~-a);C(Cg-JvEZy!yE&ALovX|6+w1!fV?t$vzSV%8t0Um6`&PdQnIE3F zX$_U&5&K`k)w8WYwx5~c$y{_xUH|iB!YpE=j%FZI8!Q~Th(ih-Ya|W`9q(A--1!Gw zfzQa3(TvaTfFxp_ON+{nu+Cl!u^MbxQ=aH6kR#xr+HE@Jo|NdFL;EdH zEp0&S<=er2W0^#4%G>+RrZACip_U3ordGm<9&n1_ZXYkD5@9?iM*3V2VxH_M!BhASb z`rvgt$Wt%lI0yr-2BV+-e9cCB?-uu=+GE3aZ0jQ{GKyV8Ni{!ngr8hewNS-XPak1B zXm!-Uf~$nw>rc29AMhh0)_&%yXcp+ce5S4Zt^z{Dwg%HJ7>c}x0as2Ms6$N-CRhQa z^Q%s!+86+?vdmAGAuo(|UPtd1xkVM4pQIQ%${7^sk2=s5NsKofUMP$vl$WgMH=rJX zdtKC7k4Ey+MczL9Qg~Nc-SnN|`$8+}e47?D zFjqHL8Sfb2f(2Jo|4SIld=dXwWk=M8>ZOR8P_D(q+w_vjJ4mQ5at%F41g>0aY{C=tCYXGHO~r++c<8PMLKBM zO}^T1V=)vCyaNABb2|VJ_IDTy09QRr*txps@`Nmb7#0t)mil+HctyvHthW!kt;v4R z)zNntEdO|M;H^qqm~z%)DN})5(O8j~HtD;!TpoR8azWHXtj~k&T_%C1qvXnDmx!=G zzg6j-TcK40h-d&@)i24Li9=lQ?WmYY9n>)3>f*Z`?>YxzHES@^?{S_{@0#IluMx2l z*ziQhsy@!tXjNZj$>4^gM#WVk#^s;I9>83k9>bWJ&@L%Gd`}fdI5kd;D=p!ZemtM6^G3t}%++m0f2dp0{C*zB`p~e~`@pyR^9)FI4|1^x zc9-CI;ft0>BW>R~xQeN29X)vvgflZGYX7c{vScg#H@K3v+>T0PoFP8Lecy>Qw;fx1 z{6#pXx&x=o-JhDt2mh^j&7HoT^rPdI-8a>J?NJX;E-XOgMLoLxF<~s}CAr%YT}`<^ zvg5tK-tMm%`;h)UkKA|R&<;dflV&>{B<`0H{&(%G=y)$`a`Ae0pZD;@V=u=C>uiEpux~09j{l@mXjaIUg zHSdOl3CvvG+kKe+*casMZz)u)>9>)5iOd_`WjJiW~+09>e|Jmi$K((qMja7dbT@aUJ0H0@2$;%*3 z&tT)^;Jv*dS(U(>o?w0BU{kRWd*hJx_FyqOFmypg(Gz@sKjeI_&f5+8)HBpG`Tv-! za}0YY914W7XwOPP+#T0=SHluiLc=}7v0&WWhi#g-Vj^r9Ych6}FBX`$n{bbzyA(?DH5M~hcM!wo z6^R!vNCZc46NU0t#{qM7VrMB)f?km{s#j_)AT% zBqw05t~%O9^`%8h0x;=DfPQ&@62DG6Im9dZKfo3JpSe1(l*HvEV8%CAFYBH8?*di$3wDc5F1q%eRw>uRBvQ;Ho;UEkGFek!@&6OXn#yEnNIfv&r9$AEBmRJ^ zwbvx2nOA|iI&2tAp&;>AO}56=Ydm5;JPPo?;EDkZ#MaEGax4#XtQp?eV(04a{sC7m zQ*Z8fy*WbUxJ%^fJ3%(WdAQYbpQ+`V9lrS+T$wXq!dUvLxantKxkL-{5NbKTPI(EY z`517emLJBDA8rc5pW@Q#%8!-EPdT5fdy${UU+~xo(t_XtrWK2b^Ie5W|KDM(LWx3? zR9u=4Zh&m{q~-xVEKC?HwRozg7zks%uPGXSmV>8F>_}Cx*p)k%T5>*Dw@zHLVw(H5 zhP#a6?dlo^Tmf@+`}_pIUgXSd6=_lxpYi9qW`ck)7IAGUbh?!6sFdROTpc!yl~%?O zQFdxtYA8`+W?RDIoI_As286Nr(#rX3%LS&(38%|AC39{HzrA%0dgY9w!pO8-sJ23C zxi{hq6>B877SNrkkj&w$`im1FmgF z9b=uDWNnpM-AC`bj)?a)m+P9HAlcn{o?T|o)dmr4{RUS*%^Cqig^$37v8EeOj~an6)?agVXyQ6FQ4i6t zBQ(V^`sP+0ZZqg61qNJgM>Ilbn*Ie>$VRfFCO((OS#MS%M6-}fBa?aaHSAp7O@S8P z<7SDv2ArV=iQ|?n#um}@xjL5?acC=_R1+>hyfRyF3A8Go&(%TEs?auiBxvacE6^=7 zJ#GdT>o8#~jTRH8j}+#hh9l-pXUN}kb#^`X!4?|K7c~YMQ2nIm;3|p~TtCRg-2Y93ITr!q zt{?j0LpZ(lPZ$e3S0{!VmZ%?=njMxo!Gy7HNe>BV4&rMv1O862en?1gMC$|#uCQ}; zS2Rb|>jy4I4PF@-wZwueTj??T&CzC;QAgC6Q~j7r@fgY)=MM9@yWlvlFB35D_y{%r zOmGb7r2U`Z>SO}3Ie{u2PmmtR1NBzLjwIGky3dZsp8Pdew>ci)J6S+FrWnBpEuAVQ z9ZUC}dS@~H-gml6b2^`Sx&Q^LD`NDR9qk>!pU5NyyUnf50qpQ;Mm6}j0E$A+g>0%?HI|b*J zE-s#cSWXvbQP3bv_h^yl6qJcx%!4liQtM(gDHYk`n#DY+%s3I+@WnPX96<~N5to@3O0lGn{#CIL+xN;`8rxiYA+wepy*fd$Y&W-Zso@jQZmMP@!00SE zVQ=Qw_d-kVfX;$_*#UGG8}viTSG)me1&fG>{`f4Q0G#+{h2z~X! zHY(CLEBrPAoz*S9i3gt#%bNdZqK}GVo?>Smf zRKq90XwjgFoZ*B?=x>C#mwFdI>syioT`3~g?M7>&uu}Z1=&j@QZHE5UgSqY9bo{vU z@)vxA{&be_Y*wIz)DN^C3R-A%rIk3dgpdm3>97$#L=fg!lTkicPoltiR6+<~zutvy zCGu|oj#F#=sWJak>+GjC>#pvtUA2DVOl*a$abU;%%2Ju|vX&KT-T;vW>vkCeng@gG z+#+{mBk9y8N5gjAZ|yy1-DP_Ib8ilcv0I2ALV(>umb9)I7j^SI5eZ)w_u4l}5Rja*H)+6-?&`xbq1jR0aAK~ly-NuEjoq?Zu zF@&}K-|)~tc#T-+?E58_)zQpf=V9LWWU1skEUFocr=?-BySsg1kOMs^E9*bkyO!zGJHpcgRUia~&l zNQc*uRXgjDtviNE0Z-)q(nJ|Li;i6}n#*KpNi~6I{n8<*D@P#Vg*LmX@$hmlt}~3A zkw_y+KvgVQNb22={SEDp6wKFny1DsGI^j8(FxIFROXYoq1Q**%`QD%lbkBCinbq^( zD9}@`q`;~kemRY}#?=-kWX8}sdG&K^6xeI-qu?E_W}DXV3s)@7*)C4WzqQYD4_Aw2 zQa2M1sGFLsP_exxE4^>+LOSHcd&k%D1XZdDi|R(;*(=<#C)bq}rkCv1@%l~I z5?n+^Mluqw^cSSq320GYZJ)9@5yqjwxl2PIV23u}I@3mWyoNAUIrOUphnhwBKiMY| zIgQKCW+))gmW-P1@;W$+E4UXfVl8kGET9fMur7%6i^G*6B(JrroYKC^(>yDX-@#=F z^ZG*Dwse$3t*BHHNe9wX$QNHBRtXG1U2AdsV1wKB+Mm5?~L#sb5|BZ^G1bDDg zSv$5Z5#L{e<~>BLOgH-(OngbN?OPQ&bDWFbQuHiUPHql)fh^_F+46{no|Mj=NPp9X zE<0L*yKFy={bzPA$lTNsZ`Cm`gz(UtT6Mk}ANTXZOH@*UECMJH9F zG($*T8blgyU!8g{-tAi+yoJSsKIHRn z&Kig{&<~Ka-6r(bz@_uS<=zU>A+DaW7IaOK<$!t#;ExUYr;D`^kd+bJ^XR2?+uyxT z#2#zZBOIw#N_Fi@KCaE#p_Yrog1O*xO3J52%@^!QK3!sEr4nq55}G6AI5V%yrJYz7uk98&yzvaI{!0UVhildzymhg8}(jF1T^(l4#* z)SdX+Xxj@>*0?Gam%uu{3t1^NApV54&g)~k*^!Px+VxXJZ#>Hx)Jj|Ry{Br;%2()d z_QB$&{&?18EliJcoGmt=8PzQty!A${bHa3V-wF+1aD)Yeq?(LczumY-wILcYI&BPY*}Kb_PkvWz=|wh^nZrH~888ZNG` zoR|GO5r!!Pe6g3woXr~2ODNlVAZ}6KGc`_xq=F`b?t7`3V8>*k>sj0W1R|eg z_gq~~Yt`whsV3f2SqBMBY@LU(Eb%yH*og2%bwEN*@{g_`+tl1FqNDB-*hOP>iMrqf{TQgY>!Rwt%aEdmaj4npb0ztCa5diKSxEGe8-U3jP!x>09w-Umfbm0&f%WC zpI~?|iB1+C`+!Kj$3*7HG|V*n4Ilum%KWZj49zti^Lq;MCf)u@aI3nb;*Gn<7pZjt zmxI0_n4;82DQEjy6HuhvjjXIP^KK5a!N{lYin!UGjP1>)ryD|pl-K6$L(_UV^;)xu zG&c+;L?_=EvK2U3I4iZ9&HeC0`}Ot$NxIaLPs^fV^ll-1u+PJuVRB~=TV~hg$>bMF z96Vc?Pu;?l%|B6!5||1+d>CovGwC3#*sduX#z(_RNzLoksp;pQkZbw)J*T~I`dvh?yEOz~>6-;>}9 zZ$}XN**J50n34}0^ElhljR|L>x49OZ&bMl)@9RCSYM1^N1%%=z{2m8!7G3mcKcpM9 zCa!u7D60kUMbhW{!D)6k+#RH5BG^cpIUBx6Dqp;$#qO1jQC9FHe*1?ZX?B)BUmHoF z8Rz$XKKqkr-#&<>{P<*SrH=X%TM)m?TVh)3X6iB^jHPo%7C}B^x!*$T*D$=6p6BtXP|P{q|fRguc0Z>r-x~)S%Fn)3}&2!j?v58VP^D z{T;ufIo{KDL7&il$(h}tHLp|7)39E~25k@oEKG1FiEc@|b*P8u2uP}ZkP;pEojkgT zkzx5YEaW-?cV_+KqpRyJFbWMxJgx?3wjhGY0CGMEm{1xjg=Y?VvqREkvlUco7EE>w zngzg>xkSyn3}Ag|T!OSbgVy7lPSz>ACGoh;<#=4=czxvfBIPb2feJNPhg0SO8Zz)& zPH02!%CVd74J1~lh?<2Vz*xp=4%=}{& zTkx4_hf36pO7sRcj0IJVg<=^MpNctG&>M(clH4Unk<)a!AL;|8y%Vxq#Dp;qPKAsLEJR6Cft3!5C=P5sEZBtkAXRcB!eW$95 zORff0ulT7l{uPp2*M^C0iK$lsVXSwZz>*)IXNUPl*IT4|!;;GLAQD{=sEJ7f2xGNK zX|!U&RU2Tds+4oFw(27`jMdYl(L1Bjx6#uwl0z;QdT*ms3 z!Lh0;Xu<_(oode{3;;ug7c6uxy6VvS>d-|2b9ICCC@`D$07-q@^@&z$5QyPCjK!?W zA*jpAJj7UvrvxCYFwJvh#R-J5q=%jt=?e7fUeLr-g7uRa;JG0Kz@xg?1of^<>#?E0 znkwKk9=ri;kqaz>(z~2U0vv^LiP{BFA=}uZJGc#s)!o%R3T3Z{X__6l@zJcQu7BBICYpM32zHF&+ z{d<3A0H=DoMs=}4%T;>kxt@cJ&wkYs`Yf6?@4mizK+5^8r{>0ZKYMm(x@PVB&FQK~ z>vO%eAHD5m%8%v2!zkK0589n%le$KJn5w;E@qW(d>dqBNMzVy zV#&S_!r+?@Gd~(rzE`%kCo7BLeD03cVVv((UK&H+0Qd$+t>aaMSOdOJhzL+S@{wTU zHHucaKN=r?izlD!3A2l+eXRD}NW7=In~NAw8oGqJU!dn+i< zE_yDF&C0L5w@-=!G}41EIsy2GYKkl4`AsK;ygm>A*X#tt7kR0-B?|K8g=uU7d=tX& z^irZHF8@tb65DEC(fc*0SIj@p-1!Uqk_ObN-!2!dmpIs_(ii7H?OHEwz36=>KNLK@ z%GrTf#MX{B-;EeLZ&ps+E&NkEy36QX-gQ{5L=CLcVQNR~-)g_xGH6x%y>G&;`;BiR zBJ+2K81I0+e>!h95d!$83QS^dj~g${zTHY=!ilsuD>Q7MQ3q&ZDXn)Pu|1e8}9FV>eCl3NkwOU_Rcm%+uqf| zJp%9$^?UPSynX=HfkrP(hh7G1M_SL_n`WaMKcE?r4w^viX!@9lG{E81Vi9S_-1?_> zB=n!FbPY$mHX`?HJP?K7jxhKJs2z!ZKVHkIdw8%l>zXdX(~qeg&3H8W{>;|vXIdNg z#^9S=K#$ufumM|iL9sR4YvT{jPWFdc>VGCT&Zq2t>CONVsK9nMulSsPh8{qSv9+W6 zX{#fujub8m8^51{nA(x-*k;Ugnvotz9juwk_7%=wwIkukEU1G@3&Ye_h*(b+*~8=* zDh}bG@Jr@IXPQ+l91PoGDjKh-0DMF93lU_qfKPG3u8BQvD@YTAZ-Cm7({?x)a*k%R z94>4;ND{yG3cE^IGDsHx&3|zp_*(LiEvy(7J34zPWHWE=WNP#9M6(VSu~GRF?;@R)a@Z8`X408Xgc2tAGH@Q+Ps{PNVcG7nr2Z^YDcq<${$Sp zA#f3PyehOpj_ObXwsv$+(nw8{A@4^HLF}r^6HM)BG+Qc%hqjJr6 z_sp_{Q9(;(v6Gck05R8x3U5!KcCWu1cX z0|4JxHI>j-4(~cVS*)Fuwq9rik(K^iJ1PyJ?ODK=+;5_Y-U|F40pz+y0*<5J28m); z>GoUL$jZXN8aDm!$1|YDu#g*4pDxz!V`@hc>NAtX$)HzPO7Dl9T*lUpVBa3H?K>|% zu=Q-0#ng^^?D5Fy8+du{z5vGTc+3vEjFYzGJE!{{mXo`r`pT2rHI@kj(WJhzb;dZ!UkPAGrVR2fvjYSYgFvAQ-?m z!5faExd*WXc_K)5X`pt*&>A}S6B0SSg6DYH>kSJjz~Gy|YDd$URl3R&k6ves(3+ta z7r9>F-dxt-JN$Q*&TO=?1H)f{rM_g$&*@2=}iijOvug~j|Kv*t$+;gc{te~UAy#yM~p!2C}zKe z@^ro?qDYG+ooepP&!T{35T0*UeS`0#s`?txZBLk3d?jQ|<~efy&ci*LLa>8;!= zc@dilR}Q8*`w#lO(^ukieQ@bYJ+d9-paEKTjIO00+@R%2sQuY92Ye#U3efSR} zIE}IYMX~4aDEt}n{7Etm-@Nu@qzj-F^QXnG(sjJ_=co!ea*()L8X(*O2WX0jF#u=+ z#gc#H8=3t;z}d)&1t}N@DX9eU(*-gl<7U4UZ$aRyRRvu43<9W)Ar{}5Rt1YB2k8L! z688N`wu0Hkg3Ucc9Fs$wszMxAgY75af?{G<_CpvPLtK92n~?h|p&F}VEojom#-ZNE zVL;j_Y(LOwQsP&>*CiP#U}S@40hIL7jYzof&|j`Wkm?K?;{ z`EL5}hi9t1DA|8e>KS;1egT~bvyBH)mV#=|@y&h&$pHSKaAd1-CW-ZKeeNaUa@q*DqVQ&sWGC_5eKPqd2Tg!-V?#- z6^Fq$)o}uoaYEq;X4Sa54$@_WNQ)cj+F5=S&q18jWISe-t~35>N<0Y#LRB82a1bF$ zpP+%Q9l-#RLlh_R+EX<@K|3YU6u>v)vAQYoBKg-uy%LQl6YqK@Id&#kU5ck<7Gt`7di#UV4fr2bm<-l_p*D0^Lx(BHD=;eUOa6;+xn> z{4uwbJ;Q;O8UWn)Q$jrlUq%mFqv9%kW88B(FJ+=)+DXuUP{3^zL`vG04{TR zr4-#uYduKzQN03qm9}bRba+}5uu6xm9rcSNdrZ<^m`n}F`54D;6G|d`}Z=Agwu~FGv-rp%ftDJ(4?m(nWrY0mxo!UJI6Op=|}f6 zX%12CL;{^ASqy6^LWV4s!z|1y-C7oPO%{GC>RmaCrzVS8;+4?hD`AG$9Hy@>Pi26J z1#nDXUzmDzZR$0qb~KePQttZ_2Z{I!_#PbFf^4grHyC_#_{NPP*L^D6CiTsyPEzn1FBL5FX;+52#Gl#`L*A3A z+yxU*wp(`CSyu)yC5T|ikCVv%jc-!(F{^Y_z#3nECPTq1;(}1%n#w(#7V9@xtP4IJ zYRjZIpE4x6#jbr-m@^ppV z^gFGicP#4f)Gn7@K@@1mmFt<6Yml6;(v|3@RYII02c}%&m)~>MR$A4*cj19}Vyr1htF6JV(p7iYyf>>=UgvnsSobla zwjr&qtG2FZx)$wRmvIEiMR2B()Hg-c^`_NN)z;5ASM@vBzdUosDU;-=AZe(KsGm)1 zSgUQQJ*rb zBL!0vWe*W>HR+;x)2DTgR)d67*V&Bdm5ty(^9 zwo)H4_(tlZ$#ENt0Qg558{lM|W}0n$K0Y>Yf9lijfc*H-rAft{9oGd1gKvOUI&AIe zQDplIpmqe{8?hduP^Qi}sm?3fZwP<1#{>9Asv~@(BmKBD)BGc%t}|Pp)5Vl+9Uuho%|EpxV3m$^5IN8ftkPYy=sA`})6EXDMD?FZ4RS~iaaj!U_zv-* zhCmjBtg}NGrF*|MfrO-oFPClEJ!ys7pcjJDWZv?LL@IT7rLw$K$;6YbCW300)N9Nfrd|1Y~#p3 z;AY+Mml6J!qFs1iVn0!~8 z6qxE8n4K{fnk6Uu^dgfGSkkk%T;7Nx))XSiLldF2m+kxTizt>&P8Tf5fWp%v`6-yK zk9ZeOrgORiXITw6UAm;T1mK&)GZd(!nEszxJ+X$*2@Rir&*~xO!}>lc$*g9wtikU? zjZ3~fj$VPD&bkZ`p#XDZO_a#8F5X9!sZFYWADV}Nma(lTT7r@Wpke5>s|y4q_t*L? z$X}&zbP25n&wT|6LE{FX=xD+b%gvHGXdD|()mu~H!eLXfXP&-;p|F+`y)hV3> z`E5h7VdF>o1{(2|CH?orUKnV7?esh7`L`tN&+1y_nII@QV{6S41n`$(dP>={)(q8-9+niaG5wmUq;Kr$h5V`ej%Mz3! zvkfEvvWq6%bt8=1BDsv|)*Ej!2Dlw+z16y0G*S@ud?+j;8o&p0RY{`D#)r zJ`DoO%KGW;7I9(Un$tW+)nu0tvRPp_^#(5dUz>VRiruwzPzZN143L`kx+)n3+P*W6s|ky5ghV_E^~>ofxs{6W*DkyQ z)QdkPSk3T;HT5~Z>5M}W7uin^-2p3fYG)NZ?HEEqpilS(+}d>uF6k(>dj0BO)yY6MMFZ2FP}adJnllWeX;UJG7v4h?5g*582VE%WE|(y}vB-3FSmi791sRBjKl5yH<1LLCrMI-+HaAzRVi^e9K)0RVimDUxgH=aZNSZNE~gk zwWG>iLlcXX=vt$4l?8q6=NMk&_(X9~5^nHxQo90%M{crG9%SOAc)?J~^lW2k+(|Iy z4yWQ|(-U*|?nDD3BVd(IlDpu^%Msid%n+VLQ<2iHz~6fpPBzIwK3wxI0P8 zRTjSxO^%A~C00Lu_hQKh5S8;`-1vqNNt>(-QREbZ<5V}HB_9+0^@M0Go|yUJCMb(M zHR^ipM`uIeEk3JuH(mCQ3!4JS(96-$8vHT}GFy*B4s-CGNRITz{}pX713KdwYs$V^ zNo|XIbLnC@H`@VD%mDl0#v`-))%4PphVO@7W5`XBd-Q+Rz=@u=csZ0G74L{WG+`{$fuu-#WyeMf6PVvg8hvUIM<9_uGvawh zkJ+{>HIwr(5;Z5%x9t#$FnD&3Z&*B^=E-xC+!k5h)0~fZ!0R+E`=us!PL`7Gu-i8@ z}G^I$V%>{4KW<%9XP*O*{KoVWO9#;-7OhuLnUt9DD)y(811E&ws7x-`anER{XJ!c)2rZZ7#_RKmcN41P?Wme96yYQNR`L^ z0jqT@eWt%M1-~qNqbIKLT?q8Hy>8oE+esjh(3?mv(wm~9A|Qs|AyT9x zSO5hS1*Jpiy(`kC_uf09cL>s}2#Sa_LFtfp0^5D|Iq!L%=fBo`oB1?r)|$ERxqjF6 zf=Qk)>Xmm2$rFM=#G~x3YGosNKykEnk=NIOTphvzt_?}20xEja*QDX?{hSknAR=es zk?>^8c0!U;B3-P#Cgh_J2Of(jp}Z{S{W5i?6!4QuhHfdc07P|5r?xfY--(;us8sQj z+D<{?ODs#rNgVgsQ8uR|Or?&Guf5Mj-d6S!B=3gE&UB;nyDcwRAhYDAEaA36(J5`z zParHU@GRyv%G_TotZj6R7v83j|6-D&MA{a|T+@PBAUb&9ME%}nG-=i#s37O$aAH;D zqgi@$b@8eoh0aU4Q6Qe*^86Cwl52PtNNK64!>;?%D}RU^L$am(T333O$*ub}ojOH! zzWD;KoS;-`5!#S_5aS>P^m@U&(B$%V-2n<;c?t+kkzPKhs1mGB{yw(M-Uh#05+%$7 zqm9&xLb9l1_%w5L%Htk`^toLOY8K5(oho?+gL?ad!tR%>eJ18OthukUHFhEAtBp}K z9TcqSRaxe{q+&*wU_enFM=mP!f+K(OI?2T}hXpbg$t~Dd_t)7Wjv#S)0pNw!Qk&!3 ziL2c`elihmcIUa~^IQ|zYbeSxx?&^UmWdhecVNf@jAfhnL9pbd>wKdH_~yeshw`*} zDJ%FWZ1>bI16KvvDThL;84-zvUK``QFasUsOr^6l9;+j-uUfy_wqA6bfcZ^M*JQJz)K>EG8+QeD z*&T#q+Y$KloNY%U`nl^j#>wUVAN==2{Q=zKlULYlECV5#rQLoz6|u#BD-;c5HxmKgbPocl^e671*8fylNo!EC32r9@vE z^rbK2*!?@mRHB5T+jDOW9WdBLn4T+oiMo2DD)iJoTKqGf+=9~>BUmq|xpv{Ufb;k_ z>vn;B>9srr9)tP9>xv&UOdR{@$+^=v)eq8P9HK7M8lJDzb0ya82Bm2R7j|_XcT&6X z99LtB9NNR@Xjo$*tgyTG7+T4}BtcID9Q*)g2-@0pk(Gjvd~@Gx#JX)I%0-%mfKboX%K zMX`Y>+8MHtWUOcl<6bpye%53TV-bkDGRvqL{3k z=yT|5b_fJTy~)?4I3!x<1-zB*Wfo?n z_Aa$g0LCIwNkdCng>!laA*-B$z!{4i+wHdMMGD&I(p%~Bp!b;MGzI0fB;>SJ<#deX zbk0Z`1y@<|k{St9IYWT#=$A9bRq5m&Xm@DY;;0%09983~wJ-O?sM8R?BLf6750N*Q zO}ZW+r=aZ{Uk83VEB|~={>7TS1}{Vq>8k*Q>}5Vd2_MLLj&greqSg&TMvKWjyQSH*x3#lS?xpaR7p3193b zke9Q4`&q^g91OrWOiDQ0k%ZD)Ri(f))CM>U^z6d5aqvx)HX@;4Dd7vAJg--%wX9A~ zEEuDdCa9b)p`0cGe#t2xrs~OzP|nfrxfv3AD?~XzL~-=H*9Yr%9ApE)H$at6`wX(7 z=vG*RWHYH$`6$Y8`c_pagArbZ*6mjmJ^2Du8fW`TeQ+d=Ub`o60N(2bm8uYm8j=3A z{_Z;Kc3^T<38~tXs2UH%>(DAz=kdCf{`^Gc!Y$PVoUO>K6R;Jb`?M(3#;peej#~hJ z#`(-vG$GNuo8LPlq69SS-dpzX86FBdVtG z1x+8JzW%sRB35N&wj1XvqU&9M+dIhy{iUk$+el*sTg@!aFYI1xeb}cmH})>K$Xr|Ti!-n!EKb)RKh4$Te(nM zrBVBDjD~{ER{^jcG3%UF>2$PjX#Z1Gq?)9oawoqI5EX&OwC8k8F6b1l=$Mj@OW!Hr z&Ea`;=l)~0@kd`T>j9!7igVl1__?UaNd^354k&xw$BBw!@4plpd%&z~_hj@8rqO+4 z1K5sq9nWAIyFy);$_W6Wah%h2chj|~@pK{8lM&MOJg?FLwj*Ob6B`A;zpHdy6G9$2 zdLaX6wxf6BB1d`=0DJ@3j)e510r=+Ms&rGaq_BVKYyPiZn4xdK|9|a;iGPXu|MkMw z#{Sg{;|l+eUYM8CU%fDzse=Eb7xo2?)7PM`%ge-T|LKKkFj8OpZ@sYKU83=l#gUw@ zRpUz4KfN%#y%cVDCWldn(Rx`19-GZqUXSebt*XzcLGGduHZEQ$n2 z&`=!eCdm?9vSc^WdVTRsUz3X3(RcV95UBQq1Pt`T7J~$X6jC%fI~^yqr}2jufnHem zf{$6xO1i$-(;S?>Ce9>)<}~NAwivyZ5(QHJ?_QXB?$;QjH{ZX$2lO>r@7QT-zQi?1 zX)ncEURVT~!E$Qg z{dkOwl{~H&_Qv^1(pv+5ekrbkS0ULsfW9Wh*H3IUhf5e+w+i&a7?v~a8}oj=iJJ!W zHE3!0v!eR2!|vP`?)-v0K{^AoQb!iAma@_N`QI}>Bg9u3nDu~O7|JWYu<9Lc31Q7j z)(`XYlMt25X-aFuEe*fM|64DNspRH*Q^E=~nr>~YjpDo)HrsNwye5Au4oWdx(s54E z7=}n)VR%vSn2P2789}pFb~868WEpDWD!4N!0rbL}x_HfYqM+JaeuH;$y)ceP=pKv! z^~s zOg~!!dSUG1KrhUVH5LIyO{f9-8tOF|r7e&9r&)W2qJw3S_+rO=%*>v{QsVpPhmFZ2 zNW{vN5SinkTKj(xG#f{oXu>PUTP-f?vQ!0+{BO^-0|d01!JE(UIZ*C{sQ)?=K)f3^O9ZBlX*t zE1O&h(3x#x{)fJ%FSbiqwlo}>`jG96pxKU!t$56F1tqB{#s$8Zvq%Ju>(Pwgew!os zgkx`|C;K=ORub|=P${n0V0t^I#yVZ%F@2vx)iyWZmrTK@aeaWkCN_39Q~36QN+L=# zwoNum1kl$=@khTeu+CDmMuIH|sqhxg^fiP3g`oNDq-JucnQ#@Jbt|w0>+kdreT`pv za@k{U$tTys(u3-rQzbzUi7h`&|2D)nYs>%$wM7Y1F`^?j;c${?Goq6QE&haW46qVt|} z!TNf8wd)Rl7ZX(G-+9S@zij(LNr0Ll0xHl~wfviPHpBBVkBWZpt`1ILBZhZxYVaed z*s0@##T^&@f%x4Dx`j1M9>)9C8}^k+b9mRxalNqrrmvY@B-5=dd0n8#L2TH^uvh!H zzUF;Zx33LVUY_RgO^33w#v;cqoW91PVaj+NLdABU!1i_P&xz7rq1m@x>) zw(+W$29>&);phJXamB2$upyQhX7)Qp2TQ{o`p*fPKl+-uZkCNT2wjRMahGGK0-&$S z#`VGgf+p)_lmPKV$_FWsGkpz{Ij_Y*zomM4{DiByK?Fe1m`Q>h44putGxYuD=Hurv@BYcA_r!qG0$8gHF5UX%`1p1gWCY@zRQWNNf%`kN3Oa996&_`YA66-$_^(*lQ^fin} z{~~CPrZ8bu71?SwPrn^vQcg4B?n29^x<@k$WYslYIDL)bLzR|jpo*iTVyyRc{ z8pHYTO*=*G`Y31vlh%)8_ib#oo9I73oBI*PIGZvDSY=3T(kANjQC{5P@{f&VsN*r z{$$-&!Fgif^mptB41s;N`1I1?UenRZChFVK?2h`c1#BOe(*eSf^ehO zD(J--RP+JoYCwT-Qdr zP@MLkj=qIAAL9s`uDd5b-ykmR`$v0(jikHh1Pw20U%~OFutn+)gct+#!cY`+o|Hi6 z3h7Df=t&pr`Io+C-;)i{)QEa+E$a@zZ2${D0Yy*Ve-bo$p8Sg5 z(m5VYT~KL9A5u&2yMVrC64wh;q4QDf_JUj9B@y+N&hbIk_!>?6n(X^%2KZ8TlU|_{ zyUOb)lH>cJ=ByXi?P(U^N2cgA4bUyX3pK~@#aS;*jn3b(2BZ@!p-UG)eclUm^hO2v z6Jn8mZg&6bh0#q0yrKgiT@-sG8u&IK5FlvWaspq82E^<@{K?C#63h)cJ z^y5YcQLF@&0t8KscR8@90s{ZPQ{inWW64wixt0C_N2%2u_l@!#? z>ud#=L8MBHi9}g~vix$D^ z187Y&K+q7@l8e&6mF9~kqrU~%Mr7jNO65jNo)I*&u(!&$-(5S1G^CEwj(bOmev1Tp zVF&LtbKl84g`B`{T;+?=0^(F9G1gNt&ktg3>EFM){oekJpmB_Q?_B%db?UtfAED*# zw{n0^ogNUR#JI=B2Gz!fOvT~|n%WrD(^x5e&gjA*Y{M*rlTMAZWJvk~X))m4s994gTtd?Z$lo2$~{3LO7tWaZdSka2bFxsN(^B z4M9KV4?!cAcHRr){fE9rh$xjoES=B*l(BW0QYl^RSqc-;8A0=>7skw=F0Pz@MVRCZ zU|5OBKu)L2i)CsXWZrkq)WXHWQn}f{UtXmGRuj#j%*O^2~TOSn?ou=2i3 zrCvg%LH#*FbJhzx)7L!egCi5Fo)K399+P+5*;YU=EWbk2s_Jio2Iz%p1y|WI)~Fvr za^iTFksz;x8g+n?Iq!ur)`k+-1m)K-2J=Qf!;7!S>1&dYYEypHh6vOG`Wk?siR^=? z*4Gu(*VzQ~Rw6-#;`J4Mwf?BOnlpmNB)_ims6NFIY7{{ zFfO&0t)MHQ#_{~xo|y(5L1S1oX4WrI;eGQjur%eM|d5r@|gApHh+8^WeHConPt`ca2H4bB=ZW8QTm)DuTMo_go zD6#pOE4znS4^e+NK+OR9ny8STy*?13D?14ilp=wSpY6$O==C`6$yROlSG`op1_Xcl zs$BbO68q{J`WmeJ0LjSz-U~~@^x^b1{ly&DNZ_b}`Qrh=crzj~_%DKnq<@TLaKm*V zP4!ad@!&7(fyIVFpcjTCXhMe8jfOxreN-hKwAcE;ZkXys=+%-xy)b~Fxid^-JPZ&t zbVEpFO`kFgxBVy|Vc*d9tBTy6u4p>ME&_urgRs}iQ*gqoeHl~*}X23iut2Q<+@sSpI z+5r^|a-7w6JO??RV@eXRFjiwdX2?9jU;_Xj!<|Ud*Fpe6Gi^}pnm4hlz)O;QO2WVcNSuUoh83Ro+3>Adj6a8363>!3|qcz^JPMi1kjhjfCLuc+(EdHN4SrF zD1-rOn?%sJfh}UR@x@l-f5}|{)`Y}%H79vBuV@t@PWF=khG`it{G-C;N0s}J3ioB7 zQ%op|=w}2J;7;--*V;|iNVbSmPB8g%@Xq6cL(jcm+_fM3C$(5Y=BEPD1^d zfBqv15Y9x9M5@n}3lsCOd|I7{e{-K;oB#BGB)Lpi2i4c$rf|UN@@0Ui)MWV+%g?%| ziIoVFt1QE~B$w?L)7>?wDM?NW30Wv%4hqIR^b?MT=U`w|jmyQPn09Y2k7i8{GBN8kH>!MLvvcb49Ean|>}9 zA|6XwzgCQItMLPn)eNgI`J2KWB0#<$R-vZ9azU#c6oik4Xoj}%q$!{>=-5nMTo<4}Q|I_gx_87x@^6~D;;3g3X z`8?|uk$=g4D36Ad;V2?Uwv&D4Q#31aObUK57SuU+ zGTMwiCa1vQlX2={QljvIUYL;{3J7&2a-KXy4lm+*Vb_ESAEHAp$=H(Y>*Dk^d|1-S z8~CswYA0~?9Ai{k31aiu0%Bf8^c4EiFG`z5e}BhxtFQ#Yp{-&L&$2b zzx@{F$%SM!l6vPW|52mDax*1TE&?D|o_;l{_?22Hm0m0XzK|zN$&1XPDNQ$++%ofo zCEOIEz@uSNp;}fq7cO|5OdwMi(LYuD1ui8s`*JsNhvvyB-KK5Sh1lql4h_notX2MG z>?L{62l~DHeJ^j6S#D$`9}BSXKfxQm`cUTh8?&4PahlZcm2buBh0&diDl_$F9l;mh zIB)gl+f}qFzr*KIx3B%kuMq;0-q1fDY{O7riO4k2l#P#C7l%we&A6eBS$SL>Dkvov zvjO9`syT62Mu4;#=wY--vRq`k9>W1B$qRD;A}8`#y^@?Snd2u5c_hdy@so;o0Z(M` z$d<$I*;PIq(gMEwwgmJL?~>j0Q-x89d(yPpWPIpcoxF-|Wx?{%S1JO=r9qM8C@0yj zPzf-%jG*z$t8(1edm$Gj3bgSr%ug3|t7^kqwn^m0BCRj0m`6hUpOJjtM#@rGVx#1L za)RaH;%k$pWSOK-eJi45o%yYyT2(9DNf^n_5!<{m>Q zlP#_n_Nwp3o{=rRqmPg*r|pEc`I0Y`RCua{6Kvnph!;)?$hY6S;?eGt z>%!$3YCpC=dw9>$2rg*0geQ+N)owM8kRhNikm0`RWW=fxZ{|a=(Kh<^xytnS z$MHKldw6o3PSs0V#w~c4uKv6c=c!J2yX}FYRkEn3J~A*{S$^f7*n$l5Hg>vKp6;^` zN9G+TpJa5=^6mL>xtm8}gko{di%KdCIN~M1X~ST=O56zk7QyBBfYb4@wJd2ZQK-Uh z-fe9Wk|NEmHxjkt3+fmnC=Hn9%AQ)O?!7PG3Tx)*Xh8zP#Hq3YvbcspA%*H`59KK^ zj9oE-apZ;0hv{e_v$nT6T=^xM5=^2S?|F@G*zTtRbM?t9QQfDU(_h;PRmOEl0vAc( zEZF0af}0zS`Xe$$2DC-#JQqRH$vuJ_Q&+h%F6Syhb?1f=n<6RU}tGrbsxXs-fXegpFJrZOCE7mT2jJi zKU1tLKIAC4uJ|&QoNH(jMS%kOF!841-vaqFs!0=xdR;TsH}XBfTVJU*XFk zTF9PbI%9Kf6Ts1E^310)5*wN!F^}+gP0ff1iJ}8YC_u5!PbI;!pOcloq+aJb=yJIK z(U*g^it{5FfeJ^O6*t`7Jfb)fAscuZ7s$)|>fw0ot{g zx!2AA0UvHga!W7w*MJh=T7nq`$0W6xTQ=SVL9|XL*icZJ zEFT|q)BGx4P^6cOkxaJ?_p3->)g*=;y&e^;d0A8v`idi+ey?U#$?bTi#e?NZPS&Pt zegi)P{M4L!eH5i6_(z_IWa|%LZzv4I*v&<+cnQVm?RaaHnhCvcZ+rcwgwqzE7)Q|f z@ov-5Nm)qp7!0cxsZgqdzg^8Xz2K_%%j;$0H;=WNkMK8Msq{aeB0Z)n-!hl+**;!S z%QhIJxY?zm3x3MC#7-2h_uI2Pamipbe!w9@w%Bd`hdYtfg|_=0chZm{vMUBteH$#;acPj+eg4 z0KKqK_g?`Yz%ar0Rk_({!VHDR&)XZ9`7+#p2MDke`Ji^6z}f8!{EgQhvDQh(4BCId zGh=>yMQqF%4ysbQLs=_9Sb-y5NZ2-9zPWs2e*UIHW`@l3*HOQf`X>XL>`XIHsEVUttb-9_hNGAP9%2md|`h-lYPG>2GKVhY_;o zC_!|Fu?XZNiu1vgK%qtmLtcnTKrJK$k)eVMa1m7aet3lc5^)#qS_58-`5ufom%$Kg zquru?$c&`YqJ4N35dIslWMz(9SRH}pmy8ZwHlwJlVu-AgY8#N>;xs}C@_H#G%Bs&w zU2A^}*jE0Nppk%DShW$Tda{Z_?-%@&py|+dWoBQHW{co|ASnN+y+cElN>fxG7=ytz zxKMJ2D`yQZOPs#OW>(%B=x>(e5di6}68YzX3MQ)Zm-OZBj1;tREDPkRHk64T^rk?; zrJ?Jggs1W>lwi$^W)kd5qNo)jX+zol`mGP)3gl^pFAii8#t}5GKzB>g({!y1>+!Z5 zCEN88sSw&O4`3|56}~u(Wnb~FYR@B)bO2)^ZU<9o623E12>V5%S@Vxx*s)RyiLxbA z4}mL+9;Te3s{F5B*l3TIFkZAo%Xy3|XI8n$TG>mxvxuax=$8*Ws>Qb*ir;X()JUZY z=!JzSgHX)?XEc_VK8$^mxzM3?0YNRRlMDqqJ zPitCBa$W20S1ox*ln8*d)M&}v86`S*#n=|o>}x58jv@e841lyCw7Dy_R6B-oJj*_y zuQ?-V&Uh9zH65KZC5)z49o8rR;U?P8qbt78|FVT ztO+$d?}Zgq>Qi+aUY#`jf9i$(o@w|~+!_Qn$4-ne|6?!Acq+*lNXHM2LFl`U=rLZj zE5@HrjH?&^r(Rg7$@e6a)k2dWP?On#S(1ghAL}NYCnj5@4}LPA^}^gtgu0D3?mXDF z`O^z?doVj^EL8L0c;Nq`7q;<WJ=s*N-}8rS1-(b0e)&q`9Jo;%z)2A#-`5@ zvVX8lN+2;%5cnb(1jB-`a3;l)looFoHNR1JiD{ra1;?)8Yr%m3$}$PiNB=v^M9f+x zl7*K!^a0@wq_}9F1pI?#db0YMKE-=1U$6W;#Z_$D7R0Pl1*Etvum#FQFQ1N9+b;D! z5xsFquEKF=6_?_A(7-=cm#9)x@;Uo8`}T2PP3cls#0krjAG;-A`(nwtH*{~5eH%)V zxg}Y3^Xb?A94%^fSKTv~$)cm=W5w!B%_na6OqnXc2E?fG+)1qZ=h9Vb2eLsR#Z{7F z!|_4g*lbQmBH8LwQ&QEh)rGbR?AL+DhJ#Pj5oLlbO>P@?eM5a8Hg6v~@9l?cbf`Bs zdvuD8a#Ok-T(F$d{&JGN;AQz#Cef3^{H6{_P1y3Yujy2_wht3a7PSW*kmAw-&rf^~ zeD(bo(KU`Lx-@URG~V>*6!%sZLrI>APKHR_{2g&?>N9VK2iNn-rO2CiDi$MDKN3DN zRFuCxB13c2?CU$df3i$}*?=sadt{!9D}OgvM`ZnN0~*(VobY1zDH1NQ%(s#P*nlik zHKDLw zy`qyK1Xw0jM!_M7z(vy3KBZf@6j!}~2K1JSams~@Y{sw0AHOH9kPx9*f98>3vv^Vc6j#a%i;ZRLjH7W7PbpLYzPtpEj$gPdD6xYF*x4O>{zQ!7= z-y$W%XEB+1ZgKf=B?DlYzUO4Si_V$JQdE8$kwf5rcFB2uv<{@W#5W4?$i!cHk2D=^ zwO@Q8@w340RQwe?_2-72N>&`pq)T2aF;w5w@UrYKdE;+@Ws=+;I%;ZsX6gdif7Yru z-IpiDi;oZTZWO!!+Wc0GJq_sEY}oxJqqeuv)eK>XaP!=nht|=e`!Y1#WYM3%Jc=!g zTw6{eB~o}-AKiuA2U1)ObI|g=I#OD56blKE;^M8N6no*xEz*z2&MQR=*nq58_>nSQe2N8 zvH8ZzN#FDh_MesEyw!7-;z~+S4FcM?`c{ zf97R}9u@J{D1wWMXu%f`eW8=vF^zx?=>3864HI-oTSgD@Wm{FFYk&=?Ka15v$y-XE zn!B>%E5N?|HiKu|!Y(O1(S_SdH z3+`lg=uH@aQ{TL1lYb&$*cUWjH~l)}**hz})M*_7Swyi_<_}}Q2IRARp~NV3RTnHU z?#8rKdS(Msnd&vzEsGr}Fuw)ZfSh;BQ%Kh>$cgo;-~9Fuu_>_B?E_L=yOlT_5W9*& zBUT;-24*gvwXIH`*?>rkY&{GOYfToQ#>Q*U1u!$8#c(XshHbEb?#MJvW#5w``|7^A z4QJi*(I-D_0#_&2yeexysTDg<2+VF3{jQN!YlHOX8}Cl>&CS*89HccPPLzG0nk)e}iO%GU1m|W`w|u2CrYC zf18+zyD}U6VgN41wL}jvHUEueI_OpeY(SB!!3^U1oy3aXGGC9r@OSNZstlIJRQG?q z>;j~?I$uT?8a<-ev1@;i>^(11eB2hf6cbsPrB74#TScCzgqM-R)Rx)PU(Xq-tROxy#WE zu_a#R8OwBT1M+Pox2>dfbgEv{ zdU4R!18;U=ewpC;P>xMNJ>zH6A)F29=i|Gxi?cBfB-9k(2yezEW~>H|W!el+m?db) zdeEYFx_)zOaanYzcF^HG#dXdy{YqmzSy9wD95yC<6=-n;5-G0z_z#xp<)D4A0^$ql zFRRf;o1H>jiVI+whUQ-fx6KA#XFY11P~WSYIoWvqLcBeRrOgasykXZ>f0p7RG~Oh@ zI+J&h?b}p)GDL(oeBseJ=rugujvZ=PK4+PBQpg)uq{1D&o9BG|pEoQi3>}WwpQpGi zSPwoDCT^1cs$bRB_+taww0W@!Tf4r-^~sIVzUBCzER!Mj@GQkObh6>{;i$cO5BnW2 z*7>Uk_FpNk=7Z10dth$$X0uq+y)cjF)4d_=>Cp%5&%NhLwyxhEL6uM*pLaco&Qe^& zbg0dn?lW5M%imDvEYmol=f+Ks-wqzI8druhmWim_bD@(Ie_xymO$v)eanpHU6ZQV& z@3pWCxyo|`8sWOn<0W!t0~)mO{0S!Zi3-u-!dvGyAj%Sg z5e&dG`I^%CJv>Wsng6i?Sx@=_DK48DasyF+`vC90a&P-se}ftVB8ua6qM@UDq2mDoJ#?Y>bApmbf~ITyC+NZ!MZ?--Lq93{HqePeBk;ck__ivZu}mug zfFkH7Cd6tdM5*LYifbwyi2wY>GQ~v@)&7;@`j-tzDe@IX1Ve4)QFo}-NDvc!6vOR^ zi~3RLEECQKq!dBV7bRR9{(a@f54z}^arm6rsVK2CmPs-<`ifIDlT*0Kb&@M=ZvidP z-P$u7(D!Jmz_;M1K5}?bn)Ff12XApUps9Dn^zU>J!mkHjzd;|v828R3F6LQnj08N! zyeIq$DqQf<+garMH$aLDV433HTlU1bAG}BLMZPL|57>Ylo_SqgQ{v1&Z9svEb4tn1N(qohWH;G9_&!bEti`cRrw1R7=s)ZSzHiADXmbL= z;{Vuy@_k93v`P4Js(8;{{wU%?!n%{6LVac-Ogj zKR&mSzj&LW!0lSW4~CL1<>CW_5(1YJOnecfzUYc=VDQI6;`$Q&;1Ymkq9x8FVk}+Y z2TKKA+RQ73xWH(H%Qy|o{+Z%Bw*g%fFBdT^zm82PWeYAm<>vy>m@8X28<4bkg{)zP zj6m7VgnzM2Nb#~n(+YrP(*9BM;vpHJMKPMGL8K`8Cc0HU8qY zK#J>8LQOFe?jPvxKT=%hEYo3q^YNb)7j_1|W{3uCKv2_$ zJ6;X2Su~k-(}n<=N}`1ZumQQ^Qe2xVX!6;XHI>FYn#5EKEu6DW41ZWAzWx@jc-lrC z_gy>m5<3hUI*evJOpZHD&sip1imOvqumd)m%6zTu*=&oxZRabAu5%lZV`7(1V&@AZ zG-8(BV5ZBqpzGWQ6ky%$iWTf$J!)sxB$n>)hB0*o8uj2(Tt+>?f;}sJofH6Zgzh0# z?TIt$&2sI{ne9jr?EQMwMM2eFV2#d5?5!~Bs|xAP@9zyGVUJ+yBb4Z?X6kR1=(k+! z`;h=jPGoHpZta|HYCrDBFb(J>_7zx@CAu)B%=Qlo;%q?Gssm{aeFwvRP&RlH0{kmt z&>bL#O#9Jm16xc(@dX3lgZn8jCHtqqLO?_*Tj0|WqT^#Q4GIQF{>uimDLCXGLbihL zSV59@E?}}};lyVw6NAkFbejYZ1INj2&;&6HZ~|jcvn_0_WGDzT$izHCvQ8v|{f`t^ z;YhD7!Pp;&NRbpnUNWkB0!pzZ5SxQ>%#Es&5-Eie$q5k$0oG|W+1>LL7xOrs(1^L) zICKCsHp4O$0m}v9hirYMLWAs$C*GW)L@8{<{uIPe)cDmTC`NeF$9NL30R<#Y1~mdK z(_|5dWF>`U2Lp3N5nxF$DGQ^=iKAsG!sHX8M2hJ&p^rHclR;;AQ5y5KHG(`jl&~xU zxMoTvX_OU3fFq31WTEFapvFmM&}4ffu)9dK@i%G|0eZtcH_S|&$VQwJLE>gSOD{Cp zGB-DmU7w*go>B-M4M7nBsFEd`s1r?)l!6~_3Xfr%+g6(ZprcUR$(1ee*cS1Q&>Wl% z9d7EL@Un;|$cgxJ8%S|o{ygnQH~@f1Y=i(SW@$QlYP5VBG9LsmXK1+8JV|rO zcyEZ_Dl#TC@F5;DIMcDfSbzEXmQ z{S;mi9Q+nL2x>MR4Zb|49PwTKl-ObmT(q!)!;owVej-;R=U0nPS3`@wS_;8|R@Ip4 zvZE~lKq9RrO*hTMt%Zr#Z3!Ha%RsRUA`Hfhp#SeS94Vq@(CQl@a10wLJ9NxSa>;{q z(vR%NYSTu*Aen_N0cK&v0u9q&SdU8vb)txTQdT-nVY~ByNeL7JA`ZJu{MBZxnsjWf zX^Z5_kE=kgY>TM$1Z;sO*sy^EIFj5M)Puv3N{Bkh&a^lPy8qPTV1*%aDDuTEyg)#U z^O6XAx_)mSUO+Je@M~7;81tkJk`KQ^iby(|h7>ne9062oZb$txnMTq|5pvW4@p~r; z3fPcB=V5@DDBKo?Hr=`}L`+ot%X)K#ta&&bNxD1-(>H~e3QuU0e~pPCdMycgnX+^5 zC&^tl{CmRq*FQlGF`$|S44+n8WKONZM`ohGPAk5c7 zSRxyo%Jwkl!(n##FPovQq7>M@h$$SBB)l1lS&6ZM$2T7}d^%b-#X(7W0F;CVHF+Gz zV_`Wc!VogjQX%-<2E3FFt}MLC3HYr(9ZokBDPvO(=fe-7i0Mo$arcAMm|`+KVLUlu ze9@9MjjNz~VSEG%Xd4jngUA-PNQNT3XUQm*&se5~7EcmR&MkWdqjYj|x}H@U0Z;r8 z`m2%#W5Y`d5x5lB6y+s=O1iJK&FSgMDbJb`_||usOgiy4<-An-$8>h>b$c>7%kOv$ zk)d=0+u9Le8Ll9Nr?hVuQmH_{(oZ{WIKLBe6_FIl>A5oHm3?~BH)5*z9&Gh>Fw^k; z1`bc^sGM=w;H&VYyjH`3pdAak*!XI8T2G+DF^KM-+moJ@Z2gcyOaHWTUn7YrTS+eHAzt}P;b}?m2Ion%;$2V*;e?fwZ-Bo8 zWRe-1FhC}8WnKT6ODWCun8r?3i6x*-DRDH)%Ab;3c({l$2-G@oYdsIDHY6DN)mz3i zB(n30idb>Ij^OvJJe)s4*q#XTX)|&SuMp|H^kkOTQD86%KbL1xBHAZf=q~ySa;}wW zXH)_4okr6uC>ocw%84$ztjYUwysqHUg+c|)mbyGb2^vT-A!*u%L2sa!@Cf^?Mm6tm zqKEr*(vXjJxi*e05%(X`hk;clyD3BSedc;cwK^*BX|BH!Qf#Zl$#%Zmo>&Bku2wn- z(ahbkl80~|jLb%)=u^GZcl;INsV;I9a8KdnhJu%l?2iCSy*GF8-wjA;Dx(C7cfL^S z<*ddoL}Ao!b&9jB$UgKOJ+?qG$=8^DGTxqaC=xeg3Gx(0nx$tds9rs^%!t14{5@km z02Zo{(ox238TJM%_Au}rB9k)Rc>YE(?;yf?N~d&(lNcKL(AlPH=B8XLoNIsJTCDL& z_FHBYg;%k@#^k}34}sem%oi=}kG3-3T~m8D)N7hSlK;V%Ua3^&GNW4hR*Be}%zz|E zrVGVIH=7z4@yBUse|EVdi`lY+%_ODa8@5TDQf*mj3U^&ENU%hF-Tpy!=P;Q()+>%j zKP7VQy)jp0WXnKgKE_$}q zVwz%_;bm*L?3SY0h4jq5IIvy@%8}LfJ@rWyK}8z|In00g_tA#>u6Cl>-dBjg*Ez2Zd4X%Dv&` zRHkL|m(7@yq0Ir&Cns*TpI(LdcSXz5uz(~)3NJx@gnc#JKVMd&yJv05nItX9j^gUM zWERMlj%c^Ih!f`MU1TXr>VmfRx}_E_70#{)#~?(gemLc$J-)s zHljS&hXh(Q-A5ErPf5GIsOdS$JYQck@BeqW2u;`Nk@%2qB*Xkhp_7_5)?6!LCeb`E z3)QKU!cGL)!oM|8tESPO5q__`_4b_8V5I(H(oRJdz#Ii!Lp@~v_2rw$W(0@iD%I1H zl|W^d&pz(lqlx+H>MZIdc&@VSM3)yB*B)mhL+VDD$`rv2!6k2HACD$-c|*gd`83~V zy^WXWYmK4E`)JcD%LP$mS#-=Zb*)H(Ea>?29I!1cz#ig+Be(Gol~)2u8X;BWHXxD9DydIk8~#!tKcL z6V)QPq(;z;&erft))_`bCLP4ZIq^NWv(S8h^!a%km9qw%Owc=^`t2Oz{?^_2cg@aI^|8iBVqA1&PX~GoM&0Dj0l>&a%(svmxVAlpaZ#uK;PX;a^vf zy5Lk|pR4BfOdDXC^37l88{2%aBQZcfxzk2!d$+lr4_-q{eD_K z<}sY=GryT}i^BJEx50%}ir3|Zb1OGwMlNU6ys73$BGd!1kK-jnbQ;~B+h;RQy%6-O zV5Edz&taSj7=L3-C-lNb``ezN6ZTmPlzzBEmc#DY!;iXu?YX}~7= znHxxId>+&)_Wb#?$+W}=cOSgI)Vt;Rl6aqqpB^-vboxu{i_!R&sSj0(kUT&2|=X=X1i9~ojUfpio=;^7;$c%({u#6(cQKq1m&#cInD$X ztY)PHY(P>M1<|Yl5NLY?U#t*?qZAW9=qRsxwNHvX<7$#2g5A`IbPHz#;t;`;|Nj`f z%djTrAM${MV-GlX9^dozeSa*WSYc9nCJ@`bT2M$LX9z|*0K%&$ZV0OY zCYQK@DJ~z3fnA+(GC?XCz@*3$>fGtY@mCjX0H;JRAf}VWw(cq=f|XiX^8uWa4n_oU zO2R$$kP!*XvkjX$&|Nes-#rZ7mZyNUv_emPB@G0-3qd7kDeT?6mT>a=NW;1?^oEr* zfgvG<)s;VUi$Hbc!NM4k2i9mtZJDiw2BB?fgDEj;Q=hXa8J(=l7qK#CPis%iNf}`( z4F)~U+-kZE8<&FXFQ8-$!;5I`WUUi0z&@2)TjjmV#$Q*Y2j(Rn6^ntz2`cHLW&UHM zrh^4kTAK(H{~Ik+xgSNJlg>ijuyXE)HK6Bva%e;|n(6ZsUN6!Zu&1)TuaW%k8c?&l z2y`Z{zR8dnkD8MV1g5y2%3FSy4<}YoLwcEr$Qj9Fv|tL+MhdTNT0)7@^jm1a8bOr{ z8SNAjqU7yHUTZchyjhn6nmV^cnyi>0_8{~df@Ny;V*=d?Zlq)KV$OnQ3Zj!?q5(Fjw(A540>nsXSMyqEZRCd{#9AG-mv1 zwiTO#o7N_k>i(SKIy6WUrBKbNE9|DqZI#N6Axc?
      HTuX2?Tf~R&{>{ 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%0Av_sx z6zQP51T(bC0{2F592&&`_0(AyP_XL_-|jx{s8b~@fvd?4T3QnP2G%9}SLusaWG zXMa@hwx)PpaHdPvV?s1hTmiOleDZYI!giXsQ>`(gz;4b#dF#c6gi!PD=e+ukx$-=s z!8domLLBzGjDS{0T|B8#G{8>&v^r|`j(br5vYS&5;EryS3p*pOENdmn4F(HREc<=F zYNaU*J&W>jj-Ncf+lEU-%_;yC<9%;w#c!JI7UUtk%XvDsmwS?i4t07 zG>s@4HXVEC*jp#r^B{YRY))m*VBf*A0O`&LCrU(i6X^D~U@C z6)G-ikq2BIaf8zee+nI>SeUb&2A4WZs*U)Uw4MWs@6z?C;Ho8eUgs~nm_KDH63cEC z6XRH5b|Rwr%imyUg1f8q^MATIn@yb0emK0$J-9}HW)CjF{f_*nn`5f^(l<>0D}BbW zw}+kvx4T#-C1%NUhiD5zT*5dv{`PENp(4p@4B{|AP$c^C zD8W?=|IAK`?z;Ez+>mTiR6v)qRWn>26TI||W~r*5VV$750Pz)v8`Z06H+JU?-fgwr zb(od8;P@5rJJQ%{=o>Zfc0YbFFsuejWqnY{Gqp|Ig`)(mrS_B1!r z^D@#CxG4Q!-JJh+bpW%Ibgzr{o+jKLQQuF~4|zY~_PE;b#h9J^>*`S7@G`acl$br; zb=&7jwD*gCAJ+{ZBDb##(9PNKP~LDpt?O&j?Bm|=`ge}x^YsTnaizN(2Q_GPBk1q! zgaa4UWB+z`!&jZan4QqDm8P4A;LXEm&7eWGF#eXXh2~Hhz3}eRFy$XXBId$k zG2xSH;g@+LKKq7i%7oeJglUSs)e?&^{NaBqCS0LRlrJV?sx-pLA@bcu#MQEJ#j`9* zS0ia=k!CVcr1VH-^N0r!&|J_j zEKM)5e}K`=nRAG<(Ms%Pj@N*IrhX*$I3&*R&rX5{5?43lzy1*F9(eaB;~h+&%yc4p zM~vJcmZ*OA9ZEfZ&4J7z`+hiv%r+Re{6pxs!}~6t_l((zf84>=_Y@fx#f)RgH1e^- zaYqg(o!UxDlt~hwi)E1&0&t|{T--?%qni^T_CcmR_7mO{Xw@j4h*OA7R^R$?Wh?f$ zf6@&0A6Lg6#}r))3@0Voa4-cKn__Y}RZsuJu@|TZj;Us{DF$;XmaQo^q*UwJ6czns z8~rrh@>HwXw2ND*wu5Oi%gK_;C|B8ZZGWJolP=hr=6N{n5j_+4q&(flBHdRugCjGY z9VP3f2Zg9r*dks0JD?Q z*sSt$hO47`E2|cmoycZ4=w~xr9TwTSvRQXxGY$dUlGg0|`dKadIlcdJby#GzoyfT< z%W@LQpN7i)HkdOTn>$yYyO5bXW|6Bsm_BTSl0xO_spl-l{_W=EE}`-|GXF%mqu^9U zp|E&fmo{3S_oMJUMcUxwWgw9g_wjO8q4Lm2xJL5G845roZM0ZCwU~6pLBUjK&47YS zSszV!iyz1ptG9hL68|{q$eUaX0u~u!%OGuFH-RrywaIgbT%-UKNMQuPaq(YlgZia`aJ7JRNqmnd=eYeXb zoKRXCeE(Tw$eCc$NDNoU-$h0|eI6LxSH6#{JoxGH@l@B!~(T224uU(3QX< zW2*uKq1NnW!DX-5Ep1YnDC+kiVXF9iTfkdEYDto41a=vjBuGMb^EtWCqE9ivG$Yug_J=i-K3|=Xbz4dH zCo>{qRf{RXgee#gtPLuo*{gto22^6-TR}i288%3gQ9@X_DUk4>!HnXXGcEI_Nf2Ac z90SoM-#HM+m}77b0jdkkltioF{v6|=6XvECOxXlcLFqWy)+#&?(*w2`_>z}$a8r{k zMLq;Fh^meQHPRr!tmQ@4ryv{%h@1HQYp-A$hO2@q7-bVYmO9uuh=wRqL8_!r^4YLp z>t?yEju|J6GM$P%qOHc&7HgO-OV<3LaF;81I5BB>?U8Om$Ll!=E^3}80a(C7cEE3)M}q$KJ#a2Q1r zvI~z*p*5){RLuY@7c626-yxHYthQu+X<2aAsMHqMEk=aVp5~jKWPWq96-U6R5G$~4 z&A|R5%Bq3478#$=8At*AFVH}V8o*njOzP6P-ox}16N!V#u%LPI&_odAeFx%E0tzY* zv7z+c1;!U9L%>qw{~ccthG9ymBGSlU)yVM3$OxSk;z#4D|Nwh?V~7fM(j;|hRlTaN*xJ`oR{ zz>fV1U{bH_D7a2xp@QCN66KNobGYO$dW-to-B1DgwjXEaG%9hVcc z7zOQ6J2D4?IN&fh2{n6FNdNe8XDt>LU~oa8J-kQL_&d0uOi2FSThIx!X953O^>msw z6c}7+j({qHDC({smzMiO_~BXBW5WrEM%>ul#Oa`CG$@gc0P1FQ!T=kxl*BPjayb`o zy&`1{iba^=frJa(7TePjH@?5N_@0+I76Qdg5ND^gW^*(!y%#zAjTZDf5uDgDe-mc4 zy@H1oNF#E+wiaxHG6Q@XGBcUx2!QLJTHIm<1{aW(U5a!qQjYv{c#-*yxvDK_$xD35c^RxqSXk{G(TYP<5aE(|PR7*2`haZWvf$nfI~^I|^5eoht1=!E zXkEftizu!}i&-;s@Y0lPmky4N@Z##Ra(puX{MSNaH;2KPFl|;62Qs4$8kziTeOeHShZQBR4OXct;vsT)PR=(6 zzMR_Fc0nmFS4V15^aKiR$@K!X@%wpWQp8@!^R?&i)}*YNgs?q;7smWF=I4?8?;uzZ zjoAeQu~USI;gAr4;)0XRZ1|->#R-`94D0d&D|qLe_OFU}V{>>g;Aer!Z3?!HN>!p2 zNt@d_n8ka8nY7IcHb^5DZbHvS1zIzkE3WkhuRzF{lthH0HM0s9-pf{8un1$Lf*Os{ zS5IT1B&bkrZ?xc_6*g=U48w=4zZU+$&pSe^hdQp}%Py=eF9o?8!t9{QKGh#G$tIy& zDI>pL*9Zz0yPeBruWlHAiZ$e%iQda;CYJOH@+3-1+&3kem4*}hrVuxN;hmTr6jQosr@N*s< zKaD|Y#mW83U#CE|e&FZ6XH{<>I>yO$E)GVQmhQ+SGh)Ibj^D0>}sk#|Un#$)C$eP4I$XReqURc$XP^30Rlv3Aqu3Y(YM zLsYqiGck5d2WO>q8h%tC^bF;~2jxAt*MDunWQROc?_OFtp>tmY#G^zBt?BU3N6eXIp>@CYRUVlR3zz1%@w>%u1rwO8kb2-gpOf)ex zf1xGiz+t=bY=VvG6drDqZaFV3=q>u`8i;B3f#+#U2NAenHSAZoKx(?ShJxS}yC<)0 z?RO|{byJD|!iX&WY_{nIECh*rp_SyxTkFSBE5^CF07xxKd?m)lKVGF?pDSiNhYIjO<{KHHEK&Eabpk+btz=e?)G5&ri` zF5A-a7LCTk)&re{=4E~p0n5f7rf|46=$LhB#I8wbd081R|^_2}`g;5%JQh@bl z;3T^o@<4qc&&2eF9MvYrCq#i}9x0TP)<)e|%evN8T7xU0zR&g0s<+`wrEAB$*ew}i z3(OG{cY$-$nP@pu|KlFcjl!abd==IFH{uA5}W)}1me-cGA-XzdqSS~F$^dpl^O{KS7T;t}WfX;;D3xQ?kv_VR( z3G^a69nK5^G)SdNi0k&sT&X0kMEmZJt(3H18C2K9m0XC&x{Bg1w978_Zr#r|RB%k% zj-Yhqhq7y4?8qcfWqASC4-E|~ZUj)#Rz#L2NLAtqyVnT_WR3W^N;+OSVD#nD@X!4< z%q)ULmjV^ka!9S@XYIGMS*lPStiSa*1T7R@$Cu($b2hZm+tqn=e+qF-CnUg9)nm2i ztny`@(9X$0%s@1RtJWs89i9B_!hrk%L8b5yeACb)IA4AyHnhghBk^f_f4)oi57ov( zu*Yew)347;l^$ypdxnRaFiA#3$ebPvz%+8oEvl{k=$Wc!kz<-}5xKDBQ$_Xdvvl@v zUdJ_*S}B{?ahf=|%RHyN4i03ge^Y|?>fVuZsw&g3Da1muDe5`!#Ca`);iZu6G0%5A zu_TxNh=ik9HxiGByA}0M=J``)E$F5M`EV=a4vQe>_O!)aVg1W_-bGnsEott>Sh%q7?VP8NpBjwBe#^38 zK4eSjU>u>phzkGDo*(K)>ktgm&R0tm&^ap#GUVB~}*) zJgl{0-Kh8AmZOc&$}Fx=+WvtFsquTPMnij#1GAIY7VM8&$u_L_(VVp>UuXCmE-6QF z2``U$P#*Rzr%F{p)gE}bOTlbj-L2AwFFE_5Fme_b61@wbzX{rg3Vr5ewn_JT^Mh9n ziawx1piH@c{pbd}vQY>GN`!6?a&M~Jr%O%aeK^^@W-iQTw=6JbCl5qIC-@Hgo1)ZB zoG z)ZZf#t>n|7`)G&s7g1FU4LZ6~R~Xs}%Ad#QK5X**#08%DqW|_>lU`?;SQEB&4j22t zt?lK^%g{UzxW?RLgv;^Oc&lrgNZ~Y?*OOO)fJ)-QSv6`<>Z=I&GEwmREc$#V&|hy= zMW0rapO7w0yB_r5jA;gvExInlD5uUe`u+{p*0ZR!9Sg&#bL_T}Sxf2(PfgGTPlU`U z?w76OOhn{Jp+isJhN`^HJHguzr5s6`l=0->(H|VbP!E!*X$Itj4#RhfQKy0?Pr5Dl zPCb!I$hS5+>31b|v9k!ZMT99mlKrBl1*zJ-7|BUozUw&WPB)@2{@|5{jy2kzesjUv z+BfY1vZIsZl;e31GZpy`Ny-r=C3uF?)A&)3`=xIsGz(bG45seg0n1!A`=G#l5P4f` zv(+X6F+aC`cRM^5Wtlj`*}#VE?F}_K^CRM&$TosNVLuhW_bUC0(VUty0hLL9n|y9kKQnX*exjk3NUq^E2pln#-cq8-}X`n4P#RxzOoOG=%ZSClS|Q!0cp7L~&ik#B~L5 zbjs#e zEWUZO^Bs7u`uz=km;MICLICp-AQA+qJORe&=G5+Lz!A;_WFUb#e&5wmNnmLwunrS2 z3k0^EeOJeRH-}SRiR+ru0l?K^sdUI$i91k_k1> zjc{wfn-i$27q6E_($yZk`n@eoAZyWBmS~Q_T{IQ z!0hC*70}Ij^!dN>{dFL<;RZ(k|MC5@F<^}lTC13DjsCyzy|D3OXmi24Jnw%~8^9xk z;^9B2lz;F&*K}qihw;SU)CS^pf#L1HsSV6)FSOXDzo`vda$5(EzQ)@EcDc;Tev%b;zJnBZx8{LHQX%U?5Ow06`+w~vaqeK?e zApu9^Wn`FU)@nD+tFGf~j{}FT+BX&O1JMT-GfK1LepP=8X}%H`ObLFXpEpQS2aC-f zJ}DfozaJ=n`M^XFVNaDW@S?45{i#}5#?*r>cD+ZQ!qn2KaOdgfu`tz0e4DtTEhDwz zEjAPVC=$T;W~mHoMDdT~vEn?wkAsClD>Di9GZ_HBUmGwr8E@B{5_0|58X4aI} zr$_lfYU7T@k0f!Ktyw<~HOGBx#EFJ*) zMFyDhB@>4P3MXR$d~a`iHn4o9T z%b&Jvf7e%{HLlEqx!G8LeV(>`;9he;sENqRE!Fm`WybaepKW6MYe{M%Bj+DqH@>(w_$W&L&w!U+&V`{@y!yqgxKG#n`%L=iizOo}h1n%Wclb;` zjr;oSu1{Fmx|gy(XS>&nhs!5QPewOAbr=l|J6|yEBc8Z9`$%@r9-?k{>drWM2q*i4 z^2S_tA|z{%Yg)yFwf$%1`p@m9TEyv{<%UDgcYZaCbv)P! zq&C)u?Eq^8ZAC$DBK;;?#DN^2BYRs5B};qTi@|T~7iY#UIc(*A%A@b?tk=}+_{81Y zjjksiqOm#cX^IhUYx}2-t(;XKGq&9r(cn%UDT<~l`&|fm}eaIV0`TN+1^~BbEtlO2q zB(6RwmBXj<1@GW#oN0hH;#r=*V&#Og#dyO>$6tYF@<+I}ML&C-3-OxM_`vsFROR4h zN)S`aQ9c8;CWX{|{|iW=BWRrfSS1axMjSg@Nb|oe`#Xdb2;h5$HR5+@bbIn~DFELC zsf~p2=%bu^pbMDa0@wLcPVg`T)`;H`l)w}T)2nTl{dFRIDksGXeKk}I3L`l zubGT;L@|RVaOeRIQm9pi!=!c(^BBLG_UaZ>)C|W;IUzo_oChD}Cu=RX_MNl8ol9iRHrcmEtWk_p zo*I|5g1mcgKmv;9joCE@82COqCHsMpQ(tE9QfB* z^+7e~Z)zjC&jWkF%@oRHb-|#G4?y`kaf*lDwh}Oi)f6pB~??_ePs| zRnA?n6*@)mQEGpH4X|%u`5EtVGk*9$$;M|6*I(X2a-}RHv?cF|A|qnPT~%$J+T}i5x3j+ThTvrd?d!#o5R2 zthn!pt{3+Jsg0%b;l5P;;x?COPTSjK*Plow3S0Zfu5pB49h&);+IjHwcZP*;F}em*ddTrvB?4 zVt4j#%}le#JtL6r_IH)8twD`}KTp;xvc2nw-C3h+wRvZM);+`MiEAvfs8#=t>H<<5 z?>2++UVriZUu#53*Y3VGf`RXwZn*wx8sD6~QS-awjGbQNz1`&-Z&urG(6@#d_`YUu z{q*ii6P@0g<`i7-1kxq8NWIyKBBDwesSW1YH%!Pkjdsp6SU0#Y5%V{-(NDyhxy?4Y zw*Gd-alhg2cN2|vKT+yFukRP~hHbdd*||&Ddq_unpl99Bl{$0UpJ?v$_?_l) zN!RnT+8cRMPZpeenzFn4tn&qXPaOc?M|-Msdt5y0aiiZ^Ta96jkTUa9-tche@HA-l zGKu!KD0P3(?{Q63RMXzOt@bg)d;TxqCQkR2EN~n@;RsGeM1MWKkI`K z^$qOzouQ}swwPi-ARiZ`U%)KG8qt5n_gtxu=vkHsGrw2qe#zXv@f+@+Oq?&e`_54P zb2t1c+yMpB0XfqCDfR(Rxe*^r11h-#!ZwcO_XX681{V7Ue4h0xmkw;@4oK`5B$ozK zkpYeNf!$`FE!;tE(f+FS{{6l|oLWJ&Xz#xMpidhC@*IIv$e=Oqw+qrcp-c<_b zC<|cSBpv=iWOoSJn-v6Nz=v7_0LFUUAyhOb6mUc^QX8A0c%HDcGGXWR!Y(+30r)TF%wQ;5;(&~qxj#yNlZlpa=w7X2SUPcsn zGlD}Ib@WG6zBD*16DkuEt{3w+wGsPY`2L-F^v-M~2S-#ObHH1%fAKv}T!Bnn z@YUE9F+rD@*cnRf$A7I6RpxPje4`Ob(d8Mj^=0wxfHk5ezJWPdx1T>56y8!6*Yy|Q zXT(fcCwQv~l+iN)_MgB=ZScg8IV60(D$v86n5&!kW8WI_t}L-dCZX9a9*`=oZN39i z8=-#hS~C2#2j1m~zJrtl)`$dHX53=T5kM;;OeG(5d_S;B&d7LIapwK9-g|Dq8Zj4l zI5w7Pkl$CDO!1sVP;u9!INdLoy*4PQ$2ifuuvWMS)dmk--I9Yix>73(-%Z|x0 zF&|XQlVw{S%E8Ik4yT;aPgc`Uxw93mej-IbGfBjsPpmw}ME1j7+0;9+Dfe5G6&(4r z98>kxQyy)l9<@ldJdvD6OU`8veL0wFU7jX%BF&-ogHbuJF%aCCO9fIJ;JGx<6Ccd! zTghpZ^lSV0el;VVw3YN)mfzknLwO(H&j9#-Fv)G}aF0x;(muZD@z1=t6`8t~{)xss z0bI3PXKmm>!L^{=6RFu-S(w4BGqD*>V30EjE<=K-0rU)qE?5Su0UTS4CDa=AKlnZ~ zvvw;Q0NPOw7$aQnSZmBgZ4Lw9m*=La^ZaGnY*;vObnF0vY@r|y6sR&ll(k@-wV*|P z%1CQkDTz`_MH%f|2C(RVnYML4H^8*1@CXNHZBjl@8DD6keOMkoMais^Du78L~GdmBQ2gdR+r44c3gKNvzhUM?~v79Wd)1maeh8sv%^c>iPqu00Bs2sd+lnSkHe}Re9L${vPehjsP~gu` zltw${-~h5sg8>=>z#8$@384v)ZLN=es4P$RJcet4j)!O9LCM65TqkH)9Atw6PBi)0 z=9Ck={jL;;d@qhP#Z>@@=Zbi!v3d1gTcISD5@wDNBctd}wTxSJ3KXalsFEt%vKUO8 z6NiCNFc@*bBLU$Xt`nk^Fr))O(E$&(BO$%Fxy~E>SB^mog%~cE#C~K*2k_v;-VkbLQN99(V9s> z>$4EC;P?Q-hVt1m8wSy0IfaAWBvcCE0K$y`nD(Q8nf5_|X%q7QGVN*J#*1_Y)UHp; zLT-^^@+=S!bVH{DM!7aWax;&U+2LymYv3n1&`mtVh!-J6<@&1?_|#T+yDeLl z_>Wcq7Sf!~0>Tm7C#;!;NG0}+4FL1cfRC%@h>q-Rh+)i45KIx@iEu_u5n;;Mm{KAW zz_ho9%Zn)Bz~!#+0k{eUElhz{5Ng`|;mXuTkYn3iCMFaI16C166o5T5zm@Bp-hpP& z>VYBy&5%)K;JXNGA7nTMHtBNz^ccjiV^atyh23ui{%+-y-E(-5OC?y8So{SAGo^ww zf$al-j}B{(unGE(OOI|skA78;;Yg2e5PIFY==MThAQf(SvPcr&ZBYg2Jy8tMz1(AJ zm}X_vrwmYTY@b08K)E5wT4)CnQqqKp?q8%!gx*W&_pjfj>`D3qZn9NBRE)ciUzTPfkJjv;Ca)L4?4nR#11S;z8E?kTX5~}W%TBaD}lqynt9k2-9 zzvz1z!!bIkzc{+Y+5-Ua3J~PvXz%7pED&^n+{2s&!=@Grc8nzI@az{8K; z>$_VG7pNUJqJB4_pBg9Zjp6_lZZhSN+Y1ZXN8vb5UJ6&pks)9N05I`j>h!II*}xz) zfWq4ssif-O@FQ^FlYPqA*|;O!yp+iBdh$QwHksvmNzL<;9%;nbVz}e&@ z!vUj1nnd6&U|z*&pM;xmQ!zu5gi2oAoN?lUeh~U$;$-GBbj_-d7u2V>3ny4(rkoZP zccCLzJq-afajvK^ew3aOELCCzWc?{G5N<@B8LjSb!wiJtVUj<8Dke-pz)Nyk+_!R< ztyn>d%allL&xpeE9V#@1oK zSa$d~Ub$@#okXfyLwVR{OoCv#w4K|zJ9kg6R1lU>Zy=x0*d>3w`lZ&tsf}yWPz`ni zcAI41Pt*xj4_tV%?^of8D%Ho9gyI0&K`d)sf{ zZ;+Kdz8=%>PKps#KOX+5brpT^n9(!ts%TSnE<+A62zl@TtXeeZa^S4`>Sr#A(W9s> z{D+0co1B-EqeF{+jHHU(?o~f#em7in^mpY+1Jvw*sL({aTKCP_hs`O-8^zHgO^6rv z=Z84r9vnipGT&6~i9K=dx{bCci`dK9apEbV>VC&4r zR4~E(Dwz&1XaY2wdK&&sR$eWE$s05wPe1Id+{msV+N=cfSypSPn24^$OnIt3W;$&2 zsF~9AR~X=S0}uxE<3(G-7v>PhV6d}EMlipmOLQi+`!Iv#Ateou-=cLn7&}l>z#US* zY76J9)+LS5a+9Z?@U#ajb*wAWb<(xDF#3r$CBIC#f`V1d17D+S$!tDcDMMuKlcwp` zo`SH~HcUKre&>>pl0ZqpoD$Qo1Xbx`!oiUbrhnc}ny{x`VINmgM&2E&7kDtvZfto2F!sgN|lN z0T|g3Q5*+b0M|48mU;SzNJopztYZ4sTn6V4i0_^1OSYlaWr(%Ds-K05K81Xl*Z8P~Z%FUNaxg(S+}*1Ul49S4JFJm7$uv_o%pvH;JA_^(vZ z1IX`pZ;!OC`Q=V~^URfu?I~D7Ti%LVwg|a`n5@k9hwph z_BeLz(bPs9gHL-sIwm*<{p4#YC>E6bNRZ9%kYWFQq&nb)ZIK4|cqSis_?0Aby{u6q zatdv$HFiAbmAdYQ{DV&}Jv@BH8l&`CC+hmO$7;{&)Nz-_yzd-fOg&lET&}WsAc$yOcp?M8>nZaViB{>ahYgwmPZI*U zgt^^E2|AtvpKrd)Z&evnuFn(nos8K&HtSuRU#`!zqziwXuH{N9AzcFl%vn|C7&NYLxhWtU%{8&8w!Oa%iXfp@s6C}o84A>u5O|deQy=PMiEh~ zybF6VbL*WSwgFjc8sG!Foqq777f4w@^k_1{RwKxiD@|GlXIYngOV~_|I>5$AZ7|@n zddqDyg-`rq{qDM(eZ&QF#QSM(W%dTgKG$1lv_VAHsT;%_hJokda3n}>D^ba><(Qe9X%8Vez544FAeqlg*}}Ujk(W1+TIBTCNq}DXO!ktH?^#{U4pCaW##%AE$j)?yg=bDcHKR6dHP~1@TUpP1Se{k;E*9F7pv(kGQ*VqTj z=ML)ls=sGkV@s%Hu!}u2YAen$$U0F|eomt#*C@?Q@VE1R1b`>lmDP!Hjg44Y`yiXe zxW)z|0N2V2fNN|3=eCy>e(y3u2pzdzZhg=H-Oa3f9gJ)2?7K&W4awdUrrd`sHxs^Waf$u{E}TVm{L)0kVz)z<*dz0hprWFjak_&}%QJI#xG zFVfha)7C!f7X7j4gm2z~*+d`F$dqsH$BJio)I1JW^YlO43_-C zl>|fpuHx)pf-{n@v*nvjg`Fz?J{fxJ=qfcx>q(4Y@YOp%QeLZAh#mJnZo4@h!xTZA zinhdv4u_lF(St-<^_mL=TYoNl#C(77hpEf)nG6wcL&^S`b1ya{EapOsj?qbTnIC_zC1mA6%r(J< zy>nSlD`>IeK`fQj`Ml=Tnd>J$ozM$7@cFoSjzyO5x9nW_CAr1o1U;vd`KQg=7E7ZW zwcAR>6nKB;PZgu}_-4of6S?!b50ms6;2Qf_lx0D)Iu|yt3GtQpcMHBrVx|4K_%FyOiIw%`wsY$X zD_w;3r;<%FpAcueltgk?zaAUPe(`0AHO#8?^I1j&;ELr+hgMiqZMPbLbNe4Xw^D5~ z60m#K|EOfq_N#$n!kUfF&5pGp`|qqPy@p+MtKmM|yE*GL&%SGa23*IA*G9agewNnX zYD=&;e~s8{o{Tod$n;3x&>ZZ8d!E{wj*WUITO$_mw)DI2Me(iqnp(N6Oa{PRR==m6rhn}<9^1P)_;PG_X9r=V2wmsZ*lh2sfk1Lx7tl1F zQG_B?mh|LL;XBClP{rNGB{yz9Js4P8DV2pp1aK}>SyU~i)6pkl9!8+J*r{}p0 zGW@QZioYra#OEn^T>)8tcx&0jhHA`Ae_cw_S0lWs+{(VhDYm=OW^X0L>IKZAK1D8$v4j$Lg0_15auhXdpG zP3J5^-ZE|K3-m=_xp*oB_>dyR-zBYf{@_=V;-x9vcVx5sHFm#X&qu6{(T(a%9DWsT z$;aOB^~ zxgzR71Yk93?Uote7roD>va9UetQl%o)W3$l1uR!7lkz{z|6XHTiK+KBQ$<7TqXmKh zoZI>>5%Mb4VoH?#V(iU#j0ix4nA~JWZA8Jj{RjXX>el&QE^n#Vq9@Z@dvYDmzq|eC zp`?gfcarO$Y%^60-CeayF9|oZaM!a8zaRcqRQ)?{UC2wKL%pwh>%a%w>qM=VtvjW_ zNvdyznF$=NQgW7-Phvy>c>5XvoU53S{X|5LrSidzyg1gJN8$kkUt=$PNII~n+qB-^ zof`QuEhy*lByEsNx25J6jYwENZZoL)dZ8qAF&mQk;!l&mXy-=WJI#I`P2H zeh{!OeQz_4>OE9C`TCy2SU~39;pl4E5s9DP+|}b%DXcd*Vxye*bi*=)ueuG zT1729pqIlk)rt$EIu@SDZ4XcZoSVkD#@-(6?<_7ZNw6~J-5w%q#wFHV|EVh!2jJY2 z^1cq>8hd-BWzDwCZNws-_2KBWf>h;t$C4|6bGIX zd*8S?UVo&wEC1Qg+_>EZ5Z$pp%rz$^%%xZVO2zQ^(Z!Na<#V&jr6bR;uUBtZ{j_DP z$oTwhy%ccn``q0gz!=z zi>Z*>p7lhBuN6nWr#9J58>{-?m8)LJ>vHLSsJPU1*WyohU)6GutJ6zzqIRY!+6i?(S8q`&^Ox6&Pr-t z%w}GEW}Y@L+|#tYpV)hwF>tQ884w4UeKS$({X*L3sWgl3hH&N;A0Ptoc-H&5=o=g0 z{5sv+ZdMqC_w`Np2JW+`4*B}geSIHn2tV5J4KMW#RC9T&=I3nYV;1TY8|@ou@AoOn z?_Ii&SLrbyU4LJ0|D<%MZKhU(gPoh1`w13sLkH({eiLTfzOpRcQ3{Vuj&S`*#`sH*juH+JN^GF0sxIc{pxpa0)VX+x<}1N*o4F( z69QagA9M)ejtNI-?n9dcMN^e@gm-V$;&#`~-9(eD0GtMt&nIQKlg zCG@PhcM*le@s%W(;VUf@&cL}pf@OKap}v9YG2X`BayA%kIe-S#^J)U z{o-0%qRaJy(qv+A`)rYMnP;5<_=HvVE6qn^;@iYX#`IZmr5oqlL>ej8y+~nW^lw!U#Pa$ z`vbBtw!?4&mHZD!G$FS{Ca#qxQk&zJezEwGQ0)3JIf{#(!w2bDqzfLRvi#1E90)rR zT}nY4Q&BlYC;$-qc;MQ2m>M~urzIJnhca3z6;zOJY>Le?c~cigz#=k8DY}D*$66^e zTCi(};oU!y529c=f4C|hZc9Z~P~s&r1H1J2|2c{^iI+Z{?iPy#xS^Oe6TrA?xsz?_ z=80EjA28EM!$K0pp2yF_S(;DhPDIh$}aUf)^r@yzrepHhKDT838 zw2XU1vO94SnVd16v z!2rSw)hOH5$FO4Iw&Y-U5`_IQTu2LMgfFtvEAr#b1&Gdf95Q{rcuET*sg*76gn|Os zlp2^$Je;J@xQKn_R%9lZrD2hk5%4cJ953r}M1jRIQOgDC2Cxk(06ud3=oO{s2T=8K zkU?|GW@(uup-O3+MGg;B)(S4gXGzsoud1VXNswOw!A5wPD2^gZO#=vpRa^P}ALV`q zXhj?hHwXugVg0l)YX)W2aVTLqhz+hv>lX`pIJtL#fee?*Gxi+d9?lY2idbXep%(pyU9m-HCxD`3I|)SDzTpV*o*1jnOuXs$q^I2zE6vc+e37 z07rlZijbLhH-V}E@;x~cX<3LP1Fr!gvRrswK4(b=s*26Dp63EQ<4619AIa0Oc zKc#4GYfPL(jwC2;!wextgqUT2o+BXu_IJa-VJard4-J9fVKUZ`B7EytS*!yn(`fm# z#y?{5_H%V@>rPNFe+KFIy_PHG9D;xs$ra+o>s_a>BLX^h#)DJkleua|L+66Yt!eqZ-tH z5TaAz64%4G4RhxJq6Y%fi~o4UrL|iL6!0~{uYY0@8ARa4fqi*%ze$9Yl8buF(83_d zN+57W->5DD!{@Yfl519V3kHXq0HXKZG8iCwGZQ6}G>o?_1UQ?%5c6$n4yH!Hs2ic+ z`-yg`FD*9`x?MWHd@KiRvx073CzY6d@mjzrTBDRIz-pGk$&Q#T`A$hvd6YaPF5z<* zw)}%Zu=-$Gm=nasBwd#ZFCl)rvkg_jb*UR+8CR{=oK`{I-Y)$s>L|rpvLdeM!~iN~ z8~i5&x^No;f-PeFx@73~Yy$~#E48L68>|$FbiigVMMxa6< zaSXU!j}9oN|4B8y>rVb02?Mvl!@Z&fBA`Gd>xLyC)a$yU^tyj?cn%4B9R^)5>R}z2 zF*_y6>wT|zXW_=5F>%YPIXu+-^qW`rOpY#{r^g&hxx}rMTvY`uXc%qV)OX9SxqpBh zO{gQeHzR+SL>1XAhKD|U-vfuPtJRGWxTwd>9dZApvH8srBLi~{g{!-B6r2IO4W++)7;XnZ2yF5io0p`I| z14{e={~}ZsjGY;RlukL9t^BEvI##b(p{;?MGoRg=UF_zDObztyA@iR^DF zqE3RyV=87;nAWFCo^F7dM#%-oK_`=+LqPdQY2Xv@5uTYrY77bG85O7i3EMKJu=T1; zDc(ZqRIzVCt|_#%seoCF*T~X=|5|W`**l;iO9}<+si0JNZQ&s06s#BzZ6N-rG8|(Wh52I33RJ+h zg1bUdaGp}gK}(hZzDM=(!FOGXG5IKU40QfppM4}mp@F1SvMaSXO9rz}+)UT9C&=QV z*a48a&3x0(VIiqL;h9xV++xY}$+xk7oFHKf;6u(@4lF$(o&t@Pwx_a`;NI2#o|3^V z6&N);>EQLZ1~X9j<3G1l5nRUgobTxu?2D^FNSV@+tJ>!y05xjiz-QvGjjf!ey{h8} zmvfxR8~HL1#JP9hw0zBeBNxl?oq_c#bXFnZf_((`s=%UB3i51YVf5Q_KOMSs;ZSFA z1+cN>1o)2><;e9*R=*f(}i;Z;akt_0e;spk;d%U(lecy#2Hz%H!U6lxbJ-$He1V@C{S^vjN2? z;V9a%-(T;mhFUm>akWK!D>LiAoSa8-M$jypy+@_su_x@H>UrEJ3?qF$spdfGAT)8f zGn!p+KQVe@^&O3`v5cq}m~{W!;)HCc?Ind+x|#1KKRsGq_0}BJe?O;oYl%IIQc$w6 z^im-A9PG5mf@7{``_QikKjzghWi|-}pQ+`(COu0c368EGz_n6!CtHPbc%!nVX*o}P zZY~s6KzKjPH(G<4emYWLR_JKnmIdEUE4%>dXmDb4-nl~qmcmRCv1Ut*q>P#-6 zGQ-PX(~~A!g`tQlK92-~GHKs0lqSzr2z*u)&};`Xy|q>!e3n5j&FZxdy$(gI@k*6ye^piNbZ?hhvqSr)E6T`P zL)eR+;h-F}G%vqr`vddkeK{6UPjur#Ibm#h9}#bbt#{*c6%3UkE1bMiZ2+n-*0Ir+Rs zuE9}E!LqJYAW#Kt*vIMFo=QKILJoKNfNuKY7&xN&lv4E7rA9jUz4|afSWg|ea#?%0 z7)|In-akoul-*U}x_`;-ZmJu|q2_%l<2erj{jTalj+wsZ>;9~hr_Geymlkee!PcaUJGDcRvK+$n;cjU}O)E11r@ zfR6$U9|rQU?%oyh4WV0S_b3bCY}RGU`#D?9$Um|$FRX7Qx%wUZY>YIIN<`GkAd-c5 z>4J*I>>rg2{`3}HL6D2ABtb80&b?v0BD;nQJhcQ6!Z}!55*6B*6v#-(bl%YTCY79if~hWR!^j6id~@gPXtB) zz9sZwX9bJhlx)sN0LB4rwdqg^7r5ih%5E;+>!$o7M?H1znYqN|p|WecdfHBw`P~h- z$DT{)BLL=-i{eoH1q~vE%R-9EUB#bUBOO|$Ds$;bCHR3x23@v=EWf*I_}>u#i-*>g zDuh6dEKYulD~j%Fu{j#qd}fvk21jZM?HW14*_KMS?&>M$BLM%{*hx9kc`{s9suAuQ zS=>+Z75=A#kXu^RJB!+(g@-ymQJ1MgZKk z%A>J>jcsjodZg8IL9^74%f{r~#^%;63p2BMdg)lZS z-vw;!K+VcbE?Y|_4_%=ByQ&t3C%eSjRu32f&}u$v`ssaoYy^5;(@esR^PxI1T)BKc0#IuA_Sl&8q4r0*99#gu zrwOIGb}Q==F6i!w2{K6g6DPOBxs6SqtKG);+#$^1#FY8m#?Enwu=RY(wygbG0rg1$^$WA5DDG?9s?5o#(>hFstPmy_ZaX|bgkVZ{n7tf%Ir_AGnL_5p8Jp0 zX{E;19V}q~PbqVtxYpEF`KkgS1`L?H9r``?Id%a`nU&V2 zzAM&OK5ypZ@H6baSfKH(^eK;XkJ`(%@mly$)%Av&pM@#v%a`w^tglRW#8Aji#??9v zwZ|#E^^UH-Ki*$K&E1_`zyFh^SoCaI+1o>BYvr5Xvp?01$91YSg>QcvcpmQ`pdYR) zH#gfKj{sJu!SSKFv11QRY{pl3@!GTxvYk84mr`>@SMo$QZ`O=X7uW))vqfFC%u_v> z4MAKInF~$OF~1s$x);k4cC%pdYPi^(ze&WM&Bfs`ab4|?es>u|7;Ui^I*rMMFaEfu zH;+!_jCrgX5~un|9&Jpf>8um?bk-t~6Rq!V`CP>~G~_8iUCNK8$Gidg+@Y1tlztJ8WN*aG(`607b}(8 zhs!KiA`g~~`TN9H^1c;SbZtZfE@xb>z%jsOZPaU}dfYqSlq|V-w4s>jef#Gpne}5# zG2|89dKuGC&$^7D;<{fq7T+E3j67vM{W&2PH$Mrz4GyKyFZFU zM$LatV8_a9Uw=0LzI*U{|7>lqsQZfI0C2Hp!D)eByalm<1&{gH@yPp$kh&VI|N84! zG7+nwGcEaoFS7>6sYr(u6Jh}X4`)v-rqL!r>?jYhwC zS3dE0e{s`E$p95vvp?xo((himubSNSF9Yo%@;# zS>t1JI>Nw<#ao}Xd#(T6NUm+<7XG=^WA3Z&{56GJ^pUxe{pFpM2nC*N!*zAehC8WS z*HZ2 zhP(8cEQ{k000z6pYcT$R52n{Yj;kGNtLOfS%|l16enatYp8i$MlIkY@cE{uKkzeR4pmPvclce8x(M7q!R>07&VIq)bzowBP z#y;DFd{r~vc=-E~Q0Xl3>e_!uUFGK4UB9=Zi%O?VX{F z`~cn(@A>ZOw?Ar{o_3XZ_v_8H3yi$CR@?F=n=lT(%iLmhV;v&`Y=Hw-C;R3W!A@$9 zHu>Pw`4+fV&m3dJK^rErEZkgi{^Gc6dp>Ddq)U$pWmpJ3h!n6ofh};>#178)W&g1{ zfAOn1Eb!{-bRh4k^1tgbpyKZq`0K+S z`=#>NanOZ3x#E4!|7?LX%#Zdz=_?Ny3%3w})DI9ME3;ZXR~|6A_2%Cw%D!|LusV;v z$-n!Z6VzzVw(B%Z6by-YWXuu_zi|5hdPtN7gN zj87cS6W9$=z63tVwx@c%U3&vnWyKqIz!o_Afpht* zQ(N=QK|@c--<|{I7A#Y?B89*2?meu2-LJNOJiTy)`3-iz)X0ECHVAi&6seUq#I%9g#!AiBgEay3getnp$6=@N% zoVUOoU)RT_%4N?52og zx-kYkGMgI?H(SXXXUO^wm|5@j27gwX+MPP+syNuTh&-|7?tjtk@#j-Q|D90!=7av^ zv`^_j%a^oT5BuIu?c@*dls}UC?=A3`k_W>QcNrRhQsw|^Je{T2LC53w8y-K8GayEX z1Jg}I$1hG+^d$Ft?Emz=eRaC|?fv5^YRR*WiW09xC!>=A!S?|Luf5k|norP@ua2W6 zy)KZr{TY5Gc_JzB>V&#kdVl%VK<=w!bB9wNe0{Dr#Yb;aF;AeQnbHMMh z{P`BRw3z?7)rsWe5)1fe3;dyWKta%z;`o<= zvjP9afJlHMICP;2}mWVb2pnpHzoF-ll{Qp;(}ubpS3*1TSJD zR*7H);PICTGez`+pk^QtnY7@1jJA3r6m1CBxC^2iGhxbffh6gG!9HakR%4! zZkRAtBuoYmtxf==G12Ei(m*s2Bmq|ETxq1f5bQiiIzz@_M&Sno(Lj>K$pS;^ME@d% zo``{E*`ay^_V(|oYtxfiG?XQBA0Axczmc}-gex3~>Q`IqH!=o@Dnw&*5{X1O? zSULkR+0sZrEpw`)@5ewE$)JFKCI)&NvSqZn9|QzL1_MN-PXrf;X>|Z_HNt64VkBo6 zW(GijJ7UK{iXI@S;$sbPM9%|aEgZ}>1NI%rmL7mli9;ZS3^G*;+uIO2ED#B0@Ug%} zL5wu3U;|vj)%=8iRWf9hvMR+#7DPM-%y||Pt49R1F}&vpIcHKtgH8+<1HoelQ@Gyg&mCcSb z4=DTeZ`R{}8>T(*4y{r{8U>$YuSR#rR)l&!-vXfq3Y|z0fE~K1LMKB3T_9GCrX#r6 zlVp+kHCk_FgDDJJ;sAjwpHK;pD)DW(?8(aXr2ZXE84O)YVk`tQK-Th=QE*~lUdhO; z1{gzKQFB6|sV;?FNS)7LVJn=1P8djaW*Q(F;Cx~v*BN`(d`&d}eIN42AC^-wv0hBYCWCb$RXiTQf;5dkv{qy z{aA!5JBVH7lkx!!(-2WEK{v`rT1nF36h*E|tdTRWH7O$rw_y@F{3ss?##u>9Q8?yybyQXHImf-=#AiXwZ3YbLckO2 z3_R?gYK`M|y6H#t`W}SwJ|+ROnrL^Amb!iFRUG($y`PNg$_6tWg6%iWxS)!J|2gqB zB2*hp(DNFnMVeGPoZ*ulRT2B6$ahF-9#HW5aCB#cP~)QDVMk%L199B8bmF&R zTKQipgYsBGwOAaPNmpU~0uCJR#oEQ3P&`oL zdqyl6jkqd_hi2IN)#7rfK;K1$K;5006P46^n2B8NWF z2lptkx#7SPcxuicV2B+@|3HbjD@A`qr2|Rd6*4GoIHx6Bv<#u&SO{_yJT9yam1`-z z+0DLs2Xf^uSSpnh2z2B0{SKPq9UUO+cQSr&a4fPXQI}Hqsh-C#GQkwRBd~I>tBWdN zy#lU&T$rdUMS1OkMH15`C4v+{HO)av(g#LkK`e>4}j# z+WmZ}p3yEAXR($`_-?IlK9nnqwYt``)PK> zha5>(Q^&9b=ieBRj6vYp$Umjb%2{$- zi4F96N4D!hobnJH17LOPd|h}HOVLe*{`iIKp*~Qn`AFy6l2Xd8$Mh^d-DdIh5{?Ki z-NC$$E7bmt&u+sWg=DH`D`y{Ee-fH4>8G|h_PtQfoZ3#v>yWE0w#4!~ZIcj8t}tFq zEts`-Xw#rT7EdtKUHCxR=mV4Se7`L~UhJqLGBFvH!b} zx=q5gqL%Iu-$!Om(datM+tlD!x1G*)>!#lHpnzT=X5gZ|&><_ZGN;>wFxOq5WFb zzM*IF##1BjUQIjt(zM(6y^DRwQLa)I$kpiTuCk5tc*jge0+s964Xt}7KY#}y2ha2DGE zx{}SnJL7K!r#wSN<25+(3vyDYCi@I^Lsank1li#-*8dB#P@r}GFNLF!EkK3G0_S+YucRTbKPDsix#vO zZSq)Kmwfx`@$~%Bf!y-&^xN%wf0|EVa)Ym`$t;NG&^_lFU;e{*cI6`>SE3(v4t=^m zSWSEO5tC`h+d$R_OS8euKFp@t*K*{dLU?$y=fbGVM&_h0eMF^&3o~kDMoi2m%wr{f zX{WxHEazGXyZ?uIA*z=vaXwn{;_^bc%7er4Sbj}lK~g&{Z}CmpOP0BK<8sXft!Hn< zlM+~S@}HaAXs#?J1A9O-DKFHXoBIM4l;ep@hlw0Sja~GLu?MZiO8N(yvCEmeTu0Lx zggGv>cdTY;N~W4wLB3vm`|^)mvw*Itye!&wOSQb5g1G#}sKnS^vIZ z`Lp}Gcm10h>uqCGmljLL!#v9CsdpPHKTvmjY=0b%JkjYAJo~owM4WnK`>R&B+wRcY z$h%4dMh#8Xy|2#H_K~4y#d}MyuXrD^M_s`jZeO#T)P>@UFw5)#(s1aCG}}nz;Kg~8OA49Ls8D>M>oz6|FHDI$%pXt zYNa+v)>WF2jk(HyZIpt8R_0AFGLUb=n99#tCTP9X^6qaF#2NZPh6%Q9CKGN<)4=$N z>+4GJtw$MRaGD1EYmq+UR%3^YAD6J>B9TqHl|Qjb}ss17UALhKPmBSnm^~d}a#oEpn38G0!2pBH1aBuwJghwd5vvM_3Zv=QfVY7FqrOx@rRH6dP9wsX5#ksL(R~} z%Mi@y@mpP26{Sd}TV#3d%TjH>IFhrv21;KT2%@1hiFI2Ux3KdGGw@7j5JO7SfLQ`i zlq6*SCr`zFRQ%a$otUVCbMLfqbcZOCkUGc(+?gLegL~Er!(~zC^e3);`e2g;PLwaQ zdVpL%JWNzQ0n4v=1H@%)LMn}t5|PqMGN$Bew?Og>I7n*WOumY(rTPv|-IsEP zo1smbTvy2FKEY171|>~Ck_hn>lVOvvutY~X`dUB8VgSHuwLu5JE9+Pg8U&9LbA!uWkxT=vsmtuj!B0`R`@=Q3*eGd4`M&2z{MF0x7dx7^r{&L{O zD8pz!UN_6kVH>cuzUry5xcj$|(XV(kCmqV>oAM#~@I)f&5;2Iec(Lpn>c$KW(mKw zu>t;KF+0?x)nj({8~ptvBoD4QQlw9{@X^WnAi2K=a1dwUtXLmyK;TE|^eYQTCGW3BDIR7cZ!{_}>3Cw(hqe#pcWGo55y=HCaD;=TeH zN4{dW2hxjFD2A-7Z@A7%ac^-xBD4+J`$C;eV-ZHT@%HAw6wnEm##ch?^F+KX4r^iQLMa1M=E^ZV%4|6*X%;B z9qIMnv{>_^nkH%%9#?xu-+P$Uh8&p=K&dn|JvC18GM|5}8)e6C9KCRj1&aurLY7xd z@`YX@u^vr)qmhLji-1crIi}6CXb6{#?J+!hzJ(8>TVvruImLF~Uv#`oyUpeH;H_KQ zVfnXgw#_XY8MV@Y%5`E6^`n;%f*mbG4{=tNc)CeXyDN5ojb#C-ni%A8P4wjWnn`(} zR3H$1bo;$Pez5OZWz>vqsSW6Ws;=$svR&*QMPq_2>fks1uT94iUTT40uxpjZZ#&7$ zT>Ygmy+!2oLnf0NQviltUuLkVc|NYGp6yScP0*#rfYU$UA)_$`FxF2GQ9J{dD$-`a zO@*SC&SV*XGXQ+{kb&p?21Ox@fu`^N9uQSpDf1EeP1h4FiwQw{ER|0{gr$9LKIwHOSu8#p8}jt zfJ>LLmr*d72E~w1RG^Bok{x22HMc(i3iUxI;r`?cE-^|{d4aRbgtD>F4i^WZjt|v3{&|7Ff0pn|^L{k&0-xxt$nB5fQNOK^t~j4>r~7)} zZ7ug(u1co-Mu@`7Ko;->+S+naCP8hUB%Th@~}y>A7*V^!%&dJ@;vMJ}3^Umj+gWhKyYCE9pv#KoI)Yf?b0t1Xuw)U>cH8@3L( zEx(QaQMasXDX+pq43_s-;Pu-5ENGs$NiTF%FB9VwVDq+ zzR&yLS62&5+s}B{iYkY07m8KANYdnA!t)js|A!RH1c0D-db>aP$_F0sZB!1*13*y9 zjpV`He$BOwnwh}0Vlm2v0)Dkd--`vcf9KoZMK`S1Jrp13Zv+Yh?5h?`73@{BMjAGO z{&$&u53f7qFWkWV{3zI)zu7|PvR?L{;W*4efyBON`!gz+(yoL2 zb&5(WqVW1o&rpF!SvRR=<8~`h7$E#{H8i|JiYvKir(cez*Q$*&;oGkP$OpEHuNqpm zyx$mQYzci5dK)jlYf}`z{PN(Ht;kms$-9+<>Tfryd$i4qtFZbmr+bsA&-@~N&*IM_ z_NVFAiuXEfYN!roVW0U$2Vagy9L%#P+c;EvQml(EBs3S+ehc5{J#0!0y8Lb~tYM;d zJ|nm9=W?q`q{DRdmEt2{^R=(;N7^gz8yk&G3hqBB-bT9r`~*MtSmSKH?6KX$T5`Pc zVfkIddau@%lFgR4d?#B&F3qbyV+4y%eoe&#u+qTWZvMT7(fOWdlSv}_YP(Y z?GJzN?Z2k@^W)q1qmhSq&vd9?jTX|Mu9~;3av16#k6@QLF!+dz>?C}yl6yW@ zI1gQRh`8Jx=u(LqZ3;VClesiy`y)SA{aKQ`2T}$M2oL($*>y$Nk9V_G0&d$}ram*U z;9_pa1h>tb)X}5vUR*+kq^nW&W_hc|QK-*}ow!<``>94;++iy6Qg*7&4 zvQ(fRux?vL7~SE#=tBDNx^h`CKyNZGihUl;SABi|1q};{o9w+kp-_LytdOY$xm%Z_ zBmEoanRiCyWbV;AzJg}0wU2a28-9HqVe{0FS*P=Hs6dQ+Y*q+(sFOd5HY#EQ;5>eG zX_+G8-08Wz<4GmXD04sN&sYvoYw=PScCuY&(iF1zKCX4e!z6zW6`I z{18?&HQd3C`e)v#>+E^%O_yAmlH*ih+3WP4KgD|DxoiCoC6~)FZ+?A3+|~PWrs$zY zm1eDxiyIkLe&tO?H0v>U+UtDmCmr)vJgI!bj5?xT;S$D;ix~;E(`SxWti@Sx1^+A1@w@gYuTPeebNB*zb^?EjTik$z}@~H+*ef^G&yaMIXVbGyj6;} zu{M>E7;OJjUQ{E!rYm_o_AzoV-eZH-Oi=Ip2%@I2s@Uuq-KX(syXxBEOXiL;Ze!Z{ z)m5WPKV=(OyCyU{G@CE2yB|07?;Doao%w9O05-`T5w3(;FM79r)>$M|#YexCpU)&3 zzpX~rwmbCLGuUU(T$rxyczwr#U09!+>Fo1ChnDw`NcGyeWo5T4VPLaeaAffgLZFXN z(JA>@zlBRwya!h9ly-Kqas_dl5QK2_-e>!v(qHn`CuKRqPhwR&7x;&_d->e_bPYRw zq?)w(qBQwZx9RkY;S%q?>Uoz{1<|gt(apW;R7{Lj8lAMWzB=sVO#Agdr*Zk=Ti4#VsXJMZy=J_M zkA~p)c5;HmRt=`zI$Q7muH?D9{`A$>=<@qt#GfLYuci+tcc!M_^W0l7`t@wlW9r~@ zuFJ2~SFYnV&khEI?)=Vd-uz+ycI(5i=-FQL>w^s^$%!eRvzbRC-n&dwC(F&wN0aua z{yhe*=AA(Qd;i&=wo9lMJyNu4qPx6zC5ny^X=FX z-#fv`J0pHluKscf{(s{AZfhfjP=4|NDI^wf+Tt(Bt?+ookyS20ejIyJUB0)=EQ@Ai2)7?zDA`Khcy&pTd)8z zKc}+<(^%p20cD_U8Zg9pRS-#e2;RSC({d_MK#a^TwXquszU5k<3l)VHXQYaUmZiTdM!ko0G0+kM7%>!Ed}5(FXj<0pu>DspyxU`f&3pG9P{Pe z1xIhguxIR0w=LR597K2vvcQh$D+PcgQf*||x)`{aJ<5F61rT&aXQ0BEI1TYQWgG-h zf3F-mf`ve`=~2LLEFFP#BiAF(l|q&P{+aMEz$2tXt^;Jg34Z||BEx?Go|ag#5qA(^ zdH)0OU?U%fz<~Mo{{`SNOr!_2?lLi$yb3rCiz{A^P^*Qh4v+&%H!qRN4Ht|461Gsv z=*A8>^HEgWuxn^&@zy0Zu~(5U5Q!NCP*QuPCFt`CVsijAH;~fD0te3^!o*>o%!vjA za5};{n?pr>ea_|}lS0ne4KmG>gb#q`WZ3&rC;^wcN`;)KH0XU|^sOXjQI$wTnm6taU`jMS;K`x}l7Qma86p@M4_!s& zLRN$0T*#~cTGY|?JpUnRj9r(+eQJy|h@{YltsH1Nc#{BbNT7`#EeMW+>j5~>D76s* zOhsf81!l?za?mZse<2!D8Dc(CCo9hU0yQ4|xa<0=3Rs#L!5Qkt2T(JmQRmbQu@D}W z>$`PnzJU3lE(h_KnsEoH8T>ocUutHd010V;jf#N{@WCS5#HtnoiH86$fgEV6)kZg{Y2OU{@OSQ?og?2sumhE$))bq7cpP&qX~${^w0W3+$?&1zZM zdgKEGG-ymRvoPdgNR+Qu@dZ~3io*O&3}p2tiDM|O*bgv)Jhy5LS*l%QwM}_g_m)~U za#M#MU}W?P(>@)!0*uU__>FTk23M*A_AMTGi^YWqth>{07G#i?$x2oG z5-vIw)?@*ts-e)0dL~w6lU@32pD+eD3<(w)djGZ$j28hcTQSGLfqsL{kZO=z)jDsp z>^9}ahQ`&gI@%&89BU@uQ~*AZq;8VO*yAvRGKK9z(uPq zrw?<0L(P>GdR#*;Q#hCH&PhJ#euSlR(_Og z6%N9Rdv^}J40H-OW$J-^Y}sH`TMfFv#pa*`jqHqb0Bd7IBpMmBXAt?L)Ea!%9zqb} z^)9I5Ipi|Q0@H5ET$d0%1D)S(48~vm;OqXD!U)`LM94ZbR4HzfL05^)fNU(%8T7D` zkp}~lLAKGM5Onx*@ka;^HGs2pUB}lFiB#+z+Cm_Y5$ftk4e0>Rf^TsrY5E6e zdE)@CJm{huIltbd>wz~K`@!3kUP;wkDTSe5KFpIsM;{4t=ts(^l;bXjk5b}gfs0Rs zZUK8QEkLh~v*KxsW8xejyo#xaN%W#hDL}6j{iRos!4$D0FwvGS@w)&%7Yuc!@R0k= zKL)BxfM9yBpC53r-`#)%4k#1hN|E06>B%H*|5k|bWR47RAkL=~IN&@#9eU^hY3lh1 z)-LsG85RT%I0N5KYhW`I7d`4a{8JePE_S&Uy;8XgzH&MOjUuJu!@IBzC3ta%7$-Bb zji8CcFk0k)GSvSM*X#dB)CKpI$487)m}p z16>dcbNRAi&Tguf$TQEKaR^}qa9^{zZ7wTK#RJ`qzFi*ITIGEIzRn@I@ZdM#nOZlafxz!!KH6Cb_7aV5VPs+mv59chCT zUhX|I3UOURKP4+Xu(a^?OC#wiI)`ZLGMJOX z+u4$vo>Rc)o%Lq*DL)zUtYEdM!ELyp@J5n4zNm6y946VCWI(=<-~79-#5%>O9p9#z!{8i$P@k{$dhPl>#vt)!`MkpV!a?i* zbLAt9k3*`FhE_rFBXGg_xAJk9Hws@zxfZ|K${h5!@{z5a7S=Mp?Xlx)^Q#-Ee01uR zZ!F#F+7w^^1-M>7<>Sdvqfp`K2fd1SjIzW^%Cz$Ea{bS->Vk2#DE z4<5F>{bKJ0sth@v0tD8+aPM6OcBQR&$pi5%->ZHzXV+ZmNDxRr_MVwNWQSD3b%GCv zVtN~U0%$xA!%bgABsUimB4sr86ATZ5OUkugzIYvR$O&YqG-?!N3-&Je6z5v-wM|gU zr@>Sq>6CGDZLfqJJjDD>rJXxkdEJGKwEWYMRVcz$?wN24Mb3--2W^7wQV}@Mt1Q&f zcg4n{B5aH1ST};(ulG5y8_s85+)jANwW&&Y>Yu>^OMD>B_%#UFIA%LTA<>t=M7_>3 zVJ?$t=FE0Wk6xkZ$u`v0$$kFmtX%1lg1U7z-)-~Xw6tV|;dm=_OP=?T0y zm%;wG@=+}caGF(Om+vTa{jGewemDOj(~-0q{kKd^@88PDS6w$FSouvJI*fhG04g7a z40!I0=6;R4x_e&vDD^7oL6ZDH4pnNlMh#H;I2Tjk^(^N!P+p@XX}9Ph%=(IgMWp%j z-As#!LVc40O)d8w_pD$uo#n3K_lA}4$VgYUCyz9nFYcAnz-)}UMl>&o?ftEMoDCi6 z(jCf;?k##2jK#7uGKGAqmf!`OL-HKFc%HkCkt z5XC}KiG?m0D^-aoN*6)5bg@uuh^X`ukX{2QJrH__Pz_ZOK{}}PE+8F@h*Tl-2KPSa z+_`gS=A+;8fhXqqulKhWMZt1G^w|D;N8&Si{!78{zbGGTV()j3MOw&i(<6KSL;09w zIN8Y(b*I<_?=El>TyU7m$L09B1O0-{IgOf=g?|cu4xc<&7NX?B&CV)p>?j|L4?Jj< zI-?Dgj{%ECW}I6^I+5dDe=8qvh4F!{S8?vg-?{pm{XJn9ZW+63JiZ-4 z*xR7_KPeychvx1&ZhpDkT=@1Q=iI%gn}h#SKJxbs39aVoRTkW7h#8!8d0Vxkd^8yO zQ6-h*eGwhYX)s#Xw)$>AQ~5YJ0=;UNT{Cp@ncD9jv@5NiseDwB8{6-CwsPF`JBfb) zY`uW;kr%T>;*R|cZZ$cltCpgH^0CKqy-w6c(!bfM`^?AE4sXpDs`&QzY1cuMvSjYe}0y-oZl=vXC7QW zSh}!sONXq7$}7*AYFn-PQn_ey`*rUe#`YcmF#W-;^0)oDtCa%VKSfOi`vkqZ_5s}kObDmi?A`L5K|`u+_@u%{_ejO^YU=M~<*&2#VMD)Y-m>%G7VK3s zTz-{uxqN!^H0VpM=r4B7zYBh@JlXrJmJdn>O&KsYniQ03WRx7|9R)T&#aA)bwv4vE z$GEPO&+5drx4V4vcKuCvwOt>0>H>LzUqp! zaGtp;IQNz~^467A+O0d4i0yS+@pjnHQZP5&@yqt=u&Q^+OE*|%GVYfpx_f{5n z5t<2Sh;hmH^NCe2N0T2ROieP8z<<)fV!xa@2RV;=E%Tc>-~T6yY( zIy{f`c2M?uGVS#PG27p zdB5xxw2Soh(e(`%af+PwwO97JaMvf<&WFO|S1RR~!Q)L@I~uy?=ScI*o_5Gp_J2V0 z^_1o))AfHV?OD3!Z*Jiy5_;=Hq<0BVK%!JYqq0}N$kD>JfJd}|mPq@ywSWpczpLq< zDt3Vv*E~-syPpodHO%8V>ho$$*<-@)h>%^7s0I6y^#81U6eVRqf?Lc3cEKRUguv&z zFeGotzm<V@+2hFb6h?miWGywOYaPr*+mOq{_R zW~$4ME*0R&2=lcIQ`}KLZbgO>M2R0GUt36rURh@QJ-xa>>_i@TqBqxWM_@aubH$s6|9`XODJ2n+iNB5$Nr zRK#(W@ZERAT^irGmqrHohIllFTCE?lj*1Kf1wWaPVBSz&-owr_5ijhcD7?|zkx>U8 zL_X^y#o43%b_#wagy;jjQDY~;Ff6*HF`7CMj=zY-xvyMqtp0OLWL?*#zb_j~EQDd3#h7E{#&aHIGA# zm3hshBawcOr}cto*8|FdQWA9IAPGuTc)$0Xa}G(qJ2SoQDAq=4ikmNcIUSh;mU?)k zk_q|GWv@?#tcFG?k>EGV*g36Iboo#izhET@;u#68>yYBC#d0GWu0&0~jwfsAClKff z%vziYDu>G6RGQd09b5m;O0Uj7iHJ`31)C%i%p4De)BOqh5#JcT$wxaa%oCwx2T}*0B>-k{gjl#1&)>7Y(M+R`lw>iCFdlnVJTDCoKRQPN zlStL-!ZfYo35P<(b)=$I!g>R!KfVn$K;ytF$SP}D8mur&!xPG0LGsPglaCqzLG{VB-VBUmaLYO2BCsZoTOtJ82xe5;lqA3KZaUZ4z@y+L`M1tN6W##uotycfl3dt z?89E*0H2e~OQu3aA@5dunOi@oKg>xMalN`Ei#ARRuPHm*jKoDQMAA+OM_LsMwYi67zyt@R*%>!K60F1|ToSg03Kl zd!at4H{@tFUS_Lj6~};c%C6&W2(SdyYWaq130B1j8*-1S=Yex_i#}pFrs3Q=#z-rj znR27RmSsUpjCGBpjokdfn5d4$0zR;s1yZkmuMe4c@w&vfpK<(N0)z& z;Z%@)2m#f+xN@*QjY+w>@|8TvS5*8v%{i(9 zOpg$z>G4u-V=_nG_7GA};~&%G=#ZF7Vex2{E`78}1DkjrAt1@8WBeh)3BJt836=(? zN9yFoW^fhkn9{Eai-$HOE++QCCosK1PLA8 zaMG~Z_314Krsx|MOpM;y6AHBFW}ad5pjF6-M`ZRL)1x*pJ$6i7-Z4F{`%eh@ z?wB5_$zhsfsD!~ZeiYa7xw{wVZp6U_2$=nSpGB$c&w}bROcIu+XEHhlWZJUVs2%py zhH+o^b-BL8ikhzZN&D@bu5!2}9SZKM!*btPe{eLl`<4{${ zgCMwSIW+S`Q!F|8Qpa4(aDvwDzfF&3$H(7}^qf2i)Ty(er7HdG_s^#G2Ld~$N3At= zC%Da_ib4kG)@2S@OMiQP{NJX>F9(>WN67arrs+|u%yVI@Q=i?#kn~oItP|Ur$cg15 zP0+6YUGV#}^tMi%lF9=qoIVkbIsO*acV zF~=0E+lJf`R|m+mmal6EdcKcDwA&;{T0dI+>Ovz1@IZP`UfUZiIH$fRh4pTpuJ&N$ zVBgQF4Bs-y15e)h_H>GZ+RZJQ_B}W+4feW|ACwr621^wpGIyIcJx(gW!a9~cu=b-6 zcpXJK4*;)YL&`NNM>wd)+|fx+9UgLQ(dL$hjfBGD%f8Qa)gJ4@d6MT9pWWd-d2efL z<}^`j{`1H?#-vyDT^|9}n(x(%E<6d~(OV&0qze05>+BqfN`KETU`HUasJ&05v0eJG z5OpAtRZOl|2>VQ_k*RXzxfhThyk~-ssdDrQP&y=+w5z<&BPKEbkpJ>YPYIum2Pk;p zi-J5h?dc=se`#AysvO_azH9*i~yjFgW1t$s5^%u#+KG!JJtX3p(d+tW~Pxlr* z&oG~cFNPnvlKxYZVA~I2<^RTi(dRPkCSzIXFcG4eFM7oAg?8kaG8C2QQ7g=)Dz`PY z`>MIl{DEudTj2t^J{vIB{n8RIuWPwIGWC%*PU+M*{WL(4&EO8_-jjy&Jn!3$_e&i1 zQ}lc&=*OZf-rc4xKNOM~Khg^F{rt^v9czdjh)C4bqWE{7!8`P8yy=S-gly zJcEoFI_~N7Ufj@+aLb29wINBxp-=t};&?!GFojrqe5@xyzvixwgb?o39XU18J3b=; zV(yxL@h$ggiB`OKSf5QU*lAb|j+dm1UZJf_9CD=xnjYgzM^4J!h9A)s40~Vt@rD;G zHU5Ot>Gi4OD4#@=JgXPxSCcOphEIuVi!cs9JZEl)yJx*WmS+ymz3aXQ%VtfY&&wK@ z&%6mWVn>jhofoV+?%x_3vnaJcZu+&fj7O2p{O9%}uPx~q8f8|qYp~JUt6}fR7Tx$j zDfhX_Qebh69BdFcq}-h)N}@SDp9L1j`b2zB?2AKWd&=XyDqO&?ne3xEA_q#?V{O>h zuKpjhb)uu3Bv#SbQeC58`m5Qst-Zf=WaN{=9hazyix@A6hv;=t zv?!sbCsia$0CL!ehP%hxYIo&~%N+z4NTqfBtcxasR2o)!m%iH-`LR!Tn5nd6){pOE zF-G`f_YZU0D=Qwkcu7gbEqOHEUEsyVOOG$#7nG1eaDE#_`N1b{tBzv!duYE-I%X=W zG2?!rqkI(7iE6%YcAC5n zl#e>mUy{wv{!97zcoJK|R6gp&jvxD@eDvbJ^gk#cE3{;{)~^v+&cr(7{-u0mH?{a5 zl#c?@=pE&w-~$zn{}1IOh2`e|Mfvzd754w3e0-Vxo07#b?{KSP^5*|l`Pf_e`KDdL zZ{lN92}ivav%i&(S-p+jzY71QeB4(YcJp7#N3!X{<0p?zI!{k11I-xwQ( zlR3%k3%FY8UaUr=etl)Pd3~!Hz_>(1q(Gc{6n@yC@DS*)$s99GekJaI zXlPH~a9g^LEoSi4nVBByy)mQgvXUq7LJU3*x5}kmZh8BP{q|;5%G_{+ZT$K3pud)o z9VQe%ym@>9z_^GO33AzLkG9(*hQPJqdp~?WzRP-hAjE!sm7e5kbd5pnoTL8?p1Sa^ zicu!(n>Ir1BMbMqvWBLFIU>$U$2!djihR|O&G{VmiU%#Fc57N=`pyGx)9|l8CFK2I zy+xwCxLzGAq3OL4P8B(Ncgya1g1_{`bIlS5+oqHBV3Q)p?$y<;B?Sx4!&*q{r|P3a zt~Tkq2WtG)*b}s+l<|!q*s|0VVd5n^8F@ea!DN(0YQ|*rSyL6^r{CgakshYNpDZIs zV)6B}CrxVWJ6y7@%g6_+@r@(r{jEQW_XIp{-dC$mu0K66UsxpJpZ)WNP*UttyYgy( zK{F>;YfQ^|VTqU7YE$#emhxB6|LRVWlvwV{-}~fDt6{{#^k?-~ocx{oF$*hwA_h4n z7J6^Nb86qjC$$aFZ!v^cdhJkgZ$F(_)ri`Q>ZPoW-Dh8vjwK(rd^PB`|C~BB^z`=H z1iFO(k7wdr%OT{h-_oR4`XQJAjPm>4(Rhd5>X)Dw8}=X;gI$FK5;)9xVyFOL^B zBCi4%w_)|_-0|uVGn4e<5w7fabjidUQ#daYGjiLqM*NK zvV3TtXL?;!=Mg_+jwHUG^ooUMG@q2YBDt$-Jir5$_)bTG9IR zlF9qn?A(s*Z){L9tJzBmNIoX4(x|Gx6bcBOkW^!%ro&Pgg(F4eqF(-$Qw5NxXC^LE zESmnhVEvjJkaFByrCGm!DV%iNRD5s7)th`C{^gG+#Gk3O+~xZj*>EgX(l&~Ccq0_& z!;y*)Q)zvu|1-MF&`kXLy80`sc688(ROyc@ZPu3BF*)<5Qf_RTN|-OP^nf(^5MNE5 zbA>T*Uo*KOnLqtCYPR{&Qr~u0JT7F@sYVXk)Zrz2CStP)hPm0;<}A6Kz|)#8gY0i` zw9$!Yt4zNF`fK;CmtSXq56s=v9$L1XQYSBZRIp4lykt+Rbn62G_w4nX?q`x^IWx87 zM87EQzVT*~Afl!u+nIWiMS}jC zMwWh0Q+G+(FCg{>{WaB|vi@JWcEyi`>zjJ=gm5XE>JM+DV!R3_L4Qpn`|kec-g?>Y zY)8RtU0(e4BdUY~=d<(oq?-HM999Zr0*{+*HQhYo@UrM`*Kvzm&HdeFD}{*%7jCbL z=yo!^ZWiaY=2+S`50uo~6utHwH+|wbFwD0~YcO4SdU8PLix36U5t#cTP0nagXtk`j z)zWDHm7&Eewk7)NnYJJKjpiP%GHr{tjcP-qvOlcn59Zl_Q5)Idv#tEGW%+>9r{TAQ zZPf}Vm3YhlHp5-Yd+gVVmr(gp7P-iLCV<9b)VKe^#yOm z*WEFZIjY!a&}>NWoS<$U68FQ`+-Yo2mfd@nYDqJqo<0A98bk1`Hz;cs zga*cX-jrT%{2yT4O2O`M^~qxfH3x9&52JblCWO4#8LiCc)KltHvIBjM_spJ0J#(r= z&qcLbRuxiE8q8>g%`KV#3_T1o8U7Jx_t@C}|2q0ce z{aLzKVxgO}7Cpbu7WCJi-YFaycmtOz9~%1Z&L7+KbGs0s2`$sX$&DZsXdk%Z=n6eC zU2AQ&up<|K1br_bb6{B;Bpi1Ojrl#X1LFj~{s`AG{Du#p6(n zO+(oJw3T-6wk0xu<=}aNvKA$mv!UV#r<4@RI`hfPX|=JFCWWP4riXrIIG*plIU?Ki zYO&~!4|(qPH92an%Sz~JBlF_v7X#08SIU~B7oLCI=qS2i``UJBktk(5a!u1FGRm3m z!c{Sb47OvdIC$^b)8CDZst@%K@>LIzMaPzInW-YQghe51t3I*}J;EX1Kl8*BbK3yN(R)2(DUA zyS6oZjj=1Wp=#xA`_`f(czMqCjhe+A`P^l9*dx9>0tfzAi8uw zr}WWhw!xo8f|u8V)hvR4r~7}k5FVE%HBJXZN=c_hNUVARi)*B&bP|VN$gyeCZax2X zpCg-*A@7w#_VI@9^$9toN4gG!q>YBuN<-^9LM7Kjfq3!M9~fsJCe4TnlPwLC?+d%I z4oYgFhx&r9!XVx0p=AxBgwogQeXlilV4QYesA5zIzs%u-zOPHuU+e6^I1}D*BfU4f z?a`NIj*4WwDQ|dlw=djsJ=}^n{Qf$r)++qe-PaGJUOy|1aO#V2@eO;f5^+8Bjr{}v z$LkS3QIURZ;cmVpv-P9Nq)<;^e{KpI^w%PzqM}QqV*8@v)|oIaQ6@TBFFMseI{iU( zpbY8d`cXTXsJFUN88R_NdNC#TF|??dvIkLFjnN8CG=OX}%t&xeH=!;ui zk85}kH{2I1@SZ%S=ReODzfl_h`$6;)8@XRkpxr)xq%WSufx;Rc#b6`n`@BJ@`h$-O zVBAD0rA8%w_bCcOAGW7I;Sf4*A36q_d5F&;{=i0pNOWQyZz8pi!n)*Bi%mKun{-A$ z3BWjMSq|aMMEU-tLQ#wiU$P=!GS7xUh)l9_bn=<9qznDYn&@akX0kS4a?e{p z3-pGF06OH*WN&Cy9fMnXo9}*iKuO z7RePk6G6=_YKjh3B(WAdmI7iL3WzBdm8r$TB&J$rX`4_3lQiGW(qS~rca%-j3KdGK z?2oCm9Ytu4vZ*uXa^9-)t(8F)fdG+&h7-{549cY_r9hs>Kgy;dUOCKH25N)u#4>j) zmQsF{936hzBz(c3`jQ-+H7g1bs!Wq=Obbf$pE6#Dc;)OUTPPk1GJSJe`R;V+QT+R3 z@-TOQ6jh5w)r5uH3gz2Dds$N`*a6YOBHghlUpiOHXmybsT$vw~@z}UW*;X9UYXkA% zt-b*js!2l0|Nd}E4$_<9V^$#fRs4>z)@H4~_%s5_6m9Babjt)N) zTjodMQpJD3QD|2U$x}e5IuOMo2Myt<1Ef^6105xU6wrdD3|8SfAfiM#*%x_t^DVQC z*8xVC^~+5tZYtUxiv$=7Mqv@8!=*;qSkx;)HxN)`7#?|)Py*t3&!2(a2h504akQoQ zi$3CCyp;622?Bw&A7?62iT)_l4z_Tuch}0}Z3wNOqN`(NkOVq>cD_1|fKkRFB7NB{ zh)7LrN09+Le>E#hWfUmn0Z=AKW#1If0U5yiPL!$xd9ye+MJ!UFgBi(-(<+^9X;UDf z&&tD|S+#*ko&p2^`4T>dNlhWuAiKy6<>9^{uA`H+I0=$?)zI^w9$6s<~n3Es}a6iPY$knu*dp*Pcoi~ zRm~Raom6|A$ep01XD87Oc)TzHT@1)79&Tnrz3q>b*6Jo5>Ly_xj9+Vk)LJdB3xRT@Rm$U{<;irZVr>kKPQ-%!tKQuAH%2N4oV z*@zvU#iBz*xXK}KlLnW_gKsnj^#FYX^ANC;zz#bbp*O9MA z?BD&7t^<%bh`;`m!Jp)>MuF@$*ivQCqJi`%lbN->CkMOT9pM;EKimXG=s+89F>8C` zl08x;`F9VNDiC@AeFcI&V2HJ$WB80G?ih`%ICp_}?&T2JSb;Q={q{`V`xYKj}&9H_1vyP3gCx~w5Ba`zbadf;6R9Pbi(aW&);B{xMOOiLe)ZM zXk;LXoekESG&ndD7RU}>C44dZ6e-ygdk7g!?olL7rv`QM<4TQF}+g9)7DHlPx5{3NvT0cx4MdG1S$}K9%Z%jy{MsF+$`3f;w7T5`Z+)nwppF z>vHJ}#Utd}zF#@`4fgdr=<+pc&Z^aXZacH6Kt|an9C4dG@2tfx9*0sO!oft#<>|^j&R_b@On!U2U6#pjiLGbz+3h>_gaFuQ!U9@! zrcYOH<6+7qs^$N<3;|C)!VI2g7gUp9#VXJ1Dm&I+`6WB z5T$JO<7VEEld}*58`KXk#XOzM!Xmk`8{+Zv03gRzjukVg$c&1O7q@@?3hFT; zf)_{M6^KYTiB;$J6$}P^7l5!V>@3&sn)rz{67r(tS_l`Gf!KEJHfiwThyN{JbW1)4 z`fH!Ylmd89wqb8fTwyafydz$`uWYD8GKr#mGOgphp6Vlyx_>J!LgscH*5jMet}DJT zFe%b-wOt|7+8+)_b9;pDxn35V4Ek%C`g+A?-%i7CqmRR*gK`?E2vQ0>?&AG{?!$Vt zORbl$p91o+(A!kpjP=pnI(ePMQFO)`4DsEii=+OZAAa!pAo*0iW=tZP!gczHf&AG! zm;FRNfat^b<)fU-p*BjsW1Lfy2`N09L8p$iF#;|>8d`MGMXx;7wzqb|UFFLg-&0P2 z2*2@r`gKo6tFJ0- zA~@rpU||SljG!tFdSDoRfc0I2kO?CGSGx6azYF2_Btv!)iJGzqaapLp$RP{1ix5BG z_ZWjRlMewL=7guIELUsM2$c;ihyPtwJBiwWL)r-*7dH44SV5xeq7;1K{YgnIf;&ek zJ6bq{4z7RkH{&h^CfYG}*Fd#-YQnc|uxDty&(uCc;mRzKzDBw7 zP>J22d(PoHO$ zIMiSAVbmUvyI$BtJ;N&m#n^zG$Ylg|iLfT%sZ)}^@36M6cI6Q-*1y{1C3!C%2sYg( zo6ApyjLBWk<2IT0FB3HPVKFw_NIcl`gwYWss)PLMC7rg?pJLvi!lhwI*n_r9gj!14kDm@I>EKvFPP#*@A&!Y zeUE}(Ese>1w;_sJKOMH#7Q*&P%V}4mJZ8#Qw>K-G7C28Wz7I(MU1pHmKPdNo1k+KSb641_P&fP4Bc7`qhjvCCTSyPY6atQP(T z0TA}0=O(E0=?t3Agb98w3WgP;U#uC*brY#Dkg&wVfnvhT8QZQr4_>NGxOvJ=Bn(;j zoca905`ADkVX*AmDZRa)tj=)URDLKVDtINtlUuolb_EWSfCRtij(Q;_BGP-MF+OE5 zMMjlfJ!1&M>U>mVeC3`KO?dz=4$Jr$Pa9W2Etirp#i5$H~sqwpe z7=>K0P$}2-&<(nL?NaZ1#9t4zBez5L2=cfmT+v1xw>q6FXY^)XS-aq{&v=5opxFEB zlT{9j?M6zbVwYX$Wm|_2V~Q;v-ZcGH8sj@5%TIlH3mNKnc>2V#+oVRVN{4PQ4jh{6 zw91*G1X$6j;yqJ53CbNhFq!(BdGPfb_+!~n4u|`B@){nvD^?c`4tOTN>Ut!K!2XrF z=P&~~d+)gVLAJ(x*d2DWoX5A++&;T_fd1OTd+>gst?ke<@1k1ne-JXv3_ef6cdn+dD_Kb5Q;D!(Ctr0HwdHZYtYEZE> zX$y3Vv)adtVQ*D;p&q_dyYYG~g_SF^#=do(<8;82W0jXLJ{=nPbh&q5%-OTwoxRsH zcHKXFELbnwRl^}qNMA{C0*^n){19p*3N0ISMCoi}2Q3%q0xH?P*MR#0NU<@{KSD#Q~b z&UpAeu{V0%l=nFFA_MNr+d%ikT$tLnU7yy?521|4XV(aSqs#m>UcXOxnDyY>nac zFc=&cvMp_OwtSIhFf?aoTRya9Y4_1!_-CqZ<%085rzwMx?}rrMZEZazq6|mj!gh=r zP8T}yn$}l#bGzDu+g3hT4ad0C?CK<3o&}g2j_2%(7sZCbz<+!}eHaD6xm~!Z;+abRfMhW62D@p+nK zuZopz#gx%^$0^5=t!>+ClrjC4u+vvgSGy0w#y|YcoyHF`>>BpR34~2~a~yZIZ!tIi z88hWHb)I40;cdK}BTPy)xQ8AfC;AkPhDhQnO1g?sA{|TryfN|Fi%KqQWfb`qGF4&_h zwZFuO|3^UWnDf5@YM4ODayNU*pE9889zp8A0X6DnLF~7*bS9vFxOW4+U)x7D0RZZf zdBT5Ri$?u>Eo#)r>G+oV^}YS(bz}<@P#eA5eL=nSRAb^*-_+K=&uFy>mc^ygGZk{Z`=v%#a` zUi+kPGL_}4-$!fx83J77vuZSbbNZN$to^+J zUwpmD_^anR7USBodLrXN^5+`vcu297c3e8LVlff&JE1p$q+Y*F@>jkh`puCG);IA+ zM)cgba6^Y%@o#j`=_!U7g+CCoR(0o1B?-=H<+16M>sN$kl69lQkf{_t(b3e{a}VkcC#04g zB`1fAO|U;oXNYC_8WqoG22LKp&Sh7aSp-Ox3}+_pRmuL;49b96^93#E=H?6k_`d#> z0Us?KuR+g!WjEx>TA=+Y1EywKp2+hVm&iqVlrMrZAXtko^KpMH7vC*@qH3oM2(eW} zzY}oZ+$jUnYddW2V%~F4Hr2hynrHv0U$qW})a~BzKlu@q0hfwnE3EJhYkRE#;Qa`E zUzJwY)gO*$Nd>T-@K^iUPI%g)vRhy(Hm(7W%31!rX8qo?>5BQ3b-VhlCod~CM-H5Q zD)%mSxy!`+NzNA)-TYsc%B~VC{f|%2Eq@V@*XZxO@%G8;P*YV-@nF(R#zJws9ja|* z!1U*N{r-pSxwOwuYoE|ekyc07Cx|C3*FVRqSFMhFEy&A!i|`IwpYVKc$&(+iW?VX* z9Ur?sp%vqDYa-)$p~D=FeXEpBx>++~s(2)Bla6^Oxehhk)Qs3G)M+XAqr?1h#YDdN zwS5aUSM!`}zdWxk|8<}9-m9O32ky44Pp9Q=Z_K~_1E?9lmwTQvw$`RxT~~#Uab38v z+am5~OWHdaADzgmPJ!)jsQ&pfn7?cDwhr}{9PAw3oreji?P^di*W5LB39L7Ltl1q+ z_YgUgfZ9SS#wwdQO%$4-&6R8U`svPG9wvkO7GbahCLX6M60i(!<;$FtbY$iDVGXYk zuU(;3AFY7IJ-;Gqw?#h*op^BF|k1rt|CG2V<8cTz&*tc--X)k-idz|Kxj3 zJ?X%d&wIRnejvUvk#`1^0q^1i?tVCW$;pnW$hSm7^(G1cK)v}A7UHdbX*bdyE2OwP z)bB9>)O}S~jh7(jOb!cjF1^2Y=u}v&x}fm+^+wpd)oaAzWKnis)tmj+A=wql$L>79 zs6{n17qcgk<14*KMJ~=pGL9 zU4_04cdfajM)su1Rw`>=Rt$^zk~}FpC0b{5#X8jez!iCOHio9dMxn>bnPizezHLvd z#we^B>5BWAfcihyqRWXqtekG^ z4)@>4ME^>8(wTOP{IDwrtVJzaAKdzgz7daJ@_c;oq23oJpnjS34EgZJN9nE#mY2D< zpbUuG^eZkXhSXLk>2B%YcrUw>|KjX%gCW@~Y!$@(Ku_?av;0P5(91me`_-l=*>&5Z zSBgY_W#8H*SAXZ&D3ThO^VnQ`;5dV_QbLn>AZ*cW(5D^l9lnrbb?4E*AOO_dLkm_9 z*!9``Y)UI7B(2lbhCIafm*tyEa2fd<4XeH_8$G}HvV7BhL{%$(g1lf0jBA}iZ_8VY zho67pANWXl zNK?6tEn&Mi-`&x5d%w4e>hmS~>sLNqdv2C|=c_GaZQ9cBgVj!Y-WnX^n=ATIJA_}8 zHzXd~T>D7CSO*tE0+_xpCZLXJnGlluFM#^yq6g{if%_QoYw?DdpTWKX-%iD>w^(R` zKaiHmBaieLErwqCgIEsplVPQ;c5Q`mt1ag8?@HT%^dmy!<2}Oj^)_eV``X`Xae>j- zp>XKTR5izg!$-?LMYa{CO0`a0y;TOW4&oy#a89T_-{?%&ERH*G^x$H1Zb$N=!c23G zIsJ&Jt~cRlMhyAqv(0I1ued%bLaje8x2nl|?XKy8zh zz-e*tnjExyB|oEBW6?S*YJhmoCZJZr@)ivM>Y%q3QySkL1~!>xz&~rz%@N3|RN36| zC#7A9{qvH9eK6))^!Hb6Fztiz_M%&D-+=Y_%lG>=e*`)H9>;N&ew4tNzigNJdWo^G zwCPscQg~kM#9c|dPE3%sXZi0*>GsmLpPWDO_v9b)jjXkKYc40glm9BT|7GhF%jHzC z7KMJdj})Xl^7~XVd4RbVZF^~_cE0WARoxEHVXzh*n!Y_{{aMc}DCP9lyj8Gc^Oq{q zO#X#g-H7tx)$M0x?CVo|_&4j#FYfrhe6CfD?QdVJ2fi;-aK(i1HKy-tNi}`Fe^gG!d8}(Cr zma=Yduaq;kycAq%yby>>*WImAZ{Yhn;j(TJvl%<)Y$s?f`0L88FiQf`x|=jre{{|AwxIG7r=DWxVET(%`8R>3N99 zJ$H(Df9;h4kJsZ~FUvJA6KSsp%5I9fVwa`81!-PZG$x>SVSQ!o2cmysg2y1sktd}BZv(9Z98uP@2x zn$2CGL}|BVAHM==|A2HqZwpK@UUXF$TG8uYwdP;V6YyRHny>6%Zx>*hj;ICm&^7-w zyl7fAq*XewRX3o)F0hx?vq?E{aLqs4N3gRyaBSMYJ2G(6E=ZOZINlIQV-+c<1&!-6 z0rfJg54|_A-A=d|7r5FRxTG5lVI$4<2DkJ&DDDnIs01>2NF4S-@F>#z-k?WIL0G*& zPWzBwYoxvF{v0HK?#5vL(g1efkYh6be7vER7Nm3TBoWboqk5ruJwM^T(B1Zed-_6a z7;B*?OTz-C!$kT*?i2(|%LIS{=#?4o3%;RZ>xXM0p_kVEmF!<@uY0NRhMpBY1~I{0 zn+Z+rV6H_0puQ^;eqS%#%s$*=XD#}82T(uJd&6)4=Aw0&L7#sxB*Nhjpk8OLMU6!x z_@jc=KfmT6Mf!oYXkR4oeFa2CxXVO=G9UoduQL!N0I1obLV1qq^+f?d?I#))2>^9e zbf#}qv`TdDOyrBwBde>?MKh79rO`}4T^eKB7hS9u<7I!;XFcYFeM|)a)KRhFyr>U) zG4Z8GAo$o;m6-aB*lv4rZ)13i3^|uK=Fq8_K^1Zz0MrwDad%3|UuB|eGLC$Xic8WX zPx8humBviZ#Ko@19@(d2>&9?MR}?#JIh%e}7Fws35$=!?8J!VbmJ!>Z5x0>+;mb^v z%}mzMOm)ai=}!;UPqK3mfM7GS(8;g;GK=)HN*uCi(OG3>S#L5k^Tm>CtBHAc(%*?? zRXAifL}xdZWjD@d)uEFfm+_~WB((b_6*gt}M(6aG<+RLZxA$lE{m87v=T7M7PCDdH zN9WG!=L%BLiyOK09YDRTpSR+Ww-%kZQI_|+AN)ehgUscPQF9RnR2Kg1RW}N%oXXLh z3*Dq*`SW+nv|$qz$b9M$k-DJn^bb!Dl`922U6GInc=~I#(f}+njvwjg&!S^R zo5ItKcxjg$OI*sSY4n1Ba5@4^jwh|qw3za;IW`y_8bEy;H=2^gPD|&f4pY%nCMX*M ztGO29IzJKsePuc%K&vv|pT(S1IfsJ`4pgd+mM$}7ksxO{)=@dsT+!#x5^qp>311qw z2?fm6oCvp}7uTs3WR{nq{EKYBnrU*&mKLp#Vwu#Z}Z&N?z2I{A+<+On)!v1Sb=bqSY8ZY=xd$ z1tB1>oX8RYLG(JZ)qyMnfcW@2W2cWaIrt?l#L`2Qs1}FafrgWh*(ShNv-;x$`Fur& z6Lk{sbUN#|7>qfomM#Yif859$z+y+>0({tv&I*>WxsUc!4M23T>JLm$#x@+2hiC50 zj>&XZ&FVsn*oI$za8VN!Kgd3eHoXrh_XP?wTpr-*WB3-gSk^!~bXY5I3OsHAJe|s3 zW|-%%PSqqK>p)LJyjaJI<;`pjAjVVK2$&X!WCyDbwwQO26$W^^*1o@o$68f@rw9MR z=|3`CV#@(e=hQ;*RMe=_SOydEBuF zgipa3+MP-(cwFr^QMd{MYWzAH!*O*;{!jNGp$?N_ z%JlMI4xOQ+U2Yse1&D~)%zYGq)HLZ4tN?$gJq<0aO20FK1ERsk)CR6jf4%xTrEZ%{F8)%oR7F&O*@bRd`Y5dwI4rSniPd8l}YoYNVz zoJa9U9A#)?XaLaj;q!Tbo_9N=?MK;8<1if>;6KjyWe57kn;@K{G#IuiO=}op%ns3F zhvRpkxmNq>{|?QGMeswTP!}|=8f8CawZornLB%ZmU)L=vhz2Lm4EjNy@A28R4e^=qxDIy}N0 z47r5NVIdVsAa+T(Qd1Q$Sjkg zax$t8J9I8+{E_i6oXAC>e_CWXU_^0{S3yIXB-&4OwE|@bjzwAgq2!P+>HZ^tk7rT8 z1qKa0gJZ@_Ccojh2?R{B2KU?ZvodW!%`oI=!X~^(RV-&UB317!l_z?fhb^?mfA}G# zFmrvJz%mN^ypSth%_>KnFJE92w|w`#?7fZ^{F}tw+Gu&^lZE^IeNKRi<7Pis4V;KU zl@pPtaoqgWJ-jZ9ki`kGRSu?fzckJt2Cqe`S^tuQIuT~dNw5fP-lznkU-ElJB^3HQ zcdU78X>rQ?P#!?yswRsQ=izm@dYLVxDSw|W9b!hIR~n%a`S7E7s8_<|F|JVsO06EQ zZk-{SPovHO<6s?*jVE|Wu4Cv&*?Y_W?4mH zS;~s#DC7&!xn4SfX~E~<+>IJ=kbkg2h33hp`07rVz>?WYo5uy zwvvX!T<@4yCjORq2PIT*96k?CazVqX(BsC4zpfP_`BBOctinUiV}HtksL+ibY9|J# z$a3ayK+On&b$r@civ}IzJ=I<&672Oxt7~U1YFafP>V7>QTCBQ=uzINGCn4GHY;}@2 zbv=$hQT=)svJsJdU16K2=6?}(7G6yTeE%L}z($u!GfF~4Oj4v91XQF{Lywq zvSoyTso|7x+4Esv@n&dmPJ!bsLyuED&h~S&yhDHUQOeZ;X2+(I^||<(Ot=E+nJu*p z!+VdXW0xI=m{f2s7n+1VEk<3%skgo5rL{)GW72~M$+m4vtcEk6A%f@$e4?uQd>5Y; zL+C$~rfds%6%RQqfLc@l2tM+1n$-gs z53x@Eyn17E zB3MkD=1PPbz}KKxEpgZHMq*o55=gw@6vILgg*l4b!aGspAH3u(^d6_~o*%x~t;HX} zV8_54!WqwL?#o^8pG_r$9wX~xLQYH(x8TP&8w>9znubk0R$9l zjwBcK#*|xt(0v6#e4>TFi*p-2gonj-mLt9)KLA64lP9oBo5^jBqt3^k?Hr%)GOm1F zq+nnL%?oG^c*~%R+>IgU+BaM%iM~KWrBfY9gyNw47625V@2yq>%UDrq=>O|7AZFXd zU%gTFj_}N5r#_iS9!M=Y$?lhbF9SLslV3whQY>-=(qqpK+g|dtY+?H7`Kyy;j0DD` zUGR%>MvI~mMjvwD%XLZXRse=M1U;5Shf_~?U4MD0ka<1n7eD1HRVzTpt0f2?KRye# zGKu^;v)BG<_~Qfj#Kn&fn(6kL7=uDKei6JunzW#MMw*rN;$VfCOUSGb+>g$>NYg{* zZ~G^HhH<$lP^W#rDUUZx6+K4?y7P44CCyYQRE7cxqvml@EK#D|dMnG+rWcr;hhSow>xTsvi<@6#v^O9?XnKgoIJ? zs#c6u{(>unJ>mFD$_0m>kkL|69$T(O;e#p{GgMd11G!1#3*Y32WhYA zn_}(ExT^7uD|Ras`RUIN9kzV7U^!I!a5a&8Rc}p1bgx;5MZj_9jppa0UCYOKQbPuA zXd6a(#pN%O^D-vm39vc0t_92OY~{>+9R<$!cLgNw?~1H&&{L4ESjyNtqi(=p=L$(P zM6?`ldo0~~f3#qAi?|j&dA{$}N8?nW;sHXoj#{jnN&<+Dov$5zi|Vh5&L|zAPmH8-0nj!QUQ@ zw6ANmU}1@aNpi0<%7c|C2Vlt$`~^}C7H#g=gxp=7vdEDS2GfTO1hKoENq=|uf;y8z zhLoyc-ad=G>4w|=*uqfhN+Ct#fB}%&TW}GZz?`{+n=eB;O_EWEf(gx$QOA`s0(3i! zHa8F#02{hq!gz7rl2bE;aX(x-F(JoF$994Qt|#ro?kjoCeIn@1*$NV}AetgJt@K{Q zkA5c#Bu`NOl0z0Bi-%_rBomx)BL-=)38Z6k_r0sssi;-6F5CC)1CK24*PPK%W@f&S z9ChBQ=BvO9*K)0pmmY%egoPUCdX66Mw>dw)<%0jx6p~Zhalhec@dYpBvahK!1(iz2 zC2txJ^OGn=(BQ^x27>`5h?-H8LYd`l`)x9~9SMjhgrmxS|5;~A-qI}Zt-sv?xE zobXG=T})^3q~P`UmsYI0Ou4?3XHg{&27hQVJ74Omu%5~*3tZ2$d`bHLF*#g=qFJcJ zF=^wtTX|qV!;5`4`6NHiV8IsB<=F?_+OblWK-(n!=(p(j^hue|4fO7+lV}jmPfpF` zv&T4?(f?IwNs9UBBtwPR4JzKPVb`I&cbCr!9inJqb$gInO(hQGk@b;>ZG5{+?emGNDFAB;TD59+A%DkbnUKr8U{`b~*!}x< z`KNLp?VzI;5qSIl9$)% zS3&X@P)~1o{hxrkepAW(51CWKE0+H|p!N!jI|bBkZNC)uO0)hGP!kC5 zvlNf^{|Trc9dtK%ieUZ%>MXCH1%Cncve&P=zkpiM`=Iv^p#Em%eRK+_AN}6VA_8jf zQX-(1Co_{LCjx4DXxJ&B&X=dEB?4-iDS27|P~Vkjg(@&` zC@_jDFv%(~Yb%^FQ#fm3vzK^?_S!!Ed1bRYMJT6c8SxBOv_1?RRSz^2N)2iM#D-Ka0opHpJa_19Eg}g6v${R826`h5CeF zRs(o6pH|A$h|OGl=vCVpGo0hCk{Bfbi&w8qHU&xLJ-j)(J2QxT((N!ADn2!o|MFYg zILpfV7rdWDxraM&2J0HT-&p{QZ+$j$_j7ZVnmt6GJ7tN zL(JvjE5^Y11f!>~t>;lfnc4G!yR7HuLxWLdVK**}Sbq(dOxZVA9&B9sYIyS=F`|6- zdAc|E;IFSy4}O+~aH|1WJVvNuj4#@#Z|HN_-8ZX?anQ|R<9AOdexT9jnK_w>8r4Qi zNi;WqEF``f(OC4j-;}d_i>^1j_dSwaWCiPg)@CL3?{0f-8$AS?Cv3|65c!D=nX=-sSfe&rId+paWNJ6{l|ixVztIcvLK zj5;rM0e4Goo`QG=tDrC|pm{yRSUYc{V(QIWUioNKC!S~eo$Y3ozZcY@^4VD&dG%IX z_lD`WlB5ip?_GJ{>st*>it4nk&@0p*pS45edFAh1!poh-lQmKRXRxx0M0>VEZ`%Yh$I zK4<^q6EUJZs4cPa_XTLYD-0cYJHJP+h z8h!ZT;;*S!qxKThPRau>C%+{Sq9Id{zFgd&^*<+8$zk@i_oJJcGiT)-T21U=LA$#c zKN0Hv>&9%1^X9>_pJ}1<($E2o^At9#@NmsAv`})jU4XuEHL}#8po9m%+42)=c>si86l-L~!Qx>&)T6UO02U9F z>`A3{?f`b%TS4;FX+$jE!ppWDtkRQ2eQB(z${M&tkj}%H1?;v>PS0SSwar#$4J<;L z^Kdg;RkmJ91hBaFSJoO9B_?tDFjLn#7K%(@x4j+VQpU&r#OS8v<^t+vj0G2kMu#HX zV350iDh+t09TR*R9Yox1=d@q0E`BTXmXBYUxZ7q#p~65ChrykRAgAc}+8HAEU7Ph( z;WS~Qi`rZ$O+#R}9rbEa;F&Sg%Q5o^{gw>zASw0x5m9lO3*_RR>OGdypTi10o{7Fi zp~0fj3H?AhIjaL^z8RHBxxILOwX)YK@oMlihEIYK)E8i+kTA-;AhoPpHUgez7)7;7j&xpWxE>ARTM@xT-#1wuNMk;A~|<5q)owA8Abs5EY5U+d;Ja zB`?v(u9ZGW*D zLC=(74aFNx#-&H=4}TURf7(7!vbh&z`MSuS=Fe`M_ce}PB~NZR#Hih5uO$A=x`}ai ze=XN+DVC)nie$LGy{%T#!~|htuj1B&0z0K6@H>mB68D?R zmjbl_`V8#0bqby0x~G<;e^s6Cwza0$bkCKrpPau^VD49^dAD+erpTpTYi1`A*llx) zy^%OHd3xUbV*%Lo;;jxIX2rkywT z8!!GA4Sv@1mFpEra<=x<1yfuIm)+BWlVV=fpxLR1y)Zy(nTD-&s&z%*~3o z5au55GN;{jEuJ#rk$BsoBIkd3O?p07OP(#>^CnWJ$pu{UoYhbssr%}xNj?TU|{ z8+VkBCTD4#lVlnmD-JplAB|4hV0wm(pfo2e7*Y{TGfRmo_zBC)pR6 zc~Zh97ZOFWov51QMF+WqWt(ebi8T{RF<{*lIhvZ8*wdN3~K zRl+SZaK}S4upMIe&DE1NqkbY5|5@n%U|IK;OV^|XwZVPP$)Nq}iP65jikjq&$8?gt zo>sfLStlDV{Qwq^_*F^4v9=M7q#^%%2J2SKg|q(yi~rt<@2_2w=sy5l6{cVSi!&iY z5^q2Fk*!ucf3yE^q~`Ze91)8*xC~_d-Xq((_yy~6G(+e0vy85OE9my|JjIv2`g1pD z;{<)qNfHiDciVIxUx`?}-)mduGI6&}mj37=VZ7nC*P890-S)-)lbyI*zveF?kCq9( zYej_L`~A1JCvSUyzx4i9@2K~pmG>cl#a)nz?cQJ^&p9>euRugu4GBb)nT>oXp+5Z- z-n2sAEMuOGr@QT6&cJ9JOlX%NG4dUZBjX+O70dSGAM>H9bcbPmKeqz~WdMtN-iY^U zMoa09_Ydant@A>`i|M}`*8<(KF!GZKfAlvNgdWIk*OR%qGu)k5Tk5GV1 zd@vDT#*4PbQNmRUbaPUenW(<|GkBWez5+p;&uz_Cjp!E0z)d}yE%>iSDmlO(EUKeP+L;zEIqE@6K0 zAducw5S(NnIIIvIK2aGyH5NXzA3n)TQ5kaKt5oHdT*_!Cjqh~RP!Cw0BNBp$_|5JlW=quySCg)Bj1yuz!fb7B&)0hBrM6Iqd+{BII-QmV6}OmYA${=+rr{b5d0HGi^O zZWdc^`e824Bs2doC&c7@xO83t8xf0_gyaEFNc;*l^=#hzwOjy;N89AKtYza5d7G;9 z6KwK3qzhi;<`39pmxl;|aJi!)*@K$EZaZ^iq98F*z`qkj#NyS3>l1~WYlZe~g*%j4 znp=fLEIyIX=tQ{>VDYZPZRsNLh0LFaMdY?c&A4pwk^+iJ+}vB&ls`Tyy!DM!p{9Z$U12Tr@s;UEwY&;Mcj4_LUj3wxCn6u;uvhxZ zRC2RZcukgzgDZkUi;!BC5l5Agww0mX72-P;(MN^hR8@&JRn`}(;_^OHnsR#{Rc$0z zVce^;^U6}Rs#k4j%i+8s-PNF^>N3-s+zU0|CMwzcXeAHm%clN zra0C1K>aoxWQ+#AKdSj^+K_EppDsgPR8ztTC<1sW9g?zSiv)5E3fm$nHHSrOHSBc* z5QvsFi56#0L4zsX*Q%cS#@R0pqS+z=QpZF;09%NfZ3qKV0&)POIj!halh|>SI7joP z9(>a`nj7mhZw8=>#2e*A`9NPD4>|@Zo3+plK+kDG_03yUd!YJTE&2n^*5YJ&Qk@0{GsFfa?Gpfr#S{O`tSo3eg{c&2M!?=F^3GkXs`<^z}NFjzPDNPb~p? zXdr@?hJ)huR9E3t)1emUKlk>}d)lg}+5kcyh9EZI~2mm ztwB`#{}csq-4pq3L{UJm7!U=lW?_@H-PFLM9uNhv5Fmko$?tjZfoC>r$d~Q8(gQ-# zQ#m91-VOBs4(mNyhc)#yv0~WSYyWQTQ3%S#+Fsp(?l8a)n1$?#Hn)ma&LGKk^E(dp zs5Q}KW5)yhy=_rQh_znvFEqGSZ&0ik1kmgSJ?bz5dhmzGr;F>bC^T7I5AAntygbd& zKp1gjpKMOfn+#3OW3@2*SBji~D-f&ezKW&fqbF|cBh5ca_BKUgDW5(VvGg3VP9CwT z8?l=nd8z{iYz4p)Kp}?T6tod70pth{NjZ-g72ALjEdkuf8$C#-2VKC%NZ9mPM8U{U z*&b&E6c7azZjxE)0Xun+=D>JL0VG$C`Wv$67N#Q{4q_4qg^EZ@nEh2mz1b@8A**^$WPsjdej%Lwvt1dZ)ULnLm}xfisK2ERd! z0J;E^{4^b*mjdtw{Ba}ofGGVWyevKAJ3aj!^R2PgG`{s+nY3Z^xA-Z`!_V15-pVtO-Izga$@}| z#)~ovIH`#J3QWA=1FM-c%YZtN8Zk18B-2Mw&?Zx)h?CC4At1BQUwc=o3n{%f1{vvR zJYh!uFC#Mux;tp_avg0#{j#h4=Wz7M@#gny-fJj%s62Z5sV6P`_(#$vL>4nreoUI2 z0@Xw>7$N9Fw|2XFx9KhdwR1`j^a?}3^9rAM@)x4?i&@Y;*Xd2?^34-~o85Mn-m z^TnR6C(t~fA?MmoOj)zWe$O5F;nBYe$1j@xaJhYGtJJI+-CfVEbr`(9PO=At@k{^AS5cKEy(Ws5(b-rw z%V{)7NxyVqEU!bn@|%4SiuX+dPU?8)NF7DtWmKG2PA>9{0`AW;D}Vl+CPKZ8(U{^) z1OL=^x+=?Kx~5*>hA_jn;uNhW>IP2Zj3QUCjk-n@`zmH2H^~usm5b$ZIgnFfxbd>b z976M}BP_eaC*`?06r6OI@Csf7BrVCW0ct^)tcu$v$+Z#wzMdpSh(#;|(8mv_3pIaw z?MCqmvyN(v9-2;o1;tyVSv7H06t-zZ7pliehQl%<)p;UFkfuWt1~&R{j4hL1?-^Tv z2(M5O5bE8sSFMuAZ}`|~eXkMUvN_k1YI@9pDR zOdJE{9nBn7+deArblgdpRIaYPBd{*-a$x-03*oP`8%=Vwap&NEa%U@05B- z;&@}V>c^T19~#jC zZ~HkazKVNBWM-|g4w=&QUY`gh#jtLrK;t%`GUCf|1C}k&05}L3rqrwO?oI?mZrRQQWv2QM3j?vz)if8 z(w%A}chZwvbW~ic26aX(NN?F?a~kN8yEomCMYkxIV%4%a>kf!Qt;Ebfp1^EMMerCu~AvKxx2lSRDGy?g=M=#Z}J|O0p15bfWI# z-IQ>$W=uL~+H8cZI9ijOBmNU~!*glNf;kLiQP%Hlvxew=*spVCG%)>Mk0Qy?Sh zl%1j;fqbbHCoMRZ<6CI#Tj}S~Upo}zTIJv6Plo7e^o#g(Xc5S_BRWx`dhj)fwu9)a z9MN%DPgYa`NRiaW@tOGOXlL=UFDEE8o6+C6SY&AlJ&YN<)AG2PqyBUF7Z0n|h^nZM zP?fMWbb?&RUZ34eM$#8dFjbdJ8{d|A3g@)hP95VpmHkqBHgO*k(Cnwciz-<+PoC=q znVjynbsnrS0R@G3Eo5h%5Po;sO-4#HUl-VW+L|p(kK8VPx*Lci)Ba{M)+~121m(H@ zI64iY6rU*&iVR?a|J`lh1O*%JaPqPEN|Kw~BR;#e&YgG8?%w{4HMvr=NZf6QuXBsX zMBS1175d`&LUEG*%k1y7^edVgJk*a#kInLVmv}gbLuTHCyT! zS?+tGLrKCf`%XpO=Z&Y=k7T;|X8AG2wzqP2RB9&;=|YOACsKL>LyBv}-FA^7m2X?ptvMU}mzu<u!y5)?^& ze1WIZZ$|CW(b*X=BiJqU7KPK%S0H?KzG3H~S}L?m(EI3<39YEn%@k~8!O=zo{h1#m zFyCxh(bWR~BPx8J6v@x8LWosgYbN=l8WO9qTk}t@KYmL^hLI=L2;ecVcWDYpPVn*g zAU~Ppqvlj(Gk*n+kfoDt3>X87mw1~&{MI;fU8(WY9TKP66k&4(Bb$I*dA=+$3M4&# zx!-PWhxqc0k)7FU9KI01)ZxPe@?HB{ETm4tEDz^T$8&>x*;~l|VsVdb3Uwb5y&#bu zSwtm?htUUKYqCpr&4e3vDHPCrK2ar-yME03SF<~nZcZu5^(gV{H8YCKNdJ&Iv+pCe z-z>haq+-^>WAuR|I7OkXfe{h(AX{0hR$048S!XIhj=n)XzlNJ0sl%aS(4%Z6gubn< za?eb~&`#yPhl){{iZMpTBwxj}R>iDG<$+xk&5FvSV-<61)yEvF7NV+8WL2MPt3ESR zwX{>U@=&!7Q+aec*;#d_yt>(y~<|L~2QdaGiw%ThmwKsNZ z&K_zmVQQ|-?Q+>_?zL(jJ!+m)YF_JV-p6W4YIPqDbzf0+KUsBuZS?>%^*}rIpdamb zgVj+O^^kn^&{}muSPw8$Qjb_yk33dKQ)|5C(1;S%h?doe(bkAH(|Bj65$B;1AEuFj z(MZhKNUGJq^k^hcX{4-cyg$~!QfsDiXr_s3emGWVRM*Tf)6BHf%<|C84%5uRXy)c? z=GAKE_h=SOX%?<)79DHisI`h?G`(giSS7W}w6)63v?}bhK6+?XhG|t{w5s#9YHGD= zd$j7NwCdNj8jiK_PrFM*yYZsh&9d4p+S;vV+HH2)?F(8>J)lmEc2~Z3cdd3$k9O~r zcHg>o|FQM}wazCFok3BZ&$2p0+B(B#z1=ZB9Zz+}!gR(lIurRileIciJvyH~bf(vJ zz8ve!QtMuws&i$B)>a{P8G;$;bZTQS2p- z3jXmZdMa!lpL!IcrH&27ryfOO_8*TTdA#&8SH_d>l-@VuHY1fUzt|r~SA741PcR8g zG66ga33fl)zFOC<&-X(CkK*RzucLjXwwLT>+lM64Pl_xsjma^wH&fPAx zzOxXm2Y3|dw*0Jx*azD`=3~r=9tGQy3-`OHn?wDPfJd>EsMutF&+l2=^Uq2;CC`_W zU80NxFiv~p14^b#!hlDyGfVMU`Y{W>F6@8({^3A=cGQjB1r&R9xWU zZJ5s+o3)%9T#4D)aqng+a&c`0%CG5pCDki@x?O-r!M({EQ4q(~^bOZyk-b)g7ZGV> zYrUbBeKPiC+D^?Sod$$(N6gPe9bz6$iEY6UQZw6(%4rkX<`j)sMuWz8tT#<0-*<9>rQ5kn5js z5sbI|&MluS;AfQ=G9_7?@P5>B)sAZuFt>zhex5V zoyHi~(Q;mT8>JUE&t&Z4!>~ku`Nm2rT?R2P0QB#vKd`j#D~UKY2i(VKQ9n~}yHULz zjtKk8o)g@B&Fxu`iJc$EFCZ^)_%_lh9!sNc-ClU@Vx+frI?%sY7a(`?vJy?dKhn{r zO6=cHedVjVucomCi45*Z7gE#E6n2Pm_xrJ6NXyz~P`wk2qn;OjaZcmjl7CceScaH0 zs?)gQwqHeACvBBH(7$JTP^+DJg-JN*3ES1!#<>wJ317lTjZzw%p3ebVT6lfIHN@JdiAla+AWbz=8Dh%-$(XI01Z zJU`|n#tL-yf5{7Et4efzig0*^?F*9!Q&*$G{5+{fsEZEA6jrPvTomlX3P>M4zw|^8#L%BFb(24pr~8$o9QJ6Y~Pz&K<_D z9mOAWJQ0vN=rYQ@98+onqSRu{yVq9|-)=X5QEiq?)leWRT6^h64J)CE|6Pfo0{fE0 zJg%8HPmsZNM z$sVj|1IMUOJ&N8nLw2{%A2!P{8!UZB?bSntz%gp)-fs_=*+we3Ud7#9T{d@S8?FCy zjQSzzQQ`ke&85& zgk#_>ATMxELQoR8`2JNUD4%e#s_XjZHX86K>bVZO?m28-FmPXzd?D52-1qWcH^(yn z3kO&b)sNV3wab7^aK+zW@x`t2^gS}wc!FFn=_>12kBH(%4! zO_M()RF453g;MnNHyGk@7n`yd&fUav>QMm4sE@2;k z3dx$ouU6B4c@)ca+xnNBT0iL?gngOb&Awf?cEA5{$WLy~F$g}b6}kQSw z-kw-Oy+`Bs-z4?7PV)jTmu~eX5M-B=W&w`^$P4s)GvT;@gIJIqqp%aeqlowHFZCp^ zM4tTe2JZtmsNEnPNM>vB@;TY4`#x+d-V8uqAlr?p(uYjlJCo0XSKWtp-v`JG1fBC0 z?C^$KOE>@YrHUsWqm~?V7E|{-xDU!g`jDBEDoXk*10IEozmm0|RHeV<7)%|=3s{r# zS4s?>4KNJ$*X-~&+4s?P33zBtdbv`f`Deh>_yALvK)SJjrz`<-*3wZQ10T6STg3l* z6fVFq>OXmb{h)t(6n@!(h+uy*wB=nR&?UlFFdFbEfc`xT%E|gPFHnj4<59dEgT+dQ zq(f1USFZNm56P7biG!Yc6fB`7DAr&3=5~I*MqYyH4 z+7KoCc9+lw^{@e!@IlFNH|wxo$q+`k^I}xUXm&`y`l&|&4ILQ^j|MD|%4=C@&=PRT zek)>&CG!6|Moln^*npxs<8SmBq4R}KJ&FS~{pm64Ep;^I0eHOf+LX)NXcs8+!CN?M z6t7ei&-1sGs0g{z2o7Tum&V`zz1Z_8GFSAKX!HewFzTZ4-~Ro+dNf(WTY+X!M0~U~ zEJhRP-ycLNjzJ?6Wj zJ=qq~qi~Xndu1GF45D^P_>a7RuT;FhaeSa_Jh6X|ici*y1M&i|SYsE#AVv@|FF=Nf z3;p;0Jt{67m5?bM*R?NZ?wXj-8kZ=Q_}8O=C1s2!W_E%mT!bA^N%;qf<$y;ag=x`9 z`na0(PMBm>@?s1M(_oAlIQ1y}TrqvC@i36<=PT4OL~-2i^{9G`6Ml}T?2Hrh0v;OgkBmX%Rmsy**oXwOLL8PF$O{}| z>Df|&{ynov>RGqczaGUzD!T}lG%*EVk^+^Eqg?yzQHV~Yi5;d$kUSJYOl?T~pBYG6g zh%8YHS|-4wFfBS+Eup+&c~&Nrh!id;DLC@xgGeEaxwtz1@-Qs1_cm8#P3 zs1lu29?)I6(^c_wry@qCID)+jGg&1mQw6kM-ShZ8*{d0As#21wb1#%&ld6Ui`9o~0 zvucPQ1>aXW{s>oRTlArZ@4IwuJ$r3eO)W`iP0UfXXj&z;c-@d` z9pF)nCDl!s)hjk7B{Je#yOlC8>U`rha|0e)Fh)>s!4huI`6v!(LvE z47lu9O~Y|_-S$xfhyxFn#Y4>S&-vXv5RD@XlCBDLvhJ4mvQJ3^vesB-6-x>QP+5G_viVqO8r7XU2VgM$n>ih$(kKu$pysHn_EJA8Ve9)vJT zeRR7ulEMl>zB*9kB-?Cs+;&vcI{OblBgCAX+MG7stSj@>&#=XirNBwzdq9q6om(}O zt7zI^@=zRt+?u{68xQq92G#dKv+*6)^qp3CS}?k&D<9&aT_1v^OvXaG@_VW{I<3Wf z>ejn`WP7;bRIS=je^6_Qc4ORe*IsDz@IML;#^PO>9Q~Q=kYqR&;AZ59br#F^ttHWh zBPnV)$i_LyxY6z51GHcu46y}`g2Q%>2hv4Bz$@8#TMBLjc?#&$P7lZ#4vU1-YU)vM zW4i(O#j6L(E#G=PGK*4!hi}w|hXYZ$E@Nnb6#T30$lX6s5&^PNpEp zxp9<>wiGHr6+<4HV_)xPKe6LM5hPAkeX#||H?-;ly;OF4ibh>E#wV*d3*`SPd3xkw@!ayM8u7Hd?Lyi<}e_Xf$0Si zWehagydE_zEreKbK(qcWH~=aUP^~}%st*{r7yq~8z|h2yGDJNKjO-z7xOVw`Xh?X= z$;lUO4?5c4?O}S5#c#9k1{QFDkAdi)OKNwPUwURwYm8j_ItdLEr;0?Am12j1I~_&{ za?Z^L9x&5)T6fE;n8e=j0{ zRw2dXsEDDZfq7>%SstPni|ue3fMw_mo6t7rAt~fR9o#rtV{{wy&3ctBk|@13#6_4e zl47=o5)d$+TwK?%hjr@Kmmnz{9cY1cNEDp*Id#we%_(o)VaBaiZaBypJKqyAlqC)V zuE{GQNx$fvBL!}@gCIf(uqzfk3!?4cqOO5`Sxgy92ecvtg(Zke2{V#B3p=*&Dvf9i z7jFS15TFo%67RA;AvqU8Zaec`YXjouv96D&W%C}2(i`|nMI|gwRcOBkx}h|5kz?t}lIf{n zFKDT5H~Q;AygA6e(XVSJL-X)Z(v+nT^tSdb>J)jXK7Mw_mLd!elJTZ+k*yEGL!bN} zL17^-VpRV4xmfL8x&jCtj@ARQ*Nnpeu7%noTIEyMBF%xR+q1f89I8Dp(pNTFSb!NEGC|P zWMEDyxS9WqQu9i4!aa)X4hv(SzP9^0_Js2rJ1qeB5_k)rjynk;y)P3sSS~9p>0qQ@ z&j^8AGIg=i8ddxzL)psLxJ$(0QX~s^ve|U5H~B(zE^ASTTcWN!`&vc!jgeEJ#$Ygr zmm)giqWh3p7PJ42vj^g-_RXwdkuIC3B5RNEqsoc=cCeU?8kFrc(Y4U)kfeB}QOvWm z=v~hE!r{5br(iXmd*SCFO#FC0l=J=GFe6$v1*6;$*EMHbQ5muBvg|4S9>_IMx(p z$fpQ#QEsf^XC=`oRoP42f?tzzp9``=HQYa1{3_4B>HTv(*Q zJF$phM!?GuO2h40rZc?R&SaP7B6=CC5+$tQdIAiYUTP^dOxLrO0O&O4PtVAe85(i$ zmrxsXl)k7pfWjvGBpHn4X6+eBd*8}Drq^7#Jymp@w3_E7M$a#qP7W!MSNFF5OxC~K z87R9obFG{V#{rm^KZ6JO;}d@&h>*;WJF*%a3(RAdo^!0Y;Q7zvG+b?sdUrL{_oi;Y zeM+ecqQhK^Wx*+fWYdDH{AGOw$7e7^L!@e*qs z!)&|Y7zc@{h5T>bG{h~(+Y9e~_UAZ?u4%deH&77djy>kDcb<$5zS;>RIYx36;F95b zTco`{k$Tiai2`VIf~zI54&Q2j9y3aWR(Fm+!av*-StTsTU=9Rv9&J z(Y|*rEjk2#Bg|2cQE6YkA1nyv2PuHAb|@8ebcnA#$YgenCy_G%1O$!C=jUtqx);*L zBmyj;9u`<8!|R!h%uzlb$Vr-w4*cWzIb)xztrVh`+!~fWK0uBhW&rYMg)!Qu@+U~K z_yj!b?6#za_<*>!8n2aHaS@PL;`?E#EXVA}V7_CVIG@$+&*P{ks7`X$DP5s|Sn)rO zQ4if!<1^R_P{BN-qg(nKc;bBA2uOAtOg)OKG(0Ld|NH5 z5^Q>V+4Aln(k}`+x%xzF!=VYxhuJc~ECC)xL4Y6|2}G-WjXKOo@HX(Zs{0E80C;kg6oXmF_$2TGN z8MY5zPn6Nke%4VOI484Vq8szh3OF_e*792%Y;f3RW;c3@T1Wd{F}p@6j?S=?4bq2m z_|sGI?JGPhm(twJ{y@iy4zXE(n~&6Cdi-WsdJ)F zYY$9y)))B}4Epx$h5IxyFL1wpH?~L`vqgHmB+&p?_o27jeq=hvLz&w_>IvipAcBBL zVTthLJf1yFCdD&liU%~%7qZJ5HM4KtYf zQ){vFa0%ioxgP6`xu`H}(d3J7qOSF@yq1+vmo=6jWACAQHSeIYuIpahV(mN)2cl^P z?@KT1XeCc^*c$!vWq{+hk1$exfNJxyWtwERN~jS`xUwZhO)pSc*#u|`;N*~c)|3sT z&~LLpd`d;tF=)l%Jj>U4zarnkJEf2OK zkb{a_#EG5td$!>#s5j*w9@Oya8R0c?K>z;49uZ_Z-1)HLA|h2?KE!l7&*4W|PMw2G zsT-Jg@CH4bUZ@Muzds7RQ8n#BE92pOUtm^(P&v&RW58@Sl?CK05ax3Xm=B|rK>z;2 z<_o1D3vGRnBEunqG}QEHR)*5`BU37h&VyuLl107~=-(r3c`2{Ys4z&1`IBp#gFwiG z(#e|}DN6s3vAYaw@^AeAzYPYXLplc{B_%4-(jB84F+o5j4B9ao0g-M25s(s)k{lsj z(p}Oe2qL}TInYmB*Y*D%|C`)_~03Hp%=^zYG`>V7<;zWf?+ z3iX?NJ0CAtPGTjFf`dqDr56%E6sSfwDAW#VUbFH#P>kXN2Ow2HP5jpPI7 zO^@*{(h6y!Q^Tssjy51f)p=rgxL1sfVe%s~v&`C#K*)mn!l|6m$f?UMGYg-%m(SRf ztnY#^#O=Jh_2L61X8M#oY4_7m_269XA*&>M?Ru@>UU;qBgpmXVlJbjh5eDHqzH~b1 zg9+GD^-gK46NBCq^4fWo&xL{P6UmG;G$r@g&JnSKq#T`T{Znzjo8LPARN%*}Tjj8xxQxP&19Jd*fzEopt?bcvl5iPs$v`=FNl|_#S?%Sz z`;C5cuKof*Ucg*Nw>OOfDFYhM!!U|A(#^|>=E*p@ATOAS@U!FV#>q>sHy$v8YFE*O zi2&393-8KPM9C{Cp!sD`PM`eD0#Rh5-imom!unvd9J#DlD0VuK`hd(Fk>Z>lJ|CjY ziKyY-g)>Lt8zQ-k!$FSA5G7n^cjhQc5-!X%DJ#?f@akcQ;%%npjta1KprXjN5@ra^ z9l%jkf6=EyNq8uj?O3j_R4br zF+rnViz_qQLBp;pyZ{^pZm{HXkjeTNOnNcfeyk^-ivDk90+IDlaMu7+xm@!}Y6Vy_ zJPv{}Z~g5k%qt23X~K*M7y?oV#{s(B0gUK?MP8KQmP*{b3ZWZlOV>L>QZ>m#;<^er z>>bm&qj<}NGUG*2at8peAraxtx(wk6EYPD=`w*q3RPml^ADp4DmQVEs>rVF190ikl zG2l*M8Tn0ZfIBG$90ilQwaWXF|LG`*HR_o(8vZznq!AF-QFv&yhG_iXj-rPNa^@&B zhwL?nJ^s^COipM{{c#kS$#tALKCN$mISPBNC67OjB2R0r`fo?ErU3;U#nv^PAAH(7 zlG?i(+CR;;_w2QQd1&v4XdfhLALeNvRcjx2YM)GKpRQ|PCD#U?1GjgzA^Zp&DFm)2 z0vIX7d(?YCg@8e|@skmR`3RyK1aTLFFcd+$fgn3Ukdx?8FzZnA>s*l1q0-c$w$Pz@ zq(kee1G@yKPu5|`*I}&DVd~Ohp44I4&|y8%fs^R6G3&DP>t2-7<lXbO-e@qri>|1j z-i`Zu;`w?KHF}a=dQy{m(i?ih&-z74^yyncH~IDDrSugv^%X4!6uOWyp?Y%n^;MIB zZ&qKuW)4({?z$DqgG~d9i z#=x9^P}5UiyUXC#iGdY~;caHaJN$-srG`u<4P+G!A3QR&_B6B!HGG(CsJUQZTVrV7 zW%y{)@G*(ueZRiPBu0+RMo#=jHYbK$8wSo6M$aD^z3?>Bf$EDH7`fydxz`wZJQ{lP ze%NEf=p}Gi^JviXnI4MY*hk9PSJT+f!r1?jae$|BV5o6WvT<;}u^n()5z=KGI%ymh zYRtW198O~LhS?;7-y~AXBudld&53dJBa>K9lekcm_+*m=DdU)YlcX+_ewJ~9ndG|dV%{g7;$BQ=&&W181xn!hpf&yI-}Fz@ja z4Et|?Q>aiEKz_8*m-#OJzvn$vBU&sK%}0A^8)Jp;p8FeLQWJ>8^Wv=Yc@MX~9{w0| ziz)N7jtP--!Mb0_`Md`SLjz-9!1=sKp6my5uE!P~W%*{gJauK)upN^G8`e#aGk-%D z>UB2n(Fn|YC^iH09xd38iN@#Rg^oC&W77Hg(^7#C8PGAg@m--OTQAqLtFqK?(D4l= zr)E`IS9O6)^;B0?`S#aG-`JNCaK14};Nj9bq5HO&?6UZQD@?!p`qEoybm~G1&@r)zlLTGhN)3sbQM(qP z#JiFq+pxm*4jE&`^&aS$JPgs_3-}Oy$^KyFLpDPKcl^84cxc9lW?`^a1f<9f76i6b!Yv8R$z+`&R$&+_#_E`KQ4MgCDKubKn6 zY&<6SQTjCMXqJe2-LbQ3tNHTx^LdZ`MWADHytjt+H|tLXS8~*E<6f({{KwxY^KD-N zH{EuqpyiPK?QfWr``f<2Yr~5g;Aj5Er;~t(!zi$@nSc1q-&|IPT)E6GKyqz~Z?{*$ zr}{OC6qk)~FE=f=V}hfhjw{4Pa*L8$h#Bi|qy+hiw(Nhp+{CGQJ#3S;agCoAE>-5D zo|wM}bWAjeNc8J0n1^KgF%HiGf787^No1V%>nWuIqJECL#IXtMZw}_8j2<5>#90>{ zEGC`#n}Aa>e(Dm>eMio#Qx#Z$bGTO6B5<@G9%(5%l{M~Px*FEMdGsBPFL?aDj5fvn zQBZE};a2C3@5eix1Ue=!0Dm(RAb7ezAN%AKJMSTVST=2W{b#_2 z*U91Uc@N+o{Yd!}$zy-jlpka0-}4?b;PD$$ps6ozJ9??OTq^a1yoH|BGtEa#Dzq24 zpE%-{q{5U{8YqLwd?a1h3d%F;VKaxs%D z6DbJ5`kT+c8mUMf`S_pC0v!`Y`qM3lpi8>3Wg+MyOHnZ3Z=f$>3T(F9oSYR%T6u23 z-xMM5J)NVEr&Q#r1v(}ftn@{q%9#$^5G3(E_&9kecHSfK%-^&siT`*Lj_sJJwy6RB zCVCQq7(2puIfhq z!mo;w+E^bFsF?lu5!VX%n-?n`n$Lyfu7EFHdG)!|))eqJzW1&|>A?gt7dSs9Ekei0 zQBHurS=PuBA8zY@Ub&OJ6_O>n1o)e=os^#w58$*24Dw0sJk*?gNpxGa7sar9KJQ_x z<>}NH0^~ACXy6DZVeGsI;BSI;0wBeS6q+y`c6hJ1)A_uI_Ucz6hqSkBQYsLL>DTD9 zc@G{*GdFMR<|z0D{tt@JupN`=caqQ*ZG7QAsOZlR2+vi-Yqh}~)4`OZKwJG=l>^?L z`ngugs|GD<5&RL(ReqV-i;&A9Q&@mCow=?}* zIq>m^K@L(g@6J`;k&=Sz>5ruH^kyqZ+D%2?M%1in|Kv4kvfTTW8ftyFo&g-^e+^8r zyne5=er%|6uk>u*Lw)?LV^YzT|M*46_|#!c`8#MX0i2*%l@ll5C9Hx1C!e1+bsopUr* zaaEkpSHW8h9WeC@lDe*eY`>Xd)_0yP2Lg|e3t-0F#W5| zxVt!}JZXU&&?lTTsJIr5Md3(S60pkIyoX5D0jA3#>{HS|J0?liVsQsOcLkhSUlT9O zy`t~(_|q`~{EgP9wPqwub!U+h}ZazE@(UEIyMDzzxs^9FpIvo!t&^QvLh z;b0-&&ujyJ8-5lsNCnp4)YuueVCOx`3TOH7Eg9X1W4!Kw!@BG(j@(9i!^%peEY=?| zj^j3pUd+j##O_uA9g|S*#i=dVh~fN{mRHxImVpv zxzCuP8?D%R55V8>(H>M13C&DQGA{50oOevVn=dZJ>=Op)I3_JkVEs*BtffP$b0Xt1 zo)v`DYWLk)$3(m{x%*MVc-5-maOFsg)^mU7$uT*6_}BU{yXe@H4Pf4*u4l^raW9>h zp0zvf&`iMp@HfBbJwmhGKh=<;6Md4uhyU)FxS#H%ey^I3f8=A|_+-Pa#bX)pH`tCz zF6&8=re+OpoXmIkfSS!0Jx5dDE%#b7kGB!8+y{?N_gl4Ve-M#*+>K3fYjlyN%+x+v z1v(}}H%@<)_nd52S(1*By~ON4d?`*4Cj(H%+P#_{z~8*xp3$y5_Ip`zu>*6eYK%Gh z)q^>0Va3e;^2l-~?88T{03o|rBw>Xo#u_=K?DgcX7ipjutO7~n;$1n6yrAN_dqYII znFLOUVi!emsGz8Ua!4F1g$w@@&@pKx5wvo9B9FvJ_=o`h2HP6l1!`vjs)SO15}*}p;o~uqG$eQ+3)>G(5tv>#4`bTaXta$XB`td-%le! z1PJH)hM>RJX z%}1jxO(NA)qwkDHkeKijSmE4_kKub5ed}!A1MoMG=wocfqIpdCb8K+_n)mQ(i*Y*l zH}tVdAnd${$3fK09a1PdE}|_C>1@CZO6;-te{* zpkp%cngVo8%;HmaKEIv$ob-|%d`zD@;|gm+{G(&?U;c)Ai~z!$O5i~FE?Qcce-(md? zFz>PYPBABixt$w+n6cZIf%P{D@5xs)^v6=ZA8<7yKo-1jm2=)daLcsGd1o%3IYpm= zYyjP9&s;Uhd}x~W+%1c$GSlf0LVzH8sY^8eIqO@{nZHR$b>q#tBF=RiV+sN~CV;<* z06Hdz*#TRG|6lVS*$Fv0!8yr@4+V!gk?kNkQ#J=e?7T;8We(6WsU8C!^|1aXZY-zV zG%s>2%L$U*T$vY{klS#W*UOOKC!XH}TvBL2VUJr*hp3WM{EbcrZs3fCF1{)Y6=yvKL(Lc+D2pEevhE=A2_1yp}J zCUCnVCdS-PtE}O!#T9DB0!PI{jGqMUius6u7j!dO%BaHYcDW|-Pts@e9tUclB+P&* zog#R8vf@#W)a4SbqY}hgv4UC2vMtBus*>mgKwg!akC$2=m0B^D-H|9e@0i#mmf2R7 z*^igmNt8;se^P>gR)b3;b4nj4mb+DzdyJQR9hD=iN*&BTDd!duSe2VFRs>g7gp5~& zbyWD6eKH_o9}ljG2rhq}i0zmp9aX&PC?-aJVwEF&X7@Qf_;WJgZ>lQuB+A~p7gHij z2+~V3-9P8MR{`@L2}hM&cBDKK%+Y35uY)Tq&8nN-tDju1e$7z%&aARsy}FgLrca`# z0A0m&8O&nJmK9#u?p`^7^*3hKYP~gKt5wv1N(=vozexo3GS&kA=5;Rac4FNjV_j!1 zJfjNhZ`LI0_RP?D6XpAt(S*cxBkFA9RcLbJI$UgdqyAwcnj)#5z^ax2Rm*T(|HH1H zU9!RERXscpeX_=iac`iPtmimxxM<(NM~o&pW+jtsBu|3&7B)&wG)f;g$}ly_Nj3o; z6D5x(m82%M>L!heCUw3>(Y(6Gt*VUKdYwG9_8fD)0#JnXasV$+pEoq`H<+v@?zU7sDTgF7I9x-bpqCID#HIAvh z;JCezsiSzk{atl?S!c7g2J=IYj_Qf#e8~haa+-tBB{<6{|fJ(Egk7^_1sD~K?43yiiRI9YGr%j@~-LAE~Avfc~3 z5C3}D*+a(PGHTC+Ey|oRr6enY6m&De3_*YcUI>UV7~aFo{FMQd+~(_mXN|-YKLP6? z33bS^NJ&m=K+Y4-gP4dzb3ncemfbs$o!So=CDCNk>&zWYlV2S=>&yNCC7Uy#gzcD| z5G958USTFW(dakGZ&|T|VQCT)-^QUAph>bPAh)goP3A!tB>p-agDZ*9nJm^H;v8AN-e5nwe_@j1rva+$a_GezWPG5vyIafBdZw4Z9x>eIYby zX}JXK*G%!xs_>IO-<&&_O4MFtioLUQlZ%0vlx2yOMM*C#RT^}d*L~E|n2#ItcqJK) zmn$>xGBa5>3Bx)inLjf#|G|`G2^)Kt9&~|XdI@k&z{N6T$ucvP=w+g*nIOw`>c{xj zy)c^1zSmZ3&jrBu(Xe0Svo65A$>#b%7YKre6(VLCwR(BBR#1=E=O53$5?IF*sQU;E z$dOM%5EC&oxLSxg;w>UA&^&;Z2G6k)`p?|V|HMjQ(1_O>;J(yk$f{1j!GQ1Df-OIu zX|mjG)`AVP3|!Nibs>kwAhsF%}FnOK)=A z+FcS@k8!};n1TUBOiO4;KoG12C-~s70Hk9mZ(=8BfOL#};nsgl&X{PETX^l<2b`7A zPZQ8C?&LUtm0qBiFW%afLRs{*d=^F?*yhJ1f>#K z3}pQU7$t$OVH?E0$CGvC*NX%WBRX(Ugv?U-6VgTp!r$XELaV|>|H+h^RMtM!jYX~l zvr2fO06XL-O5P%ps{Qr$);FLZgsdZs2#4MEob!IXf1UNX4daP#11BO+Ai(yUHpVRyw49#fuA`gp~aQ0<3N@}$rO-1z?4Ab5p;1E&*wczh7NxTYWuKRoXvaO zX=K~vw48ULK+1))DN;V|BOu|{PrjpS)!VmlQSZwA?hKRuMa{%q7|)$ukb$@=>_YyX zfmTk2YcG@pNLGRnRPw?bLX_wM-g=4PUZ(r^R5Q3DL+IMraY>d;N*+GqbsQby_t7F7 zBB?h0MWyI4CmgfZ`ex!&tv6#zj+tnhud+2AkJ~OyrfI8f|8==Wm;uG5AQ{tO)B^*} z3^funzYbW8hFr)%2+c~ySA2(UIPxb>fu$PDuo9J@SJ#t+Zh*}Ntu))4DO9?g!J_Ghi8f^Rel3Ia!_57 z@aG=8?MslYS9B4i^prwc{oVnbXufltyjY1Z>OQqPozPYtk4^D6oad6RI&$hEkp!V+ zA(DL(&f==x5w35;vFaRM4#cRsylf87;dZrtQ zRU`0=9inb7G9=vg#REAzE3PR?Icbe4G)C$jWva0GnYb~1O~ONL3um&udRi)hXBdQ1 z)6-xSk+_;peuvXIJ9w*AfiGyt#Ps40RR$TOaak25h8`Y3@z^+e@QKAWz!i;zTXoyp zp_Y8`>D1>{RF$?gGF|&WT${W-7ue8&j|&og#SNj_YL}O4o5SHK3#QF~M6EmLO$izj zm^jl!q21A>TA`OTIFhN>lcEjrKODX=dQLZ5G96nt35tf_1_;p;etIyO7ycd)+V6G& zl?6HG(51=K$=)4{_;~r}TWdHk#^_$Xn%E^jhzvp57f}=_o4>Kc#L%kL@q9oGK7iUBI>MIT#!3 z!M2{x_gIcyP=62vp{|r~5ik#a9LF9^F&D@7rdx{3#Gi$_ujymF zR8ue1P=hs8>Z`(6I~rLgTcfU``Df^8ZRGG46%OzW@qAh9!gI*6Cftzep4KhT?|Yq>NYZ%QI`rgwN}Sf?nSXW__*SE0ENPB>q}RMqzY!?v|j3z zdR7V`WtU3QD`-jxTHf05inpW-xkSvjKti=%e8R9)823m$No5v$FAs$@v8X&1O&Xz) zzfQ_I+g;h%SK%x6fub zJnZJfZSjGs)~k41I8G%HA{}yELPIE0@1AaC;`}{e{a6*@FB}=;f~JDFwhI+NNH{fo zxh?3`v@>RKa>(VVinr9vYlSH;gewSmwyFAFXQv`F{vsF}-$w5NhyIeef3|$WrRj_L)5BxT@D|yys!FnY&^AE{88B3g=hQ1U+ z4Fo@_-gEe;ayyG(AW;FKKxH?Gy~-}2OgiMBjwuBDD(&9!B3`DG_r_%_5l&Bf+VC}V z%bU_(KcjZuhup20)Hm#DWTQ~y7%zj0UT-din$Cyo^ebXCgC)s}R=6~l49)jKt?V?^94@3Sy1gZFK$kO>8+WO`KXsy1}OQgK=<&UfP$Y@yvYJ zDGv8#m}KCF6-t8yHXw*(9&hti;(9B`t_8UoQ;NVJ)Ul1N5T%!H01~>Bi#P9M#Vnyq z9><1(BCB$FX|}!Fq=uq3j&qf-t*L20UCc7>U9#46H@)kYP9XzRyieWFHsDrFW3gec zC`3Q575x4E2NV3qo=0X{5f=$FOIAI5!}Vt#^nH8@wRU=M8p2&7k{ZdB;|#o}UGtn_ zGNeW=PT5*?5ACs*mu_D4hx;O@?y7~>Ja%W62*J}>$(jPvEndA-TSGC`-I|;ou=Vv`9-K}b4W^fcm?FobHr`809ox4gOe-C%KO?-DBEI|FvG5nPkxga&J#cs2D z7RXnbNwm(AWc``!j4x}GakDUu3}G*$l7xaR^*XWR>uB+o4ZK}xz0^#1qmcfS!+omj z7#0V*Dl_OMWs~=eDzdb^wgFTyP!pvzt+CzqeW3u8&byq>@m+wwi4`L&1j&Wh?|)^@ zFzI&AbWYyzu$Ejh>3LXNkGeeO#~psR$7gEijiM4Eh{N>js|QctF`w9|D4X_$*CxUp zZWC#Y%aQlSKmBLNgv&Gd@PX-IuH|)UYb#shM$@_?pks0a7=^I_DKkc^(Qdz z!CVl;&E!t2s8V^Bc^PO}3m>XT9Aa6)wp|okAaACJha(8P)ai(OJ`TIIJM26hBCrh;A)I~|YMo{-v&ju>2SQxi#=WF*WD$TmWlIuj~$#DCY^n$%ts4OyDhg4mLguBJi++rvLDgtR(qdd z=RK;WwXGy|5Z8Uz>OdMYqwj7)LvDh|k!;8S$IB?HeK5!dJMRJArDN+AgO5N~`_Y(= zS~Pk64;&;ryz=fEiVcCn7Y61%>enQo1}b0)L@6Q=g$DxDN8O}c57b?jUBmHaQ>k!l zgu>A%NpkGG$D{z zI^?cjtHoUBmGL@4wb{yxQ^~G@QOkPQnQYQ%^BNb9WM6SZWtkM@_!Q(N6%;fS6wMWs zG-QJsOW0kI^i~RLd4F|G6twu7^uqIatV#tz5UN%mElEZFPK5?_MMDimZSDr;5~%rd znzhY&$K;D1hu=L0Fi&U6VI|mtsaeZh@s6aDJO@5UMZK{GmlGU%@2q2@!GzpgZRll0 zF=s2q+(te%@gMxW{&Nc1jl)A7MB>?`w`x`kOXv0c5?s_6yebn zr{PU8f=pyk%hFe+hU4?a<-JQ%emdcu>4EK-1QbU2H>nullwh+nGislrRCGnXndl&J zv{GS43zdv_xR`n+aXV0+;Xy-xcTAf61QE&HBj9J*ZIzOpVQ}a(pg&Vl$Zq3T7t&c9 zmGN#AL@lJz)T!}N*N0oBlJM}XV{+Wd<^tm2Mp4cXb(wdqoRgrDLMl3-W73r(g91p< z;62T$i54sgf@xu9nY6I}1~5UQ-c#n?ulB)UQNZ7H&ppL+zWpzMbJj7@-e%JNm%lNO zCUN=S{swc5^*3N<#BYBS-NR-K_!|ViCju6VAoz#BA({NQzj@XxE&4BiLl>&^zx|ED zSA7-eRqnt24d)|Wz~69(>i!RZ!{5htqWd5I<^?Z_o`|QOXsDi8GT?9eZ#>hJ_~UPG zQuph_!B^GQWd)N}H~Qt~3C=ck zuChQc(|nw541}(3ECu-e4~x>1YT|M!siI`%lN*me)}pKp7v6mmlUTB~GG6g$b%6(K zQP4i0SSI?OZ+>f~UVX$@{ds4p_x5XnlpkPB35D^4uSb;&KPXn6$FD6y~{G<+hviM;sMc0&` zCK=hjOCIZi-P92dJFrd-Q5)12v}Fe@N|Yfb>gChxIXtE>41rA@x6><@nTatuBbQr{ zIjcEVyo9MAkTDn#4_?WT?OOiXrcU+V>e@#%-sSZ|U{fdWW2^w-TIOqC2f(5zUEU}e zFjUXaZWkE0p=mK*+bEy$zr0y-*ZT0vD?g1f*w!;Gdc5&lU_|QJScX?2DSbc6S8P&Q3)wU*G|JKUz6rflVE8^U5nNCZ;;|E!-`9 zJDt~tL!9a^f2z(PP(a)7^vK}zKkf3G&)W$z-<3Su)G29XYjS+rLCt-#3$$P!?OaLL z2z^graFq8G*wnEoV#;vIzt?A&h;6|zR%?T8*OrATq%OYuHRbUOv+-;Cyahx1cz-sK zt6+aF8-xj6z1>8J?*%fKOv~jSKjosAA#&-fwzU#350&z*~KHR8S zDv((7)(5$+FKTKXY&Ow8Io|fems40q$F@L8N{zyR7L3u$svoo*z17b?4L`2>iM1$m z?MJnq&qVZ@PxjZ#zt>K;U!d?_URt67@2=GW7G6wJF_SWTfW>HX@o|t4ZxEvU{TVDZ>tc& zPPKjB$6MfE6#dtx4*AfQH&N5q^_T{3qkdNB6PVnZXgEbE!dyDvvDB$3F<89`doapQ`>?QC3Tsh9ZnFXf z<>CyT(4aGm(jaY!#tr3r#r$0b*wk@)?YVpLMED>IN8c*k_c(*ssI3_x90AHze~~ma67M{|LMZx&?tp zciIVEb`qzFA6#!y?fzp?{8Wh?ymq3;GuqZCR?LVu7A2uGpwby^7{08rXrlA#+@i=y5o#fW z^*M3*Kd2h0^(Ty#B=AA46>g1@2gmHD-yq3B1h|DHc|{VjEv(3Kkb~p9qp}g9wrZiP zUC<2K4@5jNvdM({AAn7rXNc!mh!rFrUxXcil7kbhH zE?XUFa{@MXH1lnZ+)aCw;2+YW?e1xIoNww>SmayNGmgEK+=HM=3LN~@$0yD#@ZIo~A1$vMB+f-mTb&5i;Etv8BX3_4yEy~`uG&j@j zH=O92%a0w;S}+m^ZHTbqC=1DZgfHTi}J*@@4F@hN1+{gEqCUW)S+a%a^l`)wD3Q=^+B41dJB(F>rZlB8>ip}sS&v40 z!=Ar&?XocLV5n{=C@m@P+IUY7{Si#C4vjmSSk`(`IW80W9IzHA#iP{9k#{U$(1Sig3c9MXw8uX`R$(nl)x;#rUg@ivg$()xpU+z`6Kl0EK3uJN(Csj;(MO~S{vVBFGP)&9Vz!-HRVdH5l#_Gd+p=jN@t{f@UfkcsS?f#KAnImWu5 z)wd*9Zlye*l~3Mpd0o59_V&0TQD)C1qh{yrO<+^!<>ugY73RAm>=+hzzNz!I&L32P zIoWz$cf6#HIUL7s>R?+inA0N+2DJS0sL%^n1=*1$3q=4H#cP8WNeZ-J=)5VgFOrsT!iV9N3*cYJM`YI^pKwm!Nn>KsC#Kvb9Wf|#& z_FFFZ>FW2n*Xl)B=x;yb|9Jmjn>v5BVBAIhAJTz=l#CW#;8HoB*Pl(DFwA~nc&k4$ z&L1BR2ABBx+js@i{cgdejs!)<`9o)%Z1q5@;Xw&>!Fgw!I{Bi(_e2B7`+ajNf(zqb zRaU&JHV!Cm^^10qwu!-QG7f2W326l~jD>iey&>KEzgsW^fJJc$9f|vUQ)iMJza6`& z6Flw{JRcX<-WoD9g0(2WTQDObbJ=10akwRP5{+AsgZBV*C@S6 zP^wA7Ti3Y6^G%)6go1;FLLegZFrnliR)6I>z%fccC%z0yC_3NN5lgBQOROeH5V0cl zScz>>O{`V@-GXU+nAEirpWY^%;hLQJ84qvk+@gr3%mWtXzczKgKTMtwi!1+d^|Q&_ z_bbWgEf^3(DnvXL_b_?)!&_v0l3sr-%q;=>rv*ddmP+CV8Wj^9cTMwcdrNhg24_fT zS4*QAONI7E>_og}8cVx))`AhrNx2l9O4u$;T$%2(l6K{+1#?0C9V`KqS;0eK1p$V3 zM#8ZcMPn>O>o5bs@cwL5=d1;j@ZPlYy$NB)p=&ymGhwA`2I@1OIbcx|GHoj}?Z+}7 z=VVx#zP&CkxVQxYGBHp7Z0fi(Wc}pH0O@6LBC>%^oj{-kQ<)uru_FH4q5v%zw-5ia zD61cm3bQjzbAkyom)J8iD|7N}A)yR8g$%hs3#P;rYf-|)bMh;50}dhWt^&{6a~s^U zKL+PEyXCbegL4YgbEevJhbr?I zffh_cLG)PuH?5qTB9ePG>C`>%_7r?uB0~In<6ISc`JDspCsj z;b>PLn25C~q8$W&Knq5_f&iKRw6FAy`{%f|@_>#Cpaqj+Ru-1{IsI~leFyhvvC8br z6^Tcm^TsO+jy|O&R%X8{@$M@xzFd`iR9RV7Rn1scp7=Skqm%#vYC5wht-y%RtLo1k zRozF`NgV_o5;X%7HCt+2pG|7Us%pNBSNCEq%H{IDj+*)0>JkYqVnpp~ZuJx+wgsa% zP5_t_D0%f$2&hrLZr2^Q*IRe`&lZda8kU46tVR=0ph=I>Bz$#;xwXS)oTC!;YaMmu z)%8ph^(@EraHakXHx8wL|Wr9xa8;dLUNH6}v8 zEsCspqm+G(voNuwN7G;;6us4iVEUpf`93QDi3`hruzkFr zSEI%E$D&BKJT-68)@Zh~uNF1u%z%SkCz=Y#|6x&*T7xmwtyqh4+#1f*79rX8CZy%1 zMs-x~MKzDM{zPaLU{RRb(_nKNQRV@BSsg&$ zq?7O#^dVWauEQEC1g>ui&qJPAld(eP@sIhVd78s7q*#HDS^yG1 z8$_55(45I}0O)+|B`ziDi{Kw`-xyj(l0FC}4V{_jkeYPN$8D(@ZnXLuxJ``HOOTD( z0`Z{nVrB>!H~t_UpmyRpNq+*%C7=EwHN9&wz2`Z-pFDk7Grc3#dJcDr;Y6(D&}?$3 z4zMy+I73`JW9={NFzN1z#Y(Im`~?4%jqnfW$x(FMZ-d@ zX0yX*0mrj}CNT6`mfEaf-pqZTi_Ms^nE1W_wF^Rx=q55 zJ4Av60pvI?$ZZB`qEEmC6k_jz;P$6pQtPds^wTg1Ab1>T|95BzJf?B;8_?u|q{8a> ziFSJlL|8XXpKMCL{0a9W1EowaCqsR1?GhmHWVEMmVPNrZHz?uQ)YJOueC-MNJIl`q z!6g&S{+uNUz@x%%SM7UOV$kcq1i*D$t0v_5xm!QaC!g**;z-OuEZ{I>AqX&n#S;#> zh`{}8_^Fiq@G3?C{DOQf6uDNH4`Y5pP$;#)*n54w^pL=v^=a)?SwB+f;d($gx4dr1a`AiFB<8DH6LjG%S-rQf zl|H^dvl5oU_lYVkCy-E^OO;bo`fy|@fBdOSI?`>+dot~62!o@-PJN#t+8b&r_ueKg zm&}C@_CRt=hf0#^ep&=auO6SO+7D?fU%Vl+-ZUwHeY;{AF8yp#)gJ?K+d|K99#GMv z?t(Bn6AJk23=rHeL6W>^Z}+_r{mr)-#g&gcWl%I0Np=#6H3DoG9# zjaszU0nckZ|K&N6c_#_kaJGqhA^CJ$Z}J8S+;AwBzPRhde2AH^Ke-~eoL_R?ogeq2 zeMBOlH5Bwa94XwJI<4eNxXU`1_wHSJ{YDwIlMxxj$BvsolWV>#gDc?*XO0V-u%$~y zQ)D$d$uO<@QXt_=yjKInzo`GDlnJ6xWHITWlH3_^)|Ninb=H<=c;iQ*-;20Y7ta@j zX^@tFp+TmV&#|oVQF8k#PG4M7csIGs1$QbTv2O>+>Z_tBJNo*1gBLpbD6>DRYusm8 ztRQ$%f5%_MrvVa3;&e&vv$4gFLQq?AI1+r1-bKOSfu6-eh|WzHm|=osydQ<}p80~$ z)g;(+PM_}93uNuJ*IUNOHb*~ED2cm&PD&GLA(7Gh-%CfL3~)bn3Mpcf%is(s&%V@9JOEct1Ah;XX7RfiLiA zEXl+h>vKlz`yJkUpGXucQ#vC?t8^^<%=I&)$*w!@;F_&JxnvBDj@7Imx_uSV#-x25 zvVP@_^43+UAMQItjH41P%l90eaZk_UKe7*JUP7$s=3d=6b(xPe@;dm|6@)`AVwy|$ zTw2*HwOavX?d7VfWJT4}RZjcz_;!@cdkV=%TrWMpeF~g=s#odd>$%X=bw~VKcFPSR ze*QEJW{zZo_5BE#+;=N&=3tcybT4&ZvYu4`+C#U)#tT)!0||H!-V=u)X!qCWFhRtC zn3+R;!C9njSV$u#OK@k!L8w$aC#MNKPo4P?g^rdtR&W=jV$DC@4k0`c@UGP*C3EEt z+L^eG8Zi4p#X^3a1!eEYGVq!rz9oesFC7*FN}~=Pu3^^?rcm2r$Ki~I><$)c-$+u0 zaCpC^c>48K2M!XU2J)q9x(y0sWY_V((Lyf$@q&6t5_91eQc1KvFbFMAXy{$}e1kmv z%Uz^2YS)`gBf`a8k22+uJxDC!n-{*$#kV6WPQSUqZ zdFUMi_)2ghLv8wmBbOS}?Sb_)kQ`|g0>y~D7%Ri}MWCxq+NVVRbJ3iZApueI>%ZV5l9e;N_d%XvKDB2Qo}2Xc~a(JE0X}yUs*On(=yCSJVy51H+%O3AX1F!P&e32`Y7VSdp=36BXjsuan4c>n zPvw-Os+~R05E>{)b7wV3dH;3nrd^X1koIu~@-C^7c6XUC4=e31U?g56I82LzyC;65 zob(w8E=yiY%%!(tO5v!M%%OZet0vy3IjWwLAe!DEmml5=DrOJKDehqEd7*zaUY-uz zd?ZKmKgz9slknlJ?Gr;O8OIXqswTtX!07(kr`j-5D_eaS_wuAzcN7Jgv9d zQE6tJ*2O*?%RGTRrb{ZaTit}y3-LY_7ZHNyiod++m z^*cP5Zf^b$CV)@(cdy!fiTC4}fw| z%vv6InIc66A%WZ5!jjq(RKQ6~2ZYi${4NJ$47m~JJ`zax+~a;ihWkJTZ1%?EzJdMa zFdY{EO=J=qC`s-wi;`v1^A3&1q{^ zEnn&#yd3PNj)h&ZCx|6gz|r!t%bF4w?VudN)j~3<5M`mc)`;2`d3q~*8)dUGI~F`! zSp6D>AOwi`)R!D3E#DUG8h6hmqp5Uw{4{I4`O<^@OU);bU8WhzhtbbJY1Rk0d^;Gp zRbXAavF^)5EIWh4x{tx>RsT+L>z#DQ-it=&ZfoZxHo{lvGA)*E2XP{ai7(Bf30T+T zYd+6TD?=C~HRlev9@k};4vVk{X(>L#;|UEUmR=781CCfrE5uUNyBi~dHMp4Z@J~e%n(WgLvT0!#4GkgOA$2`aRyq&K}mF{w1$p zHJIn$F5fz?3TUCLBRg3BRrF(t%ya5hxQB#78h9PJp{L1uy3NH(D?0N1+s4iP5xs=b zqnoXX$Y0)d+{-x6;4*mjGWCsh#}WaEk;)TZFg|fL$egaM3SEx_zT}cUe}tj{@ssk& zUdV&OG^7pC-ubT}MHi5aqOw)$Hc%!Dkyuw`JRGTm4XL+$#1e*`I3YyTCRV&aScbw20Cx%tH%Vo6(WBV_l+(b`X8G*wtzE~k>7q*7yaqq zn>ravAkhHsiZ7FiC@O9+NL1N1N!cNZ3%GIOe(YV!P-mv{ff4ZIF%>|gs9lyg3?d{$CptUDwtvrc2lR-l@HD)Qww04-XAKF9?jCG&5`!4Vv@DT zYp5#?h0(yK&Tgw7!jGyDXPyXpfa4AP2)rIZ;)0c2>W+VFAYfCc-CfdK;hys38dd{k zMYT#-s<{oc2(;duOoVW7gY$tFOh&UQIew(NbWTZoF;%OPIbF1Uha(jde@kuh2*n$z zUc=F0a)?}$mu6A{JBGK_B(;=F##QiXJmG`HmULhx5JICZqfIYWSf5ID+PJ+BgQF4-jB$sr2WP&)wX-+k@fXOQh zj+-z*>gU_C=93W31z|1gr(h0r*JKrxHbi3~soOyx43=?+PFXqhTo5VMr+?*c|roP zSm!O6-lJ-;H629ON^`r>k4(jzq!)4FIsz=ILoL+$aQTj3tA4H;p^W3IzcMFB7?nxU3$RH3Lq6^4%3%q z##$8feUyAKiWz~gJEN!kMMoC_l!EX%WKh5|m3)`J+(}O52=cv$KHg7i#C62=ExzaC zXDt}TK|ltnpMamy8JK+OmE8AMmx1`GdmBs|STYMrl|*}*k3Ievvhg0SHD{@Szcz@Knv!?gkknX z?s;ND3ufA^aLw%Xfmsoyc`=81iKuz0ym^_fc{$R&;NEDSlGjGQPy_6=Kj1EW?B;F&e#y94B# zSxU?I9F}vUmLKFTKk8b3LR!w>wp{SCTnw{ZO14}sn0Yr$#L|ug>O$*lmY)wSHz=*X za9Dj6wc3=o`lf639ci_7+iKg(YA4LCFsJoS z4{8dyeWPa$v9u<=V@(G93$b7pMQdoGHATHOyw{qN)S7(8n);_T4V4XT;Vc!W4ZVU5 zgPzR^v3GFn>3?u(A8NRa1kYk(OtY7Wg_Y_|SV`&R7Dy8g~H?FVU1a_@DGyNW&$$9fW*gEW?HCm(s z8ZWiM0lQYpO(tnkhI1dI z!w@%?cp`F*mh6?O-J4Tm?R?$rBCImw@yfcfOPK*zjWg$yNagLW(*s?dg%r=NrG-=! zsW7l>MX*e0{#-$#!!a&!OaaiHT6S)UqnFNn_t!iB)wb0#nA$-TXR{5np z?GJcLL&@-n&0b*F>RZ2T*X7PWfhal20faiRYeoOr05r(TuXvx?13}oeV$#*7Gf`%K zz-$pzur+ZjQKXMZ`-MDq(DBXf?P)hz5q-$Du0yZX6HHj-;~9S@stP$t%-RKyo9WZ# z?=kA(WpXySx}7HvsKtP;PL0mRcP}23RnA&mx86OrOn-NE%0}-1Q&p3C7b(g7dyyZ) z7sU2Ajx1BVz*Ct|HYzlLQc_hUS@ICPd+;6T>d0?(`%!t_O*d#bAar#UespjC^tyYQ z{(b%4aH{y>{$)d{? zo3@wfMmB;JYiB4AH@9m!0`2`3;J~hxU@dp`-2k=xE(#k#Wqz|SA+PWA(7H0eEsDbu zNkY?^n@v{>lf+yCe*eHcu0+U0%HXl=HJy4FBc0->wpc=^WK30%5V8uS~m%n>09Rc zPd6`REDby*F~mv}ER&Yu%VooKc|NrIW!8Z-8KA2ZmaF`5V&D~wBvXeY+we{2a3N_7 z|04$R@%-EUde2#X{ve|;xXf;n+K~}z#zKxkrJu7&5Z}jQcn9`@yZD)+T z{%2Qb{ZUyGQbfH0Ju$Qk>{{vm>gv2G$CckAVaAO2Fpj>?^#Zy&UDNAN9@q3gT!mQT z`UfrF5RD%c9_?CrU#JZ~u`V6#Vfn3kyM71g>fEMy*P?eJC86N1)nLs#BDNje%$m4u z8(W{Gh$3!Fwa8yU$L5_dbMe=5KCcz+S(wL8GneIB0GJJYTIU>&X59sSt$XeueCIV> zEYpvh{XHXKnby3%SW!!i2qw%DNgAIC57M!lUmkmX$d^G9<>JFnuuR^rY$A%Egw26n zD?(SN`v1O{W*S}_l zzms$`=cT99k!3P2%i|VxJVoW#Q5x%77z9|RQTNdR(sDL>#bs;Rs*zTptCJPBs+5Rr z+lwwQU0@HpbF^#qrm{_U-8GS5nch^7_N)^u)7ng1g$GBImH6zjWvW9-;r{6AOik|1 zzG>R*2|xs4#wjAC>kqs(Ld^FGyH;=M#qI@IO`^pYD_evLzYr{w;Nhrrn`+_RJBT*{ zTQ{njfP&YNWfI@+v=6@<^jRECJA1LgF=aE2?O>7lT^0T|Y7HM?vAB1KSUeNhwKD(1 zG99c~Q`Z1povo4x!#FI+CrvmxzYD3NOu9f$O z`-_W%LOb6Y^!GO~5w(Qx(=DYIYkO>@lN^U`orJCqwb!Vq_}99V_|HiVkJ+*tkGeWV z5p{(8(8T2Nt`(uHvzM~{is{GP=!NB>yr0{IuFi|T{dw8L9|hFjZD*+Edw{hod|&+* zp{wI;wM!R)J5<}_{I>GuGSi}d!|o`dtMgx$=?k@YF!j5~Z*O|^-&q0L`znd@6)e#u;q1b-< zj2=al{mU|a1*Sl^QMA%Nyl&o7M_nC$wBJ4uU@;c3ED*4l>F0gQN4wqM(k;+|+24B1RlQwOlNs#79CX~(p)DdE#Qe*y zRiGOhePo$}E2$q5ER#ln_kBW0=TRjo3@}T-cdZCr9bnhWBqY-=-8bQ zS{Kkf*9AK0vkEt$t8-+T#-7#hJi}!N7rH%*Xs4v(x&U_pwd{n%G5@wqJE5*cp%@d8 z(T>P-hcL`o=-|%Lu9bAyaC_K82cl-wc|dN>kA;0WwoDo!pT@#n9YRf_L$}<5H^(A= z?nKO*MC?I>#@Zzz7!qR5pc&}Vu2oJ50Gy;S;b%+3HC=vpb>btPaq#0^D}rTmj}nZJ z60VB+tE+RCJlYi>33PRs4ud1kMu$p|M@#*PJoiUeM}s`-{8F@zdn82YEZO+;tMMd? z@z0HqyE=|B+81M_FGlj5gNx6`=$giuyT=kNQ%($0GnPXraIY!)&Uo~Vs#w4>0lQWL z;V&^^AqLzvtJG?|m&d}s~&SIY!+ zb-tOVZfT|_(WJZt#-H zm);eUO~}*~&b+~zjl1u37nB@kcD1old zpO&dIA@A?5&T?K-QErP_evVnTlPjUC(>;;f_`9n!WL7Y;oZH-)Kar3dy~`KlM10iM zDg0iHbWRt}oV8thnEYqr45vNCyxWqHd zsMi7>C0yEsuFl!6JpRd&{X=0e62?v8T*~PIW!NZHWGhpWEdvrd$GcWqHDx-Jzbuo! zd8wTCYu3F}fMOE=qpM@JQhL?A;)X}XuddEsX%bh33)>r)yb>*dWO2Q5OMC+iLEk>^ z>abOM?NvN6ue5nqYRCf)tf{o=dgBXNCbp_5wo3o5%21E;vr*--HC5&-mC<`uShngk z=dzftswd{42P>x@IakN7RHg4#7qQhmHLuQp_6CkA-F{hFUQ=0kx~6`w1~*w&R#W2w z_#jkywRY{3$(qK=+TNAg=Db?#XH{%x;g3((xp&p})znSNRwtwCTn{~J6q-Pz6!rJ= z>ZXBRtJ9V5oa=2*gWD3TI#%j!pVhB;H0&f+tZ6q`J*z%vTL+=R{o1u6SSH9;(J#wH z!`?_I*9dfV2)kBEjjTtOiEWA;3Rot&CJ0x(pi(_=Qj@R<4z}7TcD!pP*DPt#OaX5? zozx74HwXf$By6){5>D!OS4TCp`EqT`PY)hYcMD>wN#ocug|=wH-^$!-V)bn@t8KaJ z`PNph)y|@oKIyGhev@22w?a~@H9Ik(t8-+T{-vt}Z+BR2JC)xDpT<|*>VxR??z~S8!U8`f5@I{7VKC+cFaruoPBXwGKX7cBDAw@l zp;U{gwnYSGD|VoHid+ELwE`@YlxW||vF+Iag&xr!9>AlxK!;uWLoj&h=^?>27+{&M z$`2bNhmF04O#sVud$`kubQlXIxE>VDuBV^cWyIkCgmob`o`zmZ9&wM*hr1n`>4o5+!qz-JdcbQ4FFlRQ09H$CMwp>>EGpYm3I`ml6-NrJl>uv2v9mK& zRO3k?SeV4b;s$tlgMxZ}hMbEWDEMgM$x9K`!!#q;d!V5k;4ek*gzM*~4yLzs2Ou;Q zO}O_xC@9d?>9HmU>`yUvoTp&0u5s`$^23ty{xQwFPy{tVe#G?#B5-qtg>!`{QgF&- zm;?nNePmKTT8oXxf?y636M*z7rI~jEoY4k!4o8}em^V^bc(6XVzDHtmI3nfWn)Pre5tG#)W9{8wLYSSSaJGEAU}oJ=}VR{VMo*RToJRKs^WGn>bR~;T`hFG!!;~0&*b(M%T28VDFFfJ+mkNudT6rFt&!z zw`a)n@l!-%6hTx2zQ_$htF7!p_nP?yOS7|Gjh3*X5=wwn>q!8MNsC< zK(QcrgbNhM_0?6Bg8%Lo`t`E#)4>Sf{R8zLYx3faF_*siSPU#uf#{y~_lv)$#`NF) z=hPVP2gw=uJk4IorM)t%z4C}nV8zZ<0(dI>!G+KyE^<1F{T8eJX8o<;h_8iM=oQ4| z$qiW0#zq)sx#Tu^#nXea)Ps3z!17_C4}hi*4m5G;XT>2D2sC9=QTB+E|5zsn8dF*u z8;YV7gQ@#l4KOY1{ayWi2#6*b@p6uL>BU8V@)KfqV>BTlJ~J{vfhYyN4k$icR|1OD79>%!U@PywZ#j z<9k9smG$uq)Vs9M|CRQU-&fo`Y~Qb)Cp=NTjY4cY!}7vcuK8Qt}!V`g;o%e zy}@idG5Xo+m6k6Rl^GXl_PHqDZ2Md5LvQ6M10NJ;4}86JS$WE+-t&jybv%q^ik9oN zxPGc%5YdeTCNnwJ(699+E%?Dh5w)8Yk0^U~uE`nthm>6B#cp@WhS>3`HZS&T>nGz; z11x<;&Z`9wdj6>;aM9bg2CCB!X_KUTKFQoAQCc70?QL$^*4xNt6*NU(B}OJsU%H~q zdWQ0Zq)dDlw>ETWS+KA+;WHmOiS?_De164N31Wdd+7K9UwKo-S;>qDhxznqPAAnBp!Q&8l4M#7AU^7&~(B9eSg0oNI$ ze&fNSl%e&-&Jzr(3{fvdz6ryq4S9c@eL1O6xsZL1dC4E#DiW{CnBS|>rpXv%;;OH} z=gt*=j^hbDokJ~dR$WCl?~o7QDiZn0PdUo4L{l!Fj;6s#q88sEmkJ`zh6sN>u3 zYHHn+55deUSSuT}uH!xsp8&&+jIMr0f9*9&Ly(y8@k=f%8{000fwjjlbd>e4AUdPS z?J^REbFoJ4t

      Szx3J0s7h%(ZLptD-6-s0@zJMHJwcU(cRM7RlCJX2bj-b|XF_hsYQuWd8W2M8tTzWna{46_{h~P^VmP~BVV4igT<Un;)bW+ZAZXxHUZ#)%XB(e5H^*Tu8DyEiNq>J3mg>$ggHuKyW-0iBWlgssO zApLent|h^fMQ(wIk!(8Luv6$}INkgDZR9JLuYP*Zsjf6;`v{AjroYOr$Sq}H0!642 znL?${}b1A2h!p0ZynMdCn4lb8De}wpAVWpY0x@S`LcFC`hMh zzvDIrB5cSgD4=l#6*|VfX-6AC#_(AuPXo-Y17^A>qD`l%lE`YnM6V4+>6Bnic)HP; z%^Vd7-y$)SI)a2@b(U06&Ul~m2OTL!2<0TH!UmbuP%8#A6t#16P__x@qt|ta&_t&* z#xAo`x+(=eHzO{gQDq2Dw@IBcy_s?bbrO?)!UXM0SoM0DY|A|O>c;s3cimfuHw+Rd zlWx4u#I_n?xnV>bBo}(BboH%2MOg0McHzE`?w(anTzkz z*8#^OW^F^x_x|4eLrF#E`kZ=2#GWeLFw&Z2CDCQQ`|UgsClMtJx_ejd*TWgFI0jJ62SvA= zYtlV$ByzIIk9E>6sk_%83tg_Gs=U`L!u67N)cQ7I*J_k*4qSv-bzpWen~EA{zoF5{ zV7+HPTf&%Mf^fQ1#iBW2mdV&EpGBXB3Y=AYk*V;2(j}-3uy-(sM{Vt<>dYeU`>d=nFa&S_H z52$^62}T5XlvrK5cI*Ho$Lwiit}{yp1V? zpDY34wKMH9%gnnr?Hp18lJ2a+wDisWGEEzuRZF{5OKTl%W_)j*dJg&=uWtTIe$9&6 zhr&?rQRT|+oKsefsG$$>b@lhesx&D2**o`Ng0YOpmdUL}!1Bwpo3(R(JK(!R2Q&5> zDj!6jx_95S+)P~XT#&!(?l3C9HY4ae6M#pNXYX(3-K={bAD(>`r1)o7r)KnkeBzL2 z_p!AN?82q#M+;NGZMOR(`v8k=|O}>vDb$4Aw#Tn3xmqtXFOON z()Tx??oA(h?+DBh`(pN?%-mF~%~pqPPq%*_-1VRVcJC_vH_ug^+_^-eqX>aFoJ13C zrq>8D18p21NWLP7OZ;W9JjGB0IF2Y(_K5k6Dbk5F(j76MYFRQeb`ZS^ZrwcMv&ZEv zZGSm;d7O+g0xAGv2Q-FH%q05GF`8P1HhO+1=E$sP_xheJ=1ZeXp2-GTx ze3aK0BoaYDssYPW1f*;)!Bt|pN$(^13;cP(ame- zN-+*f@*nFA1c|t;mCYB4)IimjbW~X7j^aMp8uLU&)msV*Q_xFEEtAAxH9;aJ!vM~e z%Q|pXh#Xj~1yX$kd9GO0;Kop$Rtp*cPPeDj?yUZ0ncD6#sMx7A025xW zKv(CM`eRRZw@|<`wcU|}%tR@bo0D+OUVgHw{?xzC?}xh2zPdg$k)Dd0gn&~7$8jGCtwf#YSL3vD z^R@D7fs{0%t5f(<>mknfGKrQsruF@b7I2bOrlVaB91Gp*s`#yblv>X6xoFpRYrlD} zRky0$AQHghpjE5`JTExS?$i( zfv5>;7Pka6B@sRRrbF1Z8tP<`J`YGI6r}eZRjRmOz&zmtPw*4>t>J>SUq6ZDvvjSzTGDR z-O*^*3G{$eX!^RRgtmvej*~#YcCCOU5YCqjePn;o`b0?GBl{C1a@yB;OrNZ$&)zqL zvfU3Xim&&lrg*D;9+NG$e6(xz9S_(apbB&n5d_!mf7|VMvXX=so5uhpbam9Yu5j=8 zxFY)NzDaWGzB~#8{ob_#_>Z&?C-N%)?ExEF)G45=BYO2FlvUvWvug!drrQP={_g7h z+O^sl0|C2MmktaRDSug}-@8`-=;{n9auEIM>Z}>+AN(J?R>OL0#J_f}dW?{OWm@~k zu9dN!?y+SWvCs`LlpqFnt(*#so&VakS~I@;FP3T4F~Hct{@On*)4hkI4#P*gR+J__ z945X8*B*=hwQDuzt_uO|&+)F6&mWe_B;w$oyH+vC@ep8B%mMss*9x#qb${(z{kLVB zh#v+bN@l+-6R>MlV3t>B_R`)g|KBasWIE*^Dn}D2426K1{#)e~SpzEP)RuWbchJ8U zhGakfqcB8qvSM|ZC;##n@(3k@b>4~=4S+zQ~Lv0y8;SB^>usO8x0qh z0xW6{_8h(1-t{#!0A&Hv#hH5|$j9$|YBD~>q2Nb_q1|iADx^FP?;Q;uGQAIEf3)}# zwQ2hJJ-SNQ9u7X4nLQUG5~7a1%G;VfW;j98KL@N`wa@z7bS$2-lyM}e9L9J{G{evA zkESv#2AVVoHK9+>4UHW?#hBd4`4nsMXz9}n>p-E*7;c8jkMXsa4L`&Ig`xRGmsTNx z#4b}W)^pVabVI)=(@{$;Q+Y*5)*Eq5t1>CqGW zPD*_FuAy1knYqi@fIyk$Jd&70++r?J7;=t_9)PSA7TaHu=LpSGj&W~6JiEh=E)#A#d)I45pj@^2LESIBAI=J5DB(SzM?bf{7 zPGsJ7$nk;5>2>nfmP|YoIC{kIw_Y_at zTlmey(V}o9?U%GB-awmRz3w!|U@}$48JCcU{Vz`lH2R(eRE~pAI_v0hVaO#koqa*0 zO=jXt_`_9OW(P$TiIKOY8f9~w8yf9@tz9{)$p>Bz@fOiO0qJNbtX;)*f8^tE_xYyk zDned~I$`k?dCXUvw*gl=nHdPvk(YsZ@5@9(yH>-OUH|~Q|EF6{Tick^0&odPPl_Tmjco&E& z$%F-~U)mjbNl-b-H?K6XfMfX2bBjK7JW@Ha_jCJOmW-I13{rm*RE{&EQKmaR+=yG- zJ{M3q*WyYZ#u<5?Rx-OWk~#AIHA;RF`8nR84)!YFi!$Gqi4EV_J5UhFr*Xki5hx6e zlz7_%g`vD&MT@Oc$#!QuNYo{~uT*IgP#8KhYdUCboS*(F$N5qXncd;oR>fayS6gog zg`ptrsX0Pn==>e$n-t^idXFmNbPFG3X-_X7tzE6(ejz)_Yw|EZBjAp`bKdmVA9>h*v}@>nja1$rhe%lGvt$;B#pwL4ay+l|TRm#wt5<}y0&7=*$}yNP zNf_;(m#Q&6>?xBjP3rJOeV*S0-S6Fu8{D5)*!$6kdUQYO`>h)S0x@7(u5U>{*ca7g zfwilxFW3|EHzZbuTAnMMOFvq>O6ZC1eUSVxWI-p?pIdRw1?$I!p~rRO1vjl^OF3mx&c#}n&YCbYX1`U<)S#MrSOo%txaCxXzglF>_-yI zPtBm$`yV6-g&}Wve3$8mLX~fjK)r7Sm7{#u4-(t^EmQX3xG?meD(7x8qXu$W=+Qbjo$_?ef8c&nW8JS+c{&HJb;EireXUYVk)6 z^n}7t?MJe^ZmsmmtJab=pPJWqI*wFM-O%ZV9~2)sf;_|z`entBRF03p!92ZH%iBE5 zwW2=4+SQ|RbIwg^9o+cc*IN$EhevByzf=w$C=6vCuU(D3ssAkcbQhWsxAV5I{&1&F z|L51lqr%XaH+^ms_c35i(9@maUxlHpOMBFP0o#mMcD|}VxQ%&wta2cgPlIj}Kgv`P zF9Q843~Bh>#!(PdPNfg~m=EWU&#$#BpfGf#a)i;odk7z~9be6jJG7E;vJGFUMPH^$ zUztijxv^hsSIlF+7fk#Qm^>{I{#sCC#HC5+1xD-BuWGQr)uy%!kRbj|GA|USJnxK#u(V*5H%xC5Zczh&lRU~@{hRQLr zCp)~r07MIlT1Q869IKq*u#=8aojVa}r!cgCuU)xE3yw!A{D@Y}!R!@918Z03St8R; zfyu0&>u5fgXL*ibiMjeC45$qmn@02GNb|bKSg?TgFUAlGL#8oE$LIVYjJI;My9Ym)oi4IPb zAx|u4NooQBjp>UwONq3Y_*HaLgK1Llk0iWMV%t(;ZbyO?F6kn9Qh!x4uy*BjF}X4) z(c*A0am+D#VkvnsK4qCar7|Z;MLBAUCiR!faZFvvN!hJR?G+;1{*ekYOC5GUM-)#& z`UDG2z{0Ar@PyR;A6OdJL{}V^!R#eWIORe!h~FB}H!le;3MdT8r2VaOs?$V{RSs+V zSy(###7n7MEJP7@K{@imL^}EI%X7yn$Ly8blUEwBwDZg97j}u7i_QXtDIJ*%#e`pL zS7uHb+A#4GN5vDbCaxdF|h1Op6tRWInLG~pfL0wDu*?{NhTjqIfTNHQ+|O=UVsx( zH1zcIC!hhD0)ol`3PUml>iSLtc}56hRYGEb`X`JY~^ljM=D3Q>N!P~-(+Rj zN^!bUjugHs2G*{$tCAFf!ccV~#hdi26cA8Ng-1=Q2Q&{T3{BS5 zvsDy4t7($0hM+2g(<+-2Yt!>;8UU5ESDVFF+bLU@U@ipTAR0`pOYW-0Pu9)s)j1rV zuA4YrD{3xOCR;z=RX1BxzdBie?R5R3bIn_4p^!bIErQBv*sW>U?`l|HsR!1sdb-Gg zn?IzUI66$3yK5a8P#8*TI6RF5R8IdMj`0@mQ=&kbM)HA>xTUEe>B> zo~+_rJ=+LtSGV4}@3)aoy>&PwYDMqkd@PO%L;FoZQ|bq&+Rab33nH3!p>@(4U2&Do^N^M0bltcdKW2ds262ZFl!n zckdsCp}{F~TvE?OZO`HEsb&ml5-1FHcQxJWnfL5n1PsoR%4rVm`M};cVbQ7O+xgYA zZ``7Hy|!6$Q1a>oQ#%elXqNY7J++4If60KAaxqrX0C<&^2$}xeXv7E>QLn0*ct6 z2tODL!oVF0pn%8mkstNu7{V2e<0PnuG4K#Bijoa5U~O(4fU=V(vXPVwJ+R<{i5yB; zW*96DP(K)W2Z}0DzB_(x7|0jZiGUO0e|aAQ@WFuS@Ke19Q^i2a2Lr4O!)?OG>kj&H zitt4V>XgGUvh>>%Sk#1r=wyZ{MP)L)6-T~0J(G->U^q(nB;#jRdr0#!GbLOz4#^Xl zz@!t3EKGuW5i@=HU=ml?b=`|AxQJL4Lu3H#lWj~f=)Hf8BQF8LIuPR;Vbi23{Q!Y_ zsXLKzdnOG@$%-TW76t_j&WWFMJw4=D+yreHRW^dM81&)9%n%@SzHtzHBPi2!CmiLe zPwEXq#rm4K;Ia4*=#7tv-Z>!mqg~kLSHKZi2Ue0GF~Go5a3C3~4@_df_!o5$7rFG> zdv(kHLd^TJWOzOeF~D{rX6J0Y7kY1#cZl|Hf?%bn1=P$?1Q*qrq6KHpLCwR$o+cDD z2-sLdPSd*1IpoCYfAye z;>bf>X7UwR9K_Zc-mQ3tQFSPOUoDK-SH$74+Mt(mP0B-yElLrHr4u-4_Mou0SZftxw0KYzT zfrh_>4o8rlv?gyn{1S_Tg`f^jqR8kFKihs1kj`+!yN{Rlfqs+L><%?%YL=P?PeR3e zymmz|tcl0JZw`V;zf^jwIUr8@t1v`-pNq6x@GMCi>Zy=Xq1|}NClpc{g_Vv}he*5h zr9`?`(V?m$E(f?i$IQOq1uitngZT0cM9|cwg0IYmh0B~yD$4IjbVX&6z(ss^XP2=e zl2L($NDs0w5#Ln=%XRa|=^4~6l)_%0g0rvig(&(cWuT{xT7s$1hO(9`!VzvFnnmXE zjYZGhS>a2*B?~uS2#`?TTVQ$6XAo<2zqVPE(MGR{Ro}>B4||yB7Q#&HZJ+Z&ynVPg zt*W&8>ua~{=aedK=&&y@A2Te8qDhC-UpC0p-C^y^zr8`hroQ%V*2rYhIVeVpT#tRp zHS1Fg|tj0=`r+U1!v!66kJPS>*{M-i9P=^GSENKTm6pMn<5?XU@h!3ak? zE)&IzElLr#jvt91z?1-=Bh22};8wPaO`xNAPRrWb>YRDXQVgaNqpCoPfEAy;j&nwEi>eC8jZIQ2*S?ex}?Ljy5PMh{BT zfz1bEZB@jVwVqJCN&t;$pY<#H&eak-M$?x3RvK}7qr(SRM4Zd6&>^1VHq#A^3DaA# zx0V8VQ0<0;u~!qz&I0>eD6OCp>j%RsFE1D6m~xUoD3D(0j!LGUXml8=ac!Xsqh?K# zR5mFiVU!)_wMj>qO4)rMSLNXNOpCyLGD`n$xNGCjp@__R#_;@GY=%wunQe;)gGP^$ zk0#H*@KK*pQXzU`6tHD!f~Se5)TVQ}HZ8ls^<~83>5pw||Ih86F{de%cWfTU0IW$w zKcAlwJs5+dlTxrIp?tJ{!c?1Y@%#_F=r$SN>#>6eXEIpS96$~Cg3x~R_Y8J(>{AW{ zwux1Fa~^**LN@yGoIS9Q_t9g%=x2@e=#};{MFbx%XsInm?#?PB+*!NSnBSA|=E%GI zb2ioU@6JSBd9)W!CNnPcLCb)Zu+!D<{zA^xGAFi*_|i2ZK1A?)CUQ@1Nv$tXbUIOPHTVtuKPWnZvCGuG9sOdFENRmUpvDa za*h{o@%>yS%=CxD^-ERGrtMpnNRZ)^8>O{A+lkMAWW=g4s!nmcuh!5>Zr~XvAce*z zO);knM=#yioD;?4Uo_5N6IQh*XMD<olNi1(s8))R>?Gwtp*I9xDg~IpeXbZ6#GKS2m-9;Zs4bV-{ISD@%d{N+TFi%&k zoA5bOI`sAivqbkbSw2)6t)87f-L6A;Q!<$03koZsR;KD8t?OOx$Hd9(Lv}gvYba|Z zj)SV7>a-M*Y=p|S1Cy_zlu$5KvE7GG%Z1owwOHU44d-dvScqDg@^c@NW-SoBT!EZIi~2xA%-lwqIiMfHB0kW7e#)5Fp^w zvNU!7M^5mGVJ3^cMRF5QY}FXw=Z2}TKBCLR`qU4c0w-1S=?Jrczs1o*RI zFZ68E5|q^icO7tcG+>^6;G_llOfn-B_{AEkZqh`b=@KC7`JTK@>GBED=kyZ$HZ(yd zEk}hR&pFyQ->hwkyj1pJTjm!#x!5Ox(rL4Au1ZU{%90ifOjY+$7W%a*^SefddD_7e zuV-TplZ7N*ACU2$8jqQg0n_Z0q6AOIgWqa2$`>B5U0GF7Jud~;uCjh~>(MaFweHVf zs2O8-n!o4!LJ}pkqucf%u=pb9nKRPO@iao{Hv1h<2Ni+crg;ZeZlZ%l)!MgoAqroF zZsZF+{KkFrVrE$|U*sthf3u-(;vm^<04?DqchXCY6nVK#xP+~f@(9ub(!Tj*FnRqx zP3SDKaL~^A5DDM3OUM=d&yTy!qdpV_Ay-X7O)QIRVYHG>^tLxWjtWBy`*1~UbzP)9 zM4<)w`FvaDsDV;Q9ht&{7Mh5A5oxBBkKA~6)APf4A$9fW!K$K3(1+=n#|?c`U!Ul! zoawuK*Ui(KgLuqyN%!fKL}kmb-zt<(U1|7UxF^q7?&dY=lj0hzewn;{!Rzyf!@}KR z4`Q-VT=nO8Z^s7WnH{sIBtMopU|iq8BwbnF-=nEKV^U8sa0}G)9MAUvp={pR~=KNUdbe3Os$ zlLo3kd(Qqq^@msom#kbLN-PT-s$yxU^#FQ5ifM3oyPd6o%y4n^}1v>Paf<-+=s&pG+A<*5r*G zRz-hb1p!w@$U&IUM0XdP7zBL`XjF~&oB3)>j6>g^-}fPt_R}#8cw7xOogx&5v_yzR zu+3~OzC3tUE4kKl{wnOmpnn#IIlP&ss zl?4Eriq1tdsk;Ls2f3%=^H8#bK~Xaq-hm!^9?af}VgT{RX#%*2A&%%(s8&vB+r?ef zeP$(gH21?etq_q;K5j@6T)P-342fv}QaMBFnIgV`FDefO&ULh_^R;Vg0hQBLEC)H~ z)+uB`!X+3ehu3Zr(W$Z1d?KmyR#FEbMq){t7TC+$<~p7EI$gCobtEWCcAv-D$|B5Q z0h~@hug+O^-9brhfEW4OX(a$XArNXXRChe7r&@=ETLT=Q-<&YzV}{jz$J@oUuX{N7 zz$e2_m#yqlC4=543%&ks;tbDjp<74eVb*%@RCExpNUC;Y?gdik6 zU53{F!~1$halTne;Gee;@Pi(f${w(Nk1@!Xddvro)Hx7>(98el+SRl#0~cZ+SWUy? zY1@^Vr>}6XT{(Ghg^Thkcfb__DRR?d{f^k11bedqYgYp&MXv}ZUlryPp{osGt!orR z6R82JDEq1er2(*Z#mEQ1BCs0BcdAAIaEVYAA~_p2$o2Nj#R3Dye zLjjXxG+Yo_T|?D!gTLEC(qxJShL=Qz3dc~57KVD~ugI(o$r$++Ch%PqH8PMNzH0AJ zh8a2u0wcVPOuqLY=Y`(+iW>F|TNoMf()h9n2ALEL>QjzLh=L!FLH<%X$VESTE@Q{! zk*mP;n2YhP9^)Gi1KF^~XE==S{wfTOI&v`G|6Lg3QoZ*0xG*GtZM^21=YJN42r5U^ z#82MD|9dQ@iAmsXlOQh>bePGp%K5V}^oPpn8RM2VeGXi>{qMriKU7Y^xB|0Tn&`h3 zhJLG@UxlHt3Bw(;qVvT6t1wiRY+hYpUh}IkG+7J*3PY2Iv*wK)7EON?hN>VIZGRMo zx?(Ka4ko*%Eq)b-L@jW9-~m458R>s73{BP{r+Sdn)5zn((BZ7nG|(gR7PR!n6Uk`& zcVWnKrOtA-$8v4j^6$csy`?Ay{6XG|1@Fsf@{huh)n1*|e$PJ(Lqv~&TD8@O9?*Bu z5 zr)wofb^Q$I^|NBv&w1Ml&67n7D_oblbNzz%b?NyzNy`t?h1X^4uLHB|OueAZ7_iL9 zbww(>%ba$i>(`YO>{RsZRDZtb-ueJ{v(pH-(@e3`DzwwCx6|nb2K4Oo*6s9v+99ay zuW;I56|*-`us0mBQ`fUMzGHvQ+ukJH-ZaJDtniberM-EtJ#xn0a^2qQr@eKcodwkm zTd^D06>iw+-7xvHp7j4)f=kS3M*pkRir+i4}<$HZhB zt;|dt-hE9~PHt^}M8(rg}=9#p5a-em`JcI@#>tc`v*7#I{B!cB)=@7o#MgYnH=X&a9WO!@Dynw#%4<5x{3s+#ThJsj0xP; zC-;5?)RVGj92`v20(YTj?OF)+q<>q2tJUgs$_pv%Cn@fhS~*&RD=2dd^vh4XEpcY8 zV(JlL36AG}cKPVCDUNeC6R0PxRyd1PeX3w-L_J)Yg2g~St0rjLHFL6=vTVXa}bq`UXo^*N*%5+0k zuzce7=k9&>=ZM~Bvd%yDmqb~O2;70wb3ImKu;&e%nh5m=mf(KZlfLir zK3THeclHnt3tT;QS_kR}v*p(172g|p3lD#GUDR-8prKDSqP;Ja;<5?Ula7AHeKtOr z>fel&_&E{x$Rl{w!npH!3ALq1|rf&Bh+bL1sKibASt?bjgVKd0q3+BaP_3N21+}j^CZagU^;J6LY_YFzn0)>Oo#Y$y#s&nq6u zG|2t7(oI{yD$`)qy9WQoiCZC-6oe9WQ^WY6Dn;Gbe6hkZEp@5P)VQmFuH=Fz3m5xspq}*8 zJ~~A5s}7ve&tR-SHtKn%pkrmL;g|zBF*;KXz0_%_{+hH+^|YS!&k|g>mBD7>2vAQd z{uW^7mmb~NtOTzO?6ghX#4O?JN$ou^c}kO7LLP|O%BVQ_&BlMnEy1;)^m;7QrL+(( zNLtINx_iV!7Xc`_Ddj8h9y-pd$8-!&oo$fw*2)DElcsOSP{z%S#xa-@0a*` zlFUsP6+yyh8Kh4WK`!u_ zBe8R|xgN)#P~C5hX4mTD{dwaV&oe%Ia#*Jk7ENnY;EM9Pw0q%8Rwd}sLqlZ z0!wfOLf!<1V7m2fXf4#y-UtDx)j_qK# zmGQ%dL&LW_)IXe>5$Yw8aUmw`m*ZME)gTmaaZW3tL-8TLp0r8yrNcDkY8WxutWZ({ zk^XnUX-&*sPOUuYkd0j;7hHcRl$Fr!)blK81^IxlcN64R_cM80bxG#@NVlgk$hy4- zg)nrcY72Ou!K?O7*>J!Aw4U@$-F5$S8f96w0;`qm<_%!Zr1Z@@*kkSL{lTKJGT>uf zF;EyAaQjs%0IszX7~dbpQhq4%XSG2N>wnr5cvhG-VP%GQTB60FM+@ZfKcjPvMH4fD zB{-m-gn9cb>BU+b!5zf-I1#R%WcMiepsOu5v!rZt^(Afz?(BATw~g)nhe=a=lodcK z_?vsu4brx<*OeEs>wdT;xM>1H9$*RXw4U_wde26f>){;EY2lXO!X>GxPc&{c&#fsE z$s)cAy{c$dQ~!4fPWowdEAs2n)I8?Z@n*v2;gX_8Rezkv^He(4FC^3Rjj06=Z-h_l zNpatw=U&H<2gknYtTo=wPdZw))TnNKeCwtEkL_@%9%7uc;8)f7(RaN^2NR5JFK(#2 z|A3W?PZ4YEHijdAxQ2rWnvWf@*OBXfxOx&5xViUe?OsUr-1%1_xFxtWs@f$5js5wirHLO`@t<|LwH8d8J3M z+?46&t%n?-PU}feO!h6ZYENj?>^)b^rw{P;q;QvY*U4SZ=X=nFQ>XQ-SNZ_A1ZSOk zcJ~|#Tme#(Lps_+sR@w&+1 z$-sb8DstKphAB~d(`I`L{^hh}Dm;Y(yniX6h$=wx0Vr{?f1Q?Gh0m6P=d8KsJqFZ& zI4v>nRbkjfkuQ?(_YxeBqTjs$pV=soa<<>ju&;fEzuSnv7N7q;OGsJywP$|*&P)FI zdXhJ)!e`2wLMh#?qo zTJQCMdQx!3X+0@B_`p60%MjwFCwZAVq%xAY{rXels4LF+CAb^W`|(lm%7~|P5rEv1#V^4LKaOT(1b@>L zAw?6a=m%XTjX{pa7~eqaUkJL4Lbvrt-M$&PKY4JMrh7OAT|Fut-v^2 zQwop0KTB}K*x(3+^moJ=!|Jgz_g7LRrTSW7GrY% zjpPCSWT2ijl8`)xcUn_>$&-~-9VfsN++&OqI)MVPO`0jI`YBzcDeH`XoR)KH_l1oz~Jka7wS zJnrjNm?%2qidDwnOK>7V8JdZh2~?IoTKIIYtqIRE9h&rg&wqCzmWeMo2`=4Ed7-%D_g9oeBB6ttRx zwDzE=AWY11PA;$nH;kU$eW=YtgnKx()p zI9xp`ujlW2(&-XhP=5XXTVkQy`!1jfA$&avzXUhuk~a?2lK`j1R0!0Qwu15;(h7hj zxJB`IueCw@Ks~9mU|YNhSb_tb7J+LasJdv8DKGtM9*ntok-v!K)M>dEkzFi?9pt}m z#5paFKTeD9AdmTC38=F$=yi&~#bU0c62NJRo){KgWG>y?hoE!$sNa>sBucO2>q$e2 zrHG^g9#BCbq(rH@NXGg-umq@izNN*v>%Zv}oOqoBJ9h3oJ?caLR_y@ZK zTs`S@3GSt9xs!D{M(Bgvc)3|;X&_MHnkn}&tUwy#E?!^>E@ZqS45%kre{i*~h$jEQ z0}8YQT3niy81fGR%=mheL{$cPRn&MTW~Icoq%3>9D%B8IPb!h9&Ty^Dx30KsPv*i= zQ65}Xs8Wq(u4$C0v9+$QT`3nuRT{spZ0)S9SE=b^uI;~A^>Mt$EeWK5zzvKI4yjc3 zN&ri6%ynN>$_K}5?;C=u4!D~%K|Fo9CAf9w`kxZ@KM!i>0H+mPk3rNQj@KV1)z|_# zubFy6B=(1OJ+Qq)hN7*1x;`@F*RRBHc4Zem1~++CxBd1vpf=DVYNaW zU{UH8`jBSznik|li}7l+W=PA?LF1K@I#K(NmY9!LH6LvzKHBBAn4H#=4jV8tADu9* zE{70R1CEDzttgf@fNi}%w)wfWsRCvTSb}qwY`J3A62j8%q}mpMYzOAvc=FmJYuX>F ze&ph)z_4^!sVW;B-M^A+!9<{4y@B_wT%nXULnx#UqpdD zttb7jP7BsuKGEs2+D_>}M!F7}z}J&z@JnzLZY1>f|2nPjhrgHLwvfHQ+@yS#U7#WdG#EC(hqa>ry}WT0gT9NNOBT5c-*y;`6mrr?u8|eeLrZ z_fL?>Pl~qv2qWAQoHj+j!sGxn8T9R4zkux^)6swqehF?HIfz{A74QBG)f_srHfT0E zWVbeCkv}xw1-cW$215@y81?y^QsL@Je=WiJxsL=Sj|A0@giMZvb&otv9-a*uH0bW` z#*)%ggA!RmfC+1ak6u0+`L~{wJm$_inikqG5z4kwjgw*TkH8;7$=-*O)uKq!YKLY#1yyRqN6iPky zMQUo^Xlg-isxE(GnRTSOZ>m{{svQk05t;_dP`^UQsnFB=$3?zB_Ky-KmJ~7zS4G@xPTYyXo`xGkKa+OQ^Yr9t)N!3!;>>7pE5N*rrI=$2$K> zLaono)Gcy&5T7QYW&q(o^#xE>0Vf^{AJ^w@)qORQp8nWP1VpC-`e3ox#dyjuKn-dT zJ_iV=c53p3o<*oBDd5PW*a$q})1k)W+vuetww1>{3qBrGjd0R#`{jV5l^Wx3-Eh)I z^p`J36E!sd?!M9Xt@a$R_I+RVVEbArv{csfr6gsoh!Tb}o@vLDUFjnQ6nz}q+JeXT z9y?N2!MQCE85Z?@oox*uf&n;F_I)hn$G-Z?uple|-+`*cE`Kmuhd!Cfn<2&&5&8GQ zitT5EB4+<3WtwCQ)IXL0Oh)}R2unKTu?96=+V}W*-I(fBwAEubgwC%OpHRI5h|h5<9;}x=w;gBavqVaa>;YvHK}YwX%eU zB^%EZWx0wML(}itr4&-3}QE3>wi2sh5&R->loY) z|E9lA;%HCIVgf3*Ck_X#U$OuHwDs0Bv)gA3azriXX-;QTF95-{fSCoC)ICdSD&3p& zC7N^3PfkeM&To>Y5n?FkCU9`01f*^ zK|M&RU!{X+yoIYLN$Sn~JMM<7C)qXc{x9QhW*@Z|71s{wJeACI+N`UALY&H;^`{#P*65ahota7a-Ov;ip=5@~bbuRe$+1WRx zn$CVPsL$G2`BaE@E3UyGCRi;AR&JYUI{rH{uPSY=DVtG@a(*)m*iTnm!PS1CTTeN{ z$?RuRq&Q#faexv+CVBYQRU&EcWp8yXbL9!0^kXYuT+IIk9vEbZ^(ZbQT=ssKRbru} zJ$V@B@ODX)(OP||pIBdmIo+j9jD5uKWq`!duQ^MGz4>ZyI(?5X&7zHwGCvwJkqHVk@*W(11wI~NzjyPo7mM;umTt)< zWcJU>|Jh_@au|%R=$lkFHlaTr3S?mM877EzCCh> zFV;%)%H=95`bzJ-i{CcZysdt%(l)X>H=hV9N}RcxbvESZ2sD^6ql*NW>|#EiM5ir#t#DVvt_8E!S@8KXjHIx1hSAa_@Q3zVGzQ^Lro)y_4j4 zGZStny0iM9c0n{Am+lkHS|KkueSO+3xARp2;p}7nGO!t!bHeKCxZS_%|1eD|W`^b~ zHBJ13jC9WyL(v)Y9ZJcqkZWe6_LT=UXiOXqW=DJ8E6ON86Q_F45K9o8%de$*weXG9hg&cxV*}=Dp_0pc%M$ zSCc7%<&OV(|FQ@=?zGV;1*X0BXHEJq8SUOx`| z{5s9f{9b~)nZi2V*VafEb|h8mv@l*=<*3nQ=i{VFh^^cFlD=oPkoM{+1AR!0?ko3S zy86l6gl=5t4>bHQlti zX<6~U{&(Z;Jd!r!II@XPc>SQ=bb}RS;*?G@+qG17)+517{B59Tpft{%N~04|xuDcq zO#{}N+h8qAMDrRqxruo!ap1Wtrb0!Ik%*>*J`fpqf4+CiIOQs!QsuGV{0+HM$aJ|q zA$n%&B>^12)YBtqLF~|{42Wr)wg{d0+hNZ#%vsl*6eJg}gx9Y$uUBMCzvNniIrf>e zuPp^;S9&=WnG&wT_7rdPz}d3lIRB-jIz(gj+0eI*D?&+88DSqHMj&$RB*QH*e=ZzE zWQLk0)%@5W*2L#4ZwIFd>VnhQxy{`?=2bB@>!*7J8o3bV7)~VwVIU>pVT%C;2@6Eh zC|mOIHN7O#Jn4Ir=({D$DQy~Xx56u$c4UE-ah*g`2;%+G#)O|L5+%XX$PjBG7t+C~ z!e}+m$V?5PMxhC~qi2X_mbm5Zoiuzpu8@ZW5KDyWD%~MLVMwnj2nbwIv(gp`kDO^I zC`r>2ziN7x)1Za%EouJ^1CHdC=h;8C6Hp5F99E>RgaTStZNd&X6?XgPZxvS4tjqFb zOqCP^KJ)fD-&Ia4ozN0oC2B?~Tv;KU(LX`qXoO#YG5DP_NAkG!MC(XQTub-KBgKciEu~USI=JM41WKw5X0Vdi7;cx59KCsGBcQ=JWG}G zKtS>SmAhsh(d99=#y&yek<|9GSwitb9eO8sBJ%68Qmm%=G)h8os z=^5A%x9y`|tWoGxgP7AUma}hsDC6oE@ajyy7#oV{7tuMU^G*oPuou%ZbuV;51e(=I~Z+HKxJdNE1rFKh|59Yn#Rrm! zo;0EM4soO#AUy$H$g4(&1kaoYlF#+KZ?F{!%mhDx>W+%YUlV3E_aqa^OK2}~vP(WX zT+~yHrFMB)qBOky=*E~v&)ZLHLM%s?iV6n(QE#7TUb^&H)&tci@o-*T@Cc|U0ZxnO zMUI-gm3GqY(nllD!#_VQmPj)gdfT)3`o=YDWN;$51<@j9U>kIK+J zXPwybi!cgXN(;_|>JL4-@561w6woDuK1CS9yd$8V#5}REL`axq8zdLdMf-(EG$iLJ zT)vcfI9-lFVAcJJ8?#p{Fzi?L_2>zT`0#VL)b$f~?IJQF5|+U-kDZ&Kv~?W`&uOv@ zv6l1eCTu2Mq|}Q}tu3~c?FFw#aV$(yefe?y0X^@zvKwq>r17mR3lLKu>Vl`6*3=vT z3nT1wKi<^;EXgXy>+&gB+EmhpWhwRL&TFOOpP8xqYCdrBr8e+d_9LT}D7*@LUPO1q zmaW+`bg|ps@aDwoYjr{aX`$zs&%@K!SqJ?%73O2~BQ)M-k~8_I+`Gviu@B8s?ml(8 zn+B#3W^kL6vJ0be18qcQ9nKeO`OpYWZDd)x+)DkvtNe(a>{0w7|LzykzAWRJ$b7dI znkPY2s-9Fi3a&A8`7Vl%98e#=BVv*hPnQYen-g{bW4oV9IjD1EEz8tnGx@}ANx@|Q zGvKtcegs~1Gd&aK-%1S3DX;jO9M18++UtJhv6Xf6a33VIVfe)Vajwbn=3-60%B@$2 zpI;GK@f1MoWSsIC#SkPmbv>o&S-}YM=XDAUQXS+_ z;C_+10znPCMT4m)d|rRI!vBKeTbd#t8ZPXZD<{aZfk1?qdqk>ZGxtZ-EmmL&PM~3k z(}z9;QbPygooP6Hm&t$8*FZ=Hyvnmy-9WP|#eUm`?`31jka(ftKv>CKfOyJeQqw{Z9S4fnlB1lv|Ld1q!oic$0)cEDp+Kk17$0?=P3-|Ah3NecXv03 zc|^fWK+#)L(R<5>0}HuZAt%5G;YBD0inQK~rsc*co`kr4)JeM`v8!Mx;6;xnbna4& z6i|x7w6gAk*r`8KRpdvxwLi>j1C$jgTPdjqa9T>q6G|zoN~x>uxV+T5qTwn8z~R)p zN|{Jt2~Ii7O*tEIS`$jte17yxiiR*>K14^(s&e6TWrjoL;zMOXhjG9=4DR>_Gop%Z zRLb2{Dr`FG^x9qubkL7@R&;gdWHhG~%hn#MBtK6UM06Tpyx94`SX@1+D+eHA0bVgR zErJy)AM?5}(Ms~AUG)GFgLfGm;)qx`i(0=$mmxsJ`s7&xyu>v9`}4Yv)7yuitE6vr z82~H{?K3)|HnrNJBjnw8*m@!d@-l1lo+4DOo1m|k>?znHl#hpu10sr~TgOy=rA9qj zq>09fIK0`5#vZcjqtZ1W@D-+!#YN18RUQ{nbr90nS?!jk_M&G{4HwB_&FODpS%pine_x=K5zQ*qNEJFdOg|8=N-u+vKnN#SR<-dD3f|9f!vId-%@4c@`T}Ss}{lPrG zbzb}u+_1~w0m(xzL-m3N2TyPfsy4mQ zNxiT&y>NVkDu`7-l6w@GpbH0_)|%d<3eQM)eS>7Z_+pY?y&lYTp`wXy6;(ErO4++R*>{5>n=_Yxch^1qzcM_Xj8`#(!?6OC&GUERp; zf1K9;xdb=arv@EUg9=ytm(%*cmf%_@$C8c5L;uTZP0eLaEkplWg1cn0Vf613+*-a7 zZH38|w*TR@1WgHmM@#-)g2Owlh3NxsFfa;tDUE<)>My6ocAr-8&l22!IIUSqJ1}E~ zDNwUw`p0Qenz6H)aXbVT;$~odvmAe%7GIbd?~oUHkLiWqPRmS?$c#A_e9030+i6Lg zi>R9;uNnVwT4CllQq0AFJ1ujmDRYq?6xYIUrzIn3aU18f<|Tfa%h_2dc>Hl%Lta8} z|2L;KHHQL$*!Ktt2|yr_fEF-U=L`n@k1$qzk!-#Hkv&WXg=mfs{$J+mG_;X{T*S>D zbqpOCrBeJ{9p&@gpR;*9+FoR=|6{JscbOB>n{wra)no@SSLY?^y3a0LmN$x@tCM&! zn*WZv)FWA?ykN5Ea(MA%XL;dty;Ty(`#`f`5(s1UHm}g}&EUY*L&F#$)s}c+>*Lmn z)bl)1xVgH-Y{N#s>+g(f%Y>;oGl4Kx_dOx2p^9hI7LvixwP~!ka6asM+4s3N(yPY; zHIQdL|hI;{UWoziN{iAi`*U6N6outLpd$rys^-Pza0dsYQN1JCa9vmcY zn8g9$>dskj++1CN?==CHV!)_7bP>+yVq*wtCn`!_`^$8UQO zdd}m*SeX&6MN9Ls@$WHAU|mF0dsZ1>_j1yDmGD< zSJPMDw|`k)EtPh-5-4&CuKX^3ub7Xu{$9Cs3a(ZPswB6bUHWk89=f;s-!N9cki_L$ z!n25GUJ!5IIxts*DO&D9k*NoH^q`<$z}zwwbP4w$Q(H|uL}h0?KK z?ZAPn7FPSlpC~1#jngnz_4@&bO?P%6HuXu7cg+?q3ad?NcoMMMGys6B?Loaq`P)NC zN8DT;5XKs@h?Dxji4>zS?$KH_|21ykdTD3k`LONv!PGnO_hSQRPA+XvqKE}|XMBi{ zNog*xC$kJ_nQP<0)s6X7CmPQ$ZN-zj^B6|}Tp7Rm={FU>varJ(=8XeaHwDFMpwVH5 z5E0o)F~*Aj3S*sna=6jPTPXSSwV|Mdb>ej0ArQv;Jy-Yrb$H#*W@2*K{x4vz?s#u0 zX=Ed{dxL+v%ffx*#8QyT-Lqe zTWR3YENoLv@2hx{bTZwxMj%q_D-<$IKmiTeu?#+=_fQY{6K>E6B7_r%VYo0>mklH;ZUU(Y;a^wN zi`-0J4|&AfozwZ??KAcso2+v@pH4hI_WufFZKdJC)#+RvMP`;@xwD3klTPZP4-Q;? z3Uk?d1E+X=lY3wJ`Mvk>m4QWRxsLwWs;x|+7Z;R_ln7N)2H<Ubj}{<7 zdRlM7w)5;m-yx3@?pey*&Al`Dh#^mWxNiTG}|v#v>~x=Q{N=i0-A5 zgFsr9aJ?A*55@7_HY(>22C`E`3SGXwd#Ipd@c!P1cP3If_nWZ5T-{Jvl%uc+R2Ul@*E0cofxRQEEsM+g&)}Df^P0{+ETGXS23*dD~McLdnoSd57;;5)x zbH7XxfCa)>yG^nI_Pz=LxS|@SfvaDk`PHd*lB?IkAzB>rNY#Aw^==E>Jt6PQs5yEK zFDT;gFctu=y5{k7bzvpZ=>p+wj$%!~)$_{+_F2Y`eSgGic9M>D;@7 zlO|*7Qp}?2qWHLe&*O!Xu*;(}*B!-r94X(Y5vy5BERJ@F2zm0G6g{}#S z6<*Oic=W`FU}EgL#rqbTg7v`P;7ZDPBQ%M5g6xFwLp#CLMnv`DSE2CAHiBXYPdXMi zqQV;|UA?u{I&6JT}z0$0-Ou_n&r4USu67027SxjLii zz0ber>Yi$Bjvg5QQi8W^?j9d}X{!5GeL7b+zcaO4-&(WUOnJ2ITDLcXo2x6_Mcg^r zd3V|9WToEZ5U8yk{$F!-Cr7m!$D_|~@5bMDJ6d#I$a?jAuC4+FfUCvUR|F)kNVIcM z6NrY|lW+<3JB-!lNgd#M#vZKGd>vW@;^1?I?s@{?3J7DJXYk^10)etcdC*?`B;KcC zte*c#u+?D*VL^cHmj z-_i3m5c9Lp^IK{46=MLyW<=ziz;?TSr*n0#_OO>u{!a1#$6TFdzV6Lt*%tk5BC?Oh{ zbR)*b*^Ls_XvX_F$NvYoV*E2#=bR8z8RvB)hQ|I`7)NZ9eymSmLIxgOWhW%&Rwnx9 zB&0LOh-yZJal{pl#=L1y#DS~Iq?*8_0{tZQb_!*EeiSJN>6}!Ho2vsJVoR!jj7esU zHGhoJ3B+`tf~)rU-p80?eSTiWGRT}36bbO;A;5|c~ROGV6F}y#*)pA zxmlH=I`#%i#s{Sa{|l~|z(8ybIhJX>pJ~eU)(k&a_wWz6vKf18*YWlMo#`N+b;k;_ z8py+~oaLgNWw`(LZ*YZV!iBN!Bod~aeB-*Fn~he^bhpZmHpsz&E9IO3rkp?n5YZTy zR!2^RcuvCUTwPF35`XSfuUIen{_5} zbukde;!7&wuPzZ7FCiH(=9I`36)L=W6?XZAx>VPoM6kM4a=cXfpj3jqRLm6wS>YfI zF1?#uiugTOS1J=+3P0e4V*d(bC6xiH31+_BXg9|M0@FBHFOhTjl*t0E(GbV#X_#>?%L&a&YnW>cC8{e7Yd*Txv;}{t zx>(a_4Y3~KNbIcXC$DNZtQ~T#eP3Pkxw<+}1zu2H+jycD z1lPkR8vX@Wn0m^*20okmN!RnF=te=CdKP5kRs39?s6Z3%VWW6W9YKGc_+isJbJO+H zxjLJs8?a_R$p%7zc%?Pp6lhjBovVXkm0&H57|?vsd7xWnaM%be*5Sffs!jSVAE}X` zx&ziVYslYob>?m#U20n0+^`sX9Juo8YTlV`_Ht_rP;K=;K~aQE{Ks4!0IuRO?TIz* zn2Gk3uJ%`$w%06eNH^fc2;N{iP&I9-Kp5+=qv&+5uB$CQucHFi3biL&-S}8}*vSKY zHISXZ!&s_a7*q!q({b58Yw&(scSvU=rfbNpdj!)xT+{U#(~${d%bMuUMRt!NdvIYa zoAwETp1_*UnNM}1)V)6?dw+u~mfj{z4=#)q($$ISg-G@79d^ykHWMcIk*W0_9QNYC z6-5WR)F*;VU?Wx5v#Ot%l6xsm!Br>)xb_nlYwvee)+{uLySD$Q8_D?kKVdBVT%B0* zXYtz4l9QjMk8okEn^OG(YM+SISOI@0SKBXmX+Zr553cZYb(hr!RBHRqhJL!-H)xCp zS7uT}7HflzHiMSQLsqpzHu*!zrUVaIhaD~r^SZMD^N!Dwhg~iW0iCq}6I>mQpw~u{ zi-x16hM}PDiim-j+EIte;fSNZ=IYjlqq;|PDTd^NnPEj^MHE9R?qlzb#y_}^SE!BW zu#V>@gKF}a9VZ97`-n!;D8Tj;4n;(b*zspl*NqN^5P<*_P)syz=WZReyt5INlllj!D!WC+d!rZPR?))&MumrJp!>E&rT-8d~n^P zS)OB18g@1tH48|svtbmpl(Wl5(-hLfq}Y2w8?Zn$83IIBQbYt8Eg9)~SwR?Jw4@7W zE^C4ofPpnrDowVp+S0&dgM&i zhm_gw>#5PQn_9SnC9@J-V76O$&@+3!?+XC5KBj&3!-1=mCA}$9RpU9A(8;7fJjzc?UpeA--+` zItvafFZc%SgO#$a(9aN`OIe;WqRO0F?MYb*VH<~H=Yh~yH)6FkWv$d>4bWMgQfpAu zbU^y_KNEel)T`x!q?j-=k0PQ-G|`Olk6#`?b_JJv>waXa!;HsqxQehF>4mWq6 zpWkMAwY4(^!`UtLPeH(LVTp>RcayQCSJugDf%F^dXTBhgZz2B=zEy?=J_PHodb@sReY0;XJDjAt_d65|gxAQlPJUcq zTN+IJRdRCJ`)ViuGRz+fdj=pbAe)AU2AtRvW5d>g|omXT&L0a5Yv>v8Z^u9g5n zL#F1@D|5}EVCSiimma7$-fs>(bJ-XPKRb52&?4O-P&tA{#qfq#&DdzEqS@73QoE)$ z6#Z7b58N$3j%-_x&?f4$DXn^+ye2GuAuKODK5wA{?KN1Awhs@no;s4U=MXWwDfp(N%cUWogd()Q27FYzUh!-FkD?+(2jb zoGU^pjEmSaPw=dZW`Y9O1H`Os=P=jax9gg0fwr<)X|MeoxbIqgs#Ir#zXe@27k*Ux z3QO~d#Ia-JXrMCe34HblIGL%la3=dGfgIQUbUf@VZZ43Vce{RfCxv37NsA%l8T@)<_$j`LIda%&bhR+*>sLCkq3rI+9usLOcy-I?T@rJcMuQc}{Gekrvgu z(X54h2jO8fFlm21JnZ2NjgeP`EO=X(8oeyOt=Vv!E5VC-=Ny@)mS4t!czd_Fikr3& zv1s6~amLw)0f}EESX5 zz{ALer^^JQ7Vp1PN@}*BT;~c8z2Q77k^MmPGg{)-*A52B0{ICNx*{KnK#R)6$5Hm* zvl(?l>jd>YaVvTaeh&-JHm!zT@)WSMmVXnFKqSv|$Jm+BaD|pSX*I8$vI1mU10$t( zkr9lu$q;L2Xfk0-Cyp+jl~%F~<8n@;Yv5+s#e*xNdS^*r@RaM$k>iZ_Igj0GI!%CH znX$7lEhIS}J1@O?#g-gP-wu)e5?DUZtDBf*yt3MKF4eO=;oLK~E%(dU85i|CINWEs zcQcWieM`nJhnvGD#+YR{LJ!cdo<}EqEtDv@59?QT!Au5u5GzBS34=LL=VudWrY?m% z%8O#eH4R``Cjm}Qg(CG%ru!wPf|eo>`X3kBH<;d%{0O}SzOW|D)8hH|D7oq)leb_f8f2H%%YS3Da z+zB+J`8aJ`7<@rij<=8RhI~kV(6i@kC-mB=hZyy>C;D9qRU_-?T^ILXr(DFTb(Y$Q0{#`&&Kq=h`V>ZWXv{5TvZ7f z+z7eX{j|s`CrmHdCfwqHISUXC^?Rm>H4#%5lUeZSBy?Il6eeYl(CrcmQ7)prdO3&i z{>i?&&7&FQrB^gGFY_ADn3I3GaGsq`QbZ?t#bS})pdBqC!gdOms5E*Jc&Eb|Ouz*_lvNLdDVx zU@iBV^aOekfAn&@@Q`*!h^3Ea?HK7>rxGURqUJlUW7UQwi;M)j;2Q>>P*ch#mS>sP zMr$s*H4AqOU6WTh5n9@Xf}hV=B78xT4Z6+WubrjWZ(-ED@7F9ZdQzO?Vr#W!Aox>F*ACqHnz5$7d_k2_Y(T}A}&%| z8`h;1(6n?x>_c5As;o#TF6m!#*hx&IBD`C^{9Kuy5FQvOey-x`T@EMpbffj5oOhoo zJ~MidPgPCbx`kI(2UDFqs3a;=VuBfKU7~`JeYwzuvw31({)p&U$AuKOv<5L0*$pP)2rcbHzNV2ewO?CLXAz&7M`VY zGY4DAdQv;4tVb1pdsIW|twGEq=S5?yYvzHa_wj>rqBbm5AB`1!K|te3k7k~`fhb&u zM5ZWJ4b^(@LI7Ho_Cr+dp$k~ImwTb))v+J zpb-0O>FLGDP7cFQAur$OakE?LSs0Fw*ZKP>EKgbZCv|b^G-r^it==8EKKk|^Jok~2 zwS2ST)K3qrM|U@nq)Qz5vT!|s(cX^_G56UiK<4CW)8xu+%GoEM_+K4r2VV2RF_01|eJDrymty14Zfl%Ct$8#Ufyt9t2`wX8<$tvCe%4)`Smg3c} zZ<6^nhewhV!Eo|M&bqG>3TH2573cmevVnFx7oh?Sun_Ty1hy&Z=DrTp5|C88AbAGx``g$&W~PNV2tQ$B?zGz3 zXIEC55Y(y?P_8;_xDRoN7Zo1_Odn6h&B69%)RH(sPoYGIQkiIuEf~zu@4`qa4x393= zzB=E?F(W-&N`M1aPJ|~Ke7D6yn)oDT*ubD0HBDkHM7RpqQXL0_q$Ci=Vv&^*XqK&z znLX83ias)K&6nM7oxk8~fRa^tE^`{<`tFKQslbJ?w3=_L1b9i)*IfY8R6_n*HgZ4b zZtD6pgT)Bonoz?EIpnFi3Xn57Y%!rHmPh#`CH=df$(q*4iW7!&sme>@dt1mZISGICtg%CK2Z1n^X7 zgA)`<@uIDTYochOOem zSTLms7@kq_DI&Ri-aF@7 zau9=Z1`A$NA=(Y^K(&}r85sOr9j1dWTj5D_i;AKrYlU*rdnF}8DrJ~T>6YT~H%L}Z z3of=LrcwcfvEH`>OMZM#ZOGM*LX1k?yy7b#a%~W(fkhPvV>L;tHsirn3t+1%6teKP z>LWgk)zziiJ)zpO+SN3WNhRk0c(q*&1n!ko8yHY!BkdZn=^l`5DidiVMiUO_sg2jD zO{l6-3wgIATjh39fV9HR)%CKdG{V*AWmPq1nnr5mknvqQit67m>dOON21Sj)te+Q7 zTX`)Xsy7{~3=#Iu0@`Y%eZfY>AshPBMq@{|2M4Y+JH6aWSOa=?GSoM^ddC56W!Zz2 zZD5?yfL!Y9?jmT#K(bDITS9&FBI=$f%}Jyn=xclXmO2>#uAnHqs`44J0a~Y;6VZLZ zP~jOPt+TdT=iIdzLV>xuPmIZ6xMm-DZHw?oGaU%TbQ;ED)#kXQ&B@x&Tm+Q|kX3-% zDYD`O!dO!Muky47y0y=!LFEy>>Aw~>E9+PS$mhgW&i4h6Q4pwU_>ytHXt{MsT$1pD-4lR(a>^S^hg$cgYt(Rsj_H z5$<~63ePYp{peafPeuJ$Tm3k9{eS1`)<$A#^^+&{Q~rRf;BNi&f5KRk`VfQv0j_Gt z{(r$YYC&mjv`Ul#M{ZaC;G1QZCF+GHeen>I|A}vsnPLLZr%FHgK7qqGg;3Z1t}{Nl zr}(BbcDdM4kKGE2!#CAt_vNF8J^=UzMer_vp8tDOr6b)%V^!fFy=h*YDk-X!`FESH zFj`M_?WN9nREpnWQ>%La?e!B1&hK4S*M@u9Gul(ssz0oaS3Fyp>aH&T0pJ^;c7$Z| zYkaC(ZQSGb);z5RS39b$+Fq&mMygHKRPXpnyS_NVs^eGbGP6GB9#*?9gqdfhYSh=c zue4UyPftr;-Z}sg@y(!09%r3@MN$$Q=R}BGr5oM=>E0u~*QRgGz6-+Pn>IradIP@K zW@bl=vw?gLmZkxm9~9&CU~d6@L!jLDI#{fZNXt(Is2#b9!+CYXWbFo{0&nuaDk$8QxU-W8eiHZ&H#l%4ls z+3Gdx)`kT9T zzNr9{BP|G{gxEKl>2+;3aQJ59Ba7qeMk^e@O6Sd@c9TK^V-AgvUOio<>k=96YOcTV zZo&+F|Gf=RJ0iZc)hBxWlS+?xFvG20+3RatpEa+us_`q$=`}D*E8y`>{*|lAcWQ+x z^jvL!japuxB;+*94Tf9R-;pEahqKIyh|vUa`YeGSUd3yQAYnGWFf0H_Wu zY-Zg5B2YV0f923H8CGA8WyU;G18PU(holrU^))SkZ|HxaeeTZ?QJ*nyV2@n)QN!UIpmt=n5y*v^qF*aP3F&$hajbDRmgnhXIt{O@(RD!WsFbAZ4lNyTKFnJr>xP=1AW%DM=DLUA00Oxb?!Bh~~z>3Y)N9CeV#BTbB3r8~tp-8mXh#XqOQ z0v{rp5Iw#ITdx^_+R^1P&8IKvUXzn9%3iGc6qyLrjwUS?%Jn@VC=qsO1y(jwsXrQD zJ9;dktE|S9{WFs|VoC7@u68t-A(_c@u7-5rm4NMA`UjqOvi_84_L) zlJ?Q^o$UUtB6Mh;1uyex^LOEV58I10qMf5X4rdFZDe^4=d{fZT1RVIT7#IeQ4S9Wd zUlf{eL*+U)bmH)`SS=J~t939ox(}?goj4j#kE(#zY~i?r-f1J4aU?fZ9=Jo};1RL>xz4jjYfU0NoBy?=Q?hcZnp_eSsVaXz2Ey` zI2ERc@Vh4YDT!}YT_AaqP$T#80j(t#Sf$%L>9(bOmVm=I z1Y*?oJ;F(Ey4vYi_IgForO5!kxj4tzXZQUlzll9qc2U327r-~ZtCrWZ_9BS0MKJ7A zK<$XB*?(vY5;DFBwcPJ^Mfm07@XcSfqjB6SU0H!+x3!UfRe#V~t~VNM3wL(*|6Qds z9IP+c%505)Y}UFrI?@B+n{HcMh4D{sJTg-AyC0f69!xB$mseFE*~*%j#_O<%Rua^n zuF@5}sHTxxqh?EkY`%4@BUWGcN_Cw^QSLCbNTC6XTp$3~u!Nr&@%CmMTfa4de64!}2EkN&D1;qVP+(NnRqPp4p=`YIf98xS|T z$D9AI(!Gc!Hu`qET#TAA^hKUqm(3^} z#yT}$l-_Py;iVL#QVHEkcW+v?3u~DAqPbO3GreHU_8b=G_Oj-8mF}@-P;)9%1+4%Y zhA8>bg2y+`pXhHtt>O+}i@vZs$uYP);GFU$D#wM8uJmQrgO3Y|*ha8+D_z*paIX zSUXy*`CX;E>b||tvj3^y^x)K((%u)`+EMD!$~WiD_6MHi=<7$@XHYOv6!?m3_vOo( ztCC7Dq4>2U6x9yuhaQSn-{Z8XdnJ_zL#_vT+O5}_4vci3)S@0|@Kw65SdX){p8F5P zuatTUb)f)F5zz;L#!EErH@=bD@dD09R@7Tw-&;}Hn~%-&RgBmW&Q*BxJTQBhK?kgpfq<3*f*G*~;z^$ptb<(hSYwOU5- z1jN$e){b=I0`7HDXz*O|*a=8e4lLdYEOqeOM+YLt{O?3Ts7oRB$M|L^h#W&aBoy4H zAKc;ar%Lx{?dTZaysxE1$AwJP2H0%ECU!!`d4fkoLl^WzL6r`NZ$yK~;GyfaklftB zsg2N|biph5Djirm+8qo16&GSW>mlwHgk1^+`M={T-7&uTXYJ^;V+0+j(gj2u>4(3u zBuG-`|F{$};}Fj17>UC-b&&$&k>>-#nN=biyC@dJMOy73!q~hJuH8t<@hDuCt~=^t zd=xoVxQbl3{BDp0eY84$?MNDk9MVYfOb3;`Xk`2=Lx69@BDCY9MDm2MI=<2$e`Vnq zW7!>jn>UJ@EgV$LRHS2?Yoj0Ht8`4fu?;&g_Fe8>tsMb;lT$|-J)Tg!8%Le?vIiDhVvtz; zFh2hn-;5_VgJUko_`-*YZM$(UDi?rPX|GEP4M=PORXY6I(V$pTpFv`v!FhmTs4>Z4 z?P!)hWe!W90xZj-V+yWHSC_Inp0d9CZ)-<84^#JrQVzybXW|LV1NcbM6h{VWM+Ueb z4_Bo-#y3_e`w!D-_mVqF1-cE=8J3gb4CyR;>9{K0aym_YI&ngBWqC4JeLAyv#`(Pr zA%@Jeh8g@5sSq*&0>jKx6B)u2nYgv1i4>9i%z4N3gvfMx!!&?f)F-ku_p*=-+5f^f z3E77A**JXDll?S2>+m5g=qvC&1b6bYZr8uY;hVkJb__XBC$h{FUe9$?K$p2sN~gW( zNmUd7vv$Og`+Op2)&P=am*tP`Nd+mvaE81{@x0&oCLs@3rJDdXzPvPs{0y>uKX9h< zkf7D<^#!y1x!v5%z5G&!f^zYKO2dL`vb=1o{3$kQ=vgQUI{(wx{F*;iy4Hk(*ZH|2 zo>}PS3la-qLl`LwNs{Caa!t;@lmbj8|yGiwYkZZ?U9B#4vfl9#EYF_n&Q_2& zR|PdqCpIrPG&k%wEgIF4vef|Q!?n>|6x6(muhNCAG;bBu5D7I23L}WjV4z9|Pr~6F zL?e2q_YDXU8#l|)g7r5L(8*?^O=ntE&Q(qV7h`NF01K~l#P>lS5Wc0y|c9KHcn zI{ezvv*6A^uyzFSjc6aKA5(XvWcLN+Yxs}OD1dJyy8>3bQVzP)j61>`yR!tkt&Q0q z8~5Zhbtg07@y$VNW@Aq!qRX|9HPNWIo~f&dskix{7cJS_VBAAw*8R<+yH&ln34yE9 zr3mzOH+JXrvF0)L7XbSbj;qrBy>_&4jBoH&y03`-5y|eFRTf}nE+Bue9qoZCo$(;x zD-dQ3z&Bv+h}aba2l(cnwIfiaqZmrU41y}%X_LMK88qGW5KG7)R&wasw z@g%>4m<+K_zdL=cf4v2A{@VM~Smt+puJ4cW&DCjAk;C`fOoP);$WB6r6>SEu^uJea z8djekmRNhQr174}tZJrZ=my2G%G&QL9SOw;y|s5j)6BxmBiEBZnBwt`7{!Ri+7Kxl zTFzwn@wNAs{UZ(l->hM5O-9dL`=DzAaa()$vS}2o9r;a$;Ro) zX0Ud|JoVOQJU@9-M&m=T3>uGYrdT(oaxvgR?jJrGeQjzic{=$T;x= ziKjLQKy5Z=hYlgQwWAb7q6x*C#wVH+WK^MKi1XxuX|p|Mvk;A0u8-r%kXgRwIf3T6 zlWe0&f56R-34}C!Uc7m}jE#iVZ2l1&LQrbq$Q6FkZb3O^LA7~7{o{h>(E_r00i^Ug zgeZR@DL|?ZGd*Q|ewy;cTwod;l=SYIF0O`Pq+L}Uylt6){d4^*1x!Y zwMrpRT3=OYUj31>iVpwElJYyT=MPy~KKcf6Uym`HSJR|SgCL-(8_T8;z-#8H2ner# zJ9+(k|A}wMoxP{wc3r zQ%I`RcWKJcztHescJRmz^2@0|ms!XSn-}OllB%-)Dnos0n_cJ#|J*H2iKhB#oVswz zeJQ4tm^K{2$~srFK~^xZY&C;ZHCe@Qw%hoo9_G}4Yw97Wel4d!!a!4R<1@5$bMoWY z>odQ)Lr-*@t!RQc5Wq1ryP$gc3q`h>wh$5qPbt{|q(=VR!q&hiCsPVttzFu%r3-fO zrnE)Ya6~~0E~fVqxrwth8*qA70y|24Nzabvzn1i{8wi4nh@8}QB0G|n0kRXJWKQcO zK$!VS?Uu7HZ9=w<&y#C@+zF#PQcZ=ZB3D#SP@(U2M{>5{@y&S=2e?i-9rZcILgM99 z89=>wzYUlIbP;7JD8eF=O zrILwIxtP%#L;U1LpXigj(kU6rYVnify5^p@r7rczwo~g0YsQ#1_j$fso2)_8zH;4Y z8A}iRpvt#r*1a;59E0RdfUgpy5TZ`0If&G98oW9A)^J(pJCw&DWY%`kMf>waRg%T) z!>XMUvEPbDT6;|C242x%ag3&2kqlMv5KT&U5SitDD!;c}oRq*M&E~-pPk}2$_o{F9 z?Epbg#|vCQd!o@}qD1-td^S>5vAJ6 zn7pN(B9w`6#^8ESoPi}=9MF@c^1c=vvNyk%%q1Nac=M(tekN| z-cUSiPiNk$;LCZVttkQ{{W+p|brN3TDEnhWIpBz(G>XLZB9)SF-}oAuNVE0IlQw;1LAx?e0*X%5(G`;WS5x+X@+n0`z zIC>h&vMiO0<-!Q>-Yl=%N?D*`e`Y1d7iLl#XRfB{e8~@bymq8^`GXGo4Y4c~p`ivF zx#b=F+ELZ7TLvcap$&TF%CkC1cO0*=e6BDgfzo|3j;xR-qBQtY?rmVDaO#$#A$E0P z)Jib^K8M11%X8zWy{~jh^+1(Q;#~go*kQsjTnJCRYCHPnrpd@j11bFvy88X6==4mk zM&6H6sx{dPZ?RP9EWZ8IbvuF*6J9mre~$PTOu{_vebu2E}nRqMoo)iSj zHPVuGrHbZG@@wAH0q59u3BoY!d#lfkZ0qQ+Ro$w7mx&`cg-=5JEkbqE8GM%WlBpuQ_H#gbI-u-;eq5LN}5` zJa1~)0ZWf-+m#y0y69asCe^vqbv{Vf=@{RzIK0S};~>`(S=`o`33|+JH7WDCKH{Sc zHQQdVtDkR4ob!>7IZ}Yd&E-e$?QHw^G-l=dOLEK>J-D`=Kgk2XqGzS3FaiIjJZWsWKc{9a4^@KMP0}!t7TInBLG1Nha_VK1j(`G{Hcz(o~_8u2x0_ z7NTFIiQ@<$N{+-{cOG0H3!l5mlNCesZT1b-k(OOtx93RG^Old-5OhS9$()!CE)kTc zzima@x7p14M&?jzk#6%-&R5^wQb~ivbVUio&^6uU%qEmpmSG}BUfoZA%k=2pUB>Ah zMbVBMp-2OC;OQ`=;lNS+(&bE^L(M9NYX(D#14G($6cOhzb zKk`X)k*aV#eavdsMxW-PM8zk={>Fh&$O4AYx~Ki>F_R*1AN`_HLAvn zVB%=w43E!CN=+CCv@SUFB&g`g3d@qV^>L04K**eg-iM`Fwviyp$n>!G+OT)t90V*L zB#QEw*hQLb8SqakIlB3XLdeOhx^-`}{$1Q`MW#y})^!L7on@InNanb~jWvK-mS8pX@>zbXlHyfPAemZb@nv7?svab05aiLi(C{l{)X|5^F0R(fl3``^CBVKzZCf- zC8Smf9w239BKJCP$u9j7H%2Gs3+i0xS;jVQ)pqC>Kl3Tzcj1Jj%Zi*1-hnUu|xw;kc_aFvb z&W5#f=4FmmJOY6|y@8>(N>@LTbL`dLQrq}&D)+OEaTFa9RN1qt+-F|RoG#IjswSRN zRPHfH!Pq6lnT(gSCs?F5;Gf-|=L9=IBoz6<8(K?Uu1^Q9c6aaoXqfpmTW#AsQ+Z(& zbva#$v0lsQB-bk_Y!=S)gZy@o)Y(hC!-a$vL*09dr}NX62vOLs@hygPl_!okl+w+~ z5D)ZQ89xd!&{0oTImr^RI`H^t^lALik80(&c;YK&7);YUq)jcQ`t&Z7(j}n`YQe>e z>?{!San&^BRW9N4&w@!|%RZgR zCbTt$eUM30seRqdQkjM!g_>A8OOV2nn3mwwwtgkA%g-gX-)l$ntAs12weRV;D#X-n ztmdn?X-m$79igFa1sd4XlWEUOTn``JPRyhsHLl`44HZ^{7!6ZZ&m_FEdDxi&J^lXm ziz$m^htC#j8(5&}_4$(pviN3s)sg`88>W)_v%wX}k6$w5`h* z#<9hn6~0>`et=udc!oa5GLW3Ge74helKjEWTOu@^-B@mJlue#CFv8#Kf$@BVn}ayl z(UWkm#zu$Q?T-Dv)uf0!BU~3Mli}Z=^hdOQ5Xf=tpHK3kMW0=e!0uc_rjsQOicP;T zdWpd%!S!9x^E5T<)gedrQ4*gB6lNViFhccn-_*^D@jH!tv2NopkX_A}CSb6beO|dT z$;7dP9-BUTQFA*J&LQeNq2=*ZGf#5u*?=tV!0eXpy$%{@?t>aE*~_-DXxv0>Z^StR!K&{w z`RTjIb57V+1Hd<~Sgi9b$?cuinIaH|Me3KtsZ{zTW27Bg#(V|lH*JtO9@`H`C|R)ov0Ch2_U}K%6=}&{=v!tNy>qR%7KzT*s~B%C;K*h#ts?;@C}m+ zZtX}?C0bo208eeev!G`erh~&bkvh_eeJY6y1d2SKA=dJ`xp7d8N``=Hrle|yB=iZV zVyLA=t>3iSYeoP)BdVdafTj=ET)WpR8K?GsstdPO zMAx$x-805U^iy5ym$B9sz&9>hJHdlHgwXJ^0mU|GVl#SQ9TgTJ?ma@CF*4YlhKaT6Cm%gV??$PGakppW-ph{<=qiCa}UiyF{Kk$wGefN#Ls zk)S~oz&HO^r5lfEjatlb16dIoY4%Pzao$q1w|+mM1=I$!>b{`5F9t zO*(4R;N>U(0FCQ|>rNoto~uUJ$Z2CJRVP+1*nY5Y0z zpL$_TrB~LP6PJjh=vFscsg8SLQ!N)OY6~{viKvE3+m8i}QLxMfhR22XPO`+}1l?PcVqZzp5S|7Rjp5lVO3$G$GtEc zTrZ6I?vUw%0O*C?6x1TLi0XPepHnE$?cc(NwKzjO)2k@(o5rlCmaSe+Wv>2S>OML zCb@91(c-Krf3ondpV)L85Hy<@r3;5YhkL;Yjtlo2Bf^qa)5GmqzY9k@v$t=zEKjT~ z?yW?He>>XW=)@lV>dYxIIw@ig7HGB95=w~(?6A zNT}t&NrGAYe9gdr5Hz10HB9%k6EBj!z8X-9^>h4dzQ(sArTiY3)cqfQu0P(VQHA8n zbF1D6I4cr!YIa`M{H=zcRAmMmMV_(}*}I^QNb>Q?CE1^KgKm*vz9uA3{R6$f>-n@O zJ`H8q>Di&M0bDQ4O5xFRKUo}G4*AzyB@@2k*W$nOesJbr-jv?DPxe&Q_}!~X761USyaC5Ie2eRk52vGuM*;_f@@Fs zZk7KyRqC%HAWg*ITfO*;bt=o_9=Do7&z3H3zDAtj#`wTHNQq;6>Vs>}2K@~hH9YH_o}rq>B}vc|IM%Dd(P$zLUFA;nq`4y&gO&#KOyI0 zR$17j=NTq#H!jG;Q)uhYlq$Uz3CDg#khH`bi`|`5o%p zX)yeJ4U+}WgWWz$&5DFk7YoC1AZW~`ATNy^A)=G?eHIoKDcgNtq)Nv7U$SgQp6Nls z2^j_)w<PtKmGsqMtg*BFhBp0Fo0UQ^M3#@P2!>i2w&(Z{dNo5kz~D56Hj zkK4Fjn5Lb_m;Hfp-z-v>!*z!|@H1%~g1;pS@& zzaqoxhjTQ4BI>d_nk2bI{gBo-4#5$^H(oy zEO@Rfbk6~@7%mEo#2#IEuR|E2K{&BvIQ(JwE>HME9AUEM6;h#KM0eBJ=DN^Rc@bQALGz(2g2OTRfbJ@m4l4Y+7ZxRgH2}0G3J4mKI!aOcXj$H< z6ZBWX+K60yv`k)<6kgCw!J}2hUJ36;7|}%P#J{3OMutWIei@Y&6 zL7b{I#(F%)b~nb3KK7|ttUX@PIK;;~)y2Au$2#+pSc*j}fH`$~Fpv`C79ST_7Z*Gp zhZ8h)F{p=eG6s+(xS+mDylg;R#2-PEEEW$gNUtDc_@2dN2Sg?D0zs2dN}rgnl29NP zMY0i2b~CQZF{+3cFKFnKo~k4^&_iS5L)*I(--7v?@uU)!qz1=?yoUtc52KpCCgFNv zd9fIS#F{+edV}OkSjXf^Fkj=CGHsC9nJ2{FP4SPQ*;GmS;+VQqm-JLR6$qLiyvg5w zgsBLn5gPvPg>A*B0zp&EOF|0fYn;+%cFzNhL6ZRHYl!|0LRH*vAB zbS^gN!qarHYN8#Oeb4YUn6J^x&o<{vzmhKqjL#$0%)5cF?G1BYIOTBWzkU*!rbZ?R zrYMf+b3K<+o(1OMdSQmy`(nAlScX&+GC_nHL5O(XcZ1vjFkh39$6uctJ&|iu&kwp- z;MWzCpZD4+Kc|N@b0XI@pWnScKf0cnSO_m@oC<1>dtnm=&3grChQhaaLDQO_U&@yY z;#aRu=8S@D7-v!VsV;^73y)jhs+tK!v(;xUFly)d$p z`HA8k)gmHvR_2eK-My0Gy+6G$wUTYJQfz%;$y_1Xekshk^rS=?tx;KhLMdfX$&xr9 zC}PnUlu|z`J1bGn$zMXZU$$6Zk}+4pvtPn)gcCHvjD_5j>#hN>21IX8nyan=SGZko#k7|1xV9KL0$J`BTmp5RS!Bh zy}=fgTb^u~ebh8Q*|Y=%jat==QF8@V1O+^EIoD2+0-#fo9c{4YWxuFwnok{54-={FciFT-3egYXpMk z?fHYZf=p-z$=1zBE!WS!5lL#jfNl|*YW*!}z-5C zrrHom5ZiqYu!^F;+NR6YffFQ{T~nd!Q#z($$@_f8bsd*#K5{se}?+m?1O=y*8Ovh1E3d%6EwktYsP~R zo8FV9?Wcu%p{|&kB%+I@e|lj+&|Dj$H5meehAw%Cp=pR|dWi9G5Uw#un${10+s__? zAzK^bYkDUz{qFoBZoY<`;vF}3ZQ#2#yPwf}X!1MZKl3%$G~SD^^%Iz2DvcqL7*eo8 zQivw|39JfoxT){Gtm_B;z2CsH71%n)6wHwJrj^vsl{AWMZT7NKN z9%Zlr;A5x*N%33|2$~_2wUI{a6Pb-nAl(JSr@O2{x~p_7*cIN590|08m(7maHH}J9 zAmS)MJBy+lw6oaAL9i<$d4v)<@!DkK1JzKW*;tOvM4He~7P1K2zwfBJQ z)FMX4{w%&2AR&FspQ!%?xgt%5KU|wV9dhEs?0CB1#5|b6NrPHb&G>^D7uzR+;wcd0 z%3H%Mp~yZ^kqe&xq&ki8r|*>3`fw`Qc`p>QB*cx_1|Q42MQ zvF?jw{|vn#?B)eEKb0S259E7B&4rU|WT#mse>b=`;QZ^K?VG1!%%&)>QKkuzKmYhe z^$=%G96}e*+boO5B15wcErAJ^aKz>;S;P6EWYo$>+m%Q#I1`SD(44FgBIjnAS^h}+#ch=B z)F1rn;>#Ia&h}<;9i4c-p z6r6eRJ1Lqp7Xv@pv{*v%?S1na1$KIk+I@uxAQaRLKq%H}gt#&n75P94uFMq^PNYgj z5V!$7o^`qVzs$M_QRUeEfV-1O43M#ZocW0+wK3VOlKO6RjZ!UjBn?G;vVSAYY|G*T zbPh64QM6djM(Q%NdeRP#q8!4txx$x9%s!O}l7C2B6D}dN(^>&zHA9;7erBXE!y!JY z%S2{B^B~I{R3vu?X$Ln5WT}Yc(7#Mdi72Q@B!mdK?Fb0MN%FL)TB-J0&qLqXkwk_Q zp;0qd6f2RCZ375J-^{@P_5j0r`0o1Qz&A1kHGQZND5G>oFJ<) z0~YGQ2A$Jd4MUMRupRC&AE8;vW6}tNu#k@F!{ImB14=3k;R#NCOj;x%=!F^Uqd=%D ziSzIda%c|M3lkP1xq}WqD`$t;(ZkKx@M0;(E)&87X&iM>1lz0hysx;Sag$^3xfMxC z-BeDF!aooo%f;L8)CvX3uYQXrMDwOrBg+;JVZUJ0)4DLwM@r zL}8b@4!q?DLQy=z`n;M&1W}(A;?obLJWUlgQt>+{RDo3Ds`%$DFd4(95{0UzeIKnE zWG}3CZ&zB?ryTinST0>mD9?apm!|0Id}CxXN9M=^`V^*~Ub8q7H*5S{#Y7<}YC2Z<$6DV*x*392DX(2d!@%!a? z4^29;*4svpQbaurkO4WWic2@dXXTJ$*ohuRx=-F5+1DJsQ_#hWVjsg4uIz`Bh{rq4 zsi-mF#EZYmUqkAxt;)?7Jaz&EZo~y@#9=pIeL6MsyJYa|luv>_KqhmGvfr_j1LCr;9VW&p@J5 zx&_w9FP>|6$vzjM5Fz1!ZC171Q099MR+1ub>G4py%|;R$rO8}C#b3|~EIlc(cTa+p zw%=-7Lg%aeEr?2+7j-$+ETr`V_DWPV1kUT<3NagL9vJTT;(l+$U2aB3*MaoClx0q# zVGb8T%^@^Plepc8Dd@zJHvA%fgrRc&lrCnd{YV9Ivo3xWfiP(Lr3pT32L*u%Ds8&m zb`E1`guQ*Ze~e5w#cL`b>Na!Y08w@_Ep3Uje0_eIJ$INNI8X*dIh^xv!gv^{f_!o*eP#pFF4?O7EVlvZN-R`b4#+e21g(lJb*u%5#HbC@K`h zn~5i#@G8WQQA3tY)Kl2Zz)W63z@Ssu1#${DmbrW!Yq1b$uQ_4}a<-`WH4^OT1izLs_H*AQ{rF9@9E8=q2LJSy4R0k(P`CB@KEv)d)ZOSq>tOxXHdQr}ICO*bBt2wHoXCRnt6K zFX@efq_TvcKnBiZp_Y~f2tC|h%pK7n=27`5ozRn6X145~t?TGYTM9kDo_IowCSXBj zyvtvw?si%rJ10b*se9Tt?!yD?mRG~J$!r$7zt(DZ2;02hJt}G)_v^ikD#^R!TzxmCU1X>2sdbuDY0o4-)gpey17YPC*Je`f@y5zW? zM);^FGi>U2t6?q5Ba_h=9Ow*sw5vWGz4e25WV0j7^A=GrB!Aw7~9tR{6#6J9U(bR(D?HFprw;}AjNGsq+YB>tq%Qi zF~{tbi~di~CrMx2S8LyqzVJ+^|Nao^K2a6TT+VBEZ&oA6@B`JAPBlH~L*99IvM~K$ z9u-ORhQkT{FT>?aT-R3I$Yf5n-fF*=fee;kG92$+e|&vS+S*b{Vj^~$y<*on@Rym> z;K;2~2nw;Ln1y1R;;JdH2#4t_8-a|l0-4SY+e1_F&II3W_sv;j2We+AR%!dD!(>Zt zmo)eamjjl=Z10=7-OGz%_^i*^>`$Z1)!b04B`lmwS08CVy(> z%iFEoN4$m?Y?xLh$Y5tsG=Y!5w>D6350=!Py^{kmk0{{n+lgb0)m^u{;46 z+Vz`Om?JMA1pcVu-gWZV#rEh{#yl zhzBO(Uk3}8&Qik#xQHu#QtuKzk-kpqQVU&;`5GjBJO)FqgLaMbK4C1A5#`OJEKMv@ z3F=#?y=#93#cSsh;d)`KGOPzOz@W1;fd?e}rVq`rYhn9mzDAa>P?n!l7H3?{(9dd9 zzyggBqLsU`#g?7uqNLnKJZ<5uB*IFFR!d6Di6zO27s`nrN4Wf3aHOSFPCDr=Wg9I7 zE-!b`!s-B;Uvj#1IgFz6%E9s~>a8HZ#c3=pz~iZuB(FIoBit4Z)>i(fpphhc@Tiqo z-Gfz>=vLw1f~H-^g_(U;mMxs`wt(W@wstM`liH$+;0y-W;6f=FE#Vtnmbm#En<+(W z(BG^eAO`8JQbk(J30HocNKLn!etm zHkqc?-V`tr15wJbR(=YByur`cyv9oxAN9AsQyzv$^`5EjPx*b#_Rt7URU+f&%r

        LLx}F?L0?J2#a>hNZz)3?MDiI$TvZ)!T<~o@EEj*Wd*W-m_?E=<4DpVYFR! z^_g{nXVLAyp;7dEzQ$Bn_v}|7Xz;zTCd_R?AZTvgH@S7YUF5;vy|AWR*8R6^fS_5s z^*CgN0M3B_~Z}TGz+vVz&D;J#69h|zH`tgy=9WS7y!F{A&d zUf8e6#y`ca0r2J6p)uya_QFiYlTAQ6e((c~zRQ>%<9T|?WaiMMX7<1J!a_{HCYvr7 znXV9-PW4YAW~W!yOurqPZcyC*&W!Jcxta=g8LwZvy=C*K7v_3SJy%jmg)|9`Yh{Pa=(Zkfngt3_TDWDllFdw~=e?S22hEYtnv zd-Q2u9}4sa`~6RG`Xu%)mI*V?#sPNqv@iDw@eS( zOW##4Pu9+Gxn;{$gEb&VEn7$Nn(y-$XKbL1) zN3oy#n;Lg#Cc?`FSejke>w5=#Q@@GrIc@KRX|-#-w9jg%F|-pkQmG5`EZ|8L9mdkx6a zsax)$gz8rdP3hPFtO1P}+)I4C^$1DFji#f7#F z=u@p*US5Pc6BewNR}o{h$~qLg70UZ=J+jGpB+FSAYBV zcnxTyga6yVS*C)=kk1K0XU}}y`@IGPQe2I;BC7B{8zLf!<29hN_AdLg7sE&}$lob0 z#$K78PT`Z1$0@G9&Gnm*UT!YwCv?u3Rj>vWtFCrZ^d;R>I!O{>nba8t24VbXDAIdX zuHsT$4g6X}SJh0?PMu*hc|LM4mZDNpglg@%n-a%##kgH(NV%lBbkh|#oiM@ek1i5e z^{b;VYe=fcB=4H-eDdcm-kA%&x{gnA?Jh*?+3tRhGt#_DK|;u4I%)gh{N7R)uuNZb zbKFFy&E=`8zPwkECj8`_YrDS&Qd|=2g#;%go_f7+-rs0D^H}nG;j<%&r|dMJ8aJz0 zah6GsvQBcap}Fx%`E|;sU%)a+{TSSDZn83S2J1hoHQ(G8$0SM)cJnWnxc&V0r38EA z-}$X^>!+N?_Il?V7(=+L$HqsZ`qSv%EG<`g^bC|+xn=I$hNDQS48g^_*I~CnimP#& zsA9XG;d1p!iAJoVJ#k3G0V`Uu#0WKM%Mps;7`)WUSFZ{yNnBJd0$j+fVU52@tYBYm7dvzz#@>S>fy{KYb{L)px<`t7oYrS~{-$ zZJEA@;@5z>I;Hj^!tOHNp&4AFwatAJ;ttk;&iqbs-Mh=?6Q>}1#V5#bN{;htH$KIc zoOF+>*HR^?5#k?Dn9Zlx-E*s0J6c`9ocGb4F1dHoQN?}P=U;ZKNxY3DKBJ5lcznl) zXzWK!6IcU^-BrD8iVkkg>Lx#Lr*13^)`0q6v%0Hz$tcorRaJfl_T@iWCj1&uRLazX zr_dXEEDgWir?{HN9O-}7fGox8cGcZFI4On;U(0f<4h4cWpi`eMuHOHO^!C1)M2E9X zs@f4&I;qSi{@0-lm`GfTDr?|Az zCQfF{3wEhK>lw~B{FT3Czs&xK;e&^CB@DL))SiE{FyU9>wd{8NQA23@i|1^L_xX)_ z14rs7o@ZITdZeE|q028XUGgY<#RRMYc`u$SH4a(UgYu8KGR>Fa*MQW%-KinRxnbfPUCpowtB8Vvn+vPfpP;SkyuNHq*pO~f5j$Xd34pYs%}Q3 z#A%d&YNPm9t-MAntgpaiYht^3=TwpNsFjJ|ovRH?{rD7D=laV+>QY(NUbPv>8L$R) zwC>SPHWS(t+x#m8SSF@v(x6`uIl*kw^C)u?aHGNFTjbX&ZtAAWMta5{m*SeI2d3sf zS*G1CWv~Vmp&rB_VbDRY>?QYke}S)ar$cR^Jf^1a^Lb~G;_7%3Rb+gZYV%p!JvZT) z*1qF4AUliAxc36{rztnv?O*&zm_8Pu`(dkPd-CW*bF>!!oZ8_1tBw+hm0?QWzu{eb3NHYmhuwR|9n;OrJ`j+um)79 zSwSkxB&XK9*E0mK{%@9vdCm1eeAtlb7p%H}&DME;lH8J@3U8T?*MNMQDD4^=CXIP2 zPn#dEJ3TX+S{cBlxW2iqG)!;3*e({_^+ZiF&KzmhzCANw=T0y+`*D%jb}-k*zk%@+ z#UO4C==;6vQ*%=>FA+3U&~Putd1kB@&N6)qOPnHZe0{q`<7n;5#@wRlVBNsW;}qAi zW%`-Hc(|mjwKrsP;%UHxeTYa&-Mham(~|-FASLMqil2{$n`}0Va49ZenFc>T4{DtX zxWu~OG^)8>KY6(R{INt^GE1wuw8{Fj&IWvni^Sv`G1iH){ltz)^3l{ z(T}*n#>HdHw3$ZPv?LSe;PqzO+t0RfUTJV|q~SQl^?-Hv9ZAwRik}V3dRl+hfWFy0 z{sv#Yw0dsFmC?TC;BU)hgx$lZxCRf`om2PQYPPXo3F4eSyJP>A;(D|Dsbm|{ms$#AogfK75jbLR>jWc%UvQBl>4VGcQSm6i<}Pi?TXvvO}E7_sAJ1CLgKN0 z#r@YycX+J}1Ku)`b$QHoP!R4&oJ3Q=<4|05Uc#bYGk%`4Td<4Vmx;n%cDOx7@M}N= z54>g;J$moDUx0hb0?VZDDNpx=pH5Ve4j0}!UIU^oC4P?qmdVGA&i4*J#bxnl4aj=T z7o@msYAFpx{p|g{dMmu_`gQ0$I>2#=qW zXaKbxWN|}cODQ0s)+ZdKxWM)gehnyV$uF`t;8_>N$qfmF9VAyYz(qf>Tr{XsKd4$X z=;=nFy*@;Y=b}SykUd>cjp*?jP*5E_*uWCjIx7YYQV(5lr)bEqe#nTwe>Yvot=zzr z_kk0&exr1ubE2VbaUnCxK85jx*T2?)R3e^Ig)`Je?01DcdLPI{AITsVe#Rj3*fQbPfKLp99gh^pTPCTzs0)r!Opalumk<}&qQNZC^*a0-(AOxLfN1DLZv}!#ZTd*n z-Dunz(D*BI`d50pVV43fU8av=jDKYsA7fP)BS{)#(H(XH6((>udI}l)0;ITrWr~lr z?2d8UjYaWBJS~j{Yd|j_!hUXF1n|dqJkEDK)&r~o@y2_7jf-)Ny~}%%)Gj{BF*aNb zw+3Wt5TE=t?ul6J1!O|i0>SrF&8#)Ye2FRmGVZFa{T3268~kHkP_udW|hD)>8zAKzHTe~jICJk|Z<|M7EhIEQ1VvYkS9sZ_E$BAaAohpVznDw_`3^F+!fTeg(Vu{X!w zva>rPoAY}g>bm-j-}n3d^W1LEAO3JV&g*@DJ)X*ZtXw@2%wS1_0s4UO`9s9s~rOtA!M%T8{PQ2-)2ILsqq!ruv z)BuAVJEu3=WSiY|QUmg{Zg#~BG%xMfv#L|vZf}ONH2E8}5T>{cS^@=H7TOwV0C9wA zp;T^(GH6Y6ZOs^Kh!JR=+i#+wYtFXDq{Oxs8MJ)~YR+nJ4S}CSv$T>x60>$ExZN+OaGhIN@BEQw?7odSd!P_c4HQbpTtcN+u&i$j7p z(Vgyq7&30htaRX5x}vi?76aR9&&T^FLW4l$i8%045c$CYm>va%sr^#}`YzDr8$`8$ zX;@IBY@EcVkHIL8EfbSX2jmBw7z-oBZ7`(oCSjz8plVxae|}d0wv&am7rsg^jQ_VO zuAJUhThjjDh)A9iOP$}RdS1T}Cu4uTaL@-iF(YCwK*Ljje5 zWg5x_!50$Y8(63#iWCpWCQkMp#P$`U$l?#lV`)Z`1bZ^jLjlLUD2a8%8c7`=Ojd{n zer8xHu8$o>N)SdEs^F6vQ00&!XsEstI9()P`? zsm-d!gMh%xG=?+-J$nzd z5a|3C*$JvP?hCxwuZUh$J)$tffpaGp2n@-VbX{%f&BRjf(Nb{koVg$j*sAI`o_Dk* z1tii++(^{~%vy+I)t1yzZ5~+cA`$`!dQXCB;rIm|>v0ldDnjphgtASK>m$5p-(;C@F!0KolVtDdueYiz)k8s&Md2 z%a?(mQ6DX_%$n4?BlpKc*15-F1(?tOMY#^5ujS*8>$zn?#3+cIx)!m_Ll=I_IU1L~*(4Z#u+&eV+OG%<8Ueud~`LC^Auui6sb5CS=Yc1SM6=hb%Kz1odT*p2F1cR;{&g(%EH*tr~NECNPn zyO)u$mma!l(}l}Tgx*6B6G)QK_h9V8I~!PZ^?t?I{dr>oO40#P5(ZTD>L3~q%|MX_ zQBf8M!p7HN1qhg;(05LtZ}oL=q?%k2pSU*>x(7jyq~a->9~`~Qqaqd}z9U2;lD~5I zGN@dL1c?H+4aoRFRFgP(7y9)W70vvyWtyzWnrnrV_&jTt+Tj2+%hX_7*&uOl{pt@teNX+ymn4#l` zCK@cw6@c`(?cJoNkgfaKM>DBAtC8q3GVTqh$HK5@`q5!qud)1lu+>~=s{Z>m0#9oA zJnFEE)59itlv$Dk zeG8qxPd7(gyyyq;waf8%{-#n^hr_+ky~M_k?@y}g3<05nxk(NP)8t8_c%iH8Cau3h0e&>BTc^% zi_i8dlsig-=3ZYV;`}a!c3c)rCJCX-t&Rnu`3XG9Lv;QzhRBZ+xfw_g_uY{3r&en@ z4<2Hnp33LqS^$Kdpnb^Ohpk5a$W}C|*l^S|NxN`iXiCya>o76NC^T zlep5Z_GHrD=6Xo~Tv>t5uTCMhFU-o9_JUA%E^`2=w&TX?M~F(7z?-?((#An=8ZRk{ z=9Oy+EMDg3TnFJ>(9|O))OS6DZhuUUXL}h22BSzaxrfBVy}|`=VJ@kS*RpK%$srf% z)jb2k3A0ui;kg&pd7cfFW&d?LM-Gcql|?E*{AmUyjq9+OHOve#S({a#y7qTWcbis{ z+Qa)?Yy0L%ZBxb&u+mU7ZE%*?cx#_VLlFu6ReM4Cy3d5z&Z6z1nV-ngX9q$0aS1C~ zBCg%uF?6CXU4*XVW{`)f@V?(Yxx;I6o?0@?ezZFF5+o5F;_8Yh{=AJ@TAhrg$jLCQ z%8f=bwgnkekG=yl6pL($$ydW4Lk_uOCTsy7B5EedsdCDf_smnmwVfAJR{fyCa)}Lv z7tBNK@uH^w5y({9WW$MTfjpf^=V7ga4NeNk8&hYSFQeD*)WW!SI<7<-9;Ux#MbUWX z>E0dMy_DepBZc*>*^7N#YQz;4%dS@A6nIvGH={y<(nV&KWL&=Jigbr0N2&|WSvQ*! z7qN#)7~gYua?QpHcfZFebYHWLfI?^+WTQ~8|%6mhu zH>rNfKV5cve2NDSodG#=6|68F<+pBV^&yJ{q3-t=$j#&iEoh{RyexdIz-)wOgy~sr zvkXq&&TUC5)S6V}# zB!u@AX-Cj5Y9u@W^;UgwB$D$*P4+N+ehYk2q)MEO=G}aLA;BV8k#RJF8xcmOfqebf z<$4x2wxQd_AC!n3L}bJyabRb0Pd`ZwL&Nw2pvnP;-c-8{djblf+qz@V!>M?N%~vL6 zT>4A~h%r7ESATSw$hRr{4m}%4TsY@E#7oFqy?*MV0>eFPbI!Qi0_RX%E$2=A5y{AU zv$KR?jxHgXlmD6-o$s|`m7>a!&w2Ero5qSB#Br_xSgWe_v4gXunfBZih9Ss5x|)(| z&^PbXgjrBFd!AzCr1E%q<#GGJ;vx(~t}f^Uqg@DH(2=bCA-kk(ynw@-XJqE>{U$G%Z^1ap2TxyGcPk8I$Vsr zMW^7%k|xJ-7fQb1GnK>Q-p_1*!k@`ZJ?)9Tbp4bEhepP24Dkh956D=b+t&RWipDgF zE@NPdt0dbTD)2g;akvUxQ+Our0&&1O4Ahr_A_L3st0Mm3r#p!4+~WeiX(c_1zZ|rQ zBWpX$T&Cs5(iChqrU;io7D|r#kaHDKfuKn;DSU2TWnZ^%-1>HX*beASne8J1 zvzzpgcp{FEOb>-P-lu}EU-59MAeTfj*1b$Rm22%{%B>8B0X3kwL(u_n%rwtws^=FO zZhL$^G zkgFNY!+rzyh75vFt-2=dAD+RjK1Mx7kr_;ekk;U#l8DvwL6cvJpI)n6mU!=S^h+?;%P^i8~-2~aoX2b8GTP}WpM6$~pr*mog zf}NvtsJ+2NqBxW+$nt&XQV=T1Ki#$X`H^G$=^5z1kngyYB$EKJVk|&%AB2diE z0Mvk_&I(}I{fHp-6}*vxG>%d%B%u9|#Y=5c)G3$a^pWR`y(n>n8W4vtv8*|yU5t#8 z1;qKV1{4&>6NHiRBNEU->O;$c$t6BuipvY5XIpESNRUc;P-*hmS~o@{{@O}4;FK7J zCABg*H(jK~+of?EUVu~5!iWP-NvyAqXiUodeEoJ7WFJK)_z*+C;~^{~qtI7ZK}*!W zPlQO!P&l}CJ@)jCvHDFh$W03w0z+aDQ&Vo>6NhNYgT*l7mR2Zc%{x2G^`g5ndb5%= z#$M+UceFCDTx!2#@}lO{g0umqLT}i^#I?Fdzi~CN?jqujKKc`#t*lin2H2;%+g9i9_b2>zedQ@Q8)m{=gL13wiS;c{GW_T?S7haXABd zj0RL8!a(7jbxSY_ig5=8SR;sXA+xPQ>|1%;vG?lD3JIHXKvUY{<4k64N46&zbs&iOEgDAtWra~LqlTx*fJez zASpEoQ(S`oRs+(M57tzO18P8hGUFiS4o#JDP1RM+yNACmlc1J{gq9{?nGChGZL|Pd zq!X;A!Ahi;qorT@+cK?cJvjVrnFO_uYd{3c^w>t*WR=)FSlc2_+cHPn>QBpbsBKI6 zFP7=43IwPDU3I+g_-~d8r~$41+Z30Mm-nE(p^lG=x7WW|rb?Zl!$F_%p`cZr&|j8m zICNachwGmjkiU%%o!@ZeY2xS{-Iz+<|IIRu#6;*u&5>o!kujQsv;NI8QR)}4>KFcF zne@Nd=oh<FMd+8s>6M>0s8=y)Ff?eiF=%=;2In!z z>_9c;7_?Oyw09VE{M4__8HHns{x{2HI9h2q)?wHiH(J(DuuQXmTBgxC!@4_0^EO7` z+>90omT3a6X2iHNw%B2`I&QQESf*=6%ZEn4EYrBratG+A;UAVM?!jKpgZ;|?v`mw` z5gw)2jEPi@Ax6fePmIajjiDjNFt$nJ_6`QMg0`RFQ zqdQqXoX@beD6=qL zFnO?d4s$YtmOfWNeo^Ll22J2<-rbWKv?v>`Iw8Ug+VE6=L4-upI6Ig$ZYh%f}I?)-OR?TT^BTJ14iZlb-PFBI8b%QXM9}0_Nt( zNU0uYO!<`G(O}S~_sP)J*{3z0_UAc{IDJ`|4istxX3&HO%x8i{(nO3s&TpCD*U3A$ z*8)VGEN0)xU&x#dQ@*}98~!We%Ksuxq{Fpd@5F}nq2hdR{iB5^ zJ^M$iK=D5_Xx5+F-8VNbH(S{iG<6)$pvj!I+3Xe_E4$jIr+2TWOI}X!XP@T%;1^9w zSI3iKGDw@BgT}ss_WkY;b6)xxypRAQPQ|NV+RoKKv+q5fakw?^_|4|$<+yhIYBKDl zOV0MB*IA=aEGavJrX%*u1o#wFaTgq*u^>!q$dSA|AL{_*mlA#dfls-6OW9efZQzKz zP?33;q7(SEzgDqb<%BTcWD|1_GW$J))=Xvxo~z3=U{Jwhk=JgEy z1JY(-1`YdsiQ_hjmjk9>2INlR3e2FHS3@r%U!B%e!5?tnqKd|OjRYowrH7(OdM3Ru z2>|o7^3q=+L_Vh;o--=}OEav2iI8vrKKaVm|1pDhL3G_;EhvfpgFFR;yP9uwlo9n` zA`KUv*8`2=$qY^MjR@^^Z~pouQ-hKQ_IJM`PSB>SRYJa&%I)AU&38oi)9LBh&TnAa#O-u zb2-)DWCAm2W(xJH+8C0Y%>b@T3T;MvcHwcGoRH_4;l!H8Z&MCZue@(*HZBZ{6mjAb zh*IdV9C#CY7Q-d{-1IdCBAgVc<%l#X{CD_t*NHTobc|vCx`ipeoqT5_0S`Bm_!~ZD z+-^{yKpkyF?Z0i=WLZ-4xOg&ycEh>bM}3p%lApOsk1aTWs4s~{B~$T!YfrHA+oWCk zMddvU^;bznsUjVjst(be??qpLwb2&R7xXk@er#sQt9(>+BUeL{N1Wpn{CF>dFoX6v zUKwJpoDfYDedcG{eZmZyb5QnCIEB>Qk`yNmI8!wu+cwxry<@2hk|LEu#*0)KC)X|o zB2Fx+S+|M<20a{qW}#HFO|S9|ktcr6CpO8_KO82d(D^s`M3_Mv=>Z~68P{z7S|!)@ zpf?7G=O7;eV}SoeoUDc$wNd$w5*VX#QT+*~?UH7dT)W`qQE1BPys%)KXYZB9m-M#F zT7L>!QS6UUIBu6uLcYH!AVi$DE8{bF!mCu$g1%G#lqZo%S zI8<&_65x|@&-`}v=$s```uU0@Ey2))*m_YPJUF$Wk#fO2|1}pdgLXEuc2A}D`6E6L zPIH|KHbC5UQB3b#&`G0^Tz6ovm}VN)DHaUL^G?_!Vg$NBNGiK0&)bb?DL&UrZara6 zs+qkYw%eliN5ttje2Qw@N3RENM}bIz%Qz1R5vRZ5lU?Maiof1$iL{(WK940toB;Ub z62IXe%yJKg*>10pFFKAm0q_Y8%%E|rEGp{n^+X;=oGhfQA}Jh#&7;<1&5k2Zs-KT% z(D+AsnQ}L-e-HY0z2w&nTAY>64G|c8h?|%y*xcwO;#A;v_~0UvIy(8n=bQ+YRZIQ- zk?_a%-j|eH&I+LVQX9VzB2JHH7>BSd*GuXQ*X+yp$72S*xW`f2;5}VNa0K{NY3{T< zNIIsSTznRZ^JG4lBzsDH?Mx@mN9-ix#I3p>pnovUZ~~t~p1QI_sdsCrX;!qU^nn?) z8zr?8o&U_BRoSA`#b;?9uXCNE@rX%xofAHeIBh18jn7No+MyuotR1{yIBSFT{xjlK z-1#%t<#74e3|axl;UWq5O&;G4@8gJ5sMy&gqb&k_a_lOf*zR=5{4TwQdgVfbbd=|p zLE!ux#K!kKcNz&ZXl4grPf_orYS`7hl{=U|oKqt7)PvvfjQ_X;qsSoC*PT-U7 zS+}Lp&adK3?pt;bBvu@{_9w)Qwn~aCm@bF9lq^qdHvLX3!Ws=tMjSGiZNCoSHrM(Wvu0o{J7hh>#~w zB#L6kLtx1B;*O`#F?@nEc=ASi{ycj--Ql%31DId__Y4};>-x}Zn7lceFiPIf^Ola6 z8iTjGh_{TRmx?2b3o6O&=*_X?rTGg!d1yC#lb9244N3yS=rNC{k%*5igRdQr*CTTu zMX03DfDfODuj`Pnd$XrqqAzKrcflub&kPhf`VaVoX7CRKl1;!2nxlVYBmkfMqZs^r z8NlWlKGr+_kP^~Z$AFB;fR7~s*+T)j8GiAOeq;#nYPfHTJSuG`;MWXVNnnAa9|ZG4 zPXnZ28(6Xv*jf_QJ`~i(5ah`aQ1{8FIWnlzF?a}=K@;)EX83+$knnj&0>Gz}88n4_ z()Rq2m7$QeKO;`RXV4CYLic&d78uY(H-qZ_3LY=rh1)U4}>< zus}5YW>Mq~f-&s;%`i^hu+xigz`MZ_9N_DyurrxxF2?ZVh*KE%V%RslJUSp8G=>T% zgN0uMB2K{K+0D=!i{Z07L>7+Mnf>1q!QS3sj8MNB!Qu2)6`;8{ZU{I5RY5vRpS z07Sjjje2Q8#Fc&x*moks{+>bGjj}>hq&YSk=EZgi_70yBD!25wr4oXu0QeiiJIe$8{_>ogEplQzuW>0s|nTWCe)Xbl41$)3B;60B>GRp>F*gdO2vdd z#_0Z=mj`ctsB1}}Df_@O@;l-*l0X;mA>Juo{8Q8gy;zQsUo&WzfEhGr&^AnPS2sB+ z^TV$hG`?ivvLs0UTdds&(XwQzvJ}D$T0o+-WfG6G5MOl4hnD2K$1`Y`nNlxAgX*D# zSP@Wm8nR6@k504va|TT`{UqY#7@h90l**u&vS&v=q??vlO6shaL5Mj0f=>ZyuA(0_ z$OVDnDo@dj;NyrBFoPDgmvM?bZTU*t1)+~AdLMy^69Auljp5lNA9MelLHje})S4BG z{s=^zGM3UCh%)L4@QEmE?>BrB&FRz2$!5xKi_S^iBU;cE2>+NfsrRwNk`Qs4cg|f< zB;=ch`M@U8+;o`S717+q6ZjO6yUdr@Vws)enSJmvXEQpFM4tekK9%Kx`LiL|oE!o~ zB0h;YopC8(;4dH!Jf1cmyc)AZZoG}ZToa>G@m-_lWf~3V0j9dK~rP?tSj7S2s3D6CD|_J7>cq0E1p3{Ld2k>Gicn1fnczWPY!-Xoc@MS&J|6r zV@>V{O>WAKmabKBbm=m<;B`>7H6BiwK?^x(Mjy|h*$6cID_3b(aHSx??<*Q}aV?1~ ztx4joDJSqLwiSptWse=tps}>&S+~RqR23?nGdE~kkAW199nYX0!>4*U!9;mybNOYr zEyO@B;|TDnN4%rYpo0)`iv5=vw6Cu1aRT7`V;nKrIBUblWziGhdX zZMr#)S8aNXE4v?!4?H;>NOB!`G}d>w1El0O=-AN9*r5}BR4CDQ&>j}B}R)3M+f=62gha=qBfps}w6j=s{ zJOc-wz*mj~pezpy?_KT9ryO7C7+OG4c?DAiVDO$ExFI!SG6e%G@MFYv8f!xDD zsnOGX@zZ8%Q^DA;{JGO(!Q{eh)8;5LwkOaJ*;C>ZGm=L$jH+MZ7l%LQu$%xgc@(KH zun>luRb!j0#*ngu$bmXlfzT`!)vUq9oH!Mw4~EJs5gv>pGslfjQj#YEf0xLa4BHt; z6xk{U_QL4fK`{C05Yh}ROi}IIi%!x_ns1NS=B;z*sfA`H@NP5tiEy9EIRHM1U!0W= z8HC%CkNoY$CTH&*E#70Jh&%RTy6CyN$~kn^60(!(k^4Mn2)WG>xDZ8}Z44*E!lrT1 zcL-SG(ehnj8x0FRpX%2GiWpJWCf_D8*X2-KYaZginZph)Cf`p8N&f626VYV>^P!ZIFehqkDaT~ zr&H$Gd4OYW=92?rtkV5EJ^Nf325K%e1&FaMwRN_xl~7|+Yt%aI!4G6E2_)eMBmq=l z4AaHJtc~I9_>0pMh8q)x%K=y@6Xu&P0v3-M4SF{FuVie!`XVd~K>-M&STw`|1LAx2 zljs%h!qXoB6!Sv<-0IvkeM%LNm_Bthtthm`h9^L=MdPVQC{oJ2Rs94UPv}qHO9Ue3 zXuKgJN%08*QWV7>kwxl~XoBI@LJmkZzEtndq(WNOjJhb@L_Y)aL{&jxr5KM{R%BNm*___yrK#*Z- zuU4${m)|9>oxTLF#;)k%X~?p$+b4}Gga5Hn^%=K+?;_X%L=*Z}cn^q=k=8@^R!(VuI$ zzv7GLkyZ~{C`^@#Wxc98#(@5|GGbx~Nq;!G7?L9JiT(qfKlxp51r2spSG{4oh8Gv4 zBz7=sSVq}k;iO%Z9nRt%u$fl4utdy8nn89ez*8<6FQ6Hw?i|3S09zpAFfqJffgB75 z+UXC%c$vRFeKR>vt?d-TufPBk;t)U2Xvi! zMnBwsS$gm4WscdfaD)c~vPL>=h^KFnzUYU!vERia{ikA5KDKgAtfg6Z8W+}RkZ07? z79VE$ZHaYXF^AscG?jTH7cD%eu6(us zg@&qFe;-=*p$W-p;kOG|E~O-dMeoJ4u0>ohQ5dBLWrw2{7dQ0EZ112!KW~pCa&I!o zP~zH_&cmx6&p(n}+}s$5@VS@QNbp_VMb|O!%C{0(+fQ-Xw%sNoZGANP=3(z0`-rPv ztV_f1#iP7wb%YHc>2Oy(%1pm1)WC7$>D=KYn+mf@N;m^q_`}opd{yKO{d%=(4FdSz z&3cGzKFU1v*`C3~(?Wuiw!Mj)*+n>mq5+`E{EC?L~>k@|>}G#~mMSs>GJB zWo^+*h)JC}bRK=uz_x#lq3hAXkk-+ix$*7DWrwxS6(4O+Ej8W|dgp7`i6iWy(dEN3IX30 zRxwTHs~~l^Xqkpbm_+_Dt;}_N z&>Fude4A8-ez&Q7Ekd+X63t25c=))wRl!8+{&e|XAZ1S()?WrDh66DmxhOJS4nZic11)K_h?AS-SbQJGWuVII%4Q^*Y9IUwew#?R`{?q zkhH3vQ)H#G97$+MlJhj4md^D8i1}G4S@!vat31$i(0yGj-51&v7?vY8ad0)xG-0`= z4rY%E<&l}Pg5JqFY`^SD@11S^IW2H0U)|CPXDd?TFE019xv`IxgsPE2S*+&}t(C}kJh)b`>=VC*2 z=~WA5YEjzNE8fW_uH7#m>h&dGc$ujp@y!Iyfr^h`uf*cMX~a0UypuK0R_gFIO-by| zZY1J+Y;0vrrax5EI7&8Iv&8UP*1xW^$X+n+-Sw+3J#~&G9BC_yE`D#pJ%kxFw{Ipw zzBJA5>*w=@JlS2vx+C1}_4512AQ#R&x=UYpOIQC5WhWxvj38rEMX`58Uwp! z?9`@z5k+sX->~iH$@c?g7yB)?Q%i!Z@cT7y<^|VIOLu!gFIDr%uN;j8v=wsnBK9c) zVu-ZoQAdC>nsz5yl^q9`V*#o4;hRu=Etw)PgSNd-%FaVnSPt~fQV!|4u z8Ga{3oDPq+tGWg}r_@G!8R1~q!MU;gyaDisJZZR00^U!(R+U9tBKSv4P- z9i!bgv!kV-V3KLM2YcPG$Y=(-T?d{UIj3MG*G}CVcrJry0W%@DJ6^eO&K&Ocn%!ET zdegLNX0#u(;d-ETY3IEBSE_sFsKY}%eh?@ihf5k@z$A6zpoik)6pRx}nD!VHsHd7| zf%v5@lA;3Ba0&w!_f_K&BjE?bH7g*qu{74=G-^a|!m2JYfY0(&)4579^dT2DAS^uP zJjP<+5-R5(wDQ9*!D5@XUJwcJH9 zU&-ela`GgS0y3N|QUX_G?!asHjtSQmKarKLjAFKol5ibiTg|qX7Q=J9qFzy)M{QP` z1|-R1TwS>DanIn6_QM8%ZOI2!`B;Hy%Q}0 zmiK}_i4F_suQ6#EgHUw@#4=mfs^V9~37A29qU^y|F+;^i3rL$9g>;mBBvwP9|_pko&`>O( zG=3#bKx@fUPYcV9y=|N?l0A#`{K{FSUn12Wq`ImscbWzSeEKX}dGqjif`>YvJjAHW z|2czpcQ@$nOAJwKc4s|F*?*lu(-%@I()2u;LECf%B2HLFhOVWz4U=MEP^22wsv7kn z7F>Cpjfzy+s`I9n_n-vbJL876vAD+&+@;At^tD1w9|LiTC29}4$F_QpeY}g&xQs5R zQyY}Qx^s{7<=qNpb+&O&dZF&6`tDL-0L@sPzfzrwP>Avrdffx2?*g!v2BwGIQ2okJ zU;{0esKG@V<-)3 zSPg0g4eBJuiswc(k;m}K&7e8hpvA_ZA?`PP8aKfF)T2XyFGCHxSq*yx4SOXF`&113 z4Gjlu3wDLcv13T`2RR1#|Gg)lQ&i82U%LZe>w`tFL5ZvE0-1m`K7CXLMr_Pdy+VWx`zw~;WZLIM6+D!B5B^v=Czw{0JD)3@_ zMcL0-It{t6ot5R=E#lhh_-fTE=aKQRz?2+yY>CXw+)TLYs1@V>{?5kpfvpHG*Im%` zwFvvY)8>gDQ^9~j0{Gs92aRk=JUjUn^C=73er{k&PPQrG)mb0&cd8`z=F|QKTs!f8 z0749zf|`Rn&UnkQ3o z!>Iu#k1W!ZscU%Vqk$>8$C0u|PV=$qKmTfvah%Wm7B8x&a5fH=^qJzl>lw?14<=6s8%Mbk;Fb}Uy4?iMm-=RY37k``iR_mkhWT?u?d;v%25`sF(5 zq{`=kFFZAnVLPj}F9Dv+xqg>4^P4XJM}Fy-LaMIJC|~oY#p2d5fI|8;CD%kk(^NBU zlql4|;;^#bgm7R{;b!=>N9Xyy;fNyfZga{2eWQUK1k2m>Mb%r z3lGm-cH0_xF=%sDP*{`lhLbKCUWItXp6sGylj9}hhKT_M8YxK7eQYBwTJGZS{E`_k zCHGq)i7pgrPF|nxj~gqQNiJU7Th4DHOv%X^IYXS2-3s z{b+q%Dd@+$L7yW=9103d$Q`pzoYiVK9f{V zqI*9if%u5_d;DyQB1*o2uam~_tRtAd?T06Xh1OpiP)L`c^$4nGfhw14AXPlImx25e zsld#s?j3qwRazjw^w(i)|7KlA`nz^|#LtQdH=j(}3Os=p%8&I3`K8C4aW|Wx@`&iGAGoev!urreZp1Dqr;84@blR6~ z#NmR{#gFq#8}U0u+&3VlcoY#zEV-M5s!}?X#`e=WCzB%?`M4Tj!%Z z-hKMO(2*f~qqRFoQW!n)mPeX_#>0cID4B<#kOF!_jZhRv^qIHm5Nd&in`s1vG_%-4 zfz(JN`;eh1PJ(s)f9VB~94H$xO9iK286Ca5GU-xLSq(oW|p>^#=T*Pu8t*K%J{W*a|szW>?&WuEcj zvL;#EP@`p0zU3o+wXYwC(p&q1DYUtT|M zY39+2A}$&zJkBq*O>C8ISK@4*IHodr6tukf{LK(!H`Dg@2v~{(t$lY*-SeDjy;9mr zneTbFeUkK&Bjz4!o=jWJgG14sS_WWBE|0<_V_>@~8wd*BP@blX5y7zfSbE$Em?Qz_ zrG-M)9W)O5h!;-B(&ySTd$s*DB?s4Mx-?mbS4KT}sr*YJ{Rj`PK%IVlHSzR7-rM8+ zQdFDfm&+k481E}Fz?7Wi1``qHSAHqvQ|ve8Z=$2SosOL+Q*!%JU3T)H5<7w(n(#Sc z{Vr}qZ6%6&W~cbs36 zquyz~HA*_RmN>d!<<#>lzhwB-`BD0w2TVxn>!IXHerelnHNtHdlxx48LtXXbeb>P} zhx<;8>>;u5Ixy^Zl3)6i;QGx4zdspTiD&t8*Zs%WDrY(&solZq!!=((A%)^+n!1km z&ayix=2jntPrC2!1Cz4yulD8Kd+tl5tGN+3yC0IF0EINcjeiF_?u@>+c8H9$>} z3|_ZIykvB|WF5WaBfS)VPstG!64W~u`x?kEkr@*?7vIS8@itm`t?_4miNQ;2$J-j} z`S7oo)(pO6xYrgszV?p3j*-6hB|dhJ-ooauFJXOwDQ@SJ{8EOmE03RehIa=3`Lmz} zZ?8zd6NMyS;`b)w^^=9Gwk7`BBL0yg0Vz5Gjv4-mj-Xf28|iAGOoo6ohCm>{Wa1Z) zxZr172lChn5O;(Y?F3>Nf@I7C6C*()XD=o+2Z}BP)(!=Ang`UE_-ADZ=VSy`?gRk} z=`BO>8*^fPohxPL!D7upBRV1TI=*8J{*8{;T6jXpkRjg~LVt*OFE;x@)LwIG1g}ND z#)*U;?Sv}mgnBLnE1nA3_j`Q^CFGY%5ophnkSpOXWd7(OwKpeIazK8GW%v!-?r(*3 zoL}NvM7ueLUg-_EfD02kQAoVu04fo|M}_~&FYSgSPZW~wTUn>K@=8ruzvEcE9G9zB8ON2y&(h&mViyt_h6Pbbh(%(~Z0g0@NNk@zcwYL+l zC?;OmO9H@=_(-zk$K=b-$v=6)P39Mf`BLyv$+u1v(o(WiK*}mCDfdc}x^u#bLNXBj zaL+jv$D0s!1r7nF{me`;JXS~&d#R6^;$;;1;A&}4N8-&}(*T9!?EK-0Uiu|8=rfx4 z^JJX6WxUI=LV}N^zr-shhults&}9CdUkY=E=H+L`j%3E~WhOFxOak&tzZKHQvX6j5 z${K-1GG!H7X2R7{1h1rj0;c3XX6F7mC0CZ2|1qoCG7~kz^Ex`a(=xL{FZ*OlZh$YR zX)n8rFYN_U=Ez=7w{y<)aeiqaI_GOZ_Gc!ZlIYwnXDEgy?}upK=CAxx-d&%rXzVa+?U`h_iFY$lk#qSq}^MO5_FHi)2DvgF*JIOD#<=t5R1VMvX zVmQbBiwen$?i?$m%PvLo<++ci3snO%btlP<_WzlZd+hSX9GH?T|E-Xgzi2Oi61BPj z!shB*Wg0RU15ia!0yfo1aQ{Q^3gBtbiJ_-MsPyh|mZkeahdCYdv9 zM$gxwL4ZP9+pod_3Q4RQCR8~KOv&+=Dk2H_rOo|{^LAxNVi=N@s;!u6Xe%wwQxq))5?%tpI zrIk93?1qiDTJUZ1c?9@Rh4l0QnuTuqTOk2ca-QPNzw%45%>np|X8&vw`(uSPR*p!= zfZhQ4C4nZ#_GVy8F8<(`LULMZj&f~9TQ|V3z%#~LfuXq+mbOCiHh>xxShwcJwmr>m zT(4;?J7}|ow|xe&EH(RLfhLxJ#iPjr8<*7ha(IWqZdUfzW_}2oo;`21J;i z#)9H)p+MLsF%kL`5AUHL?~YZ50=XM=Z0|o@My*fQu+I$FlyBQ3XG4e+sRffu1d}@E z_b#G(iw?RG5>4y|tbaq9#~9GO?SOgQKs5#iSLrPPVQ&QYyTwxZ*iw6eD1fLEc`$hp zvX2@&c$czYGnmW~Lq%jeMdLr$#yD4RaD9IPfKg_mu=U1hUg zW&bm4st#8c|9s**Xd(?XgbqEByE>wZ02N}O{b)!vs`HuPpbr-6blB_K0lkLKT z0qB9C0wPLbxRG|Z0U{82KDNmR2R568bsUbYTEjwV$N&|yj>q&C;(FZcmH6;>1 zBU&}XkV`^!G;@oMg3t`Ykgj5Sohz}57b(mWp__@|I0Th$eov|r(}O<;-fYP)caDXr z!3zo7U!YJL3S`whb?3~JqxqXu6hUgFy0&Bktn-dfsN!iRPFM9!qrY8Vg8@h;3pKT^ zMuNZ_P1pkYrL`IBqZtQV=qEKwMWcQv>oK6Z6a|Eo^2y~w$fg9xg0W<$gg_2psvEXM zxAMW$2#}!~2@*td8$rd5ph*#eqv8huC=+Ll1sYZWlp(ta4qcn1>0D?InX>qcIlh0uj_rV7w)gospD#3J1orFsBUnx9cLqJma5Np$D<~Ie?cgRCXAu5iwAw6I_=75d>OL1c;J2q8+pL|7X+suKHuvl)b;5c?G>`31{Y7usO!VY$d*OyrO)L-0DlA zxcKsG1dzLu|5i@;>PYhh{wD;yAQL%CLxA6YOQG~~5FY_eK|>>*f2eOP6cB!>9D!G`6z6HzPZy8%aQq?@ zhub)BaRHsAr^SbMRT@@XH9w;NxFi#oG?4pimA9G8Fu|+}?r&O^yUe zQV*hpA zErJO4YodzA!fc9W{f|?3rS2Z~dPD6{)QqW!Ts(sCax@w>eOml`Id0!h44jHW0JD5_ zmJ3S~M`61A*AYngxU3XUh>x^CFeUe3T+gcL z;AUz^>Rt_psLzKIUvXd5VKG)*3gP2XErTg+O^mLYrfS;tXZ55F`#po!tzQeEPp*!f zS4I4Oeh-3tJODc(lH5Oozrur@x%U{-9ur&0OdFXqL!Va@K}Q0|ZaN`2lfJ$2Ba4zZbENcZzkyw3pO(r7OH5k% z!|}tgU{)t~IOdG!+yH~ITqn28o^Ed;J-xMYI|C)J8Ja3(br-{N!)tpm`a4?jo1buz z;XtykK1w-D-^Uk3*0Ha!5RiE~Wa$mBQ>*eZAkjM`>+zOwAXsxx{sAbW4gq`DL{1&x>m8hT~X_ zp6hep?|x8Wtu{>!RVmsWzv1(hU#w<>Gy0&AG^sE_)~AEo+Sj^f$$49Z$Hks==+F8v z2wsky(RT$Y24i=AUebGWO`A7`2?5wB+RDUnV}LDPnoXbo3_2xf<&M#H7h?g_1)p<1 z{xPiF?}n;+?X8)RuEea+I-T56{`0M^V9VITbuH;EM>@WnYf%o%?+={ow?^xn4YJ)p zw7DzOC@R_2xW};pJ*i+?(bGb{QJL4B+^FiT4O&d(Vk~(BRCjg`w+5P2)yXs-u$}$! z0z8;|5>CQcOd#l-&w$tcod=(EuyKlV+O^3SZmKuO)WS8sKCWiT6^@~kLr;VV;f%7@ z#ds=Q$C+41ybl_hcG{wiGvp~;CcEC9dB>I=e9vFXMxEDn;!;b^A*B2_o@V{oo9HOx z;_OQ!{pPK1Vi_sz{O{=AxGORy)qdcXQhRTi(8|#A&g{1+a9964@YTXnZR?`TvEY8h zcP87`PRYwC2nuu-swvn^i>Gf2uNL!X@PP1iqZI};gn%p&SCQ<;`q?ZD23^+*%OF-H zTd#1A4Gtpb`9g#wGJK^*%tM(i;b21Z#e#TwP8)U3Pa(<_e2e5%YI+c+RRSe(>I|;Y z4MmxJmMTn7g=5W4O?F}Pl?;>oY&{1Tj;u9bUBcr(Pc6JJcrZW1VA6K4fE#~B|W!5sp z0JN<5ydQSlO0x9juYvJ}GPC4WjWSn+iDp7wqIdt}iVn@hG`rK-pNv)}@p%@r$Y zKe|i;XA`e2XB{p}M~6T;^T77J7C2Ql*%G=NtjJ`hCwaG~DCNK_TRPmRU(@0~mAa7% z=dN+D7DOLrBV(t;A*_{m$_f&WZc%z76mr&)Ds5hwoB@LZ{i1EnfbxC4_m6Qm9E*_Z z{!pyW<9BW}6b%0Iy>I%5;HF7{#lRY*-F{7{$lNWX%xY+iXr+0Xl*gyzgHx5K$Xlb~ zbL+kd9A~e_8qDWNGy4Q&Pez&Y#DnkL0F%l8D9f<1E)XT@ocMP|IRrobe&ndE+)uDe ze8H73O9hOp1x%HT4p$V?&dLOSlDul?z`eccBZWyj#=TA{U>pQN+z3Bk*)scn5Tx#l zZjq3E8?YczW;u+TA&0+NETG(zHyNiq1+h^F&tEJERq-M`Efuq2R;f!V`mqzA4Hr2r zC~P*zUzL<<2SF;jOm$_d*Hjj^-+ieSPtd&+x8soSIGS!w4169p7p!=0QwDXh@K!yJ zX6@Pi>KUUS>C89X)>UsB-`-s~Q?qn{mnI5B#xyQBH9kA1vF#bEMxy{@YY2+B@U(=z zbY-SR8W=VB1kfK6@DOpdYFV8H`d&IU55G&u8m2?gUaCbT)e$bI=RcC2#!NT*$n$f- zjUz=m_|=8;kzDwZt8!`$qWopX3MjQl7oSndAG<00OHW(9;beyB?kdCe9YF{oL19j!lg*=w zgMR!^(@6>mn34-qeadMG_P;PznseRqX_lDxLv34=;iQG9IV|3OX9g;$Z=!;LC!R}} zj^mg>mOy^#$lj>KWVAf{S&?mnlmemUblv*^RN4I#h1AOLS{mW)_+V4~72X4p z@=Mp8(f;LZoZ-QK9XUtn_bStK6RF_Sp@da&5vzI0oV^+a&d1NcVd#0J6#62Z9?2gh zPcp*J^!f~93}EIXWq@^YGfcLK)-Ry)KDaOTdwpBa_UaSnF$zYI+jr}0?(eNXZxf)P06PC{hbeFn^o*BlH1`pY(ErFU z9j$-2>Z*P59vO%O|Bw6<*P#uwq6pq%2Hbh~_~6d-xu9dD^)~E<%=TU4Ue*4=uX_gQ&vqE&p-G0GlV$^cNM* z)Hl+2DNsW|U}iEm`D$);A1)Ax1(=faQb?dD!;$-nbvAMFDja`%&0{DJ5+thx-j11! zk2#$Wn39`o`a@-Gr~?G;K*;JAYHdX}A&T?U*OAP=ZY3b7~eftx}~5c%s~Z9mC*Ptnwz%N5h; zZR64ALgAWhTES;C6m|TsU$~g3FQsCrt#S)cNRBFZyi|<*RRr2<%tc6O#;8}td|Jg~ zRpsuXiY1NeEm?}mL|<*_`Oc*O@FZlK-+Ov$Nvt+sz_Cb>DA~`S8-xOBkqwgDAsF75!@lggG!P^CID`(ujmQ16Wz8%X3)a`gXDyapo zvuI{JcBg3voDEisZVPyj;L8Hi%<1jUP6mT|E;%>`FikR&@=Nu_z^qzkrb@n99&K)Z znO9HRN!4glQ!CuDlLM_)J+0N)8!RjMI(|;Wf~}H-WEQpBv^D^MssS{M_k^QOA9<(sJp^W#oOt_Wz@g0stbIV z1boaU`;8x>H@0L403U<@p}W(@2$sLG8-8Q!X`t7`8wd3_4tsAL0r{oX|Co}~gXri{ znCnqC6w|ut!6E>K^v@|dJ=)KI6p|j2_9i{YO$J~}?%GYJ_QA78H%~j=JmU>0q?;@$ zH(85rvi+Ho1M*9NLOQyMqSZgkq0gQ5QBF#qS4W@ET%X@bU%*>mFhc+Dlw5Qb;F7t)@ns;tc>kpGYTQsuA$ z->@1fzhnr6vVi=OX2i&aPyfm(sPl5xtd|0}C%^Q6 zPRaevFOAv6f?1?)Klw!Ve@@B$4}~=Ddg;#7K9KK!Ov$Z{(Ma8X?w|5+3Tb|vMq-SH z`9vXI`&WMHe^*GijHA|!(`ZfpT_GhO8E5^SlKT&ZWKz6#G9?EnB=3oTw>Y{W8PH2G z?7xdZIOV1w}=9~Atcls1#VHyV%ft>rw>7Lh~ zOreFVHuzQoQ)pK8N8y{hz!cj33^NM0RBdbctp!Xqn&V3)wm4@2D zJ%A}Rs!d^Cow}VborP8_GftOh#jn5jqrSW1ZtXDBsq*&HwfdST=>KcuSQSIlSc07Ah1`RyrxcGtzPK`71OR5RwdMMK?kJI2{iQJ@GE^nuxS zHe74If)FM}vN$`pq&OnvKk!F!$&!jdTrFw(9txNDqLqZWh2~=n$(VUw>)M21m9E@g z0*XLC2x@mu+ds5X;B#aKEY4|otEf?`yAAy2`-k6C#4I#2lApMS07W28DVqeZL}Rij zAO8GB%p(R9yST{Q>cz~M_2<@7k%{i=S;?-NU((`jmNOv^Zua&$lX#Z=T!luxkiUX^o;_Jma;6dOgKN87mwmp2+mir3RYBiZIc@`3 zoN3pUwJO5jBG7uxVzxsumy7y=$eB<1|C&PcEV`Uh9hP3Uxhz7&L(Vu7@hRBZbG{># zUVki3bFxt>(F1>*Kx{j)IA6LqTiTZ!aF`EH{%QYF1Uj)eTm7;t^*0!(UYmUepGlkE z`lv2InnJs>w%vVzwkjR$Iu9!Ocmo(lA2oYk^iz&HT>H{veh0InF+0HGOg`K&01w{Z zQmvQ}DtGz?6oGWgr_9ukkyXyO@1l0gJkB`pes#Kw-1&k#g~Jp4c}N!LSA8S_Eh)$P z5j$p1DgyQYm_MUTs9H#;n5kJTtP+=A3VUaf@C~cBzQ0yoqO(tt(BsVfz2Lj}A@MGq zbL~dpdA!crd&Z5!tvEW)t3O;nTGV|Xv@JQB!T!=cGQ&fgj&|oF5qq0o2C`(g`rd53 z*r^i{cin$r3@khEw%)CSD-55zy*u0U7WCvy(@;wPOFd(*1KbrnWmz$1SSihb3JKm3 z(_&-p1&TnO%?J-*3XLWmc4Bde{({=+R5y+A)WjRUH%fgd&Q-Ut0#j&Gz3GVOok}$C zv20NPuR6y})p$-|3QZlbI8oy*Fsf31rerI&IKbkVY=+*7AwO^&Y!Vo1d!XNzK`H`W zc%>KCOP+DYL9vZHkyHfYIrY)#szC83-%Xl#?7x61v|{Y5%5SqA)?}*J_BTluhY}2z zzJ&O}=k)X)H(+t3E)2PCd1fjKb_VEr{CM4*pDCy&q$-X1@!EGJQ_%w5ZBXnJgA3~>;ZgJICELyvT0~|iPM)7d2+KZIeGmeS)8h>t%xPp2Ild@!S>_qvTN zl*HfvokByD$9HHioLHQ{MWB*|V@9J_l5qe~In%k2DDTgQ!TWqOq0j+3Wl= zoRv;n^j+a^5s1TlQRTkzhu=wMS@YA28lEQ>CsU+hNqAV=dqEI%<#yll?YjL>1?v^L zwmK^&QzpI1n95@F2)i%m@sK)%Yk{@*$~~Y6gzc}yJ&#!0pm3dN;lEr)vN$=$6N4{) zQU`7}7}{PPKe0I1oE={#eQFq;E}_Gp6oH7&&#Sw1Haxy0GH&)iuTNU5!!I9v*+{Kw z04$EiH#WlY%;g{Y5yU|1dIB?3C=h*jsn+^Ui(=!-osi3R?t#`Z7jY~Z}zd;op4aA@uhuJHQU(*F97IpCdm_md5 z-aTA4ZQ4q~Httkyctkh9I3T={JN{X63p`+@$%!C_itZg2<*l0GbD?ne+2_y^rApht=$1#M*A=W7N^>W zJ=lkO5rZ1XqzwA-8u?zvzU+*)=dbqV*!4NP>$`o$S5(UHvL&X|*Z5+*pE%4-Bj~}~+Glx773=aNN1ab=w z6%6q(0xh7#@;-!wtA`{Qg=V{j=I;6@35L1}g4F~BUUY`OR1eJqrqJBN0;)sHf&=05 zK9!HD;JC2zU8**t@DFa`K>z1Y5vYGRe2_U}=+6|IdPJ>YxbKwTpSusC`rMIb}tSfKx7lo0!8 z3JtJ0<`ZyD>9_|8G5kUTAQaddC;}OSwBi4-IL4$YG##Nhruf15}RrliD zjN|`UoPfMHzBO-Xh@lrR#6+;f`{w~uXbJHN2_aqauWRBM2w^tSaVZ)JiN=YfB2Y+d zvUKA81dz2YKL7>_Yu>~rB$A3iA@K#$Ng8|cw%iHz#&MMiNo~f-AG%`eSdvwRz?H~E z`@G~9_v9hzlo6KLE_ezBArU8(G%g(nSc-pHoP~d%LfcCvvb_BPe>)bE(wM-9pGZ;P zOW8V^Li<|;qDuVD}&c6{6p= zn#3H!GlXk1L?<(rgff~F(iF(l=fK``&qYz-$_QtS(;?qP-Pi)X8}bZ@kzMt ze)esuME=KA44@oW&8&yr*&ekyjLX^2_j9yZ6JE;X-bl>x0xS+|+6&FxN5{h1%w!-M zeC|v8+z^wzxaCw$R9=K|4v^|fw9kq0$OA0STtePk`)nT*Ze5T3N38jo`}rC6`Gxyg z3L&UWWL~*_b|k2vezKq}vEbHz0^bE18Wi~N6k2UzZ+BrNj%tv#=&!}`C>l>Jnyf9F zo+M475m<|7sfslR3rR&F85-?wwgpV_`hIcue&M%&w>VTq^He3j?TdM9IjiC0eIJ&UXB!B}>smOeo^o|y3T>rG z&a|RWvuyc1jqX8-T3y9$&&oSf6$S-`l1c2DmSv_Z#kayLADF%uFQ~NgEL14qR8D%o zDD&P1C<0C4>{i}0fGR(ot#tJ)MqedaoL?qY&Pn+ro0XnDRhXpe(6AEUr1uV{98R9q z{k7G=6xy6{O;2c5r$S-;)tb12nly)^h@|)aJ#2S-K)Fe^`E`FSPW}NbTcWN4C<1xb zRVV$iICYJ{6dGH7%hmce)B4r|2oA6~b@h>9?5BF_2iY1*9ZoEcX9KASRM$`uRzGym z&~;o;Q>#!&Fm1$%)J^}HLYrz_UTIihYswXAEK#7E^Mq+I@z2J}=|eD`1cXb1Iu3{Lx{8Ofx3oGymvD7UAnISJ7GdoM zs@3K%T21NyOst?laadUAGTi1*Vuc6;t+o_Uw}{j?4tdZ;pea=_l)yRhO=LSMsG`?? z+pIkTTZhwYz2n#(j%)`)E4ty7zz~xy7BS?}2AghCrfHCnW%-Ll(g5oKS~#&dsVEQ^ zsLhxFXBhlIW7%eJR$qWcEFGU%5un?0IvlVf?Q{}d06Vb?r?l~+Tt$HZi=&BbuPK0$ zaw^2Gx2v5t;gs>BU9TP6;}5}QXU#fZuK1>>N|7?;Q$x0 zMRqzlc2*zOEdfhkpst&QZh(vEPXB|8py1Ky-nrxsGCT~2u5&%%BJ*CoG-zlvuzi&V zX-CpUic)h)v;*=+h`n!;4Js}QPDN7x5QWEK2dSKZmqVWuseO}cA8DVtQ2!4wB0=+~ z2*j}lA;a~q0U;B;-i_p;4>WzCzB)T%dm;^Wdm6;%*b+FcN1#%MWj=q520|+6I)5x# zJ8oE+b_g&*q?QU{SS+Q%C2dH!?KaW(ijaXX_v2l#~AAL+s8>p&lpVb2*+$T6B ztpx7_$vpwM<_x}$b zl7%0ac0$Ar!ricab|C5$%OSyr3HRwSHAko|w!Lw5r$=;;Yox9fF`xzD$F;Q7CF(d}o?&@9@1=#?>8v-O1IR@|wT@>6Hg=m+U`6ENL z|DP$99fujtK9DXjpq2*KGiwede&PWB5*#hRBxVeIVJc~L-<;sw7UK(+l)a91x?WJ} z;^74>#kE&;Bo#u00aIA#`d~sB3R~2da;-0VeW18O*r{pQy)_68a;{B=ke4>fgM@O) zF%A&P6_FH5n6KtI3R)!essyp`%%f z<9aGL5aiY&NruQJ_g9-jxKMBpi;-w7nVVi+0TFC~8Gf_=F^;fQBSM{PxwL?Vr2@Yf z39Yfy)A2gHhhQ=^^q6Cr!<*{wjF$Y=h0_1TAz0(-+Vzj_y`T^@)CNS&ygHmh zfPZZ02%c$-z%N=1yNL4&i08VDm6)G0=AClvZJ$$r zOiB{eT4T2W6>->RrHzF|=x$bINw?tTSrz1ql!?*?q zBG5e|qCY=~f&o2rC-P^`;B|K#wUGq5|4k})-5u!^*sKH@mwd0MEO-pJU-)Ie_;?@3 zbx_y@i~KxLK!lkWZx^J^6hER`P2M$X0_UPB3$Ih;{3c#F2D=jW)rui$7UNHjhF0sT z%I+SGzC0>Cx98~vr8~xrXK-zjmy+{Hfc-yiW|Ry^gSv9xcH~DMt)Dx{9)uZTAa;5* zal}KF6bi`3{&x_PYm|@m_8>ulWN~7)(>pH(+sPr#j6P;4JW0_<`i_@&2Eosq=|^G$ zqY72CWk^M!d9C=d+4y(H!~8m0X`&%>LS>`Z(~e(+kJFDV-ptg9Wi9$Nyky`P#}wga z_{3Kjm_l=&pZv6P?KKxf{T^|oD}m0nB9&2{UU;OO=eE_e-O)TLRr89;y}{1cpRE>n z^Y-yDTG^72Q|CrywifPd(3OD#Jwgo!S$J4wO(!R|KI-QPMylGae}u|Dx3jRGo-C*m z64Ea$Gd!JtTtg|uTI8gaDBySR=DL-&a_94Q(VPBu0qyFTnvd?H^!GBSe?I&0ifgKV zE3Mfj737QPJU{!vb~{DG=a-W%d;UF!-qH^*Qr7&qBc~fMwu|x z-@eC>A=mQ^d==zkauLlkrYmLqaNdtWQS^{gTNmDGg17^uC<%@_1M1S&w{Dw0`+3Xg ze(bH=F8Yi9{hGIYpkYu}mwUG@@Almf6|8R##WHcyx=vW`3Gz@i%2~Ra+)0Ti3#&0~ zp7mqNwH~dY*OzJ?H#-%^ldde9z!xe=_H*a+o%XBCl=swv?*}UDs+_O6uB<( zZn}`b;uCdiclXL|7py$e*yZ%jsQlT`*UaO}mV1`PDo-W9-!oDWJbU>%d|`Rox7S6H z)>RJJGSZTxoS3>0>0v{D76amj@@ZCslfC_fv*HrMEPm3f63`_B@nCy!Shf#YIU}*S}Uk%1~BY* zy8CnMjen)|zH4}DBVbSJ-S}f#*L~*_#(L#b%iXG8x1K;O=g29=H+Vz4%y;H~undic zITgjYWm=>9k+zh%=ic73$Vz1)Kp&e-m>`*U*6z5z6jQjjhG=azQ&LUkNO1GELkSoU^*-@xDRh{`RRxdqy3eL(>QhLOc9a0cF#w_IA2BxPFko*hfk z=xQm)Eb9pd;<+cJ&uTFUE5NKff2@#KLy__K*c5IZ~n-pr1mdlIt>^DWr<44B9cnEsklfeK5Xo9e~vn-LBV z?z0W#zEaI3P)jS0Af^F}lX#wfe^;Je9;+r#sgL#JeQdBbaAD}H+)&wZ5_qJMPr zty|mt)#uWBS5ohh3$(rB(ANtz;5N))mn^k3i>^vh(o) zFP%|_xvor*Fi*m>Y>+>#@~3c$B3>a7@fI%d7VwbM!MM-kc6oj){JN!s>69>r3D$i2 zNo4>>Mp~$B+N~1Ld5614`+tf+pQfc3J&fA8cc{Z_n=LsGjIfmR$EB~c9F4x(2ep!o zyo#N7w7mutfkK~=3oR<%)A2M4qC!;^94+5yH=-K-;9BU83E-v^N$2XkT~#+PX8VYM z9j2@TSc%#r>7Gw%?w_g)_+n6K7b68rE6ScM=VwLKqXu>tt8-KcPfM@yy1!lIsSwHerNGf0BKYfPOX_-E_15Cy?zP_bMCGIjqA9I%efDi3+luw6hJ5#y= z%xuxr-&NANR zZl=n15D7#=nZFx#&|jW@QKbCqEBKMg4;-=3z0t=L!WN}g+=qNW=)CrQM2Ml81G$7EM z{>|87C3}vymJlQCxzpJgJ43+Y2>n*S_w0(l7?6u94=l~Q(&=!TJPo20@B1(eWo`*f zp^-EDpiayBo(=XJ>UQ09$cwo5%xt8hy1}(dGSiobLrl z_|s;Z&UjsJMVh#bpA&pIxg}Rx@~L%$TEN#ir&8qD0{ns~{FaAmE!DwsG8~OKFcoqM z-1UD+#N12TIgRmq)_$${n=-p8Q&77iz0B`TYJp$h$Z*fmVOU?TG_wWq+fimq`xGcg zs{zRpT(<}U!`-`EVb1K!AlmvQ^GWsTeD&tjdTardF+5ARv+oKOzIaw>YrbOo-D9lb z_p=f|OPC@;TpWW5kj0pBmbDK+~P&?7IGV;=k#}r?HsiAhs|SJ2ver{uT0xv;;D_0(qZN^_MU;8DaT$l zuUkBMs;`<~@*rPyXxyFnepQ+iW6Zh{$({+^P3(L76AY>#hNQG0T?Y@hL|zl=BDD30v{c1c%8E2{!(5^DyZyUZw?a$EY3SUs3=l~)u7?deR--vdFl%MAM4Ri zUF=dPkEBtc&%`qd${#vN4JDS*n<<=r&Cti>ekp{^vu)chBF7+pW)X$8isPUk5p__zGQ9?IIvDrU;6 zZ2|2bpauhI2%ECzcDTM^5F0)yL)iDWo$?Jc<q z&@|q7X~d6o%EfCWo>-jZUX2u>2(+s4_D~}YusH0R8KRo+WHmEMQ)rsm6^*i+(v?-IZQi)!|zInnHtU zRrP8$u4*+MYT;f(|22iC{lQVY!%Mp}T)Qh-yStDyh1T1v-3Lse8EP}^Y7f%r zd}P-d64g1GLeu$VrZeiOGv=i;9nXt~0Z$^W{(nusEo%?7E~W zG+Es_ZQXe@-33S8?_Ro#;krx7y35;r|BfcqfElG%VD|q;6GY4Z_l%MbFrx(0colr) zb?F~7O3RshNPcCr21VF^&nTs^Uc!sMm9t)-?yf8tE0OlxH#>#N|1+c16Spif*j6J~5-lHyFpbX_o`$nV5owu5+5z+`&V{%d>~fF@+iU9OkKkY z7pGc+qzf!kCbnjVaQAzhr@|zrM+%>;P);!~t^xs*E0tcJRh!?;*!)iS*Vhn-ja+!% z>Rz+@Hr8M6AYfkS_H%R@qp`qTr6MWm9ZlKX)X8!xPp1ai7oDU9$w;Fw$|Dp*3 z26Ebt-~;2&CCw-;5?+3`4*23<7eX=O$4r`00?>q&-;#>j*WiK>mC>L-GfJ*TZ>@Mg z!>_U;j;BXS zXyPqdQqlW_3usvNVs?RZ`q@`n;%_MmOV{hSUmV2MZG3p>SO0ToN0VXcxYV18TYbFEjxJOipH$oPK^XGVRjdW=B66{+wHoxI}gk#)qYL*)#vW%GobSeKojd8qghv8$hg6k(`x5R zz84>?JNh}bOqJjH<-1(4<$SoAVcRIr@B(_>e7TC}+|l-H5iXzAey%%LH>(YRfQh|G z6MkcY=a=u=M?c_t>VvQWue}cnZ{-fQ$G9qY$6A}FcBZE`j*m4NzwBaiu7667bZaM1 zBU=%`lV2>sB%Kd}BjfQDCP*)`UM`6AYml=Z&hrdS`Zh!gPwTvZfkDz?cdD;4$PD@? zL|Fp(x|OB4neGpoXyx1|0*7<|b4Dquvx?Oo85pvZ#`w^!l@CA@M!gxQt2*1oXK^8y zc)6J9pEL?h4u;ujzhfQiRK4UI70B;KVE)dnB*|JB;nw?(^H+Swl_8|(6G#}-nvsee zD=A>|0C^;(#DS_tu+Jw*zblttQv^YAw7cW7Arc%4Qw&%nY0b_P9ueU&9sK&7ku zcCCI;X1F{nXGnLl`s3IVAYdZGqNOwXSYQF?!;x3rbB}cxTY7Q+oIzKFRqAH^V7LwI zeIYFq@hAKg=mp8Fu0CgzD8|<9`AZHA+D#d0IarYbCa$?;t9uHK@x%g6)@QwAfXAUj-5h@`}XMz%RvGBy-Xq02VnXGfH)Xy*59J$la|O-43P*h^p#_wPlB-gXzWW zCjuY(*3ooq(f6IJ>YL5ipH3ajbXxqXpITeh(X{+>P<*8ks*5&SVI$0ngTlX$JNZ|c z5-1|8+l0K)LBPuIeaGtdcG}Glz=!x2?|#r3+>rk5Imdnst?9n=+cxTv*;kr#pl*Zy zABj`-{o++pA9Qjz6J94V%m1BGVmn$?zfn7M5-|CLCel-%glQ2bCbTfLUb-83|C~|U zDT6jFBZ8!9f=ca+UmhTBB1r+0U$p}qYp^fwV9)+%)l(;Ef^humx&K{`Kn9%8pMc5C zW{_LJoWPB}ZqwgC;!n`TUccw>KLL{)9v`32ZUSh6Ot<+-QO@t5k&#|Ywl@w)Xrg+c zVV&=#$M``bsQuYYtoIGC_MR6fGfHm;yykv2?&e*Wh42x5mw_3j@qxyj$S;TMq=1R- zi(`Qb08KPm{zN{gBLz%|b);}oEPvWDtSYI zfXNA(Krnld$73dfUJ&2CV6b~Zy^A5C31*)&cHY14`0V}inS0~I?&d4F_>xoI_nalB z-wz`i?`@3ry=dgOS>?;C?$h!HbUxQx(vCEvG&|;plA@V^VyztPeO=IBd))thkRNX+ z$S6pXM#5La$lDl1V^SSpHXdN{cSb4jpJ>9qI?ypUP;b`@d0Hv+jB1;cTnI3rMoTWG}znz$DqTACZ;zbF-09R}R1tCk7}(8TN9F#LFM za;J1^e0ZW@_=giT@h~{NKQ|Z-0wt4!7|;;|i&O;WSO1(*T8w|ST>Wn|O0dY$#faeX zF!Qajoz7rm2~xlW!~)DHkyVcm+c?}~fm{>DuMdw(gMI_LZXG1Oit%pI6ff@3`s!mW)jR1RXz zAHE6Li^saZ3WA3-U?Mjz&^%;`f5noJ+?DVe9`2oR?y2z`Al{h0mrxfUPhK7mAN<#h zQc(g$IXa0HFsVrbW|SKDlJG3aEz-#(G;uPc)G-0Cm`Lu2C&lhb#P21KXr#Q)OCC>1 znXE~fKABOf>Pr3u1WZa<5+_?+=MqwJ2|%Cw?~Kw9>9^aYfXUlkAYfAS_V5Hv90{c^ zYoyXx#?7@PlFOv6!qaFb|A8iC(%14JaLv?@?g?7x!_eS4|)U3o(Kz=ag${bX_0 zlNlx945h@(c@1$9;jD_9%s&B>Lzb-D%ZXAlq9Ed%yP8Rn_$<BbAA@Ga+91LqNFqP!bnrq~d1I#G#=0gIGCv#t!?Y+(j$~+}P55V*aZFPsk(N}&t^E82obo}L6kCP% zR0U~9si#6Ise*#K6n&x8(6m&Gt+U9B`eC@Hk%m%RF(sjkxUZ@{GVUfBB` z`wAxCipLH(`-Ar$byZ#~6)v7tTlSSEzLgj)ocmN&Fn}f;%3SoSADHsnu2dg;REL?? z#5vSNh}1kW<##Qp+0m?d1I#ELyiZuE@nI{ypje%)Rg!j<6fn7IT3bL}vYr9oGAx&#L3zQ&-zZ!va*9ZUuxcbt@i|PB zGSx7%QaXB^RA)`inVf3;+irC>Pj=!QtufFcOhSt2vlz;sJaFs0{ECuJXQcD^`cqpWv^B#$5zJV`kBGj8B1sc3ZjCcFapj8krdQk zcsg90_8};OQ0kAQ(3x%vM^fBor%(>3G(bTV(THok&4i@Zd$J!M$bML#;`|FG^dQET zh*o6BW7!T8l)%HBSK-$69arjG(^qH<&l$2)Vslssfy{q7cA*{64A+AQi9JDZ&fe=q%g0B*;kT`j)Wo^35*z4j^E1ksZ$% z4ZErb5t5)_19d!M?|nKAHv+5#mcqla=fP@6m?t7ag2IjnmPb;AhPT;aC~+7%G9=Un zsB561E$sa+q9Ap77`rC|n4L*Q^|$nbo}=J#D1@dSjkQGgN5^hNee>bfp6=vU8Z4|7 z4c%~rL(B)ihz_P=dnIXFzMO6OJ2-=d<>32gS0Qb^uvILD?%;rQZ*Ry7t({(bR3RNe zB#eoDryGWzh{Dw|lfwFWkZ8lyafwE*{b@Ccz}OQ`cT z3N8uol+#DALAa1S?6G<8O$!oTK?+~JwtFd^h2eCwMDh?K4Y>kUv-wP`B|?e=iUaHqu`_gV zBu=kqKh?Cfm5dm^lyx-We*X1)QbrOjqFOV2g z!jc)GDSvQ$yNwvzG5-M2iO6Y~&>GxJZ_bMVxsIi}bB)Y}@YVHCQv*5AGe}`N2y(%Z zOQOlHNPyha79e0y4)HsNbJ16B(a#wXLV!pf2I5{3J7E@#Ls=b+#>B`6ergAG7rnKR4&zscn>%a6QijgWxH`RGo7OQH~p zXuNFE%xlioe9Q4mV&Fwu2$=*q)7oB zAhQFFy}^>zVWGYVvPE%(3T7kc1!9}?TU+B0jUEjhno`mdLASB|=rxp90%ESWcK6tY z%vS=kj@r5mo)vjSY$ZTwF_cR9u1(I~EuhN3M*B;GLWnT40$TP>g`pom_<17(WfQR0_u}n#Yn6=!R zm)PO~LFVw^uYCRf?Cv@Z5k^@E6Vu&xIyd%xkYe>SfthO=_lgo+LS=Y;_Z@{kVDn|4{h8(B>Nr6A^ADxjPvqh74-dJRl z7N#ZEvgKK7|#n~Uh(pk1RAg%bHw6o--2<)!&@QuCq|u2 zwdh3Mv#8T%Bk8ZotyfB=X@$~yQ5=)Yj}cp};zGmSMn!4KBl^u%CjNYv$OU{gU&UV(xiZ?jbts@ z4(XFIXIuRMBWkfCh+lSlGafe@>=T;g`Ex?Fq4xO-Rdpl5($ zKpStHItcdhhhTb>;LgFie7x5|pO^rr9jGaa-NO#Uu3GIQ6Mi}P-WyqoZ9!fboupc_ zAVmE^d`9(W&RDbY8s^VZa{wNMP z`HWz5!$aL>3S%JK!R2q*SsbJ}0fwEWB;qo-aZ*;=*osV%sAqZ)MOB0z+WXTV>oU>$ zi!rCub?l7Dsw-u{+|xwF_$Cn9Pb{w<-{=DOyIDd$&l-kxf9XB%M}HBtJ&Y3PBH0U3 z<*m1ZWNe=@S}vR0Q(k0pA=A~kOSJ*M2;)QODf<|ys9nDy-}-@@IjTrcG}t5WI-la4 z5?nRI=-llJK_@NWtNX3KcW&|d|7~|HICZoqjre>$$n>)U#iopKBPB-PRcR zsPUSO@afHG*=+T%s*3vRu6KQZ&A$t0THPi1`LbF33KVkm63S;`7iacYbG}M`#?C4F zGQE}!%cEFX(aQ$O7w1MjTvZglpvMxywafVi>H|e@-zIn4m_kkm zG)Bgpp%rfm0`+CJh)R9B0?7Hd5xjRh4Qfsh>COT z1H5+8fAe*jx%Qm8lo}p_HbaEfewl5=HU&$aK``Hy@;Sox2f^oPg9C1wQxMWaWOB+_ z!ZA@b{uQUY7;aZGA~SX5QiM&815Q#vc1n$P^9`I=yl-bFM_aU0?>VQ zPnA^OT)Ou4Q&7`q>Kwn=d1_#&7F9AJmPZGC6uY}i_Thm+MfstRp0(fr3F3G6$^d5lEVPlDCPxW z0x1V(izA0TcG<`Dw zxy2fK-U>-0fMvCPSWHX>R~m&d`8Vw4;=k6rG37sUMhh&ItHYA6bOQ* z-!UyXKHchv+3nC@ms@lU(e#{wP6868H3i0YpBX6Epduei$>g@(ZG(Yt@xDzh)DDMt z(eS;uxuBw(%(Hj7-@Dv=MZBUP#jKIFvH6(U2<6L{;(1?KV#r>;tqq<7@)fT5eN#Y5 zF9BTS-?0BUPm%?fIDWYB>lOrI_Jca*lh9q^AK7o6AFP8me)^d2Y*Jwzecbjut(Cf@ z@`{6z8O6!pn^%WFeSc;~=Ph;XoQBC42ZN`|PIRH#sg_?p2fVRV@fxRKT#PRUDUjJZ z*&4y$ei=RV<@9GSpl{uO>ni$8`E2nD_ebs?+rXIDK3;anzWw-W1S~28mn1v(d#D~T z7U7S^l%_EKzNf*-rAPK6*SM2w_**Le;xZ;nE~}{hba4G>Izh@Pt$982oRofR1mYDX z;QiR=OsB~BT#3yz-j4o!X48;KO3XNbYh-y$Gvw|zjM~2pwMv=E;%`PlD7!DDVrO~y z+&VP9H^Hc1@#`$jsMhni=#TYN%t683_FC(Y7h_ACIDYnc9Y0BbcnHV-nrFl}b*J;C zj$|9ub|1i?qx-rD#UbpMV((vt$+r>3+FRO|FMcI|saLn;ayz4u+asbRf65IFKohc$ zbyIjKb$%O`OnN^qBhLO{BsP=DBD+o7MW;OYJg2u(5vM0x;*I!QfU8BPB)QYmSvcfi zrLjLF-e@!VxlGIewZ8}0Fp2BJA8al)<+m}So#rKWt=BT_+=4@W8Rz#jYRhaAZVb8T7 zi$g)iCNf5`J~7bK!N&z;Jzj}@iuUWlmrh;i^=VoayeZkA@0JB1E9PV~L{HOIiUN)XhFefnNzD46$N z89$4!la11j5Rjem;RZn%%--;;f*H}`>eQ`VAc$fs>@R@{M*&>bM^HORr(4#s2J9J} zb;cTIFxF=N^c9>%^i7iTg`0kiu2t1iD)%&0?#rm0ZEB-$zk2(kEJ>na{lU--$S8f_ z4$k7hzq00dPogSV{)Q$1sv@EJ(bonp6z(YiO~_ocLS;Dv0+Vi1M(KY*6aH^#j8y*v znkZ5YtN)+S#A-XYec@Tn&?(<00bugf+jdLTK<2~M7Rch&EL?(AA!mL51P=>^iI$mi2;+KiEhpDv42Ao zfWYLxp^4t{EKLBK@WyGa)N8GFYpsoG{aDpnKkS{)>RpQQq2>n!CO5V<{xhSLa$~>f zKLsW?Z?K|nES&{3s@h~%{}!0oYr}hPfQx(J{}!0^Q`2aJ&uP;f{Vgyt*G8VYK`Wwj z%KSuN($>$A-OK3px4`6nA4_aM#~*>oQ9oy@=7z8?&(*&LCT*IG_Wu@`ta<7R{Vgy# z7po&iqj#QD?}CWlB*zW$6M@N{%lCCJ+W!%le3|pqyV9U1)1!AKLR)rCPwq$$OLJ46 z^QOZ85tw-0RE@ZK{T~7o&GDOBYyTFQ=!)p;UDdy-sjr{?^`F>@I)I%7fa(4lJ8}Fs zcJkk@j*e*7mvg~GeTM&Xb!ht08Y{H^62$#+b*R0``;@5~Eogq?>d^Ek{+$11z6Wr1 z*pAm?aRdi|*x5{;){=QW)7uy=^jq_a>(B4~PRsWifNoBIc|K)iZ-cXWns-YWk?Tfd z{od9h(9P*n}J}g$m=9~j+n14Rbtg8KPxMARRLpcR!n}tMvbA=%g|Owto?C@{e~nkUG9io+ zwav$#TNGHz33!mZm@ON(L7AJy7CM)k-nrYJnO!Bwmwn_X}g)zOULD{>So4W1RNf6_kQWarrjU2UD1??qd^%uk{~JuL3w z;(bcY_S+39^^O<%DVQ9$`md3&lLp7fP2C#bCBi9gP-*-cv|R7LPA_LQp4zV+1h_g_ zp0osfe(>b`(?PpIdzUr`3r>lrrgFs8opBu8p>*`RQQ7Y&)D~nd~|hhZd|6=3mnvOP_abJ$c`7^q4h}X6$2xBFpSaH;1{siTuij z4=OwzdeY6=@MYO=&fHJQ0Fz%C;f4C7`C^N?L@NwI!HIzFuY1%^_Q!| z^*!_PjX)DRG?+-${{9Tf)p0R{_9~*aP}LF#eRG>W_r%rVBj$g5F3CC?!eJS#TTgOz zsBk{`2^*h1qZ#-zkej|N+%Y_p<5EH!vfvZ%ji+~6zPEpr-T%a5{B?%YW=8qyG2rU( zzl;7PshUXm6!Ay{=;nm9Vn@neVmdOp1v)ykW-xf))_aQet~lMK%^3JlCZAzPCzUfK zHdjNDO*sU0xrIKiz%ESCuCl7>NL{%IC@JSLXRm1D47M|s z>+=L?I(z(&w@#gOb2>lA)ouf>j(iO(wJ#^G4xpRkB&e&W5R*)y`u)7iKd_Ue&uMXw zU%em8)7ErDhj!pqry3tuy{ZtGddzzS!j>`}m6O@A}1T z0hbQb@hON?&FZfbw=e3G`vp%Me#SaH8Q2{=barXnp~1NST$yCXF$c4YV4i`6r^xx@ zn~tA}fu;*Bmo5x7vrLHiZ`D~q6{}mAdI`a9bshb$PvB#Iv#L! zn2z@MRQ)Q_{A~vOaYjhk$w11QkvKXnil?f&Lk4hlB#+F?{;F`3pr$DD7+LSFZZzjy z*M0;jzH5HRM>eecvU`3yLjHQ2Exh4VH#3a_uoFJ5pP{CQGc0{IAO6+N+55=gu;lin zglUK9;0i8BZ^r%A&9TyY5*#h_nYdt9tq%|=q;3xIvp)CUQWZ=2EXcR@r<;?yq|EiE z<9Fa@R_WoAQ6JFFDfyX4b>+Lqs8ruut)22@&SgQleFE@^RZ(}e=E(eZ5GLYdPgcBa zuweMg~qR%be z(7W3b&Nl5P8}>Pw{|xvYr)b|1ci+7_dXs5t)(Di!2K$b8 z>bQ31AGvO=r#=4lj(EJ=C$~4;=;f4}acl?o+?T*Xjc_&0&o^DX+oHU8tZ>L(9Lm)l z!S4uMAMoo@QM2Ia0PI8($Kd+t$WWO0+m&q4hu772<+so82S~~U!38`B=;mCI^aHSy zi~Kl#pqs<*rDo|TyX$ws8p*UM#)9xyLHGj~rT@{*`KPM`z)tc4uDbeLviQY+7b7wU zK49^?J`_O0PX2avsO<(=x%vw)iuLISJxBqFlkF|ix*2RorhM+~^WSlkU(!;-L*DObvRplC7mVtet$Lc)vP zgh;2F7r%xgr-s6PbRQi{;wN1r_g(Rbw*dfJev}ZA-x5K69Z#N!XEc8Kn&ss&A~Ic< zYAg8VvE)l8)+p|`_|wBLdii)E#!HeJBv}0M4Oiwo9L-_ z(1>a@XGipEdz6%M%-5P|g{25Sn{xt*F|(>MDy*>|f@8F#qFr>OwFF*h3&ff&h2Bhz zk$ub0kr+Ey6Kn1k_i8ux`r8<}3)J%0WH7%MZ5&MIm3x*dx`0+Nf~?b(H+rj9lQ=5AW}DH z_yju{PD+wWdSjeSa&;IdtD#8PNtsmG?Tq+F06Te`RFRn6o|w}4Hs$TxNmF}Lt<3YlyTb7FsYlf?3V1Lo%W3)MI8c~TS^;nOIta? zP9lcWw)av#FY$aGe)TK=71Si1TrlBKAiY%}P3^)fO0|?7w{-d|ug4P8X-ASbmUuSZ zUiY!SCSfO`$xNNE2~yN@`De4H($BIbpJvMt-Oosq$`D#kqQ1fd%#q^D$s&}bZcdm$ zrc`axdyGHOs*x8=mQBi1+t0kVpTrxQv4Hx^)nVYCZDfmNAY_@1WFwNYE!lF6O)}3u zro7{xV|^vtbUE9uGusKDBzIvWOI(4{`%0cpC{WVL zb~&GWL&3%-(1Uyz3n&3R&SX45U-Suj6lKY!mQKZPv^r*=l*N`cdI zetK=evOq!Jm7EKkd8MH_4BFHHc2bj6SX)bSbu{i5HUZelm7-RYB9g1awy5Mvp+QnU zGr*Q~7Tq=}>@X?*_Agh5ZDE&SvECJG5d>#0WyzP3;>Dzr<=T?ff|5zw5}lE}F(*n1 z%2H#s;qIDJLgi8B#sASmRoLeDCn!Zs15;@6lR0=B;M&H2H zv&PR8fJM?to7!KS+(-x%+3%?pR<2a|#*)42j&zk;*Bf)8H?!{SSxq2-$Pm~7=>XgW zrkW(JAW%j*Rw=4ic?y+(cSJIKAkC*BUZypehX9LGA^VWM4+ByIK^=uiP==@WTWUOf zZmNnF;4-vbLOci-4{KCcXtGvloB_@P12e+GfZlF07ebs74PBFbA~& z`vIscthJ$pDagNA3_i2gVIdNW!2qxrXlRIKD_=Jp5F`LBhQ2Ae0$}gh0RK#ea9P4J zo)v5yZ%76Kz*vE8iz9q^DAVc!I2G`SS!wF9hpZ8Gf7vU@w5hc1S|$1^i~tM*51T2h zo@f8SO01)@ZbD%3@8Y$o)v(AY4B6Aej|nLa;uxqhrpy`eR^U4_gxdfvqW}*{Eo#3g z{ek}>5~dsg~rC7=SjYPoQf601YzX6K@5UGQ+G@ zJe`sU1+xMY9#c^B$GKq?UX5zHRs;TSNlX0PWIL;yrfFAd|; zhDaZML<1BCj*LmV9iT9T#}S)FeRN%Y6kVW50+LDwqJRcHz<{G1$E+L8l&;S&L9S7wJS}k&3uFR98E|U&PzDvNs`8QhUP*fd7RoT=*T}tx&-C>1qy; zKSai%p;FXT>=?2%5ae|a{9Y<0nGD2^pyHNKlVxo=J-4j3X(Wxz}i zkQWE$QxivI*o{fXFqn?xB(T({VaR4slfS~q)#`i7H3`)Hpi&`Fizg-d>6uCp=wH|c zll}k5oY<((oDrSL1wlOVaIJK5bI@BLuhT^hp&T8$JqqKRnkc}Kx#1ebn-DxWDymyh zEyAox+PDOIknR8mFc+o{Q{w1mMh^-B0+n0S_%aCMhDPdP-yJs~LQ|$awW$>W-~u~! z_tup9AK-#8BmRfCAYvCU0RFYc`CLab0JzW^2h~Lo)V$xUZw$TUgcUkYj-|re(36H~ z^AQeHWH?$Z=qs%U5@5)((f8TcgnMZbo&r>N%2;Ypv~WG;~F*2MCRNZh)1stJ}Tf+R5-b984U; zKte4XPhCmd;67fUBO=1QmM*W*C}1Grj@1lJ@Tx{C0Y?gY_9=y?b*9O2c619$x+#t5 z@H0JanSK-o5EclFDRFITzoG#P%bId8IIShQ$ohCT7A1{=Fkl$4{o4}Fi`Tej<X=;vzMS9;UQb5o1rXpnXP zh`HsD&WGi37-(hM&Pao@90nqdVPJTE>XYd1ffuFRMq`{d!I-PUIlYBzYWjBRqy+98 z^le=F-75pgt*8-1keZwS5>(P1ubShTy6%cvp}=4 zN&`N;sPnV#)#Ne;4ER}~(tF%p6B6}Qa`?T2V&vMbk%FncI$B5@3T8z~ViZmho6E`?q(B;0O$agH4* z3%s!zD7ilhbaSfQzA3xC(OxnSG1tW``_ccf0OeL?4Jmw{12u(!9|d1f)@MG;z<9&p z;I98{;P=PA>C_U7iEy6Y>2qE;#{|CS>$BhUU$|*CWZNwJ5Oc4U7*YQAS^QP@QHd#5 z>rlztM*BZX1XTM~kBj5ZKhRHdnYWSMQ=)sR%yO;(=|ax5D5=}J)X3x?#fXV0edKEL z%$D2*alXa3rhZ2EwmOJaZfe*8^h9W076Nv?9ztQK<0wzg{&Yj$l&KjKBIH8FPkE3LH;7`>zhrm)(o!&)5jO z!Z_U`D10iDh5H37{hk<>zhb$#eUf}ifQqxij&O?2Wx5FK#6O3DIpx`{oZ}AUf3E=| zU%cZlX6MES<8FlhjN!`3(@~e@o}=?;cW(MlhTh(j=e#_Ag?ORJ>M{y~KtI;b@Mmud zp>GmkSX%|87E9vlqM3{DwIB?v;NbIJUm1%T2*ESpg*=(;1pZY*HkC@Z)%bwrd*QQm(uh+n;jAeVA!pwyvtGN=;VKg zmw>vfOx8UMmG_g$pD7h3XA^y9)@Iy%CNM$tlR7^mamJ4(?%UT3t1NrQUswZoo04-m z8KD&DeM#;}lQ+(V#vt{MyX2m#Dp!Q6Ple5by`^6m2jjz@o_QmnVlDMZP#)#`65ea$ zF<{c}1_~=@Zk;D9mY~#gLyK+FkifB@Cw0 zyllbbeclFa6Muk*z!cp6LJ#7nEcUQdP!yxK z57j-(JuUecjEvJZ6M)Wy{u7pZLCiF}$&&0U9T7$W0W?T8@^DR81;!jaW18#Np8f3H zpZWdXZ1s%r`$lp?UQ;SwEk0izb`{a&I_{u6g}YaF0_YGK{t7Z&G?}ffTRvD&<$i3T z7D!q60bPI~1hRv>-yoTy5H|7TOw5O&cNEmzIInU=%8i#z;vaNgEEX!0>7qg%ry*24 z3C$eYLGLa^wFP>6PMn|+XLVnO*(v*N4_r`C(T(bz9YGE!Kp2~xqPnTF94-&boZ^;` z$>f+PJB<$JB&VfPKfEV2?;6UXbep*;34-FC>YRUeL89htn}7p`%#vI@0g}$(w+f(< zb3XB1-Dl1>wDXt)VsT%Z$QnB)StICJZGX( z8dzC4*^%p8g@T<6)-Qf||Dox4(w9P83T9_Q551$)%I71{Ty|mUnyUMJI=H@ytUPwb^ZnAQRVd8P9Xcn z3t%VDZ0YWGraRHxrebIkd6pk)wyqG%cy43dk8pQzBS)fvO!bbRuLRWTsbPZ-Y~3@6 z5-DwaIW4f_(esD{GM*0%6i#^o&zIO$$*4{#VhMA;pWpaEukBUNnBiTioB76kPn|? zqHa;3b6&lBmQU(K77>LFaJuQwxUJKnm$Nx8+?g&0x=rPl_c*>`wN=+h;u=XiLHKq5 zV&)#}4|MqXPbM!eel+fVEASE3xr|P_UPLLrC>3NMA|ss6n3eM9 zJTw^@MfNk{`*TgxncT(`OE!t}U@kl1;Wbi#@;W=op-P2hr0@FY12D&stHYN1Sk4ULKY&|1f33 z?{>`#VXbl+Yty+~24E=_>r7b+CWOBBUZ+zkd}aB-@E|6M(k^X*p_LZ#?OT-P`K8!b zdw>091=}ItD*gr`9W7#XWc=l%TrrLvuvO90&bqT zI;uG-a)cEqrc#{Q3a8-anEL~>$1Y8@%`s95EE6}(Aug*5Kf|m%XE}+x=6O9E;>SK9 z^mDgv=?T_rX`bJ&65aYqt`0u0CC%sVUvqE$Dzx%ixl{ul`gm)nBG+rp{yE9j0bnOy z>s~~n#}wRR_dTEYPXIfa3@qWAaTKgF^Zsl(u&SVTCMBIU%@QIDnW#?p*ok*iqR!xLA>NjHZ`v?bjx#&$)5(gIfwFSY6Wf%1>{*UkBq`u4TW=N3cPlJt3!c5TtOg3K@jNX z)GG*gD~OCKh^{J#9k%ez!M*X|3&M)xfU848@sgS1WjnnTcVMM~=RN*ditnqx{@ zt4cQxm9(jqbvTrDg_ZSWlmYBSEyf3X^Q4;-u56s5Y*M6bTCc2oukHLjrGIsEZgZ&I z5mvb?bAp|ik-9m5xjIr*Y>QML)&tmyiapTHx%c6p^SvgJ+VBBW{r7yoVF6epcy{XM zI}`rbe1FbjEvmizRcYYgsSV&2LeKIC_hjKdBA)vvM>2KdBAmvj8dq zr9Y_+=k%|^jDJ!a`mwjnNvVw=-4!Uelhnp!__dSN1_nrND9Aa5zbAP@JSTsw_@Y8|E9U_eY!jN`G~iUs|7i-IoMdBlh|S zuD?|0@^Y@)S{YKGc_G_ScQ5~41u);QzjRfao%j+NTbojU@VozA!7Dk#f?vOP+aAT= zc=y~Wb$Xr;?Yz)2Kk1{n^mPJ9P07sVj!;2FYZY#PoeF5~`8?o8@2vVo5qyXLj_rc{ z;&e#EuZpQ)VO#Rl5dIIlcnPK|>$?vs##(NN%cz{1iNGE!bA(@YHfj-Vg67ZNDWo&L z=YOuhW-i8azI`%UIS$h$WadmtZ3GG|B;1Pw=6mZLk~N}gi8o1zHTZtyIndTZs_Q~N zFyHSCTUkzb8_)50|80#BG9VYU4u5~I3`lJl*e+!VN$oF&(5t$iSR(`zui4bv1W|BY zSS~24sBSisvJahDD<5 zXUBr`V{8jI*GIb!woKtCWr8=xHXWGX%WU=b6&(KTsf{oz?~q|GF6vP8Z>cy`{VWHc7H-mV$`_Eg6>}06&jbFO2X>oOD)8?*-ffw z(C;;e1}z7PYt`e56-CwN1{{{}r-Orze$UuD`_|ArqP_JE1CvRUoK5)n&}||r`cnCP zkWkv*;=L=!t`IdBQG@C9QS_B1!gHG|GcOB|8Rr%KXu5yY|Ne2X-UJsr+-PNfbojHK zuk>)UTjHJPFw1BYZtafOgga9&klNT8a{;UoQ(LmqGkJQnv8RfIP9N{DR<9o)tVKR| zU0aw`a@#L?UrIba{Qd6TVNmj|ql6Y5^AxSev3fcLnD1x6{p9oPXsv#iCUO&CzCW~B zS>$U@7%TN)|=_IL@r=;Ggkw^tBrSnC)>g?u1JpxKIFQ;1Zf0e|-MQ@F z0Vh5o&G#>#i_6?b-EF~jmZ5yEg=a7hN+`04mT?mJpsTY<0a$ zB~&*ysD4(UB3NCyygaUnItLSUUBhyMKAr+JgQgl*w_w^z><`bm_}WcFKW;Mya{azI zvs90R`&RN)>%B|*`CXScA14PL-UsIUUT69zDVZ7z0*N8LPiwc*cDt>Frt^vI50O#e zz@qO|U-SD&sg0_l+*7tStxvv1rz0Zrl-_sTQ0}aV*k*9SBSWw%; zeLIVvhF6v0t@e|+uUP`XeE(aZKTPy|CR=L0mPDp_ZgBM-(OK>zrmM7MT9fC#nLyPK8P~f*4kg&=X3p({-(tMwgU37=XW3b@cdO^zg z@;!0&k9k-icQxp?J}R2b*TlQRoBAN@r7k)T#S&I%R3=bYNL8i zU(EUH=v#%(-?gh=fHgvWWOqWMZejF?S8}q&G23oaz^`?$KJ|v%XqTp5Wr9CniY20N z(6iDyBOul(AFQyC3Mie+EWK z*HH6KeZ(Tm@j-{P!bLOfs#@hy@!fO0(ttJMMR`oF#-G$i?`CW)c21OPm~w%Ts@{Pbbay())eBDi`t1 zV^U94v7gNWl7lqgdyD|qz>Bvy>)uF*nY1SzpUn5NL2O^B`QJ=CuuQk4;GVz(_>K%5Ej{3N5jOzFWJ*v9)k1wj;JW91w`pD++#{2S{+@3WDx!MuG zol9fF#rEjjk}B`pk3j{BNoL_|x{Ud9Kcj z&<=OKYJ8k6ezaWcd}TnfWGjH??u!1$+My@K&j=p%i`xYO**&6LWp!Qy_pLm>5-&Zg z3L0B})OS$5hTJSETv_paS2qEF_q$0Qv^JnyH!c6drA0ce&nf<(Ww~+pgWU1v$}P{{ z#0G(;hqoYcAL|!girref)PBB#A1xZbTWD9mWezer_^#NuKcYVT>%s53qQGX{*TRXN zrqT;PnjMhFLh5VOs*RiReL!mC)m|hf;Lm*j#~M-HcXVQnAkFt5Z+QRwIK8)cZp>e5fat`3cG&3^!}#p0hS4Ywl%(YhWs@6`L$dFy9NUu8U;D$J+~k7+l~!5 z#UIq~LYnXQ;)5=#2Hw!6GFc3Q^9P3y1uqbDgFCE{AW)DOA|z~)WQ`cQ7JRWLi2nk0 ztaZrKypSxG;FMk8_m-YleS;VJLrZo;2`pjdl3~S?q1mos4_V-EYQpMS!lHN2mJNor z@P}6ghkaNKsFe)wWC=?f;!dv#??;5SxrTqW_U~Yc=t>AxZV4RR{i6TUL^Vpr9F-6*mmFXDVl#36t9?}SKbhwlLk zzR~psLMoih7>^wGfxpF<@JAlWN7BCyquIl=E#c_gULG%U12JIcjxb$gan^}(Cd07^DQZhMw479&LVg?|d;n4# z=R4x;m$-EW;!BO-?Ju{OC?8MPs$eH_DW1zASAu{+Zxeell&_<0iKaio1fJ3 zHl-V|Ms%dKQbZaJab|&HI^HJt{h9Cc6K5P#168@+67zxWKb4f)U`?5HOZ{-2Yk(rH z#3*g)#2WGHZCZy^YP(MgAXVJidj+I6qC#GE#)<>*2lh{QOsS=U;Cazh(if5zEPJNlD}*oWYXRe^ML3d=FS7-h(oDOfoNbCe5HT zuheEYlG~GT$!%^ZiJM z&pz9LRDt}-e9szMaCJW}XFu=#6vYg1)$Ulhiv~qDfl35(iuMbUBZcRa@;`z>o_LrP z9-<1YXK1SO4X`S(V{21KIa2<6zAq?f+D`xm?RYn&Il5%BGjXP=m^9zlmSn53{@Ju? zQ83`>*bM~Pr-Zl>$P|D@SsTjG1X?p8jCbbN;0ZPTl;$Uv0Tk8Wo3>*a3$SVT!(!bi zbns=YT?j^Y;B|4CF9xQ7hFahWg-Ipk2jv)#VrN@s(xy!WLBVxoXb^~GjYtNr(IH@I za7a4xyeVN~B)w*e=6gS-vm*sCqw;KkbwC8w4N!O!LI7J1j44(dm4*EvV7_<4mc<%F zb<&|Tn5sLY@cSE;R=BFO$&hdilsOD~_5chVIqTuboHt;O%jMUkYgVpQJbn4MXn+9N zDr#g`DE^GwO6oPsNpHYvB{~OS`ea~Eg}R$U_km>_jeM{{2CU2Y(OQ{NxT+&XwA;zD zJynaRf&k05oF%zaI^}&d)E5U!qpIa1z#a+KBzP2~fn|FN3TOxbYs6;{xE8Q%Yrh$! zEcB-1~d{vKq7?zj|7BcteJ;UO_B}(MF$Mn z1&;_kV7z4dj~s(GC48(_9QB4I9l(IoHX3tL?{-4S1PCzpDX5$Fd)4j=GHiYHFigji z{JLjT2pWJPsN&p^$|sw4jpOT1stPSUtj&>}OZx*4uAFxm?nL-tR|JJ}^+xq*1#iqY$y54wa#X_))d?x*-*s%HsA)8PeOY zQ$s}YkYaQq&|)|@)v-WD8Wtrj6O9O!uF??Yewaahy2V(DCk9-IMgYhLuxZ zd*fY?2k=`1KR|=@Fc5QgxI{nWAFaUqu4etNB4ylPS^?$lii#j+iFzQY9HtlUNjZmuDxeZ;aOA+Iy+2l4NdSj$^u-Lr6bV%42xN8G zcU_?{h5j~>d)IOSG71d^s0eccusu_}knWv7B+H*_0g4P$W~3qm$5m+e2+1k1N0k1n z#~`GM%EnU49(}=bepL|px{LvN)r0wQRi7xKR{bC?fPLT`(4`qTXGvw?HDHuFVA3#P zHa=h!LG|0SQh&8HydP#JQYnu4YTE$lJt;{;_r`#gS+2eLpaQURqXtbQfR!7PrA_6A zM~GXJ6GJPFaAdbqhe8{M%u^}#j)ru4Ks1;#FGmO&2;`hPEX!Fct_@7WWbQKmWA1h? z7$zJIE;p5GVUgz8(r_H?d=V0FPNm;7)WkVf)er062XUoS?sks;S-d^Wp<1ZX&t7Ej z!v-u+uBtfL z!R)^)4zD>GNS1+($%{^tBj!|#VKCQGP#Qi|?`U+DbJ`$+$~nD86$CBBf0Ivz1H{LJ z;sFm2GV-)xGD|qNpVIIMCeRP!Y5XR!K`VSY%KE zwU~VRD?6daaIJ-{amh`anlEj@91n5A4klhDE7<643}4JTJr*`Gs)Ymo1*|BVpDf{) zEd9t)acn(1df6gv)g*%IZrW_Y2HB4NAUkN#_y~q|M9z7v$sLi6+YhvcEhKwWMsrdc zn?rMi$3c$oOT%I2{RC=68m#}B#GIS6=NTASr&$%Z`*NN$4=hZ-1{-7v6+ z#~grv*DgDIk^S~Werx!#RH|Xj7(MX0xLyeABytJu!fF&G91}x#WV!zCew)DKnRMVmAuda}ma8!@;r{B-K zC?8msx}kpQ5@9?zD8!@nHxRT>o8i5&4MHQ$9u25A%?vhzZ6XJ<%^=s1AhM~w7h)UE z&j(z^2AptEiW}S17L?XvP^cCY-HqL%MoJwFIJETVyEKTG<1o)HDpPc44DF86^B+#* zFjWlr$1#~v`rxfsJ4TPDKzO*q28ai{nNKX;m-nVL#?LxT{)YafKIGhe>T@tEf>3rO zW2IfNjDQ+V9qN}H8j5VyVb>|2L*7%N)i>U5@bPFcb4`)8E>&@oxT zpU=%)!*c`H2-frZA~6Cwn~6SRusATw{a&TrzJ(roEI-oK`OEhk>GFP`&zgMANaR=J zjk(vkO~rK9+<~Pb!AgzMj9vheK5`1$$X~1yzNohSfl+wk4COv1bG1#6K_x38s&Z*O zhfn{T+F2XJ82*XPdJ$8~#bJJ)nQqmudW(14vk^C{68JvCAG=-}rBA-YjOe7$QyxeX zyr}7<<4-N{BxxEa%F{UH9>Q(7{BR1gX~8;jXh=Od+o~3@X7`K1 zzFd(}O(hQm&Bzehf)(26Wcl0WK|vd;t#vaAO~^Ta)%)aZ=J(nOAO8pgd~N{3fFTTj zN6hLn{45lDA;TORlA%N-SG^52%^HgdA|hey-r>Cojt2`KPGqUj4tCF2@-73sAQC)M_{U3PCdnWu$os4nPHl8OlP#OnT_*ss14xF24W%{ z8)0-%r&@>Ft_hT5tvm`XJT)cl0r zdGF&?3F7xxlLcsGO^fL!^2eSF<#p$k{kdpa8*5&HS zV_7@0ju-rP9X#G3a!2dE(V+*smjgB^Hmuf7V<6da@2)CCZ$Er&37eJhVcbv?-%#}d z2_uLX$tULgZs;|CqvRJrQ$O+-5}u&JrN8NU%1t?E`MOuZRguH?`&D1<1YoN6=bnFg*4hyVpE-@C(*nwLidlDFWRjz`h|R1$um6DIqz_ff$m*du$L@Vl+IIds!A zB3JJ~cUeHJP z$=(OsaSKFb-Q%VWVKy7OjZg!eupN@%0spL1cR%C#G~c$V$IVeWYfthPKUFijT*mZ3 z=`PzfN2L4*-FQun`>GDjYG|eD0I!;6(FoR7uUHZtLxA8LGM*rr{bhS zODT8oY~sP$#lWVrS`+ehBiQ{sZEt)vUIPql&dQ1+`z)0Lt2~9nP0Cl3Lb*X=XDr%B zu~*$cgOy&J@x08EzUinN7&pVQc%b@7%~CPp);64$z^7Vo2z|V8^Hm6{6;Wdq76jGL zV-g7fDVRi^$-+9TM_4iDO6sERnzL@6vli$drX{5|NaM0vhrYG!drpBNU!%Q2+-iF4 z>vol=@0(Oqrm=;hH*h!1!Y{$37ljmEMqu?5`Wff=SI@tCNjW-JNu=_#7nV=` zi8DQGP-Ky=e&2=lt-;u{Gc%HfR&PVJ>KTC}c+8r>tJ{HzK68=$Qx6}yBnH>sDNoC; zEavgSKq6G`39GFYpMQO-IY%{yqs{)_1##7=>ub2`?o0DbctWBn;z`KYwoFQB)0e35 zazy34=(*;XWs@3EpZS2ylS!FF|17;e#N)P`Zx%RL!rUmutId_ns!5`T`1Sg=qtWa5 zGtAN8J8M2=l4SlrQDVgj$lIJ_?ILG2WNH?B5SKCIR6*LXIZG4s%i?P2o8VS%rn{&6 z1twWke00U`J0Wl2$yjZ)#WOX)loQ6Y62~CKvu5R&C#j9ZN3=v$`BPuPbBjK+BFsx)FV6VYo;S#a-1uRz3lC*Oh-o-oU2Q#?Hq$l$7ac$xw^d^p5~g4 zuRL(68$bFFYs7cc$%6%#cR&f^S*`-f8d3YVHG;~@^*!gYWAHVz8HQZfHW6>9a4WM} z_V2DAuO2%AIp?`Q)`-V3xn}c1R&HJ9$Bz>}nk|Uuy7kz5KcSy9`!4<6t&e1lfSWHW z^0|MC@P3-bXTGFv<^Co0&wMW%FF#QHAE^yOkooFeK9AuZZ|66;|B>2wlIt8}0_hr?H0Soj z{?9qrYWn}oxl~+Lt(E_nb4&g`=U#YLK6a@vZ-8`-eX4euNjF&SHR&2#STUbYz`?w$ zs@Swp@Llai_39GyTx;%4&yxrMYos@g2k9CczO|EirI2)u4MYGm-j)N`*ub3I{kGzJ zpE;c8v}Ud2t_`R;}f@om^vAuTR#&sXDA?}1N(7B}8C9(7MVct81w zqqzEjbd4=MdHv(0Pxkd^z?^%z-Q2^Ho1goRZqN6r0G8u83s(kb*Z7;n`}{M(rKc9t zg81XIzxbZ5T0CQg3XPu$mt49x9VWTJKO9Kcp*kBWzQmXTL;$X%U7vvSvovYTtmmRd ztG>@h-8{41AEEsqkvsCb!BX}!MOy*hKwjs)`9$*AsksC@B>z~9wSh4t&iI zxA!P+k1Sbv@h;@^;m;Lqet*3~!Mm7#F%Gwwxnj?P%yjy;iO5QDHk`_eNwewAP7F*M z*GX|+K1Y@wTCn{8_&?-OZOF}i0BA>-u;n(}6cnW_HUYRIx9N46au_d-&KZ^i7wAt=eiTT_-BnRN! z(dYKIvY+)Yy?#0Ryn5YfP**Z#*FjCacXz^hiE4XTum99`a>PlqaBtdgL~&=#^Ly3q zH-FI$V#|~66lcp<@IM`M3Fg$|U&S6PkB`9ogbo*y;_YrX@r6bZmxAsJ9Ij@(7drZp z8`^k%HQ>?7;d1$&f$MtO>xd(L!e(FoW``uTJ6S%BVfM%ZezQ2w6|<->#;o-3iJ5Alzr`VaMxMk!(GNd?tMa1jKVc*mrrO{C^-QVCcV!0n1 zOleO1#1AeAp6oVeU~Or=sPi-Qu*Kwe0I|)7MVRa?0`SFI3gaV8Z5_tR(4B)?Z~GZx z`|<4swa9-#ale@_@h?l%Sk6t40@KK}5Z69H zm22cEen-D;f-YWV1u5L7_9goq`}8`^n1a4tRQy1}!VM}GMPoXVkleM*Th(Jtc2iM_ zaqIz%>3m9#cE1vahd6GPTZXs-5rF-k?0b8ir~RIX+wVbCIas(n=?v$>ZZ2I2)K+xr zLZqPpoXaB*L;!xL?>@0$AJA?$zx|t*g(_F>q5NQU1h8_IId|uWVIGL*Oxj^XHVA8D*>5S`I zpZ9u(vffr?hZma8O^=gKok*pX->%x2cI!3`-l~pXF91s+^?Em|symcc?L(1cU#W{L zdoI{IW=o7LJlOM}YqfpJ;ik9ZDw;QJT7;W;IJxe)SGT-i<=o~bxtz3D`c0|W{dMis ztjTNVabR_6soOAqn3*{D%E0A&Xx^Xm360Q;S2qG?3{EcYf4p{b4Y#>kb9|eng@rrU z?**IDFjYeHQEy2QZLKl2MC3<`dz(R;iUV{bZ(BSiWJ8|z%$|=CYrCL487O5lcad$V zt@4%Kh{~Ng@X>w;8LZ6uv9|;(Gwai~p#Oz)%iaPJ03o-3Z0yhMW?b2~K3h%*2X*!= z-ujP?ebrPXU!y}jU)GoYnEdw9KM?>jTl0bIE{@8cj_=`raqd8v&`XN}y&E@+SqBr& zZ0rWpNA_<&27lR(xugqLPCgvUv8%`ybz81UX<a^Al<(}EtN@mVuha*i{ z6`y}2)=W-op?PvuW%0dhW)eqZBmn1TpV`<)EUj(%?4th{@U2=<8+_J3RZi|+(M5>FP-6B&8aPXX#I5Dt%FYMLWj2# z$BSa0tGa~^93u7I7b}Wf`T~`Ir*E>)U5RG~dD&T~F#{2R#|HyE)Z510?|zgyxeitL zy$X1Icc$gyaDS=YMp5#~8tBxuCC0NbGsa_B=V9IC($so&YwgOiH1V6g(q7|H!-f-0 zU2ePG9ue5w57aywXItED*uL-+AL(9yA#%^`$G4vW@%4)}Mf={!R8_xg$BPdi@Ac8V zTh9VFf89%U8LYdwl=b=bf}w1PrbOdfalgmVGs(?=mT`4*Rov&G2|WQnJ2x z^UpTKNUO8>&C$%Y(?7+@e-7h4CLX$Fqr8A)L-GzB$iizR+ta+olakyMpt}stwn!H5 zzSnPZ1HI|Ayf5zCF?V=(Ya%B<^Jaj&FOz%F?|WZew&6(dpf?i1b{81+5lgVS zM(%q)$o;0XhiHPYAkmjk&WBshS90G|n&>zDz)zOk^-+$GqL}~SqTl6FUx(;7svYi9 za{d$+{_GZh4vs$ADgkEB0TyRCH^2gj11!IpZ4Pi03$zxa)Y|9Ddl(2r08Ezy?0Mff z0Qz-K!0Tl$5GE)nCjjuX=b3|oPlJL?_PL(#2gMSD!sI+6Ga8n(7e*Ql%?a|;&G8%M1-7JpxpJ}zb&dpV>_cMY@#z0A0su)w{2X=v3;sE+agh zcobk`Gr2^uBu4#CK+tpsY>07Ijzl@KM4i`;{s-rBcSc=K3>XZ$JTw|@n-l#H&b@is z8GYR{pt1x{H;9+W4H6TNJ;S*_B5$+CLW08N69cZe#Hz5yspUpLVvW5f&XIwNR45BZS*;9LfZ#LJ0s7iZ(&XvZg<+1Qau zV^M*8@ze*2*(C`d02|v9nK>2}O>qgpzr`-eg{;Xmor!d_iK#~C+Pr95f@wT3WN36u zL2zrA4feC9M!8GUjFF9 ze^8>wUzE5{@fRgxQ)Dq@?)aoO^3=j$Vk)U4dGjY_Fdjjx1C=Q8(02JCmPGD>0n2Q?4<>{` z`4fmGNJA2$&+zvg4=0RDcY+b+#JqGoGtG1_Efx-aZU?p@vN7`XIo{7zjWOXVIYj zztj+)1Rfqkbh%{PP1&JPuvrUvL?G6FPwyZHC*LJ`u3JtDBeOuaK+ zJd6N~Zb2l_AU+jnjZP7{Zc!ybh5%wlf(w-p0GV|}yL5yiTb4kxkAlx*$arvhpUFP_ zceNai`lD0KGfl~PCdGoda1aXJ^0`yjB5O;yY6*-U2XQGW!&(=*VDtBK(yUMwauOhE z5R^!WT*7Bam%x0<@dW5yH-v_6k(flRAsWg8WU95no)R^gAg~Y$ zM%0M}5MH!G&4~^*6$<7=i1fjOY0twrRiOHqN?Yy9V74NF=q#bhb5^V7Rlp)D1p;me z2w+nxQ1@YAc%3sN_N8~Fg+#uBReo;h|8T>Zny;=1G6CxNt+E_l=spPmABDlEb;O%v zh?ZpVxMj%!u|@>jAaz73fq_b^L=rLiqRoxJRn@XydleGHTrUBXMs1_*_1cdhY{ z+F)IzBpQkyhXFEdunP6AZcSq{f=dGIfNoIvNr{}y7#=%AhMTpye>ccK!h}B#xguOJ z)%2+5#nm)%66l6?`D|!3v7`o|0DUZEri`Y0@N z+!YJ}M}P+M5YC+(0966^!8g)GMsaet(Al(C-0pbQVuO?N+XGItJq`Y2}=z<{^NC+`z+@&A)j8Qr6^Q zQz+U@*dZcSan#9I3q?TL`xbCMFR(>H`wAWou)oJ4pXL+egOOk`1}csNS7N#bZ=+m5 zdHP%J3jYp^_uTl{z2^q;4>=?KL5fA9?os5oVT(v;9rn{u(i!ZFw2s8(b$00?TuNYA zOn24R8SJZ{?9@Vk;@g7!NrF45^!QIA-s;5~zbiRoeCUsJif4eYU5~nzGI!pq<)(1o z4g$fe$3hV^X&zjp$C zCo3e~<`0~wB-mA@*dx876@ci0fb`qn5-Wr0U4zY$7vUsq^pjiQsGF z?|_q2+WS$pA9N$-$7^ETz#c|9S|nJt*B6Z=hzz=4ULSR4wc_Y)!-oPqMz`e=lFbB3 z^jH2dMCK9MPA;{l8zi}VF!93pdO@YSMCRN(#FSoS#yBh(+u&9A0e0&4L<@yO0VL~!MGWb7T~dnd|28scd^=MTZM#ni?vTBPNbxYJ7HVm&d-0`m z9@o?ePcz|15_ll5=Y?`)+VpU;9<>7=eDC5EITFm{MFS}DB*6u!Di}LG3@Mp%Dqa3l zJL`ZUV?BUr;nIw4n_N`N)FoCN(8bV3Sb|#$r3XaZ3#KkW&WT!()kD%_z=z%QJc(ai zwjgcI8Hv>2;U6b+*x;zJRnxT9lO(wK7TLU4lu!z|4!30a4#9jo@< zCP2sEJ_mzx4^zR%o})a|Lo^sN%2O&(9tyT)gtYajcvrZ^t6hoSf?QE(Zc_oX6|PdG z0e`jN3dyy+B@j`$g4;7@%~pG z1IgqnEYLA^_EDVZhJCUmIIFLu*Cb7cS>GnKL>t2jJYhZ<_}*-^#@@ zer06444qL(IAHSH|X63~Ik*Y$~9>44uH{=*yJGUfwrG*65a_p3?Z$-Q-* zk#y{D;`8cMm480#h;q9(5oOX<*phfO1HNwJ^_-;mG>n&S{P*B})esA(P_DM{FQuma z7n5_4r+AHmnR`?UZo485s_sX9A~15ZZ)y&d4#JZM+hdt|_Y7jsdAL_Knf@3acdNZsAJ?7Ud zVKEK>pQ>d?lAk7#1x44AaII9`$yOm8p1hgTbezZDH|7h#f1en~pRT=dBBV zdc&cQ9JsGmh5mfFmDk~1qp{Q&s6yVhBjT4Q{U_d{4&Bm;S}RVXh(#ru&^;0La-q+c^LiR{CVldl^4@-APkbRpd-%SXi12B5NM-^;+@Qg8B;O#Iwq0=D5R?;f0{ zd+THrRf?gxO+^F>XB17zX^swjZfCSQz4YQ$c0ww=u6mN(?bMKZ*`IFF>{S5VsmcmC zmmHR8zYk^QX!9)LO`rLA;Z=YQF+`56rTy8JSKrL4gaTB+27R3F?I{ey z?-20UANd*v90Nu*o>7Xvxlm852?;GLnR9EMq!r{9A+=Kaz5=uAb%cbs<})_bBt= z?AE2qds$mes6VnW53ElFLj8_?CPtb^B|K_*2*t|3cuvJ)=8wubKL!h~K*)JEvcOl> zdAj%DE#qI8kF&#e|^$np`QrUD~_4f0MC z$?jcO^V8r}i%IeugLsvY-Io7#qgy?JLCHn_N!DPjT(c^zJVrn@570K7qd1?sDCkj> zJrv*fUcGObL`Q6ewO%n34tG&}UQ3{1j-99RO9UbSUlRJTGuH}Tlx)r-026?=+HjzR z3)psILz|2Dx+uTQQcqcZZZ7fdK-sxnJ#{<7{O-ETWB0|g2!Ofdf;iOc+!F$X%R-9E zRmG3{NgA|LRp!E>O3;HR>GYWvvVyLvVSgh477wi}RPX^$GB^b-E-AXI#b!Op6fm_^ z&_7g5Xn&F=l4+@A>#F|lECTS4jh&Pwog>3#r5f(~B!l~DuEPJev8|pKx;`y1dz!Bc z*w_t+PtS1fGcIfGURRBZtbc86;7zpsY0-;JAOhg3Sr&~2Y;0@8lS9qsa~dVSTsFpM zHa53LX{f2qvkOOB9S<~qmBq+jmAu+b!}?sKJbA&!{4QW)2WV7$;Ig$;a?=6Uzbo@i zZLReI+ofHjDz(AJR!~BB60ouB7HsW3j&!HbRaaIO0@jV2-aNNvO}DAgi{Q|)#s7%_ z02Zr(X5GYs-RlOnZ)={K^>bYIF1-TdTdDs<08(`I_S!WYw=;{aZFPYNfM(NS!=~rS zks&Cux`~V%=S_8Nuzc|>0#IW2{>X^@p;ilh7S3PL-I&r`tCejL7kKyB7!|1XiIdym z%*JNO)@ln_jlF|R)7!dy# z14@6Y%uoNnG2o+UqTM6CvHv~F>_?+LmF`@Y{g2gYrN-4ABxL{3D06_g=G0~R$~*uA z`p@1D`JFpbY}6_g#vf%qTyF6t??O_vwL&Q{%KTKGX|}J@85m^_9atX7cmY9P)GM)T z%5|p~Fi?CcpxNxlsX%Q#dUX!KfUj+iUIU}dN~=>}6>BTZnglp}4SLV#J^51djK`@* z?bYf85k6dbwXS+I|DF2M#e478mcMtzAZ5SB5nl|q$0@w`jIO#r(O*u(-JM*!x5-*4 zdOD))>88E4{6+WqpQ`$!8dci-_nZ3eM|=Bx57(5Nn(U880jpF0=)l~_u?HqL?IW^q z<-0ekojcWsQe#<1@>n)!#*|(MXo1t)@?N&gQQe;jroM1%HY7pY{Bj8Iy;zRW8+i+t z!^CF&jKlA2ER2MT>u9z3-en4Avc;b3G@=kW|Kp189A6@5%wvtlC8EpK#rIIVC zVda~${AX6D^+wHdl0bxbiBJBwg1Ib#&HCTN0>xsKH&*SONP{~04Sz9U%k0s5V}CH) zwU3mdYq;9|vQUge2Ji7^D~owSX&LRRgs|Pop~QMSfB_wg_OIi%K388@*=*zae6_rl zPod|!HDeRycF&zXMf={1-;cFBE+5(a9#}c7DUhC==*^fAyu+uNVPZ-~yxkF@lL-9_I_b9=Fk5-__H$zPmT2H*$J+_Zu$J_~ZaaI@+6-TmKtr>naK z-Io+ez>762P80O0v z=c9{EBL`NS=@9ciEKfL2Zgog8Q_lm3hcm|(a?)(6DF54jXsXj~QyHITOn?-_cT~6L zefC96@C=&?jRY`2B3=4M=86gJTy-sjfpEyxdc$A*%b$2W2VAt@rGxS<+C=iMh3Z`8 zV6Izk-}x97{G2^NeD`dW*&$Lf?*rYbT*qDIVmD9zjLQ(djW!-TKqPh&xw~e9;Zvl={Dth##f_#o<8xDI`@^=6!ni0^mx+Cg`1zXdaeIlPbSuL zi)=3TnER+Z4Zh`C^tkx~1A*ezq%_4?fAR@^I<4U3{ZlPc-Cc$ctP2wlfE(;;kD>T|O1|+2 z=Q}6#88Z0e*c6Vm)Ur|-GKIh9h>DM?B=0(AkM`usdFMSSYhcKd-WgZ499Mt)jUoF{ z%7og1mU{M|*c`ra{=uxS&mlgmIdWg~hKOD2fd-8ECQsS4dsUzM-DS+Pe9Es%MM2bg zH(T^~l(}}Kpnb=|9k4nl5JGCBPfLOp@(oYuZ=>KnonOI?)?jcsr?Cy5#*&XDx8eo>`{4{WeTQX_&d< z-1!OT_FVGPh}S*Fl%c^4AacO!1X|#1i5;AcrT?`$e+jBN%=7DNccAX63KsR43h-!m zosBYoRy5;Nuj#g+{`Ce~w{WA5^%P_%RQ|UG9(mAXzgQL-2c5r@E#Bw!PYaxJZmj=l zUzz`Sn1v9emV}R}$Y^z6e!%R~n|r+=^TJ)g>OA}+U-UaGu-=?~$7SfL=ZzfAUMr2z z^It(KzkOJ!Rxjt*ekJz3N;3?%Qk0bcQhDoF;hEJLpE!~uv=gj+0YKjX2E6A~9(Z;2 znB+Pxb;_74><)J<=M zrMlvyY1>ar_2W6-Q|6Z)Y*as&z&^PH<~a#6%FUmpiPGMnlSHd-m_rz!gPS=jFN z27OkV+L_w#D&PNU5pitG-T$)N?a!x#{yQNIP5b@Hsh`p|%N8|T5BlCuZRd_`mpzjD zPYe8&>zvFS^y4&VaI>hjR^u1yD=;iUUuH;^i{hz+~Z%#J8 zG(Mi9kvv^5FZM`$VR%fs*65!X>A4!ybj&CD<|s9v5JeVHws-Lv?@QC1GYt4r z%+IF7bl=-wTkCHNoW=LGvuQpvvpsp>8|SkYxOGmTFFCXSsfE2mPEfR1upUd0=Hf-^ zMGCWN>irT}>L{FxKyAhx9IF+QW#RYM!Zch=e5Hg8aMjLu5+?MFCt<+67)XF~h|WH& zuGy!~3u4$DYL*c4v?}EBPf7>@iUrnLNpKMYcmWf>LI6vkp}_Ja@brgPL41D@@`;y` zYZnG+X}~(E4+e}aiNNB)G+Pl{`)4>w&l{qOiu@@CU1fn`y&?dz188Y{swOj9zU^A3 zeScXJfS=S$$odH=2no)Kfli2l<~8uN4$J^Z5(8{EOsFafCgTOIN&xd=qR&7QDH;Gt zfYmu$5}_vyI|E6ls2I!`e4i8zkR(o47_WBpFLLOy7+4k!)g>Wz)1v4c@DBsR&Koeg_0%j_sAMnMl0*~i73Lz3G7fTH&U_2mtAhs#iOlJs!O5@?z zRH;P)goLG@ou<_Ni;z}=qB%(j&5a<&BGsEq)g+?hJ*3i05+W`-3URW2Mjlj1z$RQtc0nWzJ}j}W0wfO1V! zoT5FagMxHXutE%(C;@B~1rO?^+m)j>h=K!bNQr{hQ01*O39;rK)Wzx!=vo`-GwrXO z91pM|fTgjIr=77OREjz#bYu($pvf6N=6}<*fTcr%$(BR_YT1h#hJFlWfdUHXXJVlD z!CQtKdw~EL(kBs6-r-yz<`oj)YJ|}l$4E{yPLn`@J7UK{&PT$ldd2GF2=4m?A{@*$ z4fY{rN|WGI;t&WvokA69dmBQJ1&~m>04rP+#6-IS*2g7W&Q17NB|}9it0G%ispBzV z&ePynT>_wudAW}wIFrKbv}3Rs2=3=!5`?C$#wEC{Fw&Fa^ag67?27RCmu31&H&Ji?L2y* zI4hb59+jsa-3Reae|RI8p8*1EAfQw@u=@|jE-{F#QM{ebng4Yd1g6gam;R)7qWV>+ z`B7={q_8veg8{MT1n6VHi?_jjI558oGV>G%E*m9SiRYO(KsdCSawwR1ykZ}ELjdA) z{0P+#qUOg^s~biCLS(fCxn~<8W$=InS8Nyse>DbU6rkrplgms~8!E7i0)W=*4EF?k zd6+pPW0S(MCCE*A6#q0eA2#x;cgh_$rZd(9$~^hYdR%YAv`9sKD%Ips@L6;fUw3SI zh`ZSqh?kWAf{YrlLl;!&WsuN$LgiQ*H5WQb7L{AA`Cc{%soxw22wb`N3V2kpPxD20 zHs+_bMYN?bz7jGcVURwGC{T*z#K1g~Q5khG#+rhrga8vAq+D=~_g`Tv3`s8nP@U;I zNIE!|5W#hd&X}wACt}mef`AwA8blPF7X@3Zy~K%znkwXFA!rv}J{Y8ddC~QB128_7 z0%2juMswUxfl5{0EWp(Q%d?zKmSX8e4x1UH8>p`~<{|y6Nws{d)FK#VdUUZsRJ_nu z$(DQtDk|d2yD*KAOgh?Vh1>KzBskPPLtVgK68H_1XE{STSo($|4oLv5d(}R_>|aR8 z#Dc;HC(iajk3#{{-r_j$iF2AofR8B`UriSkZ=g#rE+5s-N7Uub0yL~i2^J9yfU#?l zWX%_UQF5u&D`OfT%N21ZhAJG>^`qdbTe-9xEqv@u3)9rt=7bYGSQpJCaY~4%Gp?|9 zr{~8&bP183ciLNDL*!8KD5o`;L5))_N_{|ArJ{Hbd;7KS+L_Zi9|vbP`$2YGq5 zU4?(i3@jw}hbzQ=onsmgQ8jAD1a*ZJjw^G39)Q^Tox7RtEe!jY?KD(+WsO6 z&V}nSEbY)IA>_QkG2bErZT&nD(5HIf9wl}c99Y7OhVus)V#m=>Di(J}_J>zEko8@n zfYOC=TCzvW;QNh)A%{T|B3e+n=8_xT=#@K=OLxIiDVzY%jnnhpZ-{qvfUMm~|Gmz! zfKH+*LHeqm;TM@8WbY`f%;WNc3RpLfs~;CC>WnNS&Keu{|4M+cZ*XvV!Spc`%Bs}7 z)45X4NQ}aOm`}NUL^yh?NCx!XA#IowO|8=?E=p+F(DO|ngR9Ms$(KRowq}KiuqGvz zk3YVGKjmt=3<>hibDow=Q?^WqMUxln`pW7r$X;OzRw0ZjF7Zt-s{L9-M#FDeE(>@= zWTwF}Laa|gEw|+Aeb7IEG@Ebz*!9t3m8lg6VbCq{B}`CwlJcsFFqy&B5}y}Md+(~Z z6oQIScOwWH2(mCP5MAX!nC%u|&^rGj+ zrdA!BOG?4L4W*xyRUV6~Rx=xa82h*4-&!Vms5GG*-m5e(?`$x7V4y_mu(teVvhNH> zQ{NvYf$zTC!l~vBocJ^xB%`h|^P}obu4Xb{V}g`Ki#X>$CH-`e8Y{X=8z{bdCGtZ# zuWxbgtiUxU;_2}$5!JN9x@|D?={oPcI(kD4NJE}9o?z?u2~(1n=;Ki^iA%60+;2z- z&EtYzwYA@h4rSLz5i*3%C*LPWYv}fJp}K}USdcFfy@I*4tDp+@sHamt?69z>*XZ{# zG=kr92_5~jYry`Sqdwt55rs0Yky zKGOcOsPyjUV+L05Zqs-M2}f!!ouQnLOEiA<&u_yX1%FV@RLU(b0xky9VGs7Vqb;PI9t(I{?aEGh8AmR8 zJnsz6Q_{PG)s`0|>dCn3`@agS+a!FKG|%IB@{A^nuMgZK38hGq3SxkMq#AhcET7S1vjeg6O)m%Y_*|ms|Sa0SPZiQuY-hftRGmPs`irCLLx} z$mwe;~?2jy?{^OYA&RGq37?`9w|O=FXER>Q7%i)zE#l^Hl3u+$#+opg*Od z2M{|=1Gk+WO(S1MCoPlEo4Z=iW1c!`n>(2~5k9PJ9ff9hTkq`3LzL6ijhO==1o728= z5a(NGlMpK91(Pt5VdrNN61)4)@G?v;&!ZJ?9XyX!*Kjd?tLt=Nn(*wci&>I&)q&Z& z7sD>*sc!$ZI&U3XWW;E=T4w2T&-};gj5)L_C?9sUE~?u-v@U67a9?$1-o1c;iE4({pG6z#c8d9C{Foza;5*9 zQ(W-iV}DeZ(HX<5bRF7Rmf0PDwmvzg^1Lfq?8S;AF*@rnr`WN4kqyKnfjJc*9;u!s z8zY~RSHAS+OjjyoiOU-)<}9=WbR`>7k76nvo*g{ zGagy4Pqso%8#cZPIR9KWjlO0t+TgajCi(u&ISX$~U$M@{8D zPj>j0joj!gmeW4cj$iz+!*%#Q9Y4#(=NYRJ^6rD0XibmSIBFJ3s0?yJPFA(P5-3ub|7EsOb2U?UqIS)5zQ}s3UH3e3X1s2^{`-%* zYmEnob==KN2*vYFSzoQUWXXNAwp#RP!vAUx#Ez`6=;-1*I+vg4VXI}~YVV}d^F5;hmApeJdAx>9WVBQs}xc?!^ zaK|M(&A!ih=}$x-u9cE5QUAu1wYKr83k$^)p>AchG&^+_A8ESXezuH6 z9BX%7JN>ftRGeo0=b&b{%g*roh`UN8!@7p5-Z!Ued#I4p!rjHlOP+`5s7sim^hqlBEbO#NFYc;{ROT4L{qYp3hN`2Z9GT0Dc zfeFY}Bg+JQ=_kI!og-F_#6ej3GJbWZw3o0t6Buu#x*X^g8bn3(`ZCgq{MIKQZue$fgvMlT6vWSBI^=UPJJ75E!vNdTpGm* z1k=4Se(=#>Z)vd7%-lY{ywh~?GI&!4udS}jic;j#&9eOVr75-pjtDmA0O@n2Kw3)U zSeNAq3p?*nefKm*F_bhdnAM+`l8nOd_?fu3iXS`i1v6Dp_MJA4?qEeSatAs8J9A^F zaCf2zT$b0I;n=xP4{V&k$?JovA|dp`LPgaRu!4%$L0m@0$SkB2eD^JX%v*nBoU0Qnw3{` z2|%2~K~nmrb5(3D)wgl#K9tkkjBU~g9bxbLcsr45UTMT=BE(%xhF!wKk}ty1$NE7A zBXC%)Hss)YX$=eF;{~g|`V~gjLx9d(cp*PgbYsuo!fRm`xvEfs7h-|IB7Byz@^l#O zeGd4mdj2ima(`aj&N=>l`HKPPqYR>b`CU+86#MO{YhF*t3yl^{hF|znof2ipIrp*X z$RE_NZ(!Mh^+|TNn)dbNBk|*;kc>rR5Kn@a#HSFy(nX*av^b-I zb9j8^4v3t0|G6U1^*)+x({ri`EiyP^A9gJl0;ePL>iv(WnWtJS6dhz;a7roE z^)`n`U9^G5w?JhE;xE*?(|p+0rs?9?!Axqj+T13YNY0X9-RwiiBzUr-z5 z&0aV+$NqvrZ!3=e%9G1ta%2c;1-!YJ3~W9De7jZeds`Hgy$>r*t&Cnqd?S!)VWk;n zF-F(!EikcCbD^AO7QAzsFUX9V-lto&ESWb(VtMT)8}UBp+!xNNH~ZZGG`{9LFU9V| z;*-v1wHlQ%OU6s?7&W8{=Fr=Qn;S3))e^q)GH@^!+>=X!mHzNlaT8ool1e=)_2;me z7Jw{ES85)N6^Q!?VH^btT^>j;Q1LQmTz<=ST7r9z^PZ4S_lo80gdoyO zwgT|l1?YzI>c#-ZWm&=3qE~y7)UozP@wrph7O8hI<2w60bUP177bc{WO8CAl` z1_RxW*!@-3d0=W{h{HM2on!C=<-Ss$P|)G+MxopwpVNw{Y1!*jjJS0mMX;a`$1xchgUh=x(4?ca!$aD4vg_OlW-|;X$UGmE1 zrvAYQ=R~bo)Y8EBKI`N%!L47prF=zrXE25A`B;g9 zakm)Ho>2%Uzp^i$i-OB*D%WBB-T_Z1z)P2rhhY$ymX|S?pg4C;f7 z!~Br^!`|*UA?kQA_5K~mfF_%lE%17>e_AC>5Bw7lMgN2aMg?+vC=4on63B-OeB}VP z+XZpSF=pc39)2}Zf9>S&95lI2GrgsEFA#Pu%L58IyIZY1M>k>~T*1o-_JUqF4fIq+ zVqnmrY^GH%b?+O#>c9gD$`(rtr^ou=l%?kJ3Wjb&XqrPVdLxg%f-H#i5RlvnFcW6v z>JbG8Jz#DcIlEHj-3rDwyWJar`2f;_Cb)+v+&^t5nC2-o9Qq{6YX%Ao@bOuQD$95| z7&0l=EYr!NZQgL>v7FR21osO+BW}qui>i2kHhm+hM!mZWsxxAFx&`t<(Gyi3>Ej?i zV%Pgs-=dgi(-j0qk%8*$TfG=>eK>?_)w;t#4)Q+j?p$ESvq+eVBUBTTZlRKkJUTeehy+;!&MhYH!`^ z$NicP$oSle>YsC0)Ft)q)*nb0cYILzo^yw|z1n}FCAH7vHm+i{mHAZfu)6Nx$JdXc zhD|Sz4)*H5h!}pazk7Vt?%kh#?VXv+F{oYRo9FSj2QhAB+~i|kuz=SDAC%)Ft2b3h zJLwIrnOK4&gN6mG47nBWWj%J+W%eM>Eb;{X3rWtb0sQT}8did}L`@2guAC3*H^xT| zBP7mss;k^QBx+Ddb3f9RnPC|_&nL&vXR57uyHiJyUNLt8e{#dp)S~ry%|b%wtAk9_ zj0AeFL>td1aq;Hd8c2wBmF3cd>Sop@gI1Eu();KiHA^~{@+v%pAbCFpe&3Co*=fNK zZbylQuYBdnh<*SZ1jXgWasRys%E@?ZwUP^be4p*VudL*kw4d^?7E}!1&KIkEnWQ1O z=*6E`_}@#R55PfCk?zh9filtqf%S?ZdEg-E-Sy<5?0${a_3G(>)j~1K`8+|jdY|)o z#J~CWqUgG{nup>Og7v^)fPLk>iGsaq#%SFJu>WpTQh1VdbWQO`-qGqu)WfR|x%1aC zn=RLRb2pmlU$2!mG9HCGD3ICr{QS(DO=;JGheDH~;E&mrL8C!gxgzoyQuUg2$R|5~;*xnj6 zmb_arr2c-rsz=MbuoA2H`egST?`OeVeb3`h!}q?^uNLlh*i=*P&%izliVnS+2;ZMW zC)+qwxg*y^=M$RpiC@C@_zxNq11}cMhSp6I=hCzLHkVpeA{@R)Un)EVny-B|KT_X# zUSF?gR&f1+d>`Su`3ZjHw#wOh(d}msTk+BQ$EBjWwO-9j#T(7<1&+6dUpK96##}2n z{xua394nFDcMI;;C2x9`t$i<8-<@o-zqdb=Z-4N6cP|q8=f{_?hocYgo@&#)8Ovul zSut;3;Xt|cod3Rr7{xAfV7$W5qsauEC3n58aBezih`8Jx=wh)N-8(czgSj+i`y*dA zy&1B*`%?Oh)NTy1Gi!>@Eq60j{BPS_q&d~M;9_aV1hvf>*D&zjJ->(wPE)@OH58+K zq4hIFt0$e&0oq1q^)plhnie?-ZNKhV8d_hc!CKDyfbFMMxZxen^RLMtUR5p)0-=m@|1IhO5FIhlKOj&GnDtL>v5(guT( z;Wp2FS+qMJhX}>E#%2VAhdTw6=%T_Wfjf^MU79A;ajpzp9&+09x+Y~Yc{V5kOUp-w zQ&jP;v6&dYu}+ioUu-)HJ_xn8b{pKI#|`*B!~76YG%?u5jro1JUenoQ=1HGi@hdlk2F2{sE4LE-XoRYd?y&H~B|>X*Ei-@zw^*2<`0aRi(lCHtIC1d|g&fg$XHR<PM zDz5C7D>m3zNCk{%$^#P_ws}^Xp~VBI(M&nP2i7)H3KR8hRTbLez@E;8?&~p)(&Aou z!GKcTDW;Laxwe~*ytaHx$4gO;=#uLWxzVGX@|CDz%_P_(S zD+6CBm>1qsPs|j>KX$~#(o&UxzMVh3>xuKKfp*No^)kSJpE;g2m^B}6Dc9}YRzUR{ z9yLzv??P^#rs5wzx-Bo?_33wRR*~YO!TIfh4}oiM9hN!o9XIUm!xUu}WZ%2X^>J|2 zqOiF4pqceWy8*rQ!h(LyuS#Y7O+$Y*{8e>u$$q=6ef?%`3Eg$&IdGC&V{FOePTY3w z{NvdDc^_Uyf4wVT-nkH1{K=~2>E5TwW6Yz)4M7T4xRXZ0`|0%?4L6+U19gihX0_~+ zP6B89@xEyVjAWa*#e5XE{VQvQwNCXz!Vdk5D{Ezo zGGCKe%EypbHa-A-yO)dHsB$doqx|o0K}h0N2xPO#FqY%6L z+t#?4A4yl7#+6NChRRwJ&dy z|H!Y|s+U{CPj}o~jBCvr0sp<7{(GBFhwzY~;6HCY($=gEw}|t4{bT07U41)`E2oSr z-HT-P7HjYI%;|#bfj$5XaK)*R_NlyBDOp_8b)jvHm#x!2gAr@>SK#O@6)a(CSV~> zK)B&pfIvBy1r8j|g|>biB)G9DxOO0lz5OoY{D4?FM-McAfOD5~!^0Q4;f+6o{a^Y# z2{MrCm%cYQ_Wj-GsrLHQ=Wzjj9?L*Rp9dQR`aA#_FoE;?>rbCYJ7~2Jxq%G=b)H!s z#8P-*2@AaTpE}Qcjlbx)zi8MoT>{g>Q6D`rR1xeDNmebzXs}_PP9rnp{oJ(Sj5#XJ4u60;V^AfP)K6Y!}=}BK(ledX5%(spesEFKS_9V zP4nnj-60OVvuWj{7f59$+-$;Kl5H?Uh9ut!Y0 zlWog=Zj>;vlV)YbAp^`Wjh#1_76mgOOiL!f${Zq~%#tylcY?0|}Y4U!q>fpb2J2>a5Orqp4x(`B;8hc)k@(Oft z2>yR}a7cR@9h_=W!+#ZR$YCm!Fj-Kvp*WrQ2Gy9|qRp5O-ZWJ4YM?|U52I)^wigs_ zx{LRLqRle{M$zWPCWja)d5Y%4L57Z{yI)pA;mC1BdIv;=8v4j8)$SYHGzI#>j`g(+ zTn~qVX*)~zAp}iR1jpFGmbyS2B|`P8j0ia$$s?^Dcymvfy%m%V&kc66q8*U{96LsV z0(t0yXew;M`;85%aCb!=QY!NA292rhjI3*sX##}>UPeoS$3s`h(6VsOkp2wsV5A|a z1NC#5kfH39{n9{F-jRZ@&fYE2uw101WA&5Xm@#vZpjVnC7PO&?lmJ0rJ8{sOp$0Qr zGn7nZaH<>a;A95RMo9{0w>4uAS~H|~qPwk`sSGTv4ACzGH70qV(W4YplbIYO#mFc? z?VF-++T*>^btPV++R*80PCF9xYIVwh6jTu#?`@SRHGtI}OSK108AvV%Xv$!b%>$fZ z3C;f?zjn(N0cOyID4vrrWuIWT8`;dZXmn=!3IVooipkoSQ)V7YMx_=EV5xdV55KW( zmc(&f4P4RZ1|1p0%-D}xwxA=kCVPTWjj^O^L*24F;)s?$Qj46R8lw{xMI;uz2`&-T z=K1Q)lMZ>u;Tmd8%9nZ{)5j7%AL)hw3+L+hf>{O6eOLUs?IWKnZ8oeoOvD@LRDHwf`g`7vmbLNXs+0iYnNI2+~Rqu|zXkFxnO9 zXV9#L>K)}2aHtW8=C&+L-R}?OjovRZR$NRD%gEe!cd@oe4gV07UpfNE7YaQ8lwTmV z7s?3_u?Q>E+U<2jdt~W@c&Mf!PZ1x|TAz2C6q#M^!xG#P!Jm1Us$F095g|5r{o(+1mL>^OF@?g8YtWN|IP`H8s+PrrIt!`V zo~hzboh8f)n!nM+)yKHr#2Z4F%iE#f*qkB@Y0;U!pKB&r;Qgw{4;uwu)Xuf!^Y3RP zDS?YmfI$YXl@qjA2Kh;x*`aT&U}73Em|^_1HWjp2vUb}mSa0;}K7@32lk8bgpYw*> zq8(J~j}1Ud!eN9~3C013*lh<6IFLk)EjqsG~r$^Ze zR?+eSsz-II?mZ3;I31lkMToH>K8KP9_n3W>d`)&)F4||I0y};1U>0_9lFfmha3^6O z)2Mw1`tX!q1Sj_28S4LK>-GNw`N;C0k&o>E0r~h?@qZv6hm-#&@)2XG6H{0Gze7I0 zd$q^!kg@b}rS`PHk&oTt!JNXHWoO#T6-*XKTFZ)_4!aq)6>65t)Rz0Xhy&!K?9+}9 z0qSwFx)Tp(`vCIsklppiVYTUgbdkU_((6CwI)7kdpO-sKnulh_U8y>E|7q^%VopF$ z)D9iOEaPYMdD#qiTPH$f%#F>W{*WH>vR?SL@2AbjJu1hMvF-=H2)%LP@f1yX1TX9z z_qjcv1Pp$K#r?0w<3;ai%3YtE2#~p)a_f>*+nk_=oNM?b`4VPh*yy~lZ0AMsee-wy zmVTy9y+)k9I~l5XyI3&f+DrWyvc9L?Eg!J;njs3E!p}rPnMI}}RKqNVqMr8@O-5O6 z=|RI^tf`v#*v{bZux4&NFn4l8h|T#39au=S=kv@H95o;|L5O<9)S;Gn%&gl$ehJ-gA-;0Ys%zqySDV|TrQ)S?`@Cdl)zUIc zGrJ!B?~#uP@xvF&_i(Bo{{SvHeWqAlL5-vG!*Z13YA zot;v+pP%)-0P@kmutuu4ke7X}?{QH;evek-6T>duoaMD)+p4UeJ=VSSnHR&?W{+)* zox1YmxS~b=>EtPLO<`?GZ3wZS!~jsgBd6y*1rmv3s`ykJ&)E?rKz-$VF40VqVnsw@_%{h&U zYEp3pob8S`yH7mZ8 z-c4^Z(D@eT_?m>@i)Xso_T_EWYa!T8*1B7S>hSl9DTnPMnh&gSM&`f1&*aM6a;p;i zro1KP%x1l&ykw|yx$qgy3+?|A`S_YLou5eXDQVL?xcYD8V}2~F z$E2*+T#M(qi3Hp(@=+%kY?`%S&nl=l?IIr~&ZhJ2-%`}!?o1@K?jj#unob4qAG@V& zHPD#=kdIQvA`1PfU)~(~$v{3{aEZJesn(Ig9+P~n2p}IPLNlE1rtEmCUCW95nWc<) zB%p2{Xmc{BeVE6al3@YY{dd~4J_h{vWveSa~_ ztnDHn$9?;n40=*STC?tYS@jN1U(cfiNZdOP41Tvy<;U;Mq(%D}bOrY0Q?nl*FhCnX z=x4$TBLN24X0W$^;!JMzy-_olDE;B@YsKb2k68(14z#_0S(2di?)h|v(OjvvZIQ>y zodEga6~%(mW_F7oo|(hT_Uq+_h^MwW>qFn=!pi0XasX4Ex zo_+Do)9s;uAs_kshlSU3^eb|2HAD@~I2Tp!A|DM$zg0?SdtE?9vm1`pwXIj}XCNPk zMwygtvucK=tki$?qFjnUF_4ev_m#{)2)14T`N)g;PUedK0&X?gCo8{4 z0_0<_#bzDeS<&ge~LnJ-q!tM8lT7R`dnhDw&#Zs^A7BXi2KXWP~*J1bU9 zOETqg=X@77QMGuH&@o+6OduFd>|6vvbXH z0uHIt5vlWAJ)`BT>nXpIRK^!Rg%1BL_L5tgUba(9cm7$z;r#i@)4I`{}+FS)-$jNq>7wzZieW^})HYiA%%Z?2Rz3zfAcbZogS}Y=s7P+vw1%} z7rQFW2?^Vx?&|%6e6;lhmz^CE%p)Ez>om_=OAp-;`)A=^_9~uF<~+Y4y&QPFADDZo zK_PCo-Vge`oMoIz-rinx9#7p9o`EtxzQx|1z22e4UN8EDY{PxL^?bra9mD5*>{PtZ z-S$qh^``LnmPq@i^LUXr1Vc7_9g2Ok=Ir08_&q50@sMFF)$=Qo@hI8wGc)%U4Y~0# z+^dksKSA2RQN{DUs9@fP|D$66mTxeh5Erh&fLH=ZOG`Mo;`7gP&@sIGs22o*o)iBEXg&>SG(KxQl$;2@fUW zN%i5c&1FI^Z!(aNc%RqA`4DDB6t400y}8#q{S4$IO!bXiW2ngYP=k^;rV$L}wjax8~WGgAwAi*=5}vMyy4OjZzWX2IB$nJH@NqwO9D{;iq(M04;u+UGQV_W2ajV5&9HW419-9~o=S)6#YKG{i|`C24QiJEkk5Tj`jPo%{&Y;mT@Y%02`B%yIG`qMuvy*j%@ z5-QCHY?8=OGXfKg=0`MmJ5BdV66{EMut0fg&sgeB{8{Q@)1rOfFvfbOL5#5;0TRQP zh68sz8tgt;s*yMtS3X)AUOOh69R0G?b90_mi;{7kmRT*vT44|KA*bDIi1i+i1!KL7 zyN0-AY&HY=D3&cv0aP&r@We@1heBxCe~^#krD>0R(2iosiX_+y7Aa3jhiGSim&^Gg z2UB<$WJrdt5OaPRWaIud7;5HOA5eiZZ60KP@yup(l( zETJh6`Hvg?d&vj=oU>{VZ6iQ|FpgatDovuE5`Q;C&j@>oMHqrX9~mjOo!1?S%zGHb zo54(U$cKRwAql-{i%}7S8&>C&B2cIOsM0tpI1zHmLj@PWi4Zw~ExgUoI1x&AAan_t z0$>J5jD~6R{5|U%%P{UpP7=e25U|SPIjIDg;35S~BGsz%Qnd@F?DG^i5sH@an+?GJ zSQKK2!huzgW#+03SYeigHs?(5j{7!6S@4i}podfHKaQnPt-9& z1lY%n+*ATYx|%vQ#->Y4Q^F#piTiFi6y|0m75J8J;4tUOEbT;WjCyt|gbF-yk`AR{ z^v6zvjrbP(($zz=vE_Jj48kucQXbZc&TppzlpcK58=Y$pTa?d9qB7wjRqK6>tsj#g z)KLz8wYo499hU7^TtI^<(&8DGI5Nw$cGc^_vUFlDu*7{H-;C z%VH7j7=%I)ICif#*LQ<1vszFY7BNd{{4581Y99nfDWaC29%NzcD9pNJNy-Ybwm!u; z9E7p{(?%y8$c6l?irkf~y=!pO<}&8%Q?Kb&Qpn_obVG36Fgx^K&4v{kEEST^ zZ~5`3OvWswX+i;(_NY;i(r^BYjUryU8lDs_UIMP49=-t3i2|#n;2LWA#ZeO*Jq%%G=i(XSuF%YB*M=G`!bh9>=-##J3snurO4PdFvG!`g3Cr6#AIM8$h$5-M!#8`;f(E}ro+`l@vW6vNx@&MAKX}qa%l^rox zXK~&No5NIzc>5>@y-Rx30i?%{sY|=0$4$Q}VV_;nBQ+^hYXTWRl**6fkXXEZVewil zOn`{l-~Rxa37Tmv3YLN3gRO^EV2KNc&d4RxaAr}+VtC~V4^i>Ezj0ZahmEuBbPX&izOaiu-!^QX?kcLIWoDiNsT@N@zUNB@Buj|CI= zY;v~SSk=Ds6YA%4z#$fXh5TLq=k>S`FzuK^O8(T7K0C`Y)tE8H6_$#2bb{t+4e$Wc zBY{DBykE8YH|dd@Bx%{AHoE@90NpRgAUzIOc034#sg*Hh9B+z_NxImv7&Q{FZSpti z@xH`l(P*!f6hNmg0GFza)vq5-?GFTYNsrna8ji4+hsyKl>^qm(pe+OKpW^-|J$4>o zkRBmlcNnBc?NX2Boh}2kyAioaJ4QFUD}f!$L7pnU`nSRF&(@1s-E>|@e4@^K!Iyo{ z?Pdn@QOT|RG}K4NAAeo$SMQf;^>C>xN#46#FWDC>{+qjiM|ZIG$~OmqM_b9dh+V*A zI6yvjFIecS#r zDct(e%D8he$)5+(Cv|0SkkFzAcQVWE96g<(@S*-6v*|vikOv;TOYLct^Xk`kWZSuM zo|@=7sgFwZM?)p&-)3;$YkHhmc9~@&YjERR9^g9S*$)7&V?**4X$Kgv#@y0PN*Nh; zXwl)4fsTei<4V8Ich?^6#(BgnDO%m)mAbRDGk=n#z4T?Yiaz5RdD~k+t>$a>iZf3< zD81#uL@TkcwNEdSsk9Gh0b3%OS^YyoG3&*T%Mk|>Sj6P}gt1mijSQ3{&mI5wLEKY( z43wj{ztSQ3#64yG?okQv5BaT1c^vcJdVqulJkQNx)tNg|_Lq+3jH<+r&aG3pZP#Tl ziCTq4W}GDKou6n1_L*j$R<$CT%Yzf{H`kZ{EZuAlwi0&aa@r3qqRjw=g@2m=g7+op zb^5CCVG=~^J^qN%bDi)B6((eYd#wnEn*7czr?Q#u(t#^yTVVq4ytkk%`(=*3xT@{? z=$^OC&Ezi4lTZB>Sq*Qo@0BuI;`z{ibN{i!zKR|Xg?yRy#CzKGX16|I`aBUo^oeor zxjQwKW$Ld#?)C3UGfYDq@jbB(kuo}iG=Kg!;S}QSu!M*A2XP}`;tg+RwT47h`+kL6 za0&m&APT8gVxl+RpysysF=5<^Tk`7oTi&DoVs2W#aV>X>6D)aeu~^M4+iF@4O%|r% zFBh*(9de-s+&jvbhM18zfgRBj3jI)0f6bGH8h70BEk!W&;Bb_B8Ab$`XT78lm9tRK{^dGRj5 zpwN4IQ5qAS4H2=?9gC&+CAgi#xn6w6dN7BrFNRBxSxH9@EaAPw_=y)>`%dy;btv@L zXf+Y@ajxs#DY$a%?R(7UUAgWXFu`$Ik{+da4y5b#f<2EZPA9v3Pz~`B_&%C=GgNUe zxQW(J-MU3R*?O$wl)EvJ-A7LL0>%^Kj=zdW;fXc9DWVYqki*`^xI4V9wwF&i--2@h zRa(c7x=0dGrD0X}7`R?mnD~5)p-M|)sjrI07!!`(JS(3!5@g8^i2(*Lj_I^d4Sw-tAn+SHJU+X}s~KnvPr|DJJROu_ple zIHU8nZ0g=|r_E;7C&ci7kdMN;5zTk+pN!cA$Vc7C&ZPUN|Al;fJcBJ~ARl$3Cy)L? zK6-Lp{13>-a&5Vt%_}74Q_)Vie<2^y_sstT@=+iXwTpZddZ4QL|A2g?Fkk;aARnKo zLH{3+k1w)*Q8L+<>~ECMT>n2JANwl4T(`~rMS6Vin1g=H{lAfqnSG5tKlA>DeB4(M zdi`I>$C!J|kDoZ~A|EpVglQM~c%#^PdHE0W(Wc<_b&F>)+eUMef8~Epws?`PK0LpR zd|a`}8#JbQ{*8Q8A0|Qm9mf6N{cBC({}a5}7%F74{6GC`LqGqEe=Xy``PYoD=QF^I zd6*X-X#AyQZBVCH4~y^e<}Szp{&oeATt(!wWI z!G`rCt@5dtT8dtwO|~PF7e^Xw;?AB0{L{r{Mx@t;B_ui20e(g%+Hqb; zbX-#|`%CC69+b5DjXBM^TMxMIg^ha`#_S*W5{>NUcy+X}SpT_5im2f29ouK|elicw zG#@+IHkYUmoe@2Hr><@zF-T|$+CtVi@hLJ`xk=A0K=ZH0-oPED^l73{%lD?Yrk?nj z@Vj9TW+Kc}(q|$c7tYT_0qfd~8q%WV9&2?&`fRM@+Wc%B3CgD@^KxKQh2kxoF_++f zW(yVOzK?I3pfB@qJ~{mU!kk*L+Eya`%|o#TP^Y$^xf)|HcL(Yf&Ztw%(M#`SWF*M6 zptCA+s(Afp{4J6i*wTA$_=vIQF)~JP7GsO#oI(1Il5v{z!O7f-ru9u6;$<;=F z*;L`j+sh?$l6*+~q}E1O$^0krudy*~ofd9I!c1Swf30QS7vUW88>4PnFMh3Iap_lO zT0$9(mTe15SXIT8o95Im4%=6MV!pB@RT>kHC45?tGOhj8;hbe%8grnU&^UV5&$?c` z*Z*a$C$77EH|fA%Cx z9$W2xzxTMhuZBGLpV43nIr)2IX7zrX&9r+&bjd`(GmEW=VD(sHC#Bb8 zWA4mr=dGpNDU~wQfPz)>`3`Jy`)f7w_%GVW{ZD^=YY@r#^}R*<>#rXj@GR)75buNm<`hpj8dZO%(S*1v)x z->S(Dx7pcWJ|0ZR`$pHG4b{wYG}i`x3VVkcF)izgE4GEgEGrNagpgl12=pn$VJ3Ip3RI$fmMtALL$Erp$x*fEz4JDB&zG^*5+J$zSF!^G$!be z(-e=4xHE-2j6*>fCsx|-DgFGmW)_)<2mUqF)kFI{(&{3*j`-eWOXTZKE0=ml^=EgT zKo8b`k{fvMc{~YsfcHb4><3yP>8>EaihepPnY549*7eB##s;PPHG9eaNk>Ig8`TWH zhkyi5Sh}%M%l>;Pg)Le1g8uuEW)Zr<2>g{$u6mz|?%}H`Ko~JcU7BSG^@KQI9wIb~@@UPvqUVWVoKA5YiJ*0Fs zxlREuC{(HyR>++q)B1qOwQ%*i+o>cu_6%)#e5VrUwKp?FQFSG`u9PzcX?{s~rA|{_ z54oQidLClOWArayN*T{IWzW>BiS*D92mUq9OoQI0p2E_f0PG9=Yihlv13%x{7CaL9 z)YO|Jj7!$icxZx*^30t9{x!|4+xwgQKFRfDIS6Ix@e-~cQ6uI$onE>l-Q3@1zm^vj zAaQ@E>G~1-7x}llCCqO$5A>9-!N#JFUV=lwyrt${P;}ub1|N8`WkLEDh4ktWxNkmYjuYIO zwjY?Y2>$WnclfqtYR~Mmde(`Yfb(oNsA%Pe1VnpWm)UIm4`JL|E@zm=%u&Od12~O` z5xxFX!d{#7Rz{tAR%2Ffu)p!n{bvzYjuoiIh*pcrJPJ~CPLbcB!|wNwkViG6uf$4Q zT+ihviGVsazuf1bbKfJ_%`vQZBU^$C^V5_y7j$m$cE73`*fVbo5hYwhqJB;7 zhH(Pp-@(M{pMHXk_ z2Dk3Fq=H=186Fo&ncX_IsO#zCS6@90g6#Z6fbA)(dFe~2*S9zSH|J)m-{4CL_P1=dRp>$oe1~5B;(Pl<6$A{bXSxC zUSv}7x>Rgp+Tdzu>*Nf;i!3Bk@vBE^Vg+=pr^g)0N5$jPDs4wpI~*kU1t_&kxk8i^Kg&Rs1p~p0BdC?-$#Eq6YuA;s8ySfIiUx>Ks0ABVbg9 zX~;IvaxP#h&Ht00XhU&euX*5{OprlZAWg=icbaAK4BM{-6@Pk2hqmckm&7@>M7#bu746 zhN-S2L~=6(fEQ2v3FGWSW#|#1awVY({h{YJfk`doP=BB@6w;FxQrZwgEP1Wb|5|G| zjMM24QH%)Ympy#Y=XFWiYu(*2&XhOISpN;D9qN*-plJG=vW7Re`@<|Y!z_8j?rxH6 zEyGUSe*G}wwN=Sm$Nsm@KB3Q4-(C%QWB0)C@#b6ah;U!lFjpV){Y}9na)^hI9~T7$ z{A=M65s@Vk(ftvzn~X3nK{hf;KQhHGGVMWRfGqjNrl75CM3G)Zx@=UwepI1dRB=R9 z>4S*O#>n%E;nWA1+>)q|`q7{4q8n7BD;k4>@Pfg-(eERozsSY_@M334^!kPeiy}&y zHRi*Em@(ei3A$`-JRURB?=1k0u91zN>W^L7jBR)jJJKI5@F8Ya-*1UEZmT5j*MrFK ztT6-n0_}Ejqy2Hr_7s-L2s&%bd+#@JH9zpFAdH(Tq133xah{;S4WQfu@rO{c`%qC# z8Hf1n;|^@ai$*5Y@g`9FDJKp6MEDWm*f;V2GJ z9g#RJ^-nkob`rpc$41OyQ-Al$7mfA%$A@S6o`?l_L%2T;a%lTKBOk4f0PHLrI@h22 z9;BQ5#sAJnvErGu0qPmLL*B?hYT_S`DTyi%fkFuRmkjfLa1cQf6|4moNO^3A@3?)@ zBbJzKQ{-C^lY+iJ7J&o_QZC8iJd7#?N$GtD z=BH)3_-epse6K>y1!z3-Z!x7BgzT zAAgRvA7#p0q5>@S3jZ!8> z06-+8U_?}vVVN|g1i;hy$5=JRD@OQAfo;%@RO)8QT*8l(r@>B|hAkUbUzCTjWJZ95 zD#NrI(}L9c$Bfq@Ua>I78bV+Kn!ZKt_ii*MLBfZl3Q#vcBvqSP&6JtT66w=X{GujL zr~{&lMYv&+J~WQxvFdzzmd!3w5% zo5`&Mhz^-xmj48$9W}<qx0Qkh6eeRm36$IvA3?SnZO9mbUX`)M*8%m1P@{cqVqpNYe#Cl)1W8#$VEoby4}R0N2*=0>@TS94s{x8c!D;z%mzts1}&%d zEXb~JK|)Ff(9c⪻Zp@V95rbnMjl=(sWZs~^H;5E2XVGk7xeBWBz< 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�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%0D3+S9EFxgkyJ;t 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

        pQK+2qTx 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 K;(tC#;C}%;d0u${ literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_card.gif b/Dropimage/img_gif_card.gif new file mode 100644 index 0000000000000000000000000000000000000000..f73793a7e495b0133202e085067b73122e70eaf3 GIT binary patch literal 450592 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%0AJqs;iw-n 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ⅅ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

        owFX%3#^x^03VJtH@0|Z}Df6dWRPL4XUnT;H z=hceeTrYhmuiSMD8=>{i1SglH;$A5Zf;~?3>E?GRRl*86H~I7kyc!?v5ytHA83=_6 z|Lm2(>Bb|4AFovPiY8er-?}6L$3?%HmWXa0MMOkj*v?DGLJ9T?9zzFuYt3BBN{@3W5Zf|x{0Q`;2<8; zTgRpMM$gL|-@j|BG@<%MYnvr$TwhOaeB}NQ$@}*aDjpN#cYo;uVy@oHeOI8+{BB4w zuJxEyi6kZMP_FRb^lXPrr1x?HPUC15@4MOqEBERNzek>pzYiXHcksTn_7vHBi^yGa z@7IVivob2^Bk&gUC%hI3>v(yBG1E)`g6)kH>gDyf$1-0%vd1@H`S^+H^X(GZ!4~&{ ze8+DZYd2G=W%Bc{wZi+F;rBkH6wusPkDU@}n6kC+-ym|k&F_8=+|@0#k0&e)cdOUCLt6!jz{3(BR0k3Uok z3v|2IjF}5-3FN`2wUlC_}PQ58ic}#o?p+KViJKfc=ESf9g?4kaEi#r@Z2$gOX zC3QZ|-b1OGoK3g=P)#+6o_~l22fx0fZ+�K?$)eFh`99oWB#T|C}B?1dF^{Fv|Z5 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 literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_nfc.gif b/Dropimage/img_gif_nfc.gif new file mode 100644 index 0000000000000000000000000000000000000000..b4eea8707949a98522d5220e6557abf0210c86e7 GIT binary patch literal 192463 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%0D#())NnxHV4&K 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

          O{D-?Wjr5lWTMQR@0aRmnNa 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

          =BqlUV4h!9bfvhd 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

          f}r;lpL9D~1}s73#4AzSML_Ow zGS^5L@jw%AS)F;8c}M{nwD{|UnHC}8?`U5nAH;OOwLu(p8h*RkbpRY7o%$V;UdEv; z0T~X^qkwCLsrP5i_n_fKugcUIm7YB40oO}8p>pm~Sc8`08NS8=hHT&VUvI8T3#?8$-wUdHjgp zYuV3Tx*o}ZkI%uwgSdvHqN^}wUCOuYKZye;@66X;nZ@Y<3ZN0RYmLdK`O6-2Q%nn7 zVj?yF`Q|+MfUVPU^IDaHIo?}+04q-7n_;Td25a-zB$uVOU$ypgGCrg4M;ApKD^G&< zwUQBI@fD_vP>m?~B)b;`!#3E1gEtyU8(FySY|A}<@e~_q82$;OkRUA1{leh(jLog_ zq-leK{GM_O!m4{H4WbKoIug^gOUwlUQSDW+CF1#>AjTFKvVWlqspk^Ql)e z+6;785D^yYAOg5<*4ZIv5HzdNls4N?H`%r%Ua2vQt$=(-K>q!KD5bx)-fvM(hg8)B zAIusS*Hf)`gMHu4HC&KL2~sKKJnLd2RYBY+g*8@<-%MVBb2P23xk#Kx!2zYwz96WZ zQey2Q|CZMEbK?7YsiYi`zYu5jG(`b$xRN5=1X^vrut4gmA;DoKPGoNO`c6i)<{m&@ zJjh3>7UZb-(F+y>C(RJ89b1N!{g{$sS2-hnLR9FA;u>OUMg4`>lAAr&2+~yB4pXzD z>s|sFzD&{nUcLw$g7%e7$2R32S67BqNXT5QfHA9pK}S)3jpalX&P95 zV$owKnf!w?!SK-BT78d)^jttoQp*OVZ#7SYoB2q(PXIddwJ*q$9}N02w_Jw4SubXy*JBveytg>}9%sg00Zi$7=90GEPWx`+Wc`FO1)OEvG`Yy!myB(`L zHrL@<7myNirOq#^Vil@1weF{F?s5?prlBOxiGluH)}kt#p#1`F%XJzngO#q}OZc6U z&Uxa-Eqar!FHh7;Zwn_{I~ASFovAB`OKeFLao{AVhfUt6*4h|quy_!&Y^v~BeS092 z>mO8ZBVZ( z-nk*01^;3Q_=6TG_ANRiJcsz`40TsH#-YVpP#LDy*&bISqTQ^r{V>{IYzSP<{QBKu z3Xey_-gSgGF30;gh#x&VA@vXP=+R4eRmDKAWh(ml52PREQ+x?ps*u}MQD%_s5knPr zDpO~mtm2SAr7nD1E-Q3%ie2Lj0TrHv`gZX@w^5y({P^8-5vzWfqpC=0=_(=#>n_+l zsHHxbXCZEICr)8m1yTQ(&YlP-TNyMoG6jfZPfqEU3m3JnFJA8PX#aXm@A#cQmW&-9 zN^9*r@7|eF~XN?8QqxJWyua;HHYd&?8 zo?sfh1dt2QmXtqE9EjF;`*$p+hWp2MWIDe4?;}$#{*&0Y)k@vl+ry-T$^Tsoaptq= zUYve5p*HVW`A_N-$~7=Q@YJ@NOw`ji1f^5eA$H_<=9f3bdwb#Xf%nzKiOo}m7*|Nw za69AfBnAOn5Zxu8oBhNAtDp`1q%6E6C5(B*{$4_uE=dS=>j?G}q^}~c-=xYFtXa3k zuA||WLP^!o%yUCP%vxhaxU`JS;EvcqMZ-i~P-aI|c zf;&t8cYBa(8moSg_7J|TpuivcmQc8dB3aqzJA*J~+iQ83HE9J_;LZ%Yn|zxw{F4q4`7*FPdx7g5#= zmmr1r@AWZ0x_@nVBhE@fH8$&bRvsGGy$od`IJ(hw2QW3s6fNV{L0qvhts~3xavN zdy$4G*?X^R|DKqa{>+-;FT9+1lyH1xH2=hR(VN6V-JHsil+GT_KwbE_2)9y+PdnLq z*p3JIM}(>OCv;_Wh%NEoe0lEp^BPr&8oZ*&I3Q-z`RUjGavbHx|K+n^gkU@7&7|0Q zUQf-VUgbqC*4Fdwrvxn(!c92(p&Gb0%O#qrWH<^45vi`C(y>?6r44_$MH zhfV^Sd~AtU6NMWoT5SS5DA?p#S@h33-BnS_21%Hz&Dfqn1k(esjgQ+SOJkMBSZ^kL zs*{xtTU1-_J%0Lwrai78L1HW`5+}2qN|vQnZsblGMZn>wR_bC}=50&z<`@dOT=-Re z>Q%JA9DOX#MqPR)Bz@O-CA5`hy=0t}MtfsZtiY`0K@D$vdi)(=v9Nq{b(YE_gAi)U z3Pfma8TOeE)Ei@I{0;&S1j~HF?>$B`871o+en4{?4%j<|2-5Bo>RQmeJON7*!WhVp zy{uHDtS)GVTNSBD^jOEteiS;FiOwqIPMjA;F2eq#^P2wcS&jSezq@rMwnTO!ty0T< zmG!(U{BKo1i2V?>_%Nfzs&8@73B*k`kkeD+_ZOCwx+l<%wdFQSEA3fkCr(OY2l?E2 zq)(fJ+8vHhaKR`1ZDvhr`r3_U$zBl~#+<4^N&Y7H&qv*H98ilpi%4VEun2#qPYP!h zhB#7K-z}?9ZytsGR5SD^+%QX-?}u19u=K?W=?n`+PN=Y7 zxy;)o_qy~C7OXd2ZT35&Yqh8{ss?P|jEqa)4@?QIFPYX4CA}(h;1E3A5hBuh^|F`8 zLV*W6apx}&GoO3)0vA#12ZKRAOy`0d)3tA;qb-{4_`>RCw#yz-uv9YjlcMKRX-&$1 z|E6y)c<_Ex_!II=?|e1SmrV7!G@z}|v!GwqP38AU(_F%1a`xs9kP&nzx_sqI*hDH4 z$>Q}Rt0yJQy!jF-wC`#Rne<&*rf(ew7*1+gA-uytsh+2pG=c_Cpgc74LMJ#i)Y_`T zf{!OIFeMS{-pj@K^!eqywy?1iOWeh+SF)>IE&juE8DUMrSr)H zsxxn92DJ+3OcO&-BH*3^s_^2eu)-DKq90Rc{&j zd|C|H65Dld=IC@L_&PE{&+D7v>r&W_yM>C<1YN6IA@+0HvNaML0ayRUnwv&zOtmBW zV*6%eTQqD67n=Xw`*Xp_8qX{h{;Onqva5jU-u#psZnVL{NJlcRF5+(dpNtZ1fyYJ* z$M(8zAM}rf-+rDvbt!b8<$7?sGP#>W4#AC+3`(}eDo$0up*f1uW_r2cxgwps2>;=} z#F{Yr!jY(=Hb_-MVe$QG!@RidHRGb*+%vJ4TB?8A0^^FNm>sa3GjwDUTBZC~n_h4_ zGn6{gZ}Uc(SfuI3_J!jV@sj63AJ)J%X|{<^sqjo~LK>}W&(KI2^wMBU3v1eG_kK!( zf|m9SDQDy>vo(IV^8J1K^(G;s&ZftiLXvwOF$X-#u3>Pvx^0Sq^+>?csHoEw4@II+ zN6qW=_JP<_jM623l-;-TUn*5mPB=naFleIg+jHjLF*32?@1RyO=ew$&L;My+u4#Yn z6!pp}+gFW0C207u*dCUW(IEl#xdYaxW)9!@g|m3hmY;v4XU#G@3=bbK!es8VGXGu? zuM*N>A8!-iFY0B>>2y_GzYf&4H+Wh1`dwRTk#L{FyBjkDy0t@g`jF;NO3>+XXO=C_ zDt4cVcUb?H+TXHA{j|R=-_y?ifjb_1RIduS%uf?Nn6JHM^n1ZgtI@KF?)Bq;-E}s? zn6EX96>5DO%P4&khm0$%NN=_KSwHh(%d~gaqd5<)nP9=t)wQLPw*Hq7zO(+DnDkr7 z514$;Vq09IbhO0Nb(_b6fx{JIb3I13!&p#!n*__*G?sK;&>ix3naZ-Ev*oA%(%NTp z+0Yl?s9((WO+c#A%(nFl542){9x+dD{_!d=NwMPAn{7l_|FMlaeUN$vus|5^=rgg zC`Z{da6!QgRLaJ@Z#v~&Kve^IE;Ql8eLd!@(_&H8bE1m` zz{i>C*`EU~WKe1U7-dUrJoFsTa}rZGR`k>FFdj;rET8%=E+O?)*S)aK*XunDCL$cf zwELd3fMw!MT6OU??0fR)vj*pfw_B5G4L?4K|jK~%zjfCGIA5y1y5lEk) zHS{$r8w1(4F2J*bbMsL<*@;0Bz;C#~894Yy8>n>z3*(x7wyxa=E8vG5Fg%8DD&d{| z3DG%an_UG*$pbm&mZGldYi6EhQ+{Rhj_nKNy*e6WfWjq&UQ-;nC!DI(#IPR)nPTB88PSZ+^HBFSNFEjt?J$B#kcPWL6vVMLG(&S#Q-WLx}y!PI15n zjfi+h@RPB|XYUymoROVMq*R*u%vzG){DJorROVtRRXR{e5Q|(SiwBTV;HDJ|LVx;6 zP9sXJoS6@J5qRqqxj%h=XgAyF4aU9K$le!Pr%}v`wbLQf91^lR+Sn zgXcreAS$OIEv_OFLGZg6d~d0Sjw?tU8;0VdA?8lnErz%WRn+G}En+GbpPOWhL;O!k zLJ&@CELE@tVkl0JjBsyP!BQnnYrC{c>SJ~?2(+~#DY~~`^`b}PN9jW~8q#GFx%>J^ zXt>{R1p>JSy^B79%)0^@BtTONU5K%5(*(Bzulq3s#a#kzT%fTO@T7#dsHFNOhKyPI zp-)N~%C(eh#zzt^D0>Ql3A419)`;0Y2-!pDnJeT7)!u-U#OBc`P?`D|gigIuaU<-h zHp!nwI-N$m4r?-Ko33QNP7zwSaY|x)0r9(C-@9I&$3^npAcL``{+pepm?HR(N7*y0 zvMn6oCD_nA02&b>dY%Ga%&C8%NFY}yQb$zbxZDNf8lwgpk`c&caiWhv6FIA}cA4J) zpWvfYjBm#OUS&naCHcaejGa6(5znRIG-gN8aQglea(aY;VKid!Lc}2mgIZ-mj5C|6I!t zqLuu84RR^mW$f4%Au08yk)G<{=2z;v!ya-eI-|z&SI~d6-*@{qH^}Jzr!$`w8Gn9- z7N_PQFOj_TZ_qBmCViR!v8#d2=3JaIeikg*cVU2EK`#3YnFQG$=|1LxiQWZz31n$g>f4Sa+oU6OK_x2+!c z-hv(9c0HNo+S9F|kl1&;k*aW@6uza(H{v5~mdfsOmo#p`b4|7^gvJXtw<49O9>{+Q zKTo38`&urTHxC^%BmG@AesU_Xob}bv`{~LnpZ`o~c6CTUU`p&n1t@h$dN2o=pU^!F4==5WyE2ah0-{TYfY4Xh7N`&unw=u?@`o z{=aH4@2~s%ZY3UmwVuW2M5nXyzK?rdD|}R?1S)kFR&Fy?ZbD}QV!%=N3Ayvz2b@w} zJnSVXiym*R@6sqAe;R(=w^lci#iyvW06HUzaBHErC?349meG{4^%Ggd8Co0ZJ_<1` zM3pp5p>Ai5zo~uv!0Lnt62s+4O&2tAuiYAr|ExwMMs8J*#IZ}EvQwX*<*?s_&gw}W zEwsr_GC6MRtmK-cxHClYgko^w46`PV6kK7JGC#oOcI^$Kf}cjMOyAX6_{UZ`DjchQ zD%DGx5F+DnA+bB2K6++AC5a=w2|nKO3k9(&04W?VxGZ13;B){qM>)y4YSgDh^CQDz zk*=o@V_{LffLHRt7do9NdXX2L0Tf;5ZxonDrs|L})fYa=6NqlXq>o;AZr_2Azhu$% z3Bo;U@vRnZE6D*pSrI#zz(LW3t(oV93TY!hFh+&yJEH?KNfQ?@nVSp&}iKKZ5Q+F8NZ-%8kIH)Unn;| zJ4;}%#y53hhTi&%VndAM)%4=6ObLL9Ym4KcS%rs7e{0-F9|aXYQmNydrk;)x6iX4q zacTwj#$9Yucik0~R9Dl#W_4N%En#;E{P2fU7NAY|Suy3&~Aop3ULaeY--b z6j6x2AVP`IqyARNlfU}QO=+ae%|_+%OjsWc6Dol5G|fLpZ*xN&`nmL!3n$w^x$uBf zO|}U^9Ssx>%@T-P4h66%U+s7+rM#ng$6P{_Vvdg&MKN`Ld#)zhl}oCjMMWbB>_Nxl zmZwt4?Zg4o!LQee7*IX81qy)UEDDlAP+{nffni%7%^01g2szEL&0Jm~vfqneeUzAc zLXswSJC8lL8&G_@!0A){9By%#M|Qds-&(Q~Hd{2HF-jGMA1&Yb*I}X=aUS@dLSVn! z@3ny|T?O)zpJ%>dE*u|Txn|{~a1V1=&38xCqLdm)DbaJIvV_OhVI=+`UTFBEz~nj0 zvyXS?!W#0+*Xbt|*n}4X9-NoK(VN_BrLx$#?phWy0llv_@_~bkq~Ekjb+qt+#3&5+ zqgIoX1JG=X>7k>*E$;f^Zo#FLqQTu=l0bsHJHeq1?k%nr zic1A3P^3bULN%9%JMQa!IlthHarQoI%{j05x&AbhA}+EadY;pI%uRjy$*bOiYsWm# zFtT+Fb+xOOLWbGi=9=wSwYqq#7EaODH4Ty_%*5w9QrEehH5`X7-_tDHCBr&VF`i~J_M4F`;l1Hf9B@PVC!uo z7`^>yJpQWwxz*I3wD*92*44?PFPL-GEJn?XbfogvX>di5v;O; zxa&=k133FCd%n`9eSzbTT+Wsz_KW($Lr!Bxx0Ws(!=T+NPYw8eji0$N^|L$rnhUz_ zY6NmulYJGlY`hpR4L-q0y>m_8NzAB>tpx<2cK-dbf8V`#^P~?j9nGEVvfC&%YU?g3 zFJiQYURYoF#C8B}S(?zIs>>h=@8tAVHezB=o>`{XGN9T;<#uR+)YM8%)>uDeT3bzp z@wQmJTzm*6?pyfuS1NDA?qGOS7R&jn*(|_tuNlJC^ycqHJyh_coX$=9R-q_4P#C5> zHFh@+nW`-kS_?4mewu77@tMkIndZaK-egga`oGbSbsiKxc}xG5vw6hE07l%1x6-2a z+1A9fBtLij>Wf3*J$=X6c7jHE{hSI~B(lwQn22cnQh7qiz*B+{7%2Gd zaHjfL2^s_MsO^3kl3DzFV$(meLtkj`&XNrcnj?NTo2DDzsDPBo>>nwnS}M61eox4U zTEu@(0n!nG9ss}hiy6JCm1Tae4fM~&dk^1F{|a{cw^Xg?mdU%rkQ{W($>_eovX!#p*8 znd$@cag<3r*8+c-;7%$VIQSRZH9o06IRSG(!Z;N#=SiDS`ZvV{Fn)~&;G35N5&?Z9<*x6=-(~iecCJP zm7$c(X3FSQQ<;7%5#Ncw_5(leSMQyn{55UBOlxkR!xHrA?Yz|N+(C;_%2~{8$9&Ht#c200)lS<7)523So zgiUdmfg}4(-61gZ0;dH4{ck$$YWh?(2eJ67w0{vVJ< ztIyzn%j;PzXFlf%&Wr?|t{|2VLjgyongj6*R>3izUKe~xskqQC{$L%nt{fl8MjfA= z%dN;eV~gcOEXu_>Mar+=gqP~t4(r%x@MCgIJZO^WjhM1L;AyjP>#DV+GL+qP5AuU& zj^ldt4>);M3aLdTS&&r&|GdXz0FgGSKD=GZ>9D8tAqmkkhcor=<5gYkBUQf`_q zG)B(oAYq?O*>2RA@475CnZJwR&wu!UimV?nBF7noyw79m)f`XdgHnH3`hW7Up0@nn zU@JM`?NpL{5T2VqkbLc-l7ATYkud-V%pz5Am5g%o(hhq}>h<$Sp$n-N(xDpygkF6Lwj%u+(U#n{=#Pgxp++i@dv4DW&UCgy%^R!I}mu8ecNY3!j!v zlKr8VXPsoQna%bo!YrcXECMto4%)B+x74FiULGl)g#|ZRx3eLJ>)r&LDEck4eJf8a zKUiTkvG5wBc%t``H)ouo$Q7F;VhtDSDSvR18D0{<1IbTwGeX0J;cDP$3o+k_==XGm znNngjlLC{2DQWsK*(ucPNX(_0Z?$?E2o`8ld40>nyWZ6Tqrle-mR=4MxW8zftVB)X25ya9q&iQ~Al zkM;CY!8uFvF%j5!g|(n}n@EL1C#S0tHc-Xvy52+)d{p0yfERC3;;f!JrZ2pd!QL47 z4pALVo0fqq`o&Q54THt^dil&HVPJK@(#X=5e5XU~A8GytyiCF?MvF{Y4hJES{#%< zDwXji)^Ca{Lt1zTh*%>pbHn7KQ@@;6?-^9x)5F?Iq`$foq}rhQ4=C+R+ho%m(hgb# z?Ar?A4(}HpOEpHu$_Je52X8mWpy%}j4JcpmG&5VixVb02JfVg*?D}64s*k)#^jQ>jf%|NE2dwfK6%qA#xhCV=E2kuZ5 z$zTX-nB#9?(qj9hJt5@ff^_|3TlY4QAaBEpQ6}Oe>Pd1vF~ggl_w(+h%uZ)fO;rH> zOqK@mlL*C=B4xqIFt^mH@L&|KwZt1)ivfhf@zLi}VqQz)FYG$h&MI?AYr30)F;QMb z_So{qr$1PbMb|;ETAQnwDws>a-#oqf-AJ#41FF4yy~&yoi%%^)d?kH4JnqOF(taE( zT<;iZIF$F9Oaq7u6Z8yiR=fjIP z($zMWpzuUM-=qgH757flZtJu?Qm=Mi&{ff=!q6ZCDkXcV$*(L!jKk9=Q# z{(2{RX`wN^pbqAiqtX(|SP^45Tv}+?B=PI{FHZ|pPS^UneY3q-+;B|n!YFB9HqGy( zbb==jO7q2r8(rx;D(}ENB_rSVi8P$h41b<1lgi@R6Wiems@wi2k)zMZ`xqj}`52#7 z9F9n=mpDJfcK$A81Ldg2f)1ib?A)?Wb%VV@$OntKp7I$^xy-fgIK>^L7{i#z+a#N| z3d?hX(DNJ=M**`JibC3sBUsO*tWl=D#-Tl?)V3~Hf7WPrGy>_%Z8LdG<&v*Y0e-`n|JDU4o>~@@CxAh2_1N z7th)Uzy9uaLso&_jZS&h2yf>L{^^t%teD;bYqbRVE=p#dV{_kPb#A*q?6j7U)erw% z*^zHcSDc?2ERwYkQ#hP|?FF*w489t$57U<=(+1U^MA0v)_5)QEXA=l&OW0^*&P@n4A(*p8>1k)+`5eFd*ievFy}U3^DczX8QbrX01#%mKRv6N*w=phucALgAFtSqF zjOWvI$W_>?=xJ5mAN;oPE1Z#DQd}T$j!oRqmxsQTj?Xvu*u65CFj2n6hyhzPKVapf zbwMR0e&$85Y?(vos@_&?ysXz@!)TAE-BTIG8HJ1ni@(6W&$}57LmBUOA^_M$n~1Nr zdE@fMdns8*l$d)cIXG46>le71&31~HQxCnCh`?|{gKpScJ5#-PECo$MQEQHZi#-&& zsoE|nr%}F{xt{5`#S)Z`$NQjvCSL~L=YpdAFXNV!`!dLivMVMf-?tNLx3rCxc9Z#v z&bRP5f@_;+t@QGmTbylE_AUT3lO3Li;RWl0CQseN%Vvuwuf-8QFH#=Pa(RT|7DBtC z_p?7Y=E5??S@46SLgUYd-j*^<6#>nsAHAj@eIF>g7x5${$Jo8tIDE_>%@naRV?ESS z@$T$JSG_WP#lGXE_QtdJjqP_!Ar5oz$;wbmq;fjHtQ7#^yg0?*FB892L|5`Nc3Sec1C*gF+~VM|2=tX8-{KC^>#@nIG_dZe|?j zwoCse8gZv+Nk$}~5ojw^f+Z#=FEu5_ zGB>XbVHxM1k4Z1eD6A+)$7NTvV6u}f>l7TyR1<{D2L|)_5@LtTp2a@HOqP!i&j83X_(6aD_q{~Y138x zWxLVd0=BiVR)g>zs?IX!ag#1(uDLs`#?_T zlNa^9g)g5`4eOXUG!}dmHIVK%vg^&Cyk*+etPz#(=FKj3UA%tXUW(XeyRFj(mJyqA zv0%ZimaU1^04w*_+WS^VV5Zj5*KG_mG;3LF%c{UY&g1eT9z!pdho+Y^4`lJ$ zTh5s2nVk#McOOXB^L9f0g})lx!*Bo8Prj~^N!X-VkXoRhXiCo|TD2T37)nmYWv5^_ zIk;jLjSJ1_!QC3kPe|u+`DXzi`um>SpV`vb`1y@MUEc=2ItOq_aid%bB*wPZ9*Zth z*gA=Zc;=-rDr@Jh@p=9EJ_(WdlS`$Pp|$@=wAAeata0d-Y!GdH?}Exh^@LlWXJ^Z^ zE)!xmZ7(Whd-+%j^sj`~mXWt4-B0Mtdb-2*-RKx$p6vQC{)ohLRbcsqNSDQdB598T z+a8jW`JWYF9)5#{la>ELhdVy7(&r_MOvCQyb7SedYI9i!izwNDcDQjMwKedYJ3+ri z6dw9K69&C4&@;Cb&@JTaa<-Jbp4PEe`13}m!fenJoRz)@=69uNS)q!O<~qzS?RK2F z+k)ofLI@8m&E_#m$7-)@BmXOD@qzxgoq>eVq&dl?`fD^G`u~EK>xR%0v(077=N^ym zd4JcYiVRHVR+otb5L4RzmoQ4_bDYOQEPLjFlDP@=dVX;%?Y$t zv}}dsqD-FSB2YF@*}l@;$&9pvTEz2&vG2NU_P5bol8c2K+`O_gu4!c+uX?sz>&G{@ z+G;Oa2~lA-lgPW@R{9;mkILtrpc5OX*$dD z@0~BQm5+rqAQk+xf-ug#xHwk}p0>PgK8g&Gz$=g@t4I+S6z!+8M$-~fVEJ$Fe2Qcr z^+5~T!g<3>8!K_Q=yaD7XS9!m3Ux%WxCH#y$cPZG#<0;Rp znWk{h|F*pP4{+DV8-S53vF#Ezn!WfBHdFc=#ih)^V-OCnEByw;FVVMh@ACB(kI|ID zX#f7MCNm7wShsxY%~fYZ&P&+XR!hq7o?dw5X~iNJM5Kg@WH)7*P>iD3r!B#ynSNzV zVpjZ)^t7$Tr<|wovtY<2#JRZU+@|LwbjiJMCn>QLmEW#N+y!Y~11M=!DXnq$nP^{g zGC*~VIh-Fndcl1#1<@8vgJqW!5Qz@t5Sy|Qg|QN2dBl-G?xG;Nb2U~qr=`Qg3P zA@CKqza`6JmMr-)4&uBlS*7Uvf1E*Ok&}{!mT1=4vl6@mu9j)~s4={f2tI67%DcG& z`PI1?pYGPE$UC7cNVS)(%A&!(2OiuFY=D3qJ`qj#ynGyeQ4POz?l2%u2Y;Qn`i|BT zS)Yf|6$PU_=RAa11CdZSXA;VqPyhCv+RXGiYRdwtq^C=$$hoGK)Ez8hw_Ob%In5@c zBh{!{2V`^ZTU41JY(l%70CcyZB*F#nh?#I;Dd81#UA}v&FN^u}KedmmYIa9Lp|UOi z4y<&9=?!DHAQWD8q(=7+S+`p>q&*8N=?(?S+LtWo+-eE=M=JOh=+_-?IVm-lG|(LA z|CskD6-fy*F;_^k{Ek$?hniHP$JQI7je#icLp+%yt2j~huYwNMN;px1+C8J14r+C@ zyX%+jT2xl2kf4SgfB(Ar`Mi+szeHfabS}$fW_Sv^Ea9 zndI@NAMZY!i03-HO5PUB$F-)@jr61 zEFM+m_kvV9n!V-Bx-p7>#!IPX_ad4$83~JTx_~C)|5|S+X5TCna>6mpHLfLh6NcVK zA{5KU)eJToMl+N7or0bGJAs@pDlLvd-|h z)S6LWWqtvsyUgQthQH{eZ%!AjUH?bm>J}*s6~Rf=&9d-;i_OxpNi9BBP$jKmamqMh zNy8NJ-CZ)9X+Y?ajMw(O3^Cc1lj9^rXK2CxdP-@)fzjCi9AHrmdo$t}76_%#yEj+p z*C#7GJ0(tX4=Eub;EIw1?4Jo6vL-~LgacS}0ELUA|wZa#&;%V*+mw&ZVH{ z6Sv|9mb(A8cfIrnc6YkC&)7-k@HA58zt>DZf8%%ot1bB}KqgkINA`~Zp>_3eE`Md5 zQM8I|i6CVtPk?XiQf}WfAbE|S^puuycUk`3&xpheHOe%auJ z^1r8Z`hyxp*rd0`VLm#UNK)w%Hs*|bQ;=qEx+wmoQ;C$P&Y#r|6Tgxu#{~xVr+gLT zx=S;8Hh+%l2t+o0bQw7ef6$&AL?G-tq0nuN?DrIcDsJX~W=rQi{Fj(|;4iKm9i2Ew zXxeK|nlnY~r4|K!MK7WEkBmN210W<$^o;oQ6^qLVy%LuA9#T)CpqTQi6ZhKxFKx#WAm)=x3kHS&zT)_^pvmxaDCbYtyDGF? z!5CTT>$oGiYLwpPH{Hj_Dn8beEbG*N_l4&}FD(T9F>~*m>`G!pSrU`K_{3kD4opA? zxRUt1iP9&q;MHPKR4VzZ8A+TO$^MNWaLGPd&G&3pf_sK$*~8IKH|e@KX4{6)rUo9j z2gg9{6na$gd{A<}{}>ou;E9~RU5U^Va<}V9T24}3C;tGeK<4J8at{Edcw)O5#FHRS zphTDV7RZm|;GuKvD^wP{W96)gh&MfpWQd66N$hgswwn_E695leco=HKtZ*U1Z+yzc z3FgL#!B~GOSd45Tp5@pa^m+~Xx#?kUgrg6@=5r{?R(}-RKxkLK-ZC##$%)4cmZ-`_ zNNYw+QxhnAO`wkjKjKQ=2dMGl5~U;UtRV@sW<+=YIc*YC_qt)W*TCZ@-JoMJEtrjc zjacs8E&cA8A%H1AC*|(*%>40?5l!JGP83@bReda0Pvgc|2SV{0`VN3&Nd+1N>{KVv z6z;%>G9VX$^pUlAcZP_F0gOORQkfjlFK&&mNi6F8P!6^DMJwNxIiptbtkqk`b*4C< z2n0=SYL!5O?4%trJ+Y`fNPS<7Z|%-N8$?q}V0f!ly9%i*1j*-SeUT3g6@b#~Ma>1G zhGwJQH{r>T@=3#_!)MXtL<*X3wPpNZL1kmHQ9QKgV>t=pq?8!)Z)kF_8sCYqw6ZbG zZE-@4Cl6B~(Eu(oM~&!K)4_8rSoMNb*o%j?MUcih9$+adh5}0SgCT**lwRS&W{9HR z1V|KM=!V2PN6p&}$XJ>d2fZ^ug`p7?tYa*%n!)pt8dnE?B7%uxQNgzJ*19;)k;sG! zM)!oo#JpXX=4D{SZk#lR+(*!Wu|=2D3#7pVc2g+kv?a<0#?T}M1B&wRT-Q4{=|8)Z zF$A6o=Wcfjf?ppA%XgCvYsmkbHwyTu#{((MD<%JUs7mQ%O(OxcJ+UamkaLe^R$=g} z4mm7Oxx?br^F%CjFgZw?&Wr#)sK&8aiVXyaLs8nL54MDF2|(=#Dn{p7(9MtM`%A#c zc((zt2uvv|lw4?@zDp4Lg1dCE(6KlQKB549*Ag=>sN^vANLbQ<{U^7>c~u!M<5j7_ zEiGMcPC@t2aBZ9FqaT%JxZ=V7YE_z`JaG~rMDYrj%~xQmhM{;>;O_Sm7-`8qqz3#e z55km!GPfAB13f9rYTbK1HJz#jIBN6G%YU`hCnjgh>;vx2v*-{AgziQaIi>ujt!yU@ zFf1)96DJH$#3IycL==*W?GPo0sY7F>+n+LZCivhrq>+-uMlIkOIjG1G9(->pWpJ#b zEU~t|vqtJPi@H=qvZZh?kYu1Z##*ha9g4oYHC{^yN#mRzaDc}*7!h;y*1CY^Qu0p< zpj;v79)Cf>tb3_`%fY#70A4_4A0?p1Shg zJ8*)+bu8kQI^pd~*@9iuESXst8uOnbD7raLz^Oeagg94E=6)-=r6RPeOl@F6LM@7p z*Pt+ux&3;<^I4dqLm7GhY*Lh?_di*d zL(4v-v|Yip|g zL<;1joo**k(*#ChBi4a%ZzE4T4denns~Q0=+Tq5$0sR2lGuP|h7=Cf9H90StyIU)k zrrKYFwRY>KF(W91^N34<+EY8wKKaqYcUO-{C3ppkQyFV3>v{rh9I8 zNEV@(tOhJD0)d!XyY;Q{+;-86EVdB0z+Hf(xc-|{v6IL_2WaOU2T|h0$iIE;zhH@0 zi~9uUgH*g-GY3z<%-EX|3=2brJRYiP!+hMlMkRP^3-n_!m8Vb>q83y;IU{Y zU}(9nUm3Zw0(5={2I%ZO8N*%uHVP}%<#CEAJ0HzDR+MbhWvzcE+dV!s_6!5VV$iBe z!2@MuW1OFJa%N!;PC%%7Z`9TEG~}}(r%F=`i@!sYdFQqtHeiZ5ELlCRb#7&{+*4(^ z&Y9I9qqmI2JfxbZS{`YN7iPc&CC#=iyaw>C_Kz{KB|TLOi-{1mmL_%LsKKm{@r*GcgCH^J^NtzUV-GNXmCX){rm-hSSB;aUQ(9Swwx zZYX>)%&HFqBiEOq4#ka9xId#EU)byByi9ZmRfB68y{NkiNKcJ;`=jlj%t+t}INx6F ziZFN}@%d(j?q#`{8EQ&`56DZVV$IWhLSb&7IITYRf}(J)S6P$I$|QjUDdjYA-LB^c z26ov&O4wXh7K^GX)G8(ElN1k0o9VBCt1F;_J}8*_NQ>CzCt}*ei!xD=r-W;dUHTOcQ@1m1#_~4tf7J*4ja1 zegG8jusXvtFtD3aMwq%f(CtN`@Cph|S0o>yShFr*yTZ|a37_fE1#M3SE}FpnlXS8(Gh;P#fzmW4q>4^;Fg608&t|$ z$S~!BM3DAvYw55STD(cNK0o4|0JsZ)kG7QOI+S(nAV)-$bTWKNm|7v5rf;Xg62xL< zI}4+#n<^kxHg%CO{Rsx@yF!E+Y%oF?48(12-7%g^i9X$iMiTnjSlKSirbJK0mvIEL zH5+Fy>7@njvuax52-jL?t8o>k6`|Bni0a==120@8!8_`Gk_TlybW(X#Meky5E8bH+ z(W7bLCr#3N@-c*{ff|qm3?17dxG6yhE8lyf`eKEXI?#|X%pFi=<#|ATq!R4oHz4*z z*W=p8JsBn%0tumeuN-9S7TcY*5<7Ue-um|=zchJ^`+fT#t}7HqO?mfzbUhOK`gnv6 z{KDsj`4d&UTD)QrNAqcjPDZY#2G#wa988YqhplLSTG&f>sViRvo+_OF&cEBxBz=3a!|U&!@4WlaToOyH6$K&r zvjgLFaTi;dA9$il_>3x*4l++cH^5P*62bii^5q7_ys;+}D!!Aps{cCcA;GjJ8KL*K zDD;Ph^9Jf9FHvi}lGxs9BeCGPJcn5F(bs>JwDvg;pzr9pCGf>p&F3?1f+2L&olH-2 z?z?Qmpp^KIKmTc77eWH-oZ+jIHZlCDzVkB}OLh(2)e>nGgm}M7?dv^meUIUEG*vPbgt_zVv&sZ(p%WKXO4-6i5H!mH$5Y8sQPzF7YG|`M#rHF^zBPTl=(e%rb zO)8PC4I#dIqF2UC7OH%eiYB*0Mt;qEFj@6RoW|3H(5QJ?^1rJ4d(Ge~f9>7}ibDDW z4tVY$Sf`~kOnQP3`^K;_c(NW&e`HDRelEn6vj2z<8tQmcEc88qXeW5WuhpC18WqW% z&%Y+KaSMR8qi6>z)Q;pD25?JZPr*uo#x-`kV{t-OagS|G9z^V)4ou7{@>SVYy~ztC z4#(m9c-^SQe!XdU>_GHd=wia0uUDZ}wD_0gd8698gXo#7A4Eaz?Kt%j?K38&uiZ+Teup;8TiBT@0Go;(j0+Z1|5D2{a@6e zyS4}-&Ju-8NJW^bt739;5msq&2sy{Rvhs?`s_L5Bx_WE_!XYQFAg3+Oy~wI4!OFe6 z4TrGoPv}ZcElO{(?6T^}&q+_BK~DDI z_(*p`Z(iqM^%**Exn*!QdG!103bLTAGhZ9!h$T)~4qZ+XbFL${ozt(->#P%uL*prQ zgk%l5Ila%s|6TNEKT>fSrg}%?+10QZK1NqbBGA2*#8m$IkE`yX4i5zbg6y8XnKqBq z+*dzCY+G?dM9Wnsn{~Ifx^Zic0ykae-RCCVg(`XI(ss+T&3{uJ0L)^S0LJpQ<~6at z8IHU(aSKWOFk5CU*Jo}|>&DahxcJq@Y^R%Kk)*r(^%RZkd~s1QXo!=TeL_#=D($|? zHZc$Cw&zPZX?mcVW1h(5kAQGeyTr# zNZxMaRwBn=t@HSQK&cbrOYQpHsvvZ$%Omi@K^=IcR&Dx$i-sp>lP(Xhf(bM9 zetxa7Fk-j@Kx3v>R z)XAr6jFT&;lFlnDtc9Aa;DHF|Gn&@{039Lzy5u<~fgqj>aqF!`bk|g(2HWz3!diBY^l)i&r7TX$$ zT4UM`uS2XVUI`;y3lX6y+k+sb;uMCfEUlcLcy*&1>!rT7FHZAp==d(+<7A zXa)*PnwoapNzj9jkh>eVr`A;3B^8eM^V*rXi8ywV$T`ZbVmshKm`o(a%-M6}kBH(wANC*)~!n;4yVcftTvuwk6pgV5nmJwX> zkWAIZqe;O%@ZRgO?S(OqLE{m4L_hP4;zch@8HW(lua+7Lg<4`rW|kMx+u3g1a$~U{ zAb>}rLV3dFDW>vUbR-K~2SIqbtx+P?*I`-{_<-W#h%-KU(SEDIvNq$ZNIFlyA}LNX zwUF2ZXuYo>?$Xyn}PtcMnp}RXTIr z7#-?UV$1ij?%3Fv&l38cQx7KUE@_&DVIq>vIxw2`HIQNc!@~Y@RT4DetN(@KPKq;U z=!gu$q=%Ne{2Mb;Uv&l^8Ev!tgUOELfFh6aSfcj?w&^p{i}sT(Z=KVyTpa=k<_e}# zB@$icdo(Tz;L2L&q7|~M(c@rr4YK5@j>ptZsU9rwRAo?s8q)@8T7O}0g&HS$ya!JaCW&kB^|N7|&m=30?EmlT`p@3V_TF|-u}mSjvQja3eidK_iR z^C6bmv0K4(Sp)i)c@Ex!e8Uf&$QMv%6yPkQE{VHlPn{m|-D)a=c(>NVHlEQ^*JEgq za4TehWje5W^+7D*1CK#UK>j?QLV)GZ9>rcsodX9}V&QX+#cD7Nn^33}K|-IGp`JII z@=4IuD0c~bsG$IzXf0lLO<--bNwQ>Z5`7O=s%XSKCv6-3nSvxK1%zoZo&uB|X_9%4 zvVO#RN?fwNeqi=1Gn3`2(~_q3KKEi$T9{vJy%i6oCT_93N%MtCnmJE3*3RXrJ{!1S z20m%IumqYE(&H)Jemsg`q)Mc;bbndG+#t3lPj4Yeef7b9v2=h69N;!i_+OOZr}79c zGo|h+|F1YBb^Ck^%3mGBvjKb3dDR6uAu68u-0WD8@4v~CDCa`RO;bS`slJ^s+Xxo-g(>G$YdHGrrK&_J z!85*0s%N_>wu3#wFGo8&Zrv&n%^3c>g{fO{23%IfYd!a^@HN8egB%}$dz(2)-d5oo ztP;j{F2=n(@iH%%bxEV^hLB62UU7r3<|s~>x<3Essj^KmqqSwBpd34-Rnu_}XZ46J zmUMeWIlc#cjMJp@KPM1*4@O%TMmk%by?fRx5>pPO0W*<;|3g<9Qhvz`t%q0>#>8Zd zo19tjo)*%76{=>>Ri`5R1+3usb;D|)Nu8nmMHG|7xis1eW&HTd*6F@u`+K)U$A4WV zC$SK%vH!Afhx*Jp@!FIMYI?Sx=uIaa#2q`V!i(JgTjK%+^C!fclO*Rj&2kBa;-V93 zA}S#i&+fu-GXcsL%IhI_R*7*EP>V*-DLx>HZgIAfGH~q!@MW41`+~Bp&jT z(_53>67l2^Yl^2NUULK0h~yyQrX|7q{QP$AK{Na=IZgzj1KjpCL?{B35h~_x4`wl#4dSu$7BBUe7AF{Ofoe%5kKV~$7BD9>IgsjTj?*g# ztaOYi%W>qwydFBJ})O&dcvkBF~dTO(rEK!W`mL5qpA6 zDl-16x5OsO%qU73U=4<_cAj*NNvS&5me&K#8-iq-=gi?e zt)dEf4dNtmOBj{FhSu#OsB?>3Ggx64@L7Pw@w~ZPsN|b0Q1n;Z-e7ayZcM^?`qZy_ zPlj~PEmF;)c7;}m*I4TU9q9j0Oe*p?{vT;sAeZyMq-AQ3RQ+9IvK1qj(9w1me(zSG zk*t(RrcQoJEk!-tm@u61d}LBisT>Edoi^S4vPxR9$;lGZ=8N}5 zTHN*pdrpMoO(ezxH(PjRnYDy<-lYl6zA`izr=(G0m>7us{;H7MqX?$dw~t>9Td)gZ zeDowz>F}1gJFn-FTpnRKDq|zVW-^PD`zQm4do*VMx5N-cscUK0&afQa!nrb1qe;t? z_Km~iO*1cG9$OzI@#txuj6X_V-1jjGycPf18`OGVkP^@o8vN$mfX1ZBu?p?-*dT75 zKCjBZLZNH_Enn~rrPcTSgbX_Sl5b9GN5_N{m{DaVC# z&Vne!zr-e3lq;EolR%)(A-Uc*)H%c0>)0hV#k0YZpFh5iJG;3vl@lNPA7}#1DMho4 z<>bf;HcZ!(m08Y|_)i}Mu}cx;(;!a^CNFkfFCZ_%M==`|)C!a~n)+Oz;rtQd6Gs)C zYhC=+$&pv7<@f7cAT=6hJfBh=mjZ$642Kv`t(Y&H_d(L}!E8c#CS?%q1TF&sVWMdJ z6}{^uBtXbJQElr6q*w6!Ek+;8mR0$jHF`*xFcp17jYh_+_ zeb3?5Yk`s~eb(hhwdx6W{2`+7eTDp;Cisquw6q`1jM&TF&?!iN`lXJ`cjR(vX`=3` zal-!@an$rT>Fs|?+1W(w699p`#M}7<_+1X-9@7^TbdpY&eiqOEjC0?6nr)G1CKPF; ztV3R&wf%km#xpmS^MS{oP7cq5oEdfvx@4vWHqE+R#=)uG?pLj!&Br(#-7+vW@=^|m z9ILGp(<0=5YRC9HILbrE`AWuS*&pJalQ|x_4yE0DkK{Vz@N~E*#^_FS(JSPRA5Ug( zGg6sjl4~`ADYRxMq-MEhW?Gr<(Iu3{kZr)fdmpf?bgfqI}LTlUmWo2drnjVKUSP` zvHG>x{RBF&*~&#K_}Aq=V=#=K;Z*Yhl~d}X_5qLCB760IYP~AOJcQcz9lIkb)TKQQ zPNuay4I&&<4LwgfC9mN)j_A81WHc%MXrA2H01P=CbHtSpNUY{4WAx6Dc)}X<&^a^} z(K!eDjrs`}mn_{&@>G+b;|m2ulO%^)g4CfdCilhbOSQEWw6*GBSCc5Ex9)Msn#G)d zpVWy6zemX=As8+-ph5+EcOMT8X5~$FNwQ?JupS6!i7nKn#E4^AO@qYKhDC$Kl!in6 z0|(VlV5jp`Seoz>4>GYuc;O{&uJi#{^6Z>8Su#HN$k1($juUBezb+EdJYihd46>#X zQ2+FE9HQxxn21THOn{9u(S7fG8uul-VBr0FtOCf1;nFYeK_f@bybSyz7-IL3ggv?x z-NBq6l)A*i6<=!PA1zY0L^nltz(Y)6Jzn^4$CZilPJ;W)JY^U?&UhR?&C-sbE}BY_ zqI7;4$JJf@3frhgUTX}exhz8+^K(MdjN^a#)yAEb$=#GLc@fc-(ed(qY*av#Onl2~ zoqEGY4b=#{k41g`Gs)JH_)7IHS8{>?rv|Bwo77B%Bx8Y+C@9CGB1Mhrna_SU9f}zI$m8{jK)Cg!5 zm#+FHOV#dak%*&CSL#`=IwIZ)*k?zPxmnLsFN02uUkFZ2uxP{yxO*_O4w!8I;RH%B zJcU!OSDyj4m&7A6deN-YIm+g4o)~pVnrDvt#)u1?^42kGRb^Dv+F9Cse zKU*w_&I)T(|87&_aq3zb-*Kl%v82GZ*?T%$xOo4%D2E^dMLlA!SWO~qu&`v5JfgwW1|I)M(4coOZY7Lhr!Y6uNnbm)9IRe}E)j zdsBY}F4&d1J{x`98r*ZoHO1iB4(ig1Mr27lvb~1Uo(m=0qOyb~6*oXpJ?^w{9!Q?u zvD=66FdSQoiHnFd*7`t=GOq*NlBB$$l*-Wi0`6JTKm5kaU$NX(Gz@XJ@HVO3zW%yO zt6}OM*zW1h#Q0h(kh{u2S=PEiM5Lc%n}BwX=72zYm#y08t=Hwk=BsA^v*(ND_K4!` zmSxKaO_hR{(hrHK52&PTl!QNMk8DgB|MBJwk6ivBD$DWhER|h28OeR$c3efY`$GnE zU=pHZP&~Dh=MOWuKv$*2UiTg6ZVd{^!;rzKqqI#8)xP;x`bj>CizyDxZJoTC5$%h* zx1^>X-8@8j_4ae8g`*Q5XQ6Q_EcPYyr% z!wGU0k3k2*yck2JR8mKMh1}J$x+m*a5od$Y1bKGp6#~#|x_ja?)F6RU})z(QenBfej`{aY6u>fT?hS27|{_A!&TJlvm+S zmgcErv@sHfD>%vGP+u!uKZ$k28QsVx>)6$zcpuV-1+%^^$MJprF+Wl~TxS5^G@TK< z2C+Swkm4Y=b+>DGyz{5f2qZybWK)PDNm7d&b>8t=ymU%n`bN?X5aW0YT-5|E9&2rGAgp`c9~!!+wKd+4HY|x7gXiXaM{JEPBJ7z5vW}-+)%g7E@?(f*T{U-=<(s2Z8+~?X z5I{IHP8ajY{X1Qk^3gvUsn5blvh8EAq@x<2?u$NdF zec&~^8Gud7d!)?fwjEk}_Zdy;hSlN%cm=>KBz*cez<0#vU7^!9_8x&Nc(HLfAG9GSfDq9*XtPDgo4lPt!68K!xBSuiw#|aob5c1_D!}Hd;z9grEq?&QP)HKvw-c0u&e-Qpw zt4_YUZqxkg5=hzuYMDnS4C;&)MF&aii1dbs-g-38)w%w3qhrt&U-f2U!Rs_Oh0qU~ z1bfy;W7%{E^qS_wFpSxCAt_$RYJh>bkb<1Oqm%*#M9+-(|1fsee@(by+or}w3`Vzf zBhua7-7VdYZZ;UO(cRtM9V(rofFL0#Ens{>q{Y3wpZ9%!fBuT=zOU;%&f{}~h5eMu zhe9J|A$5hpvO#v2K~+Hi5)>qd^W)~PVBnih4HOw{E%AKW3kk-@UyA$VxJ5Z<*X;rpJ1eO)m!out2@z8An z8hL`IAY-SNWDnZ~4taF9HS;8##LB||ROK6Y`PUn*FZkgJxP@Pv7$r8Gh0jcHo2ue6 zu=~4Z3QepG++-dQf=@L~wDWdDwH2A+)uce1UwG|pleGvnuL-N_A0B#N8%pepYP1xA zhwO^pGl)XMpGk9yPKehYf(z`BrBXuh8L5tRI11&pWgN{TB1 zDiL>U^)*)!Cm_n`d%NOr<*19P;C(&$nf${UOjWvZ?bI5&+8|9A4hAZOIy9Y|*Kp7R zDJAd5iOY&t~2^7b|E#+gkR`qv}Q zzZiDl8SK4(^9XwT@u6Sw6hJ^<;m+y1Ipeb*99l8Ro>uLvFr_M{oODD({xZ`t~c9)A)#1mASStV)$W z!-?teBr}vckRH>h(2Yy%R(L;oOISov=li=bY2NTV!`+q~CEyID@W(Ufo`?p!^>CEEVFtEkx&WMThk zZsfaaIw=Ku<(z##W&~v$bm@U_6a;u8-4(sU(Gl*8bb;2n*u29*{0ki>+qL`mgWFn_ zL_8f1_p|VKiqCsG-R7)+NVeDORM!todqhHlp+)bC+Qfp#$(=?KEE%tpO?L|1^Y^)dg9#W$vW>zA}e0fv|SEOtPswA zrvO~I;ziF{=_X4=Q5N>zuQ+ZFvV$AkG_yT6hn^*O`~Jymd1p6$*Z;GT@yVMP`Be3` z$H>!I@WWh?5Na$N_rCOgR2(&z6l~!_4fo^i{xgg=B_Z4>KOJ3{%GgLU6&@YR-3{W8 zSl^*QwQqW#uou4%Mj5*m&mVeh_AQ#57xYe*)qYcQ_>)eYuGFZn zH68zby9&VMC|TyJhn-L_bjqYmG$q+Cw8?aC&PWxg>w794HM#8r`%&qRE9X; zS>fRHxaVvoRgv`_ex<<9D4moV<E3q@l{DwR%eO+?P^F`dI$N zw{D7^`Mhuqd4t`C>2Kd!)eu!A8rpA*+Z%ZiyAwo@A4{P|RzQh&H_soTlD!(T6|v5V{4Lja580qSfgEY>6uJB*|-YF?EaK zat+HHQHtLxdlwyNaVCfa{re02`F%gZGy&(X<+paDOp4x`SL-+1N{Jr|OWUnk@b7y= zdO{i4i(F5|`HFdF<9c^rT3jYQM03qHzKy5;03yu`dt>jWb+p`z0?ui8_r&Z;kronNssX=6uZ?By%*a~S-Uw6H`LGG#!v}8BJ|^p@IzDyr@K#N`-{IF!K>X7H50VoMk!0Q zV%}fz*nkK-mTUgS=vxP{g-2pdeTdkOHe$3gE%*1NfCdT*V|I=)mkz^Avv-g$e-%2w6zF@$12ItsY(eFGgz7}+J};ycI=#+MsUHG4W)KX} zxwOeGX^8bV?WC7(dPd`CMrfxl+6M7F{jP0Nstb!FW> z4XyQ!Bcn}iaZw}v?L*@YUFac1U-Im9@?cB1DX>hcegi5WUU5c6 zY{eIj$i&Q}ld_`U-xj7;hrExZOjHY-EGLQp(q`;ioxUCSEi7X0R;s9B8Sr28<(Gw4 zubXUZHrm-F^!Isoq&*r8rL+I?)v7dheU#D11wnRujLPSGZYwH=dJD znj6W6giW1}O#OE_r2k;Xudtt(Dr`#p&pp#-=6$)?F}a%yz+Ww+Sn^)Ek*UsYP6vAaXu+Y^wWSww$Bw@uSiw)@5NXB zY#C&MR)tRNoOba$@>21{HPv-yDbf5A+dB-`e6S}U7LpUZC@}f_)!)hq=c%0QO%033 z@hWk;<>0R@LT%IrW>lH$Gp4SO#%so`M@nU8$q++h=uyLyjfhZrKku?zows$ERaE(3e1=C>7?qF2{}w)fVLh z^99R@EV9(MvTv^EGrqmq(lKk-IiOK!&QUDp4+TY{sF_lh8^+~=x{j9Mf~X&_)Xk;; zFjDI2hyxK#1)4ZwWPoi{})!ek~SFGLS?w43SUIfMnJZzg^* zN&eLWQ5JApPsm;@8P871FzmQ+qA0yvV&(4CH1zsSZkg(HMdtWYl2L|857XI`M;NkFS>9w zTer_I{zFFIPRz1Fs)S4a`mb#{_6}ce@Ujj&GL%y{`~`Zb7t-Yi^{%rLPMDX!Gcz{m_R`#jNEgi z0^1BkBoqf6EP#@`q>TOrpDcge1CH_19e-LQ%uAf4{l2+|-3o$i2C>rW(clymX-o_G z&!E)!V!piFNEZe1Qnqw3(uINgxbk=?WQ?qFy7yU7HAo-EQwnU7@lM-!Sm1t)aeAuF zUgjK(R2uqNYU)$G>1`!Co)rqZe%3A~6=tC};m=`aB+9Wl{;E;)ENZ^JDR&LJ@Wv%v zcDK7>T=HeqvzjAj2$bNt1u#ACe4H)l6v#jM(rc@Mj(3>lg~H}+;3*a{ujt(9-F7_~ z9SADt@ApU}aXAO|^I?kPjlEI6jY-6&pM31QW1MLakOBUfR%oCh&6w4UIjUsv+MXa# zNxLjRhC5?Vatna71a)hNzzV<%=I6H`$wek@w!H_m%-Pryj?P#`^u_CqBYi8G9w%56 zC6-=#s+L$Pj8U{f5}2*_@F`H9fHtVg($yka2z=cDea>9-49f;aUCj~FQ)bqSU(f`a#%6A4bE$E| z#k@R|codkl_FSsn`8#1;%VU~{>z86E33oa?OB4xQBanp9ok4EjeG*Wmtky)Eb2KI* zm7edviYsNMN(t3&MOEUk!g=f;tk#I9E6Igr;u&;`EcILVoDRZuECW6WX!7{N0NI5l)V)JS+BYOV>{X4h*IPcg>`YVCDqZzw*8)LE!g9DXW z`EGk3R2g^cj*@R!eV?a72p0I|*WR&55FA9Jb%>&kmN~%CCrzp$$l^rrYFOKBrcm%k z6!TOuwLJnshFj!Y&&Oh!VwLA!nUfywLua496Aqw3EB=rIg97SUOAn7*z zAbBzY0C}&4SN^x-S3kdlR^6wC*Ep#pPb$lF{SRL>oHL*EO{bhY5w^yHmXquP@!p1+ zXP;0HI@lc&j#`k2IMZ4qnPMUDB9BQrLt?B8UrO2ERauXOLpDG5eE55=F`VbHP{tKQ z@#8aw!$EsE{t+`vL=g5u5n?UQ;t6u>aOa0FhO`9Ny|cPvg`d)*O86ZMhy~;LaE7qB zDh@%&K+l+72WK}uY%2PB+jlw$8NCaXEb*SVlEdz2+k*hw)F?EHwM2Ty*<|cFVI+#F z$J&zawvT#X6fC7u3AQgpMO4^tO^tO;XmNuQDOjTwa?%W^|HB_ zF{xkZWu+1TI-wO=H&C`xP?gNkHC?(-@@xLsqkX!VQ0s|}HUPTsB+3CJ!p-q^^1xXb0sHX0ZMv@llpJK$X zN!0_!XVEDBOHl$&un(Y2!8F^#mA2T)fk%MM-ybIi2&dYB4UxsksBo0Sw6u?5HyT8g zkMxezWA26(zkLZ6uNY5ae+)wbvBi_zVbl*ySR(gr=t{^JnEEv4?oLGcm1NfA?H`kL zhX>^frt9wfC_vzUV1_?G1O=bV(R_tAQEyi)dMqej11}7IhCIz1wc)cnPe649>rV=J z^dArXN9*%aK2K1W__0IUb^&_YuEN4t4J6(XfOaDl6*HLY5B`>ctA37iDIUSNZu$mwF<6;@{Zj=(-~98D_I=pZ7n0j7urCb>K5=WbAFF8;wc z@Qs_An*fLzf>|&VK}u=31C3Xq=9sC6W7eXdiU*_n;kf2Zur44#;FfGE+hZcmuzu;) zm-DcGgMcp%?397nwkM`fkaI|00%ottF%+j-6l>895V!%*H;A_tRtoVa;#FW%apiJv zaBHg8OR*q*{Yla78`vfTP=OmSED@pK5lAr!MZ#kgO#&vr;jNmHnjf3S1=8$?5Ga}_ zVbv@4-2#0<$imCW(1K4{eZ98Kiu|SeMG{sgpE}03~)ZitF;Zp0)Lr<>PhxCsW z#bO!&fzOj{4G>GAL^kJvI4VSZyO=+xV8R`081X@SCwM0zL>aT@T^d9=)KU6N;aI{f zhe0IBP(^+Ru0MeU+ZsfqOSsV%Xtlg4j{2pHM-5-JJJI)VaiB&$^Q9D!y5g$}fH(!k z_V2`L)ERfA`nmL0EXHN8;w+Q_~os7jQQnut9l>ywa zh}-EvJ!asFIB*$B>OFo`dY$WyP{72kj$&K)P?}77;qK3>fc)sDs4Sq!qM`_a=mbM> z@ZGo;kMI}_6j!KKHksM<0zpSN*>!FP$4uVH5F##zEL-IS1jL!A3UGRY$K_5GatdS5 zOh#nnTUDkXIKzi_v*D7UTF$&LaNK!hV!uHase4hO1~B`RH@hN$Oj27=(&?WPKztNd zz6sv%Q3N|Avl|qBgQJUrBrQ_McE%J*(VR8lVc(;&TB;`<`Og=2m=Uefp2hsQ@ zV7HNPs#}d+2rLZE>^I1N%ZimhX7YDd?Y~*AdWXVwO_0hu@!QSPzjvj3cVw?l1EsV4 zqB5|FJr&>XSINlvuO;(LLB{J&pn%dOVuab%V)yM@C#&7JZ&y?;u}vis$V? z+ARsfPZGy4Mc3)5vPCUPi!>#ONoAd>4qv;%;T#}nA z{8psP9aS)c-1V>|A9W%}hk6wn19i>%or)Y}1z`Ofo?19TfCs6iu*^2JfzC84F2f6~ zPNZZ-YHvZxQXtqjZt8c2_v9r6pXZllgtv03Jl>UC#Q=t_fMiQNR=ZjK8D&bymT#kV z>xxP$;iVL~88Lm8Wd<2tAsH$wF$!YB^%+1TH==i^C0G*xEDO?M4MinSORMwX3MU3f zKXR~E^@({}OkGi#0Fu!G8KG6@;|SEpGZK~py}wtqgQwas5%$3gd$lUlG>E8pOkaf( zRpg=p&ub~R1=`5ga6`@;lWu{nTAG??U|cIwWoRyv2^eps4E1lQ)T+jF_doj7%%0Qm zgoG+WUPuXpF2g~@g9b%Kg@+a3-2kGsFrtFMXNDEcU|u73U`8f&he8fm-?E1t2dmSP zR2xb}ss+*^=z6x)ixj{>F!k+V0Esh%$e62iBM2BZi4sEUA3YU4Asrs~isa||#S)-z zTf}x5yf4@Kv^~N#LWzWVO+VZ!gF52ngDK%jRl;tHk`TW_K(z`>`b8E{R=axSx(Acp zO6F5!)`G?3d9Owg)(38ZcTJrAMqOa9U{y_Dm;e?f-7vcdjyObdc{HL;yB8qfK_cZX@xdxb{eN4_lagS--wAK-UY_| zeV5H&eKBd!co#`gvWW(y_0gcCeXc=;6i}g<9H)Ttqc`f0k&fG)ap}R0z>t#rtA80_ zX!4yIhKkutUV$zKVCN$< z?{q`1asT$K6OX>OI4(;GEIGIWMnx>5d)^2b(Y7^v5HQUSxT+C+YCJBn{H+5LWa_n} zz^T#!iOx(M!iNOU@G>(!R%Jf8Ix{Tg;evsZ@Bthl13)78)^*UxS~rU-?m4_)qJt@&atJj(%=iC3!k2RvT+8 zrlIiTMX^MAIwwM#%#RvD0VH>@J{zSK2?9f=RgFhw0Ml|Jp8|Azw7Pz#Lb&uY6qF~k z7J#GG8prYMbA+G)&T8f~MI5fp7{AT)Pu{D_HG+`Li>caMK$JtTv9;R}-+Ia<*fMSw zRsnAIdQU4(@C>{`;mlU%u+nir;PVvY!C18^ft=A`6E1FO^n9%GdN#5PNP0H~+^t7I z)=PF&9I6O~;~d2^u#FxI;k4kck}X}F5^s-Fg*gcnnNkBXPZ zODDa?Z3ej6k3ctY0S~$GSr`FT)V3}T(4&idAVX6o{+Uk(@SjZOV8{E7R2467kDEN> zRXG3QyS~9e-*q?*5(UtX`eIc{S@sCLP}PrYly11N4Gn0Kzw^98d=-%~yjK~TcK{O^ z^3(TjV0?QIJ6{3)ldh3zcrenC0l3ho@nSFI8p5|Q+;D-DD^zw$(GKoQ4rVT$elCP> znJ-)g>!YeSz>%fyZbs~ECOc!s}5qDC(#Sa@!WCK58;h*}1NRzLfaQyNb z^h)eF1HiI->rVqD!G7t<%)#L{_S`lUU*G0*2SRh@jq6wIqq=N%GtHVg!ydqlbvU{))*t?_cff~IF>yIDBR{E^BF*%w zLcv1Kc+28%bv4JUtgnewo{p$V|BNy9(H^(gFDWW%F^F`VOvueK_xNtUGakMte{)_T zY++bO;q0=?L`!6YvMPDWvVqdMe(Op3+dMHJn&T7fV z_$&2Sbe7a~#kMoKs)Ep^WILZtM)%hp4ohFDL@mwIS5;T#|VXsvWk`ii6 zsu4A?`s5my%F4!6q)A6_rfFqrLv8$UGNNU40#;cw)0owbkSrEY9Z!-kU44?7Y;3N3 zhsBLlj5ZJ**KI!Rbu`+KDx6N$F zUN2MH?mN7?d0WPa7PP@pQ``pzY18_RP3t4wlFrEPc@0`iom>{bB^8Du$kYP6>WS+{ z;B5DkViGAJVMT^G)U;x=F8nw{YBTuqMLB8Gl_8^G;EUHUMQiHLcUFG+pJ6sny@MlOTV7;)rj$((m_X9z@2i)A-JaX+pEt>KCJ?+LVBloEyJJ z8kg~l&Vhx&05_as0=$}(To+k;OU4&~63I=~fevfjOZKyxjkyH9pwv>r)$f}*VB zS_R8;zplA6!~THwUXGMMpV&?K@)9xfyIj4iR_VP2N4)YZrt;{MVscFbszERO4#)(H zuFP9~RsGb>W4hb9Z=vy|a<@f3^a`bi#alY-(?MuRY2zi1HJ%7Modb~0J;QJN=+hCA zn$QEjj~3k5GUht5R;^tYLM9gpA55__#MYz0cntE95Bv9#>7i zw|iYEsr%MYj=(z?%5>xXDa_+?IMMht*erFXCPfzTnn zb@s>{-P1^oNhq?Rz4NIj7RqD~_*x==?6IaPc=gF43Y8T5&f!QWj513<{D5ANxPkes z!!B5qTN|C-S)FB3r{L7o^>s|lfyboumR#;;dF#8KrS9M!pByP~n=OG#tYuKM4)Cbt zQL)=q#?NSF)v;kn>Ob!fj}*;2~Ju1(F^t|qnEvZ~xRtc4=S)Q>sp&I}D% zg~MAvXnjud#_{nosiD7DK0%-;%24|GdYRXgSOLCTzg0b&e|bAs$)z8YC20+?xz0Hc zQCiKas0#cPIf zl64{wX+mB|YtLbm#F&St$#1P5Gg20e-^Y^6hIH*ct8bJ*sxe%DCv4uYCno`3aI;n- zPn{i!Ek@Y9`LffblBNewJE3gUgD?42KGCZ7Faygaa1M+HiWOL#td19G0XNtSGUJGZQIir}$$U`*879&r z9`@hwFfuy~e`#JdF((mr(oOkjPzfh9N!i6rxmjhgZs6Er>;4|Zev+1?A>gbVklv4h zBzgjO3DjRzlL3NFuY{C~J@+q&({?m7Ru(WD@hXIR>uf5%-#ZTvD54fkni*JS zRMGC;!q;b!y&iYaWM6<~`Wu^@RrP7TtU^?orftuR5~_JCbM&H5(56x+o5&4IpXPRj z)n~g=`Lgq!(c5lrfn5m{T_9d9H~myH26;7?t_k`E|2c!$n<57CxuUBulF*6g#P7r2|ENBxtXZ zR5!)ii-K7lpa~co@J2$OuZqiTO(gmd3mH;0Wjww7MQ|y@GP1pK#>N^0CYxg}pc`Zp zh7%jx7fmfgm3@Iuua|$X3jP97G3%XgPRla6Tl0E|*KfQz_REZhDXJ)J{76cx{#N=OH45PzJ`9WeY5k9kF@{j@-4$0kOA3z}fzqA<*V zM~n^$3mcPO-Biqu`(j=jB>(m>IoWY=vm~7aEKi8nd*g_f915|y#E?vhzm6yY#oM9; zM$Mb+Y|RqV$&$U|HIXX0%Ir9v+v3D;RsB#e2AWutk#EQ^J?;OXMape<&Z;rMb&~}o ziNfz_41lfERIyMv*SiX^)c10>d{JsQ523WKRny+H!Ohn{RPA;_?Gkz(C`uVxowBuQ zV!fjIAln*SC0_ft{C+P^Qww0dJq2(0Hpjc6z%Bko8w& zVz`6^J?l?9Jcunn*(DI19m90(U}|QU@B-uevc}wq7MQqr(~Ah|VOD!9H5l(okh(y+ zevmyUKf)jm#gH*1v1=#&rrz=QyggiSAeB6A3x9eY^RF`s4TAsewpkjdA}=#;n^$7} z?^h{ku5$r6-BGKYx0&VY-o!>)wHtIRnda$yH4J*X{LErj8hJd zsE3~D0_J+2H9W|D7RHgh1OL-~tsRY{w<+BlX2T`+-;_=Cw8ZqS(k+nSBZC2rD|Y0& zj`4V>t?10LuVroBoC9F+XM1@LGkZfmB7t;;xzojYsM#PJD zF-9_mqg4bRC}nlNxIdjhEvlaL`R1JaM>)}#+s?Am zS2hPMou^css&RsAOE`Tjld`CsmuT5&Xka>qYDShW`nK1mb^Y1IkD0D4^Dc8$4HI}c zq5|u`dRB1(T6mR!4P}UZyegYN<$x*22D9C4jBEfTKX{E59(~vFDC?#wam&AugjmLC}x- zc*!b^45&S993UkCwuj^TNPwUf08b1Op=lHMTNarhVh;+NzvtxYHSo9&Y+o+sz>JrS zH|$Ud_J?zzEEG5D97C}JI|*g`GQ?Ei2(8H7X?p(2)H5$0hJlgVz=}AaDQCj=A*01t z0I>;JlyxW>I_bwCC@@6KZxR?OO+lfe&QS(Y&A03}qv0@!IQc#xN+3BNBNZl)9LS`V z&4jDG3wV|3=4xR%;%})IL*nBAEY;v@4oLaWP)R}wpfrm0i#oM(3@d8MFB=1xMHS4J z!HjgGD>Bs&x{4i5NP`REn!uCF6tPxrfo>W8Y?T;Gvmu2YE|AWU8Vc`U@pLgF&t720 zV%@P#>zORB1f_C zq1a&!c&W3N)P_N%X1_@6bobUkX?a z)QS41>_hSNK2W{5bG((=?9C3B)OE0r17TpbP_`hc&qksX9!Jo$b>Ibn-4zsHi@~>x z#kEOBcXgNWh0iFw4Gp9(kvFlfX;OpOq$ z3jDO`yr=FRlilp%u>b|Z9QP%{v&`r87r;JHkv1X^#*|emkZgPhEE{Jnewh>0NeP1l zb8#k2^brOwCA#fm4mH{eLJF6-u-%_jnsD5E36M?!JzfYuTnr>7So*y>X`>>2NrEQ! z4%kshZ(mT@(DN$E8C{0T$;cNlDDEtWL7-nUihnWV+Ek=wEhX-Fl&2XN6u}k#qsH@r z<2G?K+dxfb#DOG96<*|SSsA!;{;c3|ojPPn04C5dv2y-TX&Muxzz-KdC1B@(t3!q@ z=1|B{q|iWBvT+4ecEELoREgeK=T}tVH_83PtN{V=z7@zg!ZH4N)Sv=!BS-V^kDf?N zh^|$w#TK3*6ZrxnTUm=QC%<+pK3iu(0)waS^;#17c#6A~%MLq_+*Tb`o{+>`u~)c) zf0DQJJv%zMB23Dc7Xxp)kRAc3hT;2@RV0C&Fua@S&B7WErgKi6>Vq(GGVY^mjA~|H zVh}?s^P4<^{IVg&^JG3Mi1PdBdlwAZ4hYtsdt_J>tO;;-(bSQYW&?F09>=p1z)XPF z^%mtjKAAryLG`OO#V;G)7UjR_u#RKGl*tMbDQa;as!xDMP4Ki1h1Gs^XZCYw+VHHh zI>)m`8T@ZNm&)QP8UO!lm@NqNEckyVJg6s3^@+YrB5rDJYwth=!=g$RVd*g9mJwl? za0_C1XmV(H^li&vy0}#5hn!xrrKhi9Qh#rr{FCD{76RMb-QWNE1#$`_KRx*Q<^20s zjVh7&>$t6TRLjQ)G=`HVNTY)^*Q~`Eo^0F2u`hFDaUXy zI?=D5LlGlN*;ZLi7F0z+y5y^*huw0dCT-g^0w|m)8CeEGo(5gLDvj2uj)Ff~&y-bo z#vsmdB(u#hayzY!9^Mv9p%FWwmDm%UI>(PiU6+?x;wljI8^p=3>hxuUviE7l*5 z7fTKM^uBEbMbJ^%YzKrd4jQ9%U)f(&MUF(yfuzQN-I7Ip&|iEex7zQMO98`~H*&C& zV$i7Y#lPOIU;+|WeGYzDbu5kT0Vt}(Qva$kuwXbgH$qk3CCuu??H(*MiZx=fB;LN( zV9_uJlUB0nGmJZM(vMTqkw`zAO=RA(;hJ-=jH9SQr+cQ(9%|bwtROUy7=BuebV75* zDOMaxADA$vN%OL8lddu{U3eT7Sjc0Az(pR@G@lLDgs5mLqTG z>r_@^iNM|f^Dw{K^;R2LJj%FNX3@WyrRW^XMnIU_ywFb^14+n#rIoP#{Fn&!OLO*L zgf89l3~m7xxz>md?x>C-sIs@}1C-}Emy91;)c#NC1+!zM(1J1@a)k6*Fb*>gfjB?s z@A){tm&ho-nUP|e01xQ|Ca0x}SmvJj9|0=z74Fqc9)HKCm<)seUan-II5Y^WUAB^@ z5|{3Pj5=;Uy7cY2v6|1UUi=(q;vgJH;`chK~l+3OIaNIr3))JyWG zymv3tKbd_19fzU9zolH<7i{SeV55?fGlWn#keF4rVf!EMM(yO^JvfjrXDwk_BBf`~ z6=47dNV6$;KgQ^(7BTrVtqSL)2O%OBssc(ouo7X3#xn|E z2^5}@AY(jFT)?V=O!m@2j58Y{MJ5+Y{92LDMZ*raITR&o*I^KfG9VLVk%iNb0$Bb| z{LY&JF?Z;bC>boWqdVplOLWi>786}Iyq7WuhF#gY1J1v=JQ59QS+eqb*tppTQKlUG zz*t@!1B;1i8oLbqhh`-TyButwXIw7Kpp@raOigh^*B_=pwlpsO3DI&h; zMT%8y{!k}OliAm^*;>+&TqiZ92_iE|BR+Tj#{5M9DQ3|?Iqn?CM7*gkah;iANxs9l zLX~O7hd}^if{Pje-v_1zl%7V`i7kq~524&I++Qt`V(^rJs%2M}3e?L`kbG#?ZL6UI z*K3)FV=1@16y2g`W8QF|khs4rOB_(-w<;jP5&2C%KJTiv9@gvIM^?Mn!lC}cP){@T zPtnn&yL72mUkwXZO(J@UOAKZpQNV%4Wx_Q<*QqhlxxylFU!WlH#$YBJenF;T)g(%0 z*xzjSu_~c}Lq?QmRcZFBazBvE3{zS!Biy8jisFaO`rLYbbZz5+QXk>hl?er{ zjj3P4Nt-OOykMoCNAx_BBlv5b6ZpJHdr9M&BKK-(P7#5G5EBav^4=eObn42(D-)Yy)x5ntwzc;L zja5&_tleK4iTApLK!E@Gl@XV`p~%O4}F@c}WoBQGbT z_d4v^H6pBkSQWJGuJK1`Hf=qVHg0PO@^%MG@BR3+QP|zes(9nIUtooryIW(&*Dpz@ z^~{7!KqguASIksOOh^b#U&Ov0`O;YQahgN+ce*&?hlcCiCK<8cMVCpd_5ORzcYHW> zFs})OO)$v?#UzDalRgPm6im7F97X7)*iYp=11dHaG8^*{%tBw6I@LAtNi{d-hVUv?XM`C%%g)r zxmf$bnh4@Gx_OUvfGbFGv`FoVWyait3bbETSZt5(Qu6TsEsIRQH0}FJhCk zNl$&c%x4t&JqtM(-y6NK9%GZGlbSR0K>gb&B6;Ksm0dQau<}`QN)2ie)j;v~-M?Xf z_6w7W$WbLQmnoE5`Q%@Riw2JL2ovM=2)fluTUm4!Tz8(fu)T^EaoLC0c2?Qr(6liB zr(a~sG1K1{^a>_1uW&J_`)b+6i~MKQ=}w0aI%)l9!uAX*KCGtmDaoWgekT2IU|xI? zB(LJp1wR)4P|f$TY(_Aw#rHQ}`o_1l1}H6XHiq&%6g(&k|7CjApo-r5)$l;QS;WC7 zRw`$LhLiPu-F^4G5c|b{f1X_t69~jn$3m!CuDc-!z5OIsxsROds~KS&D>!KHYq>nk za!M>iA}Kd;^6nn^1#!DqV))Am&Vpg2Q{NYw&pR709DClly-?G(`mCjXf15e#>S)la z9qk&OY)mAzNgSh3+ax&Y&}((Y5RH1gR^(0EMotKo+`jz~edItC_V#i9_K!C0Vto4Z z%tbZlR`F*fURA`)3A|ss^EN*CO}dE%F|*^k_yB#2IK5(f990!T!2&o-SA@bbS{0(! zIS?yq7l#vbXKV9NScp{|&@hSJgYCq(|0a-T%GS%l=Qh{T*<2-JQokg`{*Nl$l+q>B z6m8FW7zG=R8mggSJBPf^!zUaF(lQSXnu=yNw`QF6_^ukX$!0-%?T4VUQ!j`NF!d~h z04;GiGkdkKO}XyRJ>}hO;y%SP_aQ!!gtr8%Fzu_VUE=S2#F})nixGz-ew&gJ=oSkGba$nb0NFV3%(}QB6cUq`QWo=7yMq(&auY>D&5|n=*spysHxt}N zL6d&~8@G7k`=YXS@vQ4f7Y+WGRPhG|D8`WF?@PN6nmzY$MO##a~w zGBn1dsoPN&STS41GMGm4sasQ?*hbCdBp_n`9;f9T#fw_R`Iw}r)u7$Xrz7)j^yNT> zNf>#%YMf5-QU7pQfC2;~5_n@6K(gSM4|!?dMLjk8LI^%(YOI;;qhc9u@q$rlp%yQZ zkTztz`4lTNxp`e zEYBs-&Mh0lnUF~X_vB1a%ThG1OJ68Z!FLXGYAl1Y8K=_tGK%>k<9vxB%<^F%mQHDE zHHQuwIrZvvFH1Aqu=Gnn_7nvo+%>(KQX@|^!&5x?Q-~7wy}loLprnQI%S;LSe$Z=W zbFGkkgHz#ZBM?vkfgc_$jRN`NB&?VRrx;XN&p|I}62#}w0b`9-7Jc*|5Fow`IUV=- zSPv=2dmz*RcsEL`_9xLt#hoZTH@*ihnXeyRSM#149@&#;sg=C~sx?fok5f@?5g-9; zYTv@`eu;xL^5u&J5R2|?4h?RyRL10P%1%`7ks|inW_eMEFYPQX@26;k=AkdIDw+ih z;+GUh*2~u}jg=t)iuwBJIDOJ^jp(K*T~ASNn$)j_aM@6s0M7<~4g2Jb;>B;;w5*s6 z=FaElvNou)g-{g-bzc-lv*%2SJ)SzAhcaL;y*O0K?bH(q4F~##$Ny2oIW7I|!O%cn z{C-QWsxamEU2Vx3%7@KN^j=%Fr&*KM#?9i1|3oJ;Q-*s1E0H<%1*)oS2BmSMsqFnp zVJ5~no7!1CCEZOe=Y^IcC)%@N2&u*ba@rQm%|sVTMOIw15^+l)M*hPMF!PUtwucn- z5-7h*AheZ0j-UAa7Bv+V)>~u)97qs4=`87Y%=57PT2$ulUQ2$DQE~2AteyRY@Vua8?&(vmb^3C_Rpv>)r~%r8u+ zQFjcZO>oHVd~Vh2#ML9(7zNmBr{T4^x(5O~npim9SZkhSWhvN$&3a-g+dSd&&GpJP z&A9*awb-A>?U? zskG01tRA#@$;R2eHWBRCO?TLN{RJ=_0)l3Cq9+7e4hu ziOzCbC`wiF8P^m6OCroP!0H5eH`d-EP|b)osFdIH`IPOt{vGk5*9)M6MtlV{4;H{%J0O(`Ks$6i~(Fsd{OTN2_=l4w_(lIx!l1? z24U=xZ3{!`lYqQw&|7(`dRKRJ<3U)MQ;1*ViC3$XI9``F&3yBIVi?u@TVi$PGV{cV zS(u8F@v%qCaG2^sqWxU%(=mB4J7~y)D^ylS0^B$rHq;IL6A2=Z%B>wAlC0#(vkw}I z@=olgZE0Dgq7H?7o!(>~x#e^VkDCqqRIkIVngjMd3UN^3JN?~@A;Wj%6GP4Qu~L&B zNEIoWX!0qff=H)qkA2c$;|kBDuQ^=Z#@?F17j|9Tl9wfOf>8e6YRBt-#N&s6;3R6N z>CX(cCgWb?s6W;x9#8ko%=W+CK#9H!yQa3s4OKk1oPf$?6Cf3#Mpb@lb{cppQM)B| zJnwerYr~tPSk)4b)X*+BR$M9cvwNqBsz$SL?eVP^@FXuNGbBh?QkuyGG&l)us>@w= zFf$cN;o@$c-AK%Bd~5rVB8-<*pw)_|w!~*Hvf#+snT1Np$hi8>Gl+K$S9DIHEM;JU5f!SV;uIkuemXrgT_~B*WXS4hP3nQ}{Of(M2nK zNz1_JGhw`4aL>vI`iU&B525FFqyBjMQ@|rEN&e&7ksMWv(=vyqe%rA5d^d#SW_KoJ z1T!dadhjg;ZIc6o0SQX^K*Ph(L(-?C`|VVeKw~FW`0yfMPbOX=NU~6pVM(jGtB`wE zSjum_VoKmOx}nx1wEj*nsLx96R=2ysR%a%yPN0}r7DT5GYWvJtcV8Biob6KZiI?yl z&^8L!tK{pacGIR&EX}A-gmqUX8+Ey_Hp4!50W5kM+!`7N=&1v4u3K2wKdU#Q_>x-Q z;Z5&`t=L92A9>iX-OQeaS&Hv;mq#rs)34BLH(70F2!75a`e}=F8Tq~H`vMqmd8K#N z-!Ll{%Ow6qy3WbN30r=3=}w~6?RmCYV1-1e{Zj_>Pptyc*~c5($=sxOZl7Z%QI#Gu zu_i$l%u=zhcPw^WLvm&DI$WZQryas|lG{Q>z3zct3P3>fAjm7jGbiAVw@IvJQDV>xI--^^8Pwn3aRn6q06bPac30o|khuX=JM2~5Yc)Ba( z%ak;c)SHHXah)%pd?RY7$&WyQ1GbP^w_j_Qvx^xbCmXA9>@lK|OHH+iHc@+ctIej_ z{pXW7{@`IYyj9Biur+C#!w{3xj+|qWp8so2u&JuYx8a>n7~6>W?{B)2`cxTSll5S?x*-w7+n}41!FdFHhJYa@p%(DNE%O6fnOgOBJGj= zjxn~6Ka(|e`O&_Tdi>+TGAY?EVHknl0KtlJ|C!=fPLZ5F{j-5Q^pl4_8$pM=L3`qF z?Rq)>)H~nN^_%{u9v#C89h!}mj>gqOtv?R;%O-3-zY(@B zR=SAI!>G!i%)!&(_Kwl{Aob~4yPm*YmcgjCN$>vd8=2|Pug@e3>Q;YDsUHl8x_0H| zy+Kt!c)l|4z#~ z@5P^?np*Lv0mftr@90GAPNE6b4${AHSiPngLuk&eu={QS%0GHc+G+-U2k0M-rxlBP zeivu49RIa7mCU6+4G){y5_$|edujwX%o`~!bTUgyXsCI8H#c%dbe+D@phwLmkV?|| zrBSo=Tft%AHo3abx8djQVc%_KT-U|lt7#n2=%zpP#uJmNWf11@$n@#y{!$~r8t1p=g%g@rV&uKP~(((`RD^lQ@rn`kRs(@K=YpNKSyx4;&4QcCxbmh$Bx z5xUGMPGaz*sjKaCv-fTqBqiWhmm$?rBNCRO3m z>P!OO+AJX$S*-_3YN2a1D30nam8MGxCNsrOrUk`U^(;n(C4-n3sGex-TjD8FFAxE5 z0d6TmMS7&R#^GJaq7YWmbI=ahVy2(r>e^4mPF~EZXA-wV=z)uF6eCG6jwI6KYgUtP zPy)YXqH)(!-UUBS>G+Fo{$2kh_i=*}t-1pdwUY+ztVy5#@E^8%Myn6vM}Fl5RJWE( zu}B)I7@nU;kXu@cpt=nb+-TgvF>G|n>@~7?YHD1x5J^1)G06hAyt3T~yE-dXzMVjc zLPl0{1lN7Kbsl(Dr3Wg%3iX*%qxf&>%Oe(cne)qE>JJ7xY&2Qo*@wrl&m82G*G}XY zg}7hlh^>bGS{&e0{{Fd+I>l?xz|f^m5sK!K0ke*5JR|#s{uS5i2R=cIDq()N$Ws6N z9n&fr>+1hrS9*e7%XM}EIm0e@WGkDu=* zBvG%*ihIj`oVs(WvO;~2ba6!YWy!@T$_X`Phe4c7Lx3DaEK$Q81cg9bJKi2MRSr-6 z45q~&GLfj?p_$5U_qvshYB)|lJW%`_41UB$WX3*IP9;Fpr=&KEruQM33+5LM>@}hZ zgmA{s&@jn62*BF!(YA;Vb@zx73I02IKV!nz%=NxCTHv1AV9p(V3ErZFR&J1_9|KJa zen~%70~3AW2e5f;k|%B07Vqt;zvkJI?_19E@A-|vnI%YaA8rXegoC*Ie`S)Xagi)t zs!B4^W}z?Na+rT)w%&nS=Kqb0Fu=w==}EHRFTfjX{La=p_Ic4pH-k=7$*5lz%;_10 zJmBgX2ke~C)5?zLNB3&a52YnX$62VE@4itzoDmrC$SXZKN0U9-r@5Wxs+N99s4Si4 zfK*wphJ+uZXInmZAucv=QBbVhnwU1vKeWpPAv!+KeN!q50PfjsIgg+iS zpL+6Z^C*K~OI9r(tCG1~$5V%%5i>yWOtZL&2lgiQc=|Yy@k@@g3{G}}N*%&0nI)^{ zAAnzKM^KSVG?{^@k;lfN#hdH+gnPd#LK{@*p>-C&{R#QRWN!!M-OK+Y+KbPX9bsd? zEhq1fa=Q1#vr(2@aOllRt`sFy*#h`y0o-bgmLD8x_2FN2j?|{X3|WQU{L(XjhvzS4 z`)CqAyu7+)LLr>H!EW#;mlj3d@^lkYd>4B$**iE;FJJXyC62IB><-(%t(pe3xq8{k1{Mb z2aiEq{~=tTZUG)fT>J3%gVa6lr%VB_7to^rrWwo?mI*2b^K@Vj!oDBFsMv|AWR-E^ zWLlhp*Y(uO+l|Jx+vQF@mWlM=j@aE!bGd8@`x+TUlWxVd3_$-J0m3K4Rxv(nvPK}? z6LNh+58zwayMW=|WWn6r&}a60GHH+}!+}=h2}1o{DYln(&hs*Riy$s4iKOALZtD`; zmTq)~ewps*NU-K&LF|u}T@_Ud>Ra9wFn-37kir)xyc5dZ4pzioCN@q0MNpmw|%B|U4#Q0x(}$*4u) z5MFVWDK8a&|FI%DMMrgC5LF7>@i76N84rx(gfu9?@0T`z(Pq4m@B^DD3Msy;cM3iu zVCWC>QqS1!mRas|d&NDP8wbwpu}?=N%(|-alzZhPFNn|oB;C_`)yahmryB50+&>_@ zr^>bUF;8Dmc<0RSRgkf>ALxu!dZS1w@=7|08 z#h(_N82xIYOaGp-gm#6Nf735+el#~Dj?spZ;!wihjoPE=jIt>4YDbWdk)klEKVmC- z2%!I5$$RDrGW-qlA})xuN}Pxt8ogr?X=o%^vjGg64UCxuVAW_-Dr3mw=>{}p2vlQ@ z_f6>M2tHd_zB5CNdYCJ9>W-Qp;#<5UDvXw=o-*>oc|o$q^yzu3Aw8<5d!}-;I`NE{pLa2dq_Tl52)=J- zgh0;SrHUS;*TK?yHPC3IMC@Qfw=udih`47KWXq&iilK~~j6#T^?8m~69Z*^xNGnma z`iRouxpJEBa@vLKMj>>rFNaFg{j+IRc4$74L_E!j@Ush^ad) zHN>&xK)(zoPcj}Ov-te5xLxbxR*besWPG+Ol0Y6W13IGjUp{7?W8xQEVR?$7e0ND8 zx&e>z1NhXcIiCh$H~i)5vLEL@n>)|O$bvLyNq6%I?4VgcX>(Bo7?d9|HM4xQhepU0 zi=t5;*hNQ^mXr>|?HC5aO?tUrnOO{G@IxX!dvc!<5?W;P#9e@e{U{iZfhre3xeQ`8 zi0FTz9@tK;7-(Fa07${pjN%G7d`W0=oUzw~eUk?*;3xJH&D1(&cyJ69vMfa6o)<&m zNTb_=emT$@FeTA4BNY{YfJp*(0D}D_(ldZ`>a>1!Pz47v;b5@E6?kyUppC&cj3$4? zlk5p|+Hz~*j2yY4QRLVXmVzD#gpiwwrN7DX|Cw154auvSjr_(W|EJ1ILar3KVKE*C zYLT|gKv5p8VAz@E=}pKT;od!`IbavUSK59x8~G>#qFq&5pL||67Oc2M-se2rL@RD& zzckkAiCdg>i$mGOaY6nl>6QSk%iSgXlA$@CW{n@`!K_9dhI{6UZ#N?JsKt|wk|q&I zr27#NT5D9vkZZLY5Fdk2J#E^dK=M3jjz1LZm#%oN?@b>ams{H6kfs%iB){_c_L|HpBY8g^AH}tjEXjd@ z$E0NUlP5L^hrc?V_s0Dd0JRF@610^m86|g;%NhX?UY^|3ud!*N@hvGS7bfkwfT%Z))Hg$j zn#q&iQFx66TjN)bMPz4%f)=ju-Ht4wLCx((M&+vn#_~9Bw~#u^+vu6_2Lv{rpRRz$ z85QkDsV#${>Rc7`m&#nG71&mStvJeRdO_eueSabyNjTQSDuZ~1zz`Do_41)tIdS<0-U5J|_?DK&U{#iNSDr!yYF<8^y%9DGooH2E4M*?lblaZ&r>ZaZ?AxfmI zOv;z9BzS0K>n}+?bHM=2D7Z0^44!@E*3pKB5-vLs)J1@kXf%4vdLxQ#>3;# zWSckirPel8Dx3%|4fF$4UOimCeu;#>asU0gorVZ+B58zGVl5h4_A4|S>vVw+XNA7< zPd2v+r{FtoK+pDqB}op( zoS-7+xX~cR)}ztH7U%P`&9XPXt_4cGsjKnGVPY9#)3iZm&thbd()=23w#sc3cTAk3 zz`_-;`xiy|sB!#}maGs?HR`x;Nnwh@jObduN#T@O8q&$>E#rGkS_lp-dqQ6KHW@4l zZicx1YnUd^9V_W`mKmIsj}M*5m|RV2eVY%}dBunS#yxCnbJ%X|U##kx0UY0Mp>PMB zNC?R}#5LQ#6C|a*OxEr{m@b`u`zMjo%u+I>j_HB-dpxO5p%n4tUoGVgB8buZKapUZ zw*`@@g__TQCY?Ncs9E)Fwm(JP6vAe{uWmv9TSJ`;qhw|pn@(hl@V8oYv$RdBgPzj! zFj9u8)bL_eVO2I6(GiXT{bW^oYn51mfv2u6)CSidI$a0(PJwWTx$%T46isTP5801M zX?X|dxYn8)(RcFt8f`%z@RGp)E=l_o+}vzETt{6EgTb)B^WR8lVHqFL07s3#x^TKF z2VpZQPZ0Eq)q#u%+ycwgP`G;t8ZI0!S%lN*{1YbcxlOuLyXc80~K1$z(zqWd@(2(hD zi&edc{9eD!N!+`;I-J)sZ$o$KF|SKT(GDM}RJ0_YYDl zs>}-*=~3l&1{F0Gr+nNFr$e(57USn1m%Z>#F)xN- z#gAYkP0S;@5=M|)gIH8=%n5Fv2W&;Z9~j=>eyz9{tL{zb)!jZz|Il$(QW`f0f)5UF zRo-p-#C^j4>^2_Bs=Wo(4;!{}CY-GNAXomDv-=f^qL*<12A1f8eaXsP$f~{_yKg__ z(WDiBy0gQpKoCQ7I!~{esdZEdnD*6}a_r_$SN3Q8hPIa(NhtRnrtxWKs+I8B)#nY} zAnkmuTJ#7sz5W{v-(pr_`A7Vam(OC4fd&D8e)nhh0``g_j&(){ml1QYFDwjKAr^DY zt*>DmiWj6DoF4lA);?x zI!5dWFY9EI`|tc0FJz+WHH-~ZKPyT%aGE%etTX-uDJTO05BdH4VtZS!u`kG!aL3O% zBgW^Lbg6$fCExOOz2VE6<-1=ELzCFv+ylFbh`yEswfj&^vi+$jI7Im=YA~xmA6u!N z6-gbGz%(oU+dg!9Vb6c@Go*-kB1XCx@$-EQ#Y0{4bI#pIEh6b_G8{-)(HQ4PN&5Eh zY?e-kIHLdYTq?z((3r%eu)z2Z# z`l~C81~6NdeYFjn`(<7ANo}Qf696#@3%gWy!y2u)p*Ub>q9B*hyhu>{&9Sw`u0>gL z@$F75d62&;)Ho`h&5NnIL{78UM_*FlK)DS*O*37r-R{;I8E2lRMxW#?Vt(={Sco}u zx7vD6a$IFcr>sehjj}Fw8$;R7>V#WepYA;BkXhrrZnO~FuSu5^V@ybBuAK}jp-N>t z^JA>9#+Woa+ngFcc#;~R1)uz?Owod&6G|H$d*7H|@AdSr7PB=zmoBqjP$+Z1uWv{` z?i=P~_M;bPIJX@acML=#dSltYfaQ2=t;e5Q&Zzgh>1^8Lt}&h&M|Z!Z9bwmw6Zo^l zMjhAF1G%6w<``CXk8|5&4z`%^ori|eg+R3zHx4qu?8or#DBCLYDNv^?rlWYP@mBLh zU{XWtY}fwjB(2#8qhvLs&qxX#XOyvjfyO)>XSS0V(EenHRpaz8(2N@f%pAsm}^X8EDfbUNR*)7mRLe~-c(!eIIN6M5}IH%#9RTwpUwJS*?(g;~{>-j59K!x1K*?(iCp ztD8A_dJdDOnbMY@(a4|sUrl+sfDa91pK#u9aD6Sj{k27cYR=HWRi)z#;#RlmgRLRS zbSEq7r)6+qr0SwOn_t)v7e}5K?@<Ndh*S9F>QzgU15ssgKPnvA=fg~ zYV-ZFw3v-ep&@>*YIUVTlNyg#Rc4DVIX~cXdc{8sdaL`;YW+(FeA=3V#wVe9CvyN& zM^(EG{HrB3qjvOx%Y!4cXOYH$0!9&rzT&<9l2kBUFywsf8zzYrb-F5*c+{fi6v#Nc zvNoJTy&A#xjlA%CHLqmkLu3K>e_V;ykDkI<3Aol$*mtb$+&>CQsoe&ta`8TL5S%!R zu%~7@8NXOf{<*`TZ100jttoxS{s@A1g(;L4KFje`QFPta(ANmf*{0WWuV-6feX)~W z^+%A?tD*U?q%9`7VIb(A{deuzq=3DFTGp8Ev8fxI7qHjAyv^kx6%5mq9uN~m%G>TQ z7?p9N3Yqtd67El*ToC51OuknMWBt4dC4U6rO|eMic2Td(`oqYdI4O1HmbNi=^Ea2C zo6I%5Y_@PTo~vbM&_$_c`|Za?9uPD4e>D4!xIZ`kWxrNN*)dEhm+^wP+Vs;;*B@ zo6hmzjM{#&hn!R+Dohoyh2gm{pKy)_3xYF_{sErpSl=AIq$flQ0t?&97!VON^JId& zA5cG#jvQb^Iz%2uY|}XW!0P}d{a5VH!n4K1tKiQaRBS{;z~pjB040PNWI8K*-{V^| z=54mp3v52f$XKrwErzzq%3pC-p7{6e9uSEb|H|eEG6UECrpH4$7r*^=mwF{C2Ad?x zFz3usIH^*HM$SzEg9w$B*FExm==3B969(J;3?9!(eBe45DwyR-aeHgb)Zn6BcFkPn z(-xq~N9#}I*F{Z*7N`NZc1=8Y@Ur@i$LL{s{`1}(Ns^4;W_-9umbJP6dbq`Zz zhumfoQ^e6j8Y$g!fOw(G5ldONmW$UOE7o@DUOFdB3agIFOY1{9QnHnCGE*9>Fq}tl z?u^WbAGEBtKz~;Ctf;Bo22Pu#+xNZPv}8H_cb$*hKR(kY>p?S5+1{qBlzR*R_fnS$ z9d2M(96jzD}vBNhLFwCHm zgSL!Sq%6e^shU$B;`P1q#`xHMkB(YL^o(EsP%!6VKpd1z*0mfK&)(xl zaBr5^gJ@wR57Ibpt$rMS=|pF<2$rcCo{C) zZ>^RAfAgqg%FDyI&OJ$Yf!^WpmspwQA8U2LO_vzIsi&CyVw2ra0d|*#`sMt^#_xVc zt%c>7)q4ZBo0Ezf^WsA{4-z>-hp2$dS=tS^5sh?GYT+H2;$b(1URY(Ib=yEuy$ch$ zFUKLl)5YIC)|zBWcetZ@ki;v+Zfp%d485Mz!MgTjH&Tj40`fGI!$|>i>dB((#-vL4 z-XWD~2Qq6KxzAhvQS{CDuzRi!$yh#9hHc~C%#RN)b!GUy*KC~g-9P5HS_#o2e+#C9 zi`cViPw8@9G*Ap_-19nwEG{C~_v4upaP3VWr6@RzzR;%zNJ^$pNYb%ee*8Qfz0~>o zpMIv3u4g^xr)*+)!RH9hLA?#X7yeP%UGwctpT2p#OUudDlAL+Q9=lIAG$v;nlM%~y zDhZlW>DP$H!=-vefyx`30CWd6w}?CDc1G@Mc6~wQ8KWKE;r3kn&7^86&=`^T5oC)* z^yxF+C)L-Q3$F2Kh=otQaK3sUcUxECj&aAK6{7n6E{D437PB7=TMDgFdW-aEmbsa( zO>v&;rLkuaD^equx)c@S=6UUl24l&+a3eBfqqOfE)sE;oEb2gOd+8Qg9Jvj{6i*&q zJ{5j1)?>Uu`4G`;Ceb_0r3<_&wys+bApdqRKs?@U^@@262Z-U1blSL|09@Brk|vR{ z;=b+IBnx?Ck}4`-i~qCw-((884)y-#qxr|HhPCyYiH))5>LN)CR}p=gqu!%{Si*77 zm(Si3yl7xNnv1S_59U~@)&G*Lc1!p-GD{x2EQ*HgI5c0x8uF`aXKia}PT2n(a=6L` z6>kw;PC(R;h1~84$2hhIN2-^VoGO*EM>5v!0UW*DJja8&$$n1Mp*%QuWJDG~euMPA z1R)b=V7FP=VyB-yw_#+tF&~D9RyKN2#sBju@VB|PNIQF80^)R@9V5+one#&7&SH@P zc(%thP7n9!(i=Q}@lRS>V1b@~K`Ywd-pG>c3yh>gT9l3-bRk1HU+qU{?x{s2jDxx- z2Ft)DQQMs4^hTtJ9C1%*Y-1Jj{-)|DF8MYzwK1t$9D!ThEKz6=q`1r1@&xbfW?f=>9D&ZqK>hs?Nlt+BMnuy# zk%%a<9FFu68stGkY#?j-c!#l{Q)z|M=4dm?atqUldhke=aI2i4c-*rT0|NVVnFFo2 zDq?ZvkIzD^hsWY$HsWV2x#UGP^xZ9XX^H6uJ(FgMm1oh(2nxbrgM%)*kpzx0GwZwQ zwNoZHA&0bm%masU6y*nb@J4_zA4o-%%xM;hlnh_Z<+7rO5Xmx2(1enP@faK+cIV`a z_lOFQ2}EXzk3+Sxj$McIfie){a~^II(&sPZfKB`$+=omGPSmbHfLy>z21)U?ob1s? z0M3HUc7snQ;MS?Oh8rm9b}|b9LX%@^vZaVfaP(O*4uCiOAn+8CU_OO>#uHvGw-;II zyEG1J4!MIWxl&>zKP_{TaimmQsW*OX7Yha0rXF5E$OfXCpKd`u?52LVV5iK*Cl-gJ)yW zffA#RGqMr5NrAjX(fr;`Ablv)I9#5(mFSaId8$Mda<(XihLOV4{(1`HgCo6JqQ3hJ zj*}G&)~nDX2nq5*=Nd$t9H7U1B>m%Q7DQZ54#iKC)YJ!oC`e(_oiUS!SVCSDjv(#0 zsI0Gmuq4S(5&*3ZtK3#WeB4|eD~dFJ)m97D0;`Ii8-&LP)p!^QfW_(UZ_D6%)1~Da zL^!2$j*75RpyoEvpQe@_mFvwVx=>fUu@m3#J?i-4Y*x@~{^mx2u|s9c>@1`@xVKI@2HYdSik z>LJ0<;>CIa3p%DkwuvOP6^!z$a@Bv+*j8&w|6~0;g0cm9R1sNY)-ge3VZ9}?CzATvB0k@Uee0*5FyI>eISer~!e{on;Jf5Mlfswv$NxG)+%SeJV z{2#2D{-I+3Yt78I53?^QEyI=LD=_dF>dLzMhQ>shnx;EzW=BkQnV3v1s;@PsB}QUU zrbQy|RqcSxc#LZ2f4Sl@A7<}9m5FjObotf^H1zQs^z<~y-MyXtqeCRkUOcoyD&aKV z_t$cQukiKF?Lw^;3$YQqViXa%pzWo=q~sm9$#$tq^5C@{t%R4JOHvUJ$4%>c_~KW? zbfu_PZH1nfRk{k)b`J$P0~rLdQh|c=Sfl-#97Uk^Z>Ej|DFtB!%NTri5*M90OA#RW z)g_(NBG=w)F0gLNQjFWQkwxS=`o_PSr_0$8k|wt4WnK_SHGv-0sx zM#Y~xPU|wyPlCKs*bl_8^f)r>bFcfNDK-4$y5rxLwt*6yF+{V#L7ZH!S7ZUKvQyhg zKun~xWGaoMtHWl_h*_fhr%sov?gx_@i@oiPs58#WMw<5N_~I&jm`4Z)3rxZ)J@`-e zg|;Z2CjR94&px%yOE9k9r5Pka7`PQP?7@vJI zTcVqNqd0v29(5EA*uydbY4mHA{eoGgoKuZ|QYVJ#+HDQZv#3UrDDYw2EE$EHOMi;e zgBf!0%|W*KYjL0on^jQWmiEfOSWON9ze@RS`rPUH_KSO<#LejV0}fEKaVnBJ+c3O} z5-VD7%muxNSlKmMEv_@wv8`vOH+jzaVUs*jODnm+|8>}ML4(+bYKU~&iF>JB0dhZv z#VyN&BTi$OIxe1(l&+HLgO+wyjM2(8$tU&I#k}V~G~=pKmf;v!!^U2naaWx+XHZQ3 zwI)4gQgHIQR^ta0NlvqMw(7vRHhW!DC4FOyxYR0y@;o^>vlh7>TavAOG>-drC^$j>wN-4)51}$K0jaV5NX<>6 z3?%1UsX3XU1aL4^f1PXm9TH8`2EFU<#}6?HFZcbPQ}m?ezXKuXBsjcS2ge|^5Z_L2 zF{o23#L8Xp&dcumG?6@EF#K#q9cq?JwO$O-LKLuuov+7Lj!v+L&}GR)*PUKTe?lZX zX>jl!`*)MYY1M$qojULc$iu&40J7Mc{vtBWeIf!;{HzycHL}=PZfpgdbtR~pKOVPV z(QS~l8RGys=aYZ(xIoG4b`JTaxy7pn5^2jiMdJzWh}+S$M_6%w5N(u79`xVnPf8nN(KD!nl?WXLGCC| z+<)&)rVM!b^zVxIi@1$pLXr1w`D*y1w3BpB%B;mhcsY4p20soK3x;wK>V4kG0`hA`ip10Y28+crpE?=`jo>)y zGe%f30vIE15-r|Kv`nb7s&zRBhY4~>+~*fPw=ClR79^X4iZjgEhvq@6%!n3@FivJ2 zAQ(Us&r~gzWID28>Bm2!#P3f7b8z}}ou4f|??6b>U*VJ?i;=;h^mVSBAKcPtUH2RF zBXO)hrB4)IAnkHq_#K3mN0Gl*tcUzG}!X)hUEOXe; z5-$o&J#_wQn?`;9UX4c7=$KA_P?MxDBd4r?!bNKu{}Au5WqXg)AQYq>ZAudb9aFI#{HHT+hLR;& zt5Bys(@~VeU>9q7> zd+Gq+-udFN$Q_|;&su3)VvS)5$Iv8iRghC>#WCgl$CIy8slaC}U$I3Qt3JkRxiX#9 z&wQUYCHKI6iDgBb-k?XaM8G1X-b!N>TB)6IC^HbI`aqC}M{Ayj@u*%c9jsp8Me3*< z4Foelh^mXf3mPq08(oT9G~8wPhEWk;uBO||TyvWZW5CubBs3XuE_le0g2i_olZsW+ z>0A6|I4Bcu%%z(Rgl+AJ}ISi?CX9^-5ImK#D%5OjLXI4or$NA>mRb*r!Suk^2qtkJWF$X+K^h+rbzskuE{7g>#hCo z);GFZzr?Mzl^EkGMDZvt&G^)jlINHpdG7$O`=h0o(s}G&wusWzg>`Iv6s7(zGfg7i z71w%*yx{vZ9j2D3PyWo4PfnhnWNufk<0<6nEKwvnpg1=5fZMMN`N2h7Cc*sW`$7&# zI*Z-}x1P^5H&(Q~X+;mzMY$Iuf7*|9rRI@T%Af~+XlxlncItom=ObXjkAr3Z6F`BDC-SM&vSae5RJrs5N_6f8u9V zf4E5({X1L2KC7_89{XBXdj*bLQ7?th<%Z>>!$r;m;rros8s1Ja;gPDK=vM8mF^48~ zH^_qKxO8Y#4vh66Byr1`gGW1Z$Jls+UzHbh+phEr{(<-o#o9&P;3ho?$V;O&Z}@ zJ-*@92)fR&uPCT)t^E}cX*|iF!E2*9?%m>Q!DcBl$%tGyi0G)jwX@N(RGp2)9}^R3 zxtH8esi`p&VlX8cGvV$sEC<9&cBlAy#K~deo@p3=M1#WNn9)7`mE|NiX^gaa(5vbs zvxAV{ZtIx+*kd#hj=NhsA}_Z{xm8PVT6`8#6E@8d9^~dch2F=NF?paGU0X>nAxis?7kr8^t73fKQ0+vjk%b$?I0U0+ zm=fLjtz<9=zYAc(8PHJGF*Yw?BgnH|2I;f{Z)WhxlD1Izs>!kxvR&!VfKAo>O6Kw# z$h#ZIv6wFIY81Gi3G{&7*5-+HdBqh(37Vq@CH$3^Z)0P3G&?-7ddn~bEMVN6)Sf_zqtM_VT{D%WicrS5Bmye9LEfn5E8d`I^Xm8E30a~+===l=rbvvY*1&#tTqT1{2Jr3*5E=^l zz@e1M@1e~7;Dr%TRxG0aOntt`-%l;|TTN=Jv;~!bXJJ7`Hd)M~cF+{IWC*AIC5&vF zQ6~-x6q756s7x|2(~hHmVbh^0Q5hTRn$##2q_v~2$?dqcYkl7f<(>!p>YC@a zymk2t6*+f>vCoJEK!LNtnEGxd5)3v-@8V`&)xXjxxk7=g;}iZYrCNau%xZMjk3o4d z(1@!`J7O}+P<2q=PR%;vLKm_7-Z|yAG?wLo{Dp| zZtIvr_*sR3Sb4Z>buUXTjlc^T?b`^${BoM}XuG6_)%;MIR_*lPjYKuiEDJPNTOInl zEQ+l|j|8e6k{W&q*iZz=IE6<7DHTzp#VwPm29gp?fEt{K3HCG)W)A;AUEbjQq!p{c?dVDd||dbG)K z-@#u_dnG7T;t(FZYQFDndCUTq3Ben47k=i6sp>;#yLDtRr(FSR z?G8F0T;w0swUK|Vy1If@z+(;*mGS%_zFBQ3Q+e0(7Zzca{@}bm>ZB_U@G2Sm(!ro>A5{O5?HU!_-ZX zqXM|mLf7Y@-nqVto|?1p(NRTDUWO95qD-jSXN3u+ptaTMLp4=Z zxK^6e5ly4rvN73zrG++8Q1OQf$*LtNMAW$p_9HiNF4iT(jLltrG0NeMJAbM&zxMJR z)r1MSM)cZ#e^rT|VfULt z%8y^}rIx>~X2!Q+i+e&Jl{FPb%|-+RBy}4T>?U=S4BeBG(Qo_tN*XWqn|st=9d%C0 zr49OwtTd_xY>!)yWquz46pvV(SNEHu#(9< zGqWgfRjJBuq+Z44%xuyUR?I61V?AFjRK{{Tn%BReLJDtJkO+|jjr}G-gJ(6?=VJ~z z6i~PASWnf0l>*tdf_$N=7%$b=I)#o33)E!qW`dQJrOZ>9jnBrSI^>GrAw{^SrDve$ zgrK^SUCeW5P=;v7c2WI;Y|YfG;*f=6)_)oI>=w_wy51)b`0DGh=zuIKi_0uSa%;1s zmzTU5T2iN6BILqTWYbA0CnTzf@4Hn^TDP%yIRCVIx#Zo3v|c=4DHxKU_bwUGq4d<0 zmNNE931=ICBtA2evmz!9sS~y?T3A09j*rl{;{LvFABvkV#sSH-whPx#Jwu%X1Kk5K zhQs;ZfvWDP#hAPgFd!<%LE*O@-mt)nTh6-mtL0$lG|x>BNou;hr6~sC5f1^B(A*B| z`YZ_-zWa}L=|@zFbPC+f1zjmRs)%Z!?1(ubSX1J`0`qSM)AF{mirTO;K@p<c(i5{2`Cm{O!V{d4@5twVls;Om-m+`dQv#Wg9p@`wWC)77`Uh? zscUz8yvUkc*TvHDm~B$fuB8^dIat(w6_S+YKp^+KAN}5ZwJYldD8BY{3UR`%Y3!9r zb92^|ugB9)4GxQ*W}b#b@2`;$UORspcy+CTSW7L9Uf#{kma2Q#@75@Cx-w2IQuCtcNf7;1zRvXaKj+JZRb9NP(st*%^VfKPgeb< zaVjlbvUJqK{;c-&8yAVfw07}Z=gq+h(5{$B7VQ1jX$je)g{zu{J8$&<^NC3`0o}{> zAEUml^+hkEE*kDo(86ABj#mW$`-b!y^s40)I${s7r(R8TB@R`6b2^>x468Z^lRA>?V^eOL1j_A^8N`+Zyrg^^ zxSo8~`~Gf*M+<4`pKGR*uackezqBwifjH#!lgB9Z@X#qw@#$tITMU zi_JTtZ%1`UF8@Hew$ybb(m1xRz}HN0-sx3i`#&jzA*Ma<++EHI>zvEOca6>er0i!h@4^Y|`%eMc#hmSwZSyj?P#+EQuyr&F^Mi zt6GS$%j>_4f13+FoSf!n*J{O=)7E2N$b8pGwOz-T9}(Ox8re2Gk7$UypFtoAOG)YkhrGKUB4CvfY{lEnOS`M=97s1F^dG__{Ye<#fVMJF(Mv2zhuIU3qCctNGGLPr zeOPQ>;_-UScibY5C+wcNT7Ct;gt0q8(J;H4s0_VPF~xa_ zTy&I$j?<+iV9OE8z)j{-;StJ#P9l*4szf^CKXZBJi;dn7W(D4RB>w#a_5}fUNfRl5 zuQoGXf*~X`iqbzv+x`Q;$C8Bo-RPvg8vR&$$dh-!(;agx7xG~zqHVkIIWx1p+-(0P zUK1uH-qdvu;rUSt$$g=vBL8=Dj8H;$o07LfijFbsZ__PI&-?1#BIAqKGa)IGzjKZG zC7a;fZ>isNd?0o#FBZ?|Q61vSH(p4*cyDNJJ+)Vq6|{6%teF{>D8Kn{jxRQ5v{gg# z#b5tz!Z5$FZS|2|SH0*FGN-S$iXU9d@E@oHrt{;7(9hM zXWEiewX>QGZY{hL&fDSKLNn5BUQG~Nle{gavfi+3lGFnDSo#24l7$~5@McBgP2FyV5u+pg&XpGCZ+3U(G}|8;1tNm%>VzZUQM8F;&RZ15J{}VOb(PNSGNZ>J09#D75hvZ= z?}5P0GV#~(yX2f|9Q)3k%H+orA{dgGjxW*wVk)0uXpYct6nSq|NB@x+a~%ESphggv zLjE2Dg(EqD#s_w<59w0)h4qaEe@$+SRuyXN-})(8z8xD8M`1+xkK_6EHU<77P+Tbx za;s2BigesC{Wu}ZYtd5hCNzyTHbJIiXmW&JlhWR&f^~Ved^q0Y-g9m*y36`<`kLkY zN;!iGTp5mxb(X40IF48o+YuJHXax{v$g2q}O+O)e;5Hv}$riV{|qZ4QK)4>uO^NMss0O5IVqY6v%uE_ZcNvax-F?zg& zdZ<+Q|6}Z|zoKlzc1;Zv)X*(MH_|1@&>=`S$k2^+!wfk?58W_y2uQa|m!Pzi3Q8OA zAfO;BoA29e?VtDG@T_}1_kCUGc^qb*IHnh9mp)L<2`~lk|Wl6 zIHeBdi5S^n@=KQ*_2c4|06}X_N`6TJpIYe}W_lOdBiAGde2>@&9`~@W2;%cMuj1=c zJWHTI!L^x-k=!>!9r0PIjBp;7pjwOp*(g2fLoQ+Xqz5rR;%)ZNIzr9AaK^)}B&yx> zL@N{z*D?-Zz#`cy{b`KiQodE&-pGsWJrB*MNX@Fj%X@b6L~b(AtcL=#DI(x$ z>=lZ(QpdRN-vf`8UX;>_U`YIxiny@$BqJEOYY z{k>$r?I(+0ylQf3#^UJrnOhTY%w7`3H3@b$#MJ#!-*T2v?u5vd32qiG?7HbhMycTxX6`wKg0z_>bKTK%M$-ic{P8z7mr(!(D*JyigHu<0stdYUlQ zH>1GgB8mo86*{A?t-@E(;w0YymYG+jFA-V54eV_l%2`Tq3pmRRJ4+z!mCJ~ zUlelwK-iV26VycLFec{6i5?zbj6xkxqrgV4BjYk?Ud{P2HaoZ*p5H4a86+*AShH(< zetPGmra} zB}jYM$#B<~V>elRCSqQKGtz`}EtmP$HsI70mLq=NYq$Wwl$#KB%9`mmT1#3{ z(&JD@;i-@bQniNrKz@VrB5;V6{Yu|s1-K(WL26BV$fh(JkwdB7FK$6pd=O8`ARf5auGal^M-w$CTYW zfkRbROq`x%_iaEOCb_XOb*zv;Ch@*loP03U$7~|wO_fF#f=~$qo{){}GgDT8=KwXb zCugz(`A{!3)3c0-(q>R8MQV3=H^>^P10s?*B<=te6u(HS1p|RCL6BZVe)xtcakzPR)ZpLY6S@BL?iyo--mvP>RYcT_hHp)pWB2MHm&@ z4CLmMrpF_aOL{U({Q+#ur1rao4RFF3E09|QneB$eU9lBv1d><|EO!bjYA1}@%RDEc zrK#gL4l=}8;wpY*2?%xR?lY=mBWD#PqF!^gGcS}?si1>ABSkGL*@*nphc{i)9$ z93X0CtBQ-UxYT!oVb-9ByQrG>rg&)ME5X!+e*0u0RMJ4K;3}-ypFq||T^0pWASge; z^0Kca6=5415YJ@esDV%~3_Scwx0xH08{E@4Sw!HhpaUUkS%CvPQ@}ebjGFF1wMEje z>oT2}=-3=EJw^?JZ%%>&iPS6{(V)0b=`{mS6J`=qc7eqG*7s6D9))pdFjXFjbNG^ZRd*r4b=BYa~Ph)(>m? zdf9c@4;}*79YF1_p(HfF2(kn_FsOhgI`ufAbPjk|tqZAyxJ67{PQW%}7t_O)lAN)h zO)s_>S@_7(1^Z;83^CV0fe~B8oVH4h&5apJAcD5H_<8AK-8GhIgP|rxykVYNB)9fK z=1pPmQC5+bB|UUNhDTL*9}v)V7i+{^U@3 zZnr2Pnh1LD2>aa)FsGE>+CcA~KN~egSW;_zgaEel&620IoDr?lpnyiZpc%oB2r7$Q z{vud=;C2-^Q)|+Qy`?`upuGoD`!XH}U~4q>Y>tV?cO>D0%R345NSn)-fwcG`g~7pm zAZp@^=eI|icH&B&JZ%l)RY}`2euH4hAJMpN372uNN6W1b$%ZjTeLG}U-+3a~bBQ%^ z1@j%)VglLPC`h%fxeynIWZGGa^MQ!2T#F2j9fU^w5wEL=@2uPj|7LJ0* zZas)xen37nSSzHiL;lzeMQTw)Zop=}nsN(Xumu_Dn*8d!UxXMDnU5i6u=d|o|7bLc zu64~4Csnbd#NB|R|A5r+wSAG~5%^9k?FqwPP2!%JBpg7!#ngL8n|oNB@sHlzs;G7W zclGSdN1m5vwSb#nZLcqZ#bv%^s4A}^u>6ihV!k;N_9}h;iMM~jB+r~o?R3o9Z0SgE z@$Ty=o`|tkU<7ogC*4`fiDr05JGLDf_yBs?ho!!zKxYXFwq?9|vwy%e-CzijGK`$iy6_cu@y2Ox`ax>SPfZx3Z5 zLQ-HYN)%?igp4uxXW?N4FchH@>{$_F+>DM<;P0v@KzEkH;lL23RcuzUfVln-AVq$O`*uj&%%a(0p3eMNhpcnMs%{sjtO1O zK;pteE@L>9gkH2y-r)UB;&#z%nmgE8hULrM7@Z|061Idl&}nh1cv9fpm`WG*aQO#F zZJV04{*;DNqRIBv34=w-$BR5}h^vEdw*HftHkzmp4jn5bFSYH5-7>}>Gt#~N(0|8V zCa-q~?$hrH(v@Tx71Buv0JN2`=IA#2_>4cm9_u+FfXfyPN|y`)RU#}a!oSMH zN76y@?4M&M0JQ&XhDOZ4*XoNaYezsyIzaJBMeq{QeRe5g^Q(o`Pag*ysRNeYUz7T# zV7JWvA&$OU(TCiIlaJbf)Y#@;%X}*fpNrpfZc{4{P-vKUWZoA^rQvCo`N$GZV3@fT zB&PY*K(Gy!)mixIlGFG)gyVKqWCRP85PyG~e4pFNzc=7I_0496I@hAlR@C<*0RN<}^lgxilvoscZR$z&3ls_mw}l zbbpZH$B*9LB`Kz)|5JL}Sm&1MO2cvvdC@h_FH2(8mXWfUIr~rahD}jBhXWuL)bQfC zjgzb!cmE3XRgE3+1oic6K63C*Om^?P36FAa-s0>?|3ar1`_yCFx=$4W#HUKOevUN< zE&th{6Kne29^REiPMFo0IDI2xk=q2Y&+ny%q-|L;L6QW`9N+QRIAy+o_pl3To(zUx z^iOBh8PddfAHdL+RLhHy7G)*&tdaGW^0L<08mq*S0 zcK1f3N$dN$$tv?7-m{D#EwDNxtAsY0N!>}_o0~k+mp@I4pvM-kz!df|Zvt7TsMp@A ze_Q|2y`Eq`ihplNtI+yWoOnT#*Fqe5XGPvHlS&_V6{mdiMK?XQd^00U@*GXY4egz3`D2D%6 z=|D+pe+yECsnXZ{%3Kzwlex|{kq8JAYPX;XDcS*i26*r}oz^SsLLrVONKwXfBO!=vMq z(=W+xK~x1fD`N>Iv-20_i?w5BuDc~L!eNd3A0KMG{b9UP2r|TSesxN(9&M|hOk=uT zNSUoVw(ij#`tG|T>$NTBpAWq!6_Uj=8!im2W2?Wv!7H?)zaUdL_2Ip&3d-lqva^Nr+2hNxgXQ`IKZKoX1Qec0<}-fCFCU5* z{%Ia$IZA#YI=I!?u;7e%Bs#XDtN+BXj@;_Q!h^=mmC4f>`fqYJqe`6XcE7J)ck`am%_a zPekZ<+}HJ2s!U!B#(&PTdEaX-T&~N+6Ql>WddHJ!@4Cg2v)R;?7ApU_ksERn&LZ^> zoLr2&5K;J;QOs8OxzbLCzFOSOr0cN0zY{a3)bsP8@u7gD>pSz`#!|J#x00UL?3`5! zIo9qL*EwHdWxM^LD6v_DUi?6)w=rwoYW9L@+mHU`8e%sSosPE(VTR4`R88JT{oN1# z#^Ib};!$Ax23y@nVEYphkZlo8>rVLl%2`U$OY43Hl27-f+e)>M^VJW^cnQb2Bu4zS z-(DQ;vna>Fk1v}A60Dmyr33G~K(+-+Q_Kn)1FO>ZxAj}oP!IIzV89qkh6_v$Lv1|E zW=-bs%LD4x%FW@b0m5&VJ5gx5=GQr|py;N>yUWhRSRAqRoU&%qK6Y*|By;nO z%4K_US{(hW)Gil}(Br26AV|i;YJV#fE8UWI) zixbaf3qUX7SI3=fFM38N0XN1Lyk2Z3g-owVJ%h(Z{R~>Nxr9YzB?1>PiM2pOGPa$U z_TouWU0w_OA9>x`KaD9%d3+gf7yCSKCR{tOn-*PFjo;<(tQJu8zYrKKI=UyJ|Ay$| zN6z8^>)YStP0f}f?zZEzGr^l}bm@C!2!1Xs!)b<&cYXC7=MPQgc?Du;a9M%(*X5oU ze;>Qk|Cwr(55)kZ+i2CGIJ^}+RVL5HEqlgi`qN!ixVQ11ELy7RXRd}lL%TV^IF=$D|c z2%QKd;E>skZ_4N~lesrNd9B@UbT_si3Qm(-q(3xLrDi(|c>$G8XWU`tc*@8L&`a4C z1l?1pUDBr+x?Ig8p*qgx{!@k$X$cLUsRTolW{sMD&gb$mTrO7(yO7@o9YI0lDR-_F zu{<-btQm3r>Q0&xmFgV%aYcvX+D5E+XgpUnT?JQCRndVNwY$;wrX&j!w@f*nDPgWi z@cTQxlA?VDEos-Q~}z$KeCm#iuwBjVduAIeUZr2j=~d0;XBB zw(AEh605#;+o>22kNc(aMDZC2mw>6{6@oTZE^VQA$s3_EX(1H4gsN+d;7E13Og;7T zuRBwhDpVhl zKG8-g-6K_vrUj+PMh^!KRoZ{jpfge{nsqIc2)@j`keqg}230u|lET%o2UhkcYcH+@ zHu45eGv}6s#y^mjze`C}Y%JZx{D97_<-Ac%#}?d5JnOlq)vaA$ZLSfWtjFQuvzOAYd{itXit@&xd*djEJ9#!J||Vr(6Cg1v#Cymxi)dP!{I`&2XM%29RX5 zwDGzy;)}}$@eDBR0YEhP**dogMT4VAdTZ8)mHsFMx$dHsfnM;l4}?IfGKHJ%FljdI z-;-a@zZuLMm=N*Bgn}zwB?U{u_vU4LQt13H@w@$afM3s^5wA^U6d+%`)sr~Zx@#xo z-G+t(=l!u9%>%-D7-S1&IxSi~&Os;s!Tb-Lt9!{JSp{GrJBx3OP%szzDJ-$AU=Dv4 zXD)%b$rfgHy8Cm`q0Hm%5gK}C%1ARd=G>BKI<2+0zm1;lBwZ4Dq$)h{Zjd_Y7S3vd z=X@LD)gscr*uZvIbM(DR@-x3G3En!@GtPE+ct7mad7kWfI<5g0-23Du8?Fb5C94pB z&lLbiygLlX+VqFDTNxMn0+9aI1hUhOm-?8rU+VQdLZoBA_(d1W=(*d4_aI{=1RNF4gKQ|oUdG=0}0rT?l zeNb=@Ta3a}fs;dWM%A~Bf&M7HhK1_5x{@=u{nhN=RH42eP04u6AW9rHeIjLZ`&1I(p^;*m_Z#r+N~pw!1kvt z-J!U6YUzbtI~R1TwONl5V~>Y-&|Y#>=E5uPDd8e+-^iBjJ;m&ina7qtS>+y8(>j&y z;KEbFj8lWhS;gk}sDLw*E8m^Cy{WtuXvw8Z{mNpg;GoNsmZPlX|x>Ia;e*{seL^#m@=C$5o_R0mSuE9Oo`k zZ`Az64^^zxy_GNtv@q$e9(x?!Yd z4B|?MQAh%@zgQEJ9+N&7sMx{NhHR=~cMyp<8uB9$xl7c~ApQiedYEHod&Q@(DHYiV zNm~OS*I^EptZFT9`FCXR(FCBY+esDuV}2AEmuNp4MCf_YvjVe0cf!lNK$NV1WQEQ> zv;1I^4K6nXP^Zc?3KOY_Ppd(N8yAV)SzXv@pNL!<3|a9bX1MOKVKKP46r3j#kEz`a zMYhvcglOtGi+ifsd`bq{%V&^Dl8EAgI(T5f2$$qYMjayU83EA7KejW6=LK&Vj?j*n zlQEXfgrNV;c7g=!7YfGM#iw~06jl0x!77Zld}lgDl9oy3KH=& zuZkGBXti@i5UrzzgsYJ^L3|3i6yQYIQKx%3ipqsxpnoXW9dZlyw5px9gp`N}O!klt zASHgQ%WxQimwsGXf%4kf(Nj zXm!3%6#-9P0TK_uj1Xn?WOm_*A726CU4Ax`Y7zdxS}exrghypJ4uk-0$|0~@kN5dJ(;~1eS`4|U>S&&eq;AvyE3o6H^={cT2(-A}pPY(%92=N+h!YM-Ln;NT9OB6=8_IoZ;^vZPUi>L%GmSokB--GXbH3t0 z8|t)Q1T&ZxR{3W~*rr8AGy#@677rLnu3QsBsW^hLA(V;)(nthZ?N;mYySnMfpptsl ziPSc(2aH=4m{J%P9UbsZ@|J87&%Kfi~Gp+7_HJqW9!BohWcsVI5 zsf5Aaq2V6n*o*ivsvatv_W43zWX!@HBPgeHsW1}>-Pwk2$A65c+ePlbPxu6-d%vIX zy-7OhexlA=vLwyMuRniRZvGL;5@S8bI1-3xh3+(*=6Ncj-!*fW+N&ou--&hLr%$Sd zo$jgI)Jo~QJmboz{8Po>i0*zU3NN`s1l2D*qJ4VW!k{tMRbE6OEBtBMwLV%UPAG(z zY;PGSTge-v7h;x~P_fa$>aJ5}5oo)Rv|VprrVxym)JzOD^;qlsb=#dcXdcKU`J~Qm zr|1!=*kPzgPkAQE8{7Mc^dAqy{y`dNL>9BQ$!5(DjywS}ngFuCpgI^*AW{p!jp%Nw zG1cZuu~~-NCXukNy!LuJ`(ij5!0L9R)wvZFQg&*rZW5qbOwazDE~D%8C|M^o{#OR; zV8{1$V?@J?$o_9@+twWB3fJT6M}LidC|>-!A`5^7>E2wVq-}h!@ zQH0I)hH*aj^}F%$Mvl5}VBI#KZzIZPolOz5ZHjuk{*qAP{ zDstZglV729eptaZOT^ET$WZ-}Bcmkes0^dER&9*@BRJ!99}?_Q$9d3R{8-!KTtF%> zUeA=QiH|5=1(%_A0F!CaoNYozd+4E?OM=ax0S>8`8(v6GICcCR;ob0ejGCK^_=HPFprKl7L=jK%0veT&E}R# z%z#Pd|DNCNSle~_s@nrYI3`ihiX$!gG>0?U*fcDthUgoI zYlGSdhpfw1=w$S&a@bBiRvgnlPw-p&J@TV1$zFQpClG)%cq@H6gH}m)ug0U}j3fD+ zmZU$SyX^V}AN~f+NK|(={UKpDK(Vt8%|%92DVN7YoT{rFRallrw9gZOU&mEVq!SY&K@%!>WTuw(1QxGj>eLZpv^UAz&vhd-IAT%NSbs6|vvXt_>gtGhXR0C6IqrXHsd@RZFM7O`>&7Vr;XdUguOzK(@Qcm?>a(d^Ko(-i!+a zB_7#)`UX|o*qCz?#8|E8K!3h2hr-)CEFq@Qu6=gR&ELICpd(CrUcuLY^^mS~bl2%>_Vddm4=a zdt)B*jTCjTIQExDYFQcx-R4`54~l}+N|7`d4L`|`Re;(n*`I=-qhC&Sd=*VKit_7y z?FG4O8*~g!q^QYPIZPG6T2%;VqB?n0n@@GGA=9_IBqLATO~^o>AAReMev8%0?0RTq zzMp_*gR8;Zik?|P*~R=lPQ_HSUY?#3`)+5sA%$rwuD~YVfPKwQ?Sy25>IRaGBe+2% zXyHdeU%pYJvxKlw$HGc0X7QWF+O<{jSWjP`&iL#4M$5k8rNJjYlyu;@*}*@A()z<7 zdamHHN7(QEJgxk2+GnQo55oe+ecRmVNA0?PO11c9oanyLdwV_CH!vIXA1^dTt(Sm= zb)%7ptlZ03{1j9Q{poaD!iOtNS*vv~f|cp646c3L%5CweJ8|E;G5_;jx=lQ!DfMJ% zn4-qK-`}7C{r-!!Cb=Ui`9F2$iSRA2&VuU1jSiU()g*=Gv+9J6GuUs&Mz9zOg^mVl zd1Gqra!m9kf3mQL=%_-eS#7b zvk_I~v4JQi>@v4ZkfasiAB*7n)p_fR6J_czJ0ZUd>n^|gJQx=N>xI#eNGN|c9>=^V z6|SCPOcD(_O2^dh!^ysqfuUYLhf{N=FI-6_f@Qus5XcQK;fH%#TiHAZ=JF~rnJrev zN*K=eF$Lg1p0J+Vw0+pSo@r5OjVBL0mlVZ1w%zcHd7UTb4yAch$sMMx<*M_8{EA?Pl>KRmFLt6V5Yj zrgx(6pRY=s@0StPFq-t2Vf_c+>_RPMKe+hbk9s`}@)jy8UHdL+i&s zDB*-WV>LusOp~%+7%Koz2JEqiR`UuQ>D~OE@BHUJ$ZNZjkrlGkdgyQc;LqN#u}IIV zT-g!&j@k9!QONu0Q}OS|PF_4@DkT-1oH1d?qE!h%DiFIz>X{xn4@zF%=acKm{r7!R zck8>7fp@_DXTNUCSl-{wxxT^X{n3@;S0hzo{@p6AcXf^rBQ)z@HXnKKl70tJMbgbU z-W$<2CJ+A5$~Vw{@H=2;eXAkduw}B??^Af6G_FVN986gypmqA3yo4?)QHEpU6C+m> zZCxnG9Kp0((8JNhqD8{gnXC#y-(!PU;U8V+{63S?^_@+HPrYYdDU%J0cpe+pru~~( z2{yEOgQ#lstg!L0vK>{JijbuZa5p3_PE}u_!b*Gd^|~@nJ7y=xc88hv9mLGg%Xdu& zSTwjo`QxNz{j#y7A-lTs44QL?Hm>}j`94s%#D|o-oS*1gYOleq;hV@{5d#9rWR|Ogdpk?wi#nX`tHUHZpGrpL7^^k zXd9+t)yfOS`yj!bqSZajMHa0x6PXs`p{o;2#AgIscYWMv zo!9u}y`{;SCgW4L_@G)Bn;9gO50i#X3MepJ`I+SJ;(tFe_2!+y+jd5`395nQM2~up zFh-}sUX#zgv4Fam*dy;!XNQh3NJE1|{77j0h+?ZubP6nblF?nZPxlcoo$E2rd_icuLX)Gc-JVGOn(PA_9Wqoi1D}Pg_H2Ne1M;`LAAAs6R$faf$gHF_qdE$TJDNg}8 zxkc#$^xkwjC~Y8mj>+Q4l__dhH{}W)5@H#8q1MpjOm~t&!w|a65KnGKT6@SND3F~R zPMka*RE(47?R8bGa~N<(kF4cbMFbDIp&uNhUdx~l3Y~J8d~$lc_MAzB?r_uEzHhV* zUh?O;h3SOyX=4j@&@-SGkJS2n*o=12@{xN5iefLs(~cQYCXn)d{Ymn=1-jric2YBu zmpO}zw78GIz&Yhf`W?)tqZs3FP`2*rA7P*Co>x&&sFS3-9twhl8dII9*%aBtHpVNY z&?|lhvjcM83KWl8Sv!)(ax*$#@ybhuI!stc73iQh(E;%&VRe{Dmz6<5pFQ{_$zdb$ zSw6!0ShL!~xZ@P@|Qpq)@}?(`z~N zgq}B;Rq$nArl3t`%u=L-lwHz35BL~)SoRu0RvE!IYx$hT4^xS3iNXH79+truiG_(E zMz7Ga*{VW!e}{1FO|GuSVJ?lE8PP05k3T^T4_M}+2pXw*-6gANeVb7;RRY~CSMAoR zn244*(!4y1UkCVeq+-`L3lt&RSJ!6xZklKW9dE52*UzlHRpWd{4bEfr;^6Wt=1ee= zZHhF;0+ekU9x=hl!l(0m~O%jt;f zLpO&!jJ$hNWItNh+TS+J%wVRNN*Az`G@WmajbH&*|W+4IGPOsEy3dw`z!S(-WIpis7oj5`B9_*)3AN1>GZ#x=ztT>>(mIlEf{)H&=><`i zEowGfs8oMR5CtuHw;i=2tCFYaFtciGzn${AVpccLttP*z`B_aU85HzBPy zAmYBll4l{|e1*-L$S2$FP8!&)erMI~%3DQ{G2FE%C9z;z{##+Hq43}Xp)^9qUXnuG zigmkiV|mO*m-B;{q^Y=-l6J%uuucvXBlUuMT3O5pbU2lMG8((lErt?KbuOjAl0O=hxB>#oYBKw5pCuB z8Kl4pslu1;-j-%pz`hd7GNGs-xe(pp+m1CsV}qNn?4!=stIi#=m;a`_bR%8T%|h+= z+c<*rq8_yX#gkvLoY*fidRC#f!S}Sle#VB7@i@u;Yo}FhrI;tu{Qp zf2}Tei@u|4Ym8~L%}QsY+-A8fJ-cu;3js1?9W~x*3Pt(rBu{t`6`G+^xqc&4 z^G4d3YByy{-$vN?dQ@=?%~BWJ0AVlq{Z(hIvjnf@NbP+v>d#Cso}rhY3l|~w*(O?F zk4&Y$4XNwik!dH{8nu{Lqrwuu*9*V7w0lNRs|^nNm89l`=}?`l(ixO| zYMNy&cenam5A>f;XR|apnaMbZ_8dps&cV@J?N4WQ7?ldAEepRvUMns;6GpqofIHEw z6!~*{i<4nzd8;a>O%H8v?d3(AD?OvDW_xRxD}MGR-LWXMl_KoOo7Z;AZwrQo-(~hI zn37&Pf!~+T**Wwcnl@$_!IM@k$)3{cKc+^2+~73rsmQR)GU55Im+pg8sr~OxY}y58 zl!rz?MnvZ*zuk(ij~8ETaZARYY+XmDCv+7R?!bf* z`bxqRo|ijPr>;9C-|o8igM4>}M$@~aHju{b&CK7`;6l&UBj@yOZPNa}c9`$iw<#T^ zM|kNtv4!QAhr9j;pr6+pQa5%mY*?Gf?M@_FtI3#s9@trueM{+GXwedq%NFF)(r;u{ zU;Hce)Mo7GbiMbtUGS$S=-!mmfZy}N$Z$r7Fkx%zBIE{wv)T6Lc;rS=b~IN}nplZH z_L;v*y9qAKSGbJ}^(y`lmL(vX>hB!e9%JDtk)RL1?YfCm&Tzazb z$4fD5 zlPEp=IIB<(%C0s2lR`_rCI2Q@QfInfc70D!tWbE_=itJ6)4pX zgQtcC!yDgv@7H)C!BekHj;ASakbtd-2!;Vzvo2%S=N%d1q&h9$`U8TtoYD>3%Zp39 z!;i_cR)Q~M%$ogxS!dIa`(Khzd{^$2dH?31l~E{A_p4(n<5 z$*$cNrY4VXkIMyW977ypKYU9b0feJUc;$|?>1(+l-GW!I(rn8?+U_lnzAD@8*K4|H zJl;m*6an9pCHO)Rl@_{30R|0ji*cfqgCCL3c04!@4e z_Y3)59zW_GdEGM<uGDLYM+cJ5$6aW1xzcvP(i2kJZE7L3VsxLoFLH=L`G)nR) zZQ)6DESWp7;2-V7!cie`>C@=CkIOzE`r8CQe7mc2#wR2qqZ9ZNQ<75o(vr~eS?SsF z*||B%>6nbH+)QLzenL%hQE6jSL!vs;JOWoEh(W)v-0WF&YnS6q&*{)}&=c^VJnM)S#bz!{Ab<&Z=q?zczfo ztiDXA>A2yp#a60NWookioU;*k++lclE}Q;tOqIe_lg>=5dfcF&$yG!v4bm#~8gjYG zB+NUdYBo3Gb==IY=MyZe39}SfdKFC=VG-GvmCN_|;oodp0ddm-WIo7;MV=lp5DAqH zIHNJyNc0;Jp()WZW|_>8Qh1U$>&wDvvj8UwGN)O8{^Z@urBh7m;k2q;xL8Q@+k5az zG>s*%kLT_S1A{0v%2Wu(Z2XFgOe|eUdlOi(`R6KdcZ#G?P_*rC8O|#{G?+&*4%lwJ zRrej3NxryY@Rchl^|K&+Xo02FdLZYJ@6&cYI9*igZ3B2J?yd$8S2LV{E1;}OlfEb9 zhJFo`unUe($)4uiDU2D<2`ct!eYP{ayhUTZ^REx_-}PN!bovTF=8(P^0OkB#TU90z z-DqkUQei~2>6|ZbvTB^&|OA?&6L_LH+e zEp?_EdkdmJ?td!rOWN(_kpAf5ysRPTsJ@Q! z@5+aZol93oK#V}l<$ew2pu#!%HqSSGNxT;MwpB00nmao@R--JO)Om$kvVCz-m(^&H z=^pxn%@v|Bl~t>bceSdtXYHL{=9w7{OV1LE%?$i2hg*M{p76#59gjk9?}F(QY2Umh z>pOomS$rqem)GvqHJ>7ClRy%b3NINaX#Y!x-bVeGz;-_oUn+jTh!)ws7!P|xJE3zI z0SO!q+$0;*B=05*9A6$_{Ec^nBDz#G^<`MK(Q7e9 zWkm0_l+Wc|J)ucnzVy+t)fw=UCq7wzKZWU^I1xY+3b4K+CJMTOv4%QB!%)Q3U}{BK zk5MvUQQUj+F|vX`--7!Rv|=@A#&7Zn4c((CWc@WkRAOi89&EPY$SZZabXbPiXSK%` zG}#5C#?V-!PaL=+;7`$79v3#Vw?AbH#Yu_fdjc?XomLpu=s0Sf{u&-$`FL4HJk^7; zeLgOQUb>&7QYCB}^9Zvp(K$bs&MPO*xbx?G*fYMc2+}8N9^6kizA*s(%>=>(;j)tW zoZ@|6h4l;UImi?`nr^xPJLGsbeE)vn=~4$m?iB-rr}6FM-|DP^f%AT9o*55)cBzw( z4a|ywi7`wL3V@|%&Jl2)f#g(mL4b;P3rS+SQdP$x!^3EXPuX9{8zn>pC$!ml$ow>j zS*YL?aWqbFmH7O9@?lxWVaxyG@GKns8}izTQZXpQO6;F0N0>LagWD1BSYejnMfn00wx~hK3+r5Md7E}mHkCb?cMjt zE_2Y|1M0FzncQaZo@amIfO;?c2P6j22v~j8Yyk9p0^S1CEq5n0V^jOV*Ou-pBJ@yZ zm)GJ)p%DwAMO`Vu-C~hw9It@0z^x{vNh$; zm<<()O6t|fxiM|QLq>5_jChzb93Xvr3nRWiZ!|6Nq<|5+Y?QGZ;@G5nf4Lug@Zd>* z+#GW}eWKEPDm-ImFk+U%XUla|;0&nrLiMHJIfvR4g|YO`BiL#Ctn5cTNM(56trLFO zN^=eB;)T)3>w@fm3ji-J&)w`Mk`%(loBSh8J{H)$Rzu`2AdOJ9yi6Yfl9u9dv0z7I z{JRHJoZ|B5W1TZ+F5vDv-Pbos#`#=Y2Jdxlo$>rRr;+!@AC1W809}D*@AuX}`Lpe> zd}eAACw?%f?~}uz&XT!us!UJQp6V#ivdDz4RkB4@-s}em;M;Bf(4r z-kBq7$hHVu4{uK7<@woga__+{h&*p7+EeEzQGO8MPw2*b59x5uZvTXo`4W_dhj-y# z`?%soo>(M9fs9#Cp&C!^#*+W(s3to3K1b*xd#cD7 zrV{uKSuo)$m6!L)Q>dreZJ8>H%zt!m;EM>u{bojEg4R<_cXLvqSlV1_b*{^rWR z-{5d40I-zmUKD;Erk}t8S2>7@pbIW-RJ@Y=9H>$A_cHM>D$odvBD1^wXMg-N%i9Vg zZ5Ko9u_&Ze75&8$KA;7%vp~_&dc+5iBx%_TG|*eZNq>bQ9gPT$(QN5>7w>F~tWGh7 zdN!gN+J1h|@ZC6w022kuPw9-*tIymB#$+cRN3Rp*2zSY1)NVhI$(aB$%YzILiG(a2 z50^+4B|$#z;Oc_-sdlYni}(aQiML#Q69ND>N?^ni&|?!w=wNI`5Ibm?zSYAK)ueT) zehk7pF}Bu#2$fUxJovXq|}wS_{hKu>}OU&sWTZtsX^vJH53i#Q~~43c*2*a8x2Jx>S_}JIR%D!GpF+O)v_*I}b^GNToBv+zk>( zJjp{oru*&S*j=&4_J}5bJ7XsxKU^ZEj;);0C={Vm@18!l7s#neX@PQJ(xJ2_Nb7kA zNEd+fC9{TO(eZnP#6NYCrytG1os2M$ zcnhIf1l9`Z+Km|Q<19&ZK}=J$cuT9+8IZj{k`YfxTnwo=Grhl}FqsYg!NtS?mk5ON zPF{&9WrvBi=eqB!Qqq!9jReITWpmz*9E`jyjIv7GQ*B()Q~1;l`81>Wyu`%_b0~nM z5c0~Myc9#qH~4j$fd*%3Uw9^1cxFZAJUWoYj46QZBh=kA{d7R(O{mfe zU8^Ba@^|2j&HuyLd4IG0#*I4&NzB-@#NHZv*WRPC_uf<+qxJ}5gdp}N_EvjqQM;&F zRI7GXmntpQPknvQbDrOyzuwdqk>#}(O5r_FY7Z(SI!Z4(xn;7h9F&3XD zwyJD$E*TFmG4L*5DJnVjDPy=Qk6%`_}~y4-w4f!mQiSg60LSYR&(;Pa3UL-)Z_5-McK0H zh7y%4(AVn{;%*Q}cM_5g_*U*o$qcQrKG+FE$~H=STR;lz*An<0`5Kdv>K!ttYhC6; zUSShC55DEKa3;d;f^6}215l>7DWnSn%#)C!Iq}*l6_G_~g0V__zX7o5b@? zAcefDt#hIDczqR-?KZbUwGg-oL)wLT(xyeJfaHFwT5+3F^l?g6!8|)#hmsdpL+(p% z4do6x1B6IcrpWn$#PbJei9}pl)r2%j^e8i~K(AR6b971gnR)HuXvrUBgxZuS-}C{E zib_pj_Z(P$fSLXynK?4Pq&>QKD@JKK17hps03~6Bl5nWjP)Pv6o;1S<_L8h-*|l4u z>xk;av$9x3OFW|F5bD~nORV#U)lj>!=DKw{rQDk(mcp9gA(A+C5P}bZuGtDaEhgo{ zkv{Cw+z~2L3V0UV4hX}u1x;LA7731@|&e#TDX zZVAZBrE87*t60w_y@*=%Bc6uo8oTgR(%*ti1y^J&X`MhU=u}I^K37EU3#4!*O2yln0DaO1XHoL*)QSfFB1gBBX!Kw zA0rLzOG!~!QkhcHpPrMM60ReoUfEx~vZ8d5aH4}zZxdHdZfV^-*|1teyZa0j-n-+) zxorJxqdIK7PHa`##bgnRuPCL%iriI{Um1uk5e@wX=_!E&p~La2(*~MWYzFg{S_)ns zY}uZ}rz=JWNed3Ye7oW*d9e$()2wfYAO#|e-gHd~XC&Sz_^!O~%fBFM=+n+(?GulN zZz6_35tU03pBU1GvU#whf#$0<*?&J@zo!R%6{m@Z-M&)zRVF(-V-u-8q9aG$Pe>_h zIC%=|?j)Cz_a)0-F5z784qo6WGsB#N!j`J&8HknfgcVieiMw-BAoZJfEAk#{;+mj9 z5g(R<+3Z}O4{*Chi6;*zbRM*j`6EFK?>zcLUlW_hXm79Ko<7sa2}WA& zK>4>z;+;m<2F%=IoyXAk^lgyYkX?dV~8#pt`R$S!etdgmb# z85JH@ayD5}rs1nv{zMuq^LKtisW`!T4MTgoO}O^L{;cexhLP27Ap5WI9wzU3x;E5- z@%8SL3DwYUB;YB0opYA!=5P?)@y;uFX-JuXa>{UDO%D60{O!Vf#Jc{iL~!Z_IS*nd zaNu=E+Rk)tRq64QC<&vUgZbk|B5ocszmvL)yW~jMY-~I1(p)RBha1g9KB1UoZ3Grk z-t|5l6Kj5aO3 zx?sQo>!e-GIeReBS$=5|QOEAdE}g1@&{a9we`1KTT?0ik6wd#qCoX+C9n#+?b+k+pW1THi~TwtOA(A8aL_&8 zfj=I%V90sKkbbfvCNpw#e~fWY}F?hlpixq z^<9F{^5oavxA626u0D64<%diJJk2jh#@DhqCcvsO=d*4Pwxg*BO(MqjSR+?X`2#$< zYCgZno;Pq09{UHHTKLI?A$>QYJeKfYN z0agI$GarS%$UhS{h9zD(cLB7^^DeYrGe|_eMNVA!-ooym&ev@7CqE!3tlqZKd>ygO zz%H#`GAW>z=|#G%6@Rv40OVd=BEi1>A z@*xAIifW1tafZ}T+(U7B=Ub6^P1lauo3DfL!ha0xmzU$Q`tnZO0meq&$gZlNq^S~~1pfk<;0k!XxYG%QSLS!AVxluIns3B_T} z^EtptSCoPG;0Hx45!gIBHr686JTW!_orKQFut-bJ%*E!W$i^z%g&e^j7KM=%q>k1M$eU+7ddrIzuWn+ zySIPPNLOlWlAgCQ__<*i{dENM6}#B~DrY?BO|(V&8-+{3gD1E_ziY$FxYZ^HO0m+n zxDwrts!1#H+keo=LoefDFIWQcmzp+PE;JuEK}j7|&7d8(s{DEI zu(&Taa9+SufR>-o@aO4!vNR(Dmz7e!)J9+adY=@P2l}iM&4Ml03`GNwa`+>5z}fZ!ta9_{lQa;>Favs;#3Z z?8ILD>h*gY-fcpU>y_zuUt_L^&mcFJPNPpbG&9D5oV}bigE+4tAWGe4|@@J-( zWR|*OmJpK{!xKBG{KH=>h*NoWtlk&Z^JIZMruKtEcbaS>6MjB)j;_@=2FH+Kj1;c~ z(SOo57T3{UY|dQji7vK|WgC`7=zMw2;_H)ae!bQ$qRIl>9;p>4V^Yh5>@opcY}%+x za-;V9AHQaZUE<|RNP9XuI|kI*ZJp0-SzFk)Jx=n`%<&!%Z=G3X{0FmSiDt1N=xn!X zTqZ-%s@W^UUmOntNKTEDmu8#xbpW;nhF(xtCOD@jB5-t&+{!(fA`d9I9G9Vz^%j)n zmF;}xj5d_*n|$E0BtG!TO<`CG_`7&sDr0eknaHfSR>0+fJ)C_U zLhg)<5Neo!o;yqU|KNiGuD8F#RtkHlF8XgjeM!5A(c~IMr~=(X$7S@sCQ@;e-|%uv7*G4H|zN!>M*P1$&u>l-tzf zDgTmnlT^v658ae@3D~C+Q?=hJYQngi~Ij*l{Sj-92KA+7QBNB>I ziC6TnuX3MsJ}rx|F?a$dWk84QEBe#>q&oU-u?S=(s~l$KJigK7{fh)Kdut*=CAA7% zPvHsPr_4z&Cts7k(QdC?65mv-K_R&MRYU-VjE2UsXVe0hHmS8LJy0*YGd59^yHL(|B-4s2? z7>9BNCVd5qr%D3Xe8|ILk6Gr*W#g(IO*O#$nF>uW0HTS%Rh>~+#0!_`W#8X74PSV4 zAd+EmYP4GB1@9W0?PR`N;89K$yL1#)#3nEx!PK`FzF93@qxw>Gmi`m1Y6_ECua=sE zYoS89Cc|T)ZGF#stgDh%OM%SI%mSA8<SyQH(SM{5=E_jsfZqLWPhNlM4)K+ zm%o`ui}CX+Elo6}h0U+_`ION{D}hfAiyi$KjQaCQ^z9c!ES4D-I=2kM-;B+3Jw}nt zI>KGLf2@@QZc6woNxDc5L9pNQW7XyJeYm|$uY}8zLUuQ~+}(;>zxt2KX4EDr)2{^>{SopGv2Xb1ds*|tS@cP#q09Z1>;x&qc=c^#EQ7z(7mrOCVo$hS0J zFE#)dD^&D!*3P5SMJk({veDAxl~v~wroNAQ`BHg@do>F)+YM3*c;n_mxLoFJHz$_X zI)IU{+oz?Qlpc5GJf?hUykcxBudd&F^k4Y>M(-OD9We2ImumKSj*J-boQIquSPlTe zDZOpuvezA^XZSXlB!4BNv7Cofqa^a!PF8z2?G%xQR24Cpc z-$7(D3fhT2(@VHg*u2BJ2zLvmwrAqj+UBQTV!x^JnouV!)#qimf1eCU=7sxcU1Cjwr#>`%)ZH4g;Q!&r zln;GlzKh-m565R>wg9y+KOxx+8QIBBf%B$1W(b=Xf5A^SOv4$8$> zjK+z{%(}pIq<9PPh#0c41Ow=UZ|6*vxXW&E5~3R!8Nlq{U!v$jfu z=L2RP+L2M7C%nR;RUCEI;n(%taw~xzgedV{`;IsFz8>gj@4G&~G=4HE=@CSB7fztH z=F~a^g^h{$z#c8GM=y&Tshb&5B}M#T&^_gTEU3#Tx&&7^BW8{Rh1Ved(LY3qKRkWo z-0I1sb^&17OmG{2s^uJeT1Bk#1F%>iLG@ITdQ$(M8BC&=st*aubLKE@;0Aa&-Y25= zKJz>1wbN?|h$GPWmqq#@KS^<%@YOy@0S-)XO}yK7`VE;K(iHhKe(aw8zIHZ;9m3h#0QGe_u*@@v0VAA%3n{HsC{xeZ`UV(J(LTh?_(K0M1&~#)w z=IeNJmPdLEfZB1_zB$l^#pIT@x7|gKiM)7&P$@6x)%er!Ws;~UNS1V-{xSn~Ut%39hmMnEJW1q*?){)T&c4vX$3%ckK+)k6kvfKc^JOx>4Rx!P zP)C4Myh(BKwFKl7SX7Ss{ux-@IS-8wRmLSVc4P;1z^QO@jqXyd7!^@Oa4bA+4~NT| zB&5P&Zy06gDv9G5iNk9w|GNapI~O`^U|(KKF~J!Rmq;9!7?609T|KbZXr5tQBIvA` zh|Uo`3VQ#^%N}-{P^%5enk=jAFo?yO0RsVlMNXsFXkVY#Hcd2|wyzU@zp zIjMWELFBvTge;1+khJn?~^zsC3vslX|i248tiTk^2U zj2(brn6qb(sI|_^js*b9*5Nd}wWrcVCGK^;sdVzd0%90}?-pEcur8Q|jKros>@H|o zTwkG$147f?tIDEM{X?LUvCbTW@|;Vb6cSSXZ>#`s%=n0r<>{&6WC)_7Mz*nIaFA_d z%$sDAQa${997)n?<8^WrW{%F%x9Qp{HImctT(F@cd6eC<|`pn&LQxk)XK6T(Btvmz;DBLH(-qUW!6KlX>e^@Gi{!Kh@fM{pCdH>FKnhg2#d?g&dJToFUavV@h$ux zHZw*1f7r}BB(v%Ndw|qLCCb!dWs|66sU#&^Vy*{l1kg&Ow;VW{_o$$U!kp=jZ799yDPAe zy@1d(M*=yw{$K8Dt#J&KWOkLe-i(U<`Vv^^{G)3RBo^UoKYLCkmM3a<=`4kVYWhj= zjACact7gl~E&#mUUyqln-+Y1nho;i*DT>u~t?CVGw6K2LW?98GGsEAw-oU)BA41oL z%4tBr`yN9_kO#Mm%o6pBY}SUj+Slz2mca`D)VEiJazu1j4|U z!scnoi1#z^T4_;gPQy%10Vx+8#@H%40^x?_U0o_3Xt{FgeSZ^GVA1mh)&|pUEc+1Q zv5-~s^Z<;J)p9sYct4Tl^@)hzZy1X)t(t{-PWI%^F0bHIF^ui|!0@l*L3Szr+kO6% z%dB2aI#e7v{~U!`o~!V5|IdEXOCuX>w(&yBt3o|@fUd{wjV5sV-_t6kNuHC|Vt zk#khy656JtY^_(&cRl(=vz6;rcFf8@Zi4c4i5j}zMMEBDKj|*WqhY)g)k-zHmdGbF_+qB}U96On;6^D`NxDAm!2 zEeEz|JPIw9IF8su&jeV-Z{s?`_`*@yl}b5t)HB+Fvn`mjaP09uYsGn>A+>kK$J-C( zh!3ml?Bs+4SKMtTa^EWsLvqi)+=4>|cz0sEDV_eRMi~k>aG)(2NvS)=IH#^O?%_9R zk0A*6-u^KZUmuM<9V|NjYKI8I+yD4e6{&0%!3cZh7#5Czc5FMB@<5-fBP%thQ!8PF zchuP^6*oykDY->qJH(9sl7k~nTXk<1=2U{k=|uYV)->) zV-c3%6Rj+$eH@q;LOr2!I7+7WY6i--$?%_#xGIQlf{9{$q6AS*>dfkA|Y3E3O7lv7|jP}?vf1H(W~HOEAj-;xO|Z;`s1?|$5Bn3C6Wo~aS4 z1tYkT!lN8mPd%RhI8$L*PR;U^8LMBFCEN$~CWM}P7!S3*5)hmr z5B8M#Nwp}YDb7s2pvz_kUPafz<_nBYJ-TRM&T-H-Jq*{kGib`AL&tvrEj2>`llic;z|;_N?&_1b_Hl?}(oJjE%K@@tjoT@97rbtdV) zl+;p*-s+Ka{l_-umBrhv8Ud$Ddb{R#*HsB6$c03~FhIoOcFB!g&6-5{4GndWy%&dd z0E(?)ufU2;^J~r6TJ>|WYH%4)?WfG@2B+(zuzTKIx_xUHv8pO0Zxf6Z8-PyDZI!0_&1UX2MfvT6EZy25g=;{{aF18qznVKzb;(op)Jmyu5MQa^)5 z+cSUf4^zKn_jxt4zD#`O>?GZKfIZ^Nl%Ap65Y*sP&;g0+c~VqKLmJ(4>s!nG>?;jc zhySeBJvQ<;R#SwG6RvlM{O6~BeQm!%6Z}ZcLKAuhHfUwxs_mR$XEHiqyW9M^uWPif?NYpbwYJP&d0VsQNW;2LB0 z`8;R{=iMGct9CCTg;>tbyxwHu#E!YVd+ynU2m4kyRyCl|9gUcd;SN|{a+RWsB5QHV zDfJ}Qu;|t9dHiU^&PsZSc}ydS(;d{IOU=07*QLaee{}ItJ?ck?8C@mwEpjU_il{=# z7@6s1w;}yPet0{tE%D~`pkCqoa4}^=c*5{u>I&29mu1NcwE<1&(A%0S?4^e8{N@zP zpZv&tH%|LFkbS$UYrHC9A&g)TQXMk1L;tAw=9a;yY{z==q~~*^-&p{6+ zVwoCtZsdxEYg_dG<7BUFjJAWfRE{(rOGI{KXE)YUN5Vwzi`hSnKjCwDFE=2YabJyX zw?!o2Ae7^+^B2C7F8#V+POKXbIqVc>R2ksv%gz4G(+soOg@sQ#3|AMtLkeIx#k zX|IxYHN>Erinc1K{=Me@>+so<=}8Iyzw7FICTk2OyYHS4b8bQ#g0c&RpUS$%7U-HC zyZ0WtBp&Ob>Z4@{Wd80#Z5b(`t2U4NVto1iA(t^f`NKgQap|BSC@A=S;v-`Z^S?>q zVFyl0XC&{J^tOUrsm4$VeEcT)!R;HyU+He62N~=?qQUSiA~y!IpaO~Z%O^L%h;?nq zYCc*x^pT-JJOyJoK|WfS$;)yxgzVU%DcRNdW3ZWL^u4Ks$U8F*Q-bl7T^c}Udz4HZ zif%e1ES!FV_CVz5B$I~(8CdxwvDXuY zcMq+gvs7G*z`!l1IAiKY^=VX9ht-^yHqStz1 zku;QNy>5lk=68Db+X82e#aR&lMS(n@>UW|Xj-JLqwL?B7KjLR{sIZ zQeL+j&;Z+>skvRHOkxib{3tQP1 z|5B)3PnMOos;G4bc*atGvXbx1A)87)0h#z}D}|WbI~1bW7!#T;U8iRly$e&SG?UOI zGD$Ul?Y}r<8?l2HDaVJmK{|Qq3oqlKmw~b#k6vv&vDkDoW3mSFCwp2Uo;HBtQmAw( z9ped)WNrJljTAR)kB*7lr-$y0^7h}KMze-TryvR+nuCMk!0Ql*$QIh!5s7Wr*(t4@R_hKEG|#IrEM=COvC#~UkyZf4ABfAFWe zteE=pBtFy33y8E$X=|{^M-smtKFfhEuhVXP=vG31qlH1EER`FMiOcUd?9$7%J>JgVFu2`2ctfP-naE;)`@`Zr%hLRbYl`iAeLL<`?&>Hg$~=18^GCw&wm?i zB2^p@N4tIWteJT*-i;@*PJ3fzdg~L)6k&?}lQ9tN)DhB@$QRkK3&GOY4u+Lw_JBWW z+zaMQWBdcy>GLpcdc5mp>M-f6z~nTf+X526gTRGmg{*8*UlUEyuDQdh>*IWsvl z9GDtc6>MGz>urh5Z{E@~xa5si@hx=y<48%0f`?`9hv#w#YDwPc)2as8k17omR1e#L zuQ3dtwIBPQR`)ZPH+yD9lH@sir_H==;Jj|LOUX(*bsQ4NLoek$n+)+|Ok=GHY>&t# zxk)okDu9_ASn=80_WIf}VeP507%6*y)~aq9zsIbF-Udzou0UqQ)@2{_eCUU4B2FolM<;n_TYvicj^VKQ1ybbV~8O;LRm-y0+6y!!KhO2xzU{2J7DWscsN3I`hgb${1a$z{wYlZ)XE5Y0?^HKp6Irp3TA7p zGl2|+6yP1Ts_K6iU~t_OQAGPf&mYWc_#wES%|5?=l~&M{wQJQDxzR!@SAU{->lDJO z?-dyw?Ar$1P5{9@o6KWNz0iagSO8ONSAJ4eO?k~}jdnze0nf9nO>3TFKk~xn!Ku-V zo3_oI{y9akf!R2ng~}sM@Th)WfNdLEJG!B-K;cVUlHN=6)Yi!+KYzbYHa43xmVso| z7#&^D+f7AJDDYtm{#VK5W@tm(uPlguJvMhFOwaq+w}g_#J6%Lyh-}O-n8?{6LyDwf zq?+hItGu4MF3W-PAD_JpyfUS)9B-Oy6w}g_X86!H^>Rw6ZF#UfG_G(dr-i%IiQ7O( zvBy8Pm$Rs+^03$a?w#S|*rVd-{o(BpC2cDBIQI__bDHn^$&>vYX&=-r%OLZDmEvrQ z(%46Llt5%>#!OrCyXW@Wn9r=y=>|G|oBi=ivmfZoT(O!^(lNWJay@MEpl+ztNsUci zkA*7Mh2C^V>Jf)Vz1D<#tM<2zXd&Y8l+wlB2GU0YO>n#{3p1u$56$p{Krc0NXsn zx1;*@jhyfCeT|jB{m5RRX{tp^)#o2PIU|->s*3nq#W>JV#5&txU&e0J@WL*bo4LNJ zsLCvL{w(P==(;q2TESj*2JkhdO|Ra$VKV=%uc?i}eX<_YSL?G;D87)na&+Ez8E~CW z$>1z~X;b7(XmUtTz6z0ih;Oi;-OIzGf&`Kn!P@b_!={*5D^Zx+mF?*Yx{|a<5lMW% z4W@@YeIRpBX$LobM?_jj>x&YyQ=W&eJ#G_xLn~6k9y;3>)foAXM`yT&>r0{BLX4dL z#GQhQ@hXyL_EEWq&&5V5Ua*Yd8sz7^Fzns@1z4{8u7>jKlz)1_4yF)lpT_ZLW0Ima z!XEseebQcYY=yvZN2}FhT`9q%je@NwGz@m~{3-R;kR!i=qV&Q@`4^YP!#+cH#H2ls zvG`vteLvQNr>>Sa-8zzS3#j4O#{IZZVykwhoB^Y4UELt-%~n_WvdcdCb$7O(e`Z=! z16;EfubXwhHoTpTS|s_}!dq-%%J#wI$|cAg5B|Iu3*S1_z1@?)H*?A#ANJmoA!5Vf zPd@0)c2N@e35=y{u3=|;KviLXD(tELq)It-b|WBPP}ETZIj>F@ee6y zasKO@9wco`QJznsXluVIG-r`GJJkCTE=ya zl=_X(8AS5SW^c~uy@EW)gLm`jS?0YdM)worZ!$4p6(kX&J57dZ<#fpUB-MK(eY2@` zP*?fIkJRT88E<9hsD)%xDM{Rqj%=EAx3eB^{{lId*Duq*K#Y5#DQA!FLfroN5%A2& zsc`#%R{K}<$SaE3|3p{FUzJ@ekC0uBel|a(QnoCXTi+DOqWnFr`!wDEV@KuY&vD1y zPrm~*7m-JtpZQo@zk0knecO4lo|`m-iqzihN}DrB-gZ^DeHX!k(?cYut-d=v_)S5N zAg29MXc=`=`Xpk>q_19c`lu!jnLKD zrRs6J9U;2)W4^r=o9G|VE=f%6)&nY9TL~}0%LQ0l)+M-+W;WuT(#U2AB zT|aJIWZ5dmnO0NmUy}%(#zJ#bp}E;bQJ$W=gTGrX%679bK|2mEg%AF^ICdK^PL6^% zipapxu?f+4cxG~PVzPN`d>SS-D+!wwn;xHTVSzDE&&QO;mL}y^C0Lk8S71B}vO)OH zE5&KK#hbuF?Fy3C#TM?C@ahV&Bxl3ry5v!u;a=$PWH(R(N!M zL1sc>LsxEf_EF`J>ZF!usWlnpGoPZ{E|2SWYrA+zX;k!+5xb^*zMsx#HzN309du ztK>Gw%${>4Zh!yKqLxYUzXN>+!XmL|pPI09cd68oZocXy(Q4kzsgTD1u8i0S?5&%_ z7i5H!M40{0*-XQN9BQgcjeDBquNp-X@Ne_Ba@$Sm(O*jye3Kt`*1W>3IZxi1g`_ZC z6NXvnz|Qz-^9rfzb}C)7e( zZ+>Uvfp}Q?c#nLR{7*q*BWk%W+Fm9tRFGP%JA1-c*l+fqn}3Ig$McvGg?ACFZ`W4J z==sfuq!NaI=!At#m}Z#eQ;(;bX+h9nkDrEBi1?J0^VcHjxoWwJ`O@bQp7`0HI+Xbr zXUV98Em=crr>&0^QFG`zQ<;tSNh81W|HMDQRPShKDe1PtH=ItI=Shs!o4`4i5sLWa zfSagujIh~PGhFsio|&1Gme23G_^dNxmq3gOn3Srd_G6KuV~r zP7;em&nT$g2D2HrMW6w5OX9HqdkdeT$eDDbRVWCC%n81e-`IF8FPf6!PO06u=vJmb zeXr(}yvjQ@fzG8k@)6~Mr;cBKZC*qyyCjR={iBTonBr+z3W3K6sb%=bu?BDTsxWFt zO&_Ey}tg-kQb3$9avp^_;`?0zNf#F;2!kFJ0x&lCcREW{?@=-2xsfI_}uJz zM5PP5y8ryW$s{9Pzd~xz&~OTN9y;+gIgFE8GZrikCVOW$9{)SJ9Zq(=N2MO~`=;eS zE%?~(?t$5O?codBWPvlCzgabRO@)649F~RMoGBdyk@?VsE~%fOEon-6+K5T#Q%VRiU;fHsvBT;Nd*i!Njm|(G^rm&vv$?#aO!YI?Rd)A!ZF9G zr?lCLT<`}`j%&G+_r`g>!Y2n-VEIqMwOeNx1aOj-1xHL*15FfQB47z*)Jg`QK~X=` z7yxTpDurV`wS~%j za3=SQJfVqja*|+nLxd{{B8-alCQb<8@j|Fbg#$T&f*Am4hr0NtSdlN`h^F7fps==-F?-s2ot^wiQf7O?xg`#M;_nlqpsQF2^-||5@&^yJwooiPNwy zv{M9}TDPQdk_|>98OzT$sp~e)Ux@>)EQT{>YsS2R#u=*o(ePuX#su53nMCF z2~VRXuhNZKETde*5z&zIs~OIU>s78iVLkrV{60h%BDA~P70+1oB|{UMls3Z9Zm{?S z{F*V|89!rfgfy;f3*3JfV4mk(B-qlbF|joNK4gs4T#Pe6i z0LAx0=M9CAFrmMP9ZW3uz}A$h+)>Vb`MiA;1h}n{!RoG?vkF6{Gf+x`La43k3X(18 zFfK|Lic|qoJkMz2EJY+raLRkkmQ;y=9h4F>(X?sfK>}}_r_()GsMsx?Af%7eWAW$Y z_jJR4Y_bRsX@3Syt?t6noCLHXGp}g(K%yceaj9be(Yozaz;5T^@Wx3PztFRrkn24# zO*)uG$Y?A6N!cX2w%MN%x6m!C@y)qJvLNdU3?67c756lB-0 zOEsjYTB_JQwBU`{XfJb|Rm27nDos5q7OnympiQh%4@n~D9*u#(Xk8HmE@vPrxmZR3 zvCvCm4zM(7vJh}JWM+woS&rM>|vPY!?T$DGlDF+*gMLSra@v*&EjAT>3S*M#X#NVWsag1s*q!sUPs@c zNS;{R6!cI9%Ox-(95>AbWPXEeJv8WOp3WditkvSndDEzzL28?6LNiIvm>|NNQCu6u z%}fBJ_6R{&W>-8(%|__gPJ$UIkX4TTfq<8RC)jl+y$cZRd;}Fh1R_wW7$o-R22d27 z{tRmH-AsMOTSGqw6sfE4sS7D=$m|@w&9p)S0}H{mGhsLQR4OKt$rM$4sCPM+y+kD; zcEbFi65tO)el^i#Q>0n->GJ8^)Ju)wdK!DOo$u`nXI4`lOL zM>j>44nb6a%Y1lf62e2~=9YzrrV?(XOfivUUunjx5jt6ODG8E=^f8~1kTSr@9)5zN zn6%`Wi47X_vPSbL#j)<2g~TTu;!nZ@FT zLgaBmbjU8iV?;mIp*2oZUfo!n!09a5X_eq0&TP`l8;#0&V_lShiV}23mg?E$^-`(Z z;A8~U{ffYnxWF42$a?uU|7&NKkXg!-CcFyi)OKB*kyzY`1b(q9$rQlMrKs8!5_w<@ z<>bL!@L<90veYYS`z4Zl<^``HC59)^CA|{LfRdF0ERPh?q$HR~S6?m{tji2(Wri@o zGxyc<5};(on_^Iq;7Vudhc~X2)Ma1w${JiBO!dO^_e#3XqSq&gk0GRhQ|KW>xQ(?p z9+waHg`5=WQ;*?$KjFcL{wW0I2=~(ctcqk*xI|V`tSU%o>nV*Y@e@HZs|`=?rt(jH z_*`P*Uv#|Kv8zgF}_H+V4q{O4Om)a1j z_Db&50uDW!D0#AnhzuTc=@jQ`!OjE&XQC_=iI^`$5k+t00|}nie=Q@|h09Z$YnZ_o zIP9j_LGoMVvaRKmV%tl=QlMlQkP4|%qCIjj5zq00{DgR zt;Qu2L{s&N556@SZ-mEHQ^xU8b_7~;@}8Vw6Py{ZQd(hF5it;BB8lRE=&nEGp>Rqcrfrbm7o;bA5d#XN^7q z^^TM9r%l}+^-VP=&auc;tY%1*yZIOkwhK{_04sg$2k{gl^FzU*RnKOcas-2cVZIQn z;|8C%TF><$(UG#mNwqRO)m_f5uLAs?g~^yF{VDg7GDx)^@{?TDQG!_^Rfpog%|xQx-7`qyoTC^qO+aHcF$lr5DM%Z1<8D&Swar95cikU4aGP_3AhZGy zODm>w=SJTkz~;NeHJ_jjsmk#->TIm|ea_N`b7JGw=A3I#$>(B{erH+fjt2F*fqoKS zq{Af~Nc~AG0ZA`JTY$$|tEADdrrnhrL!S$ioiGNMU#fXuNy{%0o!O0aF6Db6c>0Cd ztA*6xrqNTbQED)SXGX?9^)z2W>q++X3I-DXv3-#Rs6OZrsdZ(}?@A1hj93pQvR=wS zqM8?ZMH5+bOnpZL13TJthb7dA!kX0pArkjXUIg}_zbTlt;6U$hG;;^2G=#~B-suML z)9PT!>nz#AoO?3UxCESu+nOFK;29f;sotNe%dkNpSaNn@GMB%%n%;_FW~M& zH-M;VXntoL#=_1JPb#}RQ=>^NayFNwNJe%xkPM#+I|+}4&JHP=*{gD)X(v;U9^jqF zW7~U7+{NFrEt~^8jV4Tc-g-OAct+RE-c@Bo5dCk+7YFREf?!0yg=6r&l}_H34r@*- zUBX0b^jab5hMeXPx792x zP;l|T?lx)kprrvs_r#wwKwru7xjTu$Be1q#X5hxCk-a)PWJ<)}9Nk!)?hLy4^VCDB zWjshJ896II;!0)@&*@{kqm{Pmhzpr!9e+zJCF>+bt(^xezj#!jRsyCd=QRR1b4Vlrh@{aDSk#*qDWdFbqE2kAoRkU~fQYw-q!`uUWVEq_)^(Br z`>TR9a2r?r%hA=t3GFLrBYh3{;6n|Flk?hjGY?pKi??Qm-;#LlK&ccaDvs)eI0!}~ zYO|cVCQi4wYJ~1b@_>7&B7Q9D8_22rU1~SFRX-CSNsMDI6K!w8HGcIjKWcW`J z8oo>1@1IpMYI8zi6tINZ4c@e%zh@)~X8wb*N4ztKiB9DcS>t+tk1(J9b(zn*$Kh!z zi=Xqo8b}@5TPSv04sX zqYoSFqpFzVGQK&y?%=N$rr}7br{>R4i)8sX-k2RwZypcI~PYxb{Jl(lyi3l$#`m>;DmT)^AO|57-{L zphihZj1Cd$5~W6WHzM7R4#{nd5rfeUqfA)?tPoZ{$=4BqCQTwoRaGpv!`DLHUsuigemD<;}6-Egz5RybZWOAwnho!p%Vl2KQ=+MD#v9Q z*d|L-E}yJK)ckCjmgVc=#+YY>n9(5l;;_uoUV2c zz|@k`&$>dtbTujB8uXpud9;I8C?~Lx&}v!;LV(VG>-{g3?=`}xfq{oH7TX#!w97(I zT1n?cB+B{2$^wLpndA`wL*k+(t*7NTan*Fx;o(=)SMx)2P&lXMz;SpZ?T^|O7Rx^q zo1B{MANQV=7x07vs$0yuw|0dS8TV;zW<8E2PZUVxII(1GXgqM|i+uGmsQorLDf+y% zuTG;Sc|Y9)x8YGr%0rm>>5^fT{p)Vt9HX-v@cw7W&5#Kl(GsMY^p)n;3JM`s%l7i%YFnT@R~C@REdr;ZMdCnD48 zEeFR7rVHmvYGV37^&@jiB12TV!f+XMl3h2d&7TLq4is@8E!;B}EZtLc$Kovh4r2Hp zr_N0*!%!2@e~qUQ`pW1Gv7yG}zVy710wQ&?ZyTWRbp}i$h2w%RqgUlZ&vsuZb(P>% z;_Sm~^UE2oJ;=l(miMV<9EA+HI&z`B#X?ARySnl7R?pU%RJHnrWLhwnKJ?}4=@4=4 zbf1C5%365uNV$As0?(Z?ds*o)^b$7I(>+YO&2F}tw`Zt1tCOrA>WTQ-OCst1_PTqe zG09_P8d$TG^PrEDlcoBj$FP5dmE(+(+5U}uB+E;o{;~0)r+wcxke0=+aCF(w!}%3N zth$A5rRkpSO?~CJL21jA33YGb6&0mPd60RP3$@^$W7hH`r$bF zQEH$=&_h$*O+qqIp@zPEk z|5JJ?HBrNkAA&rVG^9YWyd_MQ%PgT|B9QCr`3*%~pi)}7ttp1}p;2QB>_u)UO zNdf^<$0mSrF{hIa6HF?%A{Jhb*>Jlz@0iDcmR+4IzFJC>D9X00?{`E#Xc-Xpp8K>D zpeYxg)zIJPDQ0i}CmB+4&(_9SI^lGMwdwg*%0z9^MBl-?B~uBA`R~c3A5RsOdG}*LKD#BlosV#fPPgg&+C9h$$M>u-vF#%o^qvd*hoOp3}8t{E)ra zGJ}V6zz{04<1V*{{x$E(=W&CuXE5+ndw+jP^}6EGkBM&skNA8?DWa!R2kx#WzA@zZ zHY=mO0jpQ=|QR`Po)58)tdz3M;Ll_`=$t410WKfY3) zuX6dME3c=&wzC9%N4cR+bDAnej)z6Czl7Cxw7sR;ZYHuYb!_ibd95-=f z##11O+EzSFtX>+0rL=Yqw2Vkuk1Ar(QGyNV1AltQ`%J2%26pX+$>?Cb(KsWF31E2*A^*Q<$V}&iPoS zqrXi1<5u7Y$8CjUAsR`}inK#e^uTqluT~Qu9&RBCVHyAASA6uIGiO6{%cN3%aWqBk zN}(M>(fUMA*@~wqRI~J7W|Z(T!&J%aTkW?d&i%f$LNBpQ${2`et{7p7t8qHc$KC&x_*^Ykhum!+Dv z(8Lv#!)iwj22B}^jQ1u0RAB>*K2zCMdd3t7-^JVxs#6x{iYd%7!(r?)mcfIS5aaIL z8_9;vCDCA+HIXF0!32AME5|{-&0?75F)u_)+3Sb%GAPuD(eA9@g)T6d;lzF1F^_Mn z%Zm)&5ZY=W{(;(1r21n8w#|>+)fh7&l|lQ3kDEm)zsg{UI$hL@{r<&{#jVN?K0yyl zM$@@+kHdVewzWFVzk9+9P;~Y-jW+I;9s^&Bp1;{~>UGZ4v0#e$n^K?b({YVE{VRQC z>Rv83kwdl66^lG%;$z)^7MA55W@(dIk9YfT%S(@14~nc69ywUF7mPOXU9{Y>Du(=& z5whH;A(eVyI`L?>NbT^Aei=eKX&02)GoF&B8TMXO&Qa6+r9`_gh#KSBa$4Mcm)Yli zyf=|60kn*!b$QX@&SksG@J!}krrpyO>xdSTd;3489*kQ~^(#eA$^^V9I<9!ma}{;d z-lX*poBa__DSHni+SJV)Two}u0O3?@C;Y830h~xeAGi4!p%DqjUtZr0qjiz((0w!l zO?hZUFQ>O>w{IQ9RNFP?iO<rE(>RR5Fi-%c$-(fHRXyyQCcPd9y_?8apsNxc@+NzW=QT_aBX zAZQnHGm(T9KVVeL)@C#J4&7*#z|_oHQZBchJwp%PdM0`U1D*EZYx}W8!0alFSb7<9 z^-R2eZt?i8U)UJNXitAWCLnRVAOLO(%G~0O?=h?+1ADoxDcYpj=+S;ijyOlIn~0H{XfD-!9i-f05pHqyMy}g$JAxX!l6|9L8&Z8x`-!46Mkx18X8q z9(cCh8#cmS+0qkqW7kMO5!ZrNy1O%OQMhG@U08jgG@eRFAkJ2|eB}d)k7*@g(b?w2 z_eEi`KF3hDG&$kGJY}!7_Di)vxYA8Yw0Dc77?lJ1miHk<7*mDhK5hgqFPyTx6+-Yzn`iMI|HO#Ng zXeflKf10WJ1mAwB4f?j2D4r}j336QzBpSi=XxdW#(CD+9W|E~UQ?A`GrHG_z63Uqj)kWk_ALUn@c6orHyoX>{ zI!wg%1;t4OD&+~tB$*hW-E?snzl14N>~d=Wv;)+iq6h#;A8Dl)DK(lZ!&IOlRJu2a zO;(*RVomF{7w>=XNuQl@UuG(`3xFz5foe$*Uj$@j=0fX2O@06rh%-QQ7mGk%bmiM`u@ zq^CMw8s=1)Iyz4z!v~mbU)}Wb&w$bKc=y`)j4r0NTbW`eaa|HBJ$OUzJojM+{;)Y9 za4nf1>;s%8yLUv{%$kOjAXD(B@+FW-Lg_lrcE$CO}C3hXD#gG>vZIq;nfJ-dtDh<1pdb~?(&Gz-^N~aiQVOp zA}A0*XA+T{$6d8XznrYl(?uJr8d)7r%so{AAqzOY56MK%fsFO=j5X`uW6DX(PA9BX zq>#*XM4A9;S{wr4Ap#nb2i<{Yk%>x8*C@Y20P9Tc&m+n&j)!41j63z({Axfp)H5t`~VAoV5dA8h`tL@Po z7|BSeY`YAt5CzG!6!1NEd!2%cSu5kq%s(BAd0&J&YQay<(hhVtR|u2vs@2XY;Tof| zaPiJ+1WH3CCf=xLpu+mo2+l_)6oMB(718JV5ORJb#J>gm^RlcXN&zxW>fc8(s`!FT z^bUg1M9B;S@LZ5nkOATVVub)HfCWhe2>?ip{~wb*5tD>XPDw=v%K!hNrc;E|{~Ky1 zl}K0pkMNUR+w{LzWLy|SOqnztUEH&t*S#5Z^3t`n{oTDi-RLp9){i;ZbzQ$DcAyikn=2#j8XIr z)0S~tA{5NIlq69(l#2d&Rp^|Y_)uv^AyF!RERQ-(SkkAtAjl-cL{nIkjY+yzChuAnxvBDwoQ*L= zW0B7Zj}nQsQ2dXKvjA|#BT}Ev&;AE4UUc57li5=0XL#4(@9fW&dJwDGkpX39b{EQi z22x_SFYM}8;IQI=OLT$;7i{nMv!Sx;OFr_|yZC}+y$K6dNmRvJh=uJoulSx-~) zVECY$ZkA#enY;k27N|mQ+^#OGY!fc6J{kj|L@R?B8XFd(#@OzK`7~+L{Aiqpu;a`c z1ztkTc7V8HX zHpHS^_o_8-_j^$5)6#|fJQ@`lat2a8J5c{K-bE952&00Ml7Enyt+k&(Ij?=rwL|E@`$fLUsPoGUy zUd20h=5O(Y&FvmN#)9KU|7oKuW%x$h^zjdGAAq;eS@rpw}%Ku5^MQjMC+)3<%)tW!yVS$s!=@EZv z&j0Ei0p3@^atF>;Bwh$VR@=Cs^!clc(cp+TrhfD}-R$M@)1?oMhj{Hl!c+QB*cd3Q zs<_Cc0a_J%LSB)pK!8Wk7|gBZeNPmfcmm~uk2|aW!Q>#sQ8_MTyy^-nqQ`11k%adw zdf2RZ0z!B8Hu@IVfNpWB(&-jImP<>xZ?_l7{{P)$S1rkp_)#nkByBA#g+MQ zo#v71Cd|f+SMZt#9bixeGa6u(#gYi5yRL9~XQM=O*6~>7Em%E%EG6WKNayQTC3OuY z>ve=DCLV4|)2dRu5g;Yk;eek~((`1v-OFpsK|=`}<0@;d4DWKbc|8sdM6Zk#`V&BLnxbfx8sJGY_ zms6FQ!yks8KIR{Ba||Tg zjVjDXGjQkjYUgbczOUVr1(dS%c3xR<0b$cB_JLaqu8pt`n@suPK++{Q!mzU`%0FxN znG{8%%g*V1^vYb>LA038h~D(D)j}Po0Ef%Hm$qu?1G?HH0xZ=I#LatBQN*$3c$R`y zY52{1KfC;`YX6MJ(qy?)uGk^%>!rd*Ci(|7o~{BD3KxM7R-9BdZFyvEj2&{ZuY^hh!yrDkb=u zfZ?^P2B2Y#$@a=FtLkz!rG|qZ6dbeP^p;XM+!Nw_pVxsWoMJsYP&| zbTu7oO=U~m%D?A60ynYT_^)1`jsx5KET6A#g^%;h?d=RZm{8_0IzK>lM8*R+1b9Cxe7FB) zuQ9OHMQ2w2lZf~)F#UbswN}>dt^)~sin}1OdNUd|$t?%zyLRqph+(NbI5+go6S{$; zMgM6{+R7CAubTP2la}IoN7S>>s^H$&Lw_Ff(EPGjISVKH|4F6i3ec%x`h5suEOPQQxX<9bu4TzItNN>DchunGBOEEFCII+ zDh)``PZrNNZx(#}bc7x!sdlbL)z=U{RwL6-6udP9#jte4JL^|uf7!S58T)Wo29hxh z0%#7KFib-D3y1rKyLDyoRkf+dmcbYQDNXHknqRKA+Br=5TZ>fFyjiOrFI-N~5N5{o zoZcW$Pybb_DPl_Y=lZb3 zuR+m&zupN#wq=ETC%s!7-F&)CgL(Isc8x;Bh^%)*PX3u@`R;D&IT65WTRRe1vE%-t z&ZcTH_?eZ_RyCZz)k3<%V;I9V90oENf>&#XHlJt&efQEstQ0%_sm>$sVSLpVO@GP~QJ0$GRMvrsFv_ra#|ca*Pp7U}ekgJ$Hfc+} zf;{2BTAk)?b+ho$hETFdJeeK9zvYmwRtvRq7L4_9e=uTme-Y)B7uB?YIv|g|lDB<0 z5-go)bE@rXR1j)$=E#SQc(3KkRj*qjV@Nk|&A9yp+yO#WP$EMiF|(w0HoocY2rDgf zn|Al-`JS#zK9hCEmU)R6ynQakgLwzch4Er|3dR)&e^v3?!a13-22Gc{-;v{n_U(t<0+YetXQlzO?8 zVLd-!eg4XtFx?D2Z34K50t$6P{_Y~N@p_%%=(1XGMy5>ujo2sfATJAaK&@`14c5TM zS)(iIE(?=dJf-U~#9bI)y_0rXAE;LIcn)hxsui!6h-f(Tr=&2K76x-6K+}VvP0Z?v z`5-18Yot6n@tBShlgBn}!PUgvqCuV0Ms0tuzv^~HvFD5G@K5s2+ z(#Gg6tHq%+$ajsxAK@BiV?D#9ji^nCRlo{pTYNu{ud|G}8fMt^vM{s-^%9taZNM7y z*s~@3ELIZ=U1E631u}usTs1s{FEMbj-d&h2Sydo=RZDF(5nVW(l4X^-a~@i4>s+Up z`X4ICawju*JM{T7-elL}yF9b47r58ie^@6RB5d-0+r6}=@QrN>*Ns`WE_|9b@QZw5 z;;`q1Omb4Zp0;Lm>~fKAa(W*yQfoWAqYm`0BlAvm>Yh%1bFQwgfI1RNVS_D5S!1fM z4twNoOLCz!gW*JDy|qC_G^8K?shP1Q zhcl3C@G15TpQ38`44j(6Lio98y~SE*(w)wBkr(`<;{2Annn@T9#Dmy|WMc|KtQ7I5 z*fH5v2#nOw&)4D`tM1l4eYcZ&@guv+vi|cjMgmkpBSZG&R=Qq|^HQSqeGd=IeAgKn zHE2h^Pe?>xlq0OO7EX~PBpMo;?4jgl5Emae!&x2LM=;wq!5@>wBk_ac5D@Mn^OIl1QT^^m8Rd{Jf;GVYVU;SQ713P zzZYfYdEBmd%&kp9q*N{EGR2_ubG=a{GQ!A1vH}nM`MZY_ro=55A=a6j)fU?l4!|i4}jA`&%50!vUrwL5CojZw=M{}~b9=82DvSXFa^Q~Z_k1w$c_P3B( zSBKfMi7P@^$TaJRW%6QyTCA#L6?^?wBq7nq5qbXNL7TVJV5Vu|^BdLRXjJI3T`UFW zxo}|tjfJjuW4g|d1cv3*0Zem^yI)XPDUW`&{@+X;J3qi>X7dk|V$sSZ_Jr$%PEm~i z<79PsaI59h&^GNSz|@XRq1VcJUDpdQ^|5X73SGlgy)@gtE%!mZmA1dzQQ31<#;Fko zDd|Gm>3pxz7WEbvKiW!%)xS5qG;n)hNG|eCpvdA3;KvBY7j%DpPoV~={dM_ra5Ww8 z658O~VOQ5Qv7gB)9DP-&C4cJs<#i8O&^j?*JSwaqyirl)ywW(ruC;)O-tVc<*njr> zEJCKlj`DlN*{w*WtA51Avl|Y3T=5M6xNboKuQjOg-nwb@mM8bzTZ{Xhgu$nL9NtWt zoz~QyL)sE>-L_c0oU*@ViG8N>Y+l-)@F(%NUKfG3b`k{i-hA%zkhYICmJL<+YWsZN zApf(OBFuv*k^3}1BMzf}su0a=>4P$imAeA=dGGhi4|#^=}f((B#wiDP>~br8oW8b%gI zC`KMK%yj2I8dWAwdc}Lx#jD>bZjp3B*|wJaq`IanbV&0%JGOy}*t@4^fz<1dzf!9~ z+W+(@bd1#eZrhXiH=$`L#kleVSFz)Ym|8-E1?OH1e^#pbNb1|B1i#xo7Iilq^$;Vi zv_Y(TB%bhf8AtR;dhp%1)^4h3qG3yMWX~pArRZ6>NM^*S-{mC`$4YZg`Zd3RQImmG z%pH(7L0&kjQ8nr{CM8xuG&3>9FNm$+?$a7hyLLvloL9PbnrtI?LdfhsqzOf8aQ+us z6Z&r9BIiIMM~kAbzNdEJ?^KndwNYd>A9Wk9q^|=3_|<@P@HGO0A4%y+egM+tAB$CYsx?mLkF)14(~MN zqbxwczNvt_u2NK;d1&3#PTkUK9oR!1m+>zD{X9?FL~nK^UbV5GdQs0IJZUo5s3crc z*ZrP?nSf^ApTR7N(SWqKaVfG2b}hi{uyO0uqThZAu~(C;L#3*#-pNI-YuiJl(G{3! zN;T&RlxhYjc17F)EPl&juNviK6nNh~#Od`k{oXFjoh<2aEAVY<*x%_=C3N|Cxki~T zG3vXz{?J0`R&q~cY%(_LFRfaf7)eNM8(0aCS^5XTgRsC;TSH1%y)|vm_6XqtFxxf()Et7woqlU@-pwEiIVK3pXY9eU5Y1F6fP@d77E|_xGWb-M_{kS-q3}Ku;CB zr@%WA+pN{R%4IG|8#{vLKfdpYjoO>-l_-x6uk`L8y$*N%{a+4LkB{bq(TOh`XfEN) z@mC5bjB{&0*K|@(>t>Vlz1JQQCI>VdkEAk)r+f2pjK6&j(1m8Sn{tH?`-AN=x&EX^ zuP@q^k%*&FOrM&4QQt&ko&Fn(36C;To%&W^S1{lm_$mA#;UUOt{Zo$WG6O}IY5gxYr`T7~72)@GSiqpT zxR@9uCeAV`5tWpZlAMaMNX$%*#1#}K2}Vc92_gxYGF)X5vb455u8dIISYIgEf~zhs zDX8qIYAP-)EqLAB-{118YycAoOhXd0-P1o}>*6esnV6-8kEw|ZOJ8T_mzN5&)7G-m za|^bYajQ8$f3Ft$#fi;T)Qu(my9Bt>+%E7fS9Jo?BwPxmPKiAtzn~zqy0eD!I4NS* z%P}>{4aV{&nxElJa^a}Yj(2A3#)rcTE#y+e>RpHP?mP<|WSVlV!ks`Uz&bdqdnn3G z9(Nssyn*=VMLtrEE#(Q1;PQ9pj;GRCA~0?eRAXMNhJlOIW?A3OzmFCQn|g4PX9ZMd z^QnCNX~QTk`!<{y-H&z?Z*ruiAD)pt*_}x-;(U=3#hR~TYavY{GTzOoSxrF{8y(a< zFc7zUv(@zy?FdTF?RnzFwH5|^BOW*pOf z)UhCU{bOq~urqTW$oyaoP7$!#$6o@IbS53(_EtU9ze6ujtry1W5%v{R9nZ=pyY`Q# zECR^{;|hQ21*De^_EOj3({S4WvP?$O4{3I^TYmN}a^qh_4hclyWMRE-cG^0%vc|?& zoMQ`53hEQaEJ+#&7FcN~K}%JMJce4AIzLTlzF1>@WvYLzwyhe@Ik`kfh<|E!r*lMU!atauxY{DJehw=cv-6Y4@R*1 zY(&$?d@_V$%ffmBA~G@dxJ`$o>tgG6U8k zkspwK*nW6_TY{)ue807S%Zx2yZ`OWOY;MEU*z3GsQg*kx9Gl~t@KH>BZR43`>0J4$boX@J%oCJ zTJO$t7He>{5FJas|8rCOz#_U)0H?xx14ii89zjVc;JF!&2d=hZZYvK z&o5$N1<#Q@GWL3|{zWol0RZ+-isYRU+hHuu=G*0lwaVk=gqxwTI>&Hb@=VM69aDUQ z5}}5pNR?=;^FbGgxSVCLjjRrexp1oWVMy$cPC`ngRZvry7Ku4;K&;L+(mg<&;+z{m zHTyiy2rO8oph6}LJ3uy?nJKv7VTUU=)XSm7_eG}(nwn>A^Lv(rlOI7Jz$#fs>NBWq z*C9AnS1?w4xc{!??c}caw^zJCH#ZrokWsbFYpA3*np*703x{^jCZy>$yf^TinnR^36lZKMUFZk8| zNIbr;ztS2(gLmT-jnsc{Ai)^*vxaAofa0Jrr6kpZ4vA{Fe)yq{Ux?yTiqM$!dbwRh zM2)HmC5}xVZA;;-yy97VbeYcFe$kQg2`SOgqh5kQdQUSqVoh}Dyj{Q%bJa7Trk25P z4gZysBpcJxCA?RepeL}*RKsTQ$~s~jB=1Ofxi{WZa9V(Lo(>Am48LS7vUtu{G>egK zs?k&9H>wn#hl5)sbk!XCG3Ag zJr*uJz7+~@t26oc9%Oe3lDpep_R&)8nlNR#=4p> zWOLTmU~vP&HBNkmnWGshHAl~01^oxI_(x{2!;9hbyXhzC_^~ofYxO@imNPyfHo>rq zC1K(XvJ-Ijgtwm-?tn?zCufs<&m(6vOjKJ3ID{ags$(}N#2p%iW*26C%7v^zEFa?_ z32&;M+Ru7tTyzzBkGCQ#2Em^D0S7MrPS0@I(fL`KPk<=#v3Uvl@|C5S>sWnamD&Ma zOrp5=HGxdF`8(SC)0pE0qh4xa)$^SzL!L%okO#>6O?ru_T8480gdg_$)xY%ezD?@wq+?C`96riMcncQ~UUB@?hWG#xc6w)P2k(g5{!(D$H+ zhd_Xk90@l_jBY62UK79O%TucrUBpPP%y0NqXJ5;+eYf9BY~Z!xTX!(A+81;uCtld0 zMV+Ok*pYQHCrx7%71c>U!B56d3;Bfz&NMY%!kKU5&qlr(~h0%HJrmSWk5THx{KVm16Muxz1GCsm@ z>P!>glAhKN9cB7T6ziMr0%Lb?n}UPB>vb6j!i{9cLF1 zgbU3Avhw;@bAK%9dX`3Tz1m9rc@AoDjBK~hS*@k-^Agvi=QPqpq&Pr$T74Gh&aYC=@w-rM{3K` zxBiUVt}CY>0^HQd`*-~f?l*uj3iYWU=OvbhTSHePjfmd%&~g=uu2-uR?>W}V+`4Xl znd1?LpRb|%6GgDMfWPMPU1!s5J5bs%0Goji%6DDqR3w7pdasI{yIyLq;S)d@T>-{` z`oe(nIbslAx_2D!_!gnxSKis{0pneugt*|NNMY50If>{t3M)8Cz~Lh3aeO>`C0Rrg zjVvY9Ks$bO6L{q*)qKS8K{6%|;K^Q3_fE(Ly$JdxZ|~?F3os>l3(8oeSdg zGKtB^K{{IVAS@sJ#ef-1kZ_&|IDJ67yVV?mL<$Qw>~kS`$yIpBoFNEO=ny8642)|b zIk*KqGx7eC4~|$I|VoI+N$h`TBjL z3^VbhvA_Z(N%dHD*X82oBuL$+(U@s+M+s7Pb*z>(?LB#x5)h{=K+YB6k6Lg(0R+{8 zpz-bg59EV_b!Z#`sYnFL2Ze`S^NRk*lpm^i7W2Sl2oU5@)AU3u`4|{#lU5^#@Y10X zAYfHlpwlk$^eM!I<(*tL4Q3 z$O__f@|c`b<4vt~X^=Ze(Rr5@=B$SzAVX(+7k-vVd@3eBzp&3d>Bbi~ont#BvQbAD ztEH`GPB-Zx%^8{2T$39&4cObo*Bz4334`{9H5_iDfwjCjSR$OBObwAlI;QzmffW&% zJEFi+1BOzG5c8a~`S_Q(rFoS78o>ErjUcdw!kD3ut9slS@Ny|XGb9CBXu}VNt|}^c zNR-AQ$Q~_;xy%LORI!-A!dx9Aom2J@@6w`p(wcBcn?e?bBtsfqhQ()k=8~Si*T5Ho zNCdQ>1m=SVe2IiKuxTjr-Ypc?^7hOvR3-OcBav<^0n6lI= z8mvdtF;Bpml&3IP6vdabw?0IBg`M;j2#jm+N|a2KRFWK7^y)ZaGQ)%e3&|oXWtUTy z*(k+}z>IooNWM^jr6+p|*bWq403hjD7TnZiaySRdws0v&ftu-A<`GFk&egBcrKgHS z7Gq%zzdrU1DA}bq>vaQ<4Umq?xu$TM)FYo+sUV6(t&${@d+diU7*bHVj8Dqo2Cf|5Bzk7q+u;$U-b*~!0c6AK^(~`|#dfh}qTznJwGJhw(y15=K=nYC# ze5kVKnz6y~LP$%TiTpw$y>PAIIKRR6W$`7U`DZ97=B9zl z1OyJ*61F`}X?IxC!RrLbkHO%1av~w3%X!b&Z^uC&*0YyGAkd0V>`?>}qI{8-ti-~J z0!l}MhKs;)N-Pc%HJ8rMH?ynSqaYP}G`!<}oW%rgZxA*@L${|IsY+=GNOFWFz%!`> z*W|6TTRTEB=b%oBQJ{lH@O&~a2|d|+VGk{ppZn!JR+6uI*k zI9bR))h(jf2v!v_ZTBfotD~dBw~^43=bbg_pS9TC0m%%#;wr5Ee0-Ov-Z>EpDNxc- zU3;hk;rvIb`!$i~wR`7GkN;5$n6asJkNhr*O1F>=ddH-ieWs~kt-B7;GpDLFy3tkF zVkZZN3PS^GFLYE60Y$Dfc`0D?Rr9KT5guVsBr7!kBCgh+h(|I*YZ^Kww@Bp9t0w_n zb%Yw}!49{<1|*^dH%$`b#rnt%OnCiT$R}*4z(tXb(oG`Sg`B+P14locqJbZ@*2u#J zkz-MBPDei{Nql{ZzX2L_^%geX8+CC?4Z6Dul*D)ShP>|FdQ;ce9DH<#hL0@FB&Nix ziZc>vd)SJUD0kh;iz~?EtDw+sqBAu~aprqo0PD3SDaM(+)s=skaRQ@Lt$euEMXB>f zM3!z7EXVypLldu@IijJAFGG=;MIaI}h^};Bw5KJzW+;tdnwjT)g?lWmMKJQmdNlXp zB6JAAE8iaKC{U)aKCp$9y@xV#M&)?mWKQt^>QBLhW?d9+n? z+9U(Tz_JuA9qiqgEecNnDIprv?bSEHKfXcjm_a(VnUBNESe)LUip>SyWS35TV~#@8 zMjU!lcrrcVfh#cs7$wjLrbuNrOfF0uk(RmjgeNxg)y>U}vBSYT2+)a(pYpGM!};vf z)*uD1D3b|?iyzgyB-L^M<2%3bB{t48p9jksY9$rrDJPofRz7I3MDWQ=l*0XHiR8c* zTMD)21pOk?R^-(1#7;&c$LB4XI7b{r-#(aEoX7n|=rc0irpdZaq-bQ)4HJ%TwL zKy6ZJ*U))F7WQ(CN;O*H!k>KnSqW{oTnoVR0*eDOA$)V0k-g-SZFl<(UV~IW#y`;7 zx&kOU`ft^L^gpJEpy%;kUW%2KMZ(B}d=?Zt!!p`Ham~wLws0qhfc(Bm_pTY|O|iL_ zvRXr}7k(gB{RiQh+}}Qr6U~UAzqRGN%BvE`;iPG@I0T?kY|%o3Y_{;zz+H{7zDz4O z5FMTjnpO+x0HJ}iQ-*NOf6lSNMn2zZ6%Q#${W_VI__Mxz`JBU}Gyk~W?Qs%5?|CU< zTY~KMQgYw};85F#7n*FNW4SuvAZ3c6X4WVfOs{+dxA3qtZ3o zBWB2fEvKc!Z3^Kz$I(RxjL`c`R$AQvns1q}B(*6N6B%v+TLNT~-4Z?(3I*tI>hQDi zS)ZSB1-H{k#RC(}(>$C%7fkCWL~lyu1adR;gr_Caw|bqP0=dJ!C|c9fKi_hLJLtMN zaFTBj)jrH2$fD*xlI#$F1qb5>E#pFn-kQ*&>U&7L)MSt(p+B zbq>!J6HrLlwFTJUfW;Ke<5WxWyzIf_*?kG}t|t<}F(kvV6JwK>9{iN{#W4NL?+594 zko+3On_t#W0SEqQ{<}`Uh*y3%N|8Pi<0J-XBz{|DzBO*T>zBBeokY%aabaGyCmYUB z#610Vyehi^22X> z@5sQ3vyh1!F1=$lEwAZ(+SZ2-w~*o3d4<+v+XTSXCeWA}OzoSDA=jRg-rxDP_F_x& zH|Mfd7MZKBz6BP1C4Tx)8OHZWWRPMtTn(J~3s$h`!T*SMW&z{_SP`A@_&s*^V$vcy z-^1k3!B|4@PT5nsuVOfJ5EU82{Y;Q`$+w|R;G$RezWBuhz0hUesd<1}x~qfv&h}Ki z=8KR2c`Xp>ab;z`FF{g=83l)J&5y{rptc??{(PD`S#rT%!`y?1#rtiAMJA-4(Y6)p}q>lXN zOooA(_54w5^dDdF%-p)Jko7^1HQBtHp~@Pc;ATrV=~YTZSjZAGE6rNHEM{f%)K~-> znS*UVsIO0W|GgB#+?A{rGmKiZZd!kj-CvIE*yUd73`xZNsmpg*A#9Qp?T5!+&V2CH z&K;BM;cfcZ4tcjuI%52y<@$Q9VMyrZ!Oa+F9cgdt^9+3YW0 zyap-~(0&P-9k`7DcRtJ4dG_0OKLy8`y!=~#=8|A%eDKLgXD^%kL{^yIzWqUFswi>Z zB$B(ODTm@~JbB(RC1(MTc1bMh@Qu%<1Jvr|+JOH4H4v)K$YfS*c}gQXuGv0?*@?DT zOBSXiBWI}c%dZHTJPKh;2F)Ma1Z%2ARLJ$VZ|RzrAGS^Ci>qmUb&7kFcQe#nm{Av% zf78Wn_u(YlDw;~s!^kNu)YU?6*E^3VOWNvBS?r*#beV;mq$~tvIBW|msX_#f+*1tb zN>+)~lfwr}V<;Z!&%1T#Wz?lDJM+}I1Fh|Gh2iP!RZ!SY%{SYkl&o|(8D|v!Bmb@; zR8XBwqDDp-9|e~LR@vm^s_>cow=RGd1>aZr#lceAy15DMOfFui9^hsOG0#1`*`(0z z&!k7zV_V;f89lQDm=vOj6WJ5i#7tIIkU*7Lp?b!_=e|rKtRJCCvD|v;Hk^Sd+@7Vc zPlJZ=-%vT@Ir*6)?nqb(Cl4fcRLL#g;w@!w0wu0bSaO8+K2|KhBLU{;dy_X=^!eVm zzS~26{Bd=fIjY+YPTCRR0`vCn>ZfHUc*`Ht_%vqk@wyJQvVgt?XHXw^K%U>R^5^gG zOByfRni`wq&4faG2@{>Vt|MmrOo_J^R(vM%m|~8X>;%3@yxP+BY(yy+4GAf#98s5t zNC-8}i4^m@h})^eq?P20N2Wlz-lSBDEMr+*`-J_{#M+H?+*>6DTO1NMPZg&!pOqc-Ya{5Q-UqGc7jrYbUPxMHm}3Hr*s_nKp5junj?$l8YUbQkCR z0a`Z*J<4E>4g6^y`S-3gZ`|mfqI8cv_Yd=QTs-YJ1zLaF>G#`nUZZ|hE%jHI4NUkH zrA&p?$5Sse?LFXqmyNE0u-Z_(Q~65%;weMxi-t7ML&ikXrIEfzpPgl-x~;D%Yu-ub zHZb*nD!`00cYBKP*&uCmMMPZ%dq;(RvUu&FGcd?4nZrbJjzsQX@G3Vj3Odt-F~AOV zy9XLs&M4|@)K+lyCGN(?GA!Jw^aL^X9wx`tPYQ>$u$qaP5*cFnOetM&-92{;(8wT7 zgmKBdgv6LQj;*lF>vW1T(34x6q`8W2#J3(VNyt6Y`1pSqJIk&pytrKtH9-#DF*Jxu zmmo8AN_Tflch?j-bax9#he-=acPb?ye^fw`P~_n`XRY)4e1*N&+H3FMzVGWI#|*O- zKpjH6q|sMidBYOBACWJm#~2!%82iZxg>2#yN%ni+(WdN@1>^&gYO`P3VnkBo@UuQ6 z4Ia#3#^U?ymDNu68m@NIALaV8anHiXEfhIHTUXjI!w(*P!aX*NJFj9!tWwO5Wa3D~ zN{%W;UL#6o6Dp+vEHFw6OVLwMnq}H#EX|;j!D%3^&{qCcMaFID#G@ZONWq3WGB9sr zb~NXJOp``;MJfS#Kq$kf>^1BSBtWTX{{!Wjai6dY*k^DUBTzGkW9`DlUfs1-z>fK` z)U$?ZQ-!3A&HS23WAeymhPmh)`uy0F`JjE}r3%ULksd2Q-g^E`6+=**ksFMnm=vcj zlRuJV-(+@#8VpS%#yOrGz+ZM#N| z6vQWTc;94Jdq}c6mrev(S#Wts|3s*)*3mjMl2vJk7RLQn2RHH*+>s=>pqCJ-0Tj)v z)&rC*DF49dQ={oAbu+}*#B>@5oO2*-Cuv_agCvkcKt`6Uw9JM->Bf^kg3Tyf%zlQQ zzUs4&R3qc$L8n5hdUIHosm;IR@A)M0vkP#7X93T^&DP0FA`ddH8%V{KIEa~9IWa62 zkru^6Vmd ziQ%8qMZFRW_ox?lE&N*WF{`{`p?DnX15;(;6SgAqrv@M71~X+M;&r6&j5MPzC`6;M zy763f{5J1QRFRYI{We_NM!q{FUswxQ&yC+43#c0fS>{`1-c>ECHfnMv2aYCFGQJQ% zP`;n0n-sJTpQF~Z#VAB^G=RT2$X zvz&r2f&`4kH{@vVp$0Og=6$SrJv-D!=$d2WNRHKOSe#Q5zN8?ky{IV_q_AP##`Bgw z{;JKx@&-;yg-u#dYLoJKa66gv=Ht;+COu`Pck!X=)a$scIGb`EacPrjV*D4wGVbD`)`CDN^ z3GqlbQN1G74q#S~yEf{5g{67C5fjJPsZfOICn#$e`i{YhiE51YI&<6fC~Q*(49ZU> z0+$rt>lFOtV{W^V==Y#T`Dl38c%kdJ2-=-`x??Zyt+{;_M?&$ znLG!Iid6_{1%5tWFd_F(f`VLv15>?$Aw88}Va7drPD{FnXJj()NW)(4r|P1Xx!lT* zv=I&lRnF#2IX;DZVGoHQqR>S5RaC<%LBu8KF+aI7k-RETgnpJ$_qKA3T~f3(hme_} zQ2m2vBE$}{NpCYiE+2I7=wjkNFfUWzsbAsq!Y;Yfr8y9&a6f#IML9uiJ&{{JP_`U6 z_7k8c$)(sXFD2^tP*p~K4j3qmL2cvJp*g?*4AABT2F_ZbGQ1JOgc~5p3qQG^iDBu3 zp_Ejzd`pkI#RwX&K=LLjgy#gctK2@P1a^L4l0dK&)W5R-!7F4K4W!>~tx*UZi1nZF?*0&2u-pkaXy36W8#8@4Ih>#h?0DNu@3N-$6F&C*yTF$j|uV@hsO-4RJ zH)egP5{EDzr@F2&H!79UB!kmP80RPc` z+DI!+JPE`5D? zwv7K7P5P)hqjLKWBn7~Kl$eFup|OSE*IHvY`F%55ft7agA67~mmp~ry3_V63A$VCI zf`sf6^rlatg0c);C~YT0F_%x=;tu``VzZ$nNN&)Obp;~}Dlkg;9ew2P?%=U&d;u(T z?5eM^Gk9$|4;4$aR$Ylns2DgUGHHX0RA-Fw6cg=c{KGs2UV_XHs&o_a$n!}^>fjP# zz;FC1e&^&44Y{w#5g7&8V@jt0 zOx~-0$K!=~RceAPB(jXy*m3;1pFu<2dgCCputm_-*gXk^<;2my==C5;EqF06X`GwL z>HDkl%}r2)2lL!P%}}`Sb6UJk4`!o^lJUZD)^KLvDWH|9nd0h2Er!+@(;VeSz)e}m zu-&ZLPW8B&HCqBDO3r5@|v8BO0< zAWzsPaS&JMGd;`T-Ma}tF3_XrPoC+Cbfw(aK0ZGSzIis^{xPq?wg=4m!18!BWyqPe zhpJm^HT7dmw4G?|!bg2Y2{-OaKac@UiV);WN$1T=PxUz47owu-ogAdo7M;0M8yT~j z7KG-{ygVD%tfXpRQB8YZ8(H=~`aCO_4*d3Mm0}*&ZmIvO^Wa_TLTxJRb>CL^5)p{L z_b)HY{)7I`883Av@cQnRySlpYVdl!KSYU){RcF>6DpKC`Qo zbF0T^6bC?l0bMFo&9B(j{u4tg5lbw`p0!~c?Y^RtTc}PrUUPld}QPZ(Y&So-lp}gGM zjIpF>PY-7`+!M(@aDII!1D~F$U*93S1`mD>|M~VcAN&t#I6o|CY(AwT`JiK_&||e0 zTyUmd?piH^xM8Zz1LR{Xi#fSr>a?HsD)KwVI@}v5YQDOQlbX>?@HVV6PBgVD?$ssB zZ^!9ny!BW1YV$cy5K{SLO=T6f+MD&Mb0aii%EB|p(MCq#UFV5Xn;+HO!;xzPEB_(z zf|>9u;oMD;_ky7(Jp@FOkKeu+QxbglGh@U@^zvWPOz}(N;tA0=Opz1xkbpuYU$A)7 z>F~>Kd(a)LVyy6(KTU`>EqzR@X8H&2WQkFBrn?HoaiI{WS^NYRzz24Rzip~8DUvfa zLgt>6j+U5EJg(V}P?5wL^@!aCb}f?mPJXMgfI)V}#0ba-4MVFD81Lx-ih~!-uSpVY zML^7S=`5zUeC6-Q4zqsYAE+tuQ4|RAdYoJXX~Bqt*&pq1c}}!VKD^q=8^)8|bc9Yp zNaDB2pi$_6_Ya_hQ?S4Pmx%KyO)puB>_(2bgy`D$Wvgm)q-DC+uZ}r?pIxv! zD6lP5CqV6`zg=VI23KZ~^D?JnV(~ouS?5o|EV7Yj2?ylvGGoi*KTTTsyyZ64$&*!- zDDl2c#-AIQOKtj{Z)K=E5~|XKB&6iCc!A=8cvQE zhi5nXUcTU=Mq`|v>WyA1Xd4EyK(i|fEy1a;b)_@P@d;n_Lk+hZ6ArmpV9!;-CybT+ z&_oRVB=Fwk0Da;$n<3BPmd>W>BoXCHBrqD1v9QEpCq?s-Y~mCIp(EB<@pND}aU?dF zY=V6>)1vC)q*#XFJ3Y+Y<{+$R8t|G*dipn^^&uEL%1{Iy3dh;fexNeI8R%u3?eJmJ;=mlT{sYnl>w%JIh)j0V_@q4uywJuL(=J`Y+B33A}u0 zXJpsDz56XeEo~T>*UP#|4%1OS#Vhn9C=zSdKzsaaz7Li2uFzegHZaeN61JJehs@Dl z$OX^s{S8qN9wE?+m^=V&N^`*v7I~%|>yXGz=t)I@gH`kQDXDC&yMqHVvr4|a;g$ZV zG3WEFvv5-TkbQAn!p~!&G7rkC3d5U0|C_2}Y_8WdZ3Jg{SLb!pq-45;t0~**rc8yx z*%VcAw<;WIFMZ>lz=)?jTd2Kwoa?00v6ukO!K!7sL%BLei2FoV4bxo`zZCrkBSh~w zRC1FGR<8#Xm269LxwVIt8yLFC*~xgbjLoH8f-K_(pIPf1>g^m%;g}qXY&rxb?i#^< zl35iN&R^|wuxM90#Y&@*S`!u7XN?y1P#^F#c>unl7`BTdjl{9j;KKgb5X$Ji;6bL3YyU-)r$op31-i4CUuUN$9UAnqQW)*^d}tJPx4AMj$I z=mR1`OH8f5%Ux(aL(%0@Zm@XhhivRnWo5U`1itixoDE11e;ioO0spQwGpxS~XfjAV zHM=$gL*5_3IDhuDTiDIk0rQ427rrrHKH3OWNxd*5ceS~AVRPA%-`c_m=<5w&~ZUk^tq5@85oE`>@rQj9TXg;6?$YC4(*)SgTAj>r?6pom>n zv7VW4I)XV5lhJBSoElu(RBrSLJGp1V%1^#~XwFbXkm=$1=AFy+!0l!}yebap&biyl(3aLctr_mFy>eGbZ7n*O6gM2mx$nnFwTd7U zq8Vc;>p}0{1WmRBg=Oddd>+6CbiaSss5B+>-0!_?PdoY93!e>#6-g>`3l9H!3K1OM zcTukSw2t;aq3%+DgqwYGik09JX3*r`jV~+#jxU>5HBe@wHcE%R8_jcfg6l(iHjf>z zEx)LU8>DFO?~#j4S!e%fJ?&81Q-bb4_QTRglM8>kP<^90GJ7+uQmVG0HN>OOg}-I|Yg_@DBJDWE_M$eWKz6Dybj5x3JMLb;Mo(Bfp z^1{E>McBA{!MP)a6TR?NEW~PJ9uq3X`+5J`BQ^V}Pt&8H3=BMT3je|Fua7iVJJc57 zK?b5i=Jp*BC-oBpu6 zQ$!9?+^LEg*{a01Q6xdAL3oHK0XQgi#P3HACZH}H4QCML39d(5M~?+*8kmTv1o#0p z2=|ql$6O>=9O2deNg3!5u?qMiZUJs_>MBTOw8J@_i=J~7AXtZuD8=72VHJdwbGtvb zZ4z7cmU2uYe?`au!~WI>+aOZm+8HEoxE$XGWs+aX;Ox4;+aZ7*Qh?{NJ{qs zG8Pn(ePs!}vfnaIi3YlDDMxv!r!R1OeiNf?af`2$hR@O^$BQJ#=BI6S#j#7{!j4=P zT)@E$#AzLvHMJB3ABL>UIbBl!i%E+92V+KB+n>uRnXv%;E0B_J5R_N1n+E=m*TU<- zD^%K~FWV7irWz%k?YNS7Ys4R$7~i$880rfUX$`0_;Bu|Uw3xF1NfE6#tyzgh0b;0d5$f}H$N5?R)yH?|XPda8 zcipnT)Oq*Iy1 z)@VjVQUX|`AEe?J7TP5h26O=%nU)bj*oI|pw0f{CsI7a5=e-+{M z1xs{T4@iMSug$N`V>*>xKjf;>O=MK81yvcx#D=0!p(T%Vf<}1>qB2NiX3^N#RJ+~~ z6;SHf5D}>HE>Bn`;9srR&N!I5umm8L7p;-4K8|AU3#HSv#=*c!G#a0(QntCx)&gW> zT7#b~Iyx$sg?8F02%@_aE0@hnXvXbQ=$$HLf`7VaM`KheklD($xr7s>F>rj5{;;ue zOrR0i3La61#&$ZD^zM7D1QfEkp)32`;R1OIVTP+~1(Qg3ldG(}gG4Az(KA(Nkzl2{ z+M4kmaJW;MGO?ZtHf`c}9Mq@~y`so&mZoq}<^Q#;cR0^F)bq7_e!n9zo~fbyO{2{R z6LI6RSkTCu3H?IeKnqEyIym%;-q-!NmeK!(-~2;9;a@ReJ5bC zqLQ=@Nh-Q-sWy*i3im3816FxF6xUiMiE3>d zYyXOuc;`fT-GhjU7r`V2w6dmDpQ&MizeiTGWbt>+sA_Q9lO`vf+rCT`S~xs79z;U zb9J(-{sUK5yr^{*eCyQHkEi|4bXBRms6hEoV;D3)Mh_74rO2RAPB@g0HS*4V9@ySc zNPl%*8lC*6ZA_`}u-UA)_~Suy%j=lQWmOKY^fXodcgfOy<;m*&)qqG}4sd<-gEl^v zu*Zv9zrQw3Vj@3zmVL5JQ|vP-+sKZG4(M3LeqRnpaRG&?UMjsx>^ZFe@T9p)*6IXzOnHpd2oKh>s@1^hf|jgBlbA#X)ay0o7FHg{~)(lnrTXJ6;G#g_M7fsYT_q( z=avzny)K`MxIuP3u!87u#~`-G`wpnQhIEgxWp(#|bvUic3KDg8hOrJS3t5PL==d85 zuXL*$D6~bfZWBQUj3p1UG8^Y%xOu**v%yqCQZBi&2d(2=RMS7{Hb<1y^x8R zFZZ={70roQdS{~HpTz(E6#VOSY%wdDy?z;~ogDBWscKoN@2D-~PZu-{Y;di5BkiZ# zBz&*+@UqJ~wSc^02-^(JdO2C}QoA0dRXZY>O|#bcoh2;!M!CHMAEhIin zi!5cWGzG1!H7?0z%N93=^k%C?X1h*~tPTw-Zt3;?E;3J`ikTSkU5|h>A+{!abs0)) zKQbjfpcrV%Gq4;=E$lRTSVuQHo}Jreo>d-SE;AL|6h@kc|6zPu^{(~xVb%QIIG9 zayQ1AWGo6LOsH=cnI+%+2IW;L7bf*E?=lQ~*;fW#E_1jjYXmR6zs+T_0*KaoSuhw!$a?lc~VXoC7;^yOi?pJya4BG~|Rt@ry1%{#iwaf<8oiibMG1iW6s3epiCQvA=cMVUvF7BzN~f@>wU+@+ipc_8Ug#LGHmw`gPPs zVDOmeAKjyg3a`R~7(&DGI`_{yqj(1~PkU)iA; z{5m9`Mo%qT`KYH@A$3f?6wP=er{%-pA^a$*62(=A?O z{pFDOoQ}lu*DS-9$&Tf#t5j+;W<4{~qrZInVsZ+^XU+aLh16{p+j6 zh=rzFXdjla7~XleiTl0jm3>)$DdLtX0Q zZr|5xt3#uZk{tWd-^A(9^(~xtRDa5+_r15hem8R%-1jxmb5j|icY;uFxx=z9aFa}p94pPh~iNG~oyN21D0V|XiSs*rUJl`&1omh_ss z$kwXPhO%1T#^%U6-mb3t=AqWgH|a`fToUfCBq|YUoQ7J=Nr^F@TrQrTzK~+YO;XCIevxbPo zDzm`w47Y6QXZe*~FMglR_6BZh8ibj)tc!ZhY_}zZwL5WoT(+lH(Q&~9?P<7>gU*5# zf^iCu{qc=Sb_J7%&G5pyl2`OAyMZ_2*#|r|ilL;qKY~*%TmeVIsX1#YwX1{N(t_=?|t}%-l`v}L3OEKrpzrEO;;5^RVB<=+Et^HChMD21As08yxAE!?A%T^|Pz zc82YA#7YSu9C`TUV2vyG>GeV+M8p3ps*oA2OIaAInH za;UyVs9va7Z6RGi6YF0|7>`|y+sJ$B7$A_Y>yg!@FDdYjNnYQAo%d0q!?a=tT%v;j6 zP0OS=^aAw`(5;D3M*imZNGAnOI^XRM-N@RzY@p4?2lSF8h86}z zFzV~S(wu0d^`3yRDQN#uO|<4XhQF>k{%rjL2)sK$Q8K~wDRjVk~eqwRQx zCIE37$AG%^-8A*wQ9_|C8Z6=)#~zqp(EnGAn(g{HIP|A=xqnY>F`R_z=^*7N*@352 zH>arkx(1P$S)78|4#gQh=kV$RrNpo%CPqDh@oI;NmP(C9%aI)1)m9WuhJJ24xuz`` zHxiQShbo2xXjbZn%_!UOO&Ji7RWq10zc9tasw$YlB}jZf79)1Hp?;-Wl<68>GJh<(4PI)#r$nrg>x>qP!XhoWb9MjFa2bfJx z8MObjysN1mb)K8|cZl{A8sF+UpM6Xy=cB1p(9jwJh3Ajz|0T-&NK@(Ihc^B1(2J(0 z+W5M6qSCdGdl(yFE>I$}3_7VhyY67+c)h*IL>gl*u{RfuxXGJ5!MA=*;h&(qr(QF$ zg}=~gH9yO=+wmWB(N;V-@=x_@b)X{y%__aYQ_ajqlzF)7C_YVwJ5}gQU=uK*+52pB zc5X^);b z$|-NJ(g^?Wfn$9UqwobK3IBhRWQ7Crs&$Q~Q-UT#{RaFN@l^V=FA!`8oZ*$Cg|c{e zOh3MBl>ZZ$e4J8_-$Fy8=VO!c;wfW1?JKC+fJ4xWa262l{Dip?X$3YWHuVQnAG68% z7hLw#39;$odZ5dB(^GeVmd*n+(a7yM#1SFOci+)Zyu)c0r;cn+r+I~JU|ld1%~MtZ zOnGINX;SZibxFiWt`pJ5qpfG|I$Fp_M(|n%CpWosxZ(NlJu*Xa!gowOL&CpPg1rms zIZ>1ve|G0Pn0{dx^z4jxJ#x|@w_qMK&u#lFnBt4JO4@(p~s1dgH#?k*ckCpQuGXXW75zG)KQDP=q2D{oP`4^XPtFH7IqlFwaF(C0C zRZZ*RB&6?KON*IB_`3q?cSsFp$z}O?;xmSi!|diLQ^bHB+gbEQ!Ko8}+F@qd{K0K7 zSSeD1?^7#~?GRvkt8|>PyF;g3k649!iL+4qCq9Bo;qgNo*t$~DR4-D&gDwP2C(xun zP&dln1&1e1urEps6zg?d4s`3^FceLf_^Xm7Jnl?d9ZXK7x2yfI%%(fXN0Tt`r%E2$ z;A`-cSc|dKv~2A^h4Z=XrlSf@aK7VN*<$y&(PFe>DOshP)XR$EwB5wgtJlS@YF6=r z)7zAPMDQ(Lb4bl??!V=Y#Ah}T;3FYF+N54dXEb5h_TnI5Lth;!2YQqfbL%)xz??d-2c+c49xPPl265OjZ zfvPX@MEm6p+&jj}UXc$I6%Ty1o{Oi;EOJ+?cyo>`Bv@4Ngwout%DgbX#Qadvy_vIx zduOyGd(MKS63`aOnh!0#2nO!N=mKKVdU%A=(f6)R_SyIahvz&4;bn#dh5PtOD1P>e z(%U6xjdOrhJwSfdAxb3?splG?=6S0Zy+;p#*daZJ?ubr%6r|ujxOP`p&63`?gQ*2{v{>2XqL!`>7iTo}9V?j0W=lH`ww3 zRXR({m>7iSF#OjOQfil|?iNIqs3}#WoJgSZd&S5_iA-iYT6-5$b*gha8)NQ_9ujsP zp$AZL11$h1GL@*(*5Hl%)*(FXJOHy-tyqgpe##$ktB3a&sB^**p#f$W#afKIx&2a)U}; z0aSg#PY&@d##F%{tbeUiumq+9?Y+&Nm4{-n)t8{$ZdSkwWcVG1jN=n+fY=ce+L*C46mF&XYq2KU%M3~gB0UQ|Z81bwVseXLq`V4W3U z(lrobTl)`-Tgz}fDxxdI9b8K9J5umf177oz;}E49u71q&LS$<5Ew z7Ith}P9sGcP+)8wTV7(9caKM`_zK!+c&^Y|<*`sv!h!$pSDs~DQV9SLc&31~DxC}Hg8{j$6uWYB4fc6#b0t6uh1N&OkqI_$s zVzbO@vg-S@sxH$h#0f#d{IB+WZcm@%=7CAXe#Nu+r(YqH^`rvZ)ZSsT)~0FbZB7M~ z^23@KSbn0ED=r;gESO&kX~Rda(V{VpLv|qcYExb&RtC6sbXP%XM#Z0#QEKu>;ed_!hrBN*S;b~@Yc};0+<46`%cb>v#woD3p z2Od{RntT-jkt9{iuD!y>F0NCE8^<95AeL2-$7ve2rml3hxgsc`q_wGdo2X5kK%^jl z(jqa9E)P{+PhTDaA8zMS1~mqPA3cFTRc?aB5&mZm(|jSx^rZ~nuu$d+@wF))6=QQx zH%?Q$XhbwWP`UlKyyjYlbn**?;|9zIwXQ#{bALiA6wm*B&|5H~F!GDrEgUK1uAv0? zkVs5VZpgjAJ)VE1{$<{U+&1U$?<(df=H5>#WmKi`?JUlyAnj!R8(R}dh!5L_fFi)m zaKK}8*p9@j_a601r*U$gVA}he%%u_+y~2|U+uLi96BZoDB%nir7+8l`wce#|*!P`x zG#E#8nOmmE%o16j;(d6nN`Z0Qh-<-K6#tYal>l@*t3p`jg8Gts*HgB|2=*6# zWl4#LWfTZmqO)=vcs@!b?*|Xd81^)JI~UjXW1}Vifr3~Tf9Upy&`paD4f2_B)iX{) zT}FYxbtCsv!}RiuVZy%TO$(|``(@NDt^bj=P~QN6a=I7(=Vr_ zOeS6uLKNKZ_SiJtTb;~8v7R?G(?~7FpX8v^PWBU7o+(w^ZFKr6?k^`n2*-5m@B4!f ze9Iz$IAx}lU+5M85OWIDmT(Y_$nmv;g=Tow18P;9HH=te2}aSjR}0WzzDoi?ZS$qv z{RtrD=yaadv=CxunKXMAm@c$D#I5y9*yPt(KdZR8F4@ZF;>Vjs;JxWmj`iL(IZaWm zor`S^Z&q_>1!)s1k%*GtcNtx*W|DaG!_obiX5~+Ry{5RO(Y^%1@EN+vl^i{wly7Fi zlq&Z(-X)B6qwDKqIf8BpVm`oZgN~Ylg$~z%a@^Kk(JM)PE~~{JR)pY*UO?>lt?+9M z_bdoXK>jV4r&eKzOmDeUu_e&y@!}?(P-~Fv)}}b26^rS`tadV?j_?)0_5{^u*dTnn z{7L@d4DT39uloEK<*!b9fQSCd|3ZKle&y@F`1?t7@%7c}x-4~rQo3 z_~goMYwRRqPIif^QQN}3SHRJHuuORd3EPfG0K2!brazGzNud5TU_F^}o0EJTA3p(? z0|A;_AN|(e+Mai_TOJJFit$~4+@fJsuGs0!G*;n18yNWd0%Vu7lI)_U#EBwi*oS5< zhpvio23w1ZgAc7Jj>?O+cVKncY5>9C7KxyB|qBmYkia)9Frgx zv>PyK?=%pg$``judtee}2Xb;=$Yv9GlQWkJNr!kIu1N$&o**1j?mpof}gl0Soto$))jcR<#^_D@V-1`-dD$1npjr z=N|a(Ja{J*%1!h^C-uiuZXtqnZ7Kh|J%ow%Z3|aq<)-+a{?6C<6~ zi5>f=2K3)El<)?9pBSxW^H2~kSoQ8Nt@r|n`P9wf?&X;EQPm&aA>;oSR2Agj+w^bMIuPv&|@JjL%D7$>kF-6{^R|IOedu5YYA~i2adt64B&mif^yNNC`}DDx~5nKYP#I z{`jFmdG|N5lU)sYaSH&41$y20Iq$tGs3@cjMgoh=%*xKm&C4$+EGmu>#|5K}lJ2Lk z=oI6s>Zs=0l$zT1mY7aVvr!wWst)<8I_YheQPrEQ_k%TJ!4@Sc!!h~_SU}10%Iezs z295@+)P)?xzChL0y{c-9GM;(&{>#pJPjcVSf!3t6BSIg*?@NkYnI%Q0tKZ%24}D9URpg(<)!W#5EG%wWBFRY zi5}~yn<*>!M2KiOW*3gdMT=w;QSk@~8jFg0do1R)Su}6H6$;M&G8&A1wgpxk(;ZQK zGSrMcSE0l!_uZQq8RfAOjS7|MdbN>m)?hg5kg7x|`LcSz3fKIxhRUK! zskMJjyBaeE)7`ow7W*2o^0vuDgPm&$KS#i>IaB|6W_^`@LJW&=Y6OjmTPh*eid*-I z^QN(-u$rHghS3bf)zax;wJKTg<}3?pZ?nTY8N{*cqA4>z?2wTp_gh+n5}RK!8vA(k zU^`|PMpPA3RYO0ofX*=~x8~RaO?l(s&bk4}&LlM6Q>4HFtQ13#@3_6wMT`A88DbEE z{D%7EXp(cZ8LhqyNx=kg2GM8!fr=iKC;p>U%k>CWDT%5q{<)t?EE@PFaHazJMYw^| zZ9FIGTR>T5&6nVHg23tub^fGU!4*R6)sAy^Q|zxf!Q6R`Rkg4CkUAgy+VeaN#e7zE zCeJwaOvW7=&>Gt~$%OJSoD$%feZDcLsA9_mso&yX$2sb%4gQvbc7?S;w7drw4-Z;F z;{UZo_-*43R51=K%vy&HN!yPeOMc;PmGZ!XyCaZ%B#!A_V-+am)!Fx<$^w10R_!2J zuZKS=SARUJ`?}6qepzK5(68q+d-e1FT{ax3HWPU_hXDRC-|ZCF&xqEf`#Vgk*~Ue%0*`^+%XKl$xp ztIL!UTmA4GD<_BY!yaC8!$BS!%i0t7qRCV`zDM*g4eUhs>hp;=jGqOCJUZ)N7xP1Q z3SaKut-hfoma9MN@wa~m_-*f)sC}oJ4lijQ z4&YgVJxw-BxbS}P>9Vx1eYR&Y_gUB=$dDuW$$ti>oD9p)-|{F;wl0n8oVm!Z&@vzB zr?7vVr(8erjqJ#>ijeMjA4Oo=15>o}c@Og=@jx@AMW+8P7}6ugs*2WF`|B_q7XL9nh5BeHv-opJ=JUU#_uyhInI`O~j2lC|j>}libSf2ZcJZlK zqBL~T#&gJuUftNz z0P^m>rT}|{M$fxt3Qqq+CxO5W1~tXu?>JS&@hNM0;7W(`b_FuMm+Q;Zxq{j=)u%4) z3pfkKOvA-v6ICIH-lH~IU^Jgm@+!*%4H?KZivu6ieD$VT5L&_w0c^>ykfu3e{+?tY zsJ@s}{XDn<+Dyh^s$tvf#r=ZMg_yf<@eAv>Su5ByTq`+wLuD!rXxe~p}f(z~1Y>VkMiN@r_Ux)|)RVr`oT8r+`6ebpXfzssDv(lvK0qNP4a;w7I~-n2>gRtx*u-q-o-? z(DQVlq1s*mv`<{2-}8<%3t3MB{v6Eb!bHt+!d)k;Gdi;9ZCp3RRqD`0HA!wj8ivkj zbbNUTdLphX>!{*^@fhLw%-AjUB{p?~U&4GLlZ$=P$fd~Sx`ajBt?M@d`CS(F!h$Bp zH{Ua{HgwUR_4AG56FUsd=0o>na#*JvNNL!dbSGY6ma-4}GlBd@z%VFG#Tqd(V}Wp= zZKAtK-C6kflbnW@Kh@un{1smN>>p8eWqk6a{vpzA=7~k26MbGejMk-u^u?{Nif9B+ zsLtwyG*(FdmEGgGmmiW`SO64#fA!=uD%D-$e|w`1&$Pt(l$N>2RDX2L7w3w`5pYOT zuCe$nP6{U$3rY)({&z~j$lnxWF+vLx4w_B4eY&VG{`=Ip6=tI z)K@G$<(KplZ)LdH%(=q1ggkpo*N`F|oA>5#>y4ix=stXgcYY__6x;M4`wW9?c-XZ+SfsbAt{ zoY>!Lo6XbF7GiT#=+8{!QCDp+8mNzm&X47_d?iwU_))dRN|}u#dtndVTMy)gSJ_)! zok_=`61;rpsi-lmf0O!AB%+ZbW8jnWTg8>5gY;y7o*kh`>AO!A>p|QktP{;T`wIPk z=t`M&eB?hC&JA=10-Qfj;P<_XzJ!4dVfo?|c#{rg>p=N&Z2YCmJ*Qcr7SIdRdgn*L1B!i$&&@b2i zoUF!$UrZU!AYs+-{z%vc>Ik&33z334RS#KfA3oI0(+-V~MfFGPtg zeC@nqflqs_fc{2hnMN)-dgDJC3jCszV%=S(k-eit!M>CndW4T=K~l4ih^|1#5-u{^ zA)ng3WEL2L#vXrLHb-*UMXN`Jhk{ctKp%`DVHtOH6b3Pc?aD2!PPGfhAy=UV{JhHj zW@SfgBK^>kD-c~5hDJZ>^uRk#+*(NF8Ms5a@h52670kbi9i>dBjfdj&lA*5PpSc8T zc|Lf zPl6In;DFTpY0DgmF|iJB0wIDq@Th&;f4+e3MDTBhbo=&KNethD7-_uaCpbDTWZ+Nwz6PV1RU^{)!_dh#@_NR z%0GJ49de!_hfZPW?(QLmp+rEsyFrjfV2A;R9y+DF1SAD?NC`z6L{vaQ!T^-=i?I3a zy|44)T<694C!XtB>$C3rCS$-Wotg92tYYcoGxC#jKDV&V0NA-Q-Fyb7D3x}%eu#O zZKuhFQu6;A@%~hI^$rM5%x0?g0?5RRHy~0zjm3#@!i^#z2zTqa|zic&y#E6g*3Z7u(?PIDUjMVg~3@gAA+i&TL&R3zJ1P2g_ zNUN$f&63;$csm1`*Y)BWmK#AzbnJ!Xlyubeo;&A6vig55Hp`+aA-;0!KM_D1=U0>DAZ+!)ci6@vz_ty1g&>{L4M3p zr<#-N#{38{0tQ#PX56ZM1YHAvgDs7K%J*#33JrF0cejlV6IIqvW*Rh;W1l}{P1J3~ z^`$%_Vc=|P6aeZYn5nWznm~=VVSgJaoCM*g)di`R>HL7jT5NsAiwtL2^J*m#Wo&a@ zNxowwl}HJoUTN)TT}Zppd@`jHa|ISttnb&WCU_xyx3016sC)Id#Mwwquo6^O3(Bb> z%8zUnX9k=T|e{V&i48y zdhaWWwn{qj2U=_~wNvu+{G#oy!+H7dEmj1|g!|fB{we`*bBfICFr$5P&8$}j%+n*Z zg3GHoz6zH}r7>uxvRXBQ8#r@3LHx^;wYr{Ex-;JyT-+OrP>S><@|`7bD;Bl431@s= zIJnXx|M26Fx;0d3)zp)8JrLw&EKNO*s$XheGbI)2|%I z>%Tu9>(9c~c40fYi&&?A-yir_TS=mJBbbkoxNu?@4P5HKf2ObbYnV~qmgeIDO}crd z8_;R}zwTb9mgG&2vg)HBmpXVd@D&6C99`nkRMfpb(9RE7Qm}he2Cb)Nk^bF0+c0so zK2Jv^U=BHi^?LQ?BZR_i`upE^RFR*Z@>C}$Ec<56#W=5>w;j_qFSHZ?`&z(_`}~N% zCgdis)isOk2oLxy^zO$6wVqzF9F-b`nepQj>N#!#Dq3@Z<(`?B6O9MTrNDFsc=0uf}Q)lt1C!N2}RNe`3xy>oDd~7Rl zEnHk{wsb#2CpWcmeJ0D?nn&Hij!ol^8eHhtV@pRml+ev4Mvcbrv-fl?O(A;CfM8zj)q`#K$pN!mI|qK~;gnS`z3PQcTW;5ME6mXk)l&GjH= z&A^2^AkOP^ET8JMYZTebK0Xat>;q^GxyHC_YVu((g#6*D zCNm@ghN&;Um`X*GbkQn{>KG7j z$IBw-DXZW7jV@8?<>)n{ddTjFnZR=nc$KzEf%1+tJG?PU)I9zofx_VJ@h=iwaC8{v zrs&Watbo^k?16$WHBPmh6G(XvVmmx5IZQ9Xf_ZW5X8W2dzH!po`>)aeIgPNBSaK2H zRFS1%wqe1X>a5HQG0%*&=$QLQB4S<9G!eRxpvPL5`;L^?7zinmIuXaqU&)vb9q3EP z-n4E!DWOJZ`y^99ZF3tX^0k_Qv~yhDH4s{luS<^Dk&@Y)pb!tXV<(1;DUrmdAXBGc z_xM@W$2qv&^2%VYJQ=F{M%4dlj?Zv*POGK+-MVQ^xpJsNAjUV_IpqesFgQrhlwveL zb>EdEm|tHVW0Kr$OUN(8F{Jqy%IEU80!pMnyViqepvDL}Z{*Jyj{6bZz%{-_CUL)G zfZYFQDKF9iRy}iIK5%Lww}FZ8+`< zok)$2d8`Plo|gS{cxpERX|F4Si8O9bGvMLVAL(`qBEZ7il%=O9uKTcVru#v9JH>1w zS_<3KhT4|2wWXI?aLP^u`;J7K-DagaTUD?4*-t;FjD2ms?6+E$My|Y`o;*6u4=WYB zYg4xPxrPRSFzOztvh6tR7NRY9`L59A*1M8Efju6>G|GMI`6IPgunjQV2yF^mej3E zj@YY3G2*4p$Z8Y(0%^ z)jwMt&t~BAkpTuHWz8fE2RH^S}YpZsPkj0(extF9MAl$DNc;U>@8IJI~B*9a?us`n#wZUJp&|yKaYrmqhWkch9o6yIueD2$pIbqM=kU}6F@rjK?uwDEhLq`Z^|AP<&iR@xWS z>#<0dJq@GuG`*jG`h%DD)Pu{WLE|<4D<3pqF`f5&#XoCMa4gv7q{%UbhKlZr|#C$W4-6OU7yZyV(Lm->!AV2gvB3y?-#%#X$YzsqZ7o zyB2%+$PA!R@L-MU3uy4X+igC3oAu#vV)%s~6%IV}oBvaQrOU z7SSt_!+Eo-uFjj&kO!QH687VBilg?a|3y*V5LAQvbOPu_Bl>aO1H?A{$MiGs*bq$} z_u(5W!p}Bu9e?#bWP0=c7PuoiPBuRd3Ej8%*{o7dHi^p~=FmKYv1c!+xb` zzGKV%)8#oM6>J7%Z(k%M-5o0dXsHjZBLr%e4n7m-ZZ6i{;qv;bR|vV_rCYymx|9#1 z#93l4iu$55u;^S#;lQ7jjC#;CGJTr{1rIc9=xHzqxf6E0y4UC zQhmNJI3&zZN=Cb5?bhJG$wy3Q)=ZaAM83s-FATSkGnw8qr~pOHPXd}C;W4wYkX0@A z`Y6Vvh_ieT9di$+J-8CSfg8@IkVs6Xjs$TIZf-FCA{X~()rV4BUISsGw;scipTtt< zZgXK!J`qmG?~XEyJ*V^5pL9j_$FG1LawkF~=mS~kHSrsxr20|6+(`Ag$lpzxHXt1F z3d79{L)bA%Nd*t}@_muJ&cDAVy(V@-%iN!FlZ|V1#ZR^D)-G810+NCX+-i0B&Y zf!00!%5zm-UO;9685E@1nP?23OrSWkcKCgNG12;!MR>l^lN^vM*NSQDuIIg?htl=H z{qQuw;Lvu=trLHdO^jz|m=<6AQtB(fsznx~aFJ|gMEO!&+hZT{oF@5{+b#_h^mxk4 zKRkq&!KouZePS((9+UBJU-lgWFbMLnkxyhY4+{P2m&+3wf)1VL%UZXvVkHc_)77;H z5h!#ZOR5d4J&&I3yB)|mX-tKTS^ys#q}E_*hdmx9>j8rO!4rQF z#EjX4jasS^I&^$#6v2t#PQeOrc^VF$DnJnM(UHYwUb{rWTaxj{8QezKYrx3ew*iMcmF_kKtfF)>fkIQ zh2Q^#4$}+L;O_+{vIE(HWCl~u6hERVt?!t;_sJ0_ZiNQ*>SJ`s2l9DZ?_FC% z6Ia(X?s2H?hXS+Q;TcWJ0s+9cUCT>`NKRSrMXmF^X z2)EUVRrY+7$w+K$Dvk*Co4PwBefL7~@I2#{eC$i0%+B@Rla#b^0so_-yr#W!QzF}t zWY?ce5Yh${CVF^+xOq~5E+!)8L4z_%6VNMk&1!TS@78HM(6_GB5tOM2Pr~#S-BzY- z1z}gRkEbd*LZjsi5uIB^Zu=CP`$(--;n=ItSHXp$(gv4ISsas9k?!7NFI-O{Wen4P zOeHo3rePWf_Mw%w5y$!N#P>7m<7jI`NTZC2}=aNaU~Z z8a8PH8g%jZJ>*^dvb*1YWufkRygUeOrSaM%>nv#h&eCO7w=EkjPm(=RTs1)`sMqtD zA-_K5xsg?3S~R?*=SA(Sf#4$`?cG34A%oRHQS@iomaM;xIc`BV(mu`|w~}Hf2}^GG z#Rg>ZHGw*B%(X|}-`DWS1Dn_)9a?M5#BO=8ZXNcr^@UmJuiuG#m~yqqnllh$nxMKl zKc}8VUg-cVLswp(Vjni%{11&W4Jos3j5mS=uWUQz&IApwYxQizZwTgiNmZ&_KH|+I zVD4^Z@M(D{m@Rx(j1_F68c^ra@s0;N^lD4)j-7&%X?#m6ha#2T6)U}I!KcPtjZDb+ zW>gzMXLRXG@WD@4*859Ad~j2M_)1%G^79{u_LyRql7YCHvC=!maI$IU5J}s2MGqUs zV5VL!pX4U-%LfDd?RE7iClaIW%hpK!ME!G6{}tHU#Ci<*1RQazu2bmB_#*qwLG$D8 zzL?0K7nhm1I=_1Nt|0wJTeLT$k3-UO>x^DWK|tfT5;;wy`V;x+%eA!n*}?(AhQL35 z=^Z_EAG)xD&zINAO%RE{xCs7dEB7II*|K=7MkS%r7Uk3Po*|Gk>Dl5)RK#q!?%#gwa3F?y&$zQ4YtC$;iF>%9GG?FkRjMpH=us;t<`WaQ4Sft3RYG8Q9w@at2>zRc0p)Z32IW|)d>mFo; zmkC*yF&yE9_YrKgM1T-by8E!;eMX8D@uT_~4uji90r{5)Ob&(u{@I%?zbsp}qk4uc zhZ)J5g;}$&u?h19j>Vp>JOt+a&5%zY61V$ZkJ5F1hG+WDwr8Ks-7<8z6osqp6$SZ9B-&q;vKmUcWU!nZ%jhDw@M;$bYa=U&++m;=a&;iZAX( z?q;oiL@4vPy0OqZ{15iC2faf=FG89JFAp0drrWmm?MtHE|0cON9f{2-0U=OQyNwaT z%e>@%KifYAM#6=&2cfe}9=|p`W~>r_lRQg~n%6C;^P5#W_)xS-WC(dvOf^;Hq5C9f zz%$P)_bFq6)WK`=0>Bwc$nw`dZeyZ(&%TD~R*UON$sDBAH)`w)Z+GJN_47f%SUf3f zGPrbLO-$DCvdp?@($kzN_vl;t3-iYtLu;AXaZTj1b+gv!)gboCOGbU?VA;Yq3Nv$% z(OlLy3>jvXm8K*E@9%|YP$!1qX}3lZ*>n}UGkLmmc)ZhUOiy+seHl3c^?9B%RQZo~ zkmchG?9DB5ChevUaGF5ATwV`tzWbf%#qETrG2F?4OpA^DI#@*0?#ubWkzR}z`l)W3a}C|&-FyJog;ZoqDqZg^Np^o`b_pZe?r zaKO_X-ngXIP4wAAe&HyU2|J^;*f~sYk-|o_9Uz6vw3?cD23f61FC6k7BrvR@;qyqU zZ17;MyD<&4Jge*F9WUK-^wisYGrUatA;G1>K$Oedf7|Lq%I;HuUGdHdZ+^ z22C%|M+2eQPfx+UZr?Yu4r`(Wnk3Ac;QzIggL6um6KwXIlD-#~@8$6MCYRY&H;UM( zCw`udSu37iLzGD-RT4$O#^`2UX_amv)7OX&lFdtSVvts&Wm=2L&`1Ds^;LAuHMUx- z9UFLWec+Xy{qV!O%iJKE_bMd9|8P9%>-9fKKlo$C&wTN7V`fp`LL5?DTCjr8h_e1m>R-*t zH)WW4?267#>&sJdh15#V`WgH2$>`b&Hra$R`a}@8%Xv6wXYyZnkWblCl>2tx{i*M) z-eZKL^JVs3H$5n$(t?1);V`=rS?fB$awDppHZisB74FHpSCa}bbvVXKJdSN#2=Mu` z<8u+>lNOfNbQf%WHe5isIm9}nVSJ`jA6$(2aFL?@H~_KsIJ$P30^mg@pixnY7<7Dc z5;`hAB|RO5&CDxIWYb7VFg3-PnU$d{P!-V$jZYIR%%ZDXt2SR0Z zxNPk-HQ}hnHnG>#?=NeAB4AbFS?znpOzXScYD41HDY^TsWITB?_}@Z5)pDaJt(r9} zMAUXL@}p?yQsGYTi!2 zyeX@r(qGum8mftVHeS?wPKIi1^L2|JB^BxcH=az=9c!<8g1(rSSsFRFBoF0`m>l(f z5t(_*m}F~XEqJ>-P^JB?-?s5}g`C8z34JC3sxK7<>%-E;n~P45zJqA$8Z07ezo>(w zb-$V(R)WQWej4)x=CJMxnQw)UK3sz+Fl%RUh zvL7@r&K7kuZpWvv7O$~9X)zSr>W+`-3xcQPiTw9%B}wL_a~1QGrKd84wyglRK)aJC@&nGS=5-e-1H>FR0$C=L>R;NM?g{MD=fsmUn zr)k|PkkG@fI+@hlJtgX2qi`b#R<)?W>NkJ37kT}L=Py5*{Wp+vRN~*m;yBz-!lKE^ zXgVOLD@+E7N5t{rk8UOUO6qLW3*00V8bZ0^@X>^s@|+sJ@%>+l_(sFOm9=brDi-wA;El$oy0WRaEEZ4x9*;BJzMiwVJ{hN(k*XLv znLtX2A?|59Ou1q(=YRL?44Mswqc5sf`+mjbPm4XfW~Zy1$NeW^ zXFt`9sWj%lVgHYSA?CQxtb4+c*6Cqmmvi4q)1$C|#SFq4M1>o)9Z)JzB{5z&`cmXJ zD}qIf)?SBUREvy*qS5)IaW!7f!AWEML$9qCZK($9G9mb|<9l`;aT4yl|+8B=MXf(*X$FV2HFW+>6G zjK9L7axrp^9HBX^<8v=%D$U-K<%&Kbg&{N%KkHs+)kM7)lboK(&I1v>&Hc>&6A9yz z%qkfBO={1}uZs9vWn|502eCKh<;sjVXEouiIfjRW z`M4)L9Yg{F#)w9b@yO#-1cNUtWFR9%_iBGCRcz8onmlKw|9Pk9^R(dKb)hm=j-~L~ z(mGpBnS5&Ih(Yz^i|U@fRkN*xK>air1;v$b=s3xP;8}MuHC<6(UVudjnB(1%&6}R5 zZSi%qjtL=f4wTM~>2MSNphL~2C|yl845F3h=SvOVs~g`(LT_R@8LPiDMn)+?P>-xFQmN8A~#8VZ%WhoTx}dKP-P`R=J&0no_<{P)=HpC zzN)^nK)lqa6$kv$NKy;vX&Ha6`A)H?M{s6~60fHPfqp-zdNRkpmwP)KZ5vvCkkX^d zXXXn~3eF0TbCcSw3tHSllgKG#ESoU##?m(A5&>205>S&gOkB2EJ%Xdpn985z2CqE7nFg+h}J6MkEC5>iO2^~UiuGZIrK=64&(-& z^h&QgTIs(s)&oUwNQ_1Q@=$*IUYee=tfndhs}|{}7Ikz%KC_3Qn1z@)CXt>JFQ2v9 z#xxLllfx~g*w6h#y9?n2YHD!sy)Q6y>^99?UEkw*M4xbQQ9B%Gder>d6;_UkSnQJ31`~-~Ds2vdq#K)dD zIxR>s;8S>A(lcxKI<9TK4Gs9Ql=SafmD53n*Oq6D?#4#rUdJPP@Nr=N*W+Y**X}W| z`E-WI0SS#AWIfB3-%_RDdP=LELf*6L2A0CS^a`=$-=x>rH;*JJ#9tV>5qKT>udJ`j zaDh{J(4=oRyt5#k5!@Uno|+h8UanC-bCaFs|p;ZgC19EyL5n^VX`F``I#9{25fnZu^)x>%O-|EYB@8il*A(kQYjFnrh}OU)N8_ zYjnyS^CFpWWOaPsCf^(P5_X{p_S7-^X}QkKBwyGFdA5jM17^Lsi(4QtXdD4FFlQaa zJ;bY3aRQc5L&~iidnUk)GcXb^j(7rVvu+w?>D0j^&+P7t%9Lkf#Jd&50{9>J>No~m zKZPB*&yPUQS3NQ|(@Da&0v4$flM-haIW71D4PB_ijsn$tTRSx8)+pdix0Nn0nYCWu zIhyoNpK=TLO)UkM6!Ln;(lCgNtKGy-$$8=-?y5LlgFZvVe9^&GOwS1^o-v>`n5g)T z9@7MSXLCfsK-2q*y8YrAX8veb+WN@{+4dQ1w~RT=ExV6s1zB?hb6@ItxhwMZAII(7 zI6Yel|Hp6mU4lWA@P6y3O1$%OU~>>Y@{%aC1fKKnOV)VyjE{m0b?g#pUXV^!L*xVv z6+!63v2?h!2Jx+9_-6`R;?UzKD4fC`l1!7>&pZ~D0t^yV#5G(j z(c%P8lK5vQA%-q0F0i{>l8A>r>)W)M$K}Cq+lcE5x2wwdjYQE2?H!MPF)`(~_4r zV3t9)9rV#g3@N{m20jdb$V5s)05MY9)bbKSIiE36L`G}o zDy&0hv>r<-Ptt)*XlrCBw*=fB!RtI!U})5j1iutDsMIHsVCvKkUlb(OJVb@mu|e8QHW z9$3~3r__tZx)u}p)FxrD1ynq!aa@5vL^kjk^jS*Srb+z@kzNKTq{QZ@VDa&%GnR1z z!Z-oVu6s6r+%O@1ho!^s4xT!4<;NlCy2?A3Da%Hd455}Exih^Ra=65` z=!(h2t;nSmfOk5uXh(t+oWE8B)8iDNyqL`B3e0jRu#E)>=JEWs3h4uLYm7jr(?V@{ z*t%jsh)+#41z@;}iae<%%ptfsfyOj3EdLQhci>|JKm>}^D)Q93Ilv1>nt}*L`*ZM( z4xnsZA~K`QG!0=mh+PrSN&uyejS-Jos5_(p7oJoVvaysnBIDz_6)2d?_%>UV{f!qhd?2$^kRxw3P9ju9)3#4cy*1D8)aZswjv4c49ss-T00Rg zF$Lj=J3aOPz!eitX+y z$)i6Zv_UxbrK+(hXxd9sGxS$YNXg&xR^Cw{(T2JZI!DRt^-fnt)xwHIIDtAz!hmj2_4#xFxuQWP|B9^mqHdv#|+Qz_LbP-8hFR( zd?~$g6}^Oe^t?&R){yIedP4n%&QO9N4WM{W8$1hnuLD!lbw@ANQt0V{x7rvr2XKKz zbVh1~bp+%`BS3uRD$ysan`d5RtCb3 zhEt`VCE1K!2z7w|JjZnSt#nk>bbx*+a)*U0mPx7?Cyt5jMs$E)ac~nqfyxWZ0=nLA z``HAdr4xp4jK2_5G^d!!xRbrQY$iy3W=h$tF#y!@#`kIy9CI+1@>rLJ=N-oA$tRAt|0Ta;sl}hQsQp%t@q-Wl zkctZAAdx#B#RN{=L}`7d)xOtNk0ky&uxB83hXYyM+u8$ z{h{pxCAgFXG-W1<8j1Q8_$O-U_evJwwFCrI7A2Q&qFxgvC@Ra*2(P6tfoh4K%u@v< z(1W*#hQE*FZ4wt;_iBGs-C1`Jh$U_tGp{&-gd2@!ydk@ws_n2@S>+Nx;1a?(g2T(Y ztFogf9j`M}%`ds`F7-(cOh)^zBpI78}fWxzLf%5qzF=%LNCu3AbC zQm4I*MwR7>zA4s_p))`2f|!HEE!q=b)S0uDAdRrhL&PGvm1&h{;hCGz&YUN9D}`_s zB~B1aaTG~K=zB)G_{VvMki4nQ+xs7x*dj^a5_lxQ((tVwiwm^5{rh-L{hnY6ldUUwo|Ps_~2hI@p6cA;?G%_F4iMt4yKwO)Yy473bBUU<*M-YafFx6l*y%Xa7W zi3kl++wJx<%9liLueC9gugH}z58*Ib0C-sQ=$)u!_+3p(eYovhj^Vs)ZTT6fby^d1 zGFP&D$T9UJTT%{75c-VyZqoGmevQH&prCA~pDbx2m0}+-3(9bX6OzcXA6zso<7NH% zN&uLmP|*oV3Ep1GX-S$%W@*mpWPa)Y7qHKJ2#bVnm9VR zz0*H&H1eZA`WrfHtax}JG2*-D)$hHGVmTDsR98rB=^bpzr8i#7L-I^*|5o%+Dolvx zxizy|rc!7tW2?*f|pQ$$epy9#&$1vT~2M{S35;ccJQ z=M69mGt)C$ZXYA2=w;dA(!Us^<;<-p3B3#2vUJUEM~YNfciV@)>Nh$y4L_-cu+Q|) zsjbp^v_r-)c8|5si$5X;UE^KqsS(d=_vvlv1zF~g9Q(S($nK#p=7C@e-Zue{?HeFXXMgnq ze8*7;2IMUBk+G)V{-xD;b>G$R^+?N|(+p7^%W5a(_5<$qx}@4^f6 z#o`mCHcUM$8@A$C89VGn^sP9pEyDwQ46W$@ej_tz{J8Vp<4q#BLEwqeRJJOUU+^0^ zS?_)|zuH$0dQ5j5%?GbANGP3eXg;@z^M%tmo$8dqE*YI0t)v5;#Y#i1f;Qe56P-t~ zF)6+JP~&bqrDd14##*tZg$0jd*n+6iPIZaHLX+mYKAt_}61xTY-UGh2Gs!XAz_S)9Wnwam&q z^C#zW7w_p+S=Xm{XL?8*OH`n09Je6Q*r$v|C0pQi{7H6RJ*Rs}M#Q--y)v0p}RyP{)qu$Pm(^A`nO(rLZ zU`^@SSlW7}{iyIGg4gW3B9HY{?ooQ%n6hi{7I9p9<9GUY}HOfw6}kz2)ifJWo?O|P+S%n(7Lr|C0lXNRn0$2rhXaO zzyAAa(ArbbTCPxkeCSVy`un$bQv?d))W5%W`&5_vCq*g9###8Bh8VmB?4K`vxc|EQ z{ezgH{>6bjI*P#_Bs&#L({BUU9O}u*bo+G)b44{lbES{jccj$g+9)%#o3htq&M!Ge z^u$my5e5RaW%V~^?uzn9;WzEA3f9pYi(ogxIS<&(Jl9q*i`O)cBBv7hWRGtc>^Nc> zw61%2PTifQ?qjYuOA+(4llmu4Un(N?VGKr{(_&>GFWZTbh+k)f$T9xOviwFm>)3E) z-hpcw5?Ig3g?`6cLt_FT+hr+|@BkWk(+m zOBTsGMZ{^$t~gYRj9X}bv~v|c%;n(p1gI^IBRiFn*k8^MqM!n)Nsy(asV)*8fnzcM zWmEg(z4EweJ^3Qo7d(Z#SGM)zOmi~)7RL7q-%nga-a#knZ>5S>CNz@+gq?o%@^$?n z|6+mXqLo9qJ*}n{msRwpj)N2VjJP~Y>2AQIRSTEpw)5b15-hg=X*zX-X(~Ktam0w9 z5V6pz7l!<|I74>Q#iZO~=0wIU(1+C4@aI;eKh^KK?CYK%NLF;>Vo-7%Xp4sL-~~Gp zE_Vnh^a_uXnU&71ZMaHcH=7)tr;SVq%>G#oYBR9P{-%7o<00CF6orXU zR1)lckeI3sU$!>1cVMvfE_o5PhZp19c(D@)k`(&T$j z7{lN*?E~~su+F8} zbiDhqz~=$J3LC>BdedXDs#5|frz~OequazL>nd+{*}oPsN03F!E2MSJp}A$_o5d1t z{&zsy=ehwZVb#F!-bxv^x2oL|*1G4$Z<*%jTsv2!GG%OQC%VIz<_}mw{jpq1+mD!h z7bAyjJh}m|1Y_w1R57#64!rVmg(#cb-gFaoEThf0PC52cuxrAyJj`9Ub9$%eKR zN6IcBzB;uf@#CJ~y4I;VUh$cy8qoSX{y;JY%BV=0xlN>+VFae5^D|u+$Nz|+Xr1ei zL@n-rs0PGbAvkNP^r}H^X`0EPR#SmepNgwD-Bm;th4YU`?ech-ZF$MF)6_L7v}@f~ zCWm8Lj-CTxv9tSJo{2`AFL}97Z?m5?e;eBVg16T;!k_vjD6p0Rr}M2iLXmEBNLGs$ z>JQ}pca5+Yk7ym}=H9jA?Hajyl-D}G>gW8rD9L&eLJv#9z<8 z&Yrl>$VvJuFd=fIaP=QWh4F`g-Jf&nA1Kuy%;80uxxBZkCBvL>Q*UN(U_1Ap)_ zi&h}9m^gvLJUR&$oCY@S%?=J-bB1d3%^rjH_s}+79`_U36a&bFD?u5R5cgxE&jBDQ zoD*_FZhkrDZ-OV*4N$-&RV?D8VhL5?A$Q%)=VSPfbc(A@(v9lYIPjZS)s>Hv^ z%iJAJ&=?`|!=@Hi5}8(FKfs6;1F{$_dF38*U7mrt=Tiv}1T^6o)D|8QoY1d|s7@l) zcAlqU-+Xfm{4~i}4n{!7%Sl8hX7kN~#Y%L}9eA}(lL?h#4TS`(r+vT?Y1G?Jz+DI$ zxqFXq;c^NJ9`g}uR8kXF1l*M%5*+^iC5LgF5tCkpN-g)91W3U;{yPskMa5ELh4^DAM*axlVO zDyjN!Bt_Hsan`ig7w2;%|p0=QdI$f^^G1rWzW34f=EFUI;^DkuQwkk2q;TgO}ob5%hEpaa7j)m2&-sM;|r z_S?l%XsVK(C`rJUz^tp)7I+HplBV9(!pu~_F__4)DwqZ%lIq1K4jg%jqAv?%He8;9 z%~Y6ci({+z@T)Zb`VzEOB^Q#N<{CtXNQ{BbESMOW>y8S9Nk;iFm^yzs$2|2c z4Lm%i{W^DV$VPa5l_i1EUno#e?;VNibtIscV8a$y2bN@ZN@-HWDamTpMCf5{=L_XY zxM(V|vCNGt3V0}3eUc;i#s1UO$U7fnDw&sl8n!Bzq?$(?PbZdxuvi=~ZlH;GhDd@7 zZ}JLkR6~%j)2yyYIFdt5H1pv9Pogp~Jq!DP{5g5y5{3VlnhgHm)MOeZs=2YP{aHt_ z7EP%=rBs4cvs_<)YwJM#tLDK3$|00m$84eG|4@_j&;(l4GHMmN9={Hy{qP>W`f>Sl ztxTF98m_gN*nRZt_n(E+Jn6Fq@dUA7(J0U%i;nm*e;g5w;Pn@>?a^c?)%)xKu^o>4 zzgblY_TN+^v$UjRXid=%DRa^nc?74^zf2X91c{>~^jx((=)4Z|>YKjI8D8^7G?~`E zo;Hlee7&Cjb62L+FEu3bI@njTHhJFL71Ttjps|iK?jSaVDg-$X#F6@(TiXa0+-^~) z9%i?%4nE~KU+g*@X;YKCdDBlN-y!iT=0AF+B+_HpSU;Ajm#~sDR^5|qSE;*rae)o- zUGk6%Pw3N9MP;?W+gE5(hKRwl^832=4|FwS$Yl+}>9$xhZmEwlz8Aqpb7?3|w40G0 z8t;gjXoq!pcp$P~J{DTYQ9s>nVq+zx&>xmTALkrM`&MnN0v(h(xtWL-@H8Cur$5c9 zW%D}zQ=uUuztZBv#9`-8?PAGDM$Hn+agJ~m8XeGfA_Xzpi37orb5BLyZ+$C)QxdU} z%u_x|7Xqaq($$q|{JLYjnjdeMN>+{e5{)*{Ny*Hes$|IgKvcz%jp+b%Z(}Mzn6JLt zqD4DFL5%TWC7vsJz_U%~s@7aG+6%)hfFP(X@?5O{Dn!>_yr)z1{o?NWk;24*-+%5Z zr;ugO3v)k4awokk^5?kO)1bvIuHusH9g`}P>`OOyRFrW-S_(`Ds0*JX^m<5B=jF(j z#@Oh^*G%}=OI?y9wN_Iw@Gl9xy}iVU;-@L6mI`AWrw~^Ovn7&WvfHSojc~!qww7X^ zG-2z>6uVa-$U+z@$uuqetX`ACpjS9377&55lbR#=PTweN))GOIHs#Qas3HlVSi52K z_hLF(Vs=`IW8{n?(N`2c<5% z^_2;6dOTrCl@W#xznKYn#j^K4$>_s$J_?FUCsiTN>@bUh-XJ%s#siDL6orkJLA>-| z{^n8RhsL@5#(WRin=-jc9(>x0N0rss0FmWrM>%s-L*McNUpgC_6#2c&el8HW{3+*! zze3^18&XA!M*cV+Coe$#GYj(9floJZ}4uHOADTj5yFm_f(S`g(q;#=vLbly5_@Ue9cqL#i0wOoMU5PI5iwXRMfRvb6g%! zT&_xj;!WY}T!MwXjRis3%j};j`_%T0Qk1W;@YR!8<@Id~%IP=~;?7rc)!Mvf>yETU z*;D*6MzDZ`N{$V2Jln4@Vy$j~Do_p}(ED<$3NzZ^GSC5xNk;P;e7|s@JA{OCx}eVt zb_Jaj0FGEk3q7tn2!csp?@t#Ry-p`!<%lqq94(69;(VI<6(N?YC7NdI&W&e^#1!RF zf|dRkV`upm~Bm@EJ6a_)R z`tkDa->inouge^4R%yXl9E6Ad<2O{C}ilC$C8 zb%2LJa=q}izZpA;1A0CBXR{vc*k~`~vuW}?_{hy7RwBm31sqVm%DS18)-kUk!=Muv7g7E~^ zve3jxc&gU=7I?)!P9Yx7jpc;Oy$k!GF=|pqdsd=Rf3k?E2yA4$JL6^7);4`jQdRoT z`NU*mD#3NlpFGLL9paH|rgGFyHg=8=VlmPsW?Z5SGCnlFAzVrm+o}Gl_Q2%llxb-4 z&$8^!MhBR*{*ZQ6+myWb9;e1zL=A#y{bU4kMmOsootc@r$Hzv>AR22E@SMycc4rhX zIV&`~?zW4^iL8BLbuO5Kakhy~Zo+iqn|Sk%v*%vR$Ht5BHnxMjywZ)Z_?AgN5O1*wrgXKogc z1vmNM=Jestgz~vEABjIQs$a;xVDS`$$3Q<%6uX|PG~Trtmpyj^hi+*%u!Jk+Mw`Em zq&viUDVk<9g_Lq2pH|ARxoCC;jr6^7L%IBMAUBqL?WT$$QTUZ8LA*bqp@K^-pWHo2 ze-`=QS(l!j&67E~&O-cqP%npypZVM3+8-M}FOS1cG~-__(fRd`Kl9R~skUy~yEiv{ zhqAt$RfRU;k$4^_MCA`upi%tePQD}i?;)C#|8p{)F)43PLEbx%S4$U zgkDZR^ZSt#@|?8_4wQ_sWFdoJa@u=sC)Uff9sTTEQ%Uur8IkxLpz(d-r;fD}NANis zKEj)0k-(L(@ujF&p^gjvs|?&tOhD6z(wC!~Rzc{l@PZUO#35J|Gne`HoCA!D>cC z^Z9`@lJ@C#uFup{7iP)OmtfOXa0De!gps-a=ffx~u2}tv7<7!P)0J1@xHm+~dm_O; z%Qdp_+Rm+>ZLS_IoC8hTQyGH;L&u3j+pLcA?n1u0#8@ty>-2`m_d)gQgA$PeXV)>j z-BL^mzK_RDZQ3G$JX&+6Xd5?;ahfp0F5@mE4~8tJnQLQ?27^2vcqm+rFgAjVIu>CO zL=zIbJP{{{i+wa1`x+Y&2z4!zj1;~_j+s4iSLXpt=xB9C3f6ekNWzk-BAZZFFV4eM z3fw6tW7&}5r(7Yn3DJ~!c3jelDUwOXA@SY$(J6zWCi6~DG(C#)6H^DVK3q;7ONse6 z$?si~XSxFZ)U#2>P?Ovc3%WXL9r-Bt#dzYPb8!9)x2T@_C}k*N4XxeYjSH4FTwyeF zZpq9CnO0Rx&IOHJHjTU+^BXn`^xD6(38*COQ;u6YgsGwMeF|drkj7twymH)QS9*MW z-EE9$^f^L&7!smP_T4e(VKP#IJOvo}y@;8sfL{q=BD`ULuXUDi8E57OZznLulNy}% z5G#9$R)bW3x(JT_)Y^~;mg7v0#*k>N&+hfT?lyc38-t~hWxgl8%b@UiaI!UsVKb-L zhBQ8Ca50UCiy7FthJ)8FGZk*nut<*E#TBE#OBxOr5+N2`5!Xj9)U-*eeW}X_Ni5va zZ|pwMiAeimS8`A%6uXF1+C@?fGJm4m_Z>e zJbknf-1~I3F#k8WXz?hNTQmJ%0<_e{UMV*qN`~Mj7OWQr%@<|SbT5$t(hlSs3ltdJ zb7E(?tVmvFO!t@0)RKSLw|jG_QrqWrVF?|muUN%He7J-nS&OUORlSw@!wU=+mx|EC zCG_!;gfJ_{_`6EcBI9qzMML*FF*lF&uC$SQf-PBS70@@cAYOem(|ftvDzsD6$pj?yl;@&ZC>bH2COqkvBlM{&k|vC&U#xHun`*eL)z)Q zK2L|UMlv58kF(eCC|9zI%<560<_}AuA}H@gVQCyvJk%OsoWP&8?F9icme}aE>h=Cw z4I>PeAwkU}jX1n|_E<%*$PF=(v{X&3g0w$BOnZJ*Qm_`i!e=7FUv5p9V53nk{i`I0 zKY>cCe5tS~IEY}06Z#^y;+`v^KH{gbTHeM`>uKuxHL04J0#}rbSu4b>Ou9a`!i9x- zuutDr%$Vr@BZ!V#ZnzK!I#8gz#v6;N?WMw+E5^zi+|5Q^i<03c=k=;WeVUT|b+gW` zkEV2F&+{?oirSQg4Bfsw$1*@osH0QVsMutQcT;k= z=7%_Cb8Pl@1Izi!PL zSNqTMPwpa60c_pL0KEI3xpH1#YBhuQ2Vnw`h9p23N5M--%ggWvr-!^bknX$IrQ%kR zkk%Qb0VKu>de2+3&q^m4731le`f6Mg+L0?e)lAI zVA`vISydRjrP5(w;rh{=-0S7>qR!VmWAfHHE~=sL!fY9VOWH{$DahNTF-$%>9`6|AId|H z{fUYe*1E{-sa2+xyOUTddgrK|`Ny=*Yt6I%H>f|5SGN$4h&L0f@^62DQz<4wo0H)! zYLTBJvtRptkoSnP8Y>FHWo6((IlHqY>>m=hqBESGISQ?E2nq=Yeto{H%r<}Vi@WBN zKxjI%6pYyah|+K5 z)2&_&CSMIERuC@Sn-*y0V@5zB_E0uCZz<6Xvx3QYmJ_1Akx`!-f79Y9wHGKn%vRsc zY=5nEA%+XP`leEsNL_)0219%0U9Cg1A%f}h9uxnmj~5lHau#cr^)Hb0XSlcI#0oya zCl|+04T^aB`Y9#k2GL4}A6*kj`H;Vjqr1<>2n14Q(csgM#M~+=jEhNZD zS8VL0jQwo#+4@Xu^Bdv4LdPKQp2xj%`&Hi~`-_)~O2&%>UgwFQ-;J%96(5_HkZQ*6 z*49|58>cep=aH=L=N13egn<CDSr{v@}9yy_(>HInvQe0}m6e%Y= z!2i10Fk*2zvj6gP_2p|Aq{+c@%KWCgO%+<=Y?*58q1XS@`p>QN*gpvK`QuT@b2_2t z^dy0B?I$&bCB%*8J#t;51sS4HEr+79MAQeOX{eg_XZ~v(y2r31IQ8ZF=ZC+xLTChB&;aKyg%rP_mXBeJZ*A48zwo1}8P@y+7gSHHoufWJ5V(VOKQX1i)jTlY%uoz@ z3re)_)?>K+tkskn+WSloT$oh>5_2eTZJr#tsrmD3J>R@GLLO_e)^4R8Dbj=8dp*bJ zwv@Iv{mK)5*}-HHp!8tLV@40D`lr;^ z?|f5w!%tR(Ec($+L$O68%iYz(0Bqcr`m(EIs#Qrq!#lp*D4!hVMLY?@e@L8a*6GmIUTq8-fif!V4oejd0J>xlpKaDxtJElUBB5)9z@pooL<1HF?vOda_P{i(b1Xrf25|PlPi~- zp$_H-?l#cgucq&n0yIMp3pS3k3Sz$5#(#A_AZ*yS=?|I>Xmg*3yiExROAh$gm>2U2 zQEJ*dPi6IUZRklT_wVG%uMzeW2b!ito9B8)ZP){nPhGDfpZRQjC8hl_61AJ#5Qkgd zkDV@|vd%b3eL??fL7a4pb@TGSo|E9n9&C(E9o&NV+DLuQT}|5Yq`SBv_4|;}1v{4! zr|YxFbp**LEltJf=91)8=g#wYy|Y-qn#mi2KefsNclH@qJMXBFvLZg@U!Hxdb2(T4 zZp!mjCwNoqi-}&{Gk<-(7HM}=^GqC z2N0h!TECL6_~gSIng#7 z7#MAaLD6VabQBhYOGq>^!6cieVKZ?_={d=`%w&j74qCOWvNAG<8&ijg1U$@o18G2QZ9vU3R-4Rxan$4gNT$ZE?sXN;S`n=glrEjkP!+*Z7I_1>}9RN~aB+ zH3?-$T@LIsxgVfxBWwo_%H+as1@ht_fKOP0+Ih2#A4(ZBgi9{>&7dXNhj-nC!xv`+ zn)Y~cm|XY{mfm=1XpGG6ujm8kW!N28SwPaD_@rDElUpTkmM{G@>VnR+G3Zccc!Ndk z6Pr5kz4-otifiq!B{i~rEjs~J!ty(Gcn=>j`fbkAJG`<%Lk-)?$Zd!xrlS%G4~3dC zDW!9(e?~nT8l6>`;XB!KP7Y^SwO_jms{yaE6mxC{`4tMfU zY;x$?Jx~c3QrgzU&;^~tv5VRCaw+Gd7~s(q{th;=-m-mK zPTRbpsc6;H^~b070Yu#&4PZM$@=0F~&H+rTI%?0GkWQ!Z(N1qoElmnuL|2=b9Mjhj zl)I>&BX7=(Z^Kh20`PWq?YdJ{eO7L{f6@Q6PRwe>E>?kBNc=y|GNFUBDk^qV%(U?X zbQg&@yI;!?md183V`A}_66CBliaM=Cmg~8(F^iYiM+t=0xXI4C0XHX*NJWOaj5q&o z2*aC8)X~qX5;PZvD2(_q!(v?XT#miUT=*q#Ir>^|8i&Gbv-4L@-(n#=P#z|TQp(~T zQ#IDei04#Mm&rR3oHeQ6rQ)tkerfLa?XAa6=`9pUSi#7xL zr~*5?%slMTOY=?eZTzn*kHwl4`pv}=d=4uqc7MQ3d==#6aRt77)xbBO?-4{Z#Q2Wp z8S0C%QRII|+ERZ)`jzjh9_%SE{>L3#OIphrv&|cqoxxKOBjds=I8#APYY_{UYs0rJ z*iHt3NTQEX228IJ5B`cZ!p26e^#TZ?EP;$#OS^s|jl(4Ktc0vb=gCX*DxjW;u}3Cb zlomFIihC65FS}nDpaGlmZz`eG6eL#Z7$7-|DHSE*nGCYiuIh@nOYHZDaO=IYoBwX< zSG_sFbewxEGl1mpU*8+SymS=R7klN3pbyMd7@msdDwIgFKTNtRVb`$CkY>fCY`(&P zwLB_pH)>hZWT*somy-ylC{#;KHn-dSOVvUJ0L7MZ`q@#)D~_j>Wiw$Cigmu&xt{V1;3O{ zlOa?rwoJ*>vD1H;kAg0xR63yK`CVa`Dur7ExVe`n{VUDc_cm;J zKza{+G#nIfI+W>1jm0$dnIgG9sOWeQ>Q=`qcr|43RadE5FVUIP&vmBk$PPn>4HgY- zDu|Xk@9@@n9keIt9WAhDNS+-ys{-J$HpR!nA2woI6=#x;g+fmDhQEMRk>iBGZ8v<@ z2IUwn3`L~25Mph4vgf~<(0nK>g`Lqb2FOK5^YP50KLiVo1lLq<)&Fiuf-9=?kfo@YzB{~XcqhgDk6^7Mo!7nl(mjbOE+S13ndzbV4H|zJ zMJ#(LX8`B8^-~eEv8!=3Ok?}4sxP1Qg=<8HB=+YwA=qJ`cd2>wo01qGK2dq@#CP4Z ze^p^67<{pK_K_gdF9!h{tFMT;d5vN1#pIdbqHSG2`l5uqw(e0iGOJh>Bv%xX7zQX| z1~(zCK3jK4d-41TNKJXc07Q%_0A74Bp)lmWCZFQx#l9~a9IT#|0LrK$;Lo3G(+amv zt|wG8AYxoqoJ%uESTU&p=H<6l%Acx7F&d5e#s+{Ziu&R~DoD@x z?%@lbd)`lgfu(+G|4#X8nWB7_M|27gQQoy|B4t2~(eVw@;1GCy?{Nm}Ip9!`VHtif zxBx-DLkADgFFIT&Fa}(}WP_$_AHsjwLc3uMlQC=Js94$JB%;kTD(Z9Auh8is&~gF+ zWAxUkKPTkC+U~;`m(b!b+rdNhdEe*KfY`1VPtIPy;d#;Ff_n+Ejg7V#AxnVAKM0y+ z$gUq{@Wk8i~C_ImQhaj}wax$*QC@bGT&H7ikKNj*y` z_%_#)N=RfN`1GIhCt6No+@ljW_qV|$oH1(+cm)m(84wE|wJ{%RAgII$NH(D~{5rsh z{u~~;uMYyPUpmH6K7>Y}M({7bj{&PND2eYMAc~yB#5rRsE7WW2ZAKi8vQ=WfX~5@x zDjT3cXNUJ@K4=dQp*|e2sDb{MPham8SZYLSI~bGG26p(Vu~%(9=L98FhWuKJ(c89} zkq8~`J0L9|7AtM-+!8h0RoCSK7U|9$qp}q#($)208P4?lDam+Qu9T-=L(3jvP zWK3iTR*zV5QhIc)0Zt4gFyuCpp*B+v-7&pA!`QWY771h!e~ZpZ+?O!Jaz-9*&7YEIFz(kw*(;5eR;K*bwV|;rs}* zmFUDvNH&QyZwsgUq_30@pge*x^aUFPE3Q%r*K(-xNK0eXHF+sCS{IY_+L5GJaqTX# zEaq^_hUB|(_T3#AWQQa>BLIZ(7QiH;7r`e_ksoBBC`#=4knjY+_vfV$_Q z8({IsPHk>#vU~E2j||G(1R_A;H_HvdY~hbft4ek1C7=j?hNcaO;G6I=%X}jG!jUdQ z;8`ZZUlb1w6^Y#WkZ=#zf^Fkf&Bqf;q`~6v3_vRQQ8y5{fxtAalHE$It2r8jLIX1a z>5wpXK4v~%C^(4BBqj-l0D>~{D>DeD8|25i9mQz{(Oao~laV6@@ZSlc#`o+%x{UHz z`WHtKI}z8kEzs#CJ5!rjxkDmm5T~=umR6BEHSsLRAYt7&I41^QCe#k(kB7tM?Of#k zrUt?(U}5Lz=q`fF^N2EgJah#>WS&SlBfBO@$$pAGYnj}Yj~N)IXvbxHeqYi2kPxFK z8F&dEbYMyt%!vC1aimAX{0r1q$#-s3UUEE;@1!*5Qw82YIveEoxe5Q^WLf&ygRl~7 zIfcOXLVe{t9IBupvp~Q|wlDDx3biDY-iiW!@LnD%2;8+7{9#IFpZRcg0$n&Q6TJf_OL zrHQ;i4(~%aL46^8R1(9kMyB{wP$3(bke3h%5T8$i8h&D=yk9~jg?w`_ww+L<{zUXE zfg!OWc(;$;f;IcTxtps6>vX7qapJog!bhv*{aBPSIcs>5;;BdKGZ7dBUc%$(D8~26YyG?`Bt(RmE$j{r%Eb$`T$; zSXMaXOZe-K4Wo>2t=?9~nv=NZuO5~Rb5^de)l^h&Ex#xQ;$;q0bX0BO*$p;g400F4 z?8%2=4Ayb_<0)14aXHH12Mp?&6<{cXI1n-=W_HQXynMB(4>L7Cf{pZ6gpT{; zJIzXIXIK12fq?n}10Xh_GM=*s)Rb)L@Nk zmf$J^|53@4_u5dTf~r>x`wR{Wg?HmBUQTv_w_Qn|LLg9sH~J+y`@eWPP449QMY>k1 zM`3D6ZGNbg&G;@oVYEeA=jec-V~2o>tz!_3PHV#dDeETtD+B2fxlygMgFMV%4W7YC z41mx919fL~aGufT7myho2@+bL+~@+^0i>7DOO(JpJDJ^|0=rC51kzupCUXcrvW-zP zIuM<|5am}jbE66q8GSyZEkv#n&pLRTOVBLT0Z-4^-*jgwf>E!Ge=VA=lL{*`cWpaP?~+B*;L1

          t0K;U(kZqAfK%-drg2f)h7Qp1Q_2j-c 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

          ;>N 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�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

          _J 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ƒRyzWrmgc(y=fj* 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 z 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 literal 0 HcmV?d00001 diff --git a/Dropimage/img_receipt.png b/Dropimage/img_receipt.png new file mode 100644 index 0000000000000000000000000000000000000000..d1dddbc44bc516340a42d96d1e572c72c542e57d GIT binary patch literal 3959 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 nF5vH~$RMvSpFw3EJ{&zrwawXv;!#&vX9<^j*+R literal 0 HcmV?d00001 diff --git a/Dropimage/img_talk.png b/Dropimage/img_talk.png new file mode 100644 index 0000000000000000000000000000000000000000..400506f630b0b13598fd3a07785aa1071dfbb56d GIT binary patch literal 11477 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 AJpcdz literal 0 HcmV?d00001 diff --git a/Dropimage/nextstation_button.jpg b/Dropimage/nextstation_button.jpg new file mode 100644 index 0000000000000000000000000000000000000000..417aa81255f60da8bf732200c29864cbeb9b1e58 GIT binary patch literal 53297 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 literal 0 HcmV?d00001 diff --git a/Dropimage/nextstation_img.jpg b/Dropimage/nextstation_img.jpg new file mode 100644 index 0000000000000000000000000000000000000000..145b12935c4f2a75acf35208b4ac6133bd471cf4 GIT binary patch literal 254990 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 literal 0 HcmV?d00001 diff --git a/Dropimage/step01.png b/Dropimage/step01.png new file mode 100644 index 0000000000000000000000000000000000000000..a1def57f5e99f6898fac86ddfcfa50c95883b9a6 GIT binary patch literal 4612 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 f8> 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

          p@|e|K{_MmSV$z zaXAV_Xl2Q0G%8c3ZLUWH0I*-Fj*TbdCGQ{#T+5KzFbtzsM@0h=AT;V^iWHQDQ>?n@y(>bbT5| z%8YbO?=`_7M)e9pts~Vq2H6;8ay*q3&?u#2Q_$)rX)*nHnW%!nMwt#~F_^X~O#mg5 ze}-zclW08|jXu}=Qeu5X!wzWGb9e{baBE-S5 zM)U8T-6?IT$NBzbVe|WImL4}>u5h_`q|AHKO}F@b*M!B6sc$O1SCtGd6uaj*EvS0! ztE0y_RhRd;{4oE*B1gC45JqN;w`AWI>83-a&92?c+|TNdmR+A8*jbd^UDnc6c=}*# z>QKX_R=daYumc0e#^EM^a0|XJZ~k$s8)wl#-{1}1IcssbV@UP#9!tTQEptJoMcKH2 zm*v85sNqg;QNcmhoKSb*POls|FDP7Ts2lvO;pfZtc%25$PS3x7H7_~qYU?LmxwGT0 zMJM94QX)DAZ0Y~v&Cg|9ye@8Glma{{G&1MH=Yk_ zcB9A#c*4G4G4OYkYMf|@CWxjUrzuoqb*1^ zYpj7{$MN=&I~Z$Y20f*4|5v&o)qiGpY#)Iu;u?N2<2;Q6K%z#5+iMgHERTpP zzs{4(!QG(9$d=wK88OntXS%j5aM(U^>yt>UF(CV46yL(%y4)A*I^_*iBJ6I_#l>ZD z*@WtnqWN~~I*zph?N%4sZRg(3k~THw{@T%X!^3Q9Y$u-dfBSib<;!F3nLT!31mX=? zRmqs@Om(Z`qFxZ$u5HY|C(o-3$XS@UZur2%W#_)gduS-#fu5;Y@%<2K=vV=K?g(8E zRbLHv{Zv@GxLcUJzo=j+u+%_1RXwoqTy6tT{>R=lUr$C8_t|j{IJqjlP$D@|+~j#= z8@(sI@dH+h#R*`Y^&U5j-qp3Hj_UI}=g0&1EZNuL!tprGE=kG;_bZ?7=y;k{T3@ic ipnsQ!`k)dzyaCGBS8mwb?%-wn2Z{)lipxVbe)uQCLflgT literal 0 HcmV?d00001 diff --git a/ImageCopy.bat b/ImageCopy.bat new file mode 100644 index 0000000..8a1b420 --- /dev/null +++ b/ImageCopy.bat @@ -0,0 +1,2 @@ +@echo off +Xcopy Dropimage ..\Image\Kiosk\PB /Y /I diff --git a/Kiosk/Common/SPC.Kiosk.Base/Properties/AssemblyInfo.cs b/Kiosk/Common/SPC.Kiosk.Base/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..55cdf2a --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Base/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Base")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Base")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("bcc10fa2-c358-480c-8ff0-615750f3c306")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Common/SPC.Kiosk.Base/RelayCommand.cs b/Kiosk/Common/SPC.Kiosk.Base/RelayCommand.cs new file mode 100644 index 0000000..82638bc --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Base/RelayCommand.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Input; + +namespace SPC.Kiosk.Base +{ + /// + /// Commad Interfase Implementation + /// + public class Command : ICommand + { + private readonly Action _handler; + private bool _isEnabled; + + /// + /// Set Commad Handler + /// + /// + public Command(Action handler) + { + _handler = handler; + IsEnabled = true; + } + /// + /// CanExecut Is Enabled + /// + public bool IsEnabled + { + get { return _isEnabled; } + set + { + if (value != _isEnabled) + { + _isEnabled = value; + CanExecuteChanged?.Invoke(this, EventArgs.Empty); + } + } + } + /// + /// CanExecute Status Return + /// + /// + /// + public bool CanExecute(object parameter) + { + return IsEnabled; + } + /// + /// CanExecuteChanged EventHandler + /// + public event EventHandler CanExecuteChanged; + /// + /// Execute with parameter + /// + /// + public void Execute(object parameter) + { + IsEnabled = false; + _handler(parameter); + IsEnabled = true; + } + /// + /// Execute with out parameter + /// + public void Execute() + { + IsEnabled = false; + _handler(null); + IsEnabled = true; + } + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Base/SPC.Kiosk.Base.csproj b/Kiosk/Common/SPC.Kiosk.Base/SPC.Kiosk.Base.csproj new file mode 100644 index 0000000..9276a72 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Base/SPC.Kiosk.Base.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {BCC10FA2-C358-480C-8FF0-615750F3C306} + Library + Properties + SPC.Kiosk.Base + SPC.Kiosk.Base + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Base/ViewModelBase.cs b/Kiosk/Common/SPC.Kiosk.Base/ViewModelBase.cs new file mode 100644 index 0000000..202080b --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Base/ViewModelBase.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace SPC.Kiosk.Base +{ + /// + /// Basic View Model + /// + public abstract class ViewModelBase : INotifyPropertyChanged + { + /// + /// View Model a Member PropertyChanged EventHandler + /// + public event PropertyChangedEventHandler PropertyChanged; + + + protected virtual void PropertyChange(string propName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); + } + + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common.Model/CommonModel.cs b/Kiosk/Common/SPC.Kiosk.Common.Model/CommonModel.cs new file mode 100644 index 0000000..f216ec9 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common.Model/CommonModel.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Media; +using SPC.Kiosk.Base; + +namespace SPC.Kiosk.Common.Model +{ + public class M_PopupReturn + { + public bool OKAnswer { get; set; } + public bool TimeOut { get; set; } + public SupportLanguageType ReturnLanguage { get; set; } + public object PopupArgs { get; set; } + } + /// + /// Button Send Events Args + /// + public class ItemDropEventArgs + { + /// + /// Send Object + /// + public object SourceObject { get; set; } = null; + /// + /// Target Object + /// + public object TargetObject { get; set; } = null; + } + public class M_IntroItems + { + public int ItemsStack { get; set; } = 1; + public double StackWidth { get; set; } = double.NaN; + public List StackContents { get; set; } = null; + } + public class M_StackContents + { + public int ItemsIndex { get; set; } = 0; + public List MediaRollItems { get; set; } = null; + } + /// + /// Media Rolling Item Model + /// + public class M_MediaRollItem + { + /// + /// Media Type Image or VOD + /// + public MediaType Type { get; set; } = MediaType.None; + /// + /// Media File Path + /// + public string MediaPath { get; set; } = string.Empty; + /// + /// Media Show Running Time Seconds + /// + public double RunnigSeconds { get; set; } = 0; + public bool RepeatMedia { get; set; } + public TimeSpan StartTime { get; set; } = default(TimeSpan); + public TimeSpan EndTime { get; set; } = default(TimeSpan); + public IntroLinkType LinkType { get; set; } = IntroLinkType.None; + public string LinkParameter { get; set; } = string.Empty; + } + /// + /// Button List Item Collection + /// + public class M_ItemData + { + public int Index { get; set; } = -1; + public string ItemCode { get; set; } = string.Empty; + public string Category1 { get; set; } = string.Empty; + public string Category2 { get; set; } = string.Empty; + public M_AnimationButton DataParameter { get; set; } + public M_TextBlock BaseTextBlock { get; set; } + public M_TextBlock AdditionTextBlock { get; set; } + } + public class M_AnimationButton + { + public double Width { get; set; } = double.NaN; + public double Height { get; set; } = double.NaN; + public Thickness Margin { get; set; } + public string NormalBrush { get; set; } = string.Empty; + public string DownBrush { get; set; } = string.Empty; + public string DisableBrush { get; set; } = string.Empty; + public string SwitchOnBrush { get; set; } = string.Empty; + public string DragCursorImage { get; set; } = string.Empty; + public HotSpotType DragCursorHotSpot { get; set; } = HotSpotType.LeftTop; + public Stretch BrushStretch { get; set; } = Stretch.Fill; + public bool Enabled { get; set; } = true; + public bool Switch { get; set; } + public bool AutoToggle { get; set; } + public bool ClickSend { get; set; } + public string BaseGrid { get; set; } = string.Empty; + public string ReciveElement { get; set; } = string.Empty; + public ButtonAnimationType ClickAnimationType { get; set; } = ButtonAnimationType.None; + public ButtonAnimationType DropAnimationType { get; set; } = ButtonAnimationType.None; + public List LanguageText { get; set; } = null; + public string Text { get; set; } = string.Empty; + public Visibility TextVisible { get; set; } = Visibility.Collapsed; + public string TextForeground { get; set; } = string.Empty; + public string SwitchOnForeground { get; set; } = string.Empty; + public string DisableForeground { get; set; } = string.Empty; + public VerticalAlignment TextVerticalAlignment { get; set; } = VerticalAlignment.Center; + public HorizontalAlignment TextHorizontalAlignment { get; set; } = HorizontalAlignment.Center; + public string TextFontFamily { get; set; } = string.Empty; + public double TextFontSize { get; set; } = 12; + public FontWeight TextFontWeight { get; set; } = FontWeights.Normal; + public TextWrapping TextWrapping { get; set; } = TextWrapping.Wrap; + public TextAlignment TextAlignment { get; set; } = TextAlignment.Center; + public Thickness TextMargin { get; set; } + public bool DragEnable { get; set; } + public double CircleSize { get; set; } = 30d; + public string CircleBackBrush { get; set; } = string.Empty; + public string CircleTextBruch { get; set; } = string.Empty; + public string CircleText { get; set; } = string.Empty; + public bool CircleOuter { get; set; } + public SupportLanguageType DisplayLanguage { get; set; } + public List BadgeImages { get; set; } = null; + }; + /// + /// Button List Item Text Box Collection + /// + public class M_TextBlock + { + public List LanguageData { get; set; } = null; + + public double TextSize { get; set; } = 12; + + public string TextBrush { get; set; } = "Transparent"; + + public FontWeight TextWeight { get; set; } = FontWeights.Normal; + + } + public class M_MultiLanguage + { + public string MessageCode { get; set; } + public List MessageData {get; set;} + } + public class M_Language + { + public SupportLanguageType Type { get; set; } + public string LanguageData { get; set; } + + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common.Model/Properties/AssemblyInfo.cs b/Kiosk/Common/SPC.Kiosk.Common.Model/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..986aa52 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common.Model/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Common.Model")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Common.Model")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +//지역화 가능 응용 프로그램 빌드를 시작하려면 다음을 설정하세요. +//.csproj 파일에서 내에 CultureYouAreCodingWith를 +//설정하십시오. 예를 들어 소스 파일에서 영어(미국)를 +//사용하는 경우 를 en-US로 설정합니다. 그런 다음 아래 +//NeutralResourceLanguage 특성의 주석 처리를 제거합니다. 아래 줄의 "en-US"를 업데이트하여 +//프로젝트 파일의 UICulture 설정과 일치시킵니다. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //테마별 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) + ResourceDictionaryLocation.SourceAssembly //제네릭 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) +)] + + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Common/SPC.Kiosk.Common.Model/SPC.Kiosk.Common.Model.csproj b/Kiosk/Common/SPC.Kiosk.Common.Model/SPC.Kiosk.Common.Model.csproj new file mode 100644 index 0000000..026d6d8 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common.Model/SPC.Kiosk.Common.Model.csproj @@ -0,0 +1,70 @@ + + + + + Debug + AnyCPU + {7621F355-20D1-4DA0-A677-9DCBC1734BAB} + Library + SPC.Kiosk.Common.Model + SPC.Kiosk.Common.Model + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + x86 + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + 4.0 + + + + + + + + + + + + Code + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + + \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml new file mode 100644 index 0000000..037291d --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml.cs new file mode 100644 index 0000000..c1b7e47 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/AnimationButton.xaml.cs @@ -0,0 +1,1565 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Interop; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// AnimationButton.xaml에 대한 상호 작용 논리 + /// + public partial class AnimationButton : UserControl + { + #region [ Private Members ] + private bool MoseDown = false; + private Point MoseDownPosition; + private bool CircleMoseDown = false; + private Point CircleMoseDownPosition; + private Cursor DragCursor = null; + private Storyboard BreathigStoryboard = null; + #endregion Private Members + + #region [ Public Members ] + + #region [ DependencyProperty ] + /// + /// Noraml Bakcground + /// + public static readonly DependencyProperty NormalBrushProperty = + DependencyProperty.Register(nameof(NormalBrush), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent", new PropertyChangedCallback(OnNormalBrushPropertyChanged))); + /// + /// Image Brush Stretch Type + /// + public static readonly DependencyProperty BrushStretchProperty = + DependencyProperty.Register(nameof(BrushStretch), typeof(Stretch), typeof(AnimationButton), new PropertyMetadata(Stretch.None, new PropertyChangedCallback(OnBrushStretchPropertyChanged))); + /// + /// Touch Down Bakcground + /// + public static readonly DependencyProperty DownBrushProperty = + DependencyProperty.Register(nameof(DownBrush), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent")); + /// + /// Button Disable Background + /// + public static readonly DependencyProperty DisableBrushProperty = + DependencyProperty.Register(nameof(DisableBrush), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent")); + /// + /// Drag Cursor Image Path + /// + public static readonly DependencyProperty DragCursorImageProperty = + DependencyProperty.Register(nameof(DragCursorImage), typeof(string), typeof(AnimationButton), new PropertyMetadata(string.Empty)); + /// + /// Drag Cursor HotSpot Type + /// + public static readonly DependencyProperty DragCursorHotSpotProperty = + DependencyProperty.Register(nameof(DragCursorHotSpot), typeof(HotSpotType), typeof(AnimationButton), new PropertyMetadata(HotSpotType.LeftTop)); + /// + /// Switch On Status Background + /// + public static readonly DependencyProperty SwitchOnBrushProperty = + DependencyProperty.Register(nameof(SwitchOnBrush), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent")); + /// + /// Switch Status + /// + public static readonly DependencyProperty SwitchProperty = + DependencyProperty.Register(nameof(Switch), typeof(bool), typeof(AnimationButton), new PropertyMetadata(false, new PropertyChangedCallback(OnSwitchPropertyChanged))); + /// + /// Auto Switching Flag + /// + public static readonly DependencyProperty IsBreathingProperty = + DependencyProperty.Register(nameof(IsBreathing), typeof(bool), typeof(AnimationButton), new PropertyMetadata(false, new PropertyChangedCallback(IsBreathingPropertyChanged))); + /// + /// Auto Switching Flag + /// + public static readonly DependencyProperty AutoToggleProperty = + DependencyProperty.Register(nameof(AutoToggle), typeof(bool), typeof(AnimationButton), new PropertyMetadata(false)); + /// + /// Click Send Flag + /// + public static readonly DependencyProperty ClickSendProperty = + DependencyProperty.Register(nameof(ClickSend), typeof(bool), typeof(AnimationButton), new PropertyMetadata(false)); + /// + /// Button Enabled + /// + public static readonly DependencyProperty EnabledProperty = + DependencyProperty.Register(nameof(Enabled), typeof(bool), typeof(AnimationButton), new PropertyMetadata(true, new PropertyChangedCallback(OnEnabledPropertyChanged))); + /// + /// Base Grid Name + /// + public static readonly DependencyProperty BaseGridProperty = + DependencyProperty.Register(nameof(BaseGrid), typeof(string), typeof(AnimationButton), new PropertyMetadata(string.Empty)); + /// + /// Recive Element Name (AnimationButton) + /// + public static readonly DependencyProperty ReciveElementProperty = + DependencyProperty.Register(nameof(ReciveElement), typeof(string), typeof(AnimationButton), new PropertyMetadata(string.Empty)); + /// + /// Click Animation Type + /// + public static readonly DependencyProperty ClickAnimationTypeProperty = + DependencyProperty.Register(nameof(ClickAnimationType), typeof(ButtonAnimationType), typeof(AnimationButton), new PropertyMetadata(ButtonAnimationType.None)); + /// + /// Drop Animation Type + /// + public static readonly DependencyProperty DropAnimationTypeProperty = + DependencyProperty.Register(nameof(DropAnimationType), typeof(ButtonAnimationType), typeof(AnimationButton), new PropertyMetadata(ButtonAnimationType.None)); + /// + /// Button MultiLanguage Text + /// + public static readonly DependencyProperty LanguageTextProperty = + DependencyProperty.Register(nameof(LanguageText), typeof(List), typeof(AnimationButton), new PropertyMetadata(default(List))); + /// + /// Button Text + /// + public static readonly DependencyProperty TextProperty = + DependencyProperty.Register(nameof(Text), typeof(string), typeof(AnimationButton), new PropertyMetadata(default(List))); + /// + /// Button Text Visibility + /// + public static readonly DependencyProperty TextVisibleProperty = + DependencyProperty.Register(nameof(TextVisible), typeof(Visibility), typeof(AnimationButton), new PropertyMetadata(Visibility.Collapsed, new PropertyChangedCallback(OnTextVisiblePropertyChanged))); + /// + /// Button Text Foreground + /// + public static readonly DependencyProperty TextForegroundProperty = + DependencyProperty.Register(nameof(TextForeground), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent", new PropertyChangedCallback(OnTextForegroundPropertyChanged))); + /// + /// Button Switch On Foreground + /// + public static readonly DependencyProperty SwitchOnForegroundProperty = + DependencyProperty.Register(nameof(SwitchOnForeground), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent", new PropertyChangedCallback(OnSwitchOnForegroundPropertyChanged))); + /// + /// Button Disable Foreground + /// + public static readonly DependencyProperty DisableForegroundProperty = + DependencyProperty.Register(nameof(DisableForeground), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent", new PropertyChangedCallback(OnDisableForegroundPropertyChanged))); + /// + /// Button Text VerticalAlignment + /// + public static readonly DependencyProperty TextVerticalAlignmentProperty = + DependencyProperty.Register(nameof(TextVerticalAlignment), typeof(VerticalAlignment), typeof(AnimationButton), new PropertyMetadata(VerticalAlignment.Center, new PropertyChangedCallback(OnTextVerticalAlignmentPropertyChanged))); + /// + /// Button Text HorizontalAlignment + /// + public static readonly DependencyProperty TextHorizontalAlignmentProperty = + DependencyProperty.Register(nameof(TextHorizontalAlignment), typeof(HorizontalAlignment), typeof(AnimationButton), new PropertyMetadata(HorizontalAlignment.Center, new PropertyChangedCallback(OnTextHorizontalAlignmentPropertyChanged))); + /// + /// Button Text FontFamily + /// + public static readonly DependencyProperty TextFontFamilyProperty = + DependencyProperty.Register(nameof(TextFontFamily), typeof(string), typeof(AnimationButton), new PropertyMetadata(Fonts.SystemFontFamilies.First().Source, new PropertyChangedCallback(OnTextFontFamilyPropertyChanged))); + /// + /// Button Text FontSize + /// + public static readonly DependencyProperty TextFontSizeProperty = + DependencyProperty.Register(nameof(TextFontSize), typeof(double), typeof(AnimationButton), new PropertyMetadata((double)10, new PropertyChangedCallback(OnTextFontSizePropertyChanged))); + /// + /// SwitchOn FontSize + /// + public static readonly DependencyProperty SwitchOnFontSizeProperty = + DependencyProperty.Register(nameof(SwitchOnFontSize), typeof(double), typeof(AnimationButton), new PropertyMetadata((double)0, new PropertyChangedCallback(OnSwitchOnFontSizePropertyChanged))); + /// + /// Disable FontSize + /// + public static readonly DependencyProperty DisableFontSizeProperty = + DependencyProperty.Register(nameof(DisableFontSize), typeof(double), typeof(AnimationButton), new PropertyMetadata((double)0, new PropertyChangedCallback(OnDisableFontSizePropertyChanged))); + + + + /// + /// Button Text Weight + /// + public static readonly DependencyProperty TextFontWeightProperty = + DependencyProperty.Register(nameof(TextFontWeight), typeof(FontWeight), typeof(AnimationButton), new PropertyMetadata(FontWeights.Normal, new PropertyChangedCallback(OnTextFontWeightPropertyChanged))); + /// + /// SwitchOn FontWeight + /// + public static readonly DependencyProperty SwitchOnFontWeightProperty = + DependencyProperty.Register(nameof(SwitchOnFontWeight), typeof(FontWeight), typeof(AnimationButton), new PropertyMetadata(FontWeights.Normal, new PropertyChangedCallback(OnSwitchOnFontWeightPropertyChanged))); + /// + /// Disable FontWeight + /// + public static readonly DependencyProperty DisableWeightProperty = + DependencyProperty.Register(nameof(DisableWeight), typeof(FontWeight), typeof(AnimationButton), new PropertyMetadata(FontWeights.Normal, new PropertyChangedCallback(OnDisableWeightPropertyChanged))); + + + /// + /// Button Text Wrapping + /// + public static readonly DependencyProperty TextWrappingProperty = + DependencyProperty.Register(nameof(TextWrapping), typeof(TextWrapping), typeof(AnimationButton), new PropertyMetadata(TextWrapping.NoWrap, new PropertyChangedCallback(OnTextWrappingPropertyChanged))); + /// + /// Button Text Alignment + /// + public static readonly DependencyProperty TextAlignmentProperty = + DependencyProperty.Register(nameof(TextAlignment), typeof(TextAlignment), typeof(AnimationButton), new PropertyMetadata(TextAlignment.Center, new PropertyChangedCallback(OnTextAlignmentPropertyChanged))); + /// + /// Button Text Margin + /// + public static readonly DependencyProperty TextMarginProperty = + DependencyProperty.Register(nameof(TextMargin), typeof(Thickness), typeof(AnimationButton), new PropertyMetadata(new Thickness(0, 0, 0, 0), new PropertyChangedCallback(OnTextMarginPropertyChanged))); + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(AnimationButton), new UIPropertyMetadata(null)); + + /// + /// Circle Clicked Command + /// + public static readonly DependencyProperty CircleCommandProperty = + DependencyProperty.Register(nameof(CircleCommand), typeof(ICommand), typeof(AnimationButton), new UIPropertyMetadata(null)); + /// + /// Drop Command + /// + public static readonly DependencyProperty DropCommandProperty = + DependencyProperty.Register(nameof(DropCommand), typeof(ICommand), typeof(AnimationButton), new UIPropertyMetadata(null)); + /// + /// Drag Enable + /// + public static readonly DependencyProperty DragEnableProperty = + DependencyProperty.Register(nameof(DragEnable), typeof(bool), typeof(AnimationButton), new PropertyMetadata(false)); + /// + /// DataParameter + /// + public static readonly DependencyProperty DataParameterProperty = + DependencyProperty.Register(nameof(DataParameter), typeof(object), typeof(AnimationButton), new PropertyMetadata(null, new PropertyChangedCallback(OnDataParameterPropertyChanged))); + /// + /// Circle Size + /// + public static readonly DependencyProperty CircleSizeProperty = + DependencyProperty.Register(nameof(CircleSize), typeof(double), typeof(AnimationButton), new PropertyMetadata((double)12, new PropertyChangedCallback(OnCircleSizePropertyChanged))); + /// + /// Circle Back Brush + /// + public static readonly DependencyProperty CircleBackBrushProperty = + DependencyProperty.Register(nameof(CircleBackBrush), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent", new PropertyChangedCallback(OnCircleBackBrushPropertyChanged))); + /// + /// Circle Over Text Bruch Forground Brush + /// + public static readonly DependencyProperty CircleTextBruchProperty = + DependencyProperty.Register(nameof(CircleTextBruch), typeof(string), typeof(AnimationButton), new PropertyMetadata("Transparent", new PropertyChangedCallback(OnCircleTextBruchPropertyChanged))); + /// + /// Circle Over Text + /// + public static readonly DependencyProperty CircleTextProperty = + DependencyProperty.Register(nameof(CircleText), typeof(string), typeof(AnimationButton), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnCircleTextPropertyChanged))); + /// + /// Circle Outer Option Flag + /// + public static readonly DependencyProperty CircleOuterProperty = + DependencyProperty.Register(nameof(CircleOuter), typeof(bool), typeof(AnimationButton), new PropertyMetadata(false, new PropertyChangedCallback(OnCircleOuterPropertyChanged))); + /// + /// Display Language Type + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(AnimationButton), new PropertyMetadata(SupportLanguageType.ko)); + + #endregion DependencyProperty + #region [ SendItem Properties ] + /// + /// Send Button + /// + public AnimationButton SendSource { get; set; } = null; + /// + /// Revice Button + /// + public UIElement ReciveTarget { get; set; } = null; + /// + /// Targer Grid + /// + public Grid TargetGrid { get; set; } = null; + #endregion SendItem Properties + + #region [ Propertis For DependencyProperty ] + + #region Base Propertis + + /// + /// Noraml Bakcground + /// + public string NormalBrush + { + get { return (string)GetValue(NormalBrushProperty); } + set { SetValue(NormalBrushProperty, value); } + } + /// + /// Image Brush Stretch Type + /// + public Stretch BrushStretch + { + get { return (Stretch)GetValue(BrushStretchProperty); } + set { SetValue(BrushStretchProperty, value); } + + } + /// + /// Mouse/Touch Down Bakcground + /// + public string DownBrush + { + get { return (string)GetValue(DownBrushProperty); } + set { SetValue(DownBrushProperty, value); } + } + /// + /// Button Disable Background + /// + public string DisableBrush + { + get { return (string)GetValue(DisableBrushProperty); } + set { SetValue(DisableBrushProperty, value); } + } + /// + /// Switch On Status Background + /// + public string SwitchOnBrush + { + get { return (string)GetValue(SwitchOnBrushProperty); } + set { SetValue(SwitchOnBrushProperty, value); } + } + /// + /// Switch Status + /// + public bool Switch + { + get { return (bool)GetValue(SwitchProperty); } + set { SetValue(SwitchProperty, value); } + } + /// + /// Breathing Status + /// + public bool IsBreathing + { + get { return (bool)GetValue(IsBreathingProperty); } + set { SetValue(IsBreathingProperty, value); } + } + /// + /// Auto Switching Flag + /// + public bool AutoToggle + { + get { return (bool)GetValue(AutoToggleProperty); } + set { SetValue(AutoToggleProperty, value); } + } + /// + /// ClickSend + /// + public bool ClickSend + { + get { return (bool)GetValue(ClickSendProperty); } + set { SetValue(ClickSendProperty, value); } + } + /// + /// ReciveElement + /// + public string ReciveElement + { + get { return (string)GetValue(ReciveElementProperty); } + set { SetValue(ReciveElementProperty, value); } + } + /// + /// BaseGrid + /// + public string BaseGrid + { + get { return (string)GetValue(BaseGridProperty); } + set { SetValue(BaseGridProperty, value); } + } + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// Circle Clicked Command + /// + public ICommand CircleCommand + { + get { return (ICommand)GetValue(CircleCommandProperty); } + set { SetValue(CircleCommandProperty, value); } + } + /// + /// Drop Command + /// + public ICommand DropCommand + { + get { return (ICommand)GetValue(DropCommandProperty); } + set { SetValue(DropCommandProperty, value); } + } + /// + /// Data Parameter + /// + public object DataParameter + { + get { return (object)GetValue(DataParameterProperty); } + set { SetValue(DataParameterProperty, value); } + } + /// + /// Click Animation Type + /// + public ButtonAnimationType ClickAnimationType + { + get { return (ButtonAnimationType)GetValue(ClickAnimationTypeProperty); } + set { SetValue(ClickAnimationTypeProperty, value); } + } + /// + /// Drop Animation Type + /// + public ButtonAnimationType DropAnimationType + { + get { return (ButtonAnimationType)GetValue(DropAnimationTypeProperty); } + set { SetValue(DropAnimationTypeProperty, value); } + } + /// + /// Drag Enable + /// + public bool DragEnable + { + get { return (bool)GetValue(DragEnableProperty); } + set { SetValue(DragEnableProperty, value); } + } + /// + /// Enabled + /// + public bool Enabled + { + get { return (bool)GetValue(EnabledProperty); } + set { SetValue(EnabledProperty, value); } + } + /// + /// Drag Cursor Image Path + /// + public string DragCursorImage + { + get { return (string)GetValue(DragCursorImageProperty); } + set { SetValue(DragCursorImageProperty, value); } + } + /// + /// Drag Cursor Hot Spot Type + /// + public HotSpotType DragCursorHotSpot + { + get { return (HotSpotType)GetValue(DragCursorHotSpotProperty); } + set { SetValue(DragCursorHotSpotProperty, value); } + } + + + #endregion Base Propertis + + #region ButtonText Properties + /// + /// Display Language Type + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Button Text + /// + public string Text + { + get { return (string)GetValue(TextProperty); } + set { SetValue(TextProperty, value); } + } + /// + /// Button Text Multi Language Text + /// + public List LanguageText + { + get { return (List)GetValue(LanguageTextProperty); } + set { SetValue(LanguageTextProperty, value); } + } + /// + /// Button Text Visibility + /// + public Visibility TextVisible + { + get { return (Visibility)GetValue(TextVisibleProperty); } + set { SetValue(TextVisibleProperty, value); } + } + /// + /// Button Text Foreground + /// + public string TextForeground + { + get { return (string)GetValue(TextForegroundProperty); } + set { SetValue(TextForegroundProperty, value); } + } + /// + /// Button Switch On Foreground + /// + public string SwitchOnForeground + { + get { return (string)GetValue(SwitchOnForegroundProperty); } + set { SetValue(SwitchOnForegroundProperty, value); } + } + /// + /// Button Disable Foreground + /// + public string DisableForeground + { + get { return (string)GetValue(DisableForegroundProperty); } + set { SetValue(DisableForegroundProperty, value); } + } + + /// + /// Button Text VerticalAlignment + /// + public VerticalAlignment TextVerticalAlignment + { + get { return (VerticalAlignment)GetValue(TextVerticalAlignmentProperty); } + set { SetValue(TextVerticalAlignmentProperty, value); } + } + /// + /// Button Text HorizontalAlignment + /// + public HorizontalAlignment TextHorizontalAlignment + { + get { return (HorizontalAlignment)GetValue(TextHorizontalAlignmentProperty); } + set { SetValue(TextHorizontalAlignmentProperty, value); } + } + /// + /// Button Text FontFamily + /// + public string TextFontFamily + { + get { return (string)GetValue(TextFontFamilyProperty); } + set { SetValue(TextFontFamilyProperty, value); } + } + /// + /// Button Text FontSize + /// + public double TextFontSize + { + get { return (double)GetValue(TextFontSizeProperty); } + set { SetValue(TextFontSizeProperty, value); } + } + /// + /// Switch On FontSize + /// + public double SwitchOnFontSize + { + get { return (double)GetValue(SwitchOnFontSizeProperty); } + set { SetValue(SwitchOnFontSizeProperty, value); } + } + /// + /// Disable FontSize + /// + public double DisableFontSize + { + get { return (double)GetValue(DisableFontSizeProperty); } + set { SetValue(DisableFontSizeProperty, value); } + } + /// + /// Button Text FontWeight + /// + public FontWeight TextFontWeight + { + get { return (FontWeight)GetValue(TextFontWeightProperty); } + set { SetValue(TextFontWeightProperty, value); } + } + /// + /// SwitchOn FontWeight + /// + public FontWeight SwitchOnFontWeight + { + get { return (FontWeight)GetValue(SwitchOnFontWeightProperty); } + set { SetValue(SwitchOnFontWeightProperty, value); } + } + /// + /// Disable Font Weight + /// + public FontWeight DisableWeight + { + get { return (FontWeight)GetValue(DisableWeightProperty); } + set { SetValue(DisableWeightProperty, value); } + } + /// + /// Button Text Wrapping + /// + public TextWrapping TextWrapping + { + get { return (TextWrapping)GetValue(TextWrappingProperty); } + set { SetValue(TextWrappingProperty, value); } + } + /// + /// Button Text Alignment + /// + public TextAlignment TextAlignment + { + get { return (TextAlignment)GetValue(TextAlignmentProperty); } + set { SetValue(TextAlignmentProperty, value); } + } + /// + /// Button Text Margin + /// + public Thickness TextMargin + { + get { return (Thickness)GetValue(TextMarginProperty); } + set { SetValue(TextMarginProperty, value); } + } + + #endregion + + #region Circle Options Properties + /// + /// Circle BAck Brush + /// + public string CircleBackBrush + { + get { return (string)GetValue(CircleBackBrushProperty); } + set { SetValue(CircleBackBrushProperty, value); } + + } + /// + /// Circle Over Text + /// + public string CircleText + { + get { return (string)GetValue(CircleTextProperty); } + set { SetValue(CircleTextProperty, value); } + } + /// + /// Circle Over Text Foregraund Brush + /// + public string CircleTextBruch + { + get { return (string)GetValue(CircleTextBruchProperty); } + set { SetValue(CircleTextBruchProperty, value); } + } + /// + /// Circle Size + /// + public double CircleSize + { + get { return (double)GetValue(CircleSizeProperty); } + set { SetValue(CircleSizeProperty, value); } + } + /// + /// Circle Outer Option Flag + /// + public bool CircleOuter + { + get { return (bool)GetValue(CircleOuterProperty); } + set { SetValue(CircleOuterProperty, value); } + + } + #endregion Circle Options Properties + + #endregion Propertis For DependencyProperty + + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AnimationButton)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #region [ RoutedEvent 'CircleClicked' ] + + /// + /// CircleClicked Event + /// + public static readonly RoutedEvent CircleClickedEvent = EventManager.RegisterRoutedEvent(nameof(CircleClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AnimationButton)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler CircleClicked + { + add { AddHandler(CircleClickedEvent, value); } + remove { RemoveHandler(CircleClickedEvent, value); } + } + #endregion RoutedEvent 'CircleClicked' + + #region [ RoutedEvent 'ItemDrop' ] + + /// + /// CircleClicked Event + /// + public static readonly RoutedEvent ItemDropEvent = EventManager.RegisterRoutedEvent(nameof(ItemDrop), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AnimationButton)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler ItemDrop + { + add { AddHandler(ItemDropEvent, value); } + remove { RemoveHandler(ItemDropEvent, value); } + } + #endregion RoutedEvent 'ItemDrop' + + + #region [ RoutedEvent 'SendStart' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent SendStartEvent = EventManager.RegisterRoutedEvent(nameof(SendStart), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AnimationButton)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler SendStart + { + add { AddHandler(SendStartEvent, value); } + remove { RemoveHandler(SendStartEvent, value); } + } + #endregion RoutedEvent 'SendStart' + + #region [ RoutedEvent 'SendEnd' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent SendEndEvent = EventManager.RegisterRoutedEvent(nameof(SendEnd), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AnimationButton)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler SendEnd + { + add { AddHandler(SendEndEvent, value); } + remove { RemoveHandler(SendEndEvent, value); } + } + #endregion RoutedEvent 'SendEnd' + + #endregion Public Members + + #region [ Ctor ] + /// + /// Ctor + /// + public AnimationButton() + { + try + { + InitializeComponent(); + this.ButtonText.Visibility = Visibility.Collapsed; + this.CountCircle.Visibility = Visibility.Collapsed; + this.CountText.Visibility = Visibility.Collapsed; + this.AllowDrop = true; + this.Drop += AnimationButton_Drop; + this.MouseLeave += AnimationButton_MouseLeave; + this.MouseDown += AnimationButton_MouseDown; + this.MouseUp += AnimationButton_MouseUp; + this.CountText.MouseLeave += Circle_MouseLeave; + this.CountText.MouseDown += Circle_MouseDown; + this.CountText.MouseUp += Circle_MouseUp; + this.GiveFeedback += AnimationButton_GiveFeedback; + } + catch(Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + ~AnimationButton() + { + this.Drop -= AnimationButton_Drop; + this.MouseLeave -= AnimationButton_MouseLeave; + this.MouseDown -= AnimationButton_MouseDown; + this.MouseUp -= AnimationButton_MouseUp; + this.CountText.MouseLeave -= Circle_MouseLeave; + this.CountText.MouseDown -= Circle_MouseDown; + this.CountText.MouseUp -= Circle_MouseUp; + this.GiveFeedback -= AnimationButton_GiveFeedback; + } + #endregion Ctor + + #region [ Methods ] + + protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo) + { + try + { + var targetText = this.ButtonText; + if (this.Enabled) + { + if (this.Switch) + { + ResourceManager.SetBrush(this.ButtonGrid, "Background", this.SwitchOnBrush, this.BrushStretch, sizeInfo.NewSize); + ResourceManager.SetBrush(targetText, "Foreground", this.SwitchOnForeground); + targetText.FontSize = this.SwitchOnFontSize > 0 ? this.SwitchOnFontSize : this.TextFontSize > 0 ? this.TextFontSize : 12; + targetText.FontWeight = this.SwitchOnFontWeight; + + } + else + { + ResourceManager.SetBrush(this.ButtonGrid, "Background", this.NormalBrush, this.BrushStretch, sizeInfo.NewSize); + ResourceManager.SetBrush(targetText, "Foreground", this.TextForeground); + targetText.FontSize = this.TextFontSize > 0 ? this.TextFontSize : 12; + targetText.FontWeight = this.TextFontWeight; + } + } + else + { + ResourceManager.SetBrush(this.ButtonGrid, "Background", this.DisableBrush, this.BrushStretch, sizeInfo.NewSize); + ResourceManager.SetBrush(targetText, "Foreground", this.DisableForeground); + targetText.FontSize = this.DisableFontSize > 0 ? this.DisableFontSize : this.TextFontSize > 0 ? this.TextFontSize : 12; + targetText.FontWeight = this.DisableWeight; + } + base.OnRenderSizeChanged(sizeInfo); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OnRenderSizeChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void RaiseSendStartEvent() + { + if (ClickSend) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(AnimationButton.SendStartEvent); + RaiseEvent(newEventArgs); + } + } + private void RaiseSendEndEvent() + { + if (ClickSend) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(AnimationButton.SendEndEvent); + RaiseEvent(newEventArgs); + } + } + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent() + { + //Auto Toggle Process + if (AutoToggle) Switch = !Switch; + //Command Excute + if (Command != null && Command.CanExecute(DataParameter)) + { + Command.Execute(DataParameter); + } + // Click SendObject + if (ClickSend) + { + SendItem(this); + } + //Raise MouseClicked Event + RoutedEventArgs newEventArgs = new RoutedEventArgs(AnimationButton.MouseClickedEvent); + RaiseEvent(newEventArgs); + } + + /// + /// Raise CircleClicked Event + /// + private void RaiseCircleClickedEvent() + { + if (CircleCommand != null && CircleCommand.CanExecute(DataParameter)) + { + CircleCommand.Execute(DataParameter); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(AnimationButton.CircleClickedEvent); + RaiseEvent(newEventArgs); + } + /// + /// Raise ItemDrop Event + /// + /// + private void RaiseItemDropEvent(object sender) + { + + if (DropCommand != null && DropCommand.CanExecute(sender)) + { + DropCommand.Execute(sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(AnimationButton.ItemDropEvent, sender); + RaiseEvent(newEventArgs); + } + + /// + /// Get Target By ButtonAnimationType + /// + /// + /// + private FrameworkElement GetAnimationTarget(ButtonAnimationType _buttonAnimationType) + { + FrameworkElement AnimationTarget = null; + switch (_buttonAnimationType) + { + case ButtonAnimationType.TextBounceUp: + case ButtonAnimationType.TextBounceDown: + case ButtonAnimationType.TextSizeDown: + case ButtonAnimationType.TextSizeUp: + case ButtonAnimationType.TextTwist: + AnimationTarget = this.ButtonText; + break; + case ButtonAnimationType.BounceUp: + case ButtonAnimationType.BounceDown: + case ButtonAnimationType.SizeDown: + case ButtonAnimationType.SizeUp: + case ButtonAnimationType.Twist: + case ButtonAnimationType.OpacityDown: + case ButtonAnimationType.OpacityUp: + AnimationTarget = this.ButtonGrid; + break; + } + return AnimationTarget; + } + /// + /// Click Animation Run + /// + private void ClickAnimationRun() + { + + var target = GetAnimationTarget(ClickAnimationType); + if (target != null) Animations.GetClickAnimation(target, ClickAnimationType).Begin(); + } + /// + /// Drop Animation Run + /// + private void DropAnimationRun() + { + var target = GetAnimationTarget(DropAnimationType); + if (target != null) Animations.GetClickAnimation(target, DropAnimationType).Begin(); + } + /// + /// Item Image Send + /// + /// + private void SendItem(AnimationButton source) + { + try + { + RaiseSendStartEvent(); + SendSource = source; + var _targetGrid = source.FindParent(source.BaseGrid); + if (_targetGrid is Grid) + { + TargetGrid = _targetGrid as Grid; + var _reviceTarget = TargetGrid.FindName(source.ReciveElement); + switch (_reviceTarget.GetType().Name) + { + case "AnimationButton": + ReciveTarget = _reviceTarget as AnimationButton; + break; + case "ButtonList": + var listTarget = _reviceTarget as ButtonList; + if (listTarget.DefaultIndex > -1) + { + ReciveTarget = listTarget.DefaultItem; + } + else + { + ReciveTarget = null; + } + break; + } + } + if (TargetGrid != null && SendSource != null && ReciveTarget != null) + { + SendSource.IsEnabled = false; + ReciveTarget.IsEnabled = false; + var targetCanvas = new Canvas() { Name = "SendItemCanvas" }; + var sendImage = new Image + { + Width = SendSource.RenderSize.Width, + Height = SendSource.RenderSize.Height, + Name = "SendImage" + }; + var sourcePosition = SendSource.TranslatePoint(new Point(0, 0), TargetGrid); + var targetPosition = ReciveTarget.TranslatePoint(new Point(0, 0), TargetGrid); + sendImage.Source = ResourceManager.GetBitmapImage(SendSource.NormalBrush); + targetCanvas.Children.Add(sendImage); + targetCanvas.Background = new SolidColorBrush(Colors.Transparent); + TargetGrid.Children.Add(targetCanvas); + TargetGrid.ReregisterName("SendImage", sendImage); + TargetGrid.ReregisterName("SendItemCanvas", targetCanvas); + Canvas.SetLeft(sendImage, sourcePosition.X); + Canvas.SetTop(sendImage, sourcePosition.Y); + Canvas.SetZIndex(sendImage, int.MaxValue); + var moveX = targetPosition.X + (ReciveTarget.RenderSize.Width / 2);//- sourcePosition.X + (SendSource.RenderSize.Width / 2); + var moveY = targetPosition.Y - (ReciveTarget.RenderSize.Height / 2);// - sourcePosition.Y - (SendSource.RenderSize.Height / 2); + var SendAnimations = Animations.GetSendAnimation(sendImage, ButtonSendAnimationType.Normal, targetPosition.X - sourcePosition.X, targetPosition.Y - sourcePosition.Y); + if (SendAnimations != null) + { + SendAnimations.Completed += SendAnimations_Completed; + SendAnimations.Begin(); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SendItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private static void SetButton(AnimationButton _thisButton, M_AnimationButton _m_ButtonData) + { + try + { + _thisButton.Width = _m_ButtonData.Width; + _thisButton.Height = _m_ButtonData.Height; + _thisButton.Margin = _m_ButtonData.Margin; + _thisButton.NormalBrush = _m_ButtonData.NormalBrush; + _thisButton.DownBrush = _m_ButtonData.DownBrush; + _thisButton.DisableBrush = _m_ButtonData.DisableBrush; + _thisButton.SwitchOnBrush = _m_ButtonData.SwitchOnBrush; + _thisButton.DragCursorImage = _m_ButtonData.DragCursorImage; + _thisButton.DragCursorHotSpot = _m_ButtonData.DragCursorHotSpot; + _thisButton.BrushStretch = _m_ButtonData.BrushStretch; + _thisButton.Enabled = _m_ButtonData.Enabled; + _thisButton.Switch = _m_ButtonData.Switch; + _thisButton.IsBreathing = _m_ButtonData.IsBreathing; + _thisButton.AutoToggle = _m_ButtonData.AutoToggle; + _thisButton.ClickSend = _m_ButtonData.ClickSend; + _thisButton.BaseGrid = _m_ButtonData.BaseGrid; + _thisButton.ReciveElement = _m_ButtonData.ReciveElement; + _thisButton.ClickAnimationType = _m_ButtonData.ClickAnimationType; + _thisButton.DropAnimationType = _m_ButtonData.DropAnimationType; + _thisButton.Text = _m_ButtonData.Text; + _thisButton.LanguageText = _m_ButtonData.LanguageText; + _thisButton.TextVisible = _m_ButtonData.TextVisible; + _thisButton.TextForeground = _m_ButtonData.TextForeground; + _thisButton.SwitchOnForeground = _m_ButtonData.SwitchOnForeground; + _thisButton.DisableForeground = _m_ButtonData.DisableForeground; + _thisButton.TextVerticalAlignment = _m_ButtonData.TextVerticalAlignment; + _thisButton.TextHorizontalAlignment = _m_ButtonData.TextHorizontalAlignment; + _thisButton.TextFontFamily = _m_ButtonData.TextFontFamily; + _thisButton.TextFontSize = _m_ButtonData.TextFontSize; + _thisButton.SwitchOnFontSize = _m_ButtonData.SwitchOnFontSize; + _thisButton.DisableFontSize = _m_ButtonData.DisableFontSize; + _thisButton.TextFontWeight = _m_ButtonData.TextFontWeight; + _thisButton.SwitchOnFontWeight = _m_ButtonData.SwitchOnFontWeight; + _thisButton.DisableWeight = _m_ButtonData.DisableWeight; + _thisButton.TextWrapping = _m_ButtonData.TextWrapping; + _thisButton.TextAlignment = _m_ButtonData.TextAlignment; + _thisButton.TextMargin = _m_ButtonData.TextMargin; + _thisButton.DragEnable = _m_ButtonData.DragEnable; + _thisButton.CircleSize = _m_ButtonData.CircleSize; + _thisButton.CircleBackBrush = _m_ButtonData.CircleBackBrush; + _thisButton.CircleTextBruch = _m_ButtonData.CircleTextBruch; + _thisButton.CircleText = _m_ButtonData.CircleText; + _thisButton.CircleOuter = _m_ButtonData.CircleOuter; + _thisButton.DisplayLanguage = _m_ButtonData.DisplayLanguage; + SetNormalBrush(_thisButton); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(_thisButton, "SetButton()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private static void SetNormalBrush(AnimationButton _thisButton) + { + try + { + var targetText = _thisButton.ButtonText; + if (_thisButton.Enabled) + { + if (_thisButton.Switch) + { + ResourceManager.SetBrush(_thisButton.ButtonGrid, "Background", _thisButton.SwitchOnBrush, _thisButton.BrushStretch, new Size(_thisButton.Width, _thisButton.Height)); + ResourceManager.SetBrush(targetText, "Foreground", _thisButton.SwitchOnForeground); + if (_thisButton.TextVisible.Equals(Visibility.Visible)) + { + targetText.FontSize = _thisButton.SwitchOnFontSize > 0 ? _thisButton.SwitchOnFontSize : _thisButton.TextFontSize > 0 ? _thisButton.TextFontSize : 12; + targetText.FontWeight = _thisButton.SwitchOnFontWeight; + } + } + else + { + ResourceManager.SetBrush(_thisButton.ButtonGrid, "Background", _thisButton.NormalBrush, _thisButton.BrushStretch, new Size(_thisButton.Width, _thisButton.Height)); + ResourceManager.SetBrush(targetText, "Foreground", _thisButton.TextForeground); + if (_thisButton.TextVisible.Equals(Visibility.Visible)) + { + targetText.FontSize = _thisButton.TextFontSize > 0 ? _thisButton.TextFontSize : 12; + targetText.FontWeight = _thisButton.TextFontWeight; + } + } + } + else + { + ResourceManager.SetBrush(_thisButton.ButtonGrid, "Background", _thisButton.DisableBrush, _thisButton.BrushStretch, new Size(_thisButton.Width, _thisButton.Height)); + ResourceManager.SetBrush(targetText, "Foreground", _thisButton.DisableForeground); + if (_thisButton.TextVisible.Equals(Visibility.Visible)) + { + targetText.FontSize = _thisButton.DisableFontSize > 0 ? _thisButton.DisableFontSize : _thisButton.TextFontSize > 0 ? _thisButton.TextFontSize : 12; + targetText.FontWeight = _thisButton.DisableWeight; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(_thisButton, "SetButton()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion Methods + + #region [ Event Handlers ] + + #region [ SendItem Animation Completed ] + private void SendAnimations_Completed(object sender, EventArgs e) + { + + try + { + if (TargetGrid.FindName("SendItemCanvas") is Canvas sendItemCanvas) + { + sendItemCanvas.Children.Clear(); + TargetGrid.Children.Remove(sendItemCanvas); + sendItemCanvas = null; + TargetGrid.UnregisterName("SendImage"); + TargetGrid.UnregisterName("SendItemCanvas"); + var eventArgs = new M_ItemDropEventArgs + { + SourceObject = SendSource, + TargetObject = ReciveTarget + }; + if (ReciveTarget is AnimationButton animationButton) + { + animationButton.DropAnimationRun(); + animationButton.RaiseItemDropEvent(eventArgs); + + } + SendSource.IsEnabled = true; + ReciveTarget.IsEnabled = true; + } + RaiseSendEndEvent(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetButton()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion SendItem Animation Completed + + #region [ DependencyProperty OnChanged Event Handler ] + + private static void IsBreathingPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as AnimationButton; + if ((bool)e.NewValue) + { + if (target.BreathigStoryboard is Storyboard storyboard) + { + storyboard.Resume(); + } + else + { + target.BreathigStoryboard = Animations.GetClickAnimation(target.ButtonGrid, ButtonAnimationType.OpacityDown, 0.5); + target.BreathigStoryboard.RepeatBehavior = RepeatBehavior.Forever; + target.BreathigStoryboard.Begin(); + } + } + else + { + if (target.BreathigStoryboard is Storyboard storyboard) + { + storyboard.Pause(); + } + } + } + + + private static void OnDataParameterPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as AnimationButton; + var getType = e.NewValue.GetType(); + if (e.NewValue is M_ItemData m_ItemData) + { + if (m_ItemData.DataParameter is M_AnimationButton m_ButtonData) + { + SetButton(target, m_ButtonData); + } + } + else if (e.NewValue is M_AnimationButton m_ButtonData) + { + SetButton(target, m_ButtonData); + } + } + } + private static void OnNormalBrushPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue !=null) + { + var target = d as AnimationButton; + ResourceManager.SetBrush(target.ButtonGrid, "Background", target.SwitchOnBrush, target.BrushStretch, new Size(target.Width, target.Height)); + SetNormalBrush(target); + } + } + private static void OnBrushStretchPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + private static void OnSwitchPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + private static void OnEnabledPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is bool enabled) + { + var target = d as AnimationButton; + SetNormalBrush(target); + target.IsEnabled = enabled; + } + } + private static void OnTextVisiblePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.Visibility = (Visibility)e.NewValue; + } + private static void OnTextForegroundPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + if (string.IsNullOrEmpty(target.SwitchOnForeground) + || target.SwitchOnForeground.Equals("Transparent")) target.SwitchOnForeground = (string)e.NewValue; + if (string.IsNullOrEmpty(target.DisableForeground) + || target.DisableForeground.Equals("Transparent")) target.DisableForeground = (string)e.NewValue; + SetNormalBrush(target); + } + + } + private static void OnSwitchOnForegroundPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + private static void OnDisableForegroundPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + + private static void OnTextVerticalAlignmentPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.VerticalAlignment = (VerticalAlignment)e.NewValue; + } + private static void OnTextHorizontalAlignmentPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.HorizontalAlignment = (HorizontalAlignment)e.NewValue; + } + private static void OnTextFontFamilyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + try + { + targetText.FontFamily = new FontFamily((string)e.NewValue); + } + catch + { + targetText.FontFamily = Fonts.SystemFontFamilies.First(); + } + } + private static void OnTextFontSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + try + { + targetText.FontSize = (double)e.NewValue; + } + catch + { + targetText.FontSize = 10; + } + } + private static void OnSwitchOnFontSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + private static void OnDisableFontSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + + private static void OnTextFontWeightPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.FontWeight = (FontWeight)e.NewValue; + } + private static void OnSwitchOnFontWeightPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + private static void OnDisableWeightPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as AnimationButton; + SetNormalBrush(target); + } + } + + private static void OnTextWrappingPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.TextWrapping = (TextWrapping)e.NewValue; + } + private static void OnTextAlignmentPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.TextAlignment = (TextAlignment)e.NewValue; + } + private static void OnTextMarginPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var targetText = (d as AnimationButton).ButtonText; + targetText.Margin = (Thickness)e.NewValue; + } + private static void OnCircleSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if ((double)e.NewValue > 12) + { + var target = d as AnimationButton; + target.CountCircle.Width = (double)e.NewValue; + target.CountCircle.Height = (double)e.NewValue; + target.CountCircle.StrokeThickness = (double)e.NewValue * 0.07; + target.CountText.Width = (double)e.NewValue; + target.CountText.Height = (double)e.NewValue; + target.CountText.FontSize = (double)e.NewValue * 0.7; + } + } + private static void OnCircleTextBruchPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as AnimationButton; + ResourceManager.SetBrush(target.CountText, "Foreground", (string)e.NewValue); + ResourceManager.SetBrush(target.CountCircle, "Stroke", (string)e.NewValue); + } + private static void OnCircleTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as AnimationButton; + if (e.NewValue.Equals(string.Empty)) + { + target.CountText.Visibility = Visibility.Collapsed; + } + else + { + target.CountText.Visibility = Visibility.Visible; + target.CountText.Text = (string)e.NewValue; + } + + } + private static void OnCircleBackBrushPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as AnimationButton; + if (e.NewValue.Equals("Transparent")) + { + target.CountCircle.Visibility = Visibility.Collapsed; + } + else + { + target.CountCircle.Visibility = Visibility.Visible; + ResourceManager.SetBrush(target.CountCircle, "Fill", (string)e.NewValue); + } + } + private static void OnCircleOuterPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if ((bool)e.NewValue) + { + var target = d as AnimationButton; + target.CountCircle.RenderTransform = new TranslateTransform(); + var _circleTranslateTransform = target.CountCircle.RenderTransform as TranslateTransform; + _circleTranslateTransform.X = target.CountCircle.Width / 2; + _circleTranslateTransform.Y = target.CountCircle.Height / 2 * -1; + target.CountText.RenderTransform = new TranslateTransform(); + var _textTranslateTransform = target.CountText.RenderTransform as TranslateTransform; + _textTranslateTransform.X = target.CountText.Width / 2; + _textTranslateTransform.Y = target.CountText.Height / 2 * -1; + + } + } + private static void OnBadgeImagesProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is List badgeImages) + { + var target = d as AnimationButton; + target.BadgeStack.Children.Clear(); + foreach (var aBadge in badgeImages) + { + var sourceImage = ResourceManager.GetBitmapImage(aBadge); + if (sourceImage is BitmapImage) + { + var aBadgeImage = new Image() + { + Width = sourceImage.Width, + Height = sourceImage.Height, + Source = sourceImage + }; + target.BadgeStack.Children.Add(aBadgeImage); + } + } + + } + } + #endregion DependencyProperty OnChanged Event Handler + + #region Drag & Drap Event Handler + private void AnimationButton_GiveFeedback(object sender, GiveFeedbackEventArgs e) + { + var dropSource = e.Source as AnimationButton; + if (e.Effects.Equals(DragDropEffects.Link) && !string.IsNullOrEmpty(dropSource.DragCursorImage) && DragEnable) + { + if (DragCursor == null) DragCursor = ResourceManager.GetCursorByImage(dropSource.DragCursorImage, dropSource.DragCursorHotSpot, dropSource.Width); + if (DragCursor != null) + { + e.UseDefaultCursors = false; + Mouse.SetCursor(DragCursor); + } + else + { + e.UseDefaultCursors = true; + } + } + else + { + e.UseDefaultCursors = true; + } + e.Handled = DragEnable; + } + private void AnimationButton_Drop(object sender, DragEventArgs e) + { + var source = (sender as AnimationButton); + if (e.Data.GetData(sender.GetType()) is AnimationButton dropSource && !source.Equals(dropSource) && e.AllowedEffects.Equals(DragDropEffects.Link)) + { + var eventArgs = new M_ItemDropEventArgs + { + SourceObject = dropSource, + TargetObject = source + }; + DropAnimationRun(); + RaiseItemDropEvent(eventArgs); + } + MoseDown = false; + } + #endregion Drag & Drap Event Handler + + #region Mouse Events Handler + private void AnimationButton_MouseLeave(object sender, MouseEventArgs e) + { + + if ( MoseDown && DragEnable) + { + DragDrop.DoDragDrop(sender as DependencyObject, sender, DragDropEffects.Link); + } + if (!Switch ) + { + SetNormalBrush(this); + MoseDown = false; + } + } + + private void AnimationButton_MouseDown(object sender, MouseButtonEventArgs e) + { + if (!MoseDown && !(CountCircle.IsMouseOver || CountText.IsMouseOver)) + { + if (!string.IsNullOrEmpty(DownBrush) + && !DownBrush.Equals("Transparent")) ResourceManager.SetBrush(ButtonGrid, "Background", DownBrush, BrushStretch, RenderSize); + if (this.IsEnabled) + { + ClickAnimationRun(); + MoseDown = true; + } + MoseDownPosition = e.GetPosition(this); + } + } + + private void AnimationButton_MouseUp(object sender, MouseButtonEventArgs e) + { + if (MoseDown && !(CountCircle.IsMouseOver || CountText.IsMouseOver)) + { + if (Math.Abs(e.GetPosition(this).X - MoseDownPosition.X) > 50) MoseDown = false; + if (Math.Abs(e.GetPosition(this).Y - MoseDownPosition.Y) > 50) MoseDown = false; + if (MoseDown ) + { + RaiseMouseClickedEvent(); + } + SetNormalBrush(this); + MoseDown = false; + } + } + #endregion Mouse Events + + #region CircleMouse Events Handler + private void Circle_MouseLeave(object sender, MouseEventArgs e) + { + CircleMoseDown = false; + } + + private void Circle_MouseDown(object sender, MouseButtonEventArgs e) + { + if (!CircleMoseDown ) + { + if (this.IsEnabled) + { + Animations.GetClickAnimation(this.CountCircle, ButtonAnimationType.SizeDown).Begin(); + CircleMoseDown = true; + } + CircleMoseDownPosition = e.GetPosition(this); + } + } + + private void Circle_MouseUp(object sender, MouseButtonEventArgs e) + { + if (CircleMoseDown) + { + if (Math.Abs(e.GetPosition(this).X - CircleMoseDownPosition.X) > this.CountText.Width) MoseDown = false; + if (Math.Abs(e.GetPosition(this).Y - CircleMoseDownPosition.Y) > this.CountText.Height) MoseDown = false; + RaiseCircleClickedEvent(); + CircleMoseDown = false; + } + } + #endregion CircleMouse Events Handler + + #endregion Event Handlers + + + } + + +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml new file mode 100644 index 0000000..da3c754 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml.cs new file mode 100644 index 0000000..ce6768a --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/ButtonList.xaml.cs @@ -0,0 +1,1142 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Common +{ + /// + /// ButtonList.xaml에 대한 상호 작용 논리 + /// + public partial class ButtonList : UserControl + { + #region [ Members ] + /// + /// ListItems + /// + public static readonly DependencyProperty ListItemsProperty = + DependencyProperty.Register(nameof(ListItems), typeof(ObservableCollection), typeof(ButtonList), new PropertyMetadata(null, new PropertyChangedCallback(OnListItemsPropertyChanged))); + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(ButtonList), new UIPropertyMetadata(null)); + /// + /// DropCommand + /// + public static readonly DependencyProperty CircleCommandProperty = + DependencyProperty.Register(nameof(CircleCommand), typeof(ICommand), typeof(ButtonList), new UIPropertyMetadata(null)); + /// + /// DropCommand + /// + public static readonly DependencyProperty DropCommandProperty = + DependencyProperty.Register(nameof(DropCommand), typeof(ICommand), typeof(ButtonList), new UIPropertyMetadata(null)); + /// + /// Columns Count + /// + public static readonly DependencyProperty ColumnCountProperty = + DependencyProperty.Register(nameof(ColumnCount), typeof(int), typeof(ButtonList), new PropertyMetadata(3)); + /// + /// Page Stack Orientation + /// + public static readonly DependencyProperty StackOrientationProperty = + DependencyProperty.Register(nameof(StackOrientation), typeof(Orientation), typeof(ButtonList), new PropertyMetadata(Orientation.Vertical, new PropertyChangedCallback(OnStackOrientationPropertyChanged))); + /// + /// Vertical Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(ButtonList), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + /// + /// Horizontal Scroll Offset + /// + public static readonly DependencyProperty HorizontalOffsetProperty = + DependencyProperty.Register(nameof(HorizontalOffset), typeof(double), typeof(ButtonList), new PropertyMetadata(0d, new PropertyChangedCallback(OnHorizontalOffsetPropertyChanged))); + /// + /// Rows Count + /// + public static readonly DependencyProperty RowCountProperty = + DependencyProperty.Register(nameof(RowCount), typeof(int), typeof(ButtonList), new PropertyMetadata(1)); + /// + /// ItemWidth + /// + public static readonly DependencyProperty ItemWidthProperty = + DependencyProperty.Register(nameof(ItemWidth), typeof(double), typeof(ButtonList), new PropertyMetadata(double.NaN)); + /// + /// ItemHeight + /// + public static readonly DependencyProperty ItemHeightProperty = + DependencyProperty.Register(nameof(ItemHeight), typeof(double), typeof(ButtonList), new PropertyMetadata(double.NaN)); + /// + /// Default PageNo + /// + public static readonly DependencyProperty DefaultPageNoProperty = + DependencyProperty.Register(nameof(DefaultPageNo), typeof(int), typeof(ButtonList), new PropertyMetadata(0, new PropertyChangedCallback(OnDefaultPageNoPropertyChanged))); + /// + /// TextPosition + /// + public static readonly DependencyProperty TextPositionProperty = + DependencyProperty.Register(nameof(TextPosition), typeof(TextPosition), typeof(ButtonList), new PropertyMetadata(TextPosition.InnerButton)); + /// + /// ClickSend + /// + public static readonly DependencyProperty ClickSendProperty = + DependencyProperty.Register(nameof(ClickSend), typeof(bool), typeof(ButtonList), new PropertyMetadata(false, new PropertyChangedCallback(OnClickSendPropertyChanged))); + + + /// + /// BaseGrid + /// + public static readonly DependencyProperty BaseGridProperty = + DependencyProperty.Register(nameof(BaseGrid), typeof(string), typeof(ButtonList), new PropertyMetadata(string.Empty)); + /// + /// ReciveElement + /// + public static readonly DependencyProperty ReciveElementProperty = + DependencyProperty.Register(nameof(ReciveElement), typeof(string), typeof(ButtonList), new PropertyMetadata(string.Empty)); + /// + /// DefaultItem + /// + public static readonly DependencyProperty DefaultItemProperty = + DependencyProperty.Register(nameof(DefaultItem), typeof(AnimationButton), typeof(ButtonList), new PropertyMetadata(null)); + /// + /// DefaultIndex + /// + public static readonly DependencyProperty DefaultIndexProperty = + DependencyProperty.Register(nameof(DefaultIndex), typeof(int), typeof(ButtonList), new PropertyMetadata(0, new PropertyChangedCallback(OnDefaultIndexPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(ButtonList), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Drag Enable Flag + /// + public static readonly DependencyProperty DragEnablePropery = + DependencyProperty.Register(nameof(DragEnable), typeof(bool), typeof(ButtonList), new PropertyMetadata(false, new PropertyChangedCallback(OnDragEnableProperyChanged))); + /// + /// AutoToggle Flag + /// + public static readonly DependencyProperty AutoTogglePropery = + DependencyProperty.Register(nameof(AutoToggle), typeof(bool), typeof(ButtonList), new PropertyMetadata(false, new PropertyChangedCallback(OnAutoToggleProperyChanged))); + /// + /// Selected Item Switch On Flag + /// + public static readonly DependencyProperty SelectOnPropery = + DependencyProperty.Register(nameof(SelectOn), typeof(bool), typeof(ButtonList), new PropertyMetadata(false, new PropertyChangedCallback(OnSelectOnProperyChanged))); + + + private int TargetPageNo = 0; + private double mouseDownYposition = -1; + private double mouseDownXposition = -1; + private bool MoseDown = false; + /// + /// Drag Enable Flag + /// + public bool DragEnable + { + get { return (bool)GetValue(DragEnablePropery); } + set { SetValue(DragEnablePropery, value); } + } + /// + /// AutoToggle Flag + /// + public bool AutoToggle + { + get { return (bool)GetValue(AutoTogglePropery); } + set { SetValue(AutoTogglePropery, value); } + } + /// + /// Selected Item Switch On Flag + /// + public bool SelectOn + { + get { return (bool)GetValue(SelectOnPropery); } + set { SetValue(SelectOnPropery, value); } + } + + /// + /// ListItems + /// + public ObservableCollection ListItems + { + get { return (ObservableCollection)GetValue(ListItemsProperty); } + set { SetValue(ListItemsProperty, value); } + } + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// Circle Clicked Command + /// + public ICommand CircleCommand + { + get { return (ICommand)GetValue(CircleCommandProperty); } + set { SetValue(CircleCommandProperty, value); } + } + /// + /// DropCommand + /// + public ICommand DropCommand + { + get { return (ICommand)GetValue(DropCommandProperty); } + set { SetValue(DropCommandProperty, value); } + } + /// + /// StackOrientation + /// + public Orientation StackOrientation + { + get { return (Orientation)GetValue(StackOrientationProperty); } + set { SetValue(StackOrientationProperty, value); } + } + /// + /// ColumnCount + /// + public int ColumnCount + { + get { return (int)GetValue(ColumnCountProperty); } + set { SetValue(ColumnCountProperty, value); } + } + /// + /// RowCount + /// + public int RowCount + { + get { return (int)GetValue(RowCountProperty); } + set { SetValue(RowCountProperty, value); } + } + /// + /// ItemWidth + /// + public double ItemWidth + { + get { return (double)GetValue(ItemWidthProperty); } + set { SetValue(ItemWidthProperty, value); } + } + /// + /// ItemHeight + /// + public double ItemHeight + { + get { return (double)GetValue(ItemHeightProperty); } + set { SetValue(ItemHeightProperty, value); } + } + + /// + /// DefaultPageNo + /// + public int DefaultPageNo + { + get { return (int)GetValue(DefaultPageNoProperty); } + set { SetValue(DefaultPageNoProperty, value); } + } + /// + /// TextPosition + /// + public TextPosition TextPosition + { + get { return (TextPosition)GetValue(TextPositionProperty); } + set { SetValue(TextPositionProperty, value); } + } + /// + /// DefaultItem + /// + public AnimationButton DefaultItem + { + get { return (AnimationButton)GetValue(DefaultItemProperty); } + set { SetValue(DefaultItemProperty, value); } + } + /// + /// DefaultIndex + /// + public int DefaultIndex + { + get { return (int)GetValue(DefaultIndexProperty); } + set { SetValue(DefaultIndexProperty, value); } + } + /// + /// ClickSend + /// + public bool ClickSend + { + get { return (bool)GetValue(ClickSendProperty); } + set { SetValue(ClickSendProperty, value); } + } + /// + /// ReciveElement + /// + public string ReciveElement + { + get { return (string)GetValue(ReciveElementProperty); } + set { SetValue(ReciveElementProperty, value); } + } + /// + /// BaseGrid + /// + public string BaseGrid + { + get { return (string)GetValue(BaseGridProperty); } + set { SetValue(BaseGridProperty, value); } + } + /// + /// VerticalOffset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + /// + /// HorizontalOffset + /// + public double HorizontalOffset + { + get { return (double)GetValue(HorizontalOffsetProperty); } + set { SetValue(HorizontalOffsetProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(ButtonList)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #region [ RoutedEvent 'CircleClicked' ] + + /// + /// CircleClicked Event + /// + public static readonly RoutedEvent CircleClickedEvent = EventManager.RegisterRoutedEvent(nameof(CircleClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(ButtonList)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler CircleClicked + { + add { AddHandler(CircleClickedEvent, value); } + remove { RemoveHandler(CircleClickedEvent, value); } + } + #endregion RoutedEvent 'CircleClicked' + + #region [ RoutedEvent 'ItemDrop' ] + + /// + /// CircleClicked Event + /// + public static readonly RoutedEvent ItemDropEvent = EventManager.RegisterRoutedEvent(nameof(ItemDrop), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(ButtonList)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler ItemDrop + { + add { AddHandler(ItemDropEvent, value); } + remove { RemoveHandler(ItemDropEvent, value); } + } + #endregion RoutedEvent 'ItemDrop' + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public ButtonList() + { + InitializeComponent(); + this.Unloaded += ButtonList_Unloaded; + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Default Item Set By Index + /// + /// + public void SetDefaultItem(int _itemIndex) + { + if (this.FindName(string.Format("ButtonListItem{0}", _itemIndex)) is AnimationButton findItem) + { + DefaultItem = findItem; + findItem.Switch = SelectOn; + } + } + /// + /// Reset Default Item + /// + /// + public void ResetDefaultItem(int _itemIndex) + { + if (this.FindName(string.Format("ButtonListItem{0}", _itemIndex)) is AnimationButton findItem) + { + findItem.Switch = false; + } + } + + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + //Command Excute + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(ButtonList.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + /// + /// Raise CircleClicked Event + /// + private void RaiseCircleClickedEvent(object _sender) + { + if (CircleCommand != null && CircleCommand.CanExecute(_sender)) + { + CircleCommand.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(ButtonList.CircleClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + private void RaiseItemDropEvent(object sender) + { + + if (DropCommand != null && DropCommand.CanExecute(sender)) + { + DropCommand.Execute(sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(ButtonList.ItemDropEvent, sender); + RaiseEvent(newEventArgs); + } + private static void ItemsButtonCreate(ButtonList _target, object _listItems) + { + try + { + if (_listItems is ObservableCollection lstItems && lstItems.Count > 0) + { + int itemCnt = 0; + int PageCount = 0; + int RowsCount = 0; + Grid PageGrid = null; + StackPanel PageStak = null; + Grid RowGrid = null; + StackPanel RowStack = null; + foreach (var aItem in lstItems) + { + if (itemCnt % (_target.ColumnCount * _target.RowCount) == 0) + { + PageGrid = new Grid + { + Background = new SolidColorBrush(Colors.Transparent), + Width = _target.Width, + Height = _target.Height, + HorizontalAlignment = HorizontalAlignment.Right, + Name = string.Format("PageGrid{0}", PageCount), + }; + PageGrid.IsEnabled = PageCount.Equals(_target.DefaultPageNo); + PageGrid.Width = _target.Width; + PageGrid.Height = _target.RowCount * _target.ItemHeight; + _target.ReregisterName(string.Format("PageGrid{0}", PageCount), PageGrid); + + + PageStak = new StackPanel + { + Background = new SolidColorBrush(Colors.Transparent), + HorizontalAlignment = HorizontalAlignment.Left, + VerticalAlignment = VerticalAlignment.Top, + Orientation = Orientation.Vertical, + Name = string.Format("PageStak{0}", PageCount) + }; + _target.ReregisterName(string.Format("PageStak{0}", PageCount), PageStak); + + } + if (itemCnt % _target.ColumnCount == 0) + { + RowGrid = new Grid + { + Background = new SolidColorBrush(Colors.Transparent), + Width = _target.Width + }; + RowStack = new StackPanel + { + Background = new SolidColorBrush(Colors.Transparent), + HorizontalAlignment = HorizontalAlignment.Center, + Orientation = Orientation.Horizontal + }; + if (!_target.ItemHeight.Equals(double.NaN)) RowStack.Height = _target.ItemHeight; + RowStack.Name = string.Format("RowStack{0}", RowsCount); + _target.ReregisterName(string.Format("RowStack{0}", RowsCount), RowStack); + RowGrid.Children.Add(RowStack); + } + var ItemStack = new StackPanel + { + Background = new SolidColorBrush(Colors.Transparent), + Width = _target.ItemWidth, + Height = _target.ItemHeight + }; + if (aItem.BadgeHeight > 0) + { + var bageGrid = new Grid + { + Width = _target.ItemWidth, + Height = aItem.BadgeHeight, + }; + var bageStack = new StackPanel + { + Background = new SolidColorBrush(Colors.Transparent), + Orientation = aItem.BadgeOrientation, + HorizontalAlignment = aItem.BadgeHorizontalAlignment, + VerticalAlignment = aItem.BadgeVerticalAlignment, + }; + if (aItem.BadgeImages is List) + { + foreach (var bageImage in aItem.BadgeImages) + { + var sourceImage = ResourceManager.GetBitmapImage(bageImage); + if (sourceImage !=null) + { + var aBadgeImage = new Image() + { + Width = sourceImage.Width, + Height = sourceImage.Height, + Source = sourceImage, + HorizontalAlignment = aItem.BadgeHorizontalAlignment, + }; + bageStack.Children.Add(aBadgeImage); + } + } + } + bageStack.Name = string.Format("BageStack{0}", itemCnt); + _target.ReregisterName(string.Format("BageStack{0}", itemCnt), bageStack); + bageGrid.Children.Add(bageStack); + ItemStack.Children.Add(bageGrid); + + } + var aItemButton = new AnimationButton(); + if (aItem.DataParameter.Width.Equals(double.NaN) || aItem.DataParameter.Width.Equals(0d)) + { + aItem.DataParameter.Width = _target.ItemWidth; + } + Grid baseTextGrid = null; + StackPanel textStack = null; + MutiLanguageTextBlock baseText = null; + MutiLanguageTextBlock additionText = null; + if (!_target.TextPosition.Equals(TextPosition.InnerButton)) + { + baseTextGrid = new Grid + { + Background = new SolidColorBrush(Colors.Transparent) + }; + textStack = new StackPanel + { + Background = new SolidColorBrush(Colors.Transparent) + }; + baseText = new MutiLanguageTextBlock + { + FontSize = aItem.BaseTextBlock.TextSize, + Background = new SolidColorBrush(Colors.Transparent) + }; + ResourceManager.SetBrush(baseText, "Foreground", aItem.BaseTextBlock.TextBrush); + baseText.Width = aItem.BaseTextBlock.Width; + baseText.Height = aItem.BaseTextBlock.Height; + baseText.HorizontalAlignment = aItem.BaseTextBlock.TextHorizontalAlignment; + baseText.VerticalAlignment = aItem.BaseTextBlock.TextVerticalAlignment; + baseText.TextAlignment = aItem.BaseTextBlock.TextAlignment; + baseText.Margin = aItem.BaseTextBlock.TextMargin; + baseText.AutoTextTrim = aItem.BaseTextBlock.AutoTextTrim; + baseText.TextWrapping = aItem.BaseTextBlock.TextWrapping; + baseText.FontWeight = aItem.BaseTextBlock.TextWeight; + baseText.FontFamily = new FontFamily(aItem.BaseTextBlock.TextFontFamily); + baseText.TextWrapping = TextWrapping.Wrap; + baseText.MultiLanguage = aItem.BaseTextBlock.LanguageData; + baseText.DisplayLanguage = _target.DisplayLanguage; + additionText = new MutiLanguageTextBlock + { + FontSize = aItem.AdditionTextBlock.TextSize, + Background = new SolidColorBrush(Colors.Transparent) + }; + ResourceManager.SetBrush(additionText, "Foreground", aItem.AdditionTextBlock.TextBrush); + additionText.Width = aItem.AdditionTextBlock.Width; + additionText.Height = aItem.AdditionTextBlock.Height; + additionText.HorizontalAlignment = aItem.AdditionTextBlock.TextHorizontalAlignment; + additionText.VerticalAlignment = aItem.AdditionTextBlock.TextVerticalAlignment; + additionText.TextAlignment = aItem.AdditionTextBlock.TextAlignment; + additionText.TextWrapping = aItem.AdditionTextBlock.TextWrapping; + additionText.Margin = aItem.AdditionTextBlock.TextMargin; + additionText.AutoTextTrim = aItem.AdditionTextBlock.AutoTextTrim; + additionText.FontWeight = aItem.AdditionTextBlock.TextWeight; + additionText.FontFamily = new FontFamily(aItem.AdditionTextBlock.TextFontFamily); + additionText.TextWrapping = TextWrapping.Wrap; + additionText.MultiLanguage = aItem.AdditionTextBlock.LanguageData; + additionText.DisplayLanguage = _target.DisplayLanguage; + } + switch (_target.TextPosition) + { + case TextPosition.Left: + baseTextGrid.Width = (_target.ItemWidth - aItem.DataParameter.Width) < 0 ? 0 : _target.ItemWidth - aItem.DataParameter.Width; + baseTextGrid.Height = _target.ItemHeight; + ItemStack.Orientation = Orientation.Horizontal; + textStack.HorizontalAlignment = HorizontalAlignment.Left; + textStack.VerticalAlignment = VerticalAlignment.Center; + break; + case TextPosition.Right: + baseTextGrid.Width = (_target.ItemWidth - aItem.DataParameter.Width) < 0 ? 0 : _target.ItemWidth - aItem.DataParameter.Width; + baseTextGrid.Height = _target.ItemHeight; + ItemStack.Orientation = Orientation.Horizontal; + textStack.HorizontalAlignment = HorizontalAlignment.Right; + textStack.VerticalAlignment = VerticalAlignment.Center; + break; + case TextPosition.Top: + baseTextGrid.Width = _target.ItemWidth; + baseTextGrid.Height = (_target.ItemHeight - aItem.DataParameter.Height) < 0 ? 0 : _target.ItemHeight - aItem.DataParameter.Height; + ItemStack.Orientation = Orientation.Vertical; + textStack.HorizontalAlignment = HorizontalAlignment.Center; + textStack.VerticalAlignment = VerticalAlignment.Bottom; + break; + case TextPosition.Bottom: + baseTextGrid.Width = _target.ItemWidth; + baseTextGrid.Height = (_target.ItemHeight - aItem.DataParameter.Height) < 0 ? 0 : _target.ItemHeight - aItem.DataParameter.Height; + ItemStack.Orientation = Orientation.Vertical; + textStack.HorizontalAlignment = HorizontalAlignment.Center; + textStack.VerticalAlignment = VerticalAlignment.Top; + break; + } + aItemButton.VerticalAlignment = VerticalAlignment.Center; + aItemButton.HorizontalAlignment = HorizontalAlignment.Center; + aItemButton.DataParameter = aItem; + aItemButton.DisplayLanguage = _target.DisplayLanguage; + aItemButton.BaseGrid = _target.BaseGrid; + aItemButton.ReciveElement = _target.ReciveElement; + aItemButton.ClickSend = !string.IsNullOrEmpty(_target.BaseGrid) + && !string.IsNullOrEmpty(_target.ReciveElement); + aItemButton.Name = string.Format("ButtonListItem{0}", itemCnt); + _target.ReregisterName(string.Format("ButtonListItem{0}", itemCnt), aItemButton); + ItemStack.Name = string.Format("ItemStack{0}", itemCnt); + _target.ReregisterName(string.Format("ItemStack{0}", itemCnt), ItemStack); + switch (_target.TextPosition) + { + case TextPosition.Left: + case TextPosition.Top: + textStack.Children.Add(baseText); + textStack.Children.Add(additionText); + baseTextGrid.Children.Add(textStack); + ItemStack.Children.Add(baseTextGrid); + ItemStack.Children.Add(aItemButton); + break; + case TextPosition.Right: + case TextPosition.Bottom: + ItemStack.Children.Add(aItemButton); + textStack.Children.Add(baseText); + textStack.Children.Add(additionText); + baseTextGrid.Children.Add(textStack); + ItemStack.Children.Add(baseTextGrid); + break; + default: + ItemStack.Children.Add(aItemButton); + break; + } + + RowStack.Children.Add(ItemStack); + + itemCnt++; + if (itemCnt % _target.ColumnCount == 0) + { + PageStak.Children.Add(RowGrid); + RowsCount++; + } + if (itemCnt % (_target.ColumnCount * _target.RowCount) == 0) + { + PageGrid.Children.Add(PageStak); + _target.MainStack.Children.Add(PageGrid); + PageCount++; + } + } + if (itemCnt % _target.ColumnCount != 0) + { + for (int i = 0; i < _target.ColumnCount - (itemCnt % _target.ColumnCount); i++) + { + var ItemStack = new StackPanel + { + Background = new SolidColorBrush(Colors.Transparent), + Width = _target.ItemWidth, + Height = _target.ItemHeight + }; + RowStack.Children.Add(ItemStack); + } + PageStak.Children.Add(RowGrid); + } + if (itemCnt % (_target.ColumnCount * _target.RowCount) != 0) + { + PageGrid.Children.Add(PageStak); + _target.MainStack.Children.Add(PageGrid); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(_target, "ItemsButtonCreate()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Events Set + /// + public void GridEventsSet() + { + try + { + MainGrid.PreviewMouseDown += Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp += Grid_PreviewMouseUp; + foreach (Grid pageGrid in this.MainStack.Children) + { + + foreach (StackPanel aPageStack in pageGrid.Children) + { + foreach (Grid aRowGrid in aPageStack.Children) + { + foreach (StackPanel sRowStack in aRowGrid.Children) + { + foreach (StackPanel ItemStack in sRowStack.Children) + { + foreach (var aItem in ItemStack.Children) + { + if (aItem is AnimationButton ItemContent) + { + ItemContent.MouseClicked += ItemContent_MouseClicked; + ItemContent.CircleClicked += ItemContent_CircleClicked; + ItemContent.ItemDrop += ItemContent_ItemDrop; + ItemContent.SendStart += ItemContent_SendStart; + ItemContent.SendEnd += ItemContent_SendEnd; + } + } + } + + } + + } + } + + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsSet()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + /// + /// Events Remove + /// + public void GridEventsRemove() + { + try + { + MainGrid.PreviewMouseDown -= Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp -= Grid_PreviewMouseUp; + foreach (Grid pageGrid in this.MainStack.Children) + { + foreach (StackPanel aPageStack in pageGrid.Children) + { + foreach (Grid aRowGrid in aPageStack.Children) + { + foreach (StackPanel sRowStack in aRowGrid.Children) + { + foreach (StackPanel ItemStack in sRowStack.Children) + { + foreach (var aItem in ItemStack.Children) + { + if (aItem is AnimationButton ItemContent) + { + ItemContent.MouseClicked -= ItemContent_MouseClicked; + ItemContent.CircleClicked -= ItemContent_CircleClicked; + ItemContent.ItemDrop -= ItemContent_ItemDrop; + ItemContent.SendStart -= ItemContent_SendStart; + ItemContent.SendEnd -= ItemContent_SendEnd; + + } + } + ItemStack.Children.Clear(); + } + sRowStack.Children.Clear(); + } + aRowGrid.Children.Clear(); + } + aPageStack.Children.Clear(); + } + pageGrid.Children.Clear(); + + } + this.MainStack.Children.Clear(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsRemove()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Set Button Parameter + /// + public void SetButtonParameter() + { + try + { + foreach (Grid pageGrid in this.MainStack.Children) + { + + foreach (StackPanel aPageStack in pageGrid.Children) + { + foreach (Grid aRowGrid in aPageStack.Children) + { + foreach (StackPanel sRowStack in aRowGrid.Children) + { + foreach (StackPanel ItemStack in sRowStack.Children) + { + foreach (var aItem in ItemStack.Children) + { + if (aItem is AnimationButton ItemContent) + { + ItemContent.ClickSend = this.ClickSend; + ItemContent.AutoToggle = this.AutoToggle; + ItemContent.DragEnable = this.DragEnable; + } + } + } + + } + + } + } + + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetButtonParameter()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + /// + /// PageChange + /// + /// + /// + public void ChangePageTo( int _toPageNo) + { + try + { + var fromOffset = 0d; + var toOffset = 0d; + var totalTime = 0.3; + if (this.MainStack.Orientation.Equals(Orientation.Horizontal)) + { + fromOffset = this.MainScroll.HorizontalOffset; + toOffset = this.Width * _toPageNo; + totalTime = Math.Abs(toOffset - fromOffset) / (this.Width) * totalTime; + + } + else + { + fromOffset = this.MainScroll.VerticalOffset; + toOffset = this.ItemHeight * this.RowCount * _toPageNo; + totalTime = Math.Abs(toOffset - fromOffset) / (this.ItemHeight * this.RowCount) * totalTime; + } + var scrollAnimation = Animations.GetScrollAnimation(this, this.MainStack.Orientation, fromOffset, toOffset, totalTime); + if (scrollAnimation != null) + { + scrollAnimation.Completed += ScrollAnimation_Completed; + scrollAnimation.Begin(); + } + TargetPageNo = _toPageNo; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangePageTo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void ScrollAnimation_Completed(object sender, EventArgs e) + { + var targetGrid = this.FindName(string.Format("PageGrid{0}", TargetPageNo)) ; + if (targetGrid is Grid selectGrid) + { + DefaultPageNo = TargetPageNo; + selectGrid.IsEnabled = true; + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void ButtonList_Unloaded(object sender, RoutedEventArgs e) + { + this.MainStack.Children.Clear(); + this.ListItems = null; + } + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as ButtonList; + foreach (Grid pageGrid in target.MainStack.Children) + { + foreach (StackPanel aPageStack in pageGrid.Children) + { + foreach (Grid aRowGrid in aPageStack.Children) + { + foreach (StackPanel sRowStack in aRowGrid.Children) + { + foreach (StackPanel ItemStack in sRowStack.Children) + { + foreach (var aItem in ItemStack.Children) + { + if (aItem is AnimationButton ItemContent) + { + ItemContent.DisplayLanguage = (SupportLanguageType)e.NewValue; + } + else if (aItem is Grid textGrid) + { + foreach (StackPanel textStack in textGrid.Children) + { + foreach (var aTextItem in textStack.Children) + { + if (aTextItem is MutiLanguageTextBlock textItem) + { + textItem.DisplayLanguage = (SupportLanguageType)e.NewValue; + + } + } + + } + } + } + } + + } + + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnDisplayLanguageProperyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private static void OnDefaultPageNoPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + + var target = d as ButtonList; + target.ChangePageTo((int)e.NewValue); + } + } + + private static void OnStackOrientationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as ButtonList; + target.MainStack.Orientation = (Orientation)e.NewValue; + switch ((Orientation)e.NewValue) + { + case Orientation.Horizontal: + target.MainScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled; + target.MainScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden; + break; + case Orientation.Vertical: + target.MainScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden; + target.MainScroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Disabled; + break; + } + } + } + + private static void OnHorizontalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as ButtonList; + target.MainScroll.ScrollToHorizontalOffset((double)e.NewValue); + } + } + + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as ButtonList; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnListItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue!=null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as ButtonList; + target.GridEventsRemove(); + ItemsButtonCreate(target, e.NewValue); + target.UpdateLayout(); + CommonFunction.ReregisterName(target.Parent as FrameworkElement, target.Name, target); + target.GridEventsSet(); + target.SetDefaultItem(target.DefaultIndex); + + } + } + private static void OnDefaultIndexPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as ButtonList; + if (!e.NewValue.Equals(e.OldValue)) + { + if (e.OldValue != null) + { + target.ResetDefaultItem((int)e.OldValue); + } + if (target.ListItems != null && target.ListItems.Count > 0 && (int)e.NewValue > -1) + { + target.SetDefaultItem((int)e.NewValue); + target.DefaultPageNo = (int)e.NewValue / (target.ColumnCount * target.RowCount); + } + } + } + private static void OnClickSendPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (!e.NewValue.Equals(e.OldValue)) + { + var target = d as ButtonList; + target.SetButtonParameter(); + } + } + private static void OnDragEnableProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (!e.NewValue.Equals(e.OldValue)) + { + var target = d as ButtonList; + target.SetButtonParameter(); + } + } + private static void OnAutoToggleProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (!e.NewValue.Equals(e.OldValue)) + { + var target = d as ButtonList; + target.SetButtonParameter(); + } + } + private static void OnSelectOnProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue !=null) + { + var target = d as ButtonList; + if (target.FindName(string.Format("ButtonListItem{0}", target.DefaultIndex)) is AnimationButton findItem) + { + findItem.Switch=(bool)e.NewValue; + } + + } + } + + private void Grid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownXposition = e.GetPosition(sender as Grid).X; + mouseDownYposition = e.GetPosition(sender as Grid).Y; + MoseDown = true; + } + private void Grid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseXposition = e.GetPosition(requstGrid).X; + var curMouseYposition = e.GetPosition(requstGrid).Y; + if (this.StackOrientation.Equals(Orientation.Horizontal)) + { + if (!mouseDownXposition.Equals(-1) && (mouseDownXposition - curMouseXposition) > 50) + { + if (this.DefaultPageNo < this.MainStack.Children.Count - 1) this.DefaultPageNo++; + } + else if (!mouseDownXposition.Equals(-1) && (mouseDownXposition - curMouseXposition) < -50) + { + if (this.DefaultPageNo > 0) this.DefaultPageNo--; + } + } + else + { + if (!mouseDownYposition.Equals(-1) && (mouseDownYposition - curMouseYposition) > 50) + { + if (this.DefaultPageNo < this.MainStack.Children.Count - 1) this.DefaultPageNo++; + } + else if (!mouseDownYposition.Equals(-1) && (mouseDownYposition - curMouseYposition) < -50) + { + if (this.DefaultPageNo > 0) this.DefaultPageNo--; + } + } + mouseDownXposition = curMouseXposition; + mouseDownYposition = curMouseYposition; + MoseDown = false; + } + + private void ItemContent_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(e.OriginalSource); + } + private void ItemContent_CircleClicked(object sender, RoutedEventArgs e) + { + RaiseCircleClickedEvent(e.OriginalSource); + } + private void ItemContent_ItemDrop(object sender, RoutedEventArgs e) + { + RaiseItemDropEvent(e.OriginalSource); + } + private void ItemContent_SendEnd(object sender, RoutedEventArgs e) + { + this.IsEnabled = true; + } + + private void ItemContent_SendStart(object sender, RoutedEventArgs e) + { + this.IsEnabled = false; + } + + #endregion Event Handlers + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml new file mode 100644 index 0000000..d8bc431 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml @@ -0,0 +1,13 @@ + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml.cs new file mode 100644 index 0000000..d57c419 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/IntroView.xaml.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +namespace SPC.Kiosk.Common +{ + /// + /// IntroView.xaml에 대한 상호 작용 논리 + /// + public partial class IntroView : UserControl + { + #region [ Members ] + /// + /// Intro Items + /// + public static readonly DependencyProperty IntroItemsProperty = + DependencyProperty.Register(nameof(IntroItems), typeof(ObservableCollection), typeof(IntroView), new PropertyMetadata(null, new PropertyChangedCallback(OnIntroItemsPropertyChanged))); + /// + /// Click Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(IntroView), new UIPropertyMetadata(null)); + /// + /// Intro ITems + /// + public ObservableCollection IntroItems + { + get { return (ObservableCollection)GetValue(IntroItemsProperty); } + set { SetValue(IntroItemsProperty, value); } + } + /// + /// Click Commad + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(IntroView)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public IntroView() + { + InitializeComponent(); + } + #endregion Ctor + + #region [ Methods ] + private void RaiseMouseClickedEvent(object _sender) + { + //Command Excute + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(IntroView.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + private void AddStack(StackPanel _targetStack, M_IntroItems _stackContents) + { + try + { + if (_stackContents.StackContents is List stackContents) + { + foreach (var aContents in stackContents) + { + var newName = string.Format("MediaRoll{0}_{1}", _stackContents.ItemsStack, stackContents.IndexOf(aContents)); + var newMediaRoll = new MediaRoll + { + Width = _stackContents.StackWidth, + ListMedia = new ObservableCollection(aContents.MediaRollItems) + }; + newMediaRoll.MouseClicked += NewMediaRoll_MouseClicked; + _targetStack.Children.Add(newMediaRoll); + this.ReregisterName(newName, newMediaRoll); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "AddStack()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void RemoveStack(StackPanel _targetStack, M_IntroItems _stackContents) + { + try + { + if (_stackContents.StackContents is List stackContents) + { + foreach (var aContents in stackContents) + { + var oldName = string.Format("MediaRoll{0}_{1}", _stackContents.ItemsStack, stackContents.IndexOf(aContents)); + var oldMediaRoll = this.FindName(oldName); + if (oldMediaRoll is MediaRoll removeMedia) + { + removeMedia.MouseClicked -= NewMediaRoll_MouseClicked; + } + } + _targetStack.Children.Clear(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "RemoveStack()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void NewMediaRoll_MouseClicked(object sender, RoutedEventArgs e) + { + if (e.OriginalSource is FrameworkElement getElement) + { + if (getElement.Tag is M_MediaRollItem selectItem) + { + RaiseMouseClickedEvent(selectItem); + } + } + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnIntroItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + var target = d as IntroView; + if (e.NewValue is ObservableCollection introItems && introItems.Count > 0) + { + if (e.OldValue is ObservableCollection oldIntroItems) + { + if (introItems.Count.Equals(1)) + { + target.RemoveStack(target.IntroMain, introItems.FirstOrDefault()); + + } + else if (introItems.Count.Equals(2)) + { + foreach (var aIntroItem in introItems) + { + var oldStack = target.FindName(string.Format("IntroStack{0}", introItems.IndexOf(aIntroItem))); + if (oldStack is StackPanel removeStack) + { + target.RemoveStack(removeStack, aIntroItem); + } + + } + target.IntroMain.Children.Clear(); + } + } + if (introItems.Count.Equals(1)) + { + target.IntroMain.Orientation = Orientation.Vertical; + target.AddStack(target.IntroMain, introItems.FirstOrDefault()); + + } + else if (introItems.Count.Equals(2)) + { + target.IntroMain.Orientation = Orientation.Horizontal; + foreach (var aIntroItem in introItems) + { + var newStackPanel = new StackPanel { Orientation = Orientation.Vertical }; + target.AddStack(newStackPanel, aIntroItem); + target.IntroMain.Children.Add(newStackPanel); + target.ReregisterName(string.Format("IntroStack{0}", introItems.IndexOf(aIntroItem)), newStackPanel); + } + } + } + else + { + if (e.OldValue is ObservableCollection oldIntroItems) + { + if (oldIntroItems.Count.Equals(1)) + { + target.RemoveStack(target.IntroMain, oldIntroItems.FirstOrDefault()); + + } + else if (oldIntroItems.Count.Equals(2)) + { + foreach (var aIntroItem in oldIntroItems) + { + var oldStack = target.FindName(string.Format("IntroStack{0}", oldIntroItems.IndexOf(aIntroItem))); + if (oldStack is StackPanel removeStack) + { + target.RemoveStack(removeStack, aIntroItem); + } + + } + target.IntroMain.Children.Clear(); + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnIntroItemsPropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + #endregion Event Handlers + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml new file mode 100644 index 0000000..68da169 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml @@ -0,0 +1,11 @@ + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml.cs new file mode 100644 index 0000000..c19f59b --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaPlayer.xaml.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SPC.Kiosk.Common +{ + /// + /// MediaPlayer.xaml에 대한 상호 작용 논리 + /// + public partial class MediaPlayer : UserControl + { + #region [ Members ] + private bool MoseDown = false; + private Point MoseDownPosition; + /// + /// Noraml Bakcground + /// + public static readonly DependencyProperty MediaFileProperty = + DependencyProperty.Register(nameof(MediaFile), typeof(string), typeof(MediaPlayer), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnMediaFilePropertyChanged))); + /// + /// OD Repeat Flag + /// + public static readonly DependencyProperty RepeatMediaProperty = + DependencyProperty.Register(nameof(RepeatMedia), typeof(bool), typeof(MediaPlayer), new PropertyMetadata(false)); + /// + /// Play Media File (Path) + /// + public string MediaFile + { + get { return (string)GetValue(MediaFileProperty); } + set { SetValue(MediaFileProperty, value); } + } + /// + /// VOD Repeat Flag + /// + public bool RepeatMedia + { + get { return (bool)GetValue(RepeatMediaProperty); } + set { SetValue(RepeatMediaProperty, value); } + } + #endregion Members + + #region [ Ctor / Method ] + /// + /// Ctor + /// + public MediaPlayer() + { + InitializeComponent(); + this.VideoMediaPlayer.LoadedBehavior = MediaState.Manual; + this.VideoMediaPlayer.Loaded += VideoMediaPlayer_Loaded; + this.VideoMediaPlayer.MediaEnded += VideoMediaPlayer_MediaEnded; + this.VideoMediaPlayer.MouseUp += VideoMediaPlayer_MouseUp; + this.VideoMediaPlayer.MouseDown += VideoMediaPlayer_MouseDown; + this.VideoMediaPlayer.MouseLeave += VideoMediaPlayer_MouseLeave; + } + + ~MediaPlayer() + { + this.VideoMediaPlayer.Loaded -= VideoMediaPlayer_Loaded; + this.VideoMediaPlayer.MediaEnded -= VideoMediaPlayer_MediaEnded; + this.VideoMediaPlayer.MouseUp -= VideoMediaPlayer_MouseUp; + this.VideoMediaPlayer.MouseDown -= VideoMediaPlayer_MouseDown; + this.VideoMediaPlayer.MouseLeave -= VideoMediaPlayer_MouseLeave; + } + + /// + /// VOD Restart + /// + public void Restart() + { + try + { + this.VideoMediaPlayer.Stop(); + this.VideoMediaPlayer.Position = TimeSpan.Zero; + this.VideoMediaPlayer.Play(); + } + catch + { + } + } + /// + /// VOD Stop + /// + public void Stop() + { + try + { + this.VideoMediaPlayer.Stop(); + + } + catch + { + } + } + /// + /// VOD Play + /// + public void Play() + { + try + { + this.VideoMediaPlayer.Play(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Play()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// VOD Pause + /// + public void Pause() + { + this.VideoMediaPlayer.Pause(); + } + + #endregion Ctor + + #region [ Events Create ] + + #region [ Make RoutedEvent 'MouseClicked'] + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MediaPlayer)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object source) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(MediaPlayer.MouseClickedEvent, source); + RaiseEvent(newEventArgs); + } + #endregion Make RoutedEvent 'MouseClicked' + + #region [ Make RoutedEvent 'MediaLoaded'] + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MediaLoadedEvent = EventManager.RegisterRoutedEvent(nameof(MediaLoaded), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MediaPlayer)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MediaLoaded + { + add { AddHandler(MediaLoadedEvent, value); } + remove { RemoveHandler(MediaLoadedEvent, value); } + } + /// + /// Raise MouseClicked Event + /// + private void RaiseMediaOpend(object source) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(MediaPlayer.MediaLoadedEvent,source); + RaiseEvent(newEventArgs); + } + #endregion Make RoutedEvent 'MediaLoaded' + + #endregion Events Create + + #region [ Evnets Handler ] + private static void OnMediaFilePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as MediaPlayer; + target.VideoMediaPlayer.Source = string.IsNullOrEmpty((string)e.NewValue) + ? null + : new Uri((string)e.NewValue); + } + + #region Mouse Events Handler + private void VideoMediaPlayer_MouseUp(object sender, MouseButtonEventArgs e) + { + if (MoseDown) + { + if (Math.Abs(e.GetPosition(this).X - MoseDownPosition.X) > 50) MoseDown = false; + if (Math.Abs(e.GetPosition(this).Y - MoseDownPosition.Y) > 50) MoseDown = false; + if (MoseDown) RaiseMouseClickedEvent(this); + MoseDown = false; + } + } + + private void VideoMediaPlayer_MouseDown(object sender, MouseButtonEventArgs e) + { + MoseDown = true; + MoseDownPosition = e.GetPosition(this); + } + + private void VideoMediaPlayer_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + #endregion + + #region Player Events Handler + private void VideoMediaPlayer_Loaded(object sender, RoutedEventArgs e) + { + if (VideoMediaPlayer.Source is Uri) + { + + if (RepeatMedia) + { + if (VideoMediaPlayer.Source.AbsolutePath.ToLower().EndsWith(".gif")) + { + + VideoMediaPlayer.Position = TimeSpan.FromMilliseconds(1); + } + VideoMediaPlayer.Play(); + } + RaiseMediaOpend(e.OriginalSource); + } + } + + private void VideoMediaPlayer_MediaEnded(object sender, RoutedEventArgs e) + { + if (RepeatMedia) + { + if (VideoMediaPlayer.Source is Uri) + { + if (VideoMediaPlayer.Source.AbsolutePath.ToLower().EndsWith(".gif")) + { + + VideoMediaPlayer.Position = TimeSpan.FromMilliseconds(1); + } + else + { + VideoMediaPlayer.Position = TimeSpan.Zero; + } + VideoMediaPlayer.Play(); + } + + } + } + #endregion Player Events Handler + + #endregion Evnets Handler + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml new file mode 100644 index 0000000..cbf642c --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml.cs new file mode 100644 index 0000000..c70076c --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MediaRoll.xaml.cs @@ -0,0 +1,302 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Collections.ObjectModel; +using System.IO; +using System.Windows.Threading; +namespace SPC.Kiosk.Common +{ + + /// + /// MediaRoll.xaml에 대한 상호 작용 논리 + /// + public partial class MediaRoll : UserControl + { + #region [ Members ] + /// + /// Media Info List + /// (ObservableCollection) + /// + public static readonly DependencyProperty ListMediaProperty = + DependencyProperty.Register(nameof(ListMedia), typeof(ObservableCollection), typeof(MediaRoll), new PropertyMetadata(null, new PropertyChangedCallback(OnListMediaProperty))); + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(MediaRoll), new UIPropertyMetadata(null)); + + private DispatcherTimer RollTimer; + + private int CurrentDisplayItem = 0; + /// + /// Media Info List + /// + public ObservableCollection ListMedia + { + get { return (ObservableCollection)GetValue(ListMediaProperty); } + set { SetValue(ListMediaProperty, value); } + } + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MediaRoll)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor ] + /// + /// MediaRoll Ctor + /// + public MediaRoll() + { + InitializeComponent(); + RollTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(5) + }; + RollTimer.Tick += RollTimer_Tick; + } + #endregion Ctor + + #region [ Methods ] + /// + /// Add Media Control to MediaRollStack + /// + /// + /// + private void AddMedia(MediaRoll _target, M_MediaRollItem _aMedia) + { + try + { + switch (_aMedia.Type) + { + case MediaType.Image: + var imageGrid = new Grid(); + var aImage = new AnimationButton + { + NormalBrush = _aMedia.MediaPath, + DownBrush = _aMedia.MediaPath, + Width = _target.Width, + VerticalAlignment = VerticalAlignment.Top, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.None, + Tag = _aMedia, + Name = string.Format("RollItemContent{0}", _target.MediaRollStack.Children.Count) + }; + aImage.MouseClicked += RollItemContent_MouseClick; + _target.ReregisterName(string.Format("RollItemContent{0}", _target.MediaRollStack.Children.Count), aImage); + imageGrid.Tag = _aMedia.RunnigSeconds; + imageGrid.IsEnabled = true; + imageGrid.Children.Add(aImage); + imageGrid.Name = string.Format("RollItem{0}", _target.MediaRollStack.Children.Count); + _target.ReregisterName(string.Format("RollItem{0}", _target.MediaRollStack.Children.Count), imageGrid); + _target.MediaRollStack.Children.Add(imageGrid); + break; + case MediaType.VOD: + var vodGrid = new Grid(); + var aVod = new MediaPlayer + { + MediaFile = _aMedia.MediaPath, + RepeatMedia = _aMedia.RepeatMedia, + Width = _target.Width, + Tag = _aMedia, + Name = string.Format("RollItemContent{0}", _target.MediaRollStack.Children.Count) + }; + aVod.MouseClicked += RollItemContent_MouseClick; + _target.ReregisterName(string.Format("RollItemContent{0}", _target.MediaRollStack.Children.Count), aVod); + vodGrid.Tag = _aMedia.RunnigSeconds; + vodGrid.IsEnabled = true; + vodGrid.Children.Add(aVod); + vodGrid.Name = string.Format("RollItem{0}", _target.MediaRollStack.Children.Count); + _target.ReregisterName(string.Format("RollItem{0}", _target.MediaRollStack.Children.Count), vodGrid); + _target.MediaRollStack.Children.Add(vodGrid); + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(_target, "AddMedia()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + //Command Excute + if (Command != null && Command.CanExecute((_sender as FrameworkElement).Tag)) + { + Command.Execute((_sender as FrameworkElement).Tag); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(MediaRoll.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + + #endregion Methods + + #region [ Event Handlers ] + private static void OnListMediaProperty(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as MediaRoll; + if (e.NewValue is ObservableCollection lstMedia) + { + target.MediaRollStack.Children.Clear(); + foreach (var aMedia in lstMedia) + { + if (File.Exists(aMedia.MediaPath)) target.AddMedia(target, aMedia); + } + if (target.MediaRollStack.Children.Count > 0) + { + var firstItem = target.FindName("RollItem0") as Grid; + var mediaObject = target.FindName(string.Format("RollItemContent{0}", 0)); + var mediaObjectType = mediaObject.GetType(); + if (mediaObject is MediaPlayer mediaPlayer) + { + mediaPlayer.Stop(); + mediaPlayer.Play(); + } + if (target.RollTimer != null) + { + target.RollTimer.Interval = TimeSpan.FromSeconds((double)firstItem.Tag); + target.RollTimer.Start(); + } + + } + } + } + + private void RollItemContent_MouseClick(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(e.OriginalSource); + } + + private void RollTimer_Tick(object sender, EventArgs e) + { + + try + { + RollTimer.Stop(); + if (this.MediaRollStack.Children.Count > 1) + { + var currentObject = this.MediaRollStack.Children[CurrentDisplayItem] as FrameworkElement; + bool Selected = false; + var targetIndex = CurrentDisplayItem + 1; + var mediaSourceObject = this.FindName(string.Format("RollItemContent{0}", CurrentDisplayItem)); + if (mediaSourceObject is MediaPlayer) + { + (mediaSourceObject as MediaPlayer).Stop(); + } + FrameworkElement targetObject = null; + object mediaObject = null; + while (!Selected) + { + if (targetIndex.Equals(this.MediaRollStack.Children.Count)) targetIndex = 0; + targetObject = this.MediaRollStack.Children[targetIndex] as FrameworkElement; + mediaObject = this.FindName(string.Format("RollItemContent{0}", targetIndex)); + var targetData = mediaObject is FrameworkElement selectObject ? selectObject.Tag : null; + if (targetData is M_MediaRollItem selectData) + { + var CurrentDateTime = DateTime.Now.TimeOfDay; + if (!(selectData.StartTime.Equals(default(TimeSpan)) || selectData.EndTime.Equals(default(TimeSpan)))) + { + if (selectData.StartTime <= CurrentDateTime && selectData.EndTime >= CurrentDateTime) + { + Selected = true; + break; + } + } + else + { + Selected = true; + break; + } + } + else + { + Selected = true; + break; + } + targetIndex++; + } + if (mediaObject is MediaPlayer playObject) + { + playObject.Stop(); + playObject.Play(); + } + if (!currentObject.Equals(targetObject)) + { + currentObject.IsEnabled = true; + targetObject.IsEnabled = false; + var targetAnimation = Animations.GetOpenAndCloseAnimation(currentObject, targetObject, OpenCloseAnimationType.GotoLeft, this.Width, 1, 0.3); + if (targetAnimation != null) + { + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + } + else + { + RollTimer.Start(); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "RollTimer_Tick()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void TargetAnimation_Completed(object sender, EventArgs e) + { + CurrentDisplayItem += 1; + if (CurrentDisplayItem.Equals(this.MediaRollStack.Children.Count)) + { + //(this.MediaRollStack.Children[CurrentDisplayItem] as FrameworkElement).Width = 0; + //(this.MediaRollStack.Children[0] as FrameworkElement).Width = this.Width; + CurrentDisplayItem = 0; + } + if (this.MediaRollStack.Children[CurrentDisplayItem] is FrameworkElement viewMedia) + { + viewMedia.IsEnabled = true; + if (this.RollTimer != null) + { + this.RollTimer.Interval = TimeSpan.FromSeconds((double)viewMedia.Tag); + this.RollTimer.Start(); + } + } + } + + + + #endregion Event Handlers + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml new file mode 100644 index 0000000..3b152d3 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml.cs new file mode 100644 index 0000000..872bb86 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MessageBoxForm.xaml.cs @@ -0,0 +1,286 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Forms; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Threading; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// MessageBoxForm.xaml에 대한 상호 작용 논리 + /// + public partial class MessageBoxForm : Window + { + #region [ Members ] + private DispatcherTimer ShowTimer; + /// + /// MessageBox 응답 결과 + /// + public MessageBoxResult BoxResult { get; set; } + /// + /// MessageBox Button 구성 종류 + /// + public MessageBoxButton BoxButton { get; set; } + /// + /// MessageBox Open Animation Type + /// + public OpenCloseAnimationType BoxOpenAnimationType { get; set; } + /// + /// MessageBox Close Animation Type + /// + public OpenCloseAnimationType BoxCloseAnimationType { get; set; } + /// + /// 시작 종료 투명도 + /// + public double StartEndOpacity { get; set; } + /// + /// Animation 시강(초) + /// + public double AnimationSeconds { get; set; } + /// + /// 표시 대기 시간 (초) 0= 무한대 + /// + public double ShowWaitTime { get; set; } + private int ScreenNo { get; set; } + private Size PopupSize { get; set; } + + public SupportLanguageType LanguageType { get; set; } + #endregion Members + + #region [ Ctor / Etc ] + /// + /// MesssageBox 초기화 (for ShowMesssageBox) + /// + /// + /// + /// + /// + /// + /// + /// + /// + public MessageBoxForm(int _screenNo, + Size _size, + MessageBoxButton _boxButton, + OpenCloseAnimationType _openAnimationType , + OpenCloseAnimationType _closeAnimationType , + double _startEndOpacity , + double animationSeconds , + double _waitTime) + { + ScreenNo = _screenNo; + PopupSize = _size; + BoxButton = _boxButton; + BoxOpenAnimationType = _openAnimationType; + BoxCloseAnimationType = _closeAnimationType; + StartEndOpacity = _startEndOpacity; + AnimationSeconds = animationSeconds; + ShowWaitTime = _waitTime; + InitializeComponent(); + if (ShowWaitTime > 0) + { + ShowTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(ShowWaitTime), + IsEnabled = true + }; + ShowTimer.Tick += ShowTimer_Tick; + } + BaseInit(); + this.Yes_Button.MouseClicked += Yes_Button_MouseClicked; + this.No_Button.MouseClicked += No_Button_MouseClicked; + this.Cancel_Button.MouseClicked += Cancel_Button_MouseClicked; + } + /// + /// MesssageBox 초기화 (for TimeMesssageBox) + /// + /// + /// + /// + /// + /// + /// + /// + public MessageBoxForm(int _screenNo, + Size _size, + OpenCloseAnimationType _openAnimationType, + OpenCloseAnimationType _closeAnimationType, + double _startEndOpacity, + double animationSeconds, + double _waitTime) + { + ScreenNo = _screenNo; + PopupSize = _size; + BoxOpenAnimationType = _openAnimationType; + BoxCloseAnimationType = _closeAnimationType; + StartEndOpacity = _startEndOpacity; + AnimationSeconds = animationSeconds; + InitializeComponent(); + ShowWaitTime = _waitTime.Equals(0) ? 5 : _waitTime; + ShowTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(ShowWaitTime), + IsEnabled = false + }; + ShowTimer.Tick += ShowTimer_Tick; + BaseInit(); + this.ButtonStackHight.Height = new GridLength(0); + } + private void BaseInit() + { + this.Yes_Button.DisplayLanguage= CommonValue.CommonLanguageType; + this.No_Button.DisplayLanguage = CommonValue.CommonLanguageType; + this.Cancel_Button.DisplayLanguage = CommonValue.CommonLanguageType; + this.MessageHeader.DisplayLanguage = CommonValue.CommonLanguageType; + this.Message.DisplayLanguage = CommonValue.CommonLanguageType; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = PopupSize.Width.Equals(0) ? Screen.AllScreens[ScreenNo].Bounds.Width : PopupSize.Width; + this.Height = PopupSize.Height.Equals(0) ? Screen.AllScreens[ScreenNo].Bounds.Height : PopupSize.Height; + this.IsEnabled = false; + this.Loaded += MessageBoxForm_Loaded; + } + #endregion Ctor / Etc + + #region [ Methods ] + private void CloseBase() + { + if (ShowTimer != null) + { + ShowTimer.Stop(); + ShowTimer.Tick -= ShowTimer_Tick; + ShowTimer = null; + } + this.Loaded -= MessageBoxForm_Loaded; + this.Yes_Button.MouseClicked -= Yes_Button_MouseClicked; + this.No_Button.MouseClicked -= No_Button_MouseClicked; + this.Cancel_Button.MouseClicked -= Cancel_Button_MouseClicked; + + if (!BoxCloseAnimationType.Equals(OpenCloseAnimationType.None)) + { + var animationVector = BoxCloseAnimationType.Equals(OpenCloseAnimationType.GotoLeft) || BoxCloseAnimationType.Equals(OpenCloseAnimationType.GotoRight) + ? this.BoxBase.Width : this.BoxBase.Height; + var CloseAnimation = Animations.GetCloseAnimation(this.BoxBase, BoxCloseAnimationType, animationVector, StartEndOpacity, AnimationSeconds); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + else + { + this.Close(); + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void ShowTimer_Tick(object sender, EventArgs e) + { + ShowTimer.Stop(); + BoxResult = MessageBoxResult.None; + CloseBase(); + } + + private void MessageBoxForm_Loaded(object sender, RoutedEventArgs e) + { + if (!BoxOpenAnimationType.Equals(OpenCloseAnimationType.None)) + { + var animationVector = BoxOpenAnimationType.Equals(OpenCloseAnimationType.GotoLeft) || BoxOpenAnimationType.Equals(OpenCloseAnimationType.GotoRight) + ? this.BoxBase.Width : this.BoxBase.Height; + var OpenAnimations = Animations.GetOpenAnimation(this.BoxBase, BoxOpenAnimationType, animationVector, StartEndOpacity, AnimationSeconds); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + else + { + if (ShowTimer != null) ShowTimer.Start(); + this.IsEnabled = true; + } + } + + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (ShowTimer != null) ShowTimer.Start(); + this.IsEnabled = true; + } + + private void CloseAnimation_Completed(object sender, EventArgs e) + { + + this.Close(); + } + + private void Cancel_Button_MouseClicked(object sender, RoutedEventArgs e) + { + if (ShowTimer != null) ShowTimer.Stop(); + switch (BoxButton) + { + case MessageBoxButton.OKCancel: + case MessageBoxButton.YesNoCancel: + BoxResult = MessageBoxResult.Cancel; + break; + default: + BoxResult = MessageBoxResult.None; + break; + } + this.Cancel_Button.Switch = true; + CloseBase(); + } + + private void No_Button_MouseClicked(object sender, RoutedEventArgs e) + { + if (ShowTimer != null) ShowTimer.Stop(); + switch (BoxButton) + { + case MessageBoxButton.YesNo: + case MessageBoxButton.YesNoCancel: + BoxResult = MessageBoxResult.No; + break; + default: + BoxResult = MessageBoxResult.None; + break; + } + this.No_Button.Switch = true; + CloseBase(); + } + + private void Yes_Button_MouseClicked(object sender, RoutedEventArgs e) + { + if (ShowTimer != null) ShowTimer.Stop(); + switch (BoxButton) + { + case MessageBoxButton.OK: + case MessageBoxButton.OKCancel: + BoxResult = MessageBoxResult.OK; + break; + case MessageBoxButton.YesNo: + case MessageBoxButton.YesNoCancel: + BoxResult = MessageBoxResult.Yes; + break; + default: + BoxResult = MessageBoxResult.None; + break; + } + this.Yes_Button.Switch = true; + CloseBase(); + } + + + #endregion Event Handlers + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/MutiLanguageTextBlock.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/MutiLanguageTextBlock.cs new file mode 100644 index 0000000..2c57dcb --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/MutiLanguageTextBlock.cs @@ -0,0 +1,214 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Threading; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// 다국어 지원 TextBlock + /// + public class MutiLanguageTextBlock : TextBlock + { + #region [ Members ] + /// + /// Muti Language Data + /// + public static readonly DependencyProperty MultiLanguageProperty = + DependencyProperty.Register(nameof(MultiLanguage), typeof(List), typeof(MutiLanguageTextBlock), new PropertyMetadata(default(List), new PropertyChangedCallback(OnMultiLanguagePropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(MutiLanguageTextBlock), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Guid Text (if Show Text is empty) + /// + public static readonly DependencyProperty GuidTextProperty = + DependencyProperty.Register(nameof(GuidText), typeof(List), typeof(MutiLanguageTextBlock), new PropertyMetadata(default(List), new PropertyChangedCallback(OnGuidTextPropertyChanged))); + /// + /// Text Blinking Flag + /// + public static readonly DependencyProperty BlinkTextProperty = + DependencyProperty.Register(nameof(BlinkText), typeof(bool), typeof(MutiLanguageTextBlock), new PropertyMetadata(false, new PropertyChangedCallback(OnBlinkTextPropertyChanged))); + /// + /// Auto Text Trim + /// + public static readonly DependencyProperty AutoTextTrimProperty = + DependencyProperty.Register(nameof(AutoTextTrim), typeof(bool), typeof(MutiLanguageTextBlock), new PropertyMetadata(false, new PropertyChangedCallback(OnAutoTextTrimPropertyChanged))); + + ~MutiLanguageTextBlock() + { + if (this.BlickTimer != null) + { + this.BlickTimer.Stop(); + this.BlickTimer.Tick -= this.BlickTimer_Tick; + this.BlickTimer = null; + } + } + + /// + /// Blinking Timer + /// + public DispatcherTimer BlickTimer { get; protected set; } + public bool AutoTextTrim + { + get { return (bool)GetValue(AutoTextTrimProperty); } + set { SetValue(AutoTextTrimProperty, value); } + } + + /// + /// Text Blinking Flag + /// + public bool BlinkText + { + get { return (bool)GetValue(BlinkTextProperty); } + set { SetValue(BlinkTextProperty, value); } + } + /// + /// Guid Text (if Show Text is empty) + /// + public List GuidText + { + get { return (List)GetValue(GuidTextProperty); } + set { SetValue(GuidTextProperty, value); } + } + /// + /// Muti Language Data + /// + public List MultiLanguage + { + get { return (List)GetValue(MultiLanguageProperty); } + set { SetValue(MultiLanguageProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + #endregion Members + + #region [ Methods ] + protected override void OnTextInput(TextCompositionEventArgs e) + { + base.OnTextInput(e); + if (string.IsNullOrEmpty(e.Text)) + { + var target = e.OriginalSource as MutiLanguageTextBlock; + target.Text = target.GuidText.GetLanguageData(target.DisplayLanguage); + } + } + private void AutoTextTrimming() + { + if (this.AutoTextTrim) + { + this.Text = this.Text.TextTrimming(this.DisplayLanguage + , this.FontSize + , this.FontFamily + , this.FontStyle + , this.FontWeight + , this.FontStretch + , this.Width); + } + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnMultiLanguagePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as MutiLanguageTextBlock; + target.Text = string.Empty; + if (e.NewValue is List multiLnaguage) + { + target.Text = multiLnaguage.GetLanguageData(target.DisplayLanguage); + target.AutoTextTrimming(); + } + + } + } + private static void OnBlinkTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (!e.NewValue.Equals(e.OldValue)) + { + var target = d as MutiLanguageTextBlock; + if ((bool)e.OldValue) + { + if (target.BlickTimer != null) + { + target.BlickTimer.Stop(); + target.BlickTimer = null; + } + } + if ((bool)e.NewValue) + { + target.BlickTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(0.5d), + }; + target.BlickTimer.Tick += target.BlickTimer_Tick; + target.BlickTimer.Start(); + } + } + } + + private void BlickTimer_Tick(object sender, EventArgs e) + { + BlickTimer.Stop(); + if (this.Visibility.Equals(Visibility.Visible)) + { + this.Visibility = Visibility.Hidden; + } + else + { + this.Visibility = Visibility.Visible; + } + BlickTimer.Start(); + } + + private static void OnGuidTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as MutiLanguageTextBlock; + if (e.NewValue is List guideText) + { + target.Text = guideText.GetLanguageData(target.DisplayLanguage); + target.AutoTextTrimming(); + } + } + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as MutiLanguageTextBlock; + target.Text = string.Empty; + if (target.MultiLanguage is List multiLnaguage && e.NewValue is SupportLanguageType languageType) + { + target.Text = multiLnaguage.GetLanguageData(languageType); + target.AutoTextTrimming(); + } + } + } + private static void OnAutoTextTrimPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if ((bool)e.NewValue) + { + var target = d as MutiLanguageTextBlock; + target.AutoTextTrimming(); + + } + } + + #endregion Event Handlers + + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml new file mode 100644 index 0000000..2e8a434 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml.cs new file mode 100644 index 0000000..7eb961a --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericCombo.xaml.cs @@ -0,0 +1,649 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// NumericCombo.xaml에 대한 상호 작용 논리 + /// + public partial class NumericCombo : UserControl + { + + #region [ Members ] + /// + /// Text Backgroung Brush + /// + public static readonly DependencyProperty BackgroungBrushProperty = + DependencyProperty.Register(nameof(BackgroungBrush), typeof(string), typeof(NumericCombo), new PropertyMetadata("White", new PropertyChangedCallback(OnBackgroungBrushPropertyChanged))); + /// + /// Text Foregroung Brush + /// + public static readonly DependencyProperty ForegroungBrushProperty = + DependencyProperty.Register(nameof(ForegroungBrush), typeof(string), typeof(NumericCombo), new PropertyMetadata("Black", new PropertyChangedCallback(OnForegroungBrushPropertyChanged))); + /// + /// Selected Text BackgroundBrush + /// + public static readonly DependencyProperty SelectBackgroundBrushProperty = + DependencyProperty.Register(nameof(SelectBackgroundBrush), typeof(string), typeof(NumericCombo), new PropertyMetadata("DarkGray")); + /// + /// Selected Text ForegroundBrush + /// + public static readonly DependencyProperty SelectForegroundBrushProperty = + DependencyProperty.Register(nameof(SelectForegroundBrush), typeof(string), typeof(NumericCombo), new PropertyMetadata("Black")); + /// + /// Left Button AnimationButton Data + /// + public static readonly DependencyProperty LeftButtonDataProperty = + DependencyProperty.Register(nameof(LeftButtonData), typeof(M_AnimationButton), typeof(NumericCombo), new PropertyMetadata(null, new PropertyChangedCallback(OnLeftButtonDataPropertyChanged))); + /// + /// Right Button AnimationButton Data + /// + public static readonly DependencyProperty RightButtonDataProperty = + DependencyProperty.Register(nameof(RightButtonData), typeof(M_AnimationButton), typeof(NumericCombo), new PropertyMetadata(null, new PropertyChangedCallback(OnRightButtonDataPropertyChanged))); + /// + /// Min Value + /// + public static readonly DependencyProperty MinValueProperty = + DependencyProperty.Register(nameof(MinValue), typeof(int), typeof(NumericCombo), new PropertyMetadata(1, new PropertyChangedCallback(OnMinValuePropertyChanged))); + /// + /// Max Value + /// + public static readonly DependencyProperty MaxValueProperty = + DependencyProperty.Register(nameof(MaxValue), typeof(int), typeof(NumericCombo), new PropertyMetadata(4, new PropertyChangedCallback(OnMaxValuePropertyPropertyChanged))); + /// + /// Selected Value + /// + public static readonly DependencyProperty SelectedValueProperty = + DependencyProperty.Register(nameof(SelectedValue), typeof(int), typeof(NumericCombo), new PropertyMetadata(-1, new PropertyChangedCallback(OnSelectedValuePropertyChanged))); + /// + /// Value Step + /// + public static readonly DependencyProperty ValueStepProperty = + DependencyProperty.Register(nameof(ValueStep), typeof(int), typeof(NumericCombo), new PropertyMetadata(1, new PropertyChangedCallback(OnValueStepPropertyChanged))); + /// + /// Value List + /// + public static readonly DependencyProperty ValueListProperty = + DependencyProperty.Register(nameof(ValueList), typeof(List), typeof(NumericCombo), new PropertyMetadata(null, new PropertyChangedCallback(OnValueListPropertyChanged))); + /// + /// Drop Down Show Flag + /// + public static readonly DependencyProperty IsDropDownProperty = + DependencyProperty.Register(nameof(IsDropDown), typeof(bool), typeof(NumericCombo), new PropertyMetadata(false)); + /// + /// Show DropDown Item Count + /// + public static readonly DependencyProperty DropDownCountProperty = + DependencyProperty.Register(nameof(DropDownCount), typeof(int), typeof(NumericCombo), new PropertyMetadata(0, new PropertyChangedCallback(OnDropDownCountPropertyChanged))); + /// + /// Text FontSize + /// + public static readonly DependencyProperty TextFontSizeProperty = + DependencyProperty.Register(nameof(TextFontSize), typeof(double), typeof(NumericCombo), new PropertyMetadata(0d, new PropertyChangedCallback(OnTextFontSizePropertyChanged))); + /// + /// Text Width + /// + public static readonly DependencyProperty TextWidthProperty = + DependencyProperty.Register(nameof(TextWidth), typeof(double), typeof(NumericCombo), new PropertyMetadata(20d, new PropertyChangedCallback(OnTextWidthPropertyChanged))); + + + /// + /// Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(NumericCombo), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + /// + /// Text Area Width + /// + public double TextWidth + { + get { return (double)GetValue(TextWidthProperty); } + set { SetValue(TextWidthProperty, value); } + } + /// + /// Text Area FontSize + /// + public double TextFontSize + { + get { return (double)GetValue(TextFontSizeProperty); } + set { SetValue(TextFontSizeProperty, value); } + } + /// + /// Scroll Offset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + /// + /// Show DropDown Item Count + /// + public int DropDownCount + { + get { return (int)GetValue(DropDownCountProperty); } + set { SetValue(DropDownCountProperty, value); } + } + /// + /// Drop Down Show Flag + /// + public bool IsDropDown + { + get { return (bool)GetValue(IsDropDownProperty); } + set { SetValue(IsDropDownProperty, value); } + } + /// + /// Value List + /// + public List ValueList + { + get { return (List)GetValue(ValueListProperty); } + set { SetValue(ValueListProperty, value); } + } + /// + /// Right Button AnimationButton Data + /// + public M_AnimationButton RightButtonData + { + get { return (M_AnimationButton)GetValue(RightButtonDataProperty); } + set { SetValue(RightButtonDataProperty, value); } + } + /// + /// Left Button AnimationButton Data + /// + public M_AnimationButton LeftButtonData + { + get { return (M_AnimationButton)GetValue(LeftButtonDataProperty); } + set { SetValue(LeftButtonDataProperty, value); } + } + /// + /// Min Value + /// + public int MinValue + { + get { return (int)GetValue(MinValueProperty); } + set { SetValue(MinValueProperty, value); } + } + /// + /// Max Value + /// + public int MaxValue + { + get { return (int)GetValue(MaxValueProperty); } + set { SetValue(MaxValueProperty, value); } + } + /// + /// Selected Value + /// + public int SelectedValue + { + get { return (int)GetValue(SelectedValueProperty); } + set + { + SetValue(SelectedValueProperty, value); + RaiseSelectChangeEvent(value); + } + } + /// + /// Value Step + /// + public int ValueStep + { + get { return (int)GetValue(ValueStepProperty); } + set { SetValue(ValueStepProperty, value); } + } + /// + /// Text ForegroungBrush + /// + public string ForegroungBrush + { + get { return (string)GetValue(ForegroungBrushProperty); } + set { SetValue(ForegroungBrushProperty, value); } + } + /// + /// Text BackgroungBrush + /// + public string BackgroungBrush + { + get { return (string)GetValue(BackgroungBrushProperty); } + set { SetValue(BackgroungBrushProperty, value); } + } + /// + /// Selected Text ForegroundBrush + /// + public string SelectForegroundBrush + { + get { return (string)GetValue(SelectForegroundBrushProperty); } + set { SetValue(SelectForegroundBrushProperty, value); } + } + /// + /// Selected Text BackgroundBrush + /// + public string SelectBackgroundBrush + { + get { return (string)GetValue(SelectBackgroundBrushProperty); } + set { SetValue(SelectBackgroundBrushProperty, value); } + } + + private double mouseDownYposition = -1; + private bool MoseDown = false; + private bool CurrentMoseDown = false; + #region [ RoutedEvent 'SelectChange' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent SelectChangeEvent = EventManager.RegisterRoutedEvent(nameof(SelectChange), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(NumericCombo)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler SelectChange + { + add { AddHandler(SelectChangeEvent, value); } + remove { RemoveHandler(SelectChangeEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public NumericCombo() + { + InitializeComponent(); + this.NumericButtonCanvas.Visibility = Visibility.Collapsed; + this.NumericButtonStack.MouseDown += NumericButtonStack_MouseDown; + this.NumericButtonStack.MouseUp += NumericButtonStack_MouseUp; + this.LeftButton.MouseClicked += LeftButton_MouseClicked; + this.RightButton.MouseClicked += RightButton_MouseClicked; + this.CurrentNumberText.MouseDown += CurrentNumberText_MouseDown; + this.CurrentNumberText.MouseUp += CurrentNumberText_MouseUp; + } + #endregion Ctor + + #region [ Methods ] + private void RaiseSelectChangeEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(NumericCombo.SelectChangeEvent, _sender); + RaiseEvent(newEventArgs); + } + protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo) + { + this.LeftButton.Width = sizeInfo.NewSize.Height; + this.LeftButton.Height = sizeInfo.NewSize.Height; + this.RightButton.Width = sizeInfo.NewSize.Height; + this.RightButton.Height = sizeInfo.NewSize.Height; + SetNumericData(this); + base.OnRenderSizeChanged(sizeInfo); + + } + private static void SetNumericData(NumericCombo _target) + { + try + { + _target.CurrentNumberText.Width = _target.TextWidth; + _target.CurrentNumberText.Height = _target.Height; + if (_target.ValueList is List valueList) + { + _target.NumericButtonStack.Children.Clear(); + foreach (var i in valueList) + { + var newTextBlock = new TextBlock + { + Name = string.Format("NumberText{0}", i), + Text = i.ToString(), + Width = _target.CurrentNumberText.Width, + Height = _target.Height, + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center, + TextAlignment = TextAlignment.Center, + FontSize = _target.TextFontSize, + FontWeight = _target.CurrentNumberText.FontWeight, + Foreground = _target.CurrentNumberText.Foreground, + + }; + _target.NumericButtonStack.Children.Add(newTextBlock); + _target.ReregisterName(string.Format("NumberText{0}", i), newTextBlock); + } + } + else if (_target.MaxValue > _target.MinValue && _target.MaxValue >= _target.ValueStep) + { + _target.NumericButtonStack.Children.Clear(); + for (int i = _target.MinValue; i <= _target.MaxValue; i += _target.ValueStep) + { + var newTextBlock = new TextBlock + { + Name = string.Format("NumberText{0}", i), + Text = i.ToString(), + Width = _target.CurrentNumberText.Width, + Height = _target.Height, + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center, + TextAlignment = TextAlignment.Center, + FontSize = _target.TextFontSize, + FontWeight = _target.CurrentNumberText.FontWeight, + Foreground = _target.CurrentNumberText.Foreground + + }; + _target.NumericButtonStack.Children.Add(newTextBlock); + _target.ReregisterName(string.Format("NumberText{0}", i), newTextBlock); + } + } + else + { + return; + } + _target.NumericButtonCanvas.Width = _target.CurrentNumberText.Width; + _target.NumericButtonCanvas.Height = _target.Height + * (_target.DropDownCount > 0 ? _target.DropDownCount + : _target.NumericButtonStack.Children.Count); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(_target, "SetNumericData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + } + + #endregion Methods + + #region [ Event Handlers ] + private static void OnTextFontSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as NumericCombo; + target.CurrentNumberText.FontSize = (double)e.NewValue; + } + } + private static void OnTextWidthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as NumericCombo; + target.CurrentNumberText.Width = (double)e.NewValue; + } + } + + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as NumericCombo; + target.NumericScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + private static void OnDropDownCountPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + target.NumericButtonCanvas.Height = target.Height + * (target.DropDownCount > 0 ? target.DropDownCount + : target.NumericButtonStack.Children.Count); + } + } + + private static void OnValueListPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + SetNumericData(target); + + } + } + private static void OnMinValuePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + SetNumericData(target); + } + } + private static void OnMaxValuePropertyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + SetNumericData(target); + } + } + private static void OnSelectedValuePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + var selectValue = (int)e.NewValue; + if (selectValue >= target.MinValue && selectValue <= target.MaxValue) + { + target.CurrentNumberText.Text = selectValue.ToString(); + } + else + { + target.SelectedValue = (int)e.OldValue; + } + } + + } + private static void OnValueStepPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + SetNumericData(target); + } + } + private static void OnRightButtonDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + var newData = e.NewValue as M_AnimationButton; ; + target.Height = newData.Height; + target.RightButton.DataParameter = newData; + if (!target.Height.Equals(double.NaN)) + { + target.NumericStackGrid.Margin = new Thickness(0, target.Height, 0, 0); + SetNumericData(target); + } + } + } + private static void OnLeftButtonDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + var newData = e.NewValue as M_AnimationButton; ; + target.Height = newData.Height; + target.LeftButton.DataParameter = newData; + if (!target.Height.Equals(double.NaN)) + { + target.NumericStackGrid.Margin = new Thickness(0, target.Height, 0, 0); + SetNumericData(target); + } + } + } + private static void OnForegroungBrushPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + ResourceManager.SetBrush(target.CurrentNumberGrid, "Background", (string)e.NewValue); + SetNumericData(target); + } + } + private static void OnBackgroungBrushPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null && !e.NewValue.Equals(e.OldValue)) + { + var target = d as NumericCombo; + ResourceManager.SetBrush(target.CurrentNumberGrid, "Background", (string)e.NewValue, Stretch.Fill); + ResourceManager.SetBrush(target.NumericButtonCanvas, "Background", (string)e.NewValue, Stretch.Fill); + } + } + private void CurrentNumberText_MouseDown(object sender, MouseButtonEventArgs e) + { + CurrentMoseDown = true; + } + + private void CurrentNumberText_MouseUp(object sender, MouseButtonEventArgs e) + { + if (!CurrentMoseDown) return; + if (sender is TextBlock currentText) + { + if (this.NumericButtonCanvas.Visibility.Equals(Visibility.Visible)) + { + this.NumericButtonCanvas.Visibility = Visibility.Collapsed; + } + else + { + if (this.IsDropDown) + { + this.NumericButtonCanvas.Visibility = Visibility.Visible; + foreach (var aNumber in this.NumericButtonStack.Children) + { + var findNumber = aNumber as TextBlock; + + if (aNumber != null) + { + if (aNumber != null && findNumber.Text.Equals(this.CurrentNumberText.Text)) + { + ResourceManager.SetBrush(findNumber, "Background", this.SelectBackgroundBrush); + ResourceManager.SetBrush(findNumber, "Foreground", this.SelectForegroundBrush); + } + else + { + ResourceManager.SetBrush(findNumber, "Background", this.BackgroungBrush); + ResourceManager.SetBrush(findNumber, "Foreground", this.ForegroungBrush); + } + } + } + } + } + } + CurrentMoseDown = false; + } + private void NumericButtonStack_MouseDown(object sender, MouseButtonEventArgs e) + { + if (sender is StackPanel numStack) + { + mouseDownYposition = e.GetPosition(numStack).Y; + MoseDown = true; + } + } + private void NumericButtonStack_MouseUp(object sender, MouseButtonEventArgs e) + { + if (sender is StackPanel numStack) + { + if (!MoseDown) return; + var curMouseYposition = e.GetPosition(numStack).Y; + var fromOffset = this.NumericScroll.VerticalOffset; + var toOffset = 0d; + var totalTime = 0.3; + Storyboard scrollAnimation = null; + if (!mouseDownYposition.Equals(-1) && (mouseDownYposition - curMouseYposition) > 14) + { + if (this.DropDownCount > 0 && this.NumericButtonStack.Children.Count > this.DropDownCount) + { + toOffset = fromOffset + this.CurrentNumberText.Height * DropDownCount; + scrollAnimation = Animations.GetScrollAnimation(this, Orientation.Vertical, fromOffset, toOffset, totalTime); + } + + } + else if (!mouseDownYposition.Equals(-1) && (mouseDownYposition - curMouseYposition) < -14) + { + if (this.DropDownCount > 0 && this.NumericButtonStack.Children.Count > this.DropDownCount) + { + toOffset = fromOffset - this.CurrentNumberText.Height * DropDownCount; + scrollAnimation = Animations.GetScrollAnimation(this, Orientation.Vertical, fromOffset, toOffset, totalTime); + + } + } + else + { + foreach (var aNumber in numStack.Children) + { + if (aNumber is TextBlock findNumber && findNumber.IsMouseOver) + { + var findIndex = this.NumericButtonStack.Children.IndexOf(findNumber); + this.SelectedValue = int.Parse(findNumber.Text); + this.NumericScroll.ScrollToVerticalOffset(findIndex * this.CurrentNumberText.Height); + this.NumericButtonCanvas.Visibility = Visibility.Collapsed; + break; + } + } + } + mouseDownYposition = curMouseYposition; + MoseDown = false; + if (scrollAnimation != null) + { + scrollAnimation.Begin(); + } + } + } + + + private void RightButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is AnimationButton rightButton) + { + foreach (var aNumber in this.NumericButtonStack.Children) + { + if (aNumber is TextBlock findNumber) + { + if (findNumber.Text.Equals(this.CurrentNumberText.Text)) + { + var findIndex = this.NumericButtonStack.Children.IndexOf(findNumber); + if (findIndex < this.NumericButtonStack.Children.Count - 1) + { + this.SelectedValue = int.Parse((this.NumericButtonStack.Children[findIndex + 1] as TextBlock).Text); + this.NumericScroll.ScrollToVerticalOffset((findIndex + 1) * this.CurrentNumberText.Height); + break; + } + } + } + } + } + this.NumericButtonCanvas.Visibility = Visibility.Collapsed; + } + private void LeftButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is AnimationButton LeftButton) + { + foreach (var aNumber in this.NumericButtonStack.Children) + { + if (aNumber is TextBlock findNumber) + { + if (findNumber.Text.Equals(this.CurrentNumberText.Text)) + { + var findIndex = this.NumericButtonStack.Children.IndexOf(findNumber); + if (findIndex > 0) + { + this.SelectedValue = int.Parse((this.NumericButtonStack.Children[findIndex - 1] as TextBlock).Text); + this.NumericScroll.ScrollToVerticalOffset((findIndex -1) * this.CurrentNumberText.Height); + break; + } + } + } + } + } + this.NumericButtonCanvas.Visibility = Visibility.Collapsed; + } + #endregion Event Handlers + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml new file mode 100644 index 0000000..88f0ccc --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml.cs new file mode 100644 index 0000000..39cc24e --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad.xaml.cs @@ -0,0 +1,671 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// NumericPad.xaml에 대한 상호 작용 논리 + /// + public partial class NumericPad : UserControl + { + #region [ Members ] + /// + /// Noraml Bakcground + /// + public static readonly DependencyProperty NormalBrushProperty = + DependencyProperty.Register(nameof(NormalBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("White", new PropertyChangedCallback(OnNormalBrushPropertyChanged))); + /// + /// Touch Down Bakcground + /// + public static readonly DependencyProperty DownBrushProperty = + DependencyProperty.Register(nameof(DownBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("DarkGray")); + /// + /// Cancel Noraml Bakcground + /// + public static readonly DependencyProperty CancelNormalBrushProperty = + DependencyProperty.Register(nameof(CancelNormalBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("DarkRed")); + /// + /// Cancel Down Bakcground + /// + public static readonly DependencyProperty CancelDownBrushProperty = + DependencyProperty.Register(nameof(CancelDownBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("DarkGray")); + /// + /// Ok Noraml Bakcground + /// + public static readonly DependencyProperty OkNormalBrushProperty = + DependencyProperty.Register(nameof(OkNormalBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("LightBlue")); + /// + /// Ok Down Bakcground + /// + public static readonly DependencyProperty OkDownBrushProperty = + DependencyProperty.Register(nameof(OkDownBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("DarkRed")); + /// + /// Ok Disable Bakcground + /// + public static readonly DependencyProperty OkDisableBrushProperty = + DependencyProperty.Register(nameof(OkDisableBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("Gray")); + /// + /// Ok Switch Enable Background + /// + public static readonly DependencyProperty OkSwitchOnBrushProperty = + DependencyProperty.Register(nameof(OkSwitchOnBrush), typeof(string), typeof(NumericPad), new PropertyMetadata("LightBlue")); + /// + /// Click Animation Type + /// + public static readonly DependencyProperty ClickAnimationTypeProperty = + DependencyProperty.Register(nameof(ClickAnimationType), typeof(ButtonAnimationType), typeof(NumericPad), new PropertyMetadata(ButtonAnimationType.None)); + /// + /// Button Text Foreground + /// + public static readonly DependencyProperty TextForegroundProperty = + DependencyProperty.Register(nameof(TextForeground), typeof(string), typeof(NumericPad), new PropertyMetadata("Black", new PropertyChangedCallback(OnTextForegroundPropertyChanged))); + /// + /// Cancel & Back Button Foreground + /// + public static readonly DependencyProperty CancelForegroundProperty = + DependencyProperty.Register(nameof(CancelForeground), typeof(string), typeof(NumericPad), new PropertyMetadata("White")); + /// + /// Input Text + /// + public static readonly DependencyProperty InputTextProperty = + DependencyProperty.Register(nameof(InputText), typeof(string), typeof(NumericPad), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnInputTextPropertyChanged))); + /// + /// Show Text With Mask + /// + public static readonly DependencyProperty ShowTextProperty = + DependencyProperty.Register(nameof(ShowText), typeof(string), typeof(NumericPad), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnShowTextPropertyChanged))); + /// + /// Text Area Visible + /// + public static readonly DependencyProperty TextVisibleProperty = + DependencyProperty.Register(nameof(TextVisibility), typeof(Visibility), typeof(NumericPad), new PropertyMetadata(Visibility.Visible)); + /// + /// Guid Text (Mutil Language) + /// + public static readonly DependencyProperty GuidTextProperty = + DependencyProperty.Register(nameof(GuidText), typeof(List), typeof(NumericPad), new PropertyMetadata(default(List))); + /// + /// Cancel Text + /// + public static readonly DependencyProperty CancelTextProperty = + DependencyProperty.Register(nameof(CancelText), typeof(string), typeof(NumericPad), new PropertyMetadata("Cancel", new PropertyChangedCallback(OnCancelTextPropertyChanged))); + /// + /// Cancel Text (Mutil Language) + /// + public static readonly DependencyProperty CancelLanguageTextProperty = + DependencyProperty.Register(nameof(CancelLanguageText), typeof(List), typeof(NumericPad), new PropertyMetadata(default(List), new PropertyChangedCallback(OnCancelLanguageTextPropertyChanged))); + /// + /// Ok Text + /// + public static readonly DependencyProperty OkTextProperty = + DependencyProperty.Register(nameof(OkText), typeof(string), typeof(NumericPad), new PropertyMetadata("OK", new PropertyChangedCallback(OnOkTextPropertyChanged))); + /// + /// Ok Text (Mutil Language) + /// + public static readonly DependencyProperty OkLanguageTextProperty = + DependencyProperty.Register(nameof(OkLanguageText), typeof(List), typeof(NumericPad), new PropertyMetadata(default(List), new PropertyChangedCallback(OnOkLanguageTextPropertyChanged))); + /// + /// Display Language Type + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(NumericPad), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Ok Button Enabled + /// + public static readonly DependencyProperty OkEnabledProperty = + DependencyProperty.Register(nameof(OkEnabled), typeof(bool), typeof(NumericPad), new PropertyMetadata(false)); + /// + /// Etc Button Text + /// + public static readonly DependencyProperty EtcTextProperty = + DependencyProperty.Register(nameof(EtcText), typeof(string), typeof(NumericPad), new PropertyMetadata("00", new PropertyChangedCallback(OnEtcTextPropertyChanged))); + /// + /// OkCommand (parameter this Object) + /// + public static readonly DependencyProperty OkCommandProperty = + DependencyProperty.Register(nameof(OkCommand), typeof(ICommand), typeof(NumericPad), new UIPropertyMetadata(null)); + /// + /// Cancel Command (parameter this Object) + /// + public static readonly DependencyProperty CancelCommandProperty = + DependencyProperty.Register(nameof(CancelCommand), typeof(ICommand), typeof(NumericPad), new UIPropertyMetadata(null)); + /// + /// OkCommand + /// + public ICommand OkCommand + { + get { return (ICommand)GetValue(OkCommandProperty); } + set { SetValue(OkCommandProperty, value); } + } + /// + /// Cancel Command + /// + public ICommand CancelCommand + { + get { return (ICommand)GetValue(CancelCommandProperty); } + set { SetValue(CancelCommandProperty, value); } + } + /// + /// Text Area Visibility + /// + public Visibility TextVisibility + { + get { return (Visibility)GetValue(TextVisibleProperty); } + set { SetValue(TextVisibleProperty, value); } + } + /// + /// Etc Button Text + /// + public string EtcText + { + get { return (string)GetValue(EtcTextProperty); } + set { SetValue(EtcTextProperty, value); } + } + /// + /// Input Text (Real Data) + /// + public string InputText + { + get { return (string)GetValue(InputTextProperty); } + set { SetValue(InputTextProperty, value); } + } + /// + /// Show Text With Mask + /// + public string ShowText + { + get { return (string)GetValue(ShowTextProperty); } + set { SetValue(ShowTextProperty, value); } + } + /// + /// Guid Text (Multi Language) + /// + public List GuidText + { + get { return (List)GetValue(GuidTextProperty); } + set { SetValue(GuidTextProperty, value); } + } + /// + /// Display Language Type + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Ok Button Enabled + /// + public bool OkEnabled + { + get { return (bool)GetValue(OkEnabledProperty); } + set { SetValue(OkEnabledProperty, value); } + } + /// + /// Cancel Text + /// + public string CancelText + { + get { return (string)GetValue(CancelTextProperty); } + set { SetValue(CancelTextProperty, value); } + } + /// + /// Cancel Text (Multi Language) + /// + public List CancelLanguageText + { + get { return (List)GetValue(CancelLanguageTextProperty); } + set { SetValue(CancelLanguageTextProperty, value); } + } + /// + /// Ok Text + /// + public string OkText + { + get { return (string)GetValue(OkTextProperty); } + set { SetValue(OkTextProperty, value); } + } + /// + /// Ok Text (Multi Language) + /// + public List OkLanguageText + { + get { return (List)GetValue(OkLanguageTextProperty); } + set { SetValue(OkLanguageTextProperty, value); } + } + /// + /// Noraml Bakcground + /// + public string NormalBrush + { + get { return (string)GetValue(NormalBrushProperty); } + set { SetValue(NormalBrushProperty, value); } + } + /// + /// Mouse/Touch Down Bakcground + /// + public string DownBrush + { + get { return (string)GetValue(DownBrushProperty); } + set { SetValue(DownBrushProperty, value); } + } + /// + /// Cancel Button NormalBrush + /// + public string CancelNormalBrush + { + get { return (string)GetValue(CancelNormalBrushProperty); } + set { SetValue(CancelNormalBrushProperty, value); } + } + /// + /// Mouse/Touch Down Bakcground + /// + public string CancelDownBrush + { + get { return (string)GetValue(CancelDownBrushProperty); } + set { SetValue(CancelDownBrushProperty, value); } + } + /// + /// OK Button NormalBrush + /// + public string OkNormalBrush + { + get { return (string)GetValue(OkNormalBrushProperty); } + set { SetValue(OkNormalBrushProperty, value); } + } + /// + /// Mouse/Touch Down Bakcground + /// + public string OkDownBrush + { + get { return (string)GetValue(OkDownBrushProperty); } + set { SetValue(OkDownBrushProperty, value); } + } + /// + /// Ok Button DisableBrush + /// + public string OkDisableBrush + { + get { return (string)GetValue(OkDisableBrushProperty); } + set { SetValue(OkDisableBrushProperty, value); } + } + + /// + /// Ok Switch Enable Background + /// + public string OkSwitchOnBrush + { + get { return (string)GetValue(OkSwitchOnBrushProperty); } + set { SetValue(OkSwitchOnBrushProperty, value); } + } + /// + /// Button Animation Type + /// + public ButtonAnimationType ClickAnimationType + { + get { return (ButtonAnimationType)GetValue(ClickAnimationTypeProperty); } + set { SetValue(ClickAnimationTypeProperty, value); } + } + /// + /// Button Text Foreground + /// + public string TextForeground + { + get { return (string)GetValue(TextForegroundProperty); } + set { SetValue(TextForegroundProperty, value); } + } + /// + /// Cancel Button Foreground + /// + public string CancelForeground + { + get { return (string)GetValue(CancelForegroundProperty); } + set { SetValue(CancelForegroundProperty, value); } + } + #endregion Members + + #region [ Ctor/Etc ] + /// + /// Ctor + /// + public NumericPad() + { + InitializeComponent(); + + foreach (var aElement in this.BaseGrid.Children) + { + if (aElement is AnimationButton aNumberButton) + { + aNumberButton.MouseClicked += NumberButton_MouseClicked; + } + } + } + + #endregion Ctor + + #region [ Methods ] + + private void SetShowText(string _showText) + { + string displayText = _showText; + if (!string.IsNullOrEmpty(displayText)) + { + if (displayText.Length <11) + { + //pass + } + else if (displayText.Length.Equals(11)) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 2 && i < 7) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + else if (displayText.Length < 17) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 5 && i < 14) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + + } + else + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 3 && i < 16) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + string formatedString = string.Empty; + + if (displayText.Length.Equals(11)) + { + formatedString = string.Format("{0}-{1}-{2}" + , displayText.Substring(0, 3) + , displayText.Substring(3, 4) + , displayText.Substring(7, 4)); + } + else if (displayText.Length.Equals(16)) + { + formatedString = string.Format("{0}-{1}-{2}-{3}" + , displayText.Substring(0, 4) + , displayText.Substring(4, 4) + , displayText.Substring(8, 4) + , displayText.Substring(12, 4)); + } + else if (displayText.Length.Equals(20)) + { + formatedString = string.Format("{0}-{1}-{2}-{3}-{4}" + , displayText.Substring(0, 4) + , displayText.Substring(4, 4) + , displayText.Substring(8, 4) + , displayText.Substring(12, 4) + , displayText.Substring(16, 4)); + } + if (!string.IsNullOrEmpty(formatedString)) displayText = formatedString; + + } + if (string.IsNullOrEmpty(displayText)) + { + + this.ShowText = this.GuidText.GetLanguageData(this.DisplayLanguage); + this.OkEnabled = false; + } + else + { + this.ShowText = displayText; + this.OkEnabled = true; + } + } + private double SetEtcTextFontSize(AnimationButton _target, string _text) + { + double result = 20d; + try + { + var textLength = string.IsNullOrEmpty(_text.Trim()) ? 1 : _text.Trim().Length; + var fontSize = 0d; + switch (textLength) + { + case 1: + case 2: + fontSize = 0.7; + break; + case 3: + fontSize = 0.5; + break; + case 4: + fontSize = 0.45; + break; + default: + fontSize = 0.40; + break; + } + result = _target.ActualHeight > 0 ? _target.ActualHeight * fontSize : 20d; + + } + catch + { + result = 20d; + } + return result; + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnNormalBrushPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + ResourceManager.SetBrush(target.ShowDataGrid, "Background", (string)e.NewValue); + } + } + private static void OnTextForegroundPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + ResourceManager.SetBrush(target.ShowData, "Foreground", (string)e.NewValue); + } + } + private static void OnEtcTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + var aElement = target.BaseGrid.FindName("ButtonEtc"); + if (aElement is AnimationButton aNumberButton) + { + //aNumberButton.Text = (string)e.NewValue; + var newFontSize = target.SetEtcTextFontSize(aNumberButton, (string)e.NewValue); + if (!newFontSize.Equals(20)) target.ButtonEtc.TextFontSize = newFontSize; + + } + } + } + private static void OnCancelTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + var aElement = target.BaseGrid.FindName("ButtonCancel"); + if (aElement is AnimationButton aNumberButton) + { + var newFontSize = target.SetEtcTextFontSize(aNumberButton, (string)e.NewValue); + if (newFontSize < target.ButtonOK.TextFontSize) + { + target.ButtonOK.TextFontSize = newFontSize; + target.ButtonCancel.TextFontSize = newFontSize; + } + } + + } + } + private static void OnCancelLanguageTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + var aElement = target.BaseGrid.FindName("ButtonCancel"); + if (aElement is AnimationButton aNumberButton) + { + var newFontSize = target.SetEtcTextFontSize(aNumberButton + ,((List)e.NewValue).GetLanguageData(target.DisplayLanguage)); + if (newFontSize < target.ButtonOK.TextFontSize) + { + target.ButtonOK.TextFontSize = newFontSize; + target.ButtonCancel.TextFontSize = newFontSize; + } + } + } + } + private static void OnOkTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + var aElement = target.BaseGrid.FindName("ButtonOK"); + if (aElement is AnimationButton aNumberButton) + { + var newFontSize = target.SetEtcTextFontSize(aNumberButton, (string)e.NewValue); + if (newFontSize < target.ButtonCancel.TextFontSize) + { + target.ButtonOK.TextFontSize = newFontSize; + target.ButtonCancel.TextFontSize = newFontSize; + } + } + } + } + private static void OnOkLanguageTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + var aElement = target.BaseGrid.FindName("ButtonOK"); + if (aElement is AnimationButton aNumberButton) + { + var newFontSize = target.SetEtcTextFontSize(aNumberButton + , ((List)e.NewValue).GetLanguageData(target.DisplayLanguage)); + if (newFontSize < target.ButtonCancel.TextFontSize) + { + target.ButtonOK.TextFontSize = newFontSize; + target.ButtonCancel.TextFontSize = newFontSize; + } + } + } + } + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad; + foreach (var aElement in target.BaseGrid.Children) + { + if (aElement is AnimationButton aNumberButton + && (aNumberButton.Name.StartsWith("ButtonOK") + || aNumberButton.Name.StartsWith("ButtonCancel")) + ) + { + aNumberButton.DisplayLanguage = (SupportLanguageType)e.NewValue; + } + } + target.SetShowText(target.InputText); + } + } + private static void OnInputTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as NumericPad; + var inputText = (string)e.NewValue; + target.SetShowText(inputText); + } + private static void OnShowTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as NumericPad; + var showText = (string)e.NewValue; + target.ShowData.Text = showText; + + } + private void NumberButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is AnimationButton aNumberButton) + { + switch (aNumberButton.Name) + { + case nameof(ButtonOK): + if (OkCommand != null && OkCommand.CanExecute(this)) + { + OkCommand.Execute(this); + } + break; + case nameof(ButtonCancel): + this.InputText = string.Empty; + if (CancelCommand != null && CancelCommand.CanExecute(this)) + { + CancelCommand.Execute(this); + } + break; + case nameof(ButtonBack): + if (this.InputText != null && this.InputText.Length > 0) + { + if (this.InputText.Equals(this.EtcText)) + { + this.InputText = string.Empty; + } + else + { + this.InputText = this.InputText.Remove(this.InputText.Length - 1, 1); + } + } + break; + default: + this.InputText = this.InputText + aNumberButton.Text; + break; + } + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml new file mode 100644 index 0000000..7993a27 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml.cs new file mode 100644 index 0000000..affd9d3 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/NumericPad2.xaml.cs @@ -0,0 +1,508 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// NumericPad.xaml에 대한 상호 작용 논리 + /// + public partial class NumericPad2 : UserControl + { + #region [ Members ] + /// + /// Noraml Bakcground + /// + public static readonly DependencyProperty NormalBrushProperty = + DependencyProperty.Register(nameof(NormalBrush), typeof(string), typeof(NumericPad2), new PropertyMetadata("White")); + /// + /// Touch Down Bakcground + /// + public static readonly DependencyProperty DownBrushProperty = + DependencyProperty.Register(nameof(DownBrush), typeof(string), typeof(NumericPad2), new PropertyMetadata("DarkGray")); + /// + /// Cancel Noraml Bakcground + /// + public static readonly DependencyProperty CancelNormalBrushProperty = + DependencyProperty.Register(nameof(CancelNormalBrush), typeof(string), typeof(NumericPad2), new PropertyMetadata("DarkRed")); + /// + /// Cancel Down Bakcground + /// + public static readonly DependencyProperty CancelDownBrushProperty = + DependencyProperty.Register(nameof(CancelDownBrush), typeof(string), typeof(NumericPad2), new PropertyMetadata("DarkGray")); + /// + /// Click Animation Type + /// + public static readonly DependencyProperty ClickAnimationTypeProperty = + DependencyProperty.Register(nameof(ClickAnimationType), typeof(ButtonAnimationType), typeof(NumericPad2), new PropertyMetadata(ButtonAnimationType.None)); + /// + /// Button Text Foreground + /// + public static readonly DependencyProperty TextForegroundProperty = + DependencyProperty.Register(nameof(TextForeground), typeof(string), typeof(NumericPad2), new PropertyMetadata("Black")); + /// + /// Cancel & Back Button Foreground + /// + public static readonly DependencyProperty CancelForegroundProperty = + DependencyProperty.Register(nameof(CancelForeground), typeof(string), typeof(NumericPad2), new PropertyMetadata("White")); + /// + /// Input Text + /// + public static readonly DependencyProperty InputTextProperty = + DependencyProperty.Register(nameof(InputText), typeof(string), typeof(NumericPad2), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnInputTextPropertyChanged))); + /// + /// Show Text With Mask + /// + public static readonly DependencyProperty ShowTextProperty = + DependencyProperty.Register(nameof(ShowText), typeof(string), typeof(NumericPad2), new PropertyMetadata(string.Empty)); + /// + /// Text Area Visible + /// + public static readonly DependencyProperty TextVisibleProperty = + DependencyProperty.Register(nameof(TextVisibility), typeof(Visibility), typeof(NumericPad2), new PropertyMetadata(Visibility.Visible)); + /// + /// Guid Text (Mutil Language) + /// + public static readonly DependencyProperty GuidTextProperty = + DependencyProperty.Register(nameof(GuidText), typeof(List), typeof(NumericPad2), new PropertyMetadata(default(List), new PropertyChangedCallback(OnGuidTextPropertyChanged))); + /// + /// Cancel Text + /// + public static readonly DependencyProperty CancelTextProperty = + DependencyProperty.Register(nameof(CancelText), typeof(string), typeof(NumericPad2), new PropertyMetadata("Cancel", new PropertyChangedCallback(OnCancelTextPropertyChanged))); + /// + /// Cancel Text (Mutil Language) + /// + public static readonly DependencyProperty CancelLanguageTextProperty = + DependencyProperty.Register(nameof(CancelLanguageText), typeof(List), typeof(NumericPad2), new PropertyMetadata(default(List), new PropertyChangedCallback(OnCancelLanguageTextPropertyChanged))); + /// + /// Display Language Type + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(NumericPad2), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Max input Length + /// + public static readonly DependencyProperty MaxLengthPropery = + DependencyProperty.Register(nameof(MaxLength), typeof(int), typeof(NumericPad2), new PropertyMetadata(0)); + /// + /// Is Formated Show Text + /// + public static readonly DependencyProperty FormatedPropery = + DependencyProperty.Register(nameof(Formated), typeof(bool), typeof(NumericPad2), new PropertyMetadata(false)); + /// + /// Is Formated Show Text + /// + public bool Formated + { + get { return (bool)GetValue(FormatedPropery); } + set { SetValue(FormatedPropery, value); } + } + /// + /// Max input Length + /// + public int MaxLength + { + get { return (int)GetValue(MaxLengthPropery); } + set { SetValue(MaxLengthPropery, value); } + } + + /// + /// Text Area Visibility + /// + public Visibility TextVisibility + { + get { return (Visibility)GetValue(TextVisibleProperty); } + set { SetValue(TextVisibleProperty, value); } + } + /// + /// Input Text (Real Data) + /// + public string InputText + { + get { return (string)GetValue(InputTextProperty); } + set { SetValue(InputTextProperty, value); } + } + /// + /// Show Text With Mask + /// + public string ShowText + { + get { return (string)GetValue(ShowTextProperty); } + set { SetValue(ShowTextProperty, value); } + } + /// + /// Guid Text (Multi Language) + /// + public List GuidText + { + get { return (List)GetValue(GuidTextProperty); } + set { SetValue(GuidTextProperty, value); } + } + /// + /// Display Language Type + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Cancel Text + /// + public string CancelText + { + get { return (string)GetValue(CancelTextProperty); } + set { SetValue(CancelTextProperty, value); } + } + /// + /// Cancel Text (Multi Language) + /// + public List CancelLanguageText + { + get { return (List)GetValue(CancelLanguageTextProperty); } + set { SetValue(CancelLanguageTextProperty, value); } + } + /// + /// Noraml Bakcground + /// + public string NormalBrush + { + get { return (string)GetValue(NormalBrushProperty); } + set { SetValue(NormalBrushProperty, value); } + } + /// + /// Mouse/Touch Down Bakcground + /// + public string DownBrush + { + get { return (string)GetValue(DownBrushProperty); } + set { SetValue(DownBrushProperty, value); } + } + /// + /// Cancel Button NormalBrush + /// + public string CancelNormalBrush + { + get { return (string)GetValue(CancelNormalBrushProperty); } + set { SetValue(CancelNormalBrushProperty, value); } + } + /// + /// Mouse/Touch Down Bakcground + /// + public string CancelDownBrush + { + get { return (string)GetValue(CancelDownBrushProperty); } + set { SetValue(CancelDownBrushProperty, value); } + } + /// + /// Button Animation Type + /// + public ButtonAnimationType ClickAnimationType + { + get { return (ButtonAnimationType)GetValue(ClickAnimationTypeProperty); } + set { SetValue(ClickAnimationTypeProperty, value); } + } + /// + /// Button Text Foreground + /// + public string TextForeground + { + get { return (string)GetValue(TextForegroundProperty); } + set { SetValue(TextForegroundProperty, value); } + } + /// + /// Cancel Button Foreground + /// + public string CancelForeground + { + get { return (string)GetValue(CancelForegroundProperty); } + set { SetValue(CancelForegroundProperty, value); } + } + #endregion Members + + #region [ Ctor/Etc ] + /// + /// Ctor + /// + public NumericPad2() + { + InitializeComponent(); + + foreach (var aElement in this.BaseGrid.Children) + { + if (aElement is AnimationButton aNumberButton) + { + aNumberButton.MouseClicked += NumberButton_MouseClicked; + } + } + } + + #endregion Ctor + + #region [ Methods ] + + private void SetShowText(string _showText) + { + string displayText = _showText; + if (!string.IsNullOrEmpty(displayText)) + { + if (displayText.Length < 10) + { + //pass + } + else if (displayText.Length.Equals(10) && Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 2 && i < 6) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + else if (displayText.Length.Equals(11) && Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 2 && i < 7) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + else if (displayText.Length < 17 && Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 5 && i < 14) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + + } + else if (Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 3 && i < 16) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + string formatedString = string.Empty; + if (Formated) + { + if (displayText.Length.Equals(10)) + { + formatedString = string.Format("{0}-{1}-{2}" + , displayText.Substring(0, 3) + , displayText.Substring(3, 3) + , displayText.Substring(6, 4)); + } + else if (displayText.Length.Equals(11)) + { + formatedString = string.Format("{0}-{1}-{2}" + , displayText.Substring(0, 3) + , displayText.Substring(3, 4) + , displayText.Substring(7, 4)); + } + else if (displayText.Length.Equals(16)) + { + formatedString = string.Format("{0}-{1}-{2}-{3}" + , displayText.Substring(0, 4) + , displayText.Substring(4, 4) + , displayText.Substring(8, 4) + , displayText.Substring(12, 4)); + } + else if (displayText.Length.Equals(20)) + { + formatedString = string.Format("{0}-{1}-{2}-{3}-{4}" + , displayText.Substring(0, 4) + , displayText.Substring(4, 4) + , displayText.Substring(8, 4) + , displayText.Substring(12, 4) + , displayText.Substring(16, 4)); + } + } + else + { + formatedString = (int.Parse(displayText)).ToString("#,###"); + } + if (!string.IsNullOrEmpty(formatedString)) displayText = formatedString; + this.ShowText = displayText; + } + else + { + this.ShowText = this.GuidText.GetLanguageData(this.DisplayLanguage); + } + } + private double SetEtcTextFontSize(AnimationButton _target, string _text) + { + double result = 20d; + try + { + var textLength = string.IsNullOrEmpty(_text.Trim()) ? 1 : _text.Trim().Length; + var fontSize = 0d; + switch (textLength) + { + case 1: + case 2: + case 3: + case 4: + fontSize = 0.35; + break; + default: + fontSize = 0.3; + break; + } + result = _target.ActualHeight > 0 ? _target.ActualHeight * fontSize : 20d; + + } + catch + { + result = 20d; + } + return result; + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnCancelTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad2; + var aElement = target.BaseGrid.FindName("ButtonCancel"); + if (aElement is AnimationButton aNumberButton) + { + var newFontSize = target.SetEtcTextFontSize(aNumberButton, (string)e.NewValue); + target.ButtonCancel.TextFontSize = newFontSize; + } + + } + } + private static void OnCancelLanguageTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad2; + var aElement = target.BaseGrid.FindName("ButtonCancel"); + if (aElement is AnimationButton aNumberButton) + { + var newFontSize = target.SetEtcTextFontSize(aNumberButton + ,((List)e.NewValue).GetLanguageData(target.DisplayLanguage)); + target.ButtonCancel.TextFontSize = newFontSize; + } + } + } + private static void OnGuidTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as NumericPad2; + target.SetShowText(target.InputText); + } + } + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as NumericPad2; + foreach (var aElement in target.BaseGrid.Children) + { + if (aElement is AnimationButton aNumberButton + && aNumberButton.Name.StartsWith("ButtonCancel")) + { + aNumberButton.DisplayLanguage = (SupportLanguageType)e.NewValue; + } + } + target.SetShowText(target.InputText); + } + } + private static void OnInputTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as NumericPad2; + var inputText = (string)e.NewValue; + target.SetShowText(inputText); + } + private void NumberButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is AnimationButton aNumberButton) + { + switch (aNumberButton.Name) + { + case nameof(ButtonCancel): + this.InputText = string.Empty; + break; + case nameof(ButtonBack): + if (this.InputText != null && this.InputText.Length > 0) + { + this.InputText = this.InputText.Remove(this.InputText.Length - 1, 1); + } + break; + default: + if (!this.MaxLength.Equals(0) ) + { + if (this.InputText.Length < this.MaxLength) + { + this.InputText = this.InputText + aNumberButton.Text; + } + } + else + { + if (!(this.InputText.Length.Equals(0) && aNumberButton.Text.Equals("0"))) + { + this.InputText = this.InputText + aNumberButton.Text; + } + + } + break; + } + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml new file mode 100644 index 0000000..c23bec3 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml.cs new file mode 100644 index 0000000..fe129b5 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/PopupMessage.xaml.cs @@ -0,0 +1,272 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using System.Windows.Threading; + +namespace SPC.Kiosk.Common +{ + /// + /// PopupMessage.xaml에 대한 상호 작용 논리 + /// + public partial class PopupMessage : Window + { + #region [ Members ] + private DispatcherTimer ShowTimer; + /// + /// MessageBox 응답 결과 + /// + public MessageBoxResult BoxResult { get; set; } + /// + /// MessageBox Button 구성 종류 + /// + public MessageBoxButton BoxButton { get; set; } + /// + /// MessageBox Open Animation Type + /// + public OpenCloseAnimationType BoxOpenAnimationType { get; set; } + /// + /// MessageBox Close Animation Type + /// + public OpenCloseAnimationType BoxCloseAnimationType { get; set; } + /// + /// 시작 종료 투명도 + /// + public double StartEndOpacity { get; set; } + /// + /// Animation 시강(초) + /// + public double AnimationSeconds { get; set; } + /// + /// 표시 대기 시간 (초) 0= 무한대 + /// + public double ShowWaitTime { get; set; } + private int ScreenNo { get; set; } = 0; + /// + /// LanguageType Code + /// + public SupportLanguageType LanguageType { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public PopupMessage(SupportLanguageType _languageType, + OpenCloseAnimationType _openAnimationType, + OpenCloseAnimationType _closeAnimationType, + double _startEndOpacity, + double animationSeconds, + double _waitTime) + { + LanguageType = _languageType; + BoxOpenAnimationType = _openAnimationType; + BoxCloseAnimationType = _closeAnimationType; + StartEndOpacity = _startEndOpacity; + AnimationSeconds = animationSeconds; + ShowWaitTime = _waitTime; + InitializeComponent(); + if (ShowWaitTime > 0) + { + ShowTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(ShowWaitTime), + IsEnabled = true + }; + ShowTimer.Tick += ShowTimer_Tick; + } + InitializeComponent(); + BaseInit(); + this.Loaded += PopupMessage_Loaded; + + } + #endregion Ctor + + #region [ Methods ] + private void BaseInit() + { + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + this.Yes_Button.DisplayLanguage = LanguageType; + this.No_Button.DisplayLanguage = LanguageType; + this.Cancel_Button.DisplayLanguage = LanguageType; + this.Cancel_Button.DisplayLanguage = LanguageType; + this.Message1.DisplayLanguage = LanguageType; + this.Message2.DisplayLanguage = LanguageType; + this.Yes_Button.MouseClicked += Yes_Button_MouseClicked; + this.No_Button.MouseClicked += No_Button_MouseClicked; + this.Cancel_Button.MouseClicked += Cancel_Button_MouseClicked; + + this.IsEnabled = false; + } + private void OpenWindow() + { + if (!BoxOpenAnimationType.Equals(OpenCloseAnimationType.None)) + { + var animationVector = BoxOpenAnimationType.Equals(OpenCloseAnimationType.GotoLeft) || BoxOpenAnimationType.Equals(OpenCloseAnimationType.GotoRight) + ? this.FrameBase.Width : this.FrameBase.Height; + + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , BoxOpenAnimationType + , animationVector + , StartEndOpacity + , AnimationSeconds); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + else + { + if (ShowTimer != null) ShowTimer.Start(); + this.IsEnabled = true; + } + } + private void CloseWindow() + { + if (ShowTimer != null) + { + ShowTimer.Stop(); + ShowTimer.Tick -= ShowTimer_Tick; + ShowTimer = null; + } + this.Loaded -= PopupMessage_Loaded; + this.Yes_Button.MouseClicked -= Yes_Button_MouseClicked; + this.No_Button.MouseClicked -= No_Button_MouseClicked; + this.Cancel_Button.MouseClicked -= Cancel_Button_MouseClicked; + if (!BoxCloseAnimationType.Equals(OpenCloseAnimationType.None)) + { + var animationVector = BoxCloseAnimationType.Equals(OpenCloseAnimationType.GotoLeft) || BoxCloseAnimationType.Equals(OpenCloseAnimationType.GotoRight) + ? this.FrameBase.Width : this.FrameBase.Height; + + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , BoxCloseAnimationType + , animationVector + , StartEndOpacity + , AnimationSeconds); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + else + { + this.Close(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void ShowTimer_Tick(object sender, EventArgs e) + { + ShowTimer.Stop(); + BoxResult = MessageBoxResult.None; + CloseWindow(); + } + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (ShowTimer != null) ShowTimer.Start(); + this.IsEnabled = true; + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.Close(); + } + + + private void PopupMessage_Loaded(object sender, RoutedEventArgs e) + { + if (DesignerProperties.GetIsInDesignMode(this)) + { + if (ShowTimer != null) + { + ShowTimer.Stop(); + ShowTimer.Tick -= ShowTimer_Tick; + ShowTimer = null; + } + this.Close(); + } + else + { + OpenWindow(); + } + } + + private void Cancel_Button_MouseClicked(object sender, RoutedEventArgs e) + { + if (ShowTimer != null) ShowTimer.Stop(); + switch (BoxButton) + { + case MessageBoxButton.OKCancel: + case MessageBoxButton.YesNoCancel: + BoxResult = MessageBoxResult.Cancel; + break; + default: + BoxResult = MessageBoxResult.None; + break; + } + CloseWindow(); + } + + private void No_Button_MouseClicked(object sender, RoutedEventArgs e) + { + if (ShowTimer != null) ShowTimer.Stop(); + switch (BoxButton) + { + case MessageBoxButton.YesNo: + case MessageBoxButton.YesNoCancel: + BoxResult = MessageBoxResult.No; + break; + default: + BoxResult = MessageBoxResult.None; + break; + } + CloseWindow(); + } + + private void Yes_Button_MouseClicked(object sender, RoutedEventArgs e) + { + if (ShowTimer != null) ShowTimer.Stop(); + switch (BoxButton) + { + case MessageBoxButton.OK: + case MessageBoxButton.OKCancel: + BoxResult = MessageBoxResult.OK; + break; + case MessageBoxButton.YesNo: + case MessageBoxButton.YesNoCancel: + BoxResult = MessageBoxResult.Yes; + break; + default: + BoxResult = MessageBoxResult.None; + break; + } + CloseWindow(); + } + + + + + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml new file mode 100644 index 0000000..b6f6ab7 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml.cs new file mode 100644 index 0000000..dcc3fb7 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/SignPad.xaml.cs @@ -0,0 +1,409 @@ +using Cosmos.Common; +using Cosmos.ServiceProvider; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Threading; + +namespace SPC.Kiosk.Common +{ + /// + /// SignPad.xaml에 대한 상호 작용 논리 + /// + public partial class SignPad : UserControl + { + + #region [ Member ] + /// + /// Brush Color + /// + public static readonly DependencyProperty BrushColorProperty = + DependencyProperty.Register(nameof(BrushColor), typeof(System.Windows.Media.Color), typeof(SignPad), new PropertyMetadata(Colors.Black, new PropertyChangedCallback(OnBrushColorPropertyChanged))); + /// + /// Brush Size + /// + public static readonly DependencyProperty BrushSizeProperty = + DependencyProperty.Register(nameof(BrushSize), typeof(double), typeof(SignPad), new PropertyMetadata(5d, new PropertyChangedCallback(OnBrushSizePropertyChanged))); + /// + /// Background Color + /// + public static readonly DependencyProperty BackgroundColorProperty = + DependencyProperty.Register(nameof(BackgroundColor), typeof(System.Windows.Media.Color), typeof(SignPad), new PropertyMetadata(Colors.White, new PropertyChangedCallback(OnBackgroundColorPropertyChanged))); + /// + /// Saved File + /// + public static readonly DependencyProperty SavedFileProperty = + DependencyProperty.Register(nameof(SavedFile), typeof(string), typeof(SignPad), new PropertyMetadata(string.Empty)); + /// + /// SignData + /// + public static readonly DependencyProperty SignDataProperty = + DependencyProperty.Register(nameof(SignData), typeof(string), typeof(SignPad), new PropertyMetadata(string.Empty)); + /// + /// SignPoints + /// + public static readonly DependencyProperty SignPointsProperty = + DependencyProperty.Register(nameof(SignPoints), typeof(long), typeof(SignPad), new PropertyMetadata(0L, new PropertyChangedCallback(OnSignPointsPropertyChanged))); + /// + /// Useable Sign + /// + public static readonly DependencyProperty UseableSignProperty = + DependencyProperty.Register(nameof(UseableSign), typeof(bool), typeof(SignPad), new PropertyMetadata(false)); + /// + /// TimeOutSeconds + /// + public static readonly DependencyProperty TimeOutSecondsProperty = + DependencyProperty.Register(nameof(TimeOutSeconds), typeof(double), typeof(SignPad), new PropertyMetadata(0d, new PropertyChangedCallback(OnTimeOutSecondsPropertyChanged))); + /// + /// SignReset + /// + public static readonly DependencyProperty SignResetProperty = + DependencyProperty.Register(nameof(SignReset), typeof(bool), typeof(SignPad), new PropertyMetadata(false, new PropertyChangedCallback(OnSignResetPropertyChanged))); + /// + /// SignEnd + /// + public static readonly DependencyProperty SignEndProperty = + DependencyProperty.Register(nameof(SignEnd), typeof(bool), typeof(SignPad), new PropertyMetadata(false, new PropertyChangedCallback(OnSignEndPropertyChanged))); + /// + /// Brush Color + /// + public System.Windows.Media.Color BrushColor + { + get { return (System.Windows.Media.Color)GetValue(BrushColorProperty); } + set { SetValue(BrushColorProperty, value); } + } + /// + /// Brush Size + /// + public double BrushSize + { + get { return (double)GetValue(BrushSizeProperty); } + set { SetValue(BrushSizeProperty, value); } + } + + /// + /// Background Color + /// + public System.Windows.Media.Color BackgroundColor + { + get { return (System.Windows.Media.Color)GetValue(BackgroundColorProperty); } + set { SetValue(BackgroundColorProperty, value); } + } + + /// + /// Saved File + /// + public string SavedFile + { + get { return (string)GetValue(SavedFileProperty); } + set { SetValue(SavedFileProperty, value); } + } + /// + /// Sign Data + /// + public string SignData + { + get { return (string)GetValue(SignDataProperty); } + set { SetValue(SignDataProperty, value); } + } + /// + /// SignPoints + /// + public long SignPoints + { + get { return (long)GetValue(SignPointsProperty); } + set { SetValue(SignPointsProperty, value); } + } + /// + /// Useable Sign + /// + public bool UseableSign + { + get { return (bool)GetValue(UseableSignProperty); } + set { SetValue(UseableSignProperty, value); } + } + /// + /// TimeOutSeconds + /// + public double TimeOutSeconds + { + get { return (double)GetValue(TimeOutSecondsProperty); } + set { SetValue(TimeOutSecondsProperty, value); } + } + /// + /// SignReset + /// + public bool SignReset + { + get { return (bool)GetValue(SignResetProperty); } + set { SetValue(SignResetProperty, value); } + } + /// + /// SignEnd + /// + public bool SignEnd + { + get { return (bool)GetValue(SignEndProperty); } + set { SetValue(SignEndProperty, value); } + } + private DateTime LastAccessTime { get; set; } = DateTime.Now; + private DispatcherTimer SignTimer; + #endregion + #region [ Ctor / Etc] + public SignPad() + { + try + { + InitializeComponent(); + StrokeCollectionChangedEventHandler strokes_StrokesChanged = Strokes_StrokesChanged; + inkCanvas.Strokes.StrokesChanged += strokes_StrokesChanged; + inkCanvas.DefaultDrawingAttributes.Color = BrushColor; + inkCanvas.DefaultDrawingAttributes.Height = BrushSize; + inkCanvas.DefaultDrawingAttributes.Width = BrushSize; + inkCanvas.DefaultDrawingAttributes.IgnorePressure = false; + inkCanvas.DefaultDrawingAttributes.IsHighlighter = false; + inkCanvas.DefaultDrawingAttributes.StylusTip = StylusTip.Ellipse; + inkCanvas.Background = new SolidColorBrush(BackgroundColor); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void SignPad_Unloaded(object sender, RoutedEventArgs e) + { + if (this.SignTimer != null) + { + SignTimer.Stop(); + SignTimer.Tick -= SignTimer_Tick; + SignTimer = null; + } + } + #endregion + + #region [ Methods ] + private void TimerEnable() + { + if (DesignerProperties.GetIsInDesignMode(this)) return; + + if (this.SignTimer != null) + { + LastAccessTime = DateTime.Now; + this.SignTimer.Start(); + } + else + { + this.SignTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1), + }; + SignTimer.Tick += SignTimer_Tick; + LastAccessTime = DateTime.Now; + SignTimer.Start(); + } + } + private void TimerDisable() + { + if (this.SignTimer != null) + { + this.SignTimer.Stop(); + LastAccessTime = DateTime.Now; + } + } + + private void ConvertToBitmapSource() + { + try + { + var width = CommonValue.SignWidth; + var height = CommonValue.SignHeight; + var target = new RenderTargetBitmap((int)(inkCanvas.RenderSize.Width), (int)(inkCanvas.RenderSize.Height), 96, 96, PixelFormats.Default); + var brush = new VisualBrush(inkCanvas); + + var visual = new DrawingVisual(); + var drawingContext = visual.RenderOpen(); + + + drawingContext.DrawRectangle(brush, null, new Rect(new System.Windows.Point(0, 0), + new System.Windows.Point(inkCanvas.RenderSize.Width, inkCanvas.RenderSize.Height))); + + drawingContext.Close(); + target.Render(visual); + + var bitmapSource = (BitmapSource)target.Clone(); + var memoryStream = new MemoryStream(); + var bmpBitmapEncoder = new BmpBitmapEncoder(); + var bitmapFrame = BitmapFrame.Create(bitmapSource); + bmpBitmapEncoder.Frames.Add(bitmapFrame); + bmpBitmapEncoder.Save(memoryStream); + using (var bitMap = new Bitmap(memoryStream)) + { + + var targetSize = new System.Drawing.Size(width, height); + var sizedImage = new Bitmap(bitMap, targetSize); + var targetRectangle = new System.Drawing.Rectangle(0, 0, width, height); + var lastImg = sizedImage.Clone(targetRectangle, System.Drawing.Imaging.PixelFormat.Format1bppIndexed); + + var filePath = ResourceManager.SignDataPath; + if (!Directory.Exists(filePath)) Directory.CreateDirectory(filePath); + var savedFile = System.IO.Path.Combine(filePath, CommonValue.SignFileName); + lastImg.Save(savedFile, System.Drawing.Imaging.ImageFormat.Bmp); + if (File.Exists(savedFile)) + { + var sManager = new SManager(); + var m_cSignPad = (ISignPadUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_SIGNPAD); + var signData = string.Empty; + if (m_cSignPad.GetSign_BmpToData(savedFile, ref signData)) + { + SignData = signData; + SavedFile = savedFile; + } + m_cSignPad = null; + sManager = null; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ConvertToBitmapSource()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + } + private void CheckSignOK(long strokePoints) + { + if (strokePoints < CommonValue.SingPointsMin) + { + UseableSign = false; + } + else if (strokePoints >= CommonValue.SingPointsMin && strokePoints < CommonValue.SingPointsMax) + { + UseableSign = true; + } + else + { + UseableSign = false; + } + + + } + #endregion + + #region [ Event Handlers ] + private void SignTimer_Tick(object sender, EventArgs e) + { + if ((DateTime.Now - LastAccessTime) > TimeSpan.FromSeconds(TimeOutSeconds)) + { + TimerDisable(); + if (UseableSign) + { + ConvertToBitmapSource(); + inkCanvas.Strokes.Clear(); + } + else + { + TimerEnable(); + } + } + } + private static void OnSignEndPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + if (e.NewValue is bool newValue && newValue) + { + target.TimerDisable(); + target.ConvertToBitmapSource(); + target.inkCanvas.Strokes.Clear(); + target.SignEnd = false; + } + } + } + + private static void OnSignResetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + if (e.NewValue is bool newValue && newValue) + { + target.LastAccessTime = DateTime.Now; + target.inkCanvas.Strokes.Clear(); + target.SignReset = false; + } + } + } + + private static void OnTimeOutSecondsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + if (e.NewValue is double newTimeout && newTimeout > 0 ) + { + target.TimerEnable(); + + } + } + } + + private static void OnBrushColorPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + target.inkCanvas.DefaultDrawingAttributes.Color = (System.Windows.Media.Color)e.NewValue; + } + } + private static void OnBackgroundColorPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + target.inkCanvas.Background = new SolidColorBrush((System.Windows.Media.Color)e.NewValue); + } + } + private static void OnBrushSizePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + target.inkCanvas.DefaultDrawingAttributes.Height = (double)e.NewValue < 1 ? 1 : (double)e.NewValue; + target.inkCanvas.DefaultDrawingAttributes.Width = (double)e.NewValue < 1 ? 1 : (double)e.NewValue; + } + } + private static void OnSignPointsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SignPad target) + { + if (e.NewValue is long strokePoints) + { + target.CheckSignOK(strokePoints); + } + } + } + + private void Strokes_StrokesChanged(object sender, StrokeCollectionChangedEventArgs e) + { + LastAccessTime = DateTime.Now; + var signPoints = 0L; + foreach (var aStroke in inkCanvas.Strokes) + { + signPoints += aStroke.StylusPoints.Count; + } + SignPoints = signPoints; + } + #endregion + + } + +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml b/Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml new file mode 100644 index 0000000..eeefaa6 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml @@ -0,0 +1,30 @@ + + + + + + diff --git a/Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml.cs b/Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml.cs new file mode 100644 index 0000000..5a05ebd --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Controls/WaitForm.xaml.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Forms; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Media.Animation; +using System.Threading.Tasks; +using System.Windows.Threading; +using System.Threading; +using System.ComponentModel; + +namespace SPC.Kiosk.Common +{ + /// + /// WaitForm.xaml에 대한 상호 작용 논리 + /// + public partial class WaitForm : Window + { + #region [ Members ] + #endregion Members + + #region [ Ctor / Etc ] + /// + /// Ctor + /// + public WaitForm() + { + InitializeComponent(); + } + + #endregion Ctor / Etc + + #region [ Event Handlers ] + + #endregion Event Handlers + + + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Converters/CommonConverters.cs b/Kiosk/Common/SPC.Kiosk.Common/Converters/CommonConverters.cs new file mode 100644 index 0000000..04e782c --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Converters/CommonConverters.cs @@ -0,0 +1,516 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Data; + +namespace SPC.Kiosk.Common +{ + /// + /// Double 값을 Percent에 따라 변환 + /// + public class DoublePercentValue : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + double result = double.NaN; + try + { + if (value is double getValue) + { + if (parameter != null && getValue > 0 ) + { + result = getValue * double.Parse(parameter.ToString()) / 100; + } + else + { + result = getValue; + } + } + } + catch + { + result = double.NaN; + } + return result; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + /// + /// bool 값을 Visibility 값으로 변환 + /// + public class BoolToVisibility : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + Visibility result = Visibility.Collapsed; + try + { + if (value is bool getValue) + { + result = getValue ? Visibility.Visible : Visibility.Collapsed; + } + } + catch + { + result = Visibility.Collapsed; + } + return result; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + public class BoolToUnvisibility : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + Visibility result = Visibility.Collapsed; + try + { + if (value is bool getValue) + { + result = getValue ? Visibility.Collapsed : Visibility.Visible; + } + } + catch + { + result = Visibility.Collapsed; + } + return result; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + /// + /// 숫자 을 문자열로 + /// + public class NumericToString : IValueConverter + { + object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + string result = string.Empty; + try + { + if (value is double getValue) + { + if (parameter is string getFormetString) + { + result = getValue.ToString(getFormetString); + } + else + { + result = getValue.ToString(); + } + } + else if (value is int getInt) + { + if (parameter is string getFormetString ) + { + result = getInt.ToString(getFormetString); + } + else + { + result = getInt.ToString(); + } + } + else if (value is long getlong) + { + if (parameter is string getFormetString) + { + result = getlong.ToString(getFormetString); + } + else + { + result = getlong.ToString(); + } + } + } + catch + { + result = string.Empty; + } + return result; + } + + object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Numeric To Visibility 값으로 변환 + /// + public class NumericExistToVisibility : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + Visibility result = Visibility.Collapsed; + try + { + double checkValue = 0d; + try + { + checkValue = double.Parse(value.ToString()); + } + catch + { + checkValue = 0d; + } + bool setValue = false; + try + { + + setValue = bool.Parse(parameter.ToString()); + + } + catch + { + setValue = true; + } + setValue = checkValue > 0d ? setValue : !setValue; + result = setValue ? Visibility.Visible : Visibility.Collapsed; + } + catch + { + result = Visibility.Collapsed; + } + return result; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + /// + /// Numeric To Bool 값으로 변환 + /// + public class NumericExistToBool : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + bool result = false; + try + { + double checkValue = 0d; + try + { + checkValue = double.Parse(value.ToString()); + } + catch + { + checkValue = 0d; + } + bool setValue = false; + try + { + + setValue = bool.Parse(parameter.ToString()); + + } + catch + { + setValue = true; + } + result = checkValue > 0d ? setValue : !setValue; + } + catch + { + result = false; + } + return result; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Langeuage Code To Multi Language Data + /// + public class CodeToMultiLanguage : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + List result = null; + try + { + if (parameter is string _parameter) + { + if (_parameter.Equals(string.Empty)) + { + result = null; + } + else + { + result = Languages.GetMessages(_parameter); + } + } + else + { + result = null; + } + } + catch + { + result = null; + } + return result; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Langeuage Code To Multi Language Data(자동계산 혹은 바코드계산) + /// + public class CodeToMultiLanguageAutoOrBarcode : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + List result = null; + var opt810 = values[0]; + var opt811 = values[1]; + + try + { + if (parameter is string _parameter) + { + // OPT810값이 0이고 OPT811값이 1인경우(바코드계산) + if (opt810.ToString() == "0" + && opt811.ToString() == "1") + { + result = new List() { new M_Language { LanguageData = "바코드 계산", Type = SupportLanguageType.ko } }; + } + else if (_parameter.Equals(string.Empty)) + { + result = null; + } + else + { + result = Languages.GetMessages(_parameter); + } + } + else + { + result = null; + } + } + catch + { + result = null; + } + return result; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Pos Option Value값에 따라 Barcode 하단 버튼 및 텍스트 Visible처리 + /// + public class PosOptionValuesBarcodeToVisibility : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + var opt810 = values[0]; + var opt811 = values[1]; + + if (parameter?.ToString() == "bottomButtonText") + { + if (opt810.ToString() == "0" + && opt811.ToString() == "1") + { + return Visibility.Collapsed; + } + } + else if (parameter?.ToString() == "toggleGrid") + { + if (opt810.ToString() == "0" + && opt811.ToString() == "0") + { + return Visibility.Collapsed; + } + } + + return Visibility.Visible; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Pos Option Value값에 따라 Barcode이미지 Margin처리 + /// + public class PosOptionValuesBarcodeToMargin : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + var opt810 = values[0]; + var opt811 = values[1]; + + if (parameter?.ToString() == "image") + { + if (opt810.ToString() == "0" + && opt811.ToString() == "1") + { + // 센터정렬 + return new Thickness(0, 71 + 50, 0, 0); + } + } + else if (parameter?.ToString() == "textBlock") + { + if (opt810.ToString() == "0" + && opt811.ToString() == "1") + { + // 센터정렬 + return new Thickness(57, 245 + 50, 0, 0); + } + } + + return parameter?.ToString() == "image" ? new Thickness(0, 71, 0, 0) : new Thickness(57, 245, 0, 0); + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// Point Saving Popup우측화면 Visible처리 + /// + public class PointSavingAndStoreAgreeViewToVisibility : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + var pointSaving = values[0]; + var storeAgreeView = values[1]; + + if (pointSaving?.ToString().ToLower() == "true") + { + return Visibility.Collapsed; + } + else if (pointSaving?.ToString().ToLower() == "false" + && storeAgreeView?.ToString().ToLower() == "true") + { + return Visibility.Collapsed; + } + + return Visibility.Visible; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + /// + /// string 값을 Visibility 값으로 변환 + /// + public class StringToVisibility : IValueConverter + { + /// + /// Convert + /// + /// + /// + /// + /// + /// + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + try + { + if (value?.ToString() == "0") + { + return Visibility.Collapsed; + } + } + catch + { + return Visibility.Collapsed; + } + + return Visibility.Visible; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/AiScannerProcess.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/AiScannerProcess.cs new file mode 100644 index 0000000..2dced9f --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/AiScannerProcess.cs @@ -0,0 +1,97 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; + +namespace SPC.Kiosk.Common +{ + public static class AiScannerProcess + { + [DllImport("user32.dll")] + static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); + + [DllImport("user32.dll")] + private static extern IntPtr FindWindow(string SClassName, string SWindowName); + [DllImport("user32.dll")] + private static extern bool SetForegroundWindow(IntPtr findname); + [DllImport("user32.dll")] + private static extern bool ShowWindowAsync(IntPtr findname, int howShow); + [DllImport("user32.dll")] + private static extern bool BringWindowToTop(IntPtr findname); + [DllImport("user32.dll")] + static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); + + static readonly IntPtr HWND_TOPMOST = new IntPtr(-1); + const UInt32 SWP_NOSIZE = 0x0001; + const UInt32 SWP_NOMOVE = 0x0002; + const UInt32 SWP_SHOWWINDOW = 0x0040; + + private static Process AiScannerExe = null; + + public static bool Excuted + { + get + { + if (AiScannerExe != null) + { + return !AiScannerExe.HasExited; + } + else + { + return false; + } + } + } + + public static void ExcuteAiScanner(IntPtr _openner) + { + try + { + if (Excuted || AiScannerExe != null) StopAiScanner(); + var fileName = Path.Combine(ResourceManager.BinPath, CommonValue.AiScannerPath); + if (File.Exists(fileName)) + { + var newStartInfo = new ProcessStartInfo + { + FileName = fileName, + UseShellExecute = false, + //WindowStyle= ProcessWindowStyle.Hidden, + ErrorDialog = false, + CreateNoWindow = true, + }; + AiScannerExe = new Process(); + AiScannerExe.StartInfo = newStartInfo; + if (AiScannerExe.Start()) + { + AiScannerExe.WaitForInputIdle(500); + SetParent(AiScannerExe.MainWindowHandle, _openner); + //AiScannerExe.StartInfo.WindowStyle = ProcessWindowStyle.Normal; + } + } + else + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "AiScannerProcess", "ExcuteAiScanner()", "File Not Exists !!", string.Format("\nFile Path: {0}", fileName)); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "AiScannerProcess", "ExcuteAiScanner()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + public static void StopAiScanner() + { + if (Excuted) + { + AiScannerExe.Kill(); + AiScannerExe.WaitForExit(); + AiScannerExe.Dispose(); + AiScannerExe = null; + } + else + { + if (AiScannerExe != null) AiScannerExe = null; + } + } + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/Animations.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/Animations.cs new file mode 100644 index 0000000..aead5b9 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/Animations.cs @@ -0,0 +1,577 @@ +using System; +using System.Collections.Generic; +using System.Drawing.Printing; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Animation; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// Animation Actions + /// + public static class Animations + { + /// + /// ScrollAnimation for + /// + /// + /// + /// + /// + /// + /// + public static Storyboard GetScrollAnimation(FrameworkElement _animationTarget, Orientation _animationType, double _fromValue, double _toValue, double _sconds = 0.3) + { + Storyboard resultStoryboard = null; + try + { + resultStoryboard = new Storyboard(); + var totalDuration = new Duration(TimeSpan.FromSeconds(_sconds)); + var scrollAnimation = new DoubleAnimation(_fromValue, _toValue, totalDuration); + Storyboard.SetTarget(scrollAnimation, _animationTarget); + Storyboard.SetTargetProperty(scrollAnimation, new PropertyPath(_animationType.Equals(Orientation.Horizontal) ? "HorizontalOffset" : "VerticalOffset")); + resultStoryboard.Children.Add(scrollAnimation); + } + catch + { + resultStoryboard = null; + } + return resultStoryboard; + } + /// + /// Create MoveAnimation with Opacity + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static List GetMoveAnimation(FrameworkElement _animationTarget, OpenCloseAnimationType _animationType, double _fromValue, double _toValue, double _opacityFrom, double _opacityTo, double _sconds) + { + List resultAnimation = null; + try + { + resultAnimation = new List(); + var totalDuration = new Duration(TimeSpan.FromSeconds(_sconds)); + var opacityAnimation = new DoubleAnimation(_opacityFrom, _opacityTo, totalDuration); + //var centerX = _animationTarget.ActualWidth / 2; + //var centerY = _animationTarget.ActualHeight / 2; + var centerX = _animationTarget.Width / 2; + var centerY = _animationTarget.Height / 2; + Storyboard.SetTarget(opacityAnimation, _animationTarget); + Storyboard.SetTargetProperty(opacityAnimation, new PropertyPath("Opacity")); + resultAnimation.Add(opacityAnimation); + + switch (_animationType) + { + case OpenCloseAnimationType.GotoLeft: + case OpenCloseAnimationType.GotoRight: + _animationTarget.RenderTransform = new TranslateTransform(0, 0); + var addAnimation = new DoubleAnimation(_fromValue, _toValue, totalDuration); + Storyboard.SetTarget(addAnimation, _animationTarget); + Storyboard.SetTargetProperty(addAnimation, new PropertyPath("RenderTransform.X")); + resultAnimation.Add(addAnimation); + break; + case OpenCloseAnimationType.GotoUp: + case OpenCloseAnimationType.GotoDown: + _animationTarget.RenderTransform = new TranslateTransform(0, 0); + var add2Animation = new DoubleAnimation(_fromValue, _toValue, totalDuration); + Storyboard.SetTarget(add2Animation, _animationTarget); + Storyboard.SetTargetProperty(add2Animation, new PropertyPath("RenderTransform.Y")); + resultAnimation.Add(add2Animation); + break; + case OpenCloseAnimationType.FullSizeDown: + case OpenCloseAnimationType.FullSizeUp: + _animationTarget.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(_animationType.Equals(OpenCloseAnimationType.FullSizeUp) ? 0 : 1 + , _animationType.Equals(OpenCloseAnimationType.FullSizeUp) ? 1 : 0 + , totalDuration); + var flipYAni = new DoubleAnimation(_animationType.Equals(OpenCloseAnimationType.FullSizeUp) ? 0 : 1 + , _animationType.Equals(OpenCloseAnimationType.FullSizeUp) ? 1 : 0 + , totalDuration); + Storyboard.SetTarget(flipXAni, _animationTarget); + Storyboard.SetTarget(flipYAni, _animationTarget); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + Storyboard.SetTargetProperty(flipYAni, new PropertyPath("RenderTransform.ScaleY")); + resultAnimation.Add(flipXAni); + resultAnimation.Add(flipYAni); + break; + } + } + catch + { + resultAnimation = null; + } + return resultAnimation; + } + /// + /// Close and Open Animation + /// + /// + /// + /// + /// + /// + /// + public static Storyboard GetOpenAndCloseAnimation(FrameworkElement _closeTarget, FrameworkElement _openTarget, OpenCloseAnimationType _animationType, double _objectSize, double _sconds = 0.5) + { + return GetOpenAndCloseAnimation(_closeTarget, _openTarget, _animationType, _objectSize, 1, _sconds); + } + /// + /// Close and Open Animation + /// + /// + /// + /// + /// + /// + /// + public static Storyboard GetOpenAndCloseAnimation(FrameworkElement _closeTarget, FrameworkElement _openTarget, OpenCloseAnimationType _animationType, double _objectSize, double _opacityValue , double _sconds = 0.5) + { + Storyboard resultStoryboard = null; + try + { + resultStoryboard = new Storyboard(); + _openTarget.Width = _objectSize; + _openTarget.Visibility = Visibility.Visible; + _closeTarget.IsEnabled = false; + double toValue = _objectSize; + switch (_animationType) + { + case OpenCloseAnimationType.GotoLeft: + case OpenCloseAnimationType.GotoUp: + toValue = toValue * -1; + break; + } + foreach (var aAnimation in GetMoveAnimation(_closeTarget, _animationType, 0, toValue, 1, _opacityValue, _sconds)) resultStoryboard.Children.Add(aAnimation); + double fromValue = _objectSize; + switch (_animationType) + { + case OpenCloseAnimationType.GotoRight: + case OpenCloseAnimationType.GotoDown: + fromValue = fromValue * -1; + break; + } + foreach (var aAnimation in GetMoveAnimation(_openTarget, _animationType, fromValue, 0, _opacityValue, 1, _sconds)) resultStoryboard.Children.Add(aAnimation); + } + catch + { + resultStoryboard = null; + } + return resultStoryboard; + } + /// + /// Open Animation + /// + /// + /// + /// + /// + /// + public static Storyboard GetOpenAnimation(FrameworkElement _animationTarget, OpenCloseAnimationType _animationType, double _objectSize, double _sconds = 0.5) + { + return GetOpenAnimation( _animationTarget, _animationType, _objectSize, 0, _sconds ); + } + /// + /// Open Animation + /// + /// + /// + /// + /// + /// + public static Storyboard GetOpenAnimation(FrameworkElement _animationTarget, OpenCloseAnimationType _animationType, double _objectSize, double _opacityValue, double _sconds = 0.5) + { + Storyboard resultStoryboard = null; + try + { + resultStoryboard = new Storyboard(); + switch (_animationType) + { + case OpenCloseAnimationType.GotoLeft: + case OpenCloseAnimationType.GotoRight: + _animationTarget.Width = _objectSize; + break; + case OpenCloseAnimationType.GotoUp: + case OpenCloseAnimationType.GotoDown: + _animationTarget.Height = _objectSize; + break; + } + _animationTarget.Visibility = Visibility.Visible; + double fromValue = _objectSize; + switch (_animationType) + { + case OpenCloseAnimationType.GotoRight: + case OpenCloseAnimationType.GotoDown: + fromValue = fromValue * -1; + break; + } + foreach (var aAnimation in GetMoveAnimation(_animationTarget, _animationType, fromValue, 0, _opacityValue, 1, _sconds)) resultStoryboard.Children.Add(aAnimation); + } + catch + { + resultStoryboard = null; + } + return resultStoryboard; + } + /// + /// Close Animation + /// + /// + /// + /// + /// + /// + public static Storyboard GetCloseAnimation(FrameworkElement _animationTarget, OpenCloseAnimationType _animationType, double _objectSize, double _sconds = 0.5) + { + return GetCloseAnimation(_animationTarget, _animationType, _objectSize, 0, _sconds); + } + /// + /// Close Animation + /// + /// + /// + /// + /// + /// + public static Storyboard GetCloseAnimation(FrameworkElement _animationTarget, OpenCloseAnimationType _animationType, double _objectSize, double _opacityValue, double _sconds = 0.5) + { + Storyboard resultStoryboard = null; + try + { + resultStoryboard = new Storyboard(); + switch (_animationType) + { + case OpenCloseAnimationType.GotoLeft: + case OpenCloseAnimationType.GotoRight: + _animationTarget.Width = _objectSize; + break; + case OpenCloseAnimationType.GotoUp: + case OpenCloseAnimationType.GotoDown: + _animationTarget.Height = _objectSize; + break; + } + _animationTarget.IsEnabled = false; + double toValue = _objectSize; + switch (_animationType) + { + case OpenCloseAnimationType.GotoLeft: + case OpenCloseAnimationType.GotoUp: + toValue = toValue * -1; + break; + } + foreach (var aAnimation in GetMoveAnimation(_animationTarget, _animationType, 0, toValue, 1, _opacityValue, _sconds)) resultStoryboard.Children.Add(aAnimation); + } + catch + { + resultStoryboard = null; + } + return resultStoryboard; + } + /// + /// Get a Shutter Animation Storyboard + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static Storyboard GetShutterAnimation(FrameworkElement _animationTarget, ShutterAnchor _directionType, double _fromValue, double _toValue,double _opacityFrom, double _opacityTo, double _sconds=0.5) + { + Storyboard gridAnimation = null; + try + { + var targetType = _animationTarget.GetType(); + _animationTarget.RenderTransform = new TranslateTransform(0, 0); + gridAnimation = new Storyboard(); + string targetProperty = _directionType.Equals(ShutterAnchor.Left) || _directionType.Equals(ShutterAnchor.Right) ? "Width":"Height"; + switch (_directionType) + { + case ShutterAnchor.Left: + _animationTarget.HorizontalAlignment = HorizontalAlignment.Left; + //var sizeBounds1 = new DoubleAnimation(0, _animationTarget.Width * -1, new Duration(TimeSpan.FromSeconds(_sconds))); + //Storyboard.SetTarget(sizeBounds1, _animationTarget); + //Storyboard.SetTargetProperty(sizeBounds1, new PropertyPath("RenderTransform.X")); + //gridAnimation.Children.Add(sizeBounds1); + + break; + case ShutterAnchor.Right: + _animationTarget.HorizontalAlignment = HorizontalAlignment.Right; + //var sizeAni = new DoubleAnimation(_animationTarget.Width * -1, 0, new Duration(TimeSpan.FromSeconds(_sconds))); + //Storyboard.SetTarget(sizeAni, _animationTarget); + //Storyboard.SetTargetProperty(sizeAni, new PropertyPath("RenderTransform.X")); + //gridAnimation.Children.Add(sizeAni); + break; + case ShutterAnchor.Top: + _animationTarget.VerticalAlignment = VerticalAlignment.Top; + break; + case ShutterAnchor.Bottom: + _animationTarget.VerticalAlignment = VerticalAlignment.Bottom; + break; + } + var sizeAni = new DoubleAnimation(_fromValue, _toValue, new Duration(TimeSpan.FromSeconds(_sconds))); + Storyboard.SetTarget(sizeAni, _animationTarget); + Storyboard.SetTargetProperty(sizeAni, new PropertyPath(targetProperty)); + gridAnimation.Children.Add(sizeAni); + + var opacityAni = new DoubleAnimation(_opacityFrom, _opacityTo, new Duration(TimeSpan.FromSeconds(_sconds))); + Storyboard.SetTarget(opacityAni, _animationTarget); + Storyboard.SetTargetProperty(opacityAni, new PropertyPath("Opacity")); + gridAnimation.Children.Add(opacityAni); + + } + catch + { + gridAnimation = null; + } + return gridAnimation; + } + /// + /// Get a Button Animation + /// + /// Target + /// Animation Type + /// + public static Storyboard GetClickAnimation(FrameworkElement _target, ButtonAnimationType _clickAnimationType,double _durationSeconds = 0.2) + { + Storyboard targetAnimation = null; + try + { + targetAnimation = new Storyboard(); + + var boucedHeight = 0d; + var sizeScale = 1d; + switch (_clickAnimationType) + { + case ButtonAnimationType.BounceUp: + boucedHeight = _target.ActualHeight * -0.2; + break; + case ButtonAnimationType.TextBounceUp: + boucedHeight = _target.ActualHeight * -0.3; + break; + case ButtonAnimationType.BounceDown: + boucedHeight = _target.ActualHeight * 0.2; + break; + case ButtonAnimationType.TextBounceDown: + boucedHeight = _target.ActualHeight * 0.3; + break; + case ButtonAnimationType.SizeDown: + case ButtonAnimationType.TextSizeDown: + sizeScale = 0.85; + break; + case ButtonAnimationType.SizeUp: + case ButtonAnimationType.TextSizeUp: + sizeScale = 1.15; + break; + case ButtonAnimationType.FlipX: + case ButtonAnimationType.FlipY: + sizeScale = 0; + break; + } + + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + switch (_clickAnimationType) + { + case ButtonAnimationType.OpacityDown: + var opacityDown = new DoubleAnimation(1, 0.5, new Duration(TimeSpan.FromSeconds(_durationSeconds))) + { + AutoReverse = true + }; + Storyboard.SetTarget(opacityDown, _target); + Storyboard.SetTargetProperty(opacityDown, new PropertyPath("Opacity")); + targetAnimation.Children.Add(opacityDown); + break; + case ButtonAnimationType.OpacityUp: + var opacityUp = new DoubleAnimation(0.5, 1, new Duration(TimeSpan.FromSeconds(_durationSeconds))) + { + AutoReverse = true + }; + Storyboard.SetTarget(opacityUp, _target); + Storyboard.SetTargetProperty(opacityUp, new PropertyPath("Opacity")); + targetAnimation.Children.Add(opacityUp); + break; + case ButtonAnimationType.BounceUp: + case ButtonAnimationType.BounceDown: + case ButtonAnimationType.TextBounceUp: + case ButtonAnimationType.TextBounceDown: + _target.RenderTransform = new TranslateTransform(0, 0); + var sizeBounds1 = new DoubleAnimation(0, boucedHeight, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.75))); + var sizeBounds2 = new DoubleAnimation(boucedHeight, 0, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.25))); + sizeBounds1.BeginTime = TimeSpan.FromSeconds(0); + sizeBounds2.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.75); + Storyboard.SetTarget(sizeBounds1, _target); + Storyboard.SetTargetProperty(sizeBounds1, new PropertyPath("RenderTransform.Y")); + Storyboard.SetTarget(sizeBounds2, _target); + Storyboard.SetTargetProperty(sizeBounds2, new PropertyPath("RenderTransform.Y")); + targetAnimation.Duration = TimeSpan.FromSeconds(_durationSeconds); + targetAnimation.Children.Add(sizeBounds1); + targetAnimation.Children.Add(sizeBounds2); + break; + case ButtonAnimationType.SizeDown: + case ButtonAnimationType.TextSizeDown: + case ButtonAnimationType.SizeUp: + case ButtonAnimationType.TextSizeUp: + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var sizeXAni = new DoubleAnimation(1, sizeScale, new Duration(TimeSpan.FromSeconds(_durationSeconds))); + var sizeYAni = new DoubleAnimation(1, sizeScale, new Duration(TimeSpan.FromSeconds(_durationSeconds))); + sizeXAni.AutoReverse = true; + sizeYAni.AutoReverse = true; + Storyboard.SetTarget(sizeXAni, _target); + Storyboard.SetTargetProperty(sizeXAni, new PropertyPath("RenderTransform.ScaleX")); + Storyboard.SetTarget(sizeYAni, _target); + Storyboard.SetTargetProperty(sizeYAni, new PropertyPath("RenderTransform.ScaleY")); + targetAnimation.Children.Add(sizeXAni); + targetAnimation.Children.Add(sizeYAni); + break; + case ButtonAnimationType.Twist: + case ButtonAnimationType.TextTwist: + _target.RenderTransform = new RotateTransform(0, centerX, centerY); + var sizeAngleLeft = new DoubleAnimation(0, 9, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.25))); + var sizeAngleRight = new DoubleAnimation(0, -9, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.5))); + var sizeAngleCenter = new DoubleAnimation(-9, 0, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.25))); + sizeAngleLeft.BeginTime = TimeSpan.FromSeconds(0); + sizeAngleRight.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.25); + sizeAngleCenter.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.75); + Storyboard.SetTarget(sizeAngleLeft, _target); + Storyboard.SetTargetProperty(sizeAngleLeft, new PropertyPath("RenderTransform.Angle")); + Storyboard.SetTarget(sizeAngleRight, _target); + Storyboard.SetTargetProperty(sizeAngleRight, new PropertyPath("RenderTransform.Angle")); + Storyboard.SetTarget(sizeAngleCenter, _target); + Storyboard.SetTargetProperty(sizeAngleCenter, new PropertyPath("RenderTransform.Angle")); + targetAnimation.Duration = TimeSpan.FromSeconds(_durationSeconds); + targetAnimation.Children.Add(sizeAngleLeft); + targetAnimation.Children.Add(sizeAngleRight); + targetAnimation.Children.Add(sizeAngleCenter); + break; + case ButtonAnimationType.FlipX: + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(1, sizeScale, new Duration(TimeSpan.FromSeconds(_durationSeconds))); + flipXAni.AutoReverse = true; + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + break; + case ButtonAnimationType.FlipY: + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipYAni = new DoubleAnimation(1, sizeScale, new Duration(TimeSpan.FromSeconds(_durationSeconds))); + flipYAni.AutoReverse = true; + Storyboard.SetTarget(flipYAni, _target); + Storyboard.SetTargetProperty(flipYAni, new PropertyPath("RenderTransform.ScaleY")); + targetAnimation.Children.Add(flipYAni); + break; + default: + targetAnimation = null; + break; + } + } + catch + { + targetAnimation = null; + } + return targetAnimation; + } + /// + /// Send Image Animation + /// + /// + /// + /// + /// + /// + /// + public static Storyboard GetSendAnimation(FrameworkElement _target, ButtonSendAnimationType _sendAnimationType, double _moveX,double _moveY, double _durationSeconds = 0.5) + { + Storyboard targetAnimation = null; + try + { if (!_sendAnimationType.Equals(ButtonSendAnimationType.None)) + { + + targetAnimation = new Storyboard(); + var transformGroup = new TransformGroup(); + var translateTransform = new TranslateTransform(0, 0); + transformGroup.Children.Add(translateTransform); + + if (_sendAnimationType.Equals(ButtonSendAnimationType.SpeedChage) + || _sendAnimationType.Equals(ButtonSendAnimationType.SizeUpDown)) + { + var moveX1 = new DoubleAnimation(0, _moveX * 0.25, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.5))); + var moveX2 = new DoubleAnimation(_moveX * 0.25, _moveX, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.5))); + var moveY1 = new DoubleAnimation(0, _moveY * 0.25, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.5))); + var moveY2 = new DoubleAnimation(_moveY * 0.25, _moveY, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.5))); + moveX1.BeginTime = TimeSpan.FromSeconds(0); + moveX2.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.5); + moveY1.BeginTime = TimeSpan.FromSeconds(0); + moveY2.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.5); + Storyboard.SetTarget(moveX1, _target); + Storyboard.SetTargetProperty(moveX1, new PropertyPath(string.Format("RenderTransform.Children[{0}].(TranslateTransform.X)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(moveX2, _target); + Storyboard.SetTargetProperty(moveX2, new PropertyPath(string.Format("RenderTransform.Children[{0}].(TranslateTransform.X)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(moveY1, _target); + Storyboard.SetTargetProperty(moveY1, new PropertyPath(string.Format("RenderTransform.Children[{0}].(TranslateTransform.Y)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(moveY2, _target); + Storyboard.SetTargetProperty(moveY2, new PropertyPath(string.Format("RenderTransform.Children[{0}].(TranslateTransform.Y)", transformGroup.Children.Count - 1))); + targetAnimation.Duration = TimeSpan.FromSeconds(_durationSeconds); + targetAnimation.Children.Add(moveX1); + targetAnimation.Children.Add(moveX2); + targetAnimation.Children.Add(moveY1); + targetAnimation.Children.Add(moveY2); + if (_sendAnimationType.Equals(ButtonSendAnimationType.SizeUpDown)) + { + var scaleTransform = new ScaleTransform(1, 1, 0, 0); + transformGroup.Children.Add(scaleTransform); + var sizeAniX1 = new DoubleAnimation(1, 1.5, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.1))); + var sizeAniX2 = new DoubleAnimation(1.5, 1, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.9))); + var sizeAniY1 = new DoubleAnimation(1, 1.5, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.1))); + var sizeAniY2 = new DoubleAnimation(1.5, 1, new Duration(TimeSpan.FromSeconds(_durationSeconds * 0.9))); + sizeAniX1.BeginTime = TimeSpan.FromSeconds(0); + sizeAniX2.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.1); + sizeAniY1.BeginTime = TimeSpan.FromSeconds(0); + sizeAniY2.BeginTime = TimeSpan.FromSeconds(_durationSeconds * 0.1); + Storyboard.SetTarget(sizeAniX1, _target); + Storyboard.SetTargetProperty(sizeAniX1, new PropertyPath(string.Format("RenderTransform.Children[{0}].(ScaleTransform.ScaleX)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(sizeAniX2, _target); + Storyboard.SetTargetProperty(sizeAniX2, new PropertyPath(string.Format("RenderTransform.Children[{0}].(ScaleTransform.ScaleX)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(sizeAniY1, _target); + Storyboard.SetTargetProperty(sizeAniY1, new PropertyPath(string.Format("RenderTransform.Children[{0}].(ScaleTransform.ScaleY)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(sizeAniY2, _target); + Storyboard.SetTargetProperty(sizeAniY2, new PropertyPath(string.Format("RenderTransform.Children[{0}].(ScaleTransform.ScaleY)", transformGroup.Children.Count - 1))); + targetAnimation.Children.Add(sizeAniX1); + targetAnimation.Children.Add(sizeAniX2); + targetAnimation.Children.Add(sizeAniY1); + targetAnimation.Children.Add(sizeAniY2); + + } + } + else if (_sendAnimationType.Equals(ButtonSendAnimationType.Normal)) + { + var moveX = new DoubleAnimation(0, _moveX, new Duration(TimeSpan.FromSeconds(_durationSeconds))); + var moveY = new DoubleAnimation(0, _moveY, new Duration(TimeSpan.FromSeconds(_durationSeconds))); + Storyboard.SetTarget(moveX, _target); + Storyboard.SetTargetProperty(moveX, new PropertyPath(string.Format("RenderTransform.Children[{0}].(TranslateTransform.X)", transformGroup.Children.Count - 1))); + Storyboard.SetTarget(moveY, _target); + Storyboard.SetTargetProperty(moveY, new PropertyPath(string.Format("RenderTransform.Children[{0}].(TranslateTransform.Y)", transformGroup.Children.Count - 1))); + targetAnimation.Children.Add(moveX); + targetAnimation.Children.Add(moveY); + } + _target.RenderTransform = transformGroup; + } + } + catch + { + targetAnimation = null; + } + return targetAnimation; + } + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/CacheManager.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/CacheManager.cs new file mode 100644 index 0000000..c8f116c --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/CacheManager.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Runtime.Caching; + +namespace SPC.Kiosk.Common +{ + /// + /// Concurrent Dictionary Cache + /// + public static class CacheManager + { + private static MemoryCache _cache = MemoryCache.Default; + public static void CacheRemove(this string _key) + { + try + { + _cache.Remove(_key); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "CacheManager", "CacheRemove()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Add Cache a Item + /// + /// Item Type + /// Store Key + /// Store Item + /// IsSuccess + public static bool AddCache(this string _key,T _content) + { + bool result = false; + try + { + if (!_cache.Contains(_key) && _content !=null) + { + var policy = new CacheItemPolicy { SlidingExpiration = new TimeSpan(24, 0, 0) }; + _cache.Add(_key, _content, policy); + result = true; + } + + } + catch + { + result = false; + } + return result; + } + /// + /// Get Stored Item + /// + /// Item Type + /// Store Key + /// Item + public static T GetCache(this string _key) + { + var result = default(T); + try + { + if (_cache.Contains(_key)) + { + result = (T)_cache[_key]; + } + } + catch + { + result = default(T); + } + return result; + + } + /// + /// Check Cache Contain Item + /// + /// + /// + /// + public static bool CacheContain(this string _key) + { + bool result = false; + try + { + result = _cache.Contains(_key); + } + catch + { + result = false; + } + return result; + + } + #region Disposable Support + /// + /// Clear Dictionaly + /// + public static void Dispose() + { + _cache.Dispose(); + _cache = null; + } + #endregion + } + + +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonChecker.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonChecker.cs new file mode 100644 index 0000000..7d71193 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonChecker.cs @@ -0,0 +1,672 @@ + +namespace SPC.Kiosk.Common +{ + + public static class CommonChecker + { + + #region ASCII 영역체크 + /// + /// 문자,문자열이 모두 영문인지 체크 + /// + /// + /// + public static bool rIsAlpa(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToLower().ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsAlpa(); + if (!result) break; + } + } + + } + catch + { + result = false; + } + return result; + } + /// + /// 문자가 영문자인지 체크 + /// + /// + /// + public static bool rIsAlpa(this char _inChar) + { + + return ((int)_inChar > 0x40 && (int)_inChar < 0x5B + || (int)_inChar > 0x60 && (int)_inChar < 0x7B); + + } + /// + /// 문자,문자열이 모두 영문 대문자인지 체크 + /// + /// + /// + public static bool rIsBigAlpa(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsBigAlpa(); + if (!result) break; + } + } + + } + catch + { + result = false; + } + return result; + } + /// + /// 문자가 대문자인지 체크 + /// + /// + /// + public static bool rIsBigAlpa(this char _inChar) + { + + return (int)_inChar > 0x40 && (int)_inChar < 0x5B; + + } + /// + /// 문자열이 모두 소문자인지 체크 + /// + /// + /// + public static bool rIsSmallAlpa(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsSmallAlpa(); + if (!result) break; + } + } + + } + catch + { + result = false; + } + return result; + } + /// + /// 문자열이 숫자인지 체크 + /// + /// + /// + public static bool rIsNum(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsNum(); + if (!result) break; + } + } + } + catch + { + result = false; + } + return result; + } + /// + /// 문자가 숫자인지 체크 + /// + /// + /// + public static bool rIsNum(this char _inChar) + { + + try + { + return ((int)_inChar > 0x2F && (int)_inChar < 0x3A); + } + catch + { + return false; + } + } + /// + /// 문자가 영문 소문자인지 체크 + /// + /// + /// + public static bool rIsSmallAlpa(this char _inChar) + { + + return (int)_inChar > 0x60 && (int)_inChar < 0x7B; + + } + /// + /// 문자열이 영문대소문자 또는 숫자로 인지 체크 + /// + /// + /// + public static bool rIsAlpaNum(this string _inString) + { + bool result = false; + try + { + + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsAlpaNum(); + if (!result) break; + } + } + + } + catch + { + result = false; + } + return result; + } + + /// + /// 문자가 영문자 또는 숫자인지 체크 + /// + /// + /// + public static bool rIsAlpaNum(this char _inChar) + { + return ((int)_inChar > 0x60 && (int)_inChar < 0x7B) + || ((int)_inChar > 0x40 && (int)_inChar < 0x5B) + || ((int)_inChar > 0x2F && (int)_inChar < 0x3A); + } + /// + /// 문자열이 Hex문자열인지 체크 + /// + /// + /// + public static bool rIsHexaNum(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + if (_inString.Length % 2 > 0) + { + result = false; + } + else + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsHexaNum(); + if (!result) break; + } + } + } + } + catch + { + result = false; + } + return result; + } + /// + /// 문자가 Hex문자에 속하는지 체크 + /// + /// + /// + public static bool rIsHexaNum(this char _inChar) + { + return ((int)_inChar > 0x60 && (int)_inChar < 0x67) + || ((int)_inChar > 0x40 && (int)_inChar < 0x47) + || ((int)_inChar > 0x2F && (int)_inChar < 0x3A); + } + /// + /// 문자열 Bit형(0,1)인지 체크 + /// + /// + /// + public static bool rIsBitNum(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + if (_inString.Length % 8 > 0) + { + result = false; + } + else + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsBitNum(); + if (!result) break; + } + } + } + } + catch + { + result = false; + } + return result; + } + /// + /// 문자가 Bit형(0,1)인지 체크 + /// + /// + /// + public static bool rIsBitNum(this char _inChar) + { + return (_inChar.Equals((char)0x30) || _inChar.Equals((char)0x31)); + } + #endregion + + #region 갯수 분석 + /// + /// 문자열내 특정문자 갯수 + /// + /// + /// + /// + public static int rCountChar(this string _inString, char _inChar) + { + return _inString.rCountChar(_inChar, CodeType.Default); + } + /// + /// 인코딩 된 문자열내 특정문자 갯수 + /// + /// + /// + /// + /// + public static int rCountChar(this string _inString, char _inChar, CodeType _CodeType) + { + int result = 0; + try + { + foreach (char _aChar in _inString.rToEncChar(_CodeType)) + { + if (_aChar.Equals(_inChar)) result++; + } + } + catch + { + result = 0; + } + return result; + } + /// + /// 문자열내 특정문자 갯수 + /// + /// + /// + /// + public static int rCountChar(this string _inString, string _inChar) + { + return _inString.rCountChar(_inChar, CodeType.Default); + } + /// + /// 문자열내 특정문자 갯수 + /// + /// + /// + /// + /// + public static int rCountChar(this string _inString, string _inChar, CodeType _CodeType) + { + int result = 0; + try + { + foreach (char _aChar in _inString.rToEncChar(_CodeType)) + { + if (_aChar.Equals(_inChar.ToCharArray()[0])) result++; + } + } + catch + { + result = 0; + } + return result; + } + /// + /// Byte배열내에 특정 바이트 갯수 + /// + /// + /// + /// + public static int rCountChar(this byte[] _inBytes, byte[] _inByte) + { + int result = 0; + try + { + foreach (byte _aByte in _inBytes) + { + if (_aByte.Equals(_inByte)) result++; + } + } + catch + { + result = 0; + } + return result; + } + + /// + /// 문자열내 대문자 숫자 갯수 + /// + /// + /// + public static int rCountBigAlpa(this string _inString) + { + int result = 0; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsBigAlpa() ? result + 1 : result; + } + } + + } + catch + { + result = 0; + } + return result; + } + /// + /// 문자열내 소문자 갯수 + /// + /// + /// + public static int rCountSmallAlpa(this string _inString) + { + int result = 0; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsSmallAlpa() ? result + 1 : result; + } + } + + } + catch + { + result = 0; + } + return result; + } + /// + /// 문자열내 숫자 갯수 + /// + /// + /// + public static int rCountNumber(this string _inString) + { + int result = 0; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsNum() ? result + 1 : result; + } + } + + } + catch + { + result = 0; + } + return result; + } + /// + /// 문자열내 영문자 또는 숫자 갯수 + /// + /// + /// + public static int rCountAlpaNum(this string _inString) + { + int result = 0; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsAlpaNum() ? result + 1 : result; + } + } + + } + catch + { + result = 0; + } + return result; + } + /// + /// 문자열내 특수문자 숫자 + /// + /// + /// + public static int rCountSpecialChar(this string _inString) + { + int result = 0; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsAlpaNum() || (int)getChar > 0x92 ? result : result + 1; + } + } + + } + catch + { + result = 0; + } + return result; + } + /// + /// 문자열내 최대 동일문자 반복숫자 + /// + /// + /// + public static int rCountMaxRepeat(this string _inString) + { + int result = 0; + int count = 0; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + char lastChar = ' '; + foreach (char getChar in getChars) + { + if (getChar != lastChar) + { + if (count > result) result = count; + count = 1; + lastChar = getChar; + } + else + { + count++; + } + } + if (count > result) result = count; + } + + } + catch + { + result = 0; + } + return result; + } + #endregion + + #region 숫자 형식 체크 (정수,실수) + + /// + /// 문자열이 정수형인지 체크 + /// + /// + /// + public static bool rIsPlusInteger(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsNum(); + if (!result) break; + } + } + } + catch + { + result = false; + } + return result; + } + /// + /// 문자열이 정수형인지 체크 + /// + /// + /// + public static bool rIsInteger(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + if (_inString.Length > 1 && _inString.StartsWith("-")) _inString = _inString.Substring(1); + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsNum(); + if (!result) break; + } + } + + } + catch + { + result = false; + } + return result; + } + /// + /// 문자열이 실수형인지 체크 + /// + /// + /// + public static bool rIsFloat(this string _inString) + { + bool result = false; + try + { + if (_inString != null && _inString.Length > 0) + { + if (_inString.Length > 1 && _inString.StartsWith("-")) _inString = _inString.Substring(1); + int _firstPoint = _inString.IndexOf('.'); + if (_inString.IndexOf('.', _firstPoint + 1) == -1) + { + _inString = _inString.Replace(".", ""); + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + result = getChar.rIsNum(); + if (!result) break; + } + } + } + + } + catch + { + result = false; + } + return result; + } + + #endregion + + #region 암호등급 + /// + /// 암호 등급[ + /// 8자이하 0, + /// 반복문자가 있는 경우는 -1 Level, + /// 연속으로 동일 문자가 있으면 0, + /// 형태수 + 8자이상이면 4자마다 1식추가 + /// ] + /// + /// + /// + public static int rPassWordLevel(this string _inString) + { + int level = 0; + level += _inString.rCountBigAlpa() > 0 ? 1 : 0; + level += _inString.rCountSmallAlpa() > 0 ? 1 : 0; + level += _inString.rCountSpecialChar() > 0 ? 1 : 0; + level += _inString.rCountNumber() > 0 ? 1 : 0; + level = _inString.Length > 7 ? level + _inString.Length / 4 - 1 : 0; + level = _inString.rCountMaxRepeat() > 1 ? level - 1 : level; + return level; + } + #endregion + + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonConverter.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonConverter.cs new file mode 100644 index 0000000..cc30f91 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonConverter.cs @@ -0,0 +1,1942 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace SPC.Kiosk.Common +{ + #region ASCII 제어 문자 정의 + /// + /// Control Char + /// + public static class Ctrl_CHAR + { + + /// + /// NULL [00]0x00 + /// + public static char Null = (char)Ctrl_ASCII.Null; + /// + /// SOH [01]0x01 + /// + public static char SOH = (char)Ctrl_ASCII.SOH; + /// + /// STX [02]0x02 + /// + public static char STX = (char)Ctrl_ASCII.STX; + /// + /// ETX [03]0x03 + /// + public static char ETX = (char)Ctrl_ASCII.ETX; + /// + /// EOT [04]0x04 + /// + public static char EOT = (char)Ctrl_ASCII.EOT; + /// + /// ENQ [05]0x05 + /// + public static char ENQ = (char)Ctrl_ASCII.ENQ; + /// + /// ACK [06]0x06 + /// + public static char ACK = (char)Ctrl_ASCII.ACK; + /// + /// BEL [07]0x07 + /// + public static char BEL = (char)Ctrl_ASCII.BEL; + /// + /// BS [08]0x08 + /// + public static char BS = (char)Ctrl_ASCII.BS; + /// + /// HT [09]0x09 + /// + public static char HT = (char)Ctrl_ASCII.HT; + /// + /// LF [0A]0x10 + /// + public static char LF = (char)Ctrl_ASCII.LF; + /// + /// VT [0B]0x11 + /// + public static char VT = (char)Ctrl_ASCII.VT; + /// + /// FF [0C]0x12 + /// + public static char FF = (char)Ctrl_ASCII.FF; + /// + /// CR [0D]0x13 + /// + public static char CR = (char)Ctrl_ASCII.CR; + /// + /// SO [0E]0x14 + /// + public static char SO = (char)Ctrl_ASCII.SO; + /// + /// SI [0F]0x15 + /// + public static char SI = (char)Ctrl_ASCII.SI; + /// + /// DLE [10]0x16 + /// + public static char DLE = (char)Ctrl_ASCII.DLE; + /// + /// DC1 [11]0x17 + /// + public static char DC1 = (char)Ctrl_ASCII.DC1; + /// + /// DC2 [12]0x18 + /// + public static char DC2 = (char)Ctrl_ASCII.DC2; + /// + /// DC3 [13]0x19 + /// + public static char DC3 = (char)Ctrl_ASCII.DC3; + /// + /// DC4 [14]0x20 + /// + public static char DC4 = (char)Ctrl_ASCII.DC4; + /// + /// NAK [15]0x21 + /// + public static char NAK = (char)Ctrl_ASCII.NAK; + /// + /// SYN [16]0x22 + /// + public static char SYN = (char)Ctrl_ASCII.SYN; + /// + /// ETB [17]0x23 + /// + public static char ETB = (char)Ctrl_ASCII.ETB; + /// + /// CAN [18]0x24 + /// + public static char CAN = (char)Ctrl_ASCII.CAN; + /// + /// EM [19]0x25 + /// + public static char EM = (char)Ctrl_ASCII.EM; + /// + /// SUB [1A]0x26 + /// + public static char SUB = (char)Ctrl_ASCII.SUB; + /// + /// ESC [1B]0x27 + /// + public static char ESC = (char)Ctrl_ASCII.ESC; + /// + /// FS [1C]0x28 + /// + public static char FS = (char)Ctrl_ASCII.FS; + /// + /// GS [1D]0x29 + /// + public static char GS = (char)Ctrl_ASCII.GS; + /// + /// RS [1E]0x30 + /// + public static char RS = (char)Ctrl_ASCII.RS; + /// + /// US [1F]0x32 + /// + public static char US = (char)Ctrl_ASCII.US; + } + + /// + /// Control Byte + /// + public static class Ctrl_BYTE + { + /// + /// NULL + /// + public static byte Null = (byte)Ctrl_ASCII.Null; + /// + /// SOH + /// + public static byte SOH = (byte)Ctrl_ASCII.SOH; + /// + /// STX + /// + public static byte STX = (byte)Ctrl_ASCII.STX; + /// + /// ETX + /// + public static byte ETX = (byte)Ctrl_ASCII.ETX; + /// + /// EOT + /// + public static byte EOT = (byte)Ctrl_ASCII.EOT; + /// + /// ENQ + /// + public static byte ENQ = (byte)Ctrl_ASCII.ENQ; + /// + /// ACK + /// + public static byte ACK = (byte)Ctrl_ASCII.ACK; + /// + /// BEL + /// + public static byte BEL = (byte)Ctrl_ASCII.BEL; + /// + /// BS + /// + public static byte BS = (byte)Ctrl_ASCII.BS; + /// + /// HT + /// + public static byte HT = (byte)Ctrl_ASCII.HT; + /// + /// LF + /// + public static byte LF = (byte)Ctrl_ASCII.LF; + /// + /// VT + /// + public static byte VT = (byte)Ctrl_ASCII.VT; + /// + /// FF + /// + public static byte FF = (byte)Ctrl_ASCII.FF; + /// + /// CR + /// + public static byte CR = (byte)Ctrl_ASCII.CR; + /// + /// SO + /// + public static byte SO = (byte)Ctrl_ASCII.SO; + /// + /// SI + /// + public static byte SI = (byte)Ctrl_ASCII.SI; + /// + /// DLE + /// + public static byte DLE = (byte)Ctrl_ASCII.DLE; + /// + /// DC1 + /// + public static byte DC1 = (byte)Ctrl_ASCII.DC1; + /// + /// DC2 + /// + public static byte DC2 = (byte)Ctrl_ASCII.DC2; + /// + /// DC3 + /// + public static byte DC3 = (byte)Ctrl_ASCII.DC3; + /// + /// DC4 + /// + public static byte DC4 = (byte)Ctrl_ASCII.DC4; + /// + /// NAK + /// + public static byte NAK = (byte)Ctrl_ASCII.NAK; + /// + /// SYN + /// + public static byte SYN = (byte)Ctrl_ASCII.SYN; + /// + /// ETB + /// + public static byte ETB = (byte)Ctrl_ASCII.ETB; + /// + /// CAN + /// + public static byte CAN = (byte)Ctrl_ASCII.CAN; + /// + /// EM + /// + public static byte EM = (byte)Ctrl_ASCII.EM; + /// + /// SUB + /// + public static byte SUB = (byte)Ctrl_ASCII.SUB; + /// + /// ESC + /// + public static byte ESC = (byte)Ctrl_ASCII.ESC; + /// + /// FS + /// + public static byte FS = (byte)Ctrl_ASCII.FS; + /// + /// GS + /// + public static byte GS = (byte)Ctrl_ASCII.GS; + /// + /// RS + /// + public static byte RS = (byte)Ctrl_ASCII.RS; + /// + /// US + /// + public static byte US = (byte)Ctrl_ASCII.US; + } + + /// + /// Cotrol Char String Type + /// + public static class Ctrl_STRING + { + /// + /// NULL + /// + public static string Null = ""; + /// + /// SOH + /// + public static string SOH = Convert.ToString((char)Ctrl_ASCII.SOH); + /// + /// STX + /// + public static string STX = Convert.ToString((char)Ctrl_ASCII.STX); + /// + /// ETX + /// + public static string ETX = Convert.ToString((char)Ctrl_ASCII.ETX); + /// + /// EOT + /// + public static string EOT = Convert.ToString((char)Ctrl_ASCII.EOT); + /// + /// ENQ + /// + public static string ENQ = Convert.ToString((char)Ctrl_ASCII.ENQ); + /// + /// ACK + /// + public static string ACK = Convert.ToString((char)Ctrl_ASCII.ACK); + /// + /// BEL + /// + public static string BEL = Convert.ToString((char)Ctrl_ASCII.BEL); + /// + /// BS + /// + public static string BS = Convert.ToString((char)Ctrl_ASCII.BS); + /// + /// HT + /// + public static string HT = Convert.ToString((char)Ctrl_ASCII.HT); + /// + /// LF + /// + public static string LF = Convert.ToString((char)Ctrl_ASCII.LF); + /// + /// VT + /// + public static string VT = Convert.ToString((char)Ctrl_ASCII.VT); + /// + /// FF + /// + public static string FF = Convert.ToString((char)Ctrl_ASCII.FF); + /// + /// CR + /// + public static string CR = Convert.ToString((char)Ctrl_ASCII.CR); + /// + /// SO + /// + public static string SO = Convert.ToString((char)Ctrl_ASCII.SO); + /// + /// SI + /// + public static string SI = Convert.ToString((char)Ctrl_ASCII.SI); + /// + /// DLE + /// + public static string DLE = Convert.ToString((char)Ctrl_ASCII.DLE); + /// + /// DC1 + /// + public static string DC1 = Convert.ToString((char)Ctrl_ASCII.DC1); + /// + /// DC2 + /// + public static string DC2 = Convert.ToString((char)Ctrl_ASCII.DC2); + /// + /// DC3 + /// + public static string DC3 = Convert.ToString((char)Ctrl_ASCII.DC3); + /// + /// DC4 + /// + public static string DC4 = Convert.ToString((char)Ctrl_ASCII.DC4); + /// + /// NAK + /// + public static string NAK = Convert.ToString((char)Ctrl_ASCII.NAK); + /// + /// SYN + /// + public static string SYN = Convert.ToString((char)Ctrl_ASCII.SYN); + /// + /// ETB + /// + public static string ETB = Convert.ToString((char)Ctrl_ASCII.ETB); + /// + /// CAN + /// + public static string CAN = Convert.ToString((char)Ctrl_ASCII.CAN); + /// + /// EM + /// + public static string EM = Convert.ToString((char)Ctrl_ASCII.EM); + /// + /// SUB + /// + public static string SUB = Convert.ToString((char)Ctrl_ASCII.SUB); + /// + /// ESC + /// + public static string ESC = Convert.ToString((char)Ctrl_ASCII.ESC); + /// + /// FS + /// + public static string FS = Convert.ToString((char)Ctrl_ASCII.FS); + /// + /// GS + /// + public static string GS = Convert.ToString((char)Ctrl_ASCII.GS); + /// + /// RS + /// + public static string RS = Convert.ToString((char)Ctrl_ASCII.RS); + /// + /// US + /// + public static string US = Convert.ToString((char)Ctrl_ASCII.US); + } + #endregion + public static class CommonConverter + { + #region For DB string + /// + /// 실수로 변환 + /// + /// 입력객체 + /// 실수 + public static float rDBToFloat(this object o) + { + float result; + try + { + if (o == DBNull.Value || o == null) result = 0F; + else + { + if (!float.TryParse(o.ToString(), out result)) result = 0F; + } + + } + catch + { + + result = 0F; + } + return result; + } + /// + /// 정수로 변환 + /// + /// + /// + public static int rDBToInt(this object o) + { + int result; + try + { + if (o == DBNull.Value || o == null) result = 0; + else + { + if (!Int32.TryParse(o.ToString(), out result)) result = 0; + } + + } + catch + { + + result = 0; + } + return result; + } + + /// + /// 문자로 변환 + /// + /// + /// + public static char rDBToChar(this object o) + { + char result; + try + { + if (o == DBNull.Value) + result = Ctrl_CHAR.Null; + else + result = o.ToString()[0]; + + } + catch + { + result = Ctrl_CHAR.Null; + } + return result; + } + /// + /// 문자열로 변환 + /// + /// + /// + public static string rDBToString(this object o) + { + string result; + try + { + if (o == DBNull.Value || o == null) + result = string.Empty; + else + result = o.ToString(); + + } + catch + { + result = string.Empty; + } + return result; + } + #endregion + + #region Hexa & Bit + /// + /// 숫자를 16진수 문자열로 + /// + /// + /// + public static string rToHexString(this int _inInt) + { + try + { + return (Convert.ToString(_inInt, 16)).ToUpper().PadLeft(2, '0'); + + } + catch + { + return string.Empty; + } + } + /// + /// Byte를 16진수 문자열로 + /// + /// + /// + public static string rToHexString(this byte _inByte) + { + try + { + return ((int)_inByte).rToHexString(); + + } + catch + { + return string.Empty; + } + } + /// + /// Char를 16진수 문자열로 + /// + /// + /// + public static string rToHexString(this char _inChar) + { + try + { + return ((int)_inChar).rToHexString(); + + } + catch + { + return string.Empty; + } + } + /// + /// Char배열을 Hex문자열로 + /// + /// + /// + public static string rToHexString(this char[] _inChars) + { + string result = string.Empty; + try + { + foreach (char _inChar in _inChars) + { + result += ((int)_inChar).rToHexString(); + } + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// Byte배열을 Hex문자열로 + /// + /// + /// + public static string rToHexString(this byte[] _inBytes) + { + string result = string.Empty; + try + { + foreach (byte _inByte in _inBytes) + { + result += ((int)_inByte).rToHexString(); + } + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// Integer배열을 Hex문자열로 + /// + /// + /// + public static string rToHexString(this int[] _inInts) + { + string result = string.Empty; + try + { + foreach (int _inInt in _inInts) + { + result += _inInt.rToHexString(); + } + } + catch + { + result = string.Empty; + } + return result; + } + + /// + /// 정수를 Bit문자열로 + /// + /// + /// + public static string rToBitString(this int _inInt) + { + try + { + return (Convert.ToString(_inInt, 2)).PadLeft(8, '0'); + + } + catch + { + return string.Empty; + } + } + + /// + /// Byte를 Bit문자열로 + /// + /// + /// + public static string rToBitString(this byte _inByte) + { + try + { + return ((int)_inByte).rToBitString(); + + } + catch + { + return string.Empty; + } + } + + /// + /// Char를 Bit문자열로 + /// + /// + /// + public static string rToBitString(this char _inChar) + { + try + { + return ((int)_inChar).rToBitString(); + + } + catch + { + return string.Empty; + } + } + /// + /// Char배열을 비트 문자열로 + /// + /// + /// + public static string rToBitString(this char[] _inChars) + { + return _inChars.rToByte().rToBitString(); + } + /// + /// Byte배열을 Bit문자열로 + /// + /// + /// + public static string rToBitString(this byte[] _inBytes) + { + string result = string.Empty; + try + { + for (int i = 0; i < _inBytes.Length; i++) + { + result += _inBytes[i].rToBitString(); + } + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// Bit문자열을 Bool 배열로 + /// + /// + /// + public static bool[] rToBoolArray(this string _inString) + { + return _inString.ToCharArray().rToBoolArray(false); + } + /// + /// Bit문자열을 Bool 배열로 + /// + /// + /// 상위비트가 앞에 오도록 + /// + public static bool[] rToBoolArray(this string _inString, bool _Height2Low) + { + return _inString.ToCharArray().rToBoolArray(_Height2Low); + } + /// + /// Bit문자열을 옵션에 따라 Boolean 배열로 + /// + /// 입력Char배열 + /// 상위비트가 앞에 오도록 + /// + public static bool[] rToBoolArray(this char[] _getBit, bool _Height2Low) + { + bool[] result = null; + try + { + if (_Height2Low) + { + result = new bool[_getBit.Length]; + for (int i = 0; i < _getBit.Length; i++) + { + result[i] = _getBit[i] == '1'; + } + + } + else + { + + result = new bool[_getBit.Length]; + int pos = 0; + for (int i = 7; i > -1; i--) + { + result[pos] = _getBit[i] == '1'; + pos++; + } + } + } + catch + { + result = null; + } + return result; + } + + /// + /// 정수를 Bit값을 Boolean 배열로 (LowBit 가 0) + /// + /// + /// + public static bool[] rToBoolArray(this int _inInt) + { + bool[] result = null; + try + { + result = _inInt.rToBitString().rToBoolArray(); + } + catch + { + result = null; + } + return result; + } + /// + /// 정수의 Bit값을 Boolean 배열로 (HighBit 가 0) + /// + /// + /// + public static bool[] rToBoolArrayHL(this int _inInt) + { + bool[] result = null; + try + { + result = _inInt.rToBitString().rToBoolArray(true); + } + catch + { + result = null; + } + return result; + } + /// + /// Byte의 Byte값을 Boolean 배열로 (LowBit 가 0) + /// + /// + /// + public static bool[] rToBoolArray(this byte _inByte) + { + return ((int)_inByte).rToBoolArray(); + } + /// + /// Byte의 Bit값을 Boolean 배열로 (HighBit 가 0) + /// + /// + /// + public static bool[] rToBoolArrayHL(this byte _inByte) + { + return ((int)_inByte).rToBoolArrayHL(); + } + /// + /// Char값을 Boolean 배열로 (LowBit 가 0) + /// + /// + /// + public static bool[] rToBoolArray(this char _inChar) + { + return ((int)_inChar).rToBoolArray(); + } + /// + /// Char값을 Boolean 배열로 (HighBit 가 0) + /// + /// + /// + public static bool[] rToBoolArrayHL(this char _inChar) + { + return ((int)_inChar).rToBoolArrayHL(); + } + + /// + /// 정수문자열을 정수로(int) + /// + /// + /// + public static int rToInteger(this string _inString) + { + try + { + if (_inString.rIsInteger()) return int.Parse(_inString); + else return 0; + + } + catch + { + return 0; + } + } + /// + /// 정수문자열을 정수로(long) + /// + /// + /// + public static long rToLongInteger(this string _inString) + { + try + { + if (_inString.rIsInteger()) return long.Parse(_inString); + else return 0; + + } + catch + { + return 0; + } + } + /// + /// 16진수 문자열을 정수로 + /// + /// + /// + public static int rHexStrToInt(this string _inString) + { + try + { + if (_inString.StartsWith("0x")) _inString = _inString.Substring(_inString.IndexOf("x") + 1); + return Convert.ToInt16(_inString, 16); + + + } + catch + { + return 0; + } + } + /// + /// 16진수 문자열을 Byte로 + /// + /// + /// + public static byte rHexStrToByte(this string _inString) + { + return (byte)_inString.rHexStrToInt(); + } + /// + /// 16진수 문자열을 Byte배열로 + /// + /// + /// + public static byte[] rHexStrToBytes(this string _inString) + { + byte[] result = null; + try + { + if (_inString.Length % 2 == 1) _inString.PadLeft(_inString.Length + 1, '0'); + result = new byte[_inString.Length / 2]; + for (int i = 0; i < _inString.Length / 2; i++) + { + result[i] = (byte)_inString.Substring(i * 2, 2).rHexStrToInt(); + } + } + catch + { + result = null; + } + return result; + } + /// + /// 16진수 문자열을 Integer String으로 + /// + /// + /// + public static string rHexStringToIntStr(this string _inString) + { + string result = string.Empty; + try + { + if (_inString.Length % 2 == 1) _inString.PadLeft(_inString.Length + 1, '0'); + for (int i = 0; i < _inString.Length / 2; i++) + { + result += ((char)_inString.Substring(i * 2, 2).rHexStrToInt()).ToString(); + } + } + catch + { + result = null; + } + return result; + } + + + /// + /// 16진수 문자열을 CHar로 + /// + /// + /// + public static char rHexStrToChar(this string _inString) + { + return (char)_inString.rHexStrToInt(); + } + /// + /// 비트문자열을 정수로 + /// + /// + /// + public static int rBitStrToInt(this string _inString) + { + try + { + return Convert.ToInt16(_inString, 2); + + } + catch + { + return 0; + } + } + /// + /// 비트문자열을 Byte로 + /// + /// + /// + public static byte rBitStrToByte(this string _inString) + { + return (byte)_inString.rBitStrToInt(); + } + /// + /// 비트배열을 정수로 + /// + /// 8개짜리 bool배열 + /// + /// + public static int rToInteger(this bool[] _inBools, bool _Height2Low) + { + int result = 0; + try + { + string _bits = String.Empty; + if (_Height2Low) + { + for (int i = 0; i < _inBools.Length; i++) + { + _bits += _inBools[i] ? "1" : "0"; + } + + } + else + { + for (int i = 7; i > -1; i--) + { + _bits += _inBools[i] ? "1" : "0"; + } + } + result = _bits.rBitStrToInt(); + } + catch + { + result = 0; + } + return result; + } + /// + /// Highbit가 먼저인 Boolean 배열을 Integer로 + /// + /// + /// + public static int rHLtoInt(this bool[] _inBools) + { + return _inBools.rToInteger(true); + } + /// + /// Lowbit가 먼저인 Boolean 배열을 Integer로 + /// + /// + /// + public static int rToInteger(this bool[] _inBools) + { + return _inBools.rToInteger(false); + } + /// + /// Boolrean 배열을 Byte로 + /// + /// + /// true=High가 첫번째,false=Lowbit가 첫번째 + /// + public static byte rToByte(this bool[] _inBools, bool _Height2Low) + { + return (byte)_inBools.rToInteger(_Height2Low); + } + /// + /// Highbit가 먼저인 Boolean 배열을 Byte로 + /// + /// + /// + public static byte rHLtoByte(this bool[] _inBools) + { + return (byte)_inBools.rToInteger(true); + } + /// + /// Lowbit가 먼저인 Boolrean 배열을 Byte로 + /// + /// + /// + public static byte rToByte(this bool[] _inBools) + { + return (byte)_inBools.rToInteger(false); + } + /// + /// char 배열을 byte배열로 + /// + /// + /// + public static byte[] rToByte(this char[] _inChars) + { + byte[] result = null; + try + { + result = new byte[_inChars.Length]; + for (int i = 0; i < _inChars.Length; i++) + { + result[i] = (byte)_inChars[i]; + } + } + catch + { + result = null; + } + return result; + } + /// + /// byte배열을 char배열로 + /// + /// + /// + public static char[] rToChar(this byte[] _inByte) + { + char[] result = null; + try + { + result = new char[_inByte.Length]; + for (int i = 0; i < _inByte.Length; i++) + { + result[i] = (char)_inByte[i]; + } + } + catch + { + result = null; + } + return result; + } + #endregion + + #region MakeLRC + /// + /// LRC Make + /// + /// + /// + public static string rMakeLRC(this string _Data) + { + return rMakeLRC(_Data, CodeType.Default); + } + /// + /// LRC Make + /// + /// + /// + /// + public static string rMakeLRC(this string _Data, CodeType _CodeType) + { + try + { + //long makeCheckSum = 0; + //byte[] DataBytes = _Data.rToByteArray(); + //foreach (byte abyte in DataBytes) makeCheckSum += abyte; + //string checksum = makeCheckSum.ToString("X2"); + return rMakeLRC(_Data.rToByteArray(_CodeType)).ToString(); + + } + catch + { + + return string.Empty; + } + } + /// + /// LRC Make + /// + /// + /// + public static byte rMakeLRC(this byte[] _Data) + { + try + { + byte LRC = _Data[0]; + for (int i = 1; i < _Data.Length; i++) + { + LRC = (byte)(LRC ^ _Data[i]); + } + return LRC; + } + catch + { + return 0x00; + } + } + /// + /// LRC Make + /// + /// + /// + public static char rMakeLRC(this char[] _Data) + { + try + { + return (char)rMakeLRC(_Data.rToByte()); + + } + catch + { + return (char)0x00; + } + } + + #endregion + + #region Checksum Make + /// + /// Checksum Make + /// + /// + /// + public static string rCheckSum(this string _Data) + { + return rCheckSum(_Data, CodeType.Default); + } + /// + /// Checksum Make + /// + /// + /// + /// + public static string rCheckSum(this string _Data, CodeType _CodeType) + { + try + { + //long makeCheckSum = 0; + //byte[] DataBytes = _Data.rToByteArray(); + //foreach (byte abyte in DataBytes) makeCheckSum += abyte; + //string checksum = makeCheckSum.ToString("X2"); + return rCheckSum(_Data.rToByteArray(_CodeType)).rToEncString(_CodeType); + + } + catch + { + + return string.Empty; + } + } + /// + /// Checksum Make + /// + /// + /// + public static byte[] rCheckSum(this byte[] _Data) + { + try + { + long makeCheckSum = 0; + foreach (byte abyte in _Data) makeCheckSum += abyte; + string checksum = makeCheckSum.ToString("X2"); + return checksum.Substring(checksum.Length - 2, 2).rToByteArray(); + + } + catch + { + return null; + } + } + /// + /// Checksum Make + /// + /// + /// + public static char[] rCheckSum(this char[] _Data) + { + try + { + return rCheckSum(_Data.rToByte()).rToChar(); + + } + catch + { + return null; + } + } + #endregion + + #region Encodings & Decoding + /// + /// 문자열을 Char배열로(Encodeing by Default) + /// + /// + /// 코드페이지 오류시 null + public static char[] rToEncChar(this string _inString) + { + return _inString.rToEncChar(CodeType.Default); + } + /// + /// 문자열을 Char배열로 + /// + /// + /// + /// 코드페이지 오류시 null + public static char[] rToEncChar(this string _inString, CodeType _CodeType) + { + return _inString.rToByteArray(_CodeType).rToChar(); + } + /// + /// 문자열을 Byte배열로(Encodeing by Default) + /// + /// + /// 코드페이지 오류시 null + public static byte[] rToByteArray(this string _inString) + { + return _inString.rToByteArray(CodeType.Default); + } + /// + /// 문자열을 Byte배열로 + /// + /// + /// + /// + public static byte[] rToByteArray(this string _inString, CodeType _CodeType) + { + return _CodeType.rGetEncoding().GetBytes(_inString); + } + /// + /// 문자열로 CodeType 형식 구하기 + /// + /// + /// + public static CodeType rGetCodeType(this Encoding _Encoding) + { + CodeType result = CodeType.Default; + try + { + switch (_Encoding.ToString()) + { + case "ASCII": + result = CodeType.ASCII; + break; + case "BigEndianUnicode": + result = CodeType.BigEdianUnicode; + break; + case "Unicode": + result = CodeType.Unicode; + break; + case "UTF7": + result = CodeType.UTF7; + break; + case "UTF8": + result = CodeType.UTF8; + break; + case "UTF32": + result = CodeType.UTF32; + break; + case "Default": + result = CodeType.Default; + break; + } + + } + catch + { + } + return result; + } + /// + /// Code Type에 + /// 맞는 Encoding 가져오기 + /// + /// + /// Encoding + public static Encoding rGetEncoding(this CodeType _CodeType) + { + Encoding result = Encoding.Default; + try + { + switch (_CodeType) + { + case CodeType.ASCII: + result = Encoding.ASCII; + break; + case CodeType.BigEdianUnicode: + result = Encoding.BigEndianUnicode; + break; + case CodeType.Unicode: + result = Encoding.Unicode; + break; + case CodeType.UTF7: + result = Encoding.UTF7; + break; + case CodeType.UTF8: + result = Encoding.UTF8; + break; + case CodeType.UTF32: + result = Encoding.UTF32; + break; + case CodeType.Default: + result = Encoding.Default; + break; + } + } + catch + { + result = Encoding.Default; + } + return result; + + } + /// + /// Char배열을 문자열로(Encodeing by Default) + /// + /// + /// 코드페이지 오류시 빈문자열 + public static string rToEncString(this char[] _inChars) + { + return _inChars.rToByte().rToEncString(CodeType.Default); + } + /// + /// Char배열을 문자열로 + /// + /// + /// + /// 코드페이지 오류시 빈문자열 + public static string rToEncString(this char[] _inChars, CodeType _CodeType) + { + return _inChars.rToByte().rToEncString(_CodeType); + } + /// + /// Byte배열을 문자열로(Encodeing by Default) + /// + /// + /// 코드페이지 오류시 빈문자열 + public static string rToEncString(this byte[] _inBytes) + { + return _inBytes.rToEncString(CodeType.Default); + } + /// + /// Byte배열을 문자열로 + /// + /// + /// + /// 코드페이지 오류시 빈문자열 + public static string rToEncString(this byte[] _inBytes, CodeType _CodeType) + { + string result = null; + try + { + + switch (_CodeType) + { + case CodeType.ASCII: + result = Encoding.ASCII.GetString(_inBytes); + break; + case CodeType.BigEdianUnicode: + result = Encoding.BigEndianUnicode.GetString(_inBytes); + break; + case CodeType.Unicode: + result = Encoding.Unicode.GetString(_inBytes); + break; + case CodeType.UTF7: + result = Encoding.UTF7.GetString(_inBytes); + break; + case CodeType.UTF8: + result = Encoding.UTF8.GetString(_inBytes); + break; + case CodeType.UTF32: + result = Encoding.UTF32.GetString(_inBytes); + break; + case CodeType.Default: + result = Encoding.Default.GetString(_inBytes); + break; + } + } + catch + { + result = string.Empty; + } + return result; + } + + /// + /// Base64 인코딩을 합니다 + /// + /// 입력문자열 + /// 오류시 빈문자열 + public static string rBase64Encode(this string _inString) + { + return _inString.rBase64Encode(CodeType.Default); + } + /// + /// Base64 인코딩을 합니다 + /// + /// 입력문자열 + /// + /// 코드페이지 오류시 빈문자열 + public static string rBase64Encode(this string _inString, CodeType _CodeType) + { + try + { + return Convert.ToBase64String(_inString.rToByteArray(_CodeType)); + + } + catch + { + return string.Empty; + } + } + /// + /// Base64 인코딩을 합니다 + /// + /// 엔코딩한 문자열 Byte배열 + /// 오류시 빈문자열 + public static string rBase64Encode(this byte[] _inBytes) + { + try + { + return Convert.ToBase64String(_inBytes); + + } + catch + { + return string.Empty; + } + } + /// + /// Base64 인코딩을 합니다 + /// + /// 엔코딩한 문자열 Byte배열 + /// 오류시 빈문자열 + public static string rBase64Encode(this char[] _inChars) + { + try + { + return _inChars.rToByte().rBase64Encode(); + + } + catch + { + return string.Empty; + } + } + /// + /// Base64 인코딩을 합니다 + /// + /// + /// + public static char[] rBase64EncodeChars(this byte[] _inBytes) + { + try + { + return rBase64Encode(_inBytes).ToCharArray(); + + } + catch + { + return null; + } + } + /// + /// Base64 인코딩을 합니다 + /// + /// + /// + public static char[] rBase64EncodeChars(this string _inString) + { + return _inString.rBase64Encode(CodeType.Default).ToCharArray(); + } + /// + /// Base64 인코딩을 합니다 + /// + /// + /// + /// + public static char[] rBase64EncodeChars(this string _inString, CodeType _CodeType) + { + return _inString.rBase64Encode(_CodeType).ToCharArray(); + } + /// + /// Base64 인코딩을 합니다 + /// + /// + /// + public static byte[] rBase64EncodeBytes(this string _inString) + { + return _inString.rBase64EncodeChars().rToByte(); + } + /// + /// Base64 인코딩을 합니다 + /// + /// + /// + /// + public static byte[] rBase64EncodeBytes(this string _inString, CodeType _CodeType) + { + return _inString.rBase64EncodeChars(_CodeType).rToByte(); + } + + /// + /// Base64 디코딩을 합니다 + /// + /// 입력문자열 + /// 오류시 빈문자열 + public static byte[] rBase64DecodeBytes(this string _inString) + { + try + { + return Convert.FromBase64String(_inString); + + } + catch + { + return null; + } + } + /// + /// Base64 디코딩을 합니다 + /// + /// 입력문자열 + /// 코드페이지 오류시 빈문자열 + public static byte[] rBase64DecodeBytes(this byte[] _inBytes) + { + return _inBytes.rToChar().rBase64DecodeBytes(); + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + public static byte[] rBase64DecodeBytes(this char[] _inChars) + { + try + { + return Convert.FromBase64CharArray(_inChars, 0, _inChars.Length); + + } + catch + { + return null; + } + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + public static string rBase64Decode(this string _inString) + { + return _inString.rBase64Decode(CodeType.Default); + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + /// + public static string rBase64Decode(this string _inString, CodeType _CodeType) + { + return _inString.rBase64DecodeBytes().rToEncString(_CodeType); + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + public static string rBase64Decode(this byte[] _inBytes) + { + return _inBytes.rToChar().rBase64Decode(); + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + public static string rBase64Decode(this char[] _inChars) + { + return _inChars.rBase64Decode(CodeType.Default); + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + /// + public static string rBase64Decode(this byte[] _inBytes, CodeType _CodeType) + { + return _inBytes.rToChar().rBase64Decode(_CodeType); + } + /// + /// Base64 디코딩을 합니다 + /// + /// + /// + /// + public static string rBase64Decode(this char[] _inChars, CodeType _CodeType) + { + try + { + return Convert.FromBase64CharArray(_inChars, 0, _inChars.Length).rToEncString(_CodeType); + + } + catch + { + return null; + } + } + #endregion + + #region 컨트롤 문자를 컨트롤 문자명으로 찾기 + /// + /// Find Cotrol ANSI by Cotrol Code Name + /// + /// + /// + public static Ctrl_ASCII rGetControlANSI(this string _inCode) + { + try + { + return (Ctrl_ASCII)Array.IndexOf(Enum.GetNames(typeof(Ctrl_ASCII)), _inCode.ToUpper().Replace("<", "").Replace(">", "")); + + } + catch + { + return Ctrl_ASCII.Null; + } + } + /// + /// Find Cotrol ANSI by Cotrol Code Name + /// + /// + /// + public static char rGetControlChar(this string _inCode) + { + return (char)(_inCode.Replace("<", "").Replace(">", "").rGetControlANSI()); + } + /// + /// Find Cotrol ANSI by Cotrol Code Name + /// + /// + /// + public static byte rGetControlByte(this string _inCode) + { + return (byte)(_inCode.Replace("<", "").Replace(">", "").rGetControlANSI()); + } + /// + /// Find Cotrol ANSI by Cotrol Code Name + /// + /// + /// + public static string rGetControlString(this string _inCode) + { + try + { + return _inCode.Equals(string.Empty) ? string.Empty : Convert.ToString(_inCode.Replace("<", "").Replace(">", "").rGetControlChar()); + } + catch + { + return string.Empty; + } + } + + /// + /// ASCII Control Code to CodeName + /// 문자에 대한 ASCII control 코드명 구하기 + /// + /// + /// + public static string rReplaceANSIToTag(this string _inString) + { + try + { + _inString = _inString.Replace("\0", ""); + foreach (string ctrlCode in Enum.GetNames(typeof(Ctrl_ASCII))) + { + + if (!ctrlCode.Equals(string.Empty)) + _inString = _inString.Replace(ctrlCode.rGetControlString(), string.Format("<{0}>", ctrlCode)); + } + return _inString; + + } + catch + { + return string.Empty; + } + } + /// + /// CodeName to ASCII Control Code + /// 문자열을 바이트 표시 문자열로 변환 + /// + /// + /// + public static string rReplaceToANSI(this string _inString) + { + try + { + foreach (string ctrlCode in Enum.GetNames(typeof(Ctrl_ASCII))) + { + + if (!ctrlCode.Equals(string.Empty)) + _inString = _inString.Replace(string.Format("<{0}>", ctrlCode), ctrlCode.rGetControlString()); + } + return _inString; + + } + catch + { + return string.Empty; + } + } + /// + /// 바이트 표시 형식 문자열을 바이트 배열로 반환 + /// + /// + /// + public static byte[] rReplaceToByte(this string _inString) + { + try + { + string strbuff = _inString; + foreach (string ctrlCode in Enum.GetNames(typeof(Ctrl_ASCII))) + { + + if (!ctrlCode.Equals(string.Empty)) + strbuff = strbuff.Replace(string.Format("<{0}>", ctrlCode), ctrlCode.rGetControlString()); + } + string[] inChars = strbuff.Split('<'); + byte[] result = new byte[0]; + byte[] makeBlock = new byte[0]; + foreach (string aChar in inChars) + { + if (aChar.StartsWith("0x")) + { + string[] inChars2 = aChar.Split('>'); + foreach (string aChar2 in inChars2) + { + if (!aChar2.Equals(string.Empty)) + { + if (aChar2.StartsWith("0x")) + { + makeBlock = new byte[] { aChar2.Replace("0x", "").rHexStrToByte() }; + } + else + { + makeBlock = aChar2.rToByteArray(); + } + int addPos = result.Length; + Array.Resize(ref result, result.Length + makeBlock.Length); + Array.Copy(makeBlock, 0, result, addPos, makeBlock.Length); + } + } + + } + else + { + makeBlock = aChar.rToByteArray(); + int addPos = result.Length; + Array.Resize(ref result, result.Length + makeBlock.Length); + Array.Copy(makeBlock, 0, result, addPos, makeBlock.Length); + } + } + return result; + + } + catch + { + return null; + } + } + + #endregion + + #region byte수를 문자열로 표시 + /// + /// 바이트수를 문자열로 표시 + /// + /// 바이트수 + /// + public static string rByteCountToString(this int _inInt) + { + return rByteCountToString((long)_inInt); + } + /// + /// 바이트수를 문자열로 표시 + /// + /// 바이트수 + /// + public static string rByteCountToString(this long _inLong) + { + return rByteCountToString((double)_inLong); + } + /// + /// 바이트수를 문자열로 표시 + /// + /// + /// + public static string rByteCountToString(this double _inDeouble) + { + string result = string.Empty; + try + { + result = string.Format("{0}Bytes", _inDeouble.ToString("#,##0")); + if (_inDeouble > 512d) + { + if (_inDeouble > (1024d * 512d)) + { + if (_inDeouble > (1024d * 1024d * 512d)) + { + if (_inDeouble > (1024d * 1024d * 1024d * 512d)) + { + result = string.Format("{0}TB", (_inDeouble / 1024d / 1024d / 1024d / 1024d).ToString("#,##0.00")); + } + else + { + result = string.Format("{0}GB", (_inDeouble / 1024d / 1024d / 1024d).ToString("#,##0.00")); + } + } + else + { + result = string.Format("{0}MB", (_inDeouble / 1024d / 1024d).ToString("#,##0.00")); + } + } + else + { + result = string.Format("{0}KB", (_inDeouble / 1024d).ToString("#,##0.00")); + } + } + } + catch + { + } + return result; + } + #endregion + /// + /// 문자열 중 숫자만 뽑기 + /// + /// + /// + public static string rGetOnlyNum(this string _inString) + { + string result = string.Empty; + try + { + if (_inString != null && _inString.Length > 0) + { + char[] getChars = _inString.ToCharArray(); + foreach (char getChar in getChars) + { + if (getChar.rIsNum()) + { + result += getChar; + } + } + } + } + catch + { + + result = string.Empty; + } + return result; + } + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonFunction.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonFunction.cs new file mode 100644 index 0000000..0d29578 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonFunction.cs @@ -0,0 +1,275 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Globalization; +using SPC.Kiosk.Base; +using System.Windows.Media; +using System.Collections.ObjectModel; +using Cosmos.UserFrame; +namespace SPC.Kiosk.Common +{ + public static class CommonFunction + { + /// + /// Reregister Name an Object + /// + /// + /// + /// + public static void ReregisterName(this FrameworkElement _frameworkElement, string _registerName,object _registerObject) + { + try + { + if (_frameworkElement.FindName(_registerName) != null) + { + _frameworkElement.UnregisterName(_registerName); + } + _frameworkElement.RegisterName(_registerName, _registerObject); + } + catch + { + } + } + + /// + /// Find Parent object by name + /// + /// + /// + /// + public static object FindParent(this object _child, string _findName) + { + object result = null; + try + { + var _parent = _child; + while (_parent != null) + { + var getType = _parent.GetType(); + var nameProperty = getType.GetProperty("Name"); + var getName = nameProperty.GetValue(_parent, null); + if (getName.Equals(_findName) && getType.Name.Equals("Grid")) + { + result = _parent; + break; + } + var parentProperty = getType.GetProperty("Parent"); + _parent = parentProperty.GetValue(_parent, null); + } + } + catch + { + result = null; + } + return result; + } + /// + /// String Text Show Rander Size Caculate + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static Size GetFormatedTextSize(this string _inString + , SupportLanguageType _languageType + , double _fontSize + , FontFamily _fontFamily + , FontStyle _fontStyle + , FontWeight _fontWeight + , FontStretch _fontStretch) + { + var result = new Size(0,0); + try + { + if (string.IsNullOrEmpty(_inString)) + { + result = new Size(0, 0); + } + else + { + var formattedText = new FormattedText(_inString, + CultureInfo.GetCultureInfo(_languageType.ToString()), + FlowDirection.LeftToRight, + new Typeface(_fontFamily, _fontStyle, _fontWeight, _fontStretch), + _fontSize, + Brushes.Black); + result = new Size(formattedText.Width, formattedText.Height); + } + } + catch + { + result = new Size(0, 0); + } + return result; + } + /// + /// 문자열 길이를 목적 폭에 마춰서 자르기 (... 뒤에 추가) + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static string TextTrimming(this string _inString + , SupportLanguageType _languageType + , double _fontSize + , FontFamily _fontFamily + , FontStyle _fontStyle + , FontWeight _fontWeight + , FontStretch _fontStretch + , double _targetWidth) + { + var result = _inString; + try + { + if (!string.IsNullOrEmpty(_inString) + && !_targetWidth.Equals(double.NaN) + && _targetWidth > 0) + { + var sourceWidth = _inString.GetFormatedTextSize(_languageType + , _fontSize + , _fontFamily + , _fontStyle + , _fontWeight + , _fontStretch).Width; + if (sourceWidth > _targetWidth) + { + int subCount = 1; + var subString = _inString; + var newStringWidth = 0d; + do + { + subCount++; + if (subString.Length > subCount) + { + subString = subString.Substring(0, _inString.Length - subCount) + "..."; + newStringWidth = subString.GetFormatedTextSize(_languageType + , _fontSize + , _fontFamily + , _fontStyle + , _fontWeight + , _fontStretch).Width; + } + else + { + break; + } + } while (newStringWidth > _targetWidth); + result = subString; + } + } + } + catch + { + result = _inString; + } + return result; + } + /// + /// Make Option Label + /// + /// + /// + public static List GetOptionLabel(List _option) + { + List result = null; + try + { + if (_option is List) + { + var index = 0; + result = new List(); + foreach (var aGroup in _option) + { + foreach (var aOption in aGroup.Options) + { + if (aOption.IsSelected) + { + if (aOption.Name is List) + { + if (index.Equals(0)) + { + foreach (var aName in aOption.Name) + { + result.Add(aName.Clone()); + } + } + else + { + foreach (var aName in result) + { + var addLanguageData = Languages.GetLanguageData(aOption.Name, aName.Type); + aName.LanguageData += "/" + addLanguageData; + if (aOption.Kind.Equals(OptionKind.Count)) + { + aName.LanguageData += string.Format("({0})", aOption.SelectValue.ToString("#,##0")); + } + } + } + index++; + } + } + } + } + } + } + catch + { + result = null; + } + return result; + } + /// + /// GetDate from string + /// + /// + /// + public static DateTime GetDate(string _dateString) + { + var result = DateTime.MinValue; + try + { + + if (_dateString.Length.Equals(6)) + { + result = DateTime.Parse(String.Format("{0}-{1}-{2}" + , _dateString.Substring(0, 2), _dateString.Substring(2, 2), _dateString.Substring(4, 2))).Date; + } + else if (_dateString.Length.Equals(8)) + { + result = DateTime.Parse(String.Format("{0}-{1}-{2}" + , _dateString.Substring(0, 4), _dateString.Substring(4, 2), _dateString.Substring(6, 2))).Date; + } + else + { + result = DateTime.Parse(_dateString).Date; + } + } + catch + { + result = DateTime.MinValue; + } + if (result.Equals(DateTime.MinValue)) + { + result = DateTime.Now.Date; + } + return result; + } + + + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonLog.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonLog.cs new file mode 100644 index 0000000..212b637 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonLog.cs @@ -0,0 +1,377 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +namespace SPC.Kiosk.Common +{ + /// + /// Common Logging Class + /// + public static class CommonLog + { + /// + /// Info Log Write + /// + /// + /// + /// + /// + /// + public static void InfoLogWrite(string _nameSpace, string _className, string _functionName, string _logString, string _subString = "") + { + try + { + InfoLogWrite(string.Format("{0}.{1} {2} {3}", _nameSpace, _className, _functionName, _logString), _subString); + } + catch + { + } + } + /// + /// Info Log Write + /// + /// + /// + /// + /// + public static void InfoLogWrite(object _sendClass, string _functionName, string _logString="", string _subString = "") + { + try + { + LogWrite(Log_Type.Info, _sendClass, _functionName, _logString, _subString); + + } + catch + { + } + } + + /// + /// Info Log Write + /// + /// + /// + public static void InfoLogWrite(string _logString, string _subString = "") + { + try + { + LogWrite(Log_Type.Info, _logString, _subString); + + } + catch + { + } + } + + /// + /// Error Log Write + /// + /// + /// + /// + /// + /// + public static void ErrorLogWrite(string _nameSpace, string _className, string _functionName, string _errorLogString, string _errorSubString = "") + { + try + { + ErrorLogWrite(string.Format("{0}.{1} {2} {3}", _nameSpace, _className, _functionName, _errorLogString), _errorSubString); + } + catch + { + } + } + /// + /// Error Log Write + /// + /// + /// + /// + /// + public static void ErrorLogWrite(object _sendClass, string _functionName, string _errorLogString="", string _errorSubString = "") + { + try + { + LogWrite(Log_Type.Error, _sendClass, _functionName, _errorLogString, _errorSubString); + + } + catch + { + } + } + /// + /// Error Log Write + /// + /// + /// + public static void ErrorLogWrite(string _errorLogString, string _errorSubString = "") + { + try + { + LogWrite(Log_Type.Error, _errorLogString, _errorSubString); + + } + catch + { + } + } + /// + /// Bebug Log Write + /// + /// + /// + /// + /// + /// + public static void DebugLogWrite(string _nameSpace, string _className, string _functionName, string _debugLogString, string _debugSubString = "") + { + try + { + DebugLogWrite(string.Format("{0}.{1} {2} {3}", _nameSpace, _className, _functionName, _debugLogString), _debugSubString); + } + catch + { + } + } + /// + /// Bebug Log Write + /// + /// + /// + /// + /// + public static void DebugLogWrite(object _sendClass, string _functionName, string _debugLogString="", string _debugSubString = "") + { + try + { + LogWrite(Log_Type.Debug, _sendClass, _functionName, _debugLogString, _debugSubString); + + } + catch + { + } + } + /// + /// Bebug Log Write + /// + /// + /// + public static void DebugLogWrite(string _debugLogString, string _debugSubString = "") + { + try + { + LogWrite(Log_Type.Debug, _debugLogString, _debugSubString); + } + catch + { + } + } + /// + /// Log Write + /// + /// + /// + /// + /// + /// + private static void LogWrite(Log_Type _logType, object sendClass, string _functionName, string _logString, string _subString) + { + try + { + var type = sendClass.GetType(); + LogWrite(_logType, string.Format("{0}.{1} {2} {3}", type.Namespace, type.Name, _functionName, _logString), _subString); + } + catch + { + LogWrite(_logType, string.Format("{0} {1}", _functionName, _logString), _subString); + } + } + + /// + /// Log Write + /// + /// + /// + /// + private static void LogWrite(Log_Type _logType, string _logString,string _logSubString) + { + try + { + using (var oLog = new logging(CommonValue.KioskLogSetting)) + { + oLog.LogWrite + ( + new Log_Message + { + LogDate = DateTime.Now, + LogFrom = CommonValue.LogName, + LogType = _logType, + LogMessage = string.IsNullOrEmpty(_logString) + ? _logString + : string.Format("{0}\n\t{1}", _logString, _logSubString), + } + ); + } + + } + catch + { + } + } + + } + + #region Log Writer Class + /// + /// Log Store Object + /// + public class logging : IDisposable + { + private Log_Setting Log_CFG; //Object Configuration Infomation + private DateTime LastLogTime; //Last Log Create Time + private String _LogPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Log"); + /// + /// Log Configuration Setting + /// + public Log_Setting Log_Set + { + get { return Log_CFG; } + set { Log_CFG = value; } + } + /// + /// logging a Message object + /// + /// + public logging(Log_Setting _LogCFG) + { + Log_Set = _LogCFG; + if (!Log_Set.LogPath.Equals(string.Empty) && !Log_Set.LogName.Equals(string.Empty)) + { + if (Log_Set.LogPath.IndexOf('\\') > -1) + { + _LogPath = Path.Combine(Log_Set.LogPath, Log_Set.LogName); + } + else + { + _LogPath = Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Log_Set.LogPath), Log_Set.LogName); + } + } + else if (!Log_Set.LogPath.Equals(string.Empty)) + { + if (Log_Set.LogPath.IndexOf('\\') > -1) + { + _LogPath = Log_Set.LogPath; + } + else + { + _LogPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Log_Set.LogPath); + } + + } + else + { + _LogPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ".Log"); + } + + if (!Directory.Exists(_LogPath)) Directory.CreateDirectory(_LogPath); + LastLogTime = DateTime.Now.AddDays(-1F); + } + + public void Dispose() + { + + } + /// + /// logging function + /// + /// log data + public void LogWrite(Log_Message _LogData) + { + int retryCount = 0; + bool result = false; + do + { + result = LogWriteToFile(_LogData); + retryCount++; + } while (!result && retryCount < 100); + if (!result) + { + Console.WriteLine(string.Format("Log Write Fail:{0}", _LogData.LogMessage)); + } + } + /// + /// Log Write Internal Function + /// + /// + /// + private bool LogWriteToFile(Log_Message _LogData) + { + bool result = false; + try + { + if (Array.IndexOf(Log_Set.LogFrom, _LogData.LogFrom) > -1 + && Array.IndexOf(Log_Set.LogType, _LogData.LogType) > -1) + { + string _filePath = Path.Combine(_LogPath, string.Format("{0}_{1}.log", _LogData.LogFrom, _LogData.LogDate.ToString("yyyyMMdd"))); + result = rTextFileWrite(string.Format("{0},{1},{2},{3}\r\n" + , _LogData.LogDate.ToString("yyyy-MM-dd HH:mm:ss.fff") + , _LogData.LogFrom + , _LogData.LogType + , _LogData.LogMessage), _filePath, true); + if (LastLogTime.Date != DateTime.Now.Date) + { + DateTime _chkDate = DateTime.Now.AddDays(Log_Set.LogDates * -1); + string[] getFiles = Directory.GetFiles(_LogPath); + foreach (string aFile in getFiles) + { + if (File.GetCreationTime(aFile).Date < _chkDate.Date) + { + File.Delete(aFile); + } + } + } + LastLogTime = _LogData.LogDate; + } + else + { + result = true; + } + } + catch + { + + } + return result; + } + /// + /// String Add to File + /// + /// + /// + /// + /// + public bool rTextFileWrite(string _dataString, string _filePath, bool _append) + { + bool result = false; + try + { + using (StreamWriter sw = new StreamWriter(_filePath, _append)) + { + sw.Write(_dataString); + sw.Flush(); + sw.Close(); + } + result = true; + } + catch + { + result = false; + } + return result; + } + } + #endregion + + +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonValue.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonValue.cs new file mode 100644 index 0000000..d893582 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/CommonValue.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Globalization; +using SPC.Kiosk.Base; +using Cosmos.BaseFrame; +namespace SPC.Kiosk.Common +{ + public static class CommonValue + { + /// + /// PB Design Image Store Path + /// + public static string PBdesignImagesPath { get; set; } = @"Kiosk\PB"; + /// + /// Intro Media Path + /// + public static string IntroMediaPath { get; set; } = @"Screen"; + + /// + /// Sign Save Width + /// + public static int SignWidth { get; set; } = 128; + /// + /// Sign Save Height + /// + public static int SignHeight { get; set; } = 64; + /// + /// Presave Sign File Name + /// + public static string SignFileName { get; set; } = "SIGN.BMP"; + /// + /// Sign Poinnts Min + /// + public static long SingPointsMin { get; set; } = 30L; + /// + /// Sign Points Max Limit + /// + public static long SingPointsMax { get; set; } = 2048L; + /// + /// No Sign Amonut Limit + /// + public static double NoSignAmountMaxLimit { get; set; } = 50000d; + /// + /// AiScanner Program Path + /// + public static string AiScannerPath { get; set; } = "O2AiScannerHS.exe"; + /// + /// Payments EndType + /// + public static PaymentEndWindowEndType PaymentEndType { get; set; } = PaymentEndWindowEndType.Bell; + /// + /// Payments Disable EndType + /// + public static PaymentEndWindowEndType DisableEndType { get; set; } = PaymentEndWindowEndType.Talk; + + /// + /// Input Wait Time Out Seconds + /// + public static double TimeOutSeconds { get; set; } = 30d; + /// + /// Display Language + /// + public static SupportLanguageType CommonLanguageType { get; set; } = SupportLanguageType.ko; + + public static string CashReceiptDefaultNo { get; set; } = "0100001234"; + /// + /// check Touch Device Exist + /// + public static bool IsHasTouchDevice + { + get + { + return Tablet.TabletDevices.OfType().Any(t => t.Type.Equals(TabletDeviceType.Touch)); + } + } + /// + /// check Mouse Exist + /// + public static bool IsHasMouse + { + get + { + return Mouse.PrimaryDevice != null; + } + + } + /// + /// Default Item Image + /// + public static string ItemDefaultImage + { + get + { + return ResourceManager.GetNximagePathAdd("img_contents_default.png", CommonValue.PBdesignImagesPath); + } + } + public static string OptionDefaultImage + { + get + { + return ResourceManager.GetNximagePathAdd("ic_option_takein.png", CommonValue.PBdesignImagesPath); + } + } + /// + /// Log 파일 시작명 '명칭_YYYMMDD.log' + /// + public static string LogName { get; set; } = @"KioskPB"; + /// + /// Log 보관 기한 + /// + public static int LogSaveDays { get; set; } = 30; + /// + /// Log Setting + /// + public static Log_Setting KioskLogSetting + { + get + { + return new Log_Setting + { + LogPath = Path.Combine(BaseCom.NxBinPath ,@"Kiosk"), + LogName = LogName, + LogFrom = new string[] { LogName }, + LogDates = LogSaveDays, + LogType = new Log_Type[] { Log_Type.Info,Log_Type.Error,Log_Type.Debug } + }; + } + } + + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/KioskMessageBox.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/KioskMessageBox.cs new file mode 100644 index 0000000..676fc4e --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/KioskMessageBox.cs @@ -0,0 +1,426 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Globalization; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + public static class KioskMessageBox + { + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + return ShowMessageBox(0, new Size(0, 0), null, null, _message, MessageBoxButton.OK, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(List _message, + MessageBoxButton _boxButton, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + return ShowMessageBox(0, new Size(0, 0), null, null, _message, _boxButton, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(List _title, + List _message, + MessageBoxButton _boxButton = MessageBoxButton.OK, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + return ShowMessageBox(0, new Size(0, 0), _title, null, _message, _boxButton, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(List _title, + List _subtitle, + List _message, + MessageBoxButton _boxButton = MessageBoxButton.OK, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + return ShowMessageBox(0, new Size(0, 0), _title, _subtitle, _message, _boxButton, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(int _screenNo, + List _title, + List _subtitle, + List _message, + MessageBoxButton _boxButton = MessageBoxButton.OK, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + return ShowMessageBox(_screenNo, new Size(0, 0), _title, _subtitle, _message, _boxButton, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(Size _size, + List _title, + List _subtitle, + List _message, + MessageBoxButton _boxButton, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + return ShowMessageBox(0, _size, _title, _subtitle, _message, _boxButton, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// ShowMessageBox + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(int _screenNo, + Size _size, + List _title, + List _subtitle, + List _message, + MessageBoxButton _boxButton, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0) + { + var result = MessageBoxResult.None; + try + { + + + var frmMessageBox = new MessageBoxForm(_screenNo, _size, _boxButton, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + + if (_title == null) + { + frmMessageBox.MessageHeader.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.MessageHeader.MultiLanguage = _title; + } + if (_subtitle == null) + { + frmMessageBox.MessageSubHeader.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.MessageSubHeader.MultiLanguage = _subtitle; + } + frmMessageBox.Message.MultiLanguage = _message; + switch (_boxButton) + { + case MessageBoxButton.OK: + frmMessageBox.Yes_Button.Width = frmMessageBox.BoxBase.Width; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0039"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Center; + frmMessageBox.No_Button.Visibility = Visibility.Collapsed; + frmMessageBox.Cancel_Button.Visibility = Visibility.Collapsed; + break; + case MessageBoxButton.OKCancel: + frmMessageBox.Yes_Button.Width = frmMessageBox.BoxBase.Width / 2; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0039"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Left; + frmMessageBox.No_Button.Visibility = Visibility.Collapsed; + frmMessageBox.Cancel_Button.Width = frmMessageBox.BoxBase.Width / 2; + frmMessageBox.Cancel_Button.LanguageText = Languages.GetMessages("BTN0033"); + frmMessageBox.Cancel_Button.HorizontalAlignment = HorizontalAlignment.Right; + break; + case MessageBoxButton.YesNo: + frmMessageBox.Yes_Button.Width = frmMessageBox.BoxBase.Width / 2; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0005"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Left; + frmMessageBox.No_Button.Width = frmMessageBox.BoxBase.Width / 2; + frmMessageBox.No_Button.LanguageText = Languages.GetMessages("BTN0021"); + frmMessageBox.No_Button.HorizontalAlignment = HorizontalAlignment.Right; + frmMessageBox.Cancel_Button.Visibility = Visibility.Collapsed; + break; + case MessageBoxButton.YesNoCancel: + frmMessageBox.Yes_Button.Width = frmMessageBox.BoxBase.Width / 3; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0005"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Left; + frmMessageBox.No_Button.Width = frmMessageBox.BoxBase.Width / 3; + frmMessageBox.No_Button.LanguageText = Languages.GetMessages("BTN0021"); + frmMessageBox.No_Button.HorizontalAlignment = HorizontalAlignment.Center; + frmMessageBox.Cancel_Button.Width = frmMessageBox.BoxBase.Width / 3; + frmMessageBox.Cancel_Button.LanguageText = Languages.GetMessages("BTN0033"); + frmMessageBox.Cancel_Button.HorizontalAlignment = HorizontalAlignment.Right; + break; + } + frmMessageBox.ShowDialog(); + result = frmMessageBox.BoxResult; + frmMessageBox = null; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "KioskMessageBox", "ShowMessageBox()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = MessageBoxResult.None; + } + + return result; + } + /// + /// Show Time Message Box + /// + /// + /// + /// + /// + /// + /// + public static void TimeMessageBox(List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 5) + { + TimeMessageBox(0, new Size(0, 0), null, null, _message, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// Show Time Message Box + /// + /// + /// + /// + /// + /// + /// + /// + public static void TimeMessageBox(List _title, + List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 5) + { + TimeMessageBox(0, new Size(0, 0), _title, null, _message, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// Show Time Message Box + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void TimeMessageBox(List _title, + List _subtitle, + List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 5) + { + TimeMessageBox(0, new Size(0, 0), _title, _subtitle, _message, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// Show Time Message Box + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void TimeMessageBox(int _screenNo, + List _title, + List _subtitle, + List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 5) + { + TimeMessageBox(_screenNo, new Size(0, 0), _title, _subtitle, _message, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// Show Time Message Box + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void TimeMessageBox( + Size _size, + List _title, + List _subtitle, + List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 5) + { + TimeMessageBox(0, _size, _title, _subtitle, _message, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + } + /// + /// Show Time Message Box + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static void TimeMessageBox(int _screenNo, + Size _size, + List _title, + List _subtitle, + List _message, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.None, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.None, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 5) + { + try + { + if (_message is List && !string.IsNullOrEmpty(_message.GetLanguageData(SupportLanguageType.ko))) + { + + var frmMessageBox = new MessageBoxForm(_screenNo, _size, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + if (_title == null) + { + frmMessageBox.MessageHeader.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.MessageHeader.MultiLanguage = _title; + } + if (_subtitle == null) + { + frmMessageBox.MessageSubHeader.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.MessageHeader.MultiLanguage = _title; + } + frmMessageBox.Message.MultiLanguage = _message; + frmMessageBox.ShowDialog(); + frmMessageBox = null; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "KioskMessageBox", "TimeMessageBox()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/Languages.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/Languages.cs new file mode 100644 index 0000000..26d7d62 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/Languages.cs @@ -0,0 +1,371 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Globalization; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// 다국어 지원 Helper + /// + public static class Languages + { + private static List MultiLanguagesStore = new List(); + private static bool Init { get; set; } = false; + private static void initClass() + { + SetMessage("CommonYes", SupportLanguageType.en, "Yes"); + SetMessage("CommonYes", SupportLanguageType.ko, "예"); + SetMessage("CommonOK", SupportLanguageType.en, "OK"); + SetMessage("CommonOK", SupportLanguageType.ko, "확인"); + SetMessage("CommonNo", SupportLanguageType.en, "No"); + SetMessage("CommonNo", SupportLanguageType.ko, "아니오"); + SetMessage("CommonCancel", SupportLanguageType.en, "Cancel"); + SetMessage("CommonCancel", SupportLanguageType.ko, "취소"); + SetMessage("CommonClear", SupportLanguageType.en, "Clear"); + SetMessage("CommonClear", SupportLanguageType.ko, "삭제"); + SetMessage("CommonPrevious", SupportLanguageType.en, "Previous"); + SetMessage("CommonPrevious", SupportLanguageType.ko, "이전으로"); + SetMessage("CommonNext", SupportLanguageType.en, "Next"); + SetMessage("CommonNext", SupportLanguageType.ko, "다음으로"); + SetMessage("CommonRetry", SupportLanguageType.en, "Retry"); + SetMessage("CommonRetry", SupportLanguageType.ko, "재시도"); + SetMessage("CommonDetail", SupportLanguageType.en, "Detail"); + SetMessage("CommonDetail", SupportLanguageType.ko, "상세보기"); + SetMessage("CommonPayment", SupportLanguageType.en, "Payment"); + SetMessage("CommonPayment", SupportLanguageType.ko, "결제하기"); + SetMessage("CommonPopup", SupportLanguageType.en, "Popup"); + SetMessage("CommonPopup", SupportLanguageType.ko, "팝업"); + SetMessage("CommonExist", SupportLanguageType.en, "Exist"); + SetMessage("CommonExist", SupportLanguageType.ko, "종료"); + SetMessage("CommonToggle", SupportLanguageType.en, "Toggle"); + SetMessage("CommonToggle", SupportLanguageType.ko, "토글"); + SetMessage("TradeHeader", SupportLanguageType.en, "Test Item List"); + SetMessage("TradeHeader", SupportLanguageType.ko, "테스트 상품 목록"); + + SetMessage("PopupHeader", SupportLanguageType.en, "PopupTest"); + SetMessage("PopupHeader", SupportLanguageType.ko, "팝업 테스트"); + SetMessage("PopupMessage", SupportLanguageType.en, "Test Message"); + SetMessage("PopupMessage", SupportLanguageType.ko, "테스트 메세지"); + SetMessage("TimePopupMessage", SupportLanguageType.en, "Time Popup Message"); + SetMessage("TimePopupMessage", SupportLanguageType.ko, "타임 팝업 메세지"); + + SetMessage("MemberLoginTitle", SupportLanguageType.en, "Happy Point Member Login"); + SetMessage("MemberLoginTitle", SupportLanguageType.ko, "해피 포인트 회원 확인"); + SetMessage("MobileNumberMessage", SupportLanguageType.en, "Input HP number."); + SetMessage("MobileNumberMessage", SupportLanguageType.ko, "휴대폰 번호"); + SetMessage("CompanyNumberMessage", SupportLanguageType.en, "Input Compay number."); + SetMessage("CompanyNumberMessage", SupportLanguageType.ko, "사업자번호"); + SetMessage("VibrationBellNumber", SupportLanguageType.en, "Vibration bell number"); + SetMessage("VibrationBellNumber", SupportLanguageType.ko, "진동벨번호"); + + SetMessage("InputBarCodeMessage", SupportLanguageType.en, "Input BarCode number."); + SetMessage("InputBarCodeMessage", SupportLanguageType.ko, "바코드 번호"); + SetMessage("InputPassword", SupportLanguageType.en, "Input Password"); + SetMessage("InputPassword", SupportLanguageType.ko, "비밀번호 입력"); + SetMessage("TimeOver", SupportLanguageType.en, "Operation Time Over"); + SetMessage("TimeOver", SupportLanguageType.ko, "입력 시간이 초과 되었습니다."); + SetMessage("CommonReserve", SupportLanguageType.en, "Reserve"); + SetMessage("CommonReserve", SupportLanguageType.ko, "적립"); + SetMessage("CommonUsing", SupportLanguageType.en, "Using"); + SetMessage("CommonUsing", SupportLanguageType.ko, "사용"); + SetMessage("CommonUsingAll", SupportLanguageType.en, "Using All"); + SetMessage("CommonUsingAll", SupportLanguageType.ko, "모두 사용"); + SetMessage("InputUsingPoints", SupportLanguageType.en, "Input Using Points"); + SetMessage("InputUsingPoints", SupportLanguageType.ko, "사용포인트"); + SetMessage("PriceForPayment", SupportLanguageType.en, "Price for payment"); + SetMessage("PriceForPayment", SupportLanguageType.ko, "최종 결제금액"); + SetMessage("ProcessingOK", SupportLanguageType.en, "Processing Sucess."); + SetMessage("ProcessingOK", SupportLanguageType.ko, "정상 처리 되었습니다."); + + SetMessage("CommonPaymentAgain", SupportLanguageType.en, "Retry"); + SetMessage("CommonPaymentAgain", SupportLanguageType.ko, "다시 결제"); + SetMessage("CommonPaymentCancel", SupportLanguageType.en, "Cancel Payment"); + SetMessage("CommonPaymentCancel", SupportLanguageType.ko, "결제 취소"); + + SetMessage("CommonPerson", SupportLanguageType.en, "Person"); + SetMessage("CommonPerson", SupportLanguageType.ko, "개인"); + SetMessage("CommonCompany", SupportLanguageType.en, "Company"); + SetMessage("CommonCompany", SupportLanguageType.ko, "사업자"); + Init = true; + } + /// + /// Get Language Native Name + /// + /// + /// + public static string GetLanguageNativeName(this SupportLanguageType _languageType) + { + string result = string.Empty; + try + { + result = _languageType.ToString().GetLanguageNativeName(); + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// Get Language Native Name + /// + /// + /// + public static string GetLanguageNativeName(this string _languageTypeString) + { + string result = string.Empty; + try + { + var cultureInfo = CultureInfo.GetCultureInfo(_languageTypeString); + result = cultureInfo.NativeName; + + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// 특정 코드 다국어 객체 가져오기 + /// + /// + /// + public static List GetMessages(this string _code) + { + List result = new List(); + try + { + if (!Init) initClass(); + if (MultiLanguagesStore != null && MultiLanguagesStore.Count > 0) + { + var getLanguage = MultiLanguagesStore.Where(r => r.MessageCode.Equals(_code)).FirstOrDefault(); + if (getLanguage is M_MultiLanguage) + { + result = getLanguage.MessageData; + } + } + if (result.Count.Equals(0)) + { + foreach (var aLanguage in Enum.GetValues(typeof(SupportLanguageType)).Cast()) + { + result.Add(new M_Language { Type = aLanguage, LanguageData = string.Format("{0}_{1}", _code, aLanguage.ToString()) }); + } + + } + } + catch + { + result = new List(); + } + return result; + } + /// + /// 다국어 정보 등록 + /// + /// + /// + /// + public static void SetMessage(this string _code, SupportLanguageType _languageType, string _messageData) + { + try + { + if (string.IsNullOrEmpty(_code)) return; + if (string.IsNullOrEmpty(_messageData)) _messageData=string.Empty; + if (MultiLanguagesStore == null) MultiLanguagesStore = new List(); + var getLanguage = MultiLanguagesStore.Where(r => r.MessageCode.Equals(_code)).FirstOrDefault(); + if (getLanguage != null) + { + var getMessage = getLanguage.MessageData.Where(r => r.Type.Equals(_languageType)).FirstOrDefault(); + if (getMessage is M_Language) + { + getMessage.LanguageData = _messageData; //update + + } + else //Language Type Data 가 없는 경우 추가 + { + getLanguage.MessageData.Add + ( + new M_Language + { + Type = _languageType, + LanguageData = _messageData + } + ); + } + } + else //해당 Language Code Data가 없는 경우 + { + MultiLanguagesStore.Add + ( + new M_MultiLanguage + { + MessageCode = _code, + MessageData = new List + { + new M_Language + { + Type = _languageType, + LanguageData = _messageData + } + } + } + ); + } + } + catch + { + } + } + /// + /// 특정 코드, 대상 언어 정보 가져오기 + /// + /// + /// + /// + public static string GetLanguageData(this string _code, SupportLanguageType _supportLanguageType) + { + string result = string.Empty; + try + { + if (!Init) initClass(); + if (MultiLanguagesStore != null && MultiLanguagesStore.Count > 0) + { + var getLanguage = MultiLanguagesStore.Where(r => r.MessageCode.Equals(_code)).FirstOrDefault().MessageData; + if (getLanguage is List) + { + result = getLanguage.GetLanguageData(_supportLanguageType); + } + } + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// 다국어 객체에서 특정 언어 정보 가져오기 + /// + /// + /// + /// + public static string GetLanguageData(this List _multiLanguageData, SupportLanguageType _supportLanguageType) + { + string result = string.Empty; + try + { + if (_multiLanguageData != null) + { + var getMessage = _multiLanguageData.Where(r => r.Type.Equals(_supportLanguageType)).FirstOrDefault(); + if (getMessage == null) + { + getMessage = _multiLanguageData.Where(r => r.Type.Equals(SupportLanguageType.ko)).FirstOrDefault(); + } + if (getMessage is M_Language) result = getMessage.LanguageData.Replace("\\n", "\n"); + } + } + catch + { + result = string.Empty; + } + return result; + } + /// + /// 다국어 문자열 연결 + /// + /// + /// + /// + /// + public static List CombineLanguageData(this List _multiLanguageData1, List _multiLanguageData2, string _format = "") + { + List result = null; + try + { + + if (_multiLanguageData1 != null && _multiLanguageData2 !=null) + { + result = new List(); + foreach (var aLanguage in Enum.GetValues(typeof(SupportLanguageType)).Cast()) + { + if (string.IsNullOrEmpty(_format)) _format = "{0}{1}"; + var addedData = new M_Language + { + Type = aLanguage, + LanguageData = string.Format(_format, _multiLanguageData1.GetLanguageData(aLanguage), _multiLanguageData2.GetLanguageData(aLanguage)) + }; + result.Add(addedData); + } + } + } + catch + { + result = null; + } + return result; + + } + /// + /// 다국어 문자열 연결 + /// + /// + /// + /// + public static List JoinLanguage(this List[] _multiLanguageDatas, string _joinString = "") + { + List result = null; + try + { + + if (_multiLanguageDatas != null ) + { + result = new List(); + foreach (var aLanguageData in _multiLanguageDatas) + { + if (_multiLanguageDatas.Last().Equals(aLanguageData)) + { + result = result.CombineLanguageData(aLanguageData); + } + else + { + result = result.CombineLanguageData(aLanguageData, "{0}{1}" + _joinString); + } + } + } + } + catch + { + result = null; + } + return result; + + } + /// + /// 다국어 정보 모두 삭제 + /// + public static void ClearMessage() + { + if (MultiLanguagesStore != null) + { + MultiLanguagesStore.Clear(); + } + } + /// + /// 다국어 정보 모두 삭제 후 해제 + /// + public static void Dispose() + { + if (MultiLanguagesStore != null) + { + MultiLanguagesStore.Clear(); + MultiLanguagesStore = null; + } + + } + + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/PopupMessageBox.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/PopupMessageBox.cs new file mode 100644 index 0000000..3aaafbc --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/PopupMessageBox.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Globalization; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + public static class PopupMessageBox + { + /// + /// Show Message Box + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public static MessageBoxResult ShowMessageBox(SupportLanguageType _languageType, + List _message1, + List _Message2, + MessageBoxButton _boxButton, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.FullSizeUp, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.FullSizeDown, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 10d) + { + var result = MessageBoxResult.None; + try + { + + + var frmMessageBox = new PopupMessage(_languageType, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + if (_message1 == null) + { + frmMessageBox.Message1.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.Message1.MultiLanguage = _message1; + } + if (_Message2 == null) + { + frmMessageBox.Message2.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.Message2.MultiLanguage = _Message2; + } + frmMessageBox.BoxButton = _boxButton; + switch (_boxButton) + { + case MessageBoxButton.OK: + frmMessageBox.Yes_Button.Width = frmMessageBox.FrameBase.Width; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0039"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Center; + frmMessageBox.No_Button.Visibility = Visibility.Collapsed; + frmMessageBox.Cancel_Button.Visibility = Visibility.Collapsed; + break; + case MessageBoxButton.OKCancel: + frmMessageBox.Yes_Button.Width = frmMessageBox.FrameBase.Width / 2; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0039"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Left; + frmMessageBox.No_Button.Visibility = Visibility.Collapsed; + frmMessageBox.Cancel_Button.Width = frmMessageBox.FrameBase.Width / 2; + frmMessageBox.Cancel_Button.LanguageText = Languages.GetMessages("BTN0033"); + frmMessageBox.Cancel_Button.HorizontalAlignment = HorizontalAlignment.Right; + break; + case MessageBoxButton.YesNo: + frmMessageBox.Yes_Button.Width = frmMessageBox.FrameBase.Width / 2; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0005"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Left; + frmMessageBox.No_Button.Width = frmMessageBox.FrameBase.Width / 2; + frmMessageBox.No_Button.LanguageText = Languages.GetMessages("BTN0021"); + frmMessageBox.No_Button.HorizontalAlignment = HorizontalAlignment.Right; + frmMessageBox.Cancel_Button.Visibility = Visibility.Collapsed; + break; + case MessageBoxButton.YesNoCancel: + frmMessageBox.Yes_Button.Width = frmMessageBox.FrameBase.Width / 3; + frmMessageBox.Yes_Button.LanguageText = Languages.GetMessages("BTN0005"); + frmMessageBox.Yes_Button.HorizontalAlignment = HorizontalAlignment.Left; + frmMessageBox.No_Button.Width = frmMessageBox.FrameBase.Width / 3; + frmMessageBox.No_Button.LanguageText = Languages.GetMessages("BTN0021"); + frmMessageBox.No_Button.HorizontalAlignment = HorizontalAlignment.Center; + frmMessageBox.Cancel_Button.Width = frmMessageBox.FrameBase.Width / 3; + frmMessageBox.Cancel_Button.LanguageText = Languages.GetMessages("BTN0033"); + frmMessageBox.Cancel_Button.HorizontalAlignment = HorizontalAlignment.Right; + break; + } + frmMessageBox.ShowDialog(); + result = frmMessageBox.BoxResult; + frmMessageBox = null; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "PopupMessageBox", "TimeMessageBox()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = MessageBoxResult.None; + } + + return result; + } + + public static void TimeMessageBox(SupportLanguageType _languageType, + List _message1, + List _Message2, + OpenCloseAnimationType _openAnimationType = OpenCloseAnimationType.FullSizeUp, + OpenCloseAnimationType _closeAnimationType = OpenCloseAnimationType.FullSizeDown, + double _startEndOpacity = 0.5, + double _animationSeconds = 0.2, + double _waitTime = 0.5) + { + try + { + if (_message1 is List && !string.IsNullOrEmpty(_message1.GetLanguageData(SupportLanguageType.ko))) + { + + var frmMessageBox = new PopupMessage(_languageType, _openAnimationType, _closeAnimationType, _startEndOpacity, _animationSeconds, _waitTime); + if (_message1 == null) + { + frmMessageBox.Message1.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.Message1.MultiLanguage = _message1; + } + if (_Message2 == null) + { + frmMessageBox.Message2.Visibility = Visibility.Collapsed; + } + else + { + frmMessageBox.Message2.MultiLanguage = _Message2; + } + frmMessageBox.Yes_Button.Width = 0; + frmMessageBox.No_Button.Width = 0; + frmMessageBox.Cancel_Button.Width = 0; + frmMessageBox.ShowDialog(); + frmMessageBox = null; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "PopupMessageBox", "TimeMessageBox()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/ResourceManager.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/ResourceManager.cs new file mode 100644 index 0000000..bf45f21 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/ResourceManager.cs @@ -0,0 +1,573 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using Cosmos.BaseFrame; +using Cosmos.Common; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows; +using System.Windows.Input; +using System.Windows.Interop; +using Microsoft.Win32.SafeHandles; +using System.Runtime.InteropServices; +using System.Reflection; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + /// + /// Resource Management Class + /// + public static class ResourceManager + { + #region [ Resource Path ] + public static string BinPath + { + get + { + try + { + return BaseCom.NxBinPath; + } + catch + { + + return @"C:\SPC\POS\BIN"; + } + } + } + public static string SignDataPath + { + get + { + try + { + return BaseCom.NxDataPath + "SIGN\\"; + } + catch + { + + return @"C:\temp\"; + } + } + } + + /// + /// Get CDP Image File(Path) + /// + /// Path without Filename + /// + public static string GetCDPimagePath(string _imageFileName) + { + string result = null; + try + { + string ImagePath = Path.Combine(BaseCom.NxCDPPath + CommonValue.IntroMediaPath , _imageFileName); + if (File.Exists(ImagePath)) + { + result = ImagePath; + } + else + { + ImagePath = Path.Combine(BaseCom.NxImgPath, _imageFileName); + if (File.Exists(ImagePath)) result = ImagePath; + } + } + catch + { + result = null; + } + return result; + } + + /// + /// Get Default Image File(Path) + /// + /// Path without Filename + /// + public static string GetNximagePath(string _imageFileName) + { + string result = null; + try + { + string ImagePath = Path.Combine(BaseCom.NxImgPath, _imageFileName); + if (File.Exists(ImagePath)) result = ImagePath; + } + catch + { + result = null; + } + return result; + } + /// + /// Get Default Image File(Path) under Add path + /// + /// + /// + /// + public static string GetNximagePathAdd(string _imageFileName,string _addPath) + { + string result = null; + try + { + string ImagePath = Path.Combine(BaseCom.NxImgPath + _addPath, _imageFileName); + if (File.Exists(ImagePath)) result = ImagePath; + } + catch + { + result = null; + } + return result; + } + /// + /// Get CDP media File(Path) + /// + /// Path without Filename + /// + public static string GetCDPmediaPath(string _mediaFileName) + { + string result = null; + try + { + string ImagePath = Path.Combine(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER, _mediaFileName); + if (File.Exists(ImagePath)) result = ImagePath; + } + catch + { + result = null; + } + return result; + } + /// + /// Get CDP Item Image File (Path) + /// + /// + /// + public static string GetCDPItemImagePath(string _ItemImageFileName) + { + string result = null; + try + { + string ImagePath = Path.Combine(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.ITEM, _ItemImageFileName); + if (File.Exists(ImagePath)) result = ImagePath; + } + catch + { + result = null; + } + return result; + } + + /// + /// Get CDP Option Item Image File (Path) + /// + /// + /// + public static string GetCDPOptionImagePath(string _ItemImageFileName) + { + string result = null; + try + { + string ImagePath = Path.Combine(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.OPTION, _ItemImageFileName); + if (File.Exists(ImagePath)) result = ImagePath; + } + catch + { + result = null; + } + return result; + } + + /// + /// All CDP Item Images + /// + /// + /// + public static string[] GetItemImages(string _searchKey) + { + string itemImagePath = Path.Combine(BaseCom.NxCDPPath, PosConst.MST_IMG_PATH.ITEM); + return Directory.GetFiles(itemImagePath, _searchKey); + } + /// + /// + /// + /// + /// + public static BitmapImage LoadBitmapImage(string _path) + { + var bitmapImage = default(BitmapImage); + try + { + if (File.Exists(_path)) + { + byte[] byteArray = null; + using (var fileStream = new FileStream(_path, FileMode.Open, FileAccess.Read)) + { + using (var binaryReader = new BinaryReader(fileStream)) + { + byteArray = binaryReader.ReadBytes((int)fileStream.Length); + } + } + var memoryStream = new MemoryStream(byteArray); + bitmapImage = new BitmapImage(); + bitmapImage.BeginInit(); + bitmapImage.StreamSource = memoryStream; + bitmapImage.EndInit(); + } + } + catch + { + bitmapImage = default(BitmapImage); + } + return bitmapImage; + } + /// + /// Get Bitmap Image From Cache + /// If Not Exist Add Chache + /// + /// + /// + public static BitmapImage GetBitmapImage(string _path) + { + BitmapImage getIamge = null; + try + { + if (!_path.CacheContain()) _path.AddCache(LoadBitmapImage(_path)); + getIamge = _path.CacheContain() ? _path.GetCache() : default(BitmapImage); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "ResourceManager", "GetBitmapImage()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + getIamge = null; + } + return getIamge; + } + /// + /// BitmapImage from UriPath + /// + /// + /// + public static BitmapImage GetUriBitmapImage(string _uriPath) + { + BitmapImage getIamge = null; + try + { + getIamge = new BitmapImage(new Uri(_uriPath)); + + } + catch (Exception) + { + getIamge = null; + } + return getIamge; + } + public static string GetItemImage(this string _ImageFile, string _itemDefaultBrush) + { + string result = _itemDefaultBrush; + try + { + if (!string.IsNullOrEmpty(_ImageFile)) + { + result = GetCDPItemImagePath(_ImageFile); + if (string.IsNullOrEmpty(result)) result = _itemDefaultBrush; + } + else + { + result = _itemDefaultBrush; + } + } + catch + { + result = _itemDefaultBrush; + } + return result; + } + + public static string GetOptionImage(this string _ImageFile, string _optionDefaultBrush) + { + string result = _optionDefaultBrush; + try + { + if (!string.IsNullOrEmpty(_ImageFile)) + { + result = GetCDPOptionImagePath(_ImageFile); + if (string.IsNullOrEmpty(result)) result = _optionDefaultBrush; + } + else + { + result = _optionDefaultBrush; + } + } + catch + { + result = _optionDefaultBrush; + } + return result; + } + + #endregion Resource Path + + #region [ SetBrush ] + /// + /// Get image Brush by BitmapImage + /// + /// + /// + /// + /// + /// + /// + /// + public static ImageBrush GetImageBrush(DependencyObject _getObject + , BitmapImage _bitmapImage + , Stretch _stretch + , Size _size + , PropertyInfo _widthProperty + , PropertyInfo _HeightProperty + , double _offsetX = 0d + , double _offsetY = 0d) + { + ImageBrush imageBrush = null; + try + { + imageBrush = new ImageBrush(_bitmapImage); + var imgSource = imageBrush.ImageSource as BitmapImage; + var ratio = _size.Width / imgSource.PixelWidth; + switch (_stretch) + { + case Stretch.UniformToFill: + imageBrush.Stretch = Stretch.UniformToFill; + _widthProperty.SetValue(_getObject, imgSource.PixelWidth, null); + _HeightProperty.SetValue(_getObject, imgSource.PixelHeight, null); + break; + case Stretch.Fill: + if (!_size.Width.Equals(double.NaN)) + { + imageBrush.Stretch = Stretch.Fill; + _widthProperty.SetValue(_getObject, _size.Width, null); + _HeightProperty.SetValue(_getObject, imgSource.PixelHeight * ratio, null); + } + break; + case Stretch.Uniform: + imageBrush.Stretch = Stretch.Uniform; + _widthProperty.SetValue(_getObject, _size.Width.Equals(double.NaN) ? imgSource.PixelWidth : _size.Width, null); + _HeightProperty.SetValue(_getObject, _size.Height.Equals(double.NaN) ? imgSource.PixelHeight : _size.Height, null); + break; + case Stretch.None: + imageBrush.Stretch = Stretch.Fill; + _widthProperty.SetValue(_getObject, imgSource.PixelWidth, null); + _HeightProperty.SetValue(_getObject, imgSource.PixelHeight, null); + break; + } + if (!_offsetX.Equals(0d) || !_offsetY.Equals(0d)) + { + imageBrush.Transform = new TranslateTransform(_offsetX, _offsetY); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "ResourceManager", "GetImageBrush()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + imageBrush = null; + } + return imageBrush; + } + public static void SetBrush(DependencyObject _getObject, string _setProperty, string _getBlush, Stretch _stretch = Stretch.None, Size _size = new Size()) + { + SetBrush( _getObject, _setProperty, _getBlush, 0d, 0d, _stretch, _size); + } + /// + /// Set a Brush by String to Object Property + /// + public static void SetBrush(DependencyObject _getObject, string _setProperty, string _getBlush,double _imageOffsetX, double _imageOffsetY, Stretch _stretch = Stretch.None, Size _size = new Size()) + { + Brush result = default(Brush); + try + { + + Type getObjectType = _getObject.GetType(); + var widthProperty = getObjectType.GetProperty("Width"); + var HeightProperty = getObjectType.GetProperty("Height"); + if (_getBlush.StartsWith("#")) + { + //String start with '#' (a Byte Data Color) + var colorByteString = _getBlush.Replace("#", ""); + //RGB + if (colorByteString.Length.Equals(6)) + { + byte byteRed = (byte)Convert.ToInt16(colorByteString.Substring(0, 2), 16); + byte byteGreen = (byte)Convert.ToInt16(colorByteString.Substring(2, 2), 16); + byte byteBlue = (byte)Convert.ToInt16(colorByteString.Substring(4, 2), 16); + if (!_size.Width.Equals(double.NaN) && _size.Width > 0) widthProperty.SetValue(_getObject, _size.Width, null); + if (!_size.Height.Equals(double.NaN) && _size.Height > 0) HeightProperty.SetValue(_getObject, _size.Height, null); + result = new SolidColorBrush(Color.FromRgb(byteRed, byteGreen, byteBlue)); + } + //SRGB + if (colorByteString.Length.Equals(8)) + { + byte byteAlpa = (byte)Convert.ToInt16(colorByteString.Substring(0, 2), 16); + byte byteRed = (byte)Convert.ToInt16(colorByteString.Substring(2, 2), 16); + byte byteGreen = (byte)Convert.ToInt16(colorByteString.Substring(4, 2), 16); + byte byteBlue = (byte)Convert.ToInt16(colorByteString.Substring(6, 2), 16); + if (!_size.Width.Equals(double.NaN) && _size.Width > 0) widthProperty.SetValue(_getObject, _size.Width, null); + if (!_size.Height.Equals(double.NaN) && _size.Height > 0) HeightProperty.SetValue(_getObject, _size.Height, null); + result = new SolidColorBrush(Color.FromScRgb(byteAlpa, byteRed, byteGreen, byteBlue)); + } + } + else if (_getBlush.StartsWith("pack://") && _getBlush.Contains(";component/")) + { + if (GetUriBitmapImage(_getBlush) is BitmapImage bitMapImage) + { + result = GetImageBrush(_getObject, bitMapImage, _stretch, _size, widthProperty, HeightProperty, _imageOffsetX, _imageOffsetY); + } + } + else + { + + //String start with out '#' (Not Byte Color) + var ColorNameProperties = typeof(Colors).GetProperties(); + bool FindColor = false; + //is Color Name ? + foreach (var aColorNamePropertie in ColorNameProperties) + { + if (aColorNamePropertie.Name.Equals(_getBlush)) + { + FindColor = true; + result = new SolidColorBrush((Color)ColorConverter.ConvertFromString(_getBlush)); + } + } + if (!FindColor) + { + //Is Not Colors + if (GetBitmapImage(_getBlush) is BitmapImage bitMapImage) + { + result = GetImageBrush(_getObject, bitMapImage, _stretch, _size, widthProperty, HeightProperty, _imageOffsetX, _imageOffsetY); + } + } + else + { + //Is Colors Set Brush Size + if (!_size.Width.Equals(double.NaN) && _size.Width > 0) widthProperty.SetValue(_getObject, _size.Width, null); + if (!_size.Height.Equals(double.NaN) && _size.Height > 0) HeightProperty.SetValue(_getObject, _size.Height, null); + + } + } + var setProperty = getObjectType.GetProperty(_setProperty); + if (setProperty != null) + { + setProperty.SetValue(_getObject, result == null ? default(Brush) : result, null); + } + + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "ResourceManager", "SetBrush()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = default(Brush); + } + } + #endregion SetBrush + + #region [ GetCursorByImage ] + [StructLayout(LayoutKind.Sequential)] + private struct IconInfo + { + public bool fIcon; + public int xHotspot; + public int yHotspot; + public IntPtr hbmMask; + public IntPtr hbmColor; + } + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool GetIconInfo(IntPtr hIcon, ref IconInfo pIconInfo); + [DllImport("user32.dll")] + private static extern IntPtr CreateIconIndirect(ref IconInfo icon); + /// + /// Get Cursor By a Image + /// + /// + /// + /// + /// + public static Cursor GetCursorByImage(string _ImageFilePath, HotSpotType _cursorHotSpot, double _targetWidth = 0d) + { + Cursor _cursor = null; + try + { + var bitmapImage = GetBitmapImage(_ImageFilePath); + if (bitmapImage != default(BitmapImage)) + { + var curImage = new Image {Source = bitmapImage }; + using (MemoryStream ms = new MemoryStream()) + { + PngBitmapEncoder encoder = new PngBitmapEncoder(); + double ImageScale = _targetWidth.Equals(0) || _targetWidth.Equals(double.NaN) ? 1d : _targetWidth / curImage.Source.Width; + var bitmapFrame = new TransformedBitmap((BitmapSource)curImage.Source, new ScaleTransform(ImageScale, ImageScale)); + encoder.Frames.Add(BitmapFrame.Create((BitmapSource)bitmapFrame)); + encoder.Save(ms); + var cursorBitmap = new System.Drawing.Bitmap(ms); + var intPrt = cursorBitmap.GetHicon(); + var iconInfo = new IconInfo(); + GetIconInfo(intPrt, ref iconInfo); + switch (_cursorHotSpot) + { + case HotSpotType.LeftTop: + iconInfo.xHotspot = 0; + iconInfo.yHotspot = 0; + break; + case HotSpotType.LeftCenter: + iconInfo.xHotspot = 0; + iconInfo.yHotspot = cursorBitmap.Height / 2; + break; + case HotSpotType.LeftBottom: + iconInfo.xHotspot = 0; + iconInfo.yHotspot = cursorBitmap.Height; + break; + case HotSpotType.CenterTop: + iconInfo.xHotspot = cursorBitmap.Width / 2; + iconInfo.yHotspot = 0; + break; + case HotSpotType.Center: + iconInfo.xHotspot = cursorBitmap.Width / 2; + iconInfo.yHotspot = cursorBitmap.Height / 2; + break; + case HotSpotType.CenterBottom: + iconInfo.xHotspot = cursorBitmap.Width / 2; + iconInfo.yHotspot = cursorBitmap.Height; + break; + case HotSpotType.RightTop: + iconInfo.xHotspot = cursorBitmap.Width; + iconInfo.yHotspot = 0; + break; + case HotSpotType.RightCenter: + iconInfo.xHotspot = cursorBitmap.Width; + iconInfo.yHotspot = cursorBitmap.Height / 2; + break; + case HotSpotType.RightBottom: + iconInfo.xHotspot = cursorBitmap.Width; + iconInfo.yHotspot = cursorBitmap.Height; + break; + } + iconInfo.fIcon = false; + intPrt = CreateIconIndirect(ref iconInfo); + _cursor = CursorInteropHelper.Create(new SafeFileHandle(intPrt, false)); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite("SPC.Kiosk.Common", "ResourceManager", "GetCursorByImage()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + _cursor = null; + } + return _cursor; + } + #endregion GetCursorByImage + + + + } + +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Functions/WaitWindow.cs b/Kiosk/Common/SPC.Kiosk.Common/Functions/WaitWindow.cs new file mode 100644 index 0000000..478256d --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Functions/WaitWindow.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace SPC.Kiosk.Common +{ + public sealed class WaitWindow : IDisposable + { + private static WaitWindow instance = null; + private static readonly object padlock = new object(); + /// + /// This Class Instance + /// + public static WaitWindow GetInstance + { + get + { + lock (padlock) + { + if (instance == null) + { + instance = new WaitWindow(); + } + return instance; + } + } + } + private WaitForm WaitWindowForm = null; + + + /// + /// Is Show Wait Window + /// + public bool IsShowWindow { get; set; } + public WaitWindow() + { + WaitWindowForm = new WaitForm(); + } + /// + /// Show Process Wait Window + /// + /// + /// + public void ShowWaitWindow() + { + if (WaitWindowForm == null || !IsShowWindow) + { + WaitWindowForm = new WaitForm(); + } + WaitWindowForm.Show(); + IsShowWindow=true; + } + /// + /// Close Process Wait Window + /// + public void CloseWaitWindow() + { + if (WaitWindowForm != null && IsShowWindow) + { + IsShowWindow = false; + WaitWindowForm.Close(); + //WaitWindowForm = null; + } + } + /// + /// Dispose Process Wait Window + /// + public void Dispose() + { + if (WaitWindowForm != null) + { + WaitWindowForm.Close(); + WaitWindowForm = null; + } + } + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Models/CommonModel.cs b/Kiosk/Common/SPC.Kiosk.Common/Models/CommonModel.cs new file mode 100644 index 0000000..ac88e11 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Models/CommonModel.cs @@ -0,0 +1,460 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Common +{ + public class M_PopupReturn + { + public bool OKAnswer { get; set; } + public bool TimeOut { get; set; } + public SupportLanguageType ReturnLanguage { get; set; } + public object PopupArgs { get; set; } = null; + public object PopupSubArgs { get; set; } = null; + public ParentPage PopupParentPage { get; set; } = ParentPage.EmptyPage; + + } + /// + /// a Basket Item + /// + /// 2019-04-05 - 1997fx11 : SetItem 관련 참조 + public class M_BasketItem : ViewModelBase + { + /// + /// Index No + /// + public int Index { get; set; } = 0; + + + /// + /// PLU_Index No + /// + public int p_Index { get; set; } = 0; + + /// + /// Item Add Type + /// + public BasketItemType ItemType { get; set; } + /// + /// Item Code + /// + public string ItemCode { get; set; } = string.Empty; + /// + /// Item Base Price + /// + public double BasePrice { get; set; } = 0d; + private double price = 0d; + /// + /// Item Price With Option + /// + public double Price + { + get { return price; } + set { price = value; PropertyChange("Price"); } + } + private double campaignPrice = 0d; + public double CampaignPrice + { + get { return campaignPrice; } + set { campaignPrice = value; PropertyChange("CampaignPrice"); } + } + private int count = 1; + /// + /// Item Count + /// + public int Count + { + get { return count; } + set { count = value; PropertyChange("Count"); } + } + /// + /// Is Coupon DC + /// + public bool IsCouponDC { get; set; } = false; + private double couponDiscount = 0d; + /// + /// Coupon DC Price + /// + public double CouponDiscount + { + get { return couponDiscount; } + set { couponDiscount = value; PropertyChange("CouponDiscount"); } + } + + /// + /// Item Image + /// + public string ItemImage { get; set; } + /// + /// Item Name + /// + public List ItemName { get; set; } + /// + /// Item Count Label + /// + public List ItemCountLabel { get; set; } + /// + /// Item Price Label + /// + public List ItemPriceLabel { get; set; } + + private List allOptionLabel; + + + /// + /// Selected Options Names + /// + public List AllOptionLabel + { + get { return allOptionLabel; } + set { allOptionLabel = value; PropertyChange("AllOptionLabel"); } + } + + private List option; + /// + /// Item Options + /// + public List Option + { + get { return option; } + set { option = value; PropertyChange("Option"); } + } + /// + /// Minus Normal Brush + /// + public string MinusNormalBrush { get; set; } = "pack://application:,,,/SPC.Kiosk.Common;component/Resource/btn_move01_left_basic.png"; + /// + /// Minus Down Brush + /// + public string MinusDownBrush { get; set; } = "pack://application:,,,/SPC.Kiosk.Common;component/Resource/btn_move01_left_press.png"; + /// + /// Plus Normal Brush + /// + public string PlusNormalBrush { get; set; } = "pack://application:,,,/SPC.Kiosk.Common;component/Resource/btn_move01_right_basic.png"; + /// + /// Plus Down Brush + /// + public string PlusDownBrush { get; set; } = "pack://application:,,,/SPC.Kiosk.Common;component/Resource/btn_move01_right_press.png"; + } + + /// + /// Button Send Events Args + /// + public class M_ItemDropEventArgs + { + /// + /// Send Object + /// + public object SourceObject { get; set; } = null; + /// + /// Target Object + /// + public object TargetObject { get; set; } = null; + } + public class M_IntroItems + { + public int ItemsStack { get; set; } = 1; + public double StackWidth { get; set; } = double.NaN; + public List StackContents { get; set; } = null; + } + public class M_StackContents + { + public int ItemsIndex { get; set; } = 0; + public List MediaRollItems { get; set; } = null; + } + /// + /// Media Rolling Item Model + /// + public class M_MediaRollItem + { + /// + /// Media Type Image or VOD + /// + public MediaType Type { get; set; } = MediaType.None; + /// + /// Media File Path + /// + public string MediaPath { get; set; } = string.Empty; + /// + /// Media Show Running Time Seconds + /// + public double RunnigSeconds { get; set; } = 0; + public bool RepeatMedia { get; set; } + public TimeSpan StartTime { get; set; } = default(TimeSpan); + public TimeSpan EndTime { get; set; } = default(TimeSpan); + public IntroLinkType LinkType { get; set; } = IntroLinkType.None; + public string LinkParameter { get; set; } = string.Empty; + } + /// + /// Button List Item Collection + /// + public class M_ItemData + { + public int Index { get; set; } = -1; + public string ItemCode { get; set; } = string.Empty; + public string Category1 { get; set; } = string.Empty; + public string Category2 { get; set; } = string.Empty; + public string ImageFile { get; set; } = string.Empty; + public double Price { get; set; } = 0d; + public bool IsOption { get; set; } + public bool IsSoldOut { get; set; } + public List Option { get; set; } + public M_AnimationButton DataParameter { get; set; } + public M_TextBlock BaseTextBlock { get; set; } + public M_TextBlock AdditionTextBlock { get; set; } + public List BadgeImages { get; set; } = null; + public double BadgeHeight { get; set; } = 0d; + public HorizontalAlignment BadgeHorizontalAlignment { get; set; } = HorizontalAlignment.Center; + public VerticalAlignment BadgeVerticalAlignment { get; set; } = VerticalAlignment.Center; + public Orientation BadgeOrientation { get; set; } = Orientation.Horizontal; + } + public class M_ItemOptionGroup + { + public int Index { get; set; } = -1; + public string Code { get; set; } = string.Empty; + public string ImageFile { get; set; } = string.Empty; + public OptionSelectMode SelectMode { get; set; } = OptionSelectMode.None; + public bool IsMustSelect { get; set; } + public List Name { get; set; } + public List Options { get; set; } + public M_ItemOptionGroup Clone() + { + M_ItemOptionGroup result = null; + try + { + result = new M_ItemOptionGroup + { + Index = Index, + Code = Code, + ImageFile = ImageFile, + SelectMode = SelectMode, + IsMustSelect = IsMustSelect, + }; + var newName = new List(); + foreach (var aLanguage in Name) + { + newName.Add(aLanguage.Clone()); + } + result.Name = newName; + var newOptions = new List(); + foreach (var aOption in Options) + { + newOptions.Add(aOption.Clone()); + } + result.Options = newOptions; + + } + catch + { + result = null; + } + return result; + } + } + public class M_ItemOption + { + public int Index { get; set; } = -1; + public string Code { get; set; } = string.Empty; + public List Name { get; set; } + public bool IsSelected { get; set; } + public double SelectValue { get; set; } = 0d; + public OptionKind Kind { get; set; } = OptionKind.None; + public string KindCode { get; set; } = string.Empty; + public double Amount { get; set; } = 0d; + public int AmountMin { get; set; } = 0; + public int AmountMax { get; set; } = 0; + public M_ItemOption Clone() + { + M_ItemOption result = null; + try + { + result = new M_ItemOption + { + Index = Index, + Code = Code, + IsSelected = IsSelected, + SelectValue = SelectValue, + Kind = Kind, + KindCode = KindCode, + Amount= Amount, + AmountMin = AmountMin, + AmountMax = AmountMax, + }; + var newName = new List(); + foreach (var aLanguage in Name) + { + newName.Add(aLanguage.Clone()); + } + result.Name = newName; + + } + catch + { + result = null; + } + return result; + } + + } + + public class M_AnimationButton + { + public double Width { get; set; } = double.NaN; + public double Height { get; set; } = double.NaN; + public Thickness Margin { get; set; } + public string NormalBrush { get; set; } = string.Empty; + public string DownBrush { get; set; } = string.Empty; + public string DisableBrush { get; set; } = string.Empty; + public string SwitchOnBrush { get; set; } = string.Empty; + public string DragCursorImage { get; set; } = string.Empty; + public HotSpotType DragCursorHotSpot { get; set; } = HotSpotType.LeftTop; + public Stretch BrushStretch { get; set; } = Stretch.Fill; + public bool Enabled { get; set; } = true; + public bool Switch { get; set; } + public bool IsBreathing { get; set; } = false; + public bool AutoToggle { get; set; } + public bool ClickSend { get; set; } + public string BaseGrid { get; set; } = string.Empty; + public string ReciveElement { get; set; } = string.Empty; + public ButtonAnimationType ClickAnimationType { get; set; } = ButtonAnimationType.None; + public ButtonAnimationType DropAnimationType { get; set; } = ButtonAnimationType.None; + public List LanguageText { get; set; } = null; + public string Text { get; set; } = string.Empty; + public Visibility TextVisible { get; set; } = Visibility.Collapsed; + public string TextForeground { get; set; } = string.Empty; + public string SwitchOnForeground { get; set; } = string.Empty; + public string DisableForeground { get; set; } = string.Empty; + public VerticalAlignment TextVerticalAlignment { get; set; } = VerticalAlignment.Center; + public HorizontalAlignment TextHorizontalAlignment { get; set; } = HorizontalAlignment.Center; + public string TextFontFamily { get; set; } = string.Empty; + public double TextFontSize { get; set; } = 12; + public double SwitchOnFontSize { get; set; } = 12; + public double DisableFontSize { get; set; } = 12; + public FontWeight TextFontWeight { get; set; } = FontWeights.Normal; + public FontWeight SwitchOnFontWeight { get; set; } = FontWeights.Normal; + public FontWeight DisableWeight { get; set; } = FontWeights.Normal; + public TextWrapping TextWrapping { get; set; } = TextWrapping.Wrap; + public TextAlignment TextAlignment { get; set; } = TextAlignment.Center; + public Thickness TextMargin { get; set; } + public bool DragEnable { get; set; } + public double CircleSize { get; set; } = 30d; + public string CircleBackBrush { get; set; } = string.Empty; + public string CircleTextBruch { get; set; } = string.Empty; + public string CircleText { get; set; } = string.Empty; + public bool CircleOuter { get; set; } + public SupportLanguageType DisplayLanguage { get; set; } + + + }; + /// + /// Button List Item Text Box Collection + /// + public class M_TextBlock + { + public List LanguageData { get; set; } = null; + public double Width { get; set; } = double.NaN; + public double Height { get; set; } = double.NaN; + public double TextSize { get; set; } = 12; + public string TextBrush { get; set; } = "Transparent"; + public FontWeight TextWeight { get; set; } = FontWeights.Normal; + public string TextFontFamily { get; set; } = "NanumSquare"; + public VerticalAlignment TextVerticalAlignment { get; set; } = VerticalAlignment.Center; + public HorizontalAlignment TextHorizontalAlignment { get; set; } = HorizontalAlignment.Center; + public TextAlignment TextAlignment { get; set; } = TextAlignment.Center; + public TextWrapping TextWrapping { get; set; } = TextWrapping.Wrap; + public bool AutoTextTrim { get; set; } = false; + public Thickness TextMargin { get; set; } + } + public class M_MultiLanguage + { + public string MessageCode { get; set; } + public List MessageData {get; set;} + } + public class M_Language + { + public SupportLanguageType Type { get; set; } + public string LanguageData { get; set; } + public M_Language Clone() + { + M_Language result = null; + try + { + result = new M_Language + { + Type = Type, + LanguageData = LanguageData, + }; + } + catch + { + result = null; + } + return result; + } + + } + + //public class NhsFuncInfo + //{ + // /// + // /// STEP01 포인트 적립 - 해피포인트 적립 + // /// + // public string SaveHappyPoint { get; set; } + // /// + // /// STEP01 포인트 적립 - OK CASHBAG 적립 + // /// + // public string SaveOkCashBag { get; set; } + // /// + // /// STEP01 통신사 할인 - SKT + // /// + // public string DiscountSKT { get; set; } + // /// + // /// STEP01 통신사 할인 - KT + // /// + // public string DiscountKT { get; set; } + // /// + // /// STEP01 통신사 할인 - LGT + // /// + // public string DiscountLG { get; set; } + // /// + // /// STEP02 포인트 사용 - 해피포인트 사용 + // /// + // public string UsePointHappyPoint { get; set; } + // /// + // /// STEP02 포인트 사용 - OK CASHBAG 사용 + // /// + // public string UsePointOkCashBag { get; set; } + // /// + // /// STEP02 쿠폰 사용 - 해피쿠폰할인 + // /// + // public string UseCouponHappy { get; set; } + // /// + // /// STEP02 쿠폰 사용 - 모바일쿠폰 + // /// + // public string UseCouponMobile { get; set; } + // /// + // /// STEP03 카드 결제 - 신용카드 + // /// + // public string UseCardPaymentCreditCard { get; set; } + // /// + // /// STEP03 카드 결제 - SPC 사원증 + // /// + // public string UseCardPaymentSPCEmployeeCertificate { get; set; } + // /// + // /// STEP03 카드 결제 - HAPPY GIFT + // /// + // public string UseCardPaymentHappyGift { get; set; } + // /// + // /// STEP03 카드 결제 - 삼성/LG 페이 + // /// + // public string UseCardPaymentSamsungLGPay { get; set; } + // /// + // /// STEP03 카드 결제 - 스마일페이 + // /// + // public string UseCardPaymentSmilePay { get; set; } + //} +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/Properties/AssemblyInfo.cs b/Kiosk/Common/SPC.Kiosk.Common/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d231ce7 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Common")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Common")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("ba2d06e0-74c0-4785-b39f-d1eaac13b73d")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_left_basic.png b/Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_left_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..78778e69e4b932022405119ceb531b26817dd405 GIT binary patch literal 3087 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 Y01pj%j|FM2^#A|>07*qoM6N<$f|kFliU0rr literal 0 HcmV?d00001 diff --git a/Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_right_basic.png b/Kiosk/Common/SPC.Kiosk.Common/Resource/btn_move01_right_basic.png new file mode 100644 index 0000000000000000000000000000000000000000..8636b5c11762726295706186516af9237fc747e8 GIT binary patch literal 3084 zcmV+n4D<7eP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003uNkl;tQ53?3@DdLw z9KKktb*=+nm(||@0I1$oav6R)kN;l_5kLR|1Q0*~0l7NNom;)PPb9k(?S~pvsVMIY zBuR?J*EjmZ5%gv&572(BA@CH!SX)6{9H2@?benZ+2qTNwCc@Y*bc7g~K^Waee<4;H zFYjZabHLd@Qb{cY0D7}Ue>g%IYxtf*=jlHGgDfk2;3;&Qbt8k#l^os(z-D+OfY*n7cUOxz*tR009ILKmY**5Fn*8&q7(ZfnorM_pods0#0b5CKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003qNklqVl0YTbZSY34K zt{Pjg1rrd&Nf)lFp%iq6Jo(-xkk$7iGxJ^;HF}#y5L{^hD3>cD!~6amDF`p|fb{;0 zkFOxnfs6Uv-v9u(xxP$f`04EX{FV>_1Q0*~0R#|`sA2Bd>J3IP#-P=xL1#1azQEQP zynn9HAC3{OH}U}OMh&Hc#$p*bL7W_*vl)2Jx-*28P3#h3?G!phyjnq6Jw|^cLOecC zr1k-|dqj~eK)BwZKOAGR3{cE#bnb7H-^k*^mkJtQvu>rar6h;90&p4L3gGEw;w-$C zJ)o3A_3FaeFn4l5_u-EJ0|XF2009ILK!B8rorU6V1H}OL?_s%w2>8bm^8LA3z|R0D WLwju8sugzt0000VRNz1OWgAJXT&tA>gVek`M=klkx^!IVM#g z0^kH&J0u%}$HIwZTZ|o=jK$l)v1kktg(jjfI3yZFLEBMqWcbGq0vt`m38c8woIj2Q zo;e_bBoZM7g$fT3w++YH3PhVx7&4iRLSs=_ED~&i6mR28SW+ZkykNWs8X#tixIzh6 zz=tb)WCaMqBn}8L)4!&`6EYZ|I_8UQRTHvh3wS6gONheQqES4aa$c&|Vu?HOcN(8< zE%w+Z1W@jPSP&*+17Pz73RIYmZ?rUDZ@SjlP+wPjwdTs@>PuA@FI1jCclONbQx)Z9r6*6694{_9cC_&4BL#=^ zf69~R=42nrI+%GNBYpqAy=g!0Nli)Ky=!OEj>LrcxY(Fz*$>}GZI6uDCJo;jCJ~Fa z2nBpzXh<+OXmcRIVF$4MH*NIu_1W;9x7T`452pLK>(;t4)~sITy3)m&PNS}H`o?j& z!!mmcnMAZB;BiVx{AW(>na%)mm%c4!StYQ~xdu#39y=cdL?X)z{u zV|G{k$-J6G-36--tt@?*q+yH;?r0d4&4$3os5{ME^{P`-teLm08_R&yeQ5h@L9XQs zQxA}EEya!ckDCvX!e1AU>RYeLqxu;Vu5AI_)2%Z3@7_ob*A{t~2j9PTs_2fX<`unl zU&})wI|6EdLWi`o?p0VS%II$l`CpwA58XbsT3xWwF>*9z;BAJR|0xq~Yjb(D(5EJ` z-g0B{+0sYlJjCj{Z!*h(dM;kjdqG+QT=$`+S~e?&d)j`qKgoY#iZ{G%78ps2(hBFd zTS%FM@3ZjGZufxL)~JrHu%4#qL}~W+e&~~5-p@I)T0L^>InM{_10OCvf1&@FE>Ae{ zp(y_K%f;2HDAw|*w}XR~cgFT#@){cpbKZp5QZYNID;jE9*cCI&uD2^z*V(!|4z@n1 zJKi|3usgwl_K&hLgcw5BgWvJ8IeU;-29`~X88IiwG`-+i)#8vVlH|s$d=kd;;QOV6*js~0YLW!lca1bC0W^9)aI zHHnDa9_4E#Gm43gi}!RDB6bGYC;Khk15aab*q+I@&_~>!Z zlizxu(zKqxc-cRo#Z()9^?Kxun*QLs_iINX8i-yO^n)}RbjZM0@zVcF;;=DR0>$KA zjfXAOxzL-MOlEf-e~~7Twq1%YrU1H6H3V z$|Acst9j#?2HCET1)**9;M-KT8-399G~+5h_~!;6H{zO^RX;GHw!Z3v59{Nt#x9x# z4rScPt3>k84eW#dy)*nDam?&V5OYA{=vztE-6BnHnl$jj0jqG}y>vWeoL+ z5t}I@z6|1od6OX41c_rURI504dJt=?h_#uTDq_v45ol=#3>Gw zAcld&ahp`canpksq9TScXQ+s0OpSO}174mlYo6dLhANhP8N_LfNf6^f;>1oBapLqK zR#OqHF|}00T2mv2G-%4HGR6eo#m0)@FM~KIY7)dWkT~8#^)8N|9>f|dVhyIcidcPW z#Oe*R>TJ=~NNNOb=pB6|p8$TScrrHDc`sGr5M00h!pl MSW{s-orvxK1UdsGDgXcg literal 0 HcmV?d00001 diff --git a/Kiosk/Common/SPC.Kiosk.Common/Resource/wait_circle.png b/Kiosk/Common/SPC.Kiosk.Common/Resource/wait_circle.png new file mode 100644 index 0000000000000000000000000000000000000000..99e0be93d9d91b4219f016a53a6d16eb800d28f8 GIT binary patch literal 51253 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 LNkvXXu0mjfjFYMV literal 0 HcmV?d00001 diff --git a/Kiosk/Common/SPC.Kiosk.Common/SPC.Kiosk.Common.csproj b/Kiosk/Common/SPC.Kiosk.Common/SPC.Kiosk.Common.csproj new file mode 100644 index 0000000..cfd9006 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/SPC.Kiosk.Common.csproj @@ -0,0 +1,199 @@ + + + + + Debug + AnyCPU + {BA2D06E0-74C0-4785-B39F-D1EAAC13B73D} + Library + Properties + SPC.Kiosk.Common + SPC.Kiosk.Common + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\..\..\BIN\Cosmos.Common.dll + + + False + ..\..\..\..\BIN\Cosmos.ServiceProvider.dll + + + False + ..\..\..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + + + + + + + ..\..\..\packages\WpfAnimatedGif.1.4.18\lib\net\WpfAnimatedGif.dll + + + + + AnimationButton.xaml + + + PopupMessage.xaml + + + SignPad.xaml + + + + ButtonList.xaml + + + + + + + + + + + + + IntroView.xaml + + + + MediaPlayer.xaml + + + MediaRoll.xaml + + + MessageBoxForm.xaml + + + + NumericCombo.xaml + + + NumericPad2.xaml + + + NumericPad.xaml + + + + + + + WaitForm.xaml + + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.Common/Types/CommonTypes.cs b/Kiosk/Common/SPC.Kiosk.Common/Types/CommonTypes.cs new file mode 100644 index 0000000..e5452e1 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/Types/CommonTypes.cs @@ -0,0 +1,779 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SPC.Kiosk.Common +{ + /// + /// 모바일 쿠폰 종류 + /// + public enum MobileCouponType + { + /// + /// 물품형 일반 + /// + Normal, + /// + /// 금액형 일반 + /// + NormalValue, + /// + /// 물품형 횟수제한형 + /// + CountLimit, + /// + /// 금액형 금액제한 + /// + ValueLimit, + /// + /// 금액형 금액고정형 + /// + ValueFixed, + } + /// + /// 쿠폰 옵션 + /// + public enum MobileCouponOptionType + { + /// + /// 옵션없음 + /// + None, + /// + /// 타상품 교환 불가 + /// + ItemFixed + } + /// + /// 쿠폰 상태 + /// + public enum MobileCouponStatusType + { + /// + /// 사용 가능 'Y' + /// + CanUse, + /// + /// 사용 불가능 'N' + /// + CanNotUse, + /// + /// 사용된 'D' + /// + Used, + /// + /// 폐기됨 'C' + /// + Cancel, + /// + /// 환불 'R' + /// + Refound, + } + + /// + /// Basket Item Type + /// + public enum BasketItemType + { + /// + /// Default + /// + None, + /// + /// Add From Camera Scan + /// + Scan, + /// + /// Add From Barcode Scan + /// + Barcode, + /// + /// Add From Order UI + /// + Order, + } + /// + /// 결제 완료 형태 + /// + public enum PaymentEndWindowEndType + { + /// + /// 없음 + /// + None, + /// + /// 진동벨 + /// + Bell, + /// + /// 알림톡 + /// + Talk, + /// + /// 대기번호 + /// + WaitNumber, + } + /// + /// Happy Point Member Level + /// + public enum HappyPointMemberLevel + { + None, + Pink, + Gold, + VIP + } + /// + /// 지원 언어 + /// + public enum SupportLanguageType + { + /// + /// 한국어 + /// + ko, + /// + /// 영어 + /// + en, + /// + /// 일본어 + /// + ja, + /// + /// 중국어 + /// + zh, + } + /// + /// Option Select Mode + /// + public enum OptionSelectMode + { + /// + /// 없음 + /// + None, + /// + /// 단일 선택 모드 + /// + Single, + /// + /// 복수 선택 모드 + /// + Multi + } + /// + /// Option Type + /// + public enum OptionKind + { + /// + /// 없음 + /// + None, + /// + /// Button Type + /// + Button, + /// + /// 수량 타입 + /// + Count, + /// + /// 할인 타입 + /// + Discount, + /// + /// 추가금액 타입 + /// + UpCharge, + } + + /// + /// 대기화면 클릭 링크 + /// + public enum IntroLinkType + { + /// + /// 없음 + /// + None, + /// + /// 페이지 연결 + /// + Page, + /// + /// 일반 주문 카테고리 연결 + /// + Category, + /// + /// 특정 제품이 있는 목록으로 연결 + /// + ItemCode + } + /// + /// Click Button Animation Types + /// + public enum ButtonAnimationType + { + /// + /// No Animation + /// + None, + /// + /// Image Bounce Up + /// + BounceUp, + /// + /// Image Bounce Down + /// + BounceDown, + /// + /// Image SizeDown + /// + SizeDown, + /// + /// Image SizeUp + /// + SizeUp, + /// + /// Image Twist + /// + Twist, + /// + /// Text Bounce Up + /// + TextBounceUp, + /// + /// Text Bounce Down + /// + TextBounceDown, + /// + /// Text Down + /// + TextSizeDown, + /// + /// Text Up + /// + TextSizeUp, + /// + /// Text Twist + /// + TextTwist, + /// + /// Image Opacity Down + /// + OpacityDown, + /// + /// Image Opacity Up + /// + OpacityUp, + FlipX, + FlipY + } + /// + /// Image Send Type + /// + public enum ButtonSendAnimationType + { + /// + /// 없음 + /// + None, + /// + /// 크기 속도변경 없이 + /// + Normal, + /// + /// 시작 25%위치 50% 나머지 50%이동 + /// + SpeedChage, + /// + /// 키운후 줄이며 가속가기 + /// + SizeUpDown + } + /// + /// Open Close Animation Type + /// + public enum OpenCloseAnimationType + { + /// + /// 없음 + /// + None, + /// + /// 왼쪽으로 + /// + GotoLeft, + /// + /// 오른쪽으로 + /// + GotoRight, + /// + /// 위로 + /// + GotoUp, + /// + /// 아래로 + /// + GotoDown, + /// + /// 전체 줄이기 + /// + FullSizeDown, + /// + /// 전체 키우기 + /// + FullSizeUp, + } + /// + /// Shutter Animation Anchor Position Types + /// + public enum ShutterAnchor + { + /// + /// 왼쪽 + /// + Left, + /// + /// 오른쪽 + /// + Right, + /// + /// 상단 + /// + Top, + /// + /// 하단 + /// + Bottom + } + /// + /// Image HotSpot Type + /// + public enum HotSpotType + { + /// + /// 좌상 + /// + LeftTop, + /// + /// 좌중앙 + /// + LeftCenter, + /// + /// 좌하 + /// + LeftBottom, + /// + /// 중상 + /// + CenterTop, + /// + /// 정중앙 + /// + Center, + /// + /// 중하 + /// + CenterBottom, + /// + /// 우상 + /// + RightTop, + /// + /// 우중앙 + /// + RightCenter, + /// + /// 우하 + /// + RightBottom + } + /// + /// ButtonList TextPosition Type + /// + public enum TextPosition + { + /// + /// 버튼 안 + /// + InnerButton, + /// + /// 왼쪽 + /// + Left, + /// + /// 오른쪽 + /// + Right, + /// + /// 상단 + /// + Top, + /// + /// 하단 + /// + Bottom + } + /// + /// Media Type + /// + public enum MediaType + { + /// + /// 없음 + /// + None, + /// + /// 이미지 + /// + Image, + /// + /// 동영상 + /// + VOD + } + #region Encoding CodeType + /// + /// 문자열 엔코딩 CodeType + /// + public enum CodeType + { + /// + /// 시스템 기본 + /// + Default, + /// + /// ASCII + /// + ASCII, + /// + /// BigEdianUnicode(Unicode의 상하위 Byte가 바뀐 정보) + /// + BigEdianUnicode, + /// + /// Unicode + /// + Unicode, + /// + /// UTF-7 + /// + UTF7, + /// + /// UTF-8 + /// + UTF8, + /// + /// UTF-32 + /// + UTF32 + } + + #endregion + /// + /// Control Char Ctrl_ANSI Value + /// + public enum Ctrl_ASCII + { + /// + /// 0x00 + /// + Null, + /// + /// 0x01 + /// + SOH, + /// + /// 0x02 + /// + STX, + /// + /// 0x03 + /// + ETX, + /// + /// 0x04 + /// + EOT, + /// + /// 0x05 + /// + ENQ, + /// + /// 0x06 + /// + ACK, + /// + /// 0x07 + /// + BEL, + /// + /// 0x08 + /// + BS, + /// + /// 0x09 + /// + HT, + /// + /// 0x0A + /// + LF, + /// + /// 0x0B + /// + VT, + /// + /// 0x0C + /// + FF, + /// + /// 0x0D + /// + CR, + /// + /// 0x0E + /// + SO, + /// + /// 0x0F + /// + SI, + /// + /// 0x10 + /// + DLE, + /// + /// 0x11 + /// + DC1, + /// + /// 0x12 + /// + DC2, + /// + /// 0x13 + /// + DC3, + /// + /// 0x14 + /// + DC4, + /// + /// 0x15 + /// + NAK, + /// + /// 0x16 + /// + SYN, + /// + /// 0x17 + /// + ETB, + /// + /// 0x18 + /// + CAN, + /// + /// 0x19 + /// + EM, + /// + /// 0x1A + /// + SUB, + /// + /// 0x1B + /// + ESC, + /// + /// 0x1C + /// + FS, + /// + /// 0x1D + /// + GS, + /// + /// 0x1E + /// + RS, + /// + /// 0x1F + /// + US + } + /// + /// Log Type + /// + public enum Log_Type + { + /// + /// Infomation + /// + Info, + /// + /// Error + /// + Error, + /// Debug + /// + Debug + } + /// + /// Log Data Structure + /// + public struct Log_Message + { + /// + /// Log Create Time + /// + public DateTime LogDate; + /// + /// Log Create Object + /// + public String LogFrom; + /// + /// Log Type + /// + public Log_Type LogType; + /// + /// Log Message + /// + public string LogMessage; + } + /// + /// Log 설정 Structure + /// + public struct Log_Setting + { + /// + /// Log Save Path + /// default=AppDomain.CurrentDomain.BaseDirectory + "\\Log" + /// + public string LogPath; + /// + /// Log Name + /// + public string LogName; + /// + /// Selected Log Write Object Names + /// + public string[] LogFrom; + /// + /// Selected Log Types + /// + public Log_Type[] LogType; + /// + /// Maxium Log Store Dates + /// + public int LogDates; + } + + /// + /// Uri Type + /// + public enum UriTypes + { + None, + Item, + Events, + Web + } + + /// + /// Popup Parent Page + /// + public enum ParentPage + { + EmptyPage, + PBWindow, + PBPaymentsWindow + } + + /// + /// Kiosk 에서 사용가능한 결재수단 : 2019-06-10 - 1997fx11 + /// + public class NhsFuncInfoType + { + /// + /// STEP01 포인트 적립 - 해피포인트 적립 + /// + public const string SaveHappyPoint = "00058"; + /// + /// STEP01 포인트 적립 - OK CASHBAG 적립 + /// + public const string SaveOkCashBag = "00255"; + /// + /// STEP01 통신사 할인 - SKT + /// + public const string DiscountSKT = "00059"; + /// + /// STEP01 통신사 할인 - KT + /// + public const string DiscountKT = "00060"; + /// + /// STEP01 통신사 할인 - LGT + /// + public const string DiscountLG = "00061"; + /// + /// STEP02 포인트 사용 - 해피포인트 사용 + /// + public const string UsePointHappyPoint = "00078"; + /// + /// STEP02 포인트 사용 - OK CASHBAG 사용 + /// + public const string UsePointOkCashBag = "00080"; + /// + /// STEP02 쿠폰 사용 - 해피쿠폰할인 + /// + public const string UseCouponHappy = "00063"; + /// + /// STEP02 쿠폰 사용 - 모바일쿠폰 + /// + public const string UseCouponMobile = "00073"; + /// + /// STEP03 카드 결제 - 신용카드 + /// + public const string UseCardPaymentCreditCard = "00071"; + /// + /// STEP03 카드 결제 - SPC 사원증 + /// + public const string UseCardPaymentSPCEmployeeCertificate = "00088"; + /// + /// STEP03 카드 결제 - T-MONEY + /// + public const string UseCardPaymentTMoney = "00089"; + /// + /// STEP03 카드 결제 - 캐시비 + /// + public const string UseCardPaymentCashBee = "00091"; + /// + /// STEP03 카드 결제 - HAPPY GIFT + /// + public const string UseCardPaymentHappyGift = "00291"; + /// + /// STEP03 카드 결제 - 삼성/LG 페이 + /// + public const string UseCardPaymentSamsungLGPay = "00999"; + /// + /// STEP03 모바일 결제 - 알리페이 + /// + public const string UseCardPaymentAlipay = "00086"; + /// + /// STEP03 카드 결제 - 스마일페이 + /// + public const string UseCardPaymentSmilePay = "00258"; + /// + /// STEP03 모바일 결제 - 제로페이 + /// + public const string UseCardPaymentZeroPay = "00302"; + } +} diff --git a/Kiosk/Common/SPC.Kiosk.Common/packages.config b/Kiosk/Common/SPC.Kiosk.Common/packages.config new file mode 100644 index 0000000..8149635 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.Common/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.DataHelper/BackDataService.cs b/Kiosk/Common/SPC.Kiosk.DataHelper/BackDataService.cs new file mode 100644 index 0000000..c3bce89 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.DataHelper/BackDataService.cs @@ -0,0 +1,134 @@ +using System; +using System.Linq; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Runtime.InteropServices; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.Service; +using Cosmos.CommonManager; +using System.Timers; +//using System.Threading; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +namespace SPC.Kiosk.DataHelper +{ + public class BackDataService : IDisposable + { + #region [ Members ] + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + protected IDataCommonUs m_cDataCommon = null; + private Timer objServiceTimer; + private DateTime lastTime; + + private IDataProcessUs m_cDataService = null; // 거래데이터 합계금액 계산 및 관리 + private ICampaignUs m_cCampaingMain = null; // 캠페인 관리 + private String m_sMstBatchDownDate = ""; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + #endregion Members + + #region [ Ctor & Dispose ] + /// + /// Ctor + /// + public BackDataService() + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + + m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE); + m_cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN); + + // 캠페인 마스터 로딩 + m_cDataService.InitTranHeader(); + m_sMstBatchDownDate = m_cPosStatus.Base.MstBatchDownDate; + m_cCampaingMain.LoadCampaignCondition(new string[] { }); + + + objServiceTimer = new Timer(1000); + lastTime = DateTime.Now; + objServiceTimer.Elapsed += ObjServiceTimer_Elapsed; + objServiceTimer.Start(); + } + } + + + private void ObjServiceTimer_Elapsed(object sender, ElapsedEventArgs e) + { + DateTime _dateTime = DateTime.Now; + //if ((DateTime.Now - lastTime) >= (TimeSpan.FromMinutes(0.5d))) + if ((_dateTime - lastTime) >= (TimeSpan.FromMinutes(0.5d))) + { + //TODO:5분마다 처리할 로직 추가 + lastTime = DateTime.Now; + + //string[] _list = m_cDataCommon.Select_NHS_CUST_BUY_HIST(string.Format("{0:yyyyMMddHHmmss}", DateTime.Now), @"1011175065"); + + // 2019-03-21 - 1997fx11 : 아이템 변경 수신 + int iRet01 = m_cDataCommon.Get_NEW_PRODUCT_BY_IRT(); + + // 2019-03-21 - 1997fx11 : 시스템정보 전송 + int iRet02 = m_cDataCommon.Send_SYSTEM_INFO(); + } + + // 2019-04-25 - 1997fx11 : 자동 마감/개점 ver 0.2 + // PosStart/frmPosStart.cs/tmrStart_Tick 내에 메인포스 개점여부에 따라 진행. (추가예정?? 부분) + string sCurrentTime = System.DateTime.Now.ToString("HHmmss"); + if (CmUtil.LongParse(sCurrentTime) == CmUtil.LongParse("050000")) + { + m_cDataCommon.SetSaleEndOpen(); + } + } + + + /// + /// Dispose + /// + public void Dispose() + { + if (objServiceTimer != null) + { + objServiceTimer.Stop(); + objServiceTimer.Elapsed -= ObjServiceTimer_Elapsed; + objServiceTimer.Dispose(); + objServiceTimer = null; + } + sManager = null; // 이 객체를 통해 업무 Service 호출 + StateObject = null; // StateObject : StateServer Object (객체) + m_cPosStatus = null; // 기본정보 참조 + m_cTrnStatus = null; // 거래정보 참조 + m_cDataCommon = null; + } + #endregion Ctor & Dispose + + #region [ Methods ] + + /// + /// 옵션값 획득 + /// + /// + /// + public string GetPosOption(string sOptCode) + { + return PosMstManager.GetPosOption(sOptCode); + } + + #endregion Methods + } +} diff --git a/Kiosk/Common/SPC.Kiosk.DataHelper/CommonDataHelper.cs b/Kiosk/Common/SPC.Kiosk.DataHelper/CommonDataHelper.cs new file mode 100644 index 0000000..472accf --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.DataHelper/CommonDataHelper.cs @@ -0,0 +1,811 @@ +using System; +using System.Linq; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Runtime.InteropServices; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.Service; +using Cosmos.CommonManager; +using System.Threading; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; + +namespace SPC.Kiosk.DataHelper +{ + public class CommonDataHelper : IDisposable + { + #region [ Members ] + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + protected IDataCommonUs m_cDataCommon = null; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + #endregion Members + + #region [ Ctor & Dispose ] + /// + /// Ctor + /// + public CommonDataHelper() + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + } + } + /// + /// Dispose + /// + public void Dispose() + { + sManager = null; // 이 객체를 통해 업무 Service 호출 + StateObject = null; // StateObject : StateServer Object (객체) + m_cPosStatus = null; // 기본정보 참조 + m_cTrnStatus = null; // 거래정보 참조 + m_cDataCommon = null; + } + #endregion Ctor & Dispose + + #region [ Methods ] + /// + /// Set Common Language Data + /// + public void SetCommonLanguage() + { + try + { + if (NeedInitModule) return; + var getLanguageData = m_cDataCommon.Select_NHS_LANG_MSG("COMMON");//m_cDataCommon.Select_NHS_LANG_MSG("COMMON"); + if (getLanguageData is DataTable) + { + foreach (var aLanguageData in getLanguageData.Rows) + { + if (aLanguageData is DataRow aRow) + { + var languageCode = aRow["LANG_MESSAGE_CD"] is null ? string.Empty : aRow["LANG_MESSAGE_CD"].ToString(); + var languageType = SupportLanguageType.ko; + if (!(aRow["LANG_CD"] is null) && aRow["LANG_CD"].ToString().Length > 2) + { + try + { + languageType = (SupportLanguageType)Enum.Parse(typeof(SupportLanguageType), aRow["LANG_CD"].ToString().Substring(0, 2)); + } + catch + { + + languageType = SupportLanguageType.ko; + } + } + var languageData = aRow["LANG_MESSAGE"] is null ? string.Empty : aRow["LANG_MESSAGE"].ToString(); + Languages.SetMessage(languageCode, languageType, languageData); + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetCommonLanguage()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Get Language Data + /// _gubunCD + /// 상품/제품 = "PROD" Item + /// 카데고리 = "CATE" Category + /// 옵션 = "OPTN" Option + /// 옵션그룹 = "OPTNGRP" Option Group + /// + /// + /// + /// + public List GetLaguageData(string _gubunCD, string _messageCD) + { + if (NeedInitModule) return null; + List result = new List(); + try + { + var getLanguageData = m_cDataCommon.Select_NHS_LANG_MSG(_gubunCD, _messageCD); + if (getLanguageData is DataTable && getLanguageData.Rows.Count > 0) + { + foreach (var aLanguageData in getLanguageData.Rows) + { + if (aLanguageData is DataRow aRow) + { + var languageCode = aRow["LANG_MESSAGE_CD"] is null ? string.Empty : aRow["LANG_MESSAGE_CD"].ToString(); + var languageType = SupportLanguageType.ko; + if (!(aRow["LANG_CD"] is null) && aRow["LANG_CD"].ToString().Length > 2) + { + try + { + languageType = (SupportLanguageType)Enum.Parse(typeof(SupportLanguageType), aRow["LANG_CD"].ToString().Substring(0, 2)); + } + catch + { + + languageType = SupportLanguageType.ko; + } + } + var languageData = aRow["LANG_MESSAGE"] is null ? string.Empty : aRow["LANG_MESSAGE"].ToString(); + var dataFinded = result.Where(r => r.Type.Equals(languageType)).FirstOrDefault(); + if (dataFinded is M_Language) + { + dataFinded.LanguageData = languageData; + } + else + { + var addDada = new M_Language + { + Type = languageType, + LanguageData = languageData + }; + result.Add(addDada); + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetLaguageData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = new List(); + } + return result; + } + /// + /// Get Into Data + /// + /// + public List GetIntroData(double _screenWidth) + { + if (NeedInitModule) return null; + List result = null; + try + { + + var getIntroItem = m_cDataCommon.Select_NHS_SCREEN(); + if (getIntroItem is DataTable && getIntroItem.Rows.Count > 0) + { + result = new List(); + var screenRow = getIntroItem.Rows[0]; + var screenCD = screenRow["SCREEN_CD"] is null ? string.Empty : screenRow["SCREEN_CD"].ToString(); + if (!string.IsNullOrEmpty(screenCD)) + { + var getFrames = m_cDataCommon.Select_NHS_SCREEN_LAYER_GROUPBY_FRAMECD(screenCD); + var stackWidth = _screenWidth; + if (getFrames.Rows.Count.Equals(2)) stackWidth = _screenWidth / 2; + var stackIndex = 0; + foreach (var getFramesItem in getFrames.Rows) + { + if (getFramesItem is DataRow aFrameRow) + { + + var frameCD = aFrameRow["FRAME_CD"] is null ? string.Empty : aFrameRow["FRAME_CD"].ToString(); + if (!string.IsNullOrEmpty(frameCD)) + { + var getStackContents = GetStackContents(screenCD, frameCD); + var newIntroItems = new M_IntroItems + { + ItemsStack = stackIndex, + StackWidth = stackWidth, + StackContents = getStackContents + }; + result.Add(newIntroItems); + stackIndex++; + } + } + } + + + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetIntroData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + private List GetStackContents(string _screenCD, string _frameCD) + { + List result = null; + try + { + var getScreenLayer = m_cDataCommon.Select_NHS_SCREEN_LAYER(_screenCD, _frameCD); + if (getScreenLayer is DataTable && getScreenLayer.Rows.Count > 0) + { + result = new List(); + int setIndex = 0; + foreach (var aStackItem in getScreenLayer.Rows) + { + if (aStackItem is DataRow aRow) + { + var layerCD = aRow["LAYER_CD"] is null ? string.Empty : aRow["LAYER_CD"].ToString(); + if (!string.IsNullOrEmpty(layerCD)) + { + var mediaItems = GetMediaRollItems(_screenCD, _frameCD, layerCD); + var newStackItems = new M_StackContents + { + ItemsIndex = setIndex, + MediaRollItems = mediaItems, + }; + result.Add(newStackItems); + setIndex++; + } + + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetStackContents()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + private List GetMediaRollItems(string _screenCD, string _frameCD, string _layerCD) + { + List result = null; + try + { + var getScreenContents = m_cDataCommon.Select_NHS_SCREEN_CONTENTS(_screenCD, _frameCD, _layerCD); + if (getScreenContents is DataTable && getScreenContents.Rows.Count > 0) + { + result = new List(); + foreach (var aContents in getScreenContents.Rows) + { + if (aContents is DataRow aRow) + { + var fileType = aRow["FILE_MIME_TYPE"].ToString().Equals("PNG") + ? MediaType.Image + : aRow["FILE_MIME_TYPE"].ToString().Equals("MP4") + ? MediaType.VOD + : MediaType.None; + var linkType = aRow["LINK_YN"].ToString().Equals("1") + ? IntroLinkType.Page + : aRow["LINK_YN"].ToString().Equals("2") + ? IntroLinkType.Category + : aRow["LINK_YN"].ToString().Equals("3") + ? IntroLinkType.ItemCode + : IntroLinkType.None; + var param1 = aRow["PRD_CATE_L"] is null ? string.Empty : aRow["PRD_CATE_L"].ToString(); + var param2 = aRow["PRD_CATE_M"] is null ? string.Empty : aRow["PRD_CATE_M"].ToString(); + var linkParameter = string.Empty; + switch (linkType) + { + case IntroLinkType.Page: + switch (param1) + { + case "0": + linkParameter = "FirstSelect"; + break; + case "1": + linkParameter = "SensingPage"; + break; + case "2": + linkParameter = "ItemPage"; + break; + default: + linkParameter = "FirstSelect"; + break; + } + break; + case IntroLinkType.Category: + linkParameter = string.Format("category&{0}&{1}", param1, param2); + break; + case IntroLinkType.ItemCode: + linkParameter = param1; + break; + + } + var mediaPath = aRow["FILE_NAME"] is null ? string.Empty : aRow["FILE_NAME"].ToString(); + var runnigSeconds = aRow["PLAY_TIME"] is null ? 0 : double.Parse(aRow["PLAY_TIME"].ToString()); + var startTime = aRow["DISPLAY_START_TIME"] is null ? string.Empty : aRow["DISPLAY_START_TIME"].ToString(); + var endTime = aRow["DISPLAY_END_TIME"] is null ? string.Empty : aRow["DISPLAY_END_TIME"].ToString(); + if (!startTime.Length.Equals(4)) startTime = string.Empty; + if (!endTime.Length.Equals(4)) startTime = string.Empty; + var newMediaItem = new M_MediaRollItem + { + Type = fileType, + MediaPath = ResourceManager.GetCDPimagePath(mediaPath), + LinkType = linkType, + LinkParameter = linkParameter, + RunnigSeconds = runnigSeconds, + StartTime = startTime.Equals(string.Empty) + ? default(TimeSpan) + : new TimeSpan(int.Parse(startTime.Substring(0,2)), int.Parse(startTime.Substring(2, 2)), 0), + EndTime = endTime.Equals(string.Empty) + ? default(TimeSpan) + : new TimeSpan(int.Parse(endTime.Substring(0, 2)), int.Parse(endTime.Substring(2, 2)), 59) + + }; + result.Add(newMediaItem); + } + } + + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetMediaRollItems()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + /// + /// Get Category Data + /// + /// + public List GetCategoryData() + { + if (NeedInitModule) return null; + List result = null; + try + { + var getCategory1Items = m_cDataCommon.Select_NHS_PRD_CATE("0000"); + if (getCategory1Items is DataTable) + { + result = new List(); + int setIndex = 0; + foreach (var aCategoryItem in getCategory1Items.Rows) + { + if (aCategoryItem is DataRow aRow) + { + var category1Code = aRow["PRD_CATE_CD"] is null ? string.Empty : aRow["PRD_CATE_CD"].ToString(); + if (!result.Exists(r => r.Catalog1Item.Category1.Equals(category1Code))) + { + result.Add + ( + new M_CategoryItems + { + Catalog1Item = new M_ItemData + { + Index = setIndex, + ItemCode = category1Code, + Category1 = category1Code, + }, + Catalog2Items = GetCategory2Data(category1Code) + } + ); + setIndex++; + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetCategoryData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// Get Category2 Data + /// + /// + public List GetCategory2Data(string _category1Code) + { + if (NeedInitModule) return new List(); + var result = new List(); + try + { + var getCategory2Item = m_cDataCommon.Select_NHS_PRD_CATE(_category1Code); + if (getCategory2Item is DataTable) + { + int setIndex = 0; + foreach (var aCategoryItem in getCategory2Item.Rows) + { + if (aCategoryItem is DataRow aRow) + { + var category2Code = aRow["PRD_CATE_CD"] is null ? string.Empty : aRow["PRD_CATE_CD"].ToString(); + if (!result.Exists(r => r.Category2.Equals(category2Code))) + { + result.Add + ( + new M_ItemData + { + Index = setIndex, + ItemCode = category2Code, + Category1 = _category1Code, + Category2 = category2Code, + } + ); + setIndex++; + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetCategory2Data()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = new List(); + } + return result; + } + /// + /// Get Item Data + /// + /// + /// + public List GetItemsData(string _itemcode = null, string _barcord = null) + { + if (NeedInitModule) return new List(); + var result = new List(); + try + { + var getItems = m_cDataCommon.Select_NHS_STOR_PRD_KEY(_itemcode, _barcord); + if (getItems is DataTable) + { + int setIndex = 0; + foreach (var aItem in getItems.Rows) + { + if (aItem is DataRow aRow) + { + var itemCode = aRow["ITEM_CD"] is null ? string.Empty : aRow["ITEM_CD"].ToString(); + if (!result.Exists(r => r.ItemCode.Equals(itemCode))) + { + var category1 = aRow["PRD_CATE_UP_CD"] is null ? string.Empty : aRow["PRD_CATE_UP_CD"].ToString(); + var category2 = aRow["PRD_CATE_CD"] is null ? string.Empty : aRow["PRD_CATE_CD"].ToString(); + var imageFile = aRow["FILE_NAME"] is null ? string.Empty : aRow["FILE_NAME"].ToString(); + var isOption = aRow["OPTN_YN"] is null ? false : aRow["OPTN_YN"].ToString().Equals("1"); + var isSoldOut = aRow["SOLDOUT_YN"] is null ? false : aRow["SOLDOUT_YN"].ToString().Equals("1"); + var itemPrice = aRow["SALES_PRC"] is null ? 0d : double.Parse(aRow["SALES_PRC"].ToString()); + var option = isOption ? GetItemOption(itemCode) : null; + var badgeImages = GetBadgeImages(itemCode); + result.Add + ( + new M_ItemData + { + Index = setIndex, + ItemCode = itemCode, + Category1 = category1, + Category2 = category2, + ImageFile = imageFile, + BadgeImages = badgeImages, + IsOption = isOption, + IsSoldOut = isSoldOut, + Price = itemPrice, + Option = option + } + ); + setIndex++; + } + else + { + CommonLog.ErrorLogWrite(this, "GetItemsData()", "Duplicate Item No", string.Format("{0} : {1}", itemCode, aRow["TOUCH_KEY_NM"].rDBToString())); + } + + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetItemsData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = new List(); + } + return result; + } + public M_ItemData GetBarcordItemsData(string _itemcode = null, string _barcord = null) + { + if (NeedInitModule) return null; + var result = new M_ItemData(); + try + { + var getItems = m_cDataCommon.Select_NHS_PRD_MST(_barcord,_itemcode); + if (getItems is DataTable && getItems.Rows.Count > 0) + { + if (getItems.Rows[0] is DataRow aRow) + { + var itemCode = aRow["ITEM_CD"] is null ? string.Empty : aRow["ITEM_CD"].ToString(); + var category2 = aRow["PRD_CATE_CD"] is null ? string.Empty : aRow["PRD_CATE_CD"].ToString(); + var imageFile = aRow["FILE_NAME"] is null ? string.Empty : aRow["FILE_NAME"].ToString(); + var itemPrice = aRow["TAKE_OUT_SALE_AMT"] is null ? 0d : double.Parse(aRow["TAKE_OUT_SALE_AMT"].ToString()); + result = new M_ItemData + { + ItemCode = itemCode, + Category2 = category2, + ImageFile = imageFile, + Price = itemPrice, + }; + } + + } + else + { + result = null; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetBarcordItemsData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + private List GetBadgeImages(string _itemCode) + { + List result = null; + try + { + var getBadgeImages = m_cDataCommon.Select_NHS_STOR_PRD_TAG(_itemCode); + if (getBadgeImages is DataTable && getBadgeImages.Rows.Count > 0) + { + result = new List(); + + int setIndex = 0; + foreach (var aItem in getBadgeImages.Rows) + { + if (aItem is DataRow aRow) + { + var badgeImage = aRow["FILE_NAME"] is null ? string.Empty : aRow["FILE_NAME"].ToString(); + if (!string.IsNullOrEmpty(badgeImage)) + { + result.Add(badgeImage); + setIndex++; + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetBadgeImages()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + /// + /// Get Option Data + /// + /// + /// + public List GetItemOption(string _itemCode) + { + if (NeedInitModule) return null; + List result = null; + try + { + var getOptionGroup = m_cDataCommon.Select_NHS_PRD_OPTN(_itemCode); + if (getOptionGroup is DataTable && getOptionGroup.Rows.Count > 0 ) + { + result = new List(); + + int setIndex = 0; + foreach (var aItem in getOptionGroup.Rows) + { + if (aItem is DataRow aRow) + { + try + { + var optionGroupCode = aRow["ITEM_OPTN_GRP_CD"] is null ? string.Empty : aRow["ITEM_OPTN_GRP_CD"].ToString(); + + if (!result.Exists(r => r.Code.Equals(optionGroupCode))) + { + var getOptionGroupItem = m_cDataCommon.Select_NHS_PRD_OPTN_GRP(optionGroupCode); + if (getOptionGroupItem is DataTable && getOptionGroupItem.Rows.Count.Equals(1)) + { + var optionGroupItem = getOptionGroupItem.Rows[0]; + var selectMode = optionGroupItem["SEL_MTD"].ToString().Equals("S") + ? OptionSelectMode.Single + : optionGroupItem["SEL_MTD"].ToString().Equals("M") + ? OptionSelectMode.Multi + : OptionSelectMode.None; + var imageFile = optionGroupItem["FILE_NAME"] is null ? string.Empty : optionGroupItem["FILE_NAME"].ToString(); + var isMustSelect = optionGroupItem["RQRD_YN"] is null ? false : optionGroupItem["RQRD_YN"].ToString().Equals("1"); + result.Add + ( + new M_ItemOptionGroup + { + Index = setIndex, + Code = optionGroupCode, + ImageFile = imageFile, + SelectMode = selectMode, + IsMustSelect = isMustSelect, + Name = GetLaguageData("OPTNGRP", optionGroupCode), + Options = GetOptions(optionGroupCode), + } + ); + setIndex++; + } + } + } + catch + { + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetItemOption()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// Get Option Group Data With Options Data + /// + /// + /// + public List GetOptions(string _optionGroupCode) + { + if (NeedInitModule) return null; + List result = null; + try + { + var getOption = m_cDataCommon.Select_NHS_OPTN_MST(_optionGroupCode); + if (getOption is DataTable && getOption.Rows.Count > 0) + { + result = new List(); + int setIndex = 0; + foreach (var aItem in getOption.Rows) + { + if (aItem is DataRow aRow) + { + try + { + var optionCode = aRow["ITEM_OPTN_CD"] is null ? string.Empty : aRow["ITEM_OPTN_CD"].ToString(); + if (!result.Exists(r => r.Code.Equals(optionCode))) + { + var kind = aRow["KIND"].ToString().Equals("DIS") + ? OptionKind.Discount + : aRow["KIND"].ToString().Equals("BTN") + ? OptionKind.Button + : aRow["KIND"].ToString().Equals("UPC") + ? OptionKind.UpCharge + : aRow["KIND"].ToString().Equals("CNT") + ? OptionKind.Count + : OptionKind.None; + var kindCode = aRow["KIND_CODE"] is null ? string.Empty : aRow["KIND_CODE"].ToString(); + var amountMin = aRow["MIN_AMT"] is null ? 0 : int.Parse(aRow["MIN_AMT"].ToString()); + var amountMax = aRow["MAX_AMT"] is null ? 0 : int.Parse(aRow["MAX_AMT"].ToString()); + var amount = aRow["AMT"] is null ? 0d : double.Parse(aRow["AMT"].ToString()); + result.Add + ( + new M_ItemOption + { + Index = setIndex, + Code = optionCode, + Name = GetLaguageData("OPTN", optionCode), + SelectValue = 0d, + Kind = kind, + KindCode = kindCode, + Amount = amount, + AmountMin = amountMin, + AmountMax = amountMax + } + ); + setIndex++; + } + } + catch + { + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetOptions()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + /// + /// Kiosk 에서 사용가능한 결재수단 사용여부를 조회 : 2019-06-10 - 1997fx11 + /// + /// + public Dictionary GetNhsFuncInfo() + { + var nhsFuncInfoType = new NhsFuncInfoType(); + var dictionaryNhsFuncInfo = new Dictionary(); + + var dt = m_cDataCommon.Select_NHS_FUNC_INFO(); + + //전체 const로 잡힌 필드를 돌며 DB에서 받아온 Key와 매칭 + foreach (var item in nhsFuncInfoType.GetType().GetFields()) + { + //DataTable에서 키와 일치하는 값을 찾아냄 + var rowData = dt.Select($"FUNC_CD = {item.GetValue(item.Name)}").FirstOrDefault(); + if (rowData != null) + { + //Dictionary에 키와 Use_Yn값을 추가 + dictionaryNhsFuncInfo.Add(item.GetValue(item.Name)?.ToString(), rowData["USE_YN"]?.ToString()); + } + } + + return dictionaryNhsFuncInfo; + } + #endregion Methods + + + #region MyRegion + /// + /// 2019-03-19 - 1997fx11 : 구매고객 이력 호출 + /// + /// + /// + public string[] GetCustBuyHistory(string _custCd) + { + string[] aList = null; + string sToday = string.Empty; + + try + { + var custNo = _custCd.Length >= 10 ? _custCd.Substring(0, 10) : string.Empty; + sToday = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now); + + aList = string.IsNullOrEmpty(custNo) ? null : m_cDataCommon.Select_NHS_CUST_BUY_HIST(sToday, _custCd); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetCustBuyHistory()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + aList = null; + } + + return aList; + } + //public int GetNewProduct(string _updateDate = ) + //{ + // int iRet = 0; + + // try + // { + // iRet = m_cDataCommon.Get_NEW_PRODUCT_BY_IRT(_updateDate); + // } + // catch + // { + // iRet = -1; + // } + + // return iRet; + //} + + /// + /// 2019-05-30 - 1997fx11 : 알림톡 전송 + /// + /// + /// + /// + public void Send_NoticeTalk(string sPhoneNo, string korItemName, string itemCount) + { + try + { + if (!string.IsNullOrEmpty(m_cPosStatus.Base.LastRcptBarcodeData)) + { + var result = m_cDataCommon.Send_NoticeTalk(sPhoneNo, korItemName, itemCount); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Send_NoticeTalk()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.DataHelper/PosDataService.cs b/Kiosk/Common/SPC.Kiosk.DataHelper/PosDataService.cs new file mode 100644 index 0000000..dc81c29 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.DataHelper/PosDataService.cs @@ -0,0 +1,724 @@ +using System; +using System.Linq; +using System.Text; +using System.Collections; +using System.Collections.Generic; +using System.Data; +using System.Runtime.InteropServices; + +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.Service; +using Cosmos.Win; +using Cosmos.CommonManager; +using System.Timers; +//using System.Threading; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +using System.Collections.ObjectModel; + +namespace SPC.Kiosk.DataHelper +{ + public class PosDataService : IDisposable + { + #region [ Members ] + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + protected IDataCommonUs m_cDataCommon = null; + private IDataProcessUs m_cDataService = null; // 거래데이터 합계금액 계산 및 관리 + + + + + private SaleMainProcess m_cSaleMainProc = null; // 판매화면 기능 관리 + + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + #endregion Members + + + #region [ Ctor & Dispose ] + /// + /// Ctor + /// + public PosDataService() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + + m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE); + + + m_cSaleMainProc = new SaleMainProcess(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + /// + /// Dispose + /// + public void Dispose() + { + sManager = null; // 이 객체를 통해 업무 Service 호출 + StateObject = null; // StateObject : StateServer Object (객체) + m_cPosStatus = null; // 기본정보 참조 + m_cTrnStatus = null; // 거래정보 참조 + m_cDataCommon = null; + } + + public void DisposePos() + { + //sManager = null; + //StateObject = null; // StateObject : StateServer Object (객체) + + m_cTrnStatus.Sale.Clear(); + m_cTrnStatus.Head.Clear(); + + m_cDataService.InitTranHeader(); + m_cDataService.DeleteTranItem(); + } + #endregion Ctor & Dispose + + + #region [ Methods ] + /// + /// 점포명 조회 + /// + /// + public string StoreName() + { + if (NeedInitModule) return string.Empty; + string result = string.Empty; + try + { + + result = CmUtil.GetDataRowStr(PosMstManager.GetMstStore(), PosMst.MST_STORE.DATA.STORNM); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StoreName()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = string.Empty; + } + return result; + } + public void GetCashBill(ref double _cashBill, ref double _taxbill) + { + _cashBill = m_cDataService.GetCashAmt(); + if (_cashBill > 0) + { + _taxbill = m_cDataService.GetPaymentAmtVAT(_cashBill); + } + } + + /// + /// 영수증 인쇄 + /// + /// 진동벨번호 + /// 알림톡유무 + /// HappyPoint 적립유무 + /// Ok CashBag 적립유무 + /// + public string PrintReceipt(string _bellNo, bool _isTalk, bool _isHappyPoint, bool _isOkCashBag) + { + if (NeedInitModule) return string.Empty; + string result = string.Empty; //대기번호 + var saleMain = new SaleMainProcess(); + var sRet = ""; + try + { + + //var m_cTrnStatus = + + if (_isHappyPoint) + { + var m_cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT); + Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { }); + ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); + //cEtcItem.CANCEL_DIV = ItemConst.PAY_CANCEL_DIV.NORMAL; + //cEtcItem.AMT_ENTRY_09 = 4000d; + alEtcItem.Clear(); + alEtcItem.Add(cEtcItem); + } + else if (_isOkCashBag) + { + //var m_cPntOcbSave = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PNT_OCB_SAVE) + //Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)m_cPntOcbSave.GetPayment(new string[] { }); + //ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); + ////cEtcItem.CANCEL_DIV = ItemConst.PAY_CANCEL_DIV.NORMAL; + ////cEtcItem.AMT_ENTRY_09 = 4000d; + //alEtcItem.Clear(); + //alEtcItem.Add(cEtcItem); + } + //영수증 인쇄 + if (!string.IsNullOrEmpty(_bellNo)) + { + m_cTrnStatus.Head.OrderNo = _bellNo; + m_cTrnStatus.Head.IsBellUse = "1"; + } + + + sRet = saleMain.CheckSaleComplete(true); + //ISaleCompleteUs m_cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE); + //var sRet = m_cSaleComplete.PosSaleExecute(new string[] { }); + + string sFilePath = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM + "NHS_카드_결제_완료_여_.wav"; + CmUtil.PlaySound(sFilePath); + + + result = m_cTrnStatus.Head.OrderNo; //대기번호 + m_cTrnStatus.Head.OrderNo = ""; + + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "PrintReceipt()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = string.Empty; + } + finally + { + if (sRet.Equals(UserCom.ERROR)) DisposePos(); //에러발생 시 거래정보 초기화 에러 없으면 SaleMainProcess에서 초기화 하고 있음..2019.04.17 + } + return result; + } + + + /// + /// 장바구니 전체 변경 + /// + /// + /// + public bool ResetItems(List _basketItems) + { + if (NeedInitModule) return false; + bool result = true; + try + { + //TODO : Clear All Data + + + + + + m_cDataService.DeleteTranItem();//주문화면에서 사용한 모든 거래 데이터 삭제 + m_cDataService.InitTranHeader();//거래 정보 초기화 + + m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL; + m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.SALE; + + if (_basketItems is List && _basketItems.Count > 0) + { + foreach (var basketItem in _basketItems) + { + result = SetItem(basketItem); + if (!result) break; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ResetItems()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + + public bool IsExistITEM_PLU_CD(string _pluCD) + { + bool result = false; + try + { + var saleItems = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + foreach (var aSaleItem in saleItems) + { + if (aSaleItem is Column.TR_PLU.DATA aItem) + { + if (aItem.ITEM_PLU_CD.Equals(_pluCD)) + { + result = true; + break; + } + } + } + } + catch (Exception) + { + result = false; + } + return result; + } + + /// + /// 2019-04-10 - 1997fx11 : 장바구니 아이템 추가또는 업데이트 + /// (존재하는 아이템은 업데이트 그외는 추가처리) + /// + /// + /// + public bool SetItem(M_BasketItem _basketItem) + { + if (NeedInitModule) return false; + bool result = false; + try + { + //Set Item Process + string sRet = UserCom.RST_OK; + string sSubStoreNo = "", sItemCode = "", sScanCode = ""; // 점포코드, 상품코드, 스켄코드 + string sInPutTypeCode = "", sSelRow = "", sInPutData = ""; // (0:수입력, 1:메뉴, 2:스켄, 3:플레이버) + (메뉴코드,스캔코드), 선택행, 입력데이터 + + ISalePluItemUs cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM); + sSubStoreNo = m_cPosStatus.Base.StoreNo; // 점포코드 + sItemCode = _basketItem.ItemCode; // 상품코드 + + + sInPutTypeCode = "1" + sSubStoreNo.PadLeft(7, '0') + sItemCode.PadLeft(9, ' '); + //sInPutTypeCode = sSubStoreNo.PadLeft(7, '0') + sItemCode.PadLeft(9, ' '); + + if (_basketItem.Option == null) + { + //sRet = cPluService.SetItemCode(sSelRow, sInPutTypeCode, _basketItem.Count.ToString()); + result = m_cSaleMainProc.ExecuteSaleMainProcess(PosKey.MENU_KEY.REGISTER_PLU_ITEM + , _basketItem.Count.ToString() + , sSelRow + , PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + sInPutTypeCode.Substring(1)); + } + else + { + string sTakeInOut = "1001"; // 기본값 : Take Out. + string sUpCharge = "1004"; // 기본값 : 샷추가안함. + + //foreach (var option in _basketItem.Option) + //{ + // foreach (var opt in option.Options) + // { + // if (opt.IsSelected) + // { + // if (opt.Kind == OptionKind.Button) { sTakeInOut = opt.Code; } + // else if (opt.Kind == OptionKind.UpCharge) { sUpCharge = opt.Code; } + // } + // } + //} + + //sRet = cPluService.SetItemCode(sSelRow, sInPutTypeCode, _basketItem.Count.ToString()); + result = m_cSaleMainProc.ExecuteSaleMainProcess(PosKey.MENU_KEY.REGISTER_PLU_ITEM + , _basketItem.Count.ToString() + , sSelRow + , PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + sInPutTypeCode.Substring(1)); + + foreach (var option in _basketItem.Option) + { + foreach (var opt in option.Options) + { + if (opt.IsSelected) + { + ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + Column.TR_PLU.DATA cPluItem = new Column.TR_PLU.DATA(); + DataTable dtDataInfo = new DataTable(); + DataRow drPlu; + sRet = UserCom.RST_OK; + + var findIndex = aSaleItem.Count - 1; + for (var i = aSaleItem.Count - 1; i > -1; i--) + { + if (((Column.TR_PLU.DATA)aSaleItem[i]).ITEM_PLU_CD.Equals(_basketItem.ItemCode)) + { + findIndex = i; + break; + } + } + + switch (opt.Kind) + { + case OptionKind.Button: + + + + dtDataInfo = m_cDataCommon.SearchNHSOption(sSubStoreNo, opt.Code); + drPlu = dtDataInfo.Rows[0]; + + cPluItem = new Column.TR_PLU.DATA(); + cPluItem.SUB_SHOP_CD = sSubStoreNo; + cPluItem.ITEM_PLU_CD = opt.Code; + cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU; + cPluItem.SALE_QTY = _basketItem.Count; + cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.NHS_OPTN_MST.DATA.ITEM_OPTN_NM); ; + cPluItem.SUBPRC_MENU_KEY_DIV = "1"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + cPluItem.NONSALES_RSN_CD = "0"; + cPluItem.NONSALES_RSN_NM = ""; + cPluItem.SUB_MENU_MAIN_CD = sItemCode; + + aSaleItem.Add(cPluItem); // 등록 처리 + + + break; + case OptionKind.Count: + dtDataInfo = m_cDataCommon.SearchNHSOption(sSubStoreNo, opt.Code); + drPlu = dtDataInfo.Rows[0]; + + cPluItem = new Column.TR_PLU.DATA(); + cPluItem.SUB_SHOP_CD = sSubStoreNo; + cPluItem.ITEM_PLU_CD = opt.Code; // sItemCode; + cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU; + cPluItem.SALE_QTY = (long)opt.SelectValue; + cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.NHS_OPTN_MST.DATA.ITEM_OPTN_NM); + cPluItem.SUBPRC_MENU_KEY_DIV = "1"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + cPluItem.NONSALES_RSN_CD = "0"; + cPluItem.NONSALES_RSN_NM = ""; + cPluItem.SUB_MENU_MAIN_CD = sItemCode; + + aSaleItem.Add(cPluItem); // 등록 처리 + break; + case OptionKind.Discount: + ((Column.TR_PLU.DATA)aSaleItem[findIndex]).EXCEP_DC_AMT = ((opt.SelectValue < 0 ? (opt.SelectValue * (-1)) : opt.SelectValue) * _basketItem.Count); + ((Column.TR_PLU.DATA)aSaleItem[findIndex]).EXCEP_DC_DIV = ((opt.SelectValue * (-1)) > 0 ? ItemConst.PLU_DC_DIV.ELOVE_DC : "0000"); + break; + case OptionKind.UpCharge: + dtDataInfo = m_cDataCommon.SearchNHSOption(sSubStoreNo, opt.Code); + drPlu = dtDataInfo.Rows[0]; + + cPluItem = new Column.TR_PLU.DATA(); + cPluItem.SUB_SHOP_CD = sSubStoreNo; + cPluItem.ITEM_PLU_CD = opt.KindCode; + cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU; + + cPluItem.SALE_QTY = _basketItem.Count; + cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.NHS_OPTN_MST.DATA.ITEM_OPTN_NM); + cPluItem.SUBPRC_MENU_KEY_DIV = "2"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + cPluItem.NONSALES_RSN_CD = "0"; + cPluItem.NONSALES_RSN_NM = ""; + cPluItem.SUB_MENU_MAIN_CD = sItemCode; + + + cPluItem.SALE_PRC = CmUtil.DoubleParse(CmUtil.GetDataRowStr(drPlu, PosMst.NHS_OPTN_MST.DATA.AMT)); + + aSaleItem.Add(cPluItem); // 등록 처리 + break; + } + + + + + + //switch (opt.Kind) + //{ + // case OptionKind.Button: + // if (opt.Code.Equals("1001") || opt.Code.Equals("1002")) + // { + // dtDataInfo = m_cDataCommon.SearchNHSOption(sSubStoreNo, opt.Code); + // drPlu = dtDataInfo.Rows[0]; + + + // if (opt.Code.Equals("1001")) { ((Column.TR_PLU.DATA)aSaleItem[findIndex]).TAKE_IN_OUT_DIV = PosConst.TAKE_IN_OUT_DIV.TAKE_OUT; } + // else if (opt.Code.Equals("1002")) { ((Column.TR_PLU.DATA)aSaleItem[findIndex]).TAKE_IN_OUT_DIV = PosConst.TAKE_IN_OUT_DIV.TAKE_IN; } + + // cPluItem = new Column.TR_PLU.DATA(); + // cPluItem.SUB_SHOP_CD = sSubStoreNo; + // cPluItem.ITEM_PLU_CD = opt.Code; + // cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU; + // cPluItem.SALE_QTY = _basketItem.Count; + // cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.NHS_OPTN_MST.DATA.ITEM_OPTN_NM); ; + // cPluItem.SUBPRC_MENU_KEY_DIV = "1"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + // cPluItem.NONSALES_RSN_CD = "0"; + // cPluItem.NONSALES_RSN_NM = ""; + // cPluItem.SUB_MENU_MAIN_CD = sItemCode; + // //cPluItem.PROD_TAKEINOUT_DIV = dgvPluItem.Rows[iRow].Cells[6].Value.ToString(); + + // aSaleItem.Add(cPluItem); // 등록 처리 + // } + + // break; + // case OptionKind.Discount: + // ((Column.TR_PLU.DATA)aSaleItem[findIndex]).EXCEP_DC_AMT = ((opt.SelectValue < 0 ? (opt.SelectValue * (-1)) : opt.SelectValue) * _basketItem.Count); + // ((Column.TR_PLU.DATA)aSaleItem[findIndex]).EXCEP_DC_DIV = ((opt.SelectValue * (-1)) > 0 ? ItemConst.PLU_DC_DIV.ELOVE_DC : "0000"); + // break; + // case OptionKind.UpCharge: + // dtDataInfo = m_cDataCommon.SearchItemCode(sSubStoreNo, opt.KindCode, sScanCode); + // drPlu = dtDataInfo.Rows[0]; + + // cPluItem = new Column.TR_PLU.DATA(); + // cPluItem.SUB_SHOP_CD = sSubStoreNo; + // cPluItem.ITEM_PLU_CD = opt.KindCode; + // cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU; + // if (sTakeInOut.Equals("1001")) + // { + // cPluItem.SALE_PRC = CmUtil.DoubleParse(CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_OUT_SALE_AMT)); + // } + // else + // { + // cPluItem.SALE_PRC = CmUtil.DoubleParse(CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_IN_SALE_AMT)); + // } + // cPluItem.SALE_QTY = _basketItem.Count; + // cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ITEM_NM); + // cPluItem.SUBPRC_MENU_KEY_DIV = "2"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + // cPluItem.NONSALES_RSN_CD = "0"; + // cPluItem.NONSALES_RSN_NM = ""; + // cPluItem.SUB_MENU_MAIN_CD = sItemCode; + // //cPluItem.PROD_TAKEINOUT_DIV = dgvPluItem.Rows[iRow].Cells[6].Value.ToString(); + + // aSaleItem.Add(cPluItem); // 등록 처리 + + // break; + // case OptionKind.Count: + // if (opt.Code.Equals("1006") || opt.Code.Equals("1007")) + // { + // dtDataInfo = m_cDataCommon.SearchNHSOption(sSubStoreNo, opt.Code); + // drPlu = dtDataInfo.Rows[0]; + + // cPluItem = new Column.TR_PLU.DATA(); + // cPluItem.SUB_SHOP_CD = sSubStoreNo; + // cPluItem.ITEM_PLU_CD = opt.Code; // sItemCode; + // cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.OPT_MENU; + // cPluItem.SALE_QTY = (long)opt.SelectValue; + // cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.NHS_OPTN_MST.DATA.ITEM_OPTN_NM); + // cPluItem.SUBPRC_MENU_KEY_DIV = "1"; // 부가메뉴구분(1:속성,2:업차지,3:선택메뉴) + // cPluItem.NONSALES_RSN_CD = "0"; + // cPluItem.NONSALES_RSN_NM = ""; + // cPluItem.SUB_MENU_MAIN_CD = sItemCode; + // //cPluItem.PROD_TAKEINOUT_DIV = dgvPluItem.Rows[iRow].Cells[6].Value.ToString(); + + // aSaleItem.Add(cPluItem); // 등록 처리 + // } + + // break; + // default: + // break; + //} + + if (sRet != UserCom.RST_OK) { break; } + } + + if (sRet != UserCom.RST_OK) { break; } + } + } + } + + //if (sRet == UserCom.RST_OK) { result = true; } + //else { result = false; } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + + + /// + /// 장바구니 아이템 삭제 또는 업데이트 + /// (수량이 동일 하면 삭제 다르면 업데이트 필요) + /// + /// + /// + public bool DelItem(M_BasketItem _basketItem) + { + bool result = false; + try + { + //TODO : Delete Item Process + //result = m_cSaleMainProc.CancelPluItem(_basketItem.p_Index.ToString()); + + m_cSaleMainProc.CancelPluItem("0"); + result = true; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "DelItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + + + /// + /// 장바구니옵션 변경 + /// (수량이 동일 하면 삭제 다르면 업데이트 필요) + /// + /// + /// + public bool UpdatedItem(M_BasketItem _basketItem) + { + bool result = false; + try + { + //TODO : Delete Item Process + result = true; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "DelItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + #endregion Methods + + + public ObservableCollection AddItemToBasket(ObservableCollection _targetBasket + , int _itemCount + , double _unitPrice + , string _designImagesPath + , M_ItemData _itemData + , List _option + , BasketItemType _basketItemType = BasketItemType.Order) + { + ObservableCollection result = null; + try + { + var optionLabel = CommonFunction.GetOptionLabel(_option); + var findSameData = _targetBasket is ObservableCollection + ? _targetBasket.Where(r => r.ItemCode.Equals(_itemData.ItemCode) + && r.AllOptionLabel.GetLanguageData(SupportLanguageType.ko).Replace("[행사]", "").Equals(optionLabel.GetLanguageData(SupportLanguageType.ko))).FirstOrDefault() + + : null; + var itemIndex = 0; + if (findSameData is M_BasketItem findedItem) + { + itemIndex = findSameData.p_Index; + findedItem.Count += _itemCount; + //SetItem(findedItem); + //수량 증가 + //m_cSaleMainProc.ExecuteSaleMainProcess(PosKey.MENU_KEY.QTY_PLUS, "", itemIndex.ToString(), ""); + } + else + { + var newBasketData = _targetBasket is ObservableCollection + ? _targetBasket.ToList() + : new List(); + //foreach (var aitem in newBasketData) + //{ + // aitem.Index += 1; + //} + //var pIdx = 0; + //if (newBasketData.Count != 0) pIdx++; + itemIndex = newBasketData.Count.Equals(0) + ? 0 + : newBasketData.Max(r => r.p_Index) + 1; + + + + var newBasketItem = new M_BasketItem + { + Index = 0, + p_Index = itemIndex, + ItemType = _basketItemType, + ItemCode = _itemData.ItemCode, + ItemImage = _itemData.DataParameter.NormalBrush, + ItemName = _itemData.BaseTextBlock.LanguageData, + AllOptionLabel = optionLabel, + Option = _option, + Count = _itemCount, + BasePrice = _itemData.Price, + Price = _unitPrice, + ItemCountLabel = new List + { + new M_Language {Type=SupportLanguageType.ko,LanguageData=@"개"}, + new M_Language {Type=SupportLanguageType.en,LanguageData=@"EA"} + }, + ItemPriceLabel = new List + { + new M_Language {Type=SupportLanguageType.ko,LanguageData=@"\"} + }, + MinusNormalBrush = ResourceManager.GetNximagePathAdd("btn_count_minus_n.png", _designImagesPath), + MinusDownBrush = ResourceManager.GetNximagePathAdd("btn_count_minus_p.png", _designImagesPath), + PlusNormalBrush = ResourceManager.GetNximagePathAdd("btn_count_plus_n.png", _designImagesPath), + PlusDownBrush = ResourceManager.GetNximagePathAdd("btn_count_plus_p.png", _designImagesPath) + + }; + + //SetItem(newBasketItem); + //var saleItems = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + + //foreach(var aItems in saleItems) + //{ + // if(((Column.TR_PLU.DATA)aItems).CPI_DC_AMT > 0) + // { + // newBasketItem.Price = newBasketItem.Price - ((Column.TR_PLU.DATA)aItems).CPI_DC_AMT; + // } + //} + + //상품등록 처리(POS) + m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT; //판매대기 + ISalePluItemUs cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM); + var sSubStoreNo = m_cPosStatus.Base.StoreNo; // 점포코드 + var sItemCode = newBasketItem.ItemCode; // 상품코드 + var sMenuCode = "1" + sSubStoreNo.PadLeft(7, '0') + sItemCode.PadLeft(9, ' '); + //bool bRet = m_cSaleMainProc.ExecuteSaleMainProcess(PosKey.MENU_KEY.REGISTER_PLU_ITEM, sInPutValue, "", PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + sMenuCode.Substring(1)); + bool bRet = m_cSaleMainProc.ExecuteSaleMainProcess(PosKey.MENU_KEY.REGISTER_PLU_ITEM, "", itemIndex.ToString(), PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + sMenuCode.Substring(1)); + + + + + + + //var nStat = cPluService.SetItemCode(itemIndex.ToString(), PosConst.SALE_PLU_INPUT_TYPE.MENUKEY, m_cPosStatus.Base.StoreNo, newBasketItem.ItemCode, "", newBasketItem.Count.ToString()); + if (bRet) + { + itemIndex = 0; + var saleItems = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + if (((Column.TR_PLU.DATA)saleItems[itemIndex]).CPI_DC_AMT > 0) + { + newBasketItem.CampaignPrice = ((Column.TR_PLU.DATA)saleItems[itemIndex]).CPI_DC_AMT; + newBasketItem.Price = _itemData.Price - newBasketItem.CampaignPrice; + var addOptionLabel = new List + { + new M_Language {Type=SupportLanguageType.ko,LanguageData=@"[행사]"}, + new M_Language {Type=SupportLanguageType.en,LanguageData=@"[EVENT]"} + }; + + newBasketItem.AllOptionLabel = optionLabel is List + ? Languages.CombineLanguageData(addOptionLabel, optionLabel) + : addOptionLabel; + } + + newBasketData.Insert(0, newBasketItem); + + DelItem(newBasketItem); + } + else + { + CommonLog.ErrorLogWrite(this, "AddItemToBasket()", "Fail !!", string.Format("\nItemCode={0}", newBasketItem.ItemCode)); + } + //if (bRet == true) + // newBasketData.Insert(0, newBasketItem); + + + + result = new ObservableCollection(newBasketData); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "AddItemToBasket()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + /// + /// 바코드 데이터 초기화 + /// + public void LastBarcodeDelete() + { + m_cPosStatus.Base.LastRcptBarcodeData = string.Empty; + } + + } +} \ No newline at end of file diff --git a/Kiosk/Common/SPC.Kiosk.DataHelper/Properties/AssemblyInfo.cs b/Kiosk/Common/SPC.Kiosk.DataHelper/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fa5e4a3 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.DataHelper/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.DataHelper")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.DataHelper")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("fee44681-7f0e-469a-a833-dc324eb6d01a")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Common/SPC.Kiosk.DataHelper/SPC.Kiosk.DataHelper.csproj b/Kiosk/Common/SPC.Kiosk.DataHelper/SPC.Kiosk.DataHelper.csproj new file mode 100644 index 0000000..854e8d0 --- /dev/null +++ b/Kiosk/Common/SPC.Kiosk.DataHelper/SPC.Kiosk.DataHelper.csproj @@ -0,0 +1,92 @@ + + + + + Debug + AnyCPU + {FEE44681-7F0E-469A-A833-DC324EB6D01A} + Library + Properties + SPC.Kiosk.DataHelper + SPC.Kiosk.DataHelper + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\BIN\Cosmos.BaseFrame.dll + + + False + ..\..\BIN\Cosmos.Common.dll + + + False + ..\..\BIN\Cosmos.CommonManager.dll + + + False + ..\..\BIN\Cosmos.ServiceProvider.dll + + + False + ..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + False + ..\..\..\..\BIN\Win.Sale.dll + + + + + + + + + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {90ebd618-0409-458d-9829-a012223e8671} + SPC.Kiosk.PB.Model + + + {e139e39d-0047-45c6-a72d-dade3e929060} + AsvDataProcess + + + + \ No newline at end of file diff --git a/Kiosk/PB/SPC.Kiosk.PB.Model/PBModels.cs b/Kiosk/PB/SPC.Kiosk.PB.Model/PBModels.cs new file mode 100644 index 0000000..9112add --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.Model/PBModels.cs @@ -0,0 +1,69 @@ +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +namespace SPC.Kiosk.PB.Model +{ + /// + /// Category Data + /// + public class M_CategoryItems + { + /// + /// a Root Catalog + /// + public M_ItemData Catalog1Item { get; set; } = new M_ItemData(); + /// + /// Sub Catalog Datas + /// + public List Catalog2Items { get; set; } = new List(); + } + /// + /// DiscountData + /// + public class M_DiscountAndAddValues + { + /// + /// Discount Type + /// + public PaymentsDiscountAndAddType DiscountType { get; set; } = PaymentsDiscountAndAddType.None; + /// + /// Diacount Name Text + /// + public List DiscountName { get; set; } + /// + /// Discount Value + /// + public double DiscountValue { get; set; } = 0d; + /// + /// Gift Item Code + /// + public string AddItemCode { get; set; } = string.Empty; + /// + /// Gift Item Count + /// + public int AddCount { get; set; } = 0; + /// + /// Gift Item Unit Price + /// + public double AddValue { get; set; } = 0d; + /// + /// Is Can Roll Back + /// + public bool IsCanRollBack { get; set; } + } + /// + /// Barcode Scan Or AIaScan Data + /// + public class M_ScanData + { + public string ItemCode { get; set; } + public string Barcord { get; set; } + public BasketItemType ItemType { get; set; } = BasketItemType.None; + } +} + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB.Model/Properties/AssemblyInfo.cs b/Kiosk/PB/SPC.Kiosk.PB.Model/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..46cf2b4 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.Model/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.PB.Model")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Zin")] +[assembly: AssemblyProduct("SPC.Kiosk.PB.Model")] +[assembly: AssemblyCopyright("Copyright © Zin. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("39558cc0-898a-41e5-b140-ea2b36018121")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/PB/SPC.Kiosk.PB.Model/SPC.Kiosk.PB.Model.csproj b/Kiosk/PB/SPC.Kiosk.PB.Model/SPC.Kiosk.PB.Model.csproj new file mode 100644 index 0000000..23e6fe9 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.Model/SPC.Kiosk.PB.Model.csproj @@ -0,0 +1,63 @@ + + + + + Debug + AnyCPU + {90EBD618-0409-458D-9829-A012223E8671} + Library + Properties + SPC.Kiosk.PB.Model + SPC.Kiosk.PB.Model + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + ..\..\..\..\BIN\ + TRACE + prompt + 4 + x86 + + + + + + + + + + + + + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + + \ No newline at end of file diff --git a/Kiosk/PB/SPC.Kiosk.PB.Model/Types.cs b/Kiosk/PB/SPC.Kiosk.PB.Model/Types.cs new file mode 100644 index 0000000..c95bd16 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.Model/Types.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace SPC.Kiosk.PB.Model +{ + /// + /// PB Sensing Sub Page + /// + public enum PBSensingSubPageType + { + /// + /// Sensing Page + /// + SensingPage, + /// + /// Sensing Sub Page + /// + BarcordPage, + } + /// + /// PB Page Types + /// + public enum PBPageType + { + /// + /// Intro + /// + Intro, + /// + /// 객체인식,일반주문 선택화면 + /// + FirstSelect, + /// + /// 객체인식 + /// + Sensing, + /// + /// 일반주문 + /// + Items + } + public enum SensingPageType + { + /// + /// 카메라 스캔 안내 페이지 + /// + Infomation, + /// + /// 카메라 스캔중 및 종료후 표시 페이지 + /// + SensingMain, + /// + /// 바코드 리딩으로 제품 추가 하는 페이지 + /// + BarcodeRead + } + /// + /// PB Payments Page Type + /// + public enum PBPaymentPageType + { + /// + /// Parking Page + /// + None, + /// + /// 주문 내역 상세 + /// + DetailBasket, + //PaymentsSelect, + /// + /// 포인트 적립/통신사 할인 + /// + PointsDisCounts, + /// + /// 포인트 사용/ 쿠폰 사용 + /// + CouponUsePoints, + /// + /// 포인트 사용 더보기 + /// + MoreVIewPoints, + /// + /// 포인트 사용 더보기 뒤로가기 + /// + MoreVIewReturnPoints, + /// + /// 최종 결제 + /// + PaymentExcute, + } + /// + /// Payment Discount And And Add Type + /// + public enum PaymentsDiscountAndAddType + { + /// + /// None + /// + None, + /// + /// 사은품 + /// + BonusGift, + /// + /// SK 할인 + /// + SkTelecomDiscount, + /// + /// KT 할인 + /// + AllehKTDiscount, + /// + /// LGU+ 할인 + /// + LGUPlusDisCount, + /// + /// Happy Point + /// + HappyPoint, + /// + /// Ok Cash Bag Point + /// + OkCashBagPoint, + /// + /// Happy Coupon + /// + HappyCoupon, + /// + /// Mobile Coupon + /// + MobileCoupon, + /// + /// Lasy Payment + /// + LastPayment + } +} \ No newline at end of file diff --git a/Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBPaymentsViewModel.cs b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBPaymentsViewModel.cs new file mode 100644 index 0000000..74428f6 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBPaymentsViewModel.cs @@ -0,0 +1,3035 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.IO; +using System.ComponentModel; +using System.Windows.Input; +using System.Windows.Media.Animation; +using System.Windows; +using System.Collections.ObjectModel; +//using System.Windows.Forms; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Threading; +#region SPC.Kiosk +using SPC.Kiosk.Common; +using SPC.Kiosk.Base; +using SPC.Kiosk.PB.Model; +using SPC.Kiosk.Popup; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using SPC.Kiosk.Payments; +using SPC.Kiosk.DataHelper; +#endregion + +namespace SPC.Kiosk.PB.ViewModel +{ + /// + /// PBPaymentsWindow View Model + /// + public class PBPaymentsViewModel : PopupViewModelBase + { + #region [ Members ] + private PosDataService posDataService = null; + public bool FirstLoaded { get; set; } = true; + private PopupManager popupManager = PopupManager.GetInstance; + + /// + /// Wait Wiondow + /// + public WaitWindow WaitWindowFrom { get; set; } + private PBPaymentPageType defaultPage = PBPaymentPageType.DetailBasket; + + private NhsFuncInfoItem nhsFuncInfo; + /// + /// NHS Func Info + /// + public NhsFuncInfoItem NhsFuncInfo + { + get { return nhsFuncInfo; } + set { nhsFuncInfo = value; PropertyChange("NhsFuncInfo"); } + } + + /// + /// Default Page + /// + public PBPaymentPageType DefaultPage + { + get { return defaultPage; } + set { defaultPage = value; PropertyChange("DefaultPage"); } + } + + private string optionValue802; + /// + /// 진동벨 사용유무 + /// + public string OptionValue802 + { + get { return optionValue802; } + set { optionValue802 = value; PropertyChange("OptionValue802"); } + } + private string optionValue803; + /// + /// 알림톡 사용유무 + /// + public string OptionValue803 + { + get { return optionValue803; } + set { optionValue803 = value; PropertyChange("OptionValue803"); } + } + private string optionValue804; + /// + /// 대기번호 사용유무 + /// + public string OptionValue804 + { + get { return optionValue804; } + set { optionValue804 = value; PropertyChange("OptionValue804"); } + } + + #region BaseValue + private ObservableCollection detailBasketData; + /// + /// Detail Basket Data + /// + public ObservableCollection DetailBasketData + { + get { return detailBasketData; } + set + { + + if (detailBasketData is ObservableCollection + && detailBasketData.Count > 0) + { + foreach (var DetailItem in detailBasketData) + { + DetailItem.PropertyChanged -= DetailItem_PropertyChanged; + } + } + detailBasketData = value; + PropertyChange("DetailBasketData"); + } + } + private ObservableCollection discountValues; + /// + /// 할인 금액,결제 금액,사은품 + /// + public ObservableCollection DiscountValues + { + get { return discountValues; } + set { discountValues = value; PropertyChange("DiscountValues"); } + } + + + private ObservableCollection scanBarcodeBasketData; + /// + /// ScanBarcode Detail Basket Data + /// + public ObservableCollection ScanBarcodeBasketData + { + get { return scanBarcodeBasketData; } + set + { + scanBarcodeBasketData = value; PropertyChange("ScanBarcodeBasketData"); + } + } + private ObservableCollection orderBasketData; + /// + /// Order Detail Basket Data + /// + public ObservableCollection OrderBasketData + { + get { return orderBasketData; } + set + { + orderBasketData = value; PropertyChange("OrderBasketData"); + } + } + private M_HappyPointReturn happyPointReturn; + /// + /// HappyPoint Data + /// + public M_HappyPointReturn HappyPointReturn + { + get { return happyPointReturn; } + set { happyPointReturn = value; PropertyChange("HappyPointReturn"); } + } + private M_OkCashBagReturn okCashBagReturn; + /// + /// Ok CashBag Data + /// + public M_OkCashBagReturn OkCashBagReturn + { + get { return okCashBagReturn; } + set { okCashBagReturn = value; PropertyChange("OkCashBagReturn"); } + } + private M_MobileCompanyReturn mobileCompanyReturn; + /// + /// MobileCompany Discount Data + /// + public M_MobileCompanyReturn MobileCompanyReturn + { + get { return mobileCompanyReturn; } + set { mobileCompanyReturn = value; PropertyChange("MobileCompanyReturn"); } + } + + private M_PaymentReturn paymentReturn; + /// + /// Payments Return + /// + public M_PaymentReturn PaymentReturn + { + get { return paymentReturn; } + set { paymentReturn = value; PropertyChange("PaymentReturn"); } + } + /// + /// Payments End Return + /// + private M_PaymentEndReturn paymentEndReturn; + /// + /// Payments Return + /// + public M_PaymentEndReturn PaymentEndReturn + { + get { return paymentEndReturn; } + set { paymentEndReturn = value; PropertyChange("PaymentEndReturn"); } + } + private M_MobileCouponReturn mobileCouponReturn; + /// + /// Mobile Coupon Return + /// + public M_MobileCouponReturn MobileCouponReturn + { + get { return mobileCouponReturn; } + set { mobileCouponReturn = value; PropertyChange("MobileCouponReturn"); } + } + private M_HappyCoupon usingHappyAppCoupon; + /// + /// Used Happy Coupon + /// + public M_HappyCoupon UsingHappyAppCoupon + { + get { return usingHappyAppCoupon; } + set { usingHappyAppCoupon = value; PropertyChange("UsingHappyAppCoupon"); } + } + #endregion + + #region GMB + + #region GMB Left + /// + /// Gmb Logo + /// + public string GmbLogo { get; set; } = ResourceManager.GetNximagePathAdd("Img_main_logo.png", CommonValue.PBdesignImagesPath); + #endregion + + #region GMB Center + private List gMBHeaderText; + /// + /// Top Header Text + /// + public List GMBHeaderText + { + get { return gMBHeaderText; } + set { gMBHeaderText = value; PropertyChange("GMBHeaderText"); } + } + + private string gmbMemberName; + /// + /// Gmb Member Name + /// /// + public string GmbMemberName + { + get { return gmbMemberName; } + set { gmbMemberName = value; PropertyChange("GmbMemberName"); } + } + + private bool memberLoginOK = false; + /// + /// Member Login OK + /// + public bool MemberLoginOK + { + get { return memberLoginOK; } + set { memberLoginOK = value; PropertyChange("MemberLoginOK"); } + } + + #endregion + + #region GMB Right + /// + /// GMB HappyPoint image + /// + public string GmbHappyPointimage { get; set; } = ResourceManager.GetNximagePathAdd("btn_happypoint_d.png", CommonValue.PBdesignImagesPath); + /// + /// GMB HappyPoint Disable Image + /// + public string GmbHappyPointDisable { get; set; } = ResourceManager.GetNximagePathAdd("btn_happypoint_n.png", CommonValue.PBdesignImagesPath); + /// + /// GMB Call Employee Image + /// + public string GmbCallimage { get; set; } = ResourceManager.GetNximagePathAdd("btn_help.png", CommonValue.PBdesignImagesPath); + /// + /// GMB Goto Home Image + /// + public string GmbHomeimage { get; set; } = ResourceManager.GetNximagePathAdd("btn_reset.png", CommonValue.PBdesignImagesPath); + private string gmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_kor.png", CommonValue.PBdesignImagesPath); + /// + /// GMB Language Image + /// + public string GmbLanguageimage + { + get { return gmbLanguageimage; } + set { gmbLanguageimage = value; PropertyChange("GmbLanguageimage"); } + } + private bool gmbHome = true; + /// + /// GMB Goto Home Enabled + /// GMB Language + /// + public bool GmbHome + { + get { return gmbHome; } + set { gmbHome = value; PropertyChange("GmbHome"); } + } + private bool gmbHappyPointEnable = true; + /// + /// Gmb Happy Point Button Enable + /// + public bool GmbHappyPointEnable + { + get { return gmbHappyPointEnable; } + set { gmbHappyPointEnable = value; PropertyChange("GmbHappyPointEnable"); } + } + private bool gmbEmpCall = true; + /// + /// GMB Call Employee Enabled + /// + public bool GmbEmpCall + { + get { return gmbEmpCall; } + set { gmbEmpCall = value; PropertyChange("GmbEmpCall"); } + } + private bool gmbLanguage = true; + /// + /// GMB Language Enabled + /// + public bool GmbLanguage + { + get { return gmbLanguage; } + set { gmbLanguage = value; PropertyChange("GmbLanguage"); } + } + /// + /// GMB Call Employee Command + /// + public ICommand CallEmployeeCommand { get; protected set; } = null; + /// + /// GMB Language Command + /// + public ICommand LanguageCommand { get; protected set; } = null; + /// + /// GMB Goto Intro Page Commad + /// + public ICommand GotoIntroPageCommad { get; protected set; } = null; + + #endregion + + #endregion + + #region Contents + /// + /// Info Logo + /// + public string InfoLogo { get; set; } = ResourceManager.GetNximagePathAdd("ic_info.png", CommonValue.PBdesignImagesPath); + /// + /// Info x mark Logo + /// + public string InfoLogoX { get; set; } = ResourceManager.GetNximagePathAdd("ic_info_x.png", CommonValue.PBdesignImagesPath); + /// + /// Step Buttons Background + /// + public string ButtonBackground { get; set; } = ResourceManager.GetNximagePathAdd("step_bg.png", CommonValue.PBdesignImagesPath); + /// + /// Step1 Selected Brush + /// + public string Step1DisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("step01.png", CommonValue.PBdesignImagesPath); + /// + /// Step2 Selected Brush + /// + public string Step2DisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("step02.png", CommonValue.PBdesignImagesPath); + /// + /// Step3 Selected Brush + /// + public string Step3DisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("step03.png", CommonValue.PBdesignImagesPath); + /// + /// Basket All Delete Brush + /// + public string BasketDeleteBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_basket_delete.png", CommonValue.PBdesignImagesPath); + /// + /// Basket EMpty Brush + /// + public string BasketNoneBrush { get; set; } = ResourceManager.GetNximagePathAdd("bg_basket_none.png", CommonValue.PBdesignImagesPath); + private bool gotoPointsDisCountsEnable = true; + /// + /// Goto Point & Discount Enabled + /// + public bool GotoPointsDisCountsEnable + { + get { return gotoPointsDisCountsEnable; } + set { gotoPointsDisCountsEnable = value; PropertyChange("GotoPointsDisCountsEnable"); } + } + /// + /// Goto Point & Discount Command + /// + public ICommand GotoPointsDisCountsCommand { get; protected set; } = null; + private bool gotoCouponUsePointsEnable = true; + /// + /// Goto Coupon & Using Points Enabled + /// + public bool GotoCouponUsePointsEnable + { + get { return gotoCouponUsePointsEnable; } + set { gotoCouponUsePointsEnable = value; PropertyChange("GotoCouponUsePointsEnable"); } + } + /// + /// Goto Coupon & Using Points Command + /// + public ICommand GotoCouponUsePointsCommand { get; protected set; } = null; + private bool gotoPaymentExcuteEnable = true; + /// + /// Goto Payment Execute Enabled + /// + public bool GotoPaymentExcuteEnable + { + get { return gotoPaymentExcuteEnable; } + set { gotoPaymentExcuteEnable = value; PropertyChange("GotoPaymentExcuteEnable"); } + } + /// + /// Goto Payment Execute Command + /// + public ICommand GotoPaymentExcuteCommand { get; protected set; } = null; + + #region Detail Basket + /// + /// Page to Left Normal Image + /// + public string Page2LeftNormalImage { get; set; } = ResourceManager.GetNximagePathAdd("btn_page_before_n.png", CommonValue.PBdesignImagesPath); + /// + /// Page to Right Normal Image + /// + public string Page2RightNormalImage { get; set; } = ResourceManager.GetNximagePathAdd("btn_page_after_n.png", CommonValue.PBdesignImagesPath); + private bool scanPage2LeftEnable; + /// + /// Scan Page 2 Left Button Enabled + /// + public bool ScanPage2LeftEnable + { + get { return scanPage2LeftEnable; } + set { scanPage2LeftEnable = value; PropertyChange("ScanPage2LeftEnable"); } + } + private bool scanPage2RightEnable; + /// + /// Scan Page to Right Button Enabled + /// + public bool ScanPage2RightEnable + { + get { return scanPage2RightEnable; } + set { scanPage2RightEnable = value; PropertyChange("ScanPage2RightEnable"); } + } + private bool orderPage2LeftEnable; + /// + /// Order Page to Left Button Enabled + /// + public bool OrderPage2LeftEnable + { + get { return orderPage2LeftEnable; } + set { orderPage2LeftEnable = value; PropertyChange("OrderPage2LeftEnable"); } + } + private bool orderPage2RightEnable; + /// + /// Order Page to Right Button Enabled + /// + public bool OrderPage2RightEnable + { + get { return orderPage2RightEnable; } + set { orderPage2RightEnable = value; PropertyChange("OrderPage2RightEnable"); } + } + private int scanItemCount; + /// + /// Scan Items Count + /// + public int ScanItemCount + { + get { return scanItemCount; } + set { scanItemCount = value; PropertyChange("ScanItemCount"); } + } + private int scanItemPageNo; + /// + /// Scan Items Page No + /// + public int ScanItemPageNo + { + get { return scanItemPageNo; } + set { scanItemPageNo = value; PropertyChange("ScanItemPageNo"); } + } + private int scanItemPageCount; + /// + /// Scan Items Page Count + /// + public int ScanItemPageCount + { + get { return scanItemPageCount; } + set { scanItemPageCount = value; PropertyChange("ScanItemPageCount"); } + } + private int orderItemCount; + /// + /// Order Items Count + /// + public int OrderItemCount + { + get { return orderItemCount; } + set { orderItemCount = value; PropertyChange("OrderItemCount"); } + } + + private int orderItemPageNo; + /// + /// Order Items PageNo + /// + public int OrderItemPageNo + { + get { return orderItemPageNo; } + set { orderItemPageNo = value; PropertyChange("OrderItemPageNo"); } + } + private int orderItemPageCount; + /// + /// Order Items Page Count + /// + public int OrderItemPageCount + { + get { return orderItemPageCount; } + set { orderItemPageCount = value; PropertyChange("OrderItemPageCount"); } + } + private ObservableCollection scanItemPageStatus; + /// + /// Scan Items Page Selector Data + /// + public ObservableCollection ScanItemPageStatus + { + get { return scanItemPageStatus; } + set { scanItemPageStatus = value; PropertyChange("ScanItemPageStatus"); } + } + private ObservableCollection orderItemPageStatus; + /// + /// Order Items Page Salector Data + /// + public ObservableCollection OrderItemPageStatus + { + get { return orderItemPageStatus; } + set { orderItemPageStatus = value; PropertyChange("OrderItemPageStatus"); } + } + private int scanPageStatusColumnCount; + /// + /// Scan Item Page Selector Column Count + /// + public int ScanPageStatusColumnCount + { + get { return scanPageStatusColumnCount; } + set { scanPageStatusColumnCount = value; PropertyChange("ScanPageStatusColumnCount"); } + } + private int orderPageStatusColumnCount; + /// + /// Order Items Page Selector Column Count + /// + public int OrderPageStatusColumnCount + { + get { return orderPageStatusColumnCount; } + set { orderPageStatusColumnCount = value; PropertyChange("OrderPageStatusColumnCount"); } + } + /// + /// Scan Item Page to Left Command + /// + public ICommand ScanPage2LeftCommand { get; protected set; } = null; + /// + /// Scan Item Page to Right Command + /// + public ICommand ScanPage2RightCommand { get; protected set; } = null; + /// + /// Order Item Page to left Command + /// + public ICommand OrderPage2LeftCommand { get; protected set; } = null; + /// + /// Order Item Page to right Command + /// + public ICommand OrderPage2RightCommand { get; protected set; } = null; + /// + /// Scan Page Selector Command + /// + public ICommand ScanPageSelectCommand { get; protected set; } = null; + /// + /// Order Page Selector Command + /// + public ICommand OrderPageSelectCommand { get; protected set; } = null; + /// + /// Scan Items Delete Command + /// + public ICommand ScanBarcodeDeleteCommand { get; protected set; } = null; + /// + /// Order Item Delete Command + /// + public ICommand OrderDeleteCommand { get; protected set; } = null; + /// + /// Scan Items All Delete Command + /// + public ICommand ScanBarcodeAllDeleteCommand { get; protected set; } = null; + /// + /// Order Items All Delete Command + /// + public ICommand OrderAllDeleteCommand { get; protected set; } = null; + #endregion + #region PointsDisCounts + /// + /// Happy Point Resrve Noraml Brush + /// + public string HappyPointResrveNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happypoint_n.png", CommonValue.PBdesignImagesPath); + /// + /// Happy Point Resrve SwitchOn Brush + /// + public string HappyPointResrveSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happypoint_f.png", CommonValue.PBdesignImagesPath); + /// + /// Happy Point Resrve Disabled Brush + /// + public string HappyPointResrveDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happypoint_d.png", CommonValue.PBdesignImagesPath); + + private bool happyPointResrveSwitch; + /// + /// Happy Point Resrve Switch + /// + public bool HappyPointResrveSwitch + { + get { return happyPointResrveSwitch; } + set { happyPointResrveSwitch = value; PropertyChange("HappyPointResrveSwitch"); } + } + private bool happyPointResrveEnable = true; + /// + /// Happy Point Resrve Enable + /// + public bool HappyPointResrveEnable + { + get { return happyPointResrveEnable; } + set { happyPointResrveEnable = value; PropertyChange("HappyPointResrveEnable"); } + } + /// + /// Happy Point Resrve Command + /// + public ICommand HappyPointResrveCommand { get; protected set; } = null; + + + /// + /// OkCashBag Resrve Noraml Brush + /// + public string OkCashBagResrveNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ocb_n.png", CommonValue.PBdesignImagesPath); + /// + /// OkCashBag Resrve SwitchOn Brush + /// + public string OkCashBagResrveSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ocb_f.png", CommonValue.PBdesignImagesPath); + /// + /// OkCashBag Resrve Disabled Brush + /// + public string OkCashBagResrveDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ocb_d.png", CommonValue.PBdesignImagesPath); + private bool okCashBagResrveSwitch; + /// + /// OkCashBag Resrve Switch + /// + public bool OkCashBagResrveSwitch + { + get { return okCashBagResrveSwitch; } + set { okCashBagResrveSwitch = value; PropertyChange("OkCashBagResrveSwitch"); } + } + private bool okCashBagResrveEnable = true; + /// + /// OkCashBag Resrve Enabled + /// + public bool OkCashBagResrveEnable + { + get { return okCashBagResrveEnable; } + set { okCashBagResrveEnable = value; PropertyChange("OkCashBagResrveEnable"); } + } + /// + /// OkCashBag Resrve Command + /// + public ICommand OkCashBagResrveCommand { get; protected set; } = null; + + + + + /// + /// Discount SK Noraml Brush + /// + public string DiscountSKNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_sk_n.png", CommonValue.PBdesignImagesPath); + /// + /// Discount SK SwitchOn Brush + /// + public string DiscountSKSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_sk_f.png", CommonValue.PBdesignImagesPath); + /// + /// Discount SK Disables Brush + /// + public string DiscountSKDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_sk_d.png", CommonValue.PBdesignImagesPath); + private bool discountSKSwitch; + /// + /// Discount SK Switch + /// + public bool DiscountSKSwitch + { + get { return discountSKSwitch; } + set { discountSKSwitch = value; PropertyChange("DiscountSKSwitch"); } + } + private bool discountSKEnable = true; + /// + /// Discount SK Enable + /// + public bool DiscountSKEnable + { + get { return discountSKEnable; } + set { discountSKEnable = value; PropertyChange("DiscountSKEnable"); } + } + /// + /// Discount SK Command + /// + public ICommand DiscountSKCommand { get; protected set; } = null; + /// + /// Discount KT Noraml Brush + /// + public string DiscountKTNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_kt_n.png", CommonValue.PBdesignImagesPath); + /// + /// Discount KT SwitchOn Brush + /// + public string DiscountKTSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_kt_f.png", CommonValue.PBdesignImagesPath); + /// + /// Discount KT Disabled Brush + /// + public string DiscountKTDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_kt_d.png", CommonValue.PBdesignImagesPath); + private bool discountKTSwitch; + /// + /// Discount KT Switch + /// + public bool DiscountKTSwitch + { + get { return discountKTSwitch; } + set { discountKTSwitch = value; PropertyChange("DiscountKTSwitch"); } + } + private bool discountKTEnable = true; + /// + /// Discount KT Enabled + /// + public bool DiscountKTEnable + { + get { return discountKTEnable; } + set { discountKTEnable = value; PropertyChange("DiscountKTEnable"); } + } + /// + /// Discount KT Command + /// + public ICommand DiscountKTCommand { get; protected set; } = null; + /// + /// Discount LG Noraml Brush + /// + public string DiscountLGNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_lg_n.png", CommonValue.PBdesignImagesPath); + /// + /// Discount LG SwitchOn Brush + /// + public string DiscountLGSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_lg_f.png", CommonValue.PBdesignImagesPath); + /// + /// Discount LG Disables Brush + /// + public string DiscountLGDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_lg_d.png", CommonValue.PBdesignImagesPath); + private bool discountLGSwitch; + /// + /// Discount LG Switch + /// + public bool DiscountLGSwitch + { + get { return discountLGSwitch; } + set { discountLGSwitch = value; PropertyChange("DiscountLGSwitch"); } + } + private bool discountLGEnable = true; + /// + /// Discount LG Enabled + /// + public bool DiscountLGEnable + { + get { return discountLGEnable; } + set { discountLGEnable = value; PropertyChange("DiscountLGEnable"); } + } + /// + /// Discount LG Command + /// + public ICommand DiscountLGCommand { get; protected set; } = null; + + + /// + /// SpcDiscount2 Noraml Brush + /// + public string SpcDiscount2NoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_spc2_n.png", CommonValue.PBdesignImagesPath); + /// + /// SpcDiscount2 SwitchOn Brush + /// + public string SpcDiscount2SwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_spc2_f.png", CommonValue.PBdesignImagesPath); + /// + /// OkCashBag Resrve Disabled Brush + /// + public string SpcDiscount2DisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_spc2_d.png", CommonValue.PBdesignImagesPath); + private bool spcDiscount2Switch; + /// + /// SpcDiscount2 Switch + /// + public bool SpcDiscount2Switch + { + get { return spcDiscount2Switch; } + set { spcDiscount2Switch = value; PropertyChange("SpcDiscount2Switch"); } + } + private bool spcDiscount2Enable = true; + /// + /// SpcDiscount2 Resrve Enabled + /// + public bool SpcDiscount2Enable + { + get { return spcDiscount2Enable; } + set { spcDiscount2Enable = value; PropertyChange("SpcDiscount2Enable"); } + } + /// + /// SpcDiscount2 Command + /// + public ICommand SpcDiscount2Command { get; protected set; } = null; + + + #endregion + + #region CouponUsePoints + /// + /// Happy Point Using Noraml Brush + /// + public string HappyPointUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happypoint_n.png", CommonValue.PBdesignImagesPath); + /// + /// Happy Point Using SwitchOn Brush + /// + public string HappyPointUsingSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happypoint_f.png", CommonValue.PBdesignImagesPath); + /// + /// Happy Point Using Disabled Brush + /// + public string HappyPointUsingDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happypoint_d.png", CommonValue.PBdesignImagesPath); + private bool happyPointUsingSwitch; + /// + /// Happy Point Using Switch + /// + public bool HappyPointUsingSwitch + { + get { return happyPointUsingSwitch; } + set { happyPointUsingSwitch = value; PropertyChange("HappyPointUsingSwitch"); } + } + /// + /// Happy Point Using Command + /// + public ICommand HappyPointUsingCommand { get; protected set; } = null; + /// + /// OkCashBag Using Noraml Brush + /// + public string OkCashBagUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ocb_n.png", CommonValue.PBdesignImagesPath); + /// + /// OkCashBag Using SwitchOn Brush + /// + public string OkCashBagUsingSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ocb_f.png", CommonValue.PBdesignImagesPath); + /// + /// OkCashBag Using Disabled Brush + /// + public string OkCashBagUsingDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ocb_d.png", CommonValue.PBdesignImagesPath); + private bool okCashBagUsingSwitch; + /// + /// OkCashBag Using Switch + /// + public bool OkCashBagUsingSwitch + { + get { return okCashBagUsingSwitch; } + set { okCashBagUsingSwitch = value; PropertyChange("OkCashBagUsingSwitch"); } + } + /// + /// OkCashBag Using Command + /// + public ICommand OkCashBagUsingCommand { get; protected set; } = null; + + + /// + /// SamsungPointUsing Noraml Brush + /// + public string SamsungPointUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_samsung_n.png", CommonValue.PBdesignImagesPath); + /// + /// SamsungPointUsing Command + /// + public ICommand SamsungPointUsingCommand { get; protected set; } = null; + + /// + /// HyundaiPointUsing Noraml Brush + /// + public string HyundaiPointUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_hyundai_n.png", CommonValue.PBdesignImagesPath); + /// + /// HyundaiPointUsing Command + /// + public ICommand HyundaiPointUsingCommand { get; protected set; } = null; + + /// + /// MoreView Noraml Brush + /// + public string MoreViewNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_more_n.png", CommonValue.PBdesignImagesPath); + /// + /// MoreView Command + /// + public ICommand MoreViewCommand { get; protected set; } = null; + + + + /// + /// ShinHanCardPointUsing Noraml Brush + /// + public string ShinHanCardPointUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_shinhan_n.png", CommonValue.PBdesignImagesPath); + /// + /// ShinHanCardPointUsing Command + /// + public ICommand ShinHanCardPointUsingCommand { get; protected set; } = null; + + /// + /// HyundaiOilBankUsing Noraml Brush + /// + public string HyundaiOilBankUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_hyundaioilbank_n.png", CommonValue.PBdesignImagesPath); + /// + /// HyundaiOilBankUsing Command + /// + public ICommand HyundaiOilBankUsingCommand { get; protected set; } = null; + + /// + /// HyundaiBlueMembersUsing Noraml Brush + /// + public string HyundaiBlueMembersUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_bluemembers_n.png", CommonValue.PBdesignImagesPath); + /// + /// HyundaiBlueMembersUsing Command + /// + public ICommand HyundaiBlueMembersUsingCommand { get; protected set; } = null; + + /// + /// KiaMembersUsing Noraml Brush + /// + public string KiaMembersUsingNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_kiaredmembers_n.png", CommonValue.PBdesignImagesPath); + /// + /// KiaMembersUsing Command + /// + public ICommand KiaMembersUsingCommand { get; protected set; } = null; + + /// + /// MoreViewReturn Noraml Brush + /// + public string MoreViewReturnNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_back_n.png", CommonValue.PBdesignImagesPath); + /// + /// MoreViewReturn Command + /// + public ICommand MoreViewReturnCommand { get; protected set; } = null; + + + /// + /// Happy App My Coupon Noraml Brush + /// + public string HappyAppMyCouponNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happyapp_n.png", CommonValue.PBdesignImagesPath); + /// + /// Happy App My Coupon SwitchOn Brush + /// + public string HappyAppMyCouponSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happyapp_f.png", CommonValue.PBdesignImagesPath); + /// + /// Happy App My Coupon Disabled Brush + /// + public string HappyAppMyCouponDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happyapp_d.png", CommonValue.PBdesignImagesPath); + private bool happyAppMyCouponSwitch; + /// + /// Happy App My Coupon Switch + /// + public bool HappyAppMyCouponSwitch + { + get { return happyAppMyCouponSwitch; } + set { happyAppMyCouponSwitch = value; PropertyChange("HappyAppMyCouponSwitch"); } + } + /// + /// Happy App My Coupon Command + /// + public ICommand HappyAppMyCouponCommand { get; protected set; } = null; + /// + /// Mobile Coupon Noraml Brush + /// + public string MobileCouponNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_mobilecoupon_n.png", CommonValue.PBdesignImagesPath); + /// + /// Mobile Coupon SwitchOn Brush + /// + public string MobileCouponSwitchOnBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_mobilecoupon_f.png", CommonValue.PBdesignImagesPath); + /// + /// Mobile Coupon Disabled Brush + /// + public string MobileCouponDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_mobilecoupon_d.png", CommonValue.PBdesignImagesPath); + private bool mobileCouponSwitch; + /// + /// Mobile Coupon Switch + /// + public bool MobileCouponSwitch + { + get { return mobileCouponSwitch; } + set { mobileCouponSwitch = value; PropertyChange("MobileCouponSwitch"); } + } + /// + /// Mobile Coupon Command + /// + public ICommand MobileCouponCommand { get; protected set; } = null; + #endregion + + #region PaymentExcute + /// + /// ICcard Noraml Brush + /// + public string ICcardNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_creditcard_n.png", CommonValue.PBdesignImagesPath); + /// + /// ICcard Command + /// + public ICommand ICcardCommand { get; protected set; } = null; + /// + /// LGSSpay Noraml Brush + /// + public string LGSSpayNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_samsunglg_n.png", CommonValue.PBdesignImagesPath); + /// + /// LGSSpay Command + /// + public ICommand LGSSpayCommand { get; protected set; } = null; + /// + /// CashBee Noraml Brush + /// + public string CashBeeNoramlBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_cashbee_n.png", CommonValue.PBdesignImagesPath); + /// + /// CashBee Command + /// + public ICommand CashBeeCommand { get; protected set; } = null; + /// + /// HappyGift Brush + /// + public string HappyGiftBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_happygift_n.png", CommonValue.PBdesignImagesPath); + /// + /// HappyGift Command + /// + public ICommand HappyGiftCommand { get; protected set; } = null; + /// + /// Tmoney Brush + /// + public string TmoneyBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_tmoney_n.png", CommonValue.PBdesignImagesPath); + /// + /// Tmoney Command + /// + public ICommand TmoneyCommand { get; protected set; } = null; + /// + /// SPCemployee Brush + /// + public string SPCemployeeBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_spc_n.png", CommonValue.PBdesignImagesPath); + /// + /// KakaoPay Brush + /// + public string KakaoPayBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_kakao_n.png", CommonValue.PBdesignImagesPath); + /// + /// SPCemployee Command + /// + public ICommand SPCemployeeCommand { get; protected set; } = null; + /// + /// KakaoPay Command + /// + public ICommand KakaoPayCommand { get; protected set; } = null; + /// + /// SmilePay Brush + /// + public string SmilePayBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_smile_n.png", CommonValue.PBdesignImagesPath); + /// + /// SmilePay Command + /// + public ICommand SmilePayCommand { get; protected set; } = null; + /// + /// AliPay Brush + /// + public string AliPayBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_ali_n.png", CommonValue.PBdesignImagesPath); + /// + /// AliPay Command + /// + public ICommand AliPayCommand { get; protected set; } = null; + /// + /// ZeroPay Brush + /// + public string ZeroPayBrush { get; set; } = ResourceManager.GetNximagePathAdd("btn_pay_zero_n.png", CommonValue.PBdesignImagesPath); + /// + /// ZeroPay Command + /// + public ICommand ZeroPayCommand { get; protected set; } = null; + + #endregion + + #endregion + + #region PaymentsList + /// + /// Detail Basket Delete All Image + /// + public string DetailBasketDeleteAllImage { get; set; } = ResourceManager.GetNximagePathAdd("btn_delete.png", CommonValue.PBdesignImagesPath); + /// + /// Discount Bar Brush + /// + public string DiscountBarBrush { get; set; } = ResourceManager.GetNximagePathAdd("discount_bar.png", CommonValue.PBdesignImagesPath); + /// + /// Detail Basket Delete All Command + /// + public ICommand DetailBasketDeleteAllCommand { get; protected set; } = null; + private bool detailBasketDeleteAllShow = false; + /// + /// Detail Basket Delete All Show + /// + public bool DetailBasketDeleteAllShow + { + get { return detailBasketDeleteAllShow; } + set { detailBasketDeleteAllShow = value; PropertyChange("DetailBasketDeleteAllShow"); } + } + + #region PaymentValue + private int totalItemCount; + /// + /// Total Item Count + /// + public int TotalItemCount + { + get { return totalItemCount; } + set { totalItemCount = value; PropertyChange("TotalItemCount"); } + } + private double totalItemsPrice; + /// + /// Total Items Price + /// + public double TotalItemsPrice + { + get { return totalItemsPrice; } + set { totalItemsPrice = value; PropertyChange("TotalItemsPrice"); } + } + private double totalDiscountValue = 0d; + /// + /// Total Discount Value + /// + public double TotalDiscountValue + { + get { return totalDiscountValue; } + set { totalDiscountValue = value; PropertyChange("TotalDiscountValue"); } + } + private double totalPriceForPayments; + /// + /// Total Price For Payments + /// + public double TotalPriceForPayments + { + get { return totalPriceForPayments; } + set { totalPriceForPayments = value; PropertyChange("TotalPriceForPayments"); } + } + /// + /// Order Total Payment Icon + /// + public string OrderTotalPaymentIcon { get; set; } = ResourceManager.GetNximagePathAdd("Ic_totalcost.png", CommonValue.PBdesignImagesPath); + #endregion + + + #region Button + private List gotoLeftText; + /// + /// GotoLeft Button Text + /// + public List GotoLeftText + { + get { return gotoLeftText; } + set { gotoLeftText = value; PropertyChange("GotoLeftText"); } + } + private double gotoLeftWidth = 136d; + /// + /// Goto Left Button Width + /// + public double GotoLeftWidth + { + get { return gotoLeftWidth; } + set { gotoLeftWidth = value; PropertyChange("GotoLeftWidth"); } + } + + private bool gotoLeftEnable = true; + /// + /// Goto Left Button Enabled + /// + public bool GotoLeftEnable + { + get { return gotoLeftEnable; } + set { gotoLeftEnable = value; PropertyChange("GotoLeftEnable"); } + } + /// + /// Goto Left Command + /// + public ICommand GotoLeftCommand { get; protected set; } = null; + private List gotoRightText; + /// + /// GotoRight Button Text + /// + public List GotoRightText + { + get { return gotoRightText; } + set { gotoRightText = value; PropertyChange("GotoRightText"); } + } + private double gotoRightWidth = 254d; + /// + /// Goto Right Button Width + /// + public double GotoRightWidth + { + get { return gotoRightWidth; } + set { gotoRightWidth = value; PropertyChange("GotoRightWidth"); } + } + + private bool gotoRightEnable = true; + /// + /// Goto Right Button Enabled + /// + public bool GotoRightEnable + { + get { return gotoRightEnable; } + set { gotoRightEnable = value; PropertyChange("GotoRightEnable"); } + } + /// + /// Goto Right Command + /// + public ICommand GotoRightCommand { get; protected set; } = null; + #endregion + + #endregion PaymentsList + private PaymentsDiscountAndAddType CurrentRollBakType; + + /// + /// SPC 임직원 유무 + /// + private bool isCompanyMember; + + public bool IsCompanyMember + { + get { return isCompanyMember; } + set { isCompanyMember = value; PropertyChange("IsCompanyMember"); } + } + + #endregion Members + + #region [ Ctor/Etc ] + /// + /// Ctor + /// + public PBPaymentsViewModel() + { + InitViewModel(); + } + /// + /// Dispose + /// + public new void Dispose() + { + this.PropertyChanged -= PBPaymentsViewModel_PropertyChanged; + if (posDataService != null) + { + posDataService.Dispose(); + posDataService = null; + } + if (popupManager != null) + { + popupManager = null; + } + base.Dispose(); + GC.SuppressFinalize(this); + } + #endregion Ctor/Etc + + #region [ Methods ] + private void InitViewModel() + { + try + { + posDataService = new PosDataService(); + WaitWindowFrom = WaitWindow.GetInstance; + WaitWindowFrom.CloseWaitWindow(); + //GMB Right + LanguageCommand = new Command(LanguageCommandHandler); + CallEmployeeCommand = new Command(CallEmployeeCommandHandler); + GotoIntroPageCommad = new Command(GotoIntroPageCommadHandler); + + //Contents + GotoPointsDisCountsCommand = new Command(GotoPointsDisCountsCommandHandler); + GotoCouponUsePointsCommand = new Command(GotoCouponUsePointsCommandHandler); + GotoPaymentExcuteCommand = new Command(GotoPaymentExcuteCommandHandler); + //Detail Basket + ScanPage2LeftCommand = new Command(ScanPage2LeftCommandHandler); + ScanPage2RightCommand = new Command(ScanPage2RightCommandHandler); + OrderPage2LeftCommand = new Command(OrderPage2LeftCommandHandler); + OrderPage2RightCommand = new Command(OrderPage2RightCommandHandler); + ScanPageSelectCommand = new Command(ScanPageSelectCommandHandler); + OrderPageSelectCommand = new Command(OrderPageSelectCommandHandler); + ScanBarcodeDeleteCommand = new Command(ScanBarcodeDeleteCommandHandler); + OrderDeleteCommand = new Command(OrderDeleteCommandHandler); + ScanBarcodeAllDeleteCommand = new Command(ScanBarcodeAllDeleteCommandHandler); + OrderAllDeleteCommand = new Command(OrderAllDeleteCommandHandler); + + //Reserve + HappyPointResrveCommand = new Command(HappyPointResrveCommadHandler); + OkCashBagResrveCommand = new Command(OkCashBagResrveCommandHandler); + + //Discount + DiscountSKCommand = new Command(DiscountSKCommandHandler); + DiscountKTCommand = new Command(DiscountKTCommandHandler); + DiscountLGCommand = new Command(DiscountLGCommandHandler); + + //PointUsing + HappyPointUsingCommand = new Command(HappyPointUsingCommandHandler); + OkCashBagUsingCommand = new Command(OkCashBagUsingCommandHandler); + + //PointUsing MoreView + MoreViewCommand = new Command(MoreViewCommandHandler); + + //PointUsing MoreViewReturn + MoreViewReturnCommand = new Command(MoreViewReturnCommandHandler); + + //Coupon + HappyAppMyCouponCommand = new Command(HappyAppMyCouponCommandHandler); + MobileCouponCommand = new Command(MobileCouponCommandHandler); + + //PaymentsKind + ICcardCommand = new Command(ICcardCommandHandler); + LGSSpayCommand = new Command(LGSSpayCommandHandler); + CashBeeCommand = new Command(CashBeeCommandHandler); + HappyGiftCommand = new Command(HappyGiftCommandHandler); + TmoneyCommand = new Command(TmoneyCommandHandler); + SPCemployeeCommand = new Command(SPCemployeeCommandHandler); + KakaoPayCommand = new Command(KakaoPayCommandHandler); + SmilePayCommand = new Command(SmilePayCommandHandler); + AliPayCommand = new Command(AliPayCommandHandler); + ZeroPayCommand = new Command(ZeroPayCommandHandler); + //PaymentsList + DetailBasketDeleteAllCommand = new Command(DetailBasketDeleteAllCommandHandler); + GotoLeftCommand = new Command(GotoLeftCommandHandler); + GotoRightCommand = new Command(GotoRightCommandHandler); + + this.GetPosOption(); + this.GetNhsFuncInfo(); + this.IsCompanyMember = new posHappyPoint().IsCompanyMember; + + this.PropertyChanged += PBPaymentsViewModel_PropertyChanged; + + ShowLanguageType = CommonValue.CommonLanguageType; + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "InitViewModel()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + } + } + + private void GetPosOption() + { + //PosOption 값 획득 + using (var backDataService = new BackDataService()) + { + this.OptionValue802 = backDataService.GetPosOption(nameof(PosOptionType.OPT802)); + this.OptionValue803 = backDataService.GetPosOption(nameof(PosOptionType.OPT803)); + this.OptionValue804 = backDataService.GetPosOption(nameof(PosOptionType.OPT804)); + } + } + + private void GetNhsFuncInfo() + { + using (var commonDataHelper = new CommonDataHelper()) + { + //Get NHS_FUNC_INFO Data Dictionary + var nhsFuncInfoData = commonDataHelper.GetNhsFuncInfo(); + //고유식별 Type + var nhsFuncInfoType = new NhsFuncInfoType(); + //View Binding 데이터 + if (NhsFuncInfo == null) { NhsFuncInfo = new NhsFuncInfoItem(); } + + //전체 const로 잡힌 필드를 돌며 DB에서 받아온 Key와 매칭 + foreach (var item in nhsFuncInfoType.GetType().GetFields()) + { + if (nhsFuncInfoData.ContainsKey(item.GetValue(nhsFuncInfoType)?.ToString())) + { + //받아온 데이터 키와 고유식별 Type을 매칭해 View Binding데이터와 일치하게 삽입 + NhsFuncInfo.GetType().GetProperty(item.Name).SetValue(NhsFuncInfo, nhsFuncInfoData[item.GetValue(nhsFuncInfoType)?.ToString()], System.Reflection.BindingFlags.SetField, null, null, null); + } + } + } + } + + #region Contents + private void InitailizeDetailBasket() + { + GMBHeaderText = Languages.GetMessages("LBL0098"); + GotoLeftWidth = 136d; + GotoRightWidth = 254d; + GotoLeftText = Languages.GetMessages("BTN0026"); + GotoRightText = Languages.GetMessages("BTN0004"); + DetailBasketDeleteAllShow = true; + + } + private void SubDataReset() + { + if (DetailBasketData is ObservableCollection + && DetailBasketData.Count > 0) + { + ScanBarcodeBasketData = new ObservableCollection(DetailBasketData.Where(r => r.ItemType.Equals(BasketItemType.Barcode) || r.ItemType.Equals(BasketItemType.Scan)).ToList()); + OrderBasketData = new ObservableCollection(DetailBasketData.Where(r => r.ItemType.Equals(BasketItemType.Order)).ToList()); + } + else + { + ScanBarcodeBasketData = null; + OrderBasketData = null; + } + ScanItemPageNo = 0; + OrderItemPageNo = 0; + } + private ObservableCollection SetPageNumber(int _pageCount) + { + var pageNumbers = new ObservableCollection(); + try + { + if (_pageCount > 0) + { + + for (int index = 0; index < _pageCount; index++) + { + pageNumbers.Add(new M_ItemData + { + Index = index, + DataParameter = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("Img_page_dot_off.png", CommonValue.PBdesignImagesPath), + SwitchOnBrush = ResourceManager.GetNximagePathAdd("Img_page_dot_on.png", CommonValue.PBdesignImagesPath), + Width = 20, + Height = 20, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.SizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + TextVisible = Visibility.Collapsed, + } + }); + + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetPageNumber()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + pageNumbers = new ObservableCollection(); + } + return pageNumbers; + } + private void DeleteBasketItem(M_BasketItem _deleteItem) + { + if (DetailBasketData is ObservableCollection) + { + var newBasketData = DetailBasketData.ToList(); + using (var posDataService = new PosDataService()) + { + if (posDataService.DelItem(_deleteItem)) + { + newBasketData.Remove(_deleteItem); + } + } + newBasketData.Remove(_deleteItem); + DetailBasketData = new ObservableCollection(newBasketData); + + } + } + private void DeleteScanAndBarcordItem() + { + if (DetailBasketData is ObservableCollection) + { + var newBasketData = DetailBasketData.ToList(); + using (var posDataService = new PosDataService()) + { + foreach (var aitem in newBasketData.Where(r => r.ItemType.Equals(BasketItemType.Scan) + || r.ItemType.Equals(BasketItemType.Barcode)).ToList()) + { + if (posDataService.DelItem(aitem)) + { + newBasketData.Remove(aitem); + } + } + } + DetailBasketData = new ObservableCollection(newBasketData); + } + } + private void DeleteSelfOrderItem() + { + if (DetailBasketData is ObservableCollection) + { + var newBasketData = DetailBasketData.ToList(); + using (var posDataService = new PosDataService()) + { + foreach (var aitem in newBasketData.Where(r => r.ItemType.Equals(BasketItemType.Order)).ToList()) + { + if (posDataService.DelItem(aitem)) + { + newBasketData.Remove(aitem); + } + } + } + DetailBasketData = new ObservableCollection(newBasketData); + } + } + public void DeledteAllBasket() + { + + using (var posDataService = new PosDataService()) + { + foreach (var aitem in DetailBasketData) + { + posDataService.DelItem(aitem); + } + } + DetailBasketData = null; + } + private void InitailizePointsDisCounts() + { + GMBHeaderText = Languages.GetMessages("LBL0035"); + GotoPointsDisCountsEnable = false; + GotoCouponUsePointsEnable = true; + GotoPaymentExcuteEnable = true; + GotoLeftWidth = 136d; + GotoRightWidth = 254d; + GotoLeftText = Languages.GetMessages("BTN0028"); + GotoRightText = Languages.GetMessages("BTN0008"); + DetailBasketDeleteAllShow = false; + } + private void InitailizeCouponUsePoints() + { + GMBHeaderText = Languages.GetMessages("LBL0035"); + GotoPointsDisCountsEnable = true; + GotoCouponUsePointsEnable = false; + GotoPaymentExcuteEnable = true; + GotoLeftWidth = 136d; + GotoRightWidth = 254d; + GotoLeftText = Languages.GetMessages("BTN0028"); + GotoRightText = Languages.GetMessages("BTN0008"); + DetailBasketDeleteAllShow = false; + + } + private void InitailizeMoreView() + { + GMBHeaderText = Languages.GetMessages("LBL0035"); + GotoPointsDisCountsEnable = true; + GotoCouponUsePointsEnable = false; + GotoPaymentExcuteEnable = true; + GotoLeftWidth = 136d; + GotoRightWidth = 254d; + GotoLeftText = Languages.GetMessages("BTN0028"); + GotoRightText = Languages.GetMessages("BTN0008"); + DetailBasketDeleteAllShow = false; + } + private void InitailizePaymentExcute() + { + GMBHeaderText = Languages.GetMessages("LBL0035"); + GotoPointsDisCountsEnable = true; + GotoPointsDisCountsEnable = true; + GotoCouponUsePointsEnable = true; + GotoPaymentExcuteEnable = false; + GotoLeftWidth = 390d; + GotoRightWidth = 0d; + GotoLeftText = Languages.GetMessages("BTN0028"); + DetailBasketDeleteAllShow = false; + + } + + public void OpenFistPopup() + { + FirstLoaded = false; + var setPosItems = false; + using (var newPosDataService = new PosDataService()) + { + setPosItems = newPosDataService.ResetItems(DetailBasketData.ToList()); + } + if (setPosItems) + { + popupManager.OpenStepInfoPopup(); + } + else + { + PopupMessageBox.ShowMessageBox(ShowLanguageType + , Languages.GetMessages("LBL0077") + , null + , MessageBoxButton.OK + , OpenCloseAnimationType.FullSizeUp + , OpenCloseAnimationType.FullSizeDown + , 0.5, 0.2, 10); + RollBacklEnd(); + } + } + + private void OpenReserveHappyPoint() + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenHappyPointCertify(false, false, ParentPage.PBPaymentsWindow); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_HappyPointReturn _HappyPointReturn) + { + HappyPointReturn = _HappyPointReturn; + } + else + { + HappyPointReturn = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenReserveHappyPoint()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + private void OpenReserveOkCashBag() + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenOkCashBagCertify(); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_OkCashBagReturn okCashBagReturnValue) + { + OkCashBagReturn = okCashBagReturnValue; + } + else + { + OkCashBagReturn = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenReserveOkCashBag()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + private bool OpenRollbackConfirmDiscountOrPayments(PaymentsDiscountAndAddType _discountType) + { + bool result = false; + TimerEnabled = false; + try + { + + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.DiscountCancel, + DisplayLanguage = ShowLanguageType, + Message = GetPaymentsDiscountAndAddTypeText(_discountType).CombineLanguageData(Languages.GetMessages("LBL0080")), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn) + { + result = popupReturn.OKAnswer; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenRollbackConfirmDiscountOrPayments()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + finally + { + TimerEnabled = true; + } + return result; + } + private List GetPaymentsDiscountAndAddTypeText(PaymentsDiscountAndAddType _discountType) + { + var result = new List(); + try + { + switch (_discountType) + { + case PaymentsDiscountAndAddType.HappyPoint: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "해피포인트 사용" + } + }; + break; + case PaymentsDiscountAndAddType.HappyCoupon: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "해피앱 쿠폰" + } + }; + break; + + case PaymentsDiscountAndAddType.MobileCoupon: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "모바일 쿠폰 사용" + } + }; + break; + case PaymentsDiscountAndAddType.SkTelecomDiscount: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "SKT 멤버쉽 할인" + } + }; + break; + case PaymentsDiscountAndAddType.AllehKTDiscount: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "KT 멤버쉽 할인" + } + }; + break; + case PaymentsDiscountAndAddType.LGUPlusDisCount: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "LG U+ 멤버쉽 할인" + } + }; + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetPaymentsDiscountAndAddTypeText()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = new List(); + } + return result; + } + private void MobileCompanyDiscountExcute(MobileCompanyType _mobileCompany) + { + if (MobileCompanyReturn is M_MobileCompanyReturn mobileCompanyReturn + && mobileCompanyReturn.Company.Equals(_mobileCompany) + && mobileCompanyReturn.DiscountValue > 0) + { + + var paymentsDiscountType = PaymentsDiscountAndAddType.None; + switch (_mobileCompany) + { + case MobileCompanyType.KT_Mobile: + paymentsDiscountType = PaymentsDiscountAndAddType.AllehKTDiscount; + break; + case MobileCompanyType.SK_Telecom: + paymentsDiscountType = PaymentsDiscountAndAddType.SkTelecomDiscount; + break; + case MobileCompanyType.LG_Uplus: + paymentsDiscountType = PaymentsDiscountAndAddType.LGUPlusDisCount; + break; + } + if (!paymentsDiscountType.Equals(PaymentsDiscountAndAddType.None) && OpenRollbackConfirmDiscountOrPayments(paymentsDiscountType)) + { + TimerEnabled = false; + WaitWindowFrom.ShowWaitWindow(); + RollBackExcute(paymentsDiscountType, MobileCompanyReturn.PaySEQ); + WaitWindowFrom.CloseWaitWindow(); + TimerEnabled = true; + } + } + else + { + OpenMobileCompanyDiscount(_mobileCompany); + } + } + private void OpenMobileCompanyDiscount(MobileCompanyType _mobileCompany) + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenMobileCompanyCertify(_mobileCompany, TotalItemsPrice); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_MobileCompanyReturn mobileCompanyReturnValue) + { + MobileCompanyReturn = mobileCompanyReturnValue; + var discountType = PaymentsDiscountAndAddType.None; + switch (MobileCompanyReturn.Company) + { + case MobileCompanyType.SK_Telecom: + discountType = PaymentsDiscountAndAddType.SkTelecomDiscount; + break; + case MobileCompanyType.KT_Mobile: + discountType = PaymentsDiscountAndAddType.AllehKTDiscount; + break; + case MobileCompanyType.LG_Uplus: + discountType = PaymentsDiscountAndAddType.LGUPlusDisCount; + break; + } + AddDiscountValue + ( + new M_DiscountAndAddValues + { + DiscountType = discountType, + DiscountName = GetPaymentsDiscountAndAddTypeText(discountType), + DiscountValue = MobileCompanyReturn.DiscountValue, + IsCanRollBack = true + } + ); + } + else + { + MobileCompanyReturn = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenMobileCompanyDiscount()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + private void OpenHappyPointUsing() + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenHappyPointUsing(HappyPointReturn, TotalPriceForPayments); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_HappyPointReturn _HappyPointReturn) + { + HappyPointReturn = _HappyPointReturn; + if (HappyPointReturn.PointUse) + { + HappyPointUsingSwitch = true; + AddDiscountValue(new M_DiscountAndAddValues + { + DiscountType = PaymentsDiscountAndAddType.HappyPoint, + DiscountName = GetPaymentsDiscountAndAddTypeText(PaymentsDiscountAndAddType.HappyPoint), + DiscountValue = HappyPointReturn.UsingPoints, + IsCanRollBack = true + }); + if (TotalPriceForPayments.Equals(HappyPointReturn.UsingPoints)) + { + HappyPointReturn.ReservePoint = false; + HappyPointResrveSwitch = false; + } + else if (!GetReserveOKChashBag()) + { + HappyPointReturn.ReservePoint = true; + HappyPointResrveSwitch = true; + } + } + + } + else + { + HappyPointReturn = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenHappyPointUsing()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + + private void OpenHappyAppCoupon() + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenHappyAppCoupon(HappyPointReturn, TotalItemsPrice); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_HappyCoupon _usingHappyAppCoupon) + { + UsingHappyAppCoupon = _usingHappyAppCoupon; + HappyAppMyCouponSwitch = true; + AddDiscountValue(new M_DiscountAndAddValues + { + DiscountType = PaymentsDiscountAndAddType.HappyCoupon, + DiscountName = GetPaymentsDiscountAndAddTypeText(PaymentsDiscountAndAddType.HappyCoupon), + DiscountValue = UsingHappyAppCoupon.UseAmount, + IsCanRollBack = true + }); + } + else + { + UsingHappyAppCoupon = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenHappyAppCoupon()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + + private void OpenMobileCoupon() + { + try + { + var popupReturn = popupManager.OpenMobileHappyCoupon(DetailBasketData.ToList(), TotalPriceForPayments); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_MobileCouponReturn _mobileCouponReturn) + { + MobileCouponReturn = _mobileCouponReturn; + if (MobileCouponReturn.TotalUseAmount > 0) + { + MobileCouponSwitch = true; + AddDiscountValue(new M_DiscountAndAddValues + { + DiscountType = PaymentsDiscountAndAddType.MobileCoupon, + DiscountName = GetPaymentsDiscountAndAddTypeText(PaymentsDiscountAndAddType.MobileCoupon), + DiscountValue = MobileCouponReturn.TotalUseAmount, + IsCanRollBack = true + }); + } + + } + else + { + MobileCouponReturn = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenMobileCoupon()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + + private void OpenPaymetsProcess(LastPaymentsType _paymentType) + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenPaymentProcess(_paymentType, TotalPriceForPayments); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_PaymentReturn paymentReturn) + { + PaymentReturn = paymentReturn; + AddDiscountValue(new M_DiscountAndAddValues + { + DiscountType = PaymentsDiscountAndAddType.LastPayment, + DiscountName = Languages.GetMessages("BTN0031"), + DiscountValue = PaymentReturn.PaymentsTotal, + IsCanRollBack = false + }); + } + else + { + PaymentReturn = null; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenPaymetsProcess()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + private void OpenPaymentEndProcess() + { + TimerEnabled = false; + try + { + + PaymentEndWindowEndType paymentEndType; + //var paymentEndType = DetailBasketData.Where(r => r.ItemType.Equals(BasketItemType.Order)).Count().Equals(0) + // ? PaymentEndWindowEndType.None + // : CommonValue.PaymentEndType; + var happyPointReturn = HappyPointReturn is M_HappyPointReturn + && !string.IsNullOrEmpty(HappyPointReturn.MemberNumber) + && HappyPointReturn.IsAppMamber + ? HappyPointReturn + : null; + + if (DetailBasketData.Where(r => r.ItemType.Equals(BasketItemType.Order)).Count().Equals(0)) + { + paymentEndType = PaymentEndWindowEndType.None; + } + else if (OptionValue802 == "1") + { + paymentEndType = PaymentEndWindowEndType.Bell; + } + else if (OptionValue803 == "1") + { + paymentEndType = PaymentEndWindowEndType.Talk; + } + else if (OptionValue804 == "1") + { + paymentEndType = PaymentEndWindowEndType.WaitNumber; + } + else + { + paymentEndType = PaymentEndWindowEndType.None; + } + + popupManager.OpenPaymentsEnd(paymentEndType, DetailBasketData.ToList(), GetReserveHappyPoint(), GetReserveOKChashBag(), happyPointReturn); + WaitWindowFrom.ShowWaitWindow(); + ProcessOK(); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenPaymentEndProcess()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + WaitWindowFrom.CloseWaitWindow(); + } + } + + + #endregion + + #region Total Values + private void SetBasketSum() + { + if (DetailBasketData is ObservableCollection) + { + TotalItemCount = DetailBasketData.Sum(r => r.Count) + + (DiscountValues is ObservableCollection + ? DiscountValues.Sum(r=>r.AddCount) + : 0) ; + TotalItemsPrice = DetailBasketData.Sum(r => r.Count * r.Price) + + (DiscountValues is ObservableCollection + ? DiscountValues.Sum(r=> r.AddCount * r.AddValue) + : 0) ; + } + else + { + TotalItemCount = 0; + TotalItemsPrice = 0; + } + ScanItemCount = ScanBarcodeBasketData is ObservableCollection && DetailBasketData.Count > 0 + ? ScanBarcodeBasketData.Sum(r => r.Count) + : 0; + OrderItemCount = OrderBasketData is ObservableCollection && OrderBasketData.Count > 0 + ? OrderBasketData.Sum(r => r.Count) + : 0; + + } + private void SetDiscountValue() + { + if (DiscountValues is ObservableCollection) + { + TotalDiscountValue = DiscountValues.Sum(r => r.DiscountValue); + } + else + { + TotalDiscountValue = 0; + } + + } + + #endregion + + #region DiscountValue + private void AddDiscountValue(M_DiscountAndAddValues _discountValues) + { + var listDiscountValues = DiscountValues is ObservableCollection + ? DiscountValues.ToList() + : new List(); + if (!listDiscountValues.Exists(r => r.DiscountType.Equals(_discountValues.DiscountType))) + { + listDiscountValues.Add(_discountValues); + DiscountValues = new ObservableCollection(listDiscountValues); + } + else + { + CommonLog.ErrorLogWrite(this, "AddDiscountValue()", "Duplicate Discount", string.Format("Type:{0}", _discountValues.DiscountType)); + } + + } + private void RemoveDiscountValue(PaymentsDiscountAndAddType _discountType) + { + if (DiscountValues is ObservableCollection) + { + var listDiscountValues = DiscountValues.ToList(); + listDiscountValues.Remove(listDiscountValues.Find(r => r.DiscountType.Equals(_discountType))); + DiscountValues = new ObservableCollection(listDiscountValues); + + } + } + + private void DiscountsRollBack() + { + if (DiscountValues is ObservableCollection) + { + foreach (var aDiscountValue in DiscountValues) + { + switch (aDiscountValue.DiscountType) + { + case PaymentsDiscountAndAddType.HappyPoint: + if (HappyPointReturn is M_HappyPointReturn happyPointReturn) + { + RollBackExcute(aDiscountValue.DiscountType, HappyPointReturn.PaySEQ); + } + break; + case PaymentsDiscountAndAddType.OkCashBagPoint: + break; + case PaymentsDiscountAndAddType.HappyCoupon: + RollBackExcute(PaymentsDiscountAndAddType.HappyCoupon, UsingHappyAppCoupon.PaySEQ); + break; + case PaymentsDiscountAndAddType.MobileCoupon: + if (MobileCouponReturn is M_MobileCouponReturn mobileCouponReturn) + { + foreach (var aCoupon in mobileCouponReturn.VirtureCoupons) + { + if (aCoupon.PaySEQ > -1) RollBackExcute(PaymentsDiscountAndAddType.MobileCoupon, HappyPointReturn.PaySEQ); + } + } + break; + case PaymentsDiscountAndAddType.SkTelecomDiscount: + case PaymentsDiscountAndAddType.AllehKTDiscount: + case PaymentsDiscountAndAddType.LGUPlusDisCount: + if (MobileCompanyReturn is M_MobileCompanyReturn mobileCompanyReturn) + { + RollBackExcute(aDiscountValue.DiscountType,MobileCompanyReturn.PaySEQ); + } + break; + } + } + } + } + + + #endregion + + #region Discount RollBack Process + private void RollBackExcute(PaymentsDiscountAndAddType _discountType, long _paySEQ) + { + TimerEnabled = false; + try + { + using (var posRollBack = new posPaymentsCancel()) + { + CurrentRollBakType = _discountType; + if (posRollBack != null) + { + posRollBack.ReadEnd += posRollBack_ReadEnd; + posRollBack.ErrorEvent += posRollBack_ErrorEvent; + posRollBack.ErrorMessageEvent += posRollBack_ErrorMessageEvent; + posRollBack.StartProcessing(_paySEQ); + posRollBack.ReadEnd -= posRollBack_ReadEnd; + posRollBack.ErrorEvent -= posRollBack_ErrorEvent; + posRollBack.ErrorMessageEvent -= posRollBack_ErrorMessageEvent; + } + + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "RollBackExcute()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + + + #endregion + + private bool GetReserveHappyPoint() + { + bool result = false; + try + { + if (HappyPointReturn is M_HappyPointReturn) + { + result = HappyPointReturn.ReservePoint; + } + } + catch + { + result = false; + } + return result; + } + private bool GetReserveOKChashBag() + { + bool result = false; + try + { + if (OkCashBagReturn is M_OkCashBagReturn) + { + result = OkCashBagReturn.ReservePoint; + } + } + catch + { + result = false; + } + return result; + } + + + private void TimeOutEnd() + { + DiscountsRollBack(); + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = DetailBasketData is ObservableCollection + ? DetailBasketData.ToList() + : null , + }; + CanWindowClose = true; + } + private void RollBacklEnd() + { + DiscountsRollBack(); + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = DetailBasketData is ObservableCollection + ? DetailBasketData.ToList() + : null, + }; + CanWindowClose = true; + } + private void ProcessOK() + { + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + #endregion Methods + + #region [ Event Handlers ] + private void PBPaymentsViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) TimeOutEnd(); + break; + case "ShowLanguageType": + switch (ShowLanguageType) + { + case SupportLanguageType.ko: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_kor.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.en: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_eng.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.ja: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_jap.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.zh: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_chi.png", CommonValue.PBdesignImagesPath); + break; + } + break; + case "DefaultPage": + switch (DefaultPage) + { + case PBPaymentPageType.DetailBasket: + InitailizeDetailBasket(); + break; + case PBPaymentPageType.PointsDisCounts: + InitailizePointsDisCounts(); + break; + case PBPaymentPageType.CouponUsePoints: + InitailizeCouponUsePoints(); + break; + case PBPaymentPageType.MoreVIewPoints: + InitailizeMoreView(); + break; + case PBPaymentPageType.PaymentExcute: + InitailizePaymentExcute(); + break; + } + break; + case "DetailBasketData": + SubDataReset(); + if (DetailBasketData is ObservableCollection + && DetailBasketData.Count > 0) + { + foreach (var DetailItem in DetailBasketData) + { + DetailItem.PropertyChanged += DetailItem_PropertyChanged; + } + SetBasketSum(); + } + else + { + RollBacklEnd(); + } + break; + case "ScanItemPageNo": + ScanPage2LeftEnable = !ScanItemPageNo.Equals(0); + ScanPage2RightEnable = !ScanItemPageNo.Equals(ScanItemPageCount.Equals(0) ? 0: ScanItemPageCount-1); + break; + case "OrderItemPageNo": + OrderPage2LeftEnable = !OrderItemPageNo.Equals(0); + OrderPage2RightEnable = !OrderItemPageNo.Equals(OrderItemPageCount.Equals(0) ? 0 : OrderItemPageCount - 1); + break; + case "ScanItemPageCount": + ScanPageStatusColumnCount = ScanItemPageCount; + ScanItemPageStatus = SetPageNumber(ScanItemPageCount); + break; + case "OrderItemPageCount": + OrderPageStatusColumnCount = OrderItemPageCount; + OrderItemPageStatus = SetPageNumber(OrderItemPageCount); + break; + case "DiscountValues": + SetDiscountValue(); + break; + case "MemberLoginOK": + GmbHappyPointEnable = !MemberLoginOK; + break; + case "HappyPointReturn": + if (HappyPointReturn is M_HappyPointReturn happyPointReturn) + { + HappyPointResrveSwitch = happyPointReturn.ReservePoint; + } + else + { + HappyPointResrveSwitch = false; + } + break; + case "HappyPointResrveSwitch": + OkCashBagResrveEnable = !HappyPointResrveSwitch; + break; + case "OkCashBagReturn": + if (OkCashBagReturn is M_OkCashBagReturn okCashBagReturn) + { + OkCashBagResrveSwitch = okCashBagReturn.ReservePoint; + } + else + { + OkCashBagResrveSwitch = false; + } + break; + case "OkCashBagResrveSwitch": + HappyPointResrveEnable = !OkCashBagResrveSwitch; + break; + case "MobileCompanyReturn": + if (MobileCompanyReturn is M_MobileCompanyReturn mobileCompanyReturn) + { + if (mobileCompanyReturn.DiscountValue > 0) + { + switch (mobileCompanyReturn.Company) + { + case MobileCompanyType.SK_Telecom: + DiscountSKSwitch = true; + break; + case MobileCompanyType.KT_Mobile: + DiscountKTSwitch = true; + break; + case MobileCompanyType.LG_Uplus: + DiscountLGSwitch = true; + break; + } + } + } + break; + case "DiscountSKSwitch": + DiscountKTEnable = !DiscountSKSwitch; + DiscountLGEnable = !DiscountSKSwitch; + break; + case "DiscountKTSwitch": + DiscountSKEnable = !DiscountKTSwitch; + DiscountLGEnable = !DiscountKTSwitch; + break; + case "DiscountLGSwitch": + DiscountSKEnable = !DiscountLGSwitch; + DiscountKTEnable = !DiscountLGSwitch; + break; + case "TotalItemsPrice": + case "TotalDiscountValue": + TotalPriceForPayments = TotalItemsPrice - TotalDiscountValue; + break; + case "TotalPriceForPayments": + if (TotalPriceForPayments.Equals(0d)) OpenPaymentEndProcess(); + break; + } + } + private void DetailItem_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + LastAccessTime = DateTime.Now; + if (sender is M_BasketItem updatedItem) + { + using (var posDataService = new PosDataService()) + { + posDataService.UpdatedItem(updatedItem); + } + } + SetBasketSum(); + } + + + + #region GMB Right Click + + private void CallEmployeeCommandHandler(object obj) + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenCallEmployee(); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + TimeOutEnd(); + return; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CallEmployeeCommandHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + private void LanguageCommandHandler(object obj) + { + TimerEnabled = false; + try + { + var popupReturn = popupManager.OpenLanguageSelector(ShowLanguageType); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + TimeOutEnd(); + return; + } + else + { + ShowLanguageType = popupReturn.ReturnLanguage; + } + } + } + catch + { + throw; + } + finally + { + TimerEnabled = true; + } + } + private void GotoIntroPageCommadHandler(object obj) + { + TimerEnabled=false; + try + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.Cancel, + DisplayLanguage = ShowLanguageType, + Message = Languages.GetMessages("LBL0085"), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn && popupReturn.OKAnswer) + { + TimeOutEnd(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GotoIntroPageCommadHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + { + TimerEnabled = true; + } + + } + #endregion + + #region Contents Click + private void GotoPointsDisCountsCommandHandler(object obj) + { + DefaultPage = PBPaymentPageType.PointsDisCounts; + } + + private void GotoCouponUsePointsCommandHandler(object obj) + { + DefaultPage = PBPaymentPageType.CouponUsePoints; + } + + private void GotoPaymentExcuteCommandHandler(object obj) + { + DefaultPage = PBPaymentPageType.PaymentExcute; + } + private void ScanPage2LeftCommandHandler(object obj) + { + ScanItemPageNo -= 1; + } + + private void ScanPage2RightCommandHandler(object obj) + { + ScanItemPageNo += 1; + } + + private void OrderPage2LeftCommandHandler(object obj) + { + OrderItemPageNo -= 1; + } + + private void OrderPage2RightCommandHandler(object obj) + { + OrderItemPageNo += 1; + } + private void ScanPageSelectCommandHandler(object obj) + { + if (obj is AnimationButton targetButton && targetButton.DataParameter is M_ItemData _ItemData) + { + ScanItemPageNo = ScanItemPageStatus.IndexOf(_ItemData); + } + } + private void OrderPageSelectCommandHandler(object obj) + { + if (obj is AnimationButton targetButton && targetButton.DataParameter is M_ItemData _ItemData) + { + OrderItemPageNo = OrderItemPageStatus.IndexOf(_ItemData); + } + } + + + private void ScanBarcodeDeleteCommandHandler(object obj) + { + if (obj is M_BasketItem deleteItem) + { + DeleteBasketItem(deleteItem); + } + } + + private void OrderDeleteCommandHandler(object obj) + { + if (obj is M_BasketItem deleteItem) + { + DeleteBasketItem(deleteItem); + } + } + private void ScanBarcodeAllDeleteCommandHandler(object obj) + { + TimerEnabled = false; + try + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.Delete, + DisplayLanguage = ShowLanguageType, + Message = Languages.GetMessages("LBL0094"), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn && popupReturn.OKAnswer) + { + DeleteScanAndBarcordItem(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ScanBarcodeAllDeleteCommandHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + + private void OrderAllDeleteCommandHandler(object obj) + { + TimerEnabled = false; + try + { + var topMessage = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "커피주문 제품들을 삭제하시겠습니까?" + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en커피주문 제품들을 삭제하시겠습니까?" + }, + }; + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.Delete, + DisplayLanguage = ShowLanguageType, + Message = topMessage, + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn && popupReturn.OKAnswer) + { + DeleteSelfOrderItem(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OrderAllDeleteCommandHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + + private void HappyPointResrveCommadHandler(object _param) + { + if (HappyPointReturn is M_HappyPointReturn happyPointReturn) + { + if (happyPointReturn.ReservePoint) + { + happyPointReturn.ReservePoint = false; + HappyPointResrveSwitch = false; + } + else + { + happyPointReturn.ReservePoint = true; + HappyPointResrveSwitch = true; + } + } + else + { + OpenReserveHappyPoint(); + } + } + + private void OkCashBagResrveCommandHandler(object _param) + { + if (OkCashBagReturn is M_OkCashBagReturn okCashBagReturn + && okCashBagReturn.ReservePoint) + { + OkCashBagReturn = null; //적립 취소 + } + else + { + OpenReserveOkCashBag(); + } + } + + + private void DiscountSKCommandHandler(object _param) + { + MobileCompanyDiscountExcute(MobileCompanyType.SK_Telecom); + } + private void DiscountKTCommandHandler(object _param) + { + MobileCompanyDiscountExcute(MobileCompanyType.KT_Mobile); + } + private void DiscountLGCommandHandler(object _param) + { + MobileCompanyDiscountExcute(MobileCompanyType.LG_Uplus); + } + + private void HappyPointUsingCommandHandler(object _param) + { + if (HappyPointReturn is M_HappyPointReturn happyPointReturn + && happyPointReturn.PointUse + && happyPointReturn.UsingPoints > 0 + && HappyPointUsingSwitch) + { + if (OpenRollbackConfirmDiscountOrPayments(PaymentsDiscountAndAddType.HappyPoint)) + { + TimerEnabled = false; + WaitWindowFrom.ShowWaitWindow(); + RollBackExcute(PaymentsDiscountAndAddType.HappyPoint, HappyPointReturn.PaySEQ); + WaitWindowFrom.CloseWaitWindow(); + TimerEnabled = true; + } + } + else + { + OpenHappyPointUsing(); + } + } + + + private void OkCashBagUsingCommandHandler(object _param) + { + + } + + private void MoreViewCommandHandler(object _param) + { + DefaultPage = PBPaymentPageType.MoreVIewPoints; + } + + private void MoreViewReturnCommandHandler(object _param) + { + DefaultPage = PBPaymentPageType.CouponUsePoints; + } + + private void HappyAppMyCouponCommandHandler(object _param) + { + if (UsingHappyAppCoupon is M_HappyCoupon happyAppCoupon + && happyAppCoupon.IsUsed) + { + if (OpenRollbackConfirmDiscountOrPayments(PaymentsDiscountAndAddType.HappyCoupon)) + { + TimerEnabled = false; + WaitWindowFrom.ShowWaitWindow(); + RollBackExcute(PaymentsDiscountAndAddType.HappyCoupon, UsingHappyAppCoupon.PaySEQ); + WaitWindowFrom.CloseWaitWindow(); + TimerEnabled = true; + } + } + else + { + OpenHappyAppCoupon(); + } + } + private void MobileCouponCommandHandler(object _param) + { + if (MobileCouponReturn is M_MobileCouponReturn mobileCouponReturn + && mobileCouponReturn.TotalUseAmount > 0) + { + if (OpenRollbackConfirmDiscountOrPayments(PaymentsDiscountAndAddType.MobileCoupon)) + { + TimerEnabled = false; + WaitWindowFrom.ShowWaitWindow(); + foreach (var aCoupon in mobileCouponReturn.VirtureCoupons) + { + if (aCoupon.PaySEQ > -1) RollBackExcute(PaymentsDiscountAndAddType.MobileCoupon, aCoupon.PaySEQ); + } + WaitWindowFrom.CloseWaitWindow(); + TimerEnabled = true; + } + } + else + { + OpenMobileCoupon(); + } + + } + + private void ICcardCommandHandler(object _param) + { + OpenPaymetsProcess(LastPaymentsType.IcCard); + } + + + private void LGSSpayCommandHandler(object _param) + { + OpenPaymetsProcess(LastPaymentsType.SsLgPay); + } + + private void CashBeeCommandHandler(object _param) + { + } + + private void HappyGiftCommandHandler(object _param) + { + } + + private void TmoneyCommandHandler(object _param) + { + } + + private void SPCemployeeCommandHandler(object _param) + { + } + + private void KakaoPayCommandHandler(object _param) + { + } + + private void SmilePayCommandHandler(object _param) + { + OpenPaymetsProcess(LastPaymentsType.SmilePay); + } + + private void AliPayCommandHandler(object _param) + { + } + + private void ZeroPayCommandHandler(object _param) + { + } + #endregion + + #region PaymentsList Click + private void DetailBasketDeleteAllCommandHandler(object _param) + { + + TimerEnabled = false; + try + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.ListCancel, + DisplayLanguage = ShowLanguageType, + Message = Languages.GetMessages("LBL0099"), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn && popupReturn.OKAnswer) + { + DeledteAllBasket(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "DetailBasketDeleteAllCommandHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + + } + + private void GotoLeftCommandHandler(object _param) + { + switch (DefaultPage) + { + case PBPaymentPageType.DetailBasket: + RollBacklEnd(); + break; + case PBPaymentPageType.PointsDisCounts: + case PBPaymentPageType.CouponUsePoints: + case PBPaymentPageType.PaymentExcute: + TimerEnabled = false; + try + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.OrderCancel, + DisplayLanguage = ShowLanguageType, + Message = Languages.GetMessages("LBL0100"), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn && popupReturn.OKAnswer) + { + RollBacklEnd(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GotoLeftCommandHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + break; + } + } + + private void GotoRightCommandHandler(object _param) + { + switch (DefaultPage) + { + case PBPaymentPageType.DetailBasket: + DefaultPage = PBPaymentPageType.PointsDisCounts; + break; + case PBPaymentPageType.PointsDisCounts: + DefaultPage = PBPaymentPageType.CouponUsePoints; + break; + case PBPaymentPageType.CouponUsePoints: + DefaultPage = PBPaymentPageType.PaymentExcute; + break; + } + } + + #region Discount Rollback Events + private void posRollBack_ReadEnd(object sender) + { + if (sender is posPaymentsCancel getRollBack) + { + if (getRollBack.ProcessOK) + { + RemoveDiscountValue(CurrentRollBakType); + switch (CurrentRollBakType) + { + case PaymentsDiscountAndAddType.HappyPoint: + if (HappyPointReturn is M_HappyPointReturn happyPointReturn) + { + HappyPointReturn.PaySEQ = -1L; + HappyPointReturn.PointUse = false; + HappyPointReturn.UsingPoints = 0d; + } + HappyPointUsingSwitch = false; + break; + case PaymentsDiscountAndAddType.OkCashBagPoint: + break; + case PaymentsDiscountAndAddType.HappyCoupon: + HappyAppMyCouponSwitch = false; + UsingHappyAppCoupon = null; + break; + case PaymentsDiscountAndAddType.MobileCoupon: + MobileCouponSwitch = false; + MobileCouponReturn = null; + break; + case PaymentsDiscountAndAddType.SkTelecomDiscount: + DiscountSKSwitch = false; + MobileCompanyReturn = null; + break; + case PaymentsDiscountAndAddType.AllehKTDiscount: + DiscountKTSwitch = false; + MobileCompanyReturn = null; + break; + case PaymentsDiscountAndAddType.LGUPlusDisCount: + DiscountLGSwitch = false; + MobileCompanyReturn = null; + break; + } + } + } + } + + private void posRollBack_ErrorEvent(posPaymentsCancel.ErrorCode _errorCode) + { + var errorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + KioskMessageBox.ShowMessageBox(errorText + , MessageBoxButton.OK + , OpenCloseAnimationType.FullSizeUp + , OpenCloseAnimationType.FullSizeDown + , 0.5, 0.2, 5); + } + + #endregion + + #region Common Rollback Error Message Popup Event + private void posRollBack_ErrorMessageEvent(string ErrorString) + { + var errorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = ErrorString.Replace("\n"," ").Replace("\r","") + }, + }; + KioskMessageBox.ShowMessageBox(errorText + , MessageBoxButton.OK + , OpenCloseAnimationType.FullSizeUp + , OpenCloseAnimationType.FullSizeDown + , 0.5, 0.2, 5); + } + #endregion + + #endregion + + #endregion Event Handlers + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBViewModel.cs b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBViewModel.cs new file mode 100644 index 0000000..56331d8 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/PBViewModel.cs @@ -0,0 +1,2853 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.IO; +using System.ComponentModel; +using System.Windows.Input; +using System.Windows.Media.Animation; +using System.Windows; +using System.Collections.ObjectModel; +using System.Text.RegularExpressions; +using System.Windows.Threading; +using System.Threading.Tasks; +using System.Windows.Controls; +#region SPC.Kiosk +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.DataHelper; +using SPC.Kiosk.PB.Model; +using SPC.Kiosk.Popup; +using SPC.Kiosk.Popup.Model; +using System.Threading; +#endregion +namespace SPC.Kiosk.PB.ViewModel +{ + /// + /// PBWindow View Model + /// + public class VmPBViewModel : ViewModelBase + { + #region [ Members ] + private PopupManager popupManager = PopupManager.GetInstance; + private BackDataService backDataService; + private Queue scanQueue = new Queue(); + private bool IsScanProcess = true; + private Task ScanProcess = null; + //public Dictionary PosOptionValues; + + private string optionValue810; + /// + /// 자동계산 사용여부 + /// + public string OptionValue810 + { + get { return optionValue810; } + set { optionValue810 = value; PropertyChange("OptionValue810"); } + } + private string optionValue811; + /// + /// 바코드계산 사용여부 + /// + public string OptionValue811 + { + get { return optionValue811; } + set { optionValue811 = value; PropertyChange("OptionValue811"); } + } + + private string optionValue812; + /// + /// 직원호출 사용여부 + /// + public string OptionValue812 + { + get { return optionValue812; } + set { optionValue812 = value; PropertyChange("OptionValue812"); } + } + + /// + /// 처리중 화면 + /// + public WaitWindow WaitWindowFrom { get; set; } + private DispatcherTimer ToIntoroTimer; + /// + /// 입력 대기 초과시 연장 팝업 사용 유무 + /// + public bool IsTimeoutPopup { get; set; } = false; + private DateTime LastAccessTime { get; set; } + /// + /// 대기 화면에서 다음 화면 연결시 옵션 + /// + public string DefaultLinkValue { get; set; } + /// + /// 상품 목록 초기화 필요 유무 + /// + public bool NeedIntailizeItems { get; set; } + + private SupportLanguageType showLanguageType; + /// + /// 다국어 코드 + /// + public SupportLanguageType ShowLanguageType + { + get { return showLanguageType; } + set { showLanguageType = value; PropertyChange("ShowLanguageType"); } + } + private PBPageType defaultPage = PBPageType.Intro; + /// + /// 현재 화면 + /// + public PBPageType DefaultPage + { + get { return defaultPage; } + set { defaultPage = value; PropertyChange("DefaultPage"); } + } + private bool canWindowClose = false; + /// + /// 화면 닫기 (true 이면 바로 닫음) + /// + public bool CanWindowClose + { + get { return canWindowClose; } + set { canWindowClose = value; PropertyChange("CanWindowClose"); } + } + + #region Intro & Page + private ObservableCollection introItems; + /// + /// 대기 화면 Contents + /// + public ObservableCollection IntroItems + { + get { return introItems; } + set { introItems = value; PropertyChange("IntroItems"); } + } + private M_HappyPointReturn happyPointReturn; + /// + /// 해피 포인트 인증 정보 + /// + public M_HappyPointReturn HappyPointReturn + { + get { return happyPointReturn; } + set { happyPointReturn = value; PropertyChange("HappyPointReturn"); } + } + /// + /// Alt+F4 대한 Command + /// + public ICommand ToExecuteNothing { get; protected set; } = null; + /// + /// 대기 화면 클릭 + /// + public ICommand RollMediaCommand { get; protected set; } = null; + + #endregion + + #region GMB + + #region GMB Left + /// + /// 공통 메뉴 로고 + /// + public string GmbLogo { get; set; } = ResourceManager.GetNximagePathAdd("Img_main_logo.png", CommonValue.PBdesignImagesPath); + /// + /// 공통 메뉴 관리자 기능 클릭 + /// + public ICommand ReaderCheckCommand { get; protected set; } = null; + /// + /// 로로 클릭 > 홈 화면으로 이동 + /// + public ICommand GotoFirstCommand { get; protected set; } = null; + /// + /// 관리자 기능 클릭 수 + /// + public int ReaderCheckClickCount { get; set; } = 0; + private bool gmbReaderCheckOpen = false; + /// + /// 관리자 기늘 오픈 + /// + public bool GmbReaderCheckOpen + { + get { return gmbReaderCheckOpen; } + set { gmbReaderCheckOpen = value; PropertyChange("GmbReaderCheckOpen"); } + } + #endregion + + #region GMB Center + /// + /// 공통 토글 메뉴 배경 (센싱,일반주문 전환 배경) + /// + public string GmbToggleOff { get; set; } = ResourceManager.GetNximagePathAdd("Btn_toggle_off.png", CommonValue.PBdesignImagesPath); + /// + /// 공통 토글 메뉴 전경 (센싱,일반주문 전환 전경) + /// + public string GmbToggleOn { get; set; } = ResourceManager.GetNximagePathAdd("Btn_toggle_on.png", CommonValue.PBdesignImagesPath); + /// + /// 자동 주문 배경 + /// + public string GmbAIscannerNormal { get; set; } = ResourceManager.GetNximagePathAdd("Ic_ai_off.png", CommonValue.PBdesignImagesPath); + /// + /// 자동 주문 Disable 배경 + /// + public string GmbAIscannerDisable { get; set; } = ResourceManager.GetNximagePathAdd("Ic_ai_on.png", CommonValue.PBdesignImagesPath); + private bool gmbAIscannerEnable; + /// + /// 자동 주문 버튼 Enabled + /// + public bool GmbAIscannerEnable + { + get { return gmbAIscannerEnable; } + set { gmbAIscannerEnable = value; PropertyChange("GmbAIscannerEnable"); } + } + /// + /// 일반 주문 배경 + /// + public string GmbOrderNormal { get; set; } = ResourceManager.GetNximagePathAdd("Ic_order_off.png", CommonValue.PBdesignImagesPath); + /// + /// 일반 주문 Disable 배경 + /// + public string GmbOrderDisable { get; set; } = ResourceManager.GetNximagePathAdd("Ic_order_on.png", CommonValue.PBdesignImagesPath); + private bool gmbOrderEnable; + /// + /// 일반 주문 버튼 Enabled + /// + public bool GmbOrderEnable + { + get { return gmbOrderEnable; } + set { gmbOrderEnable = value; PropertyChange("GmbOrderEnable"); } + } + /// + /// 자동 주문 Command + /// + public ICommand GmbAIscannerCommand { get; protected set; } = null; + /// + /// 일반 주문 Command + /// + public ICommand GmbOrderCommand { get; protected set; } = null; + private string gmbMemberName; + /// + /// 해피 포인트 가입 고객명 + /// + public string GmbMemberName + { + get { return gmbMemberName; } + set { gmbMemberName = value; PropertyChange("GmbMemberName"); } + } + /// + /// 해피 포인트 안내 배경 + /// + public string GmbHappyInfoBackGround { get; set; } = ResourceManager.GetNximagePathAdd("btn_happypoint_info.png", CommonValue.PBdesignImagesPath); + private bool gmbHappyInfoEnable = false; + /// + /// 해피 포인트 안내 Enabled + /// + public bool GmbHappyInfoEnable + { + get { return gmbHappyInfoEnable; } + set { gmbHappyInfoEnable = value; PropertyChange("GmbHappyInfoEnable"); } + } + /// + /// 해피 포인트 안내 표시 시점 + /// + public DateTime GmbHappyInfoEnableTime { get; set; } + #endregion + + #region GMB Right + /// + /// 해피 포인트 로그인 아이콘 + /// + public string GmbHappyPointimage { get; set; } = ResourceManager.GetNximagePathAdd("btn_happypoint_d.png", CommonValue.PBdesignImagesPath); + /// + /// 해피 포인트 로그인 Disabled 아이콘 + /// + public string GmbHappyPointDisable { get; set; } = ResourceManager.GetNximagePathAdd("btn_happypoint_n.png", CommonValue.PBdesignImagesPath); + /// + /// 직원 호출 아이콘 + /// + public string GmbCallimage { get; set; } = ResourceManager.GetNximagePathAdd("btn_help.png", CommonValue.PBdesignImagesPath); + /// + /// 로그 아웃 아이콘 + /// + public string GmbHomeimage { get; set; } = ResourceManager.GetNximagePathAdd("btn_reset.png", CommonValue.PBdesignImagesPath); + private string gmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_kor.png", CommonValue.PBdesignImagesPath); + /// + /// 다국어 변경 아이콘 + /// + public string GmbLanguageimage + { + get { return gmbLanguageimage; } + set { gmbLanguageimage = value; PropertyChange("GmbLanguageimage"); } + } + private bool gmbHome = true; + /// + /// 로그 아웃 Enabled + /// + public bool GmbHome + { + get { return gmbHome; } + set { gmbHome = value; PropertyChange("GmbHome"); } + } + private bool gmbHappyPointEnable = true; + /// + /// 해피 포인트 로그인 Enabled + /// + public bool GmbHappyPointEnable + { + get { return gmbHappyPointEnable; } + set { gmbHappyPointEnable = value; PropertyChange("GmbHappyPointEnable"); } + } + private bool gmbEmpCall = true; + /// + /// 직원 호출 Enabled + /// + public bool GmbEmpCall + { + get { return gmbEmpCall; } + set { gmbEmpCall = value; PropertyChange("GmbEmpCall"); } + } + private bool gmbLanguage = true; + /// + /// 다국어 변경 Enabled + /// + public bool GmbLanguage + { + get { return gmbLanguage; } + set { gmbLanguage = value; PropertyChange("GmbLanguage"); } + } + private bool memberLoginOK = false; + /// + /// 해피 포인트 로그인 유무 + /// + public bool MemberLoginOK + { + get { return memberLoginOK; } + set { memberLoginOK = value; PropertyChange("MemberLoginOK"); } + } + /// + /// 해피 포인트 로그인 Command + /// + public ICommand HappyPointCommand { get; protected set; } = null; + /// + /// 직원 호출 Command + /// + public ICommand CallEmployeeCommand { get; protected set; } = null; + /// + /// 다국어 변경 Command + /// + public ICommand LanguageCommand { get; protected set; } = null; + /// + /// 로그 아웃 Command + /// + public ICommand GotoIntroPageCommand { get; protected set; } = null; + + #endregion + + + #endregion + + #region First Page Contents + /// + /// 홈페이지 자동 주문 배경 + /// + public string First2CameraBackNormal { get; set; } = ResourceManager.GetNximagePathAdd("btn_main_camerascan_n.png", CommonValue.PBdesignImagesPath); + /// + /// 홈페이지 자동 주문 마우스 다운 배경 + /// + public string First2CameraBackDown { get; set; } = ResourceManager.GetNximagePathAdd("btn_main_camerascan_f.png", CommonValue.PBdesignImagesPath); + /// + /// 홈페이지 일반 주문 배경 + /// + public string First2SelfOrderBackNormal { get; set; } = ResourceManager.GetNximagePathAdd("btn_main_selforder_n.png", CommonValue.PBdesignImagesPath); + /// + /// 홈페이지 일반 주문 마우스 다운 배경 + /// + public string First2SelfOrderBackDown { get; set; } = ResourceManager.GetNximagePathAdd("btn_main_selforder_f.png", CommonValue.PBdesignImagesPath); + + #endregion + + #region Items Contents + + #region Category + /// + /// Category1 Background + /// + public string Category1Background { get; set; } = ResourceManager.GetNximagePathAdd("btn_main_menu_n.png", CommonValue.PBdesignImagesPath); + /// + /// All Category Data + /// + public List AllCategory { get; set; } + + private ObservableCollection category1Data; + /// + /// Category1 Data + /// + public ObservableCollection Category1Data + { + get { return category1Data; } + set { category1Data = value; PropertyChange("Category1Data"); } + } + private ObservableCollection category2Data; + /// + /// Category2 Data + /// + public ObservableCollection Category2Data + { + get { return category2Data; } + set { category2Data = value; PropertyChange("Category2Data"); } + } + private int defaultCategory1Item; + /// + /// Default Category1 Item + /// + public int DefaultCategory1Item + { + get { return defaultCategory1Item; } + set { defaultCategory1Item = value; PropertyChange("DefaultCategory1Item"); } + } + private int defaultCategory2Item; + /// + /// Default Category2 Item + /// + public int DefaultCategory2Item + { + get { return defaultCategory2Item; } + set { defaultCategory2Item = value; PropertyChange("DefaultCategory2Item"); } + } + private int defaultCategory1PageNo; + /// + /// Default Category1 Page No + /// + public int DefaultCategory1PageNo + { + get { return defaultCategory1PageNo; } + set { defaultCategory1PageNo = value; PropertyChange("DefaultCategory1PageNo"); } + } + private int defaultCategory2PageNo; + /// + /// Default Category2 Page No + /// + public int DefaultCategory2PageNo + { + get { return defaultCategory2PageNo; } + set { defaultCategory2PageNo = value; PropertyChange("DefaultCategory2PageNo"); } + } + /// + /// Category1 Commad + /// + public ICommand Category1Command { get; protected set; } = null; + /// + /// Category2 Commad + /// + public ICommand Category2Command { get; protected set; } = null; + /// + /// OrderHistory Command (open) + /// + public ICommand OrderHistoryCommand { get; protected set; } = null; + /// + /// OrderHistory Close Command + /// + public ICommand OrderHistoryCloseCommand { get; protected set; } = null; + #endregion + + #region Items + /// + /// AllI tems + /// + public List AllItems { get; set; } + /// + /// Order(item) Column Count + /// + public int OrderColumnCount { get; set; } + /// + /// Order(item) Row Count + /// + public int OrderRowCount { get; set; } + private int defaultOrderItem; + /// + /// Default Order Item + /// + public int DefaultOrderItem + { + get { return defaultOrderItem; } + set { defaultOrderItem = value; PropertyChange("DefaultOrderItem"); } + } + private int orderItemPageNo; + /// + /// Default Order Item Page No + /// + public int OrderItemPageNo + { + get { return orderItemPageNo; } + set { orderItemPageNo = value; PropertyChange("OrderItemPageNo"); } + } + + private ObservableCollection orderItems; + /// + /// Order Items Data + /// + public ObservableCollection OrderItems + { + get { return orderItems; } + set { orderItems = value; PropertyChange("OrderItems"); } + } + /// + /// Item Command + /// + public ICommand ItemCommand { get; protected set; } = null; + /// + /// Page to Left Normal Image + /// + public string Page2LeftNormalImage { get; set; } = ResourceManager.GetNximagePathAdd("btn_page_before_n.png", CommonValue.PBdesignImagesPath); + /// + /// Page to Right Normal Image + /// + public string Page2RightNormalImage { get; set; } = ResourceManager.GetNximagePathAdd("btn_page_after_n.png", CommonValue.PBdesignImagesPath); + private bool page2LeftEnable; + /// + /// Page to Left Enabled + /// + public bool Page2LeftEnable + { + get { return page2LeftEnable; } + set { page2LeftEnable = value; PropertyChange("Page2LeftEnable"); } + } + private bool page2RightEnable; + /// + /// Page to Right Enabled + /// + public bool Page2RightEnable + { + get { return page2RightEnable; } + set { page2RightEnable = value; PropertyChange("Page2RightEnable"); } + } + /// + /// Page to Left Command + /// + public ICommand Page2LeftCommand { get; protected set; } = null; + /// + /// Page to Right Command + /// + public ICommand Page2RightCommand { get; protected set; } = null; + + private ObservableCollection itemPageStatus; + /// + /// Item Page Status + /// + public ObservableCollection ItemPageStatus + { + get { return itemPageStatus; } + set { itemPageStatus = value; PropertyChange("ItemPageStatus"); } + } + private int pageStatusColumnCount; + /// + /// Page Status Column Count + /// + public int PageStatusColumnCount + { + get { return pageStatusColumnCount; } + set { pageStatusColumnCount = value; PropertyChange("PageStatusColumnCount"); } + } + /// + /// Page Select Command + /// + public ICommand PageSelectCommand { get; protected set; } = null; + + #endregion + + #region Order History + /// + /// Order History Normal Brush + /// + public string OrderHistoryNormalBrush { get; set; } = ResourceManager.GetNximagePathAdd("Ic_mylist_d.png", CommonValue.PBdesignImagesPath); + /// + /// Order History Disable Brush + /// + public string OrderHistoryDisableBrush { get; set; } = ResourceManager.GetNximagePathAdd("Ic_mylist_n.png", CommonValue.PBdesignImagesPath); + /// + /// Order History Close NormalB rush + /// + public string CloseOrderHistoryNormalBrush { get; set; } = ResourceManager.GetNximagePathAdd("Ic_mylist_s.png", CommonValue.PBdesignImagesPath); + private bool orderHistoryView = false; + /// + /// Is Order History View + /// + public bool OrderHistoryView + { + get { return orderHistoryView; } + set { orderHistoryView = value; PropertyChange("OrderHistoryView"); } + } + private List findOrderHistoryItems; + /// + /// Find Order History Items + /// + public List FindOrderHistoryItems + { + get { return findOrderHistoryItems; } + set { findOrderHistoryItems = value; PropertyChange("FindOrderHistoryItems"); } + } + + private ObservableCollection orderHistoryItems; + /// + /// Order History Items + /// + public ObservableCollection OrderHistoryItems + { + get { return orderHistoryItems; } + set { orderHistoryItems = value; PropertyChange("OrderHistoryItems"); } + } + private bool orderHistoryItemsEnable; + /// + /// Order History Items Enable + /// + public bool OrderHistoryItemsEnable + { + get { return orderHistoryItemsEnable; } + set { orderHistoryItemsEnable = value; PropertyChange("OrderHistoryItemsEnable"); } + } + #endregion + #endregion Contents + + #region Scan Contents + /// + /// Scan Info GIF + /// + public string ScanInfoGIF { get; set; } = ResourceManager.GetNximagePathAdd("img_gif_barcodescan.gif", CommonValue.PBdesignImagesPath); + /// + /// Scan Header Bar + /// + public string ScanHeaderBar { get; set; } = ResourceManager.GetNximagePathAdd("Bl_bar.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Payment1 Normal + /// + public string ScanPayment1Normal { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_payment_n.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Payment1 Down + /// + public string ScanPayment1Down { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_payment_f.png", CommonValue.PBdesignImagesPath); + /// + /// Add Scan1 Normal + /// + public string AddScan1Normal { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_camerascan_n.png", CommonValue.PBdesignImagesPath); + /// + /// Add Scan1 Down + /// + public string AddScan1Down { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_camerascan_f.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Order1 Normal + /// + public string ScanOrder1Normal { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_selforder_n.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Order1 Down + /// + public string ScanOrder1Down { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_selforder_f.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Button Small Normal + /// + public string ScanButtonSmallNormal { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_n.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Button Small Down + /// + public string ScanButtonSmallDown { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder_f.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Button Large Normal + /// + public string ScanButtonLargeNormal { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder2_n.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Button Large Down + /// + public string ScanButtonLargeDown { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder2_f.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Button Normal + /// + public string ScanButtonNormal { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder3_n.png", CommonValue.PBdesignImagesPath); + /// + /// Scan Button Down + /// + public string ScanButtonDown { get; set; } = ResourceManager.GetNximagePathAdd("btn_addorder3_f.png", CommonValue.PBdesignImagesPath); + /// + /// Info Logo + /// + public string InfoLogo { get; set; } = ResourceManager.GetNximagePathAdd("ic_info.png", CommonValue.PBdesignImagesPath); + /// + /// Info LogoX + /// + public string InfoLogoX { get; set; } = ResourceManager.GetNximagePathAdd("btn_help.png", CommonValue.PBdesignImagesPath); + private PBSensingSubPageType sensingSubPage = PBSensingSubPageType.SensingPage; + /// + /// PB Sensing SubPage Type + /// + public PBSensingSubPageType SensingSubPage + { + get { return sensingSubPage; } + set { sensingSubPage = value; PropertyChange("SensingSubPage"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private int aIScanCount; + /// + /// AI Scan Count + /// + public int AIScanCount + { + get { return aIScanCount; } + set { aIScanCount = value; PropertyChange("AIScanCount"); } + } + /// + /// Rescan Commad + /// + public ICommand RescanCommand { get; protected set; } = null; + /// + /// Goto Barcode Commad + /// + public ICommand GotoBarcodeCommand { get; protected set; } = null; + #endregion + + #region MiniBasket + /// + /// MiniBasket Delete All Image + /// + public string MiniBasketDeleteAllImage { get; set; } = ResourceManager.GetNximagePathAdd("btn_delete.png", CommonValue.PBdesignImagesPath); + private bool miniBasketDeleteAllEnable; + /// + /// MiniBasket Delete All Enabled + /// + public bool MiniBasketDeleteAllEnable + { + get { return miniBasketDeleteAllEnable; } + set { miniBasketDeleteAllEnable = value; PropertyChange("MiniBasketDeleteAllEnable"); } + } + /// + /// Empty Basket Image + /// + public string EmptyBasketImage { get; set; } = ResourceManager.GetNximagePathAdd("Ic_Basket.png", CommonValue.PBdesignImagesPath); + /// + /// Empty Basket DropCommand + /// + public ICommand EmptyBasketDropCommand { get; protected set; } = null; + /// + /// MiniBasket Delete All Command + /// + public ICommand MiniBasketDeleteAllCommand { get; protected set; } = null; + private Visibility orderNoneDataGridVisibility = Visibility.Visible; + /// + /// Order None Data Grid Visibility + /// + public Visibility OrderNoneDataGridVisibility + { + get { return orderNoneDataGridVisibility; } + set { orderNoneDataGridVisibility = value; PropertyChange("OrderNoneDataGridVisibility"); } + + } + private Visibility orderExistDataGridVisibility = Visibility.Hidden; + /// + /// Order Exist Data Grid Visibility + /// + public Visibility OrderExistDataGridVisibility + { + get { return orderExistDataGridVisibility; } + set { orderExistDataGridVisibility = value; PropertyChange("OrderExistDataGridVisibility"); } + + } + #region BasketItems + + private ObservableCollection miniBasketData; + /// + /// Mini Basket Data + /// + public ObservableCollection MiniBasketData + { + get { return miniBasketData; } + set { miniBasketData = value; PropertyChange("MiniBasketData"); } + } + /// + /// Basket Item Delete Command + /// + public ICommand BasketItemDeleteCommand { get; protected set; } = null; + #endregion + #region Total + /// + /// Order Total Payment Icon + /// + public string OrderTotalPaymentIcon { get; set; } = ResourceManager.GetNximagePathAdd("Ic_totalcost.png", CommonValue.PBdesignImagesPath); + private int orderTotalCount = 0; + /// + /// Order Total Count + /// + public int OrderTotalCount + { + get { return orderTotalCount; } + set { orderTotalCount = value; PropertyChange("OrderTotalCount"); } + + } + private double orderTotalPayment = 0d; + /// + /// Order Total Payment + /// + public double OrderTotalPayment + { + get { return orderTotalPayment; } + set { orderTotalPayment = value; PropertyChange("OrderTotalPayment"); } + + } + #endregion + #region Button + private bool orderDetailEnable; + /// + /// Order Detail Enabled + /// + public bool OrderDetailEnable + { + get { return orderDetailEnable; } + set { orderDetailEnable = value; PropertyChange("OrderDetailEnable"); } + } + /// + /// Order Detail Command + /// + public ICommand OrderDetailCommand { get; protected set; } = null; + + private bool gotoPaymentEnable; + /// + /// Goto Payment Enabled + /// + public bool GotoPaymentEnable + { + get { return gotoPaymentEnable; } + set { gotoPaymentEnable = value; PropertyChange("GotoPaymentEnable"); } + } + /// + /// Goto Payment Command + /// + public ICommand GotoPaymentCommand { get; protected set; } = null; + + private PBPaymentPageType openPBPaymentPage = PBPaymentPageType.DetailBasket; + /// + /// Open PB Payment Page + /// + public PBPaymentPageType OpenPBPaymentPage + { + get { return openPBPaymentPage; } + set { openPBPaymentPage = value; PropertyChange("OpenPBPaymentPage"); } + } + #endregion + #endregion MiniBasket + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmPBViewModel() + { + WaitWindowFrom = WaitWindow.GetInstance; + InitViewModel(); + LastAccessTime = DateTime.Now; + ToIntoroTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1d), + }; + ToIntoroTimer.Tick += ToIntoroTimer_Tick; + backDataService = new BackDataService(); + } + + + /// + /// Dispose + /// + public void Dispose() + { + if (ScanProcess != null) + { + IsScanProcess = false; + ScanProcess.Wait(); + ScanProcess = null; + } + if (backDataService != null) + { + backDataService.Dispose(); + backDataService = null; + } + this.PropertyChanged -= VmPBViewModel_PropertyChanged; + if (WaitWindowFrom != null) + { + WaitWindowFrom.CloseWaitWindow(); + WaitWindowFrom = null; + } + if (ToIntoroTimer != null) + { + ToIntoroTimer.Stop(); + ToIntoroTimer.Tick -= ToIntoroTimer_Tick; + ToIntoroTimer = null; + } + if (popupManager != null) + { + popupManager = null; + } + GC.SuppressFinalize(this); + } + #endregion Ctor + + #region [ Methods ] + private void InitViewModel() + { + WaitWindowFrom.ShowWaitWindow(); + try + { + //Intro + SetCommon(); + SetIntro(); + ToExecuteNothing = new Command(ToExecuteNothingHandler); + RollMediaCommand = new Command(RollMediaCommandHandler); + //GMB Left + GotoFirstCommand = new Command(GotoFirstCommandHandler); + ReaderCheckCommand = new Command(ReaderCheckCommandHandler); + //GMB Right + LanguageCommand = new Command(LanguageCommandHandler); + HappyPointCommand = new Command(HappyPointCommandHandler); + CallEmployeeCommand = new Command(CallEmployeeCommandHandler); + GotoIntroPageCommand = new Command(GotoIntroPageCommadHandler); + //GMB Center + GmbAIscannerCommand = new Command(GmbAIscannerCommandHandler); + GmbOrderCommand = new Command(GmbOrderCommandHandler); + GmbAIscannerEnable = false; + //Scan Contents + RescanCommand = new Command(RescanCommandHandler); + GotoBarcodeCommand = new Command(GotoBarcodeCommandHandler); + //Item Contents + ItemCommand = new Command(ItemCommandCommandHandler); + Category1Command = new Command(Category1CommandHandler); + Category2Command = new Command(Category2CommandHandler); + OrderHistoryCommand = new Command(OrderHistoryCommandHandler); + OrderHistoryCloseCommand = new Command(OrderHistoryCloseCommandHandler); + Page2LeftCommand = new Command(Page2LeftCommandHandler); + Page2RightCommand = new Command(Page2RightCommandHandler); + OrderColumnCount = 5; + OrderRowCount = 2; + PageSelectCommand = new Command(PageSelectCommandHandler); + //MiniBasket + MiniBasketDeleteAllCommand = new Command(MiniBasketDeleteAllCommandHandler); + EmptyBasketDropCommand = new Command(EmptyBasketDropCommandHandler); + BasketItemDeleteCommand = new Command(BasketItemDeleteCommandHandler); + OrderDetailCommand = new Command(OrderDetailCommandHandler); + GotoPaymentCommand = new Command(GotoPaymentCommandHandler); + this.PropertyChanged += VmPBViewModel_PropertyChanged; + ShowLanguageType = CommonValue.CommonLanguageType; + ScanProcess = new Task(ScanDataProcessor); + ScanProcess.Start(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "InitViewModel()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + WaitWindowFrom.CloseWaitWindow(); + } + } + + private void SetCommon() + { +#if TESTMODE + using (var dataHelper = new CommonDataHelper()) + { + if (!dataHelper.NeedInitModule) dataHelper.SetCommonLanguage(); + } +#endif + + //PosOption 값 획득 + using (var backDataService = new BackDataService()) + { + this.OptionValue810 = backDataService.GetPosOption(nameof(PosOptionType.OPT810)); + this.OptionValue811 = backDataService.GetPosOption(nameof(PosOptionType.OPT811)); + this.OptionValue812 = backDataService.GetPosOption(nameof(PosOptionType.OPT812)); + + //if (this.PosOptionValues == null) this.PosOptionValues = new Dictionary(); + //if (!this.PosOptionValues.ContainsKey(nameof(PosOptionType.OPT810))) { this.PosOptionValues.Add(nameof(PosOptionType.OPT810), this.optionValue810); } + //if (!this.PosOptionValues.ContainsKey(nameof(PosOptionType.OPT811))) { this.PosOptionValues.Add(nameof(PosOptionType.OPT811), this.optionValue811); } + } + } + + + #region Intro + private void SetIntro() + { + + using (var dataHelper = new CommonDataHelper()) + { + var getIntro = dataHelper.GetIntroData(1920d); + if (getIntro is List && getIntro.Count > 0) + { + IntroItems = new ObservableCollection(getIntro); + } + else + { + #region Default Intro + IntroItems = new ObservableCollection + { + new M_IntroItems + { + ItemsStack=0, + StackWidth=1920, + StackContents = new List + { + new M_StackContents + { + ItemsIndex = 0, + MediaRollItems = new List + { + new M_MediaRollItem + { + Type = MediaType.Image, + MediaPath =ResourceManager.GetNximagePathAdd("nextstation_img.jpg", CommonValue.PBdesignImagesPath), + LinkType = IntroLinkType.Page, + LinkParameter = "FirstSelect", + RunnigSeconds =10 + }, + } + }, + new M_StackContents + { + ItemsIndex = 1, + MediaRollItems = new List + { + new M_MediaRollItem{ + Type = MediaType.Image, + MediaPath = ResourceManager.GetNximagePathAdd("nextstation_button.jpg", CommonValue.PBdesignImagesPath), + LinkType = IntroLinkType.Page, + LinkParameter = "ItemPage", + RunnigSeconds =10 + }, + } + } + } + }, + }; + #endregion + + } + } + } + #endregion Intro + + #region Contents + + #region Self Order + private void SetContents() + { + if (!string.IsNullOrEmpty(DefaultLinkValue)) + { + if (DefaultLinkValue.ToLower().StartsWith("category&")) + { + DataModelInit(); + var getCategory = DefaultLinkValue.Split('&'); + switch (getCategory.Length) + { + case 2: + DefaultCategory1Item = Category1Data.IndexOf(Category1Data.Where(r => r.Category1.Equals(getCategory[1])).FirstOrDefault()); + if (DefaultCategory1Item < 0) DefaultCategory1Item = 0; + DefaultCategory2Item = 0; + break; + case 3: + DefaultCategory1Item = Category1Data.IndexOf(Category1Data.Where(r => r.Category1.Equals(getCategory[1])).FirstOrDefault()); + if (DefaultCategory1Item < 0) DefaultCategory1Item = 0; + if (!string.IsNullOrEmpty(getCategory[2])) + { + DefaultCategory2Item = Category2Data.IndexOf(Category2Data.Where(r => r.Category2.Equals(getCategory[2])).FirstOrDefault()); + if (DefaultCategory2Item < 0) DefaultCategory2Item = 0; + } + else + { + DefaultCategory2Item = 0; + } + break; + default: + DefaultCategory1Item = 0; + DefaultCategory2Item = 0; + break; + } + DefaultOrderItem = 0; + } + else + { + DataModelInit(); + var findItem = AllItems.Where(r => r.ItemCode.Equals(DefaultLinkValue)).FirstOrDefault(); + if (findItem is M_ItemData) + { + DefaultCategory1Item = Category1Data.IndexOf(Category1Data.Where(r => r.Category1.Equals(findItem.Category1)).FirstOrDefault()); + DefaultCategory2Item = Category2Data.IndexOf(Category2Data.Where(r => r.Category2.Equals(findItem.Category2)).FirstOrDefault()); + DefaultOrderItem = OrderItems.IndexOf(OrderItems.Where(r => r.ItemCode.Equals(DefaultLinkValue)).FirstOrDefault()); + } + else + { + DefaultCategory1Item = 0; + DefaultCategory2Item = 0; + DefaultOrderItem = 0; + } + } + } + else + { + DataModelInit(); + DefaultCategory1Item = 0; + DefaultCategory2Item = 0; + DefaultOrderItem = 0; + } + } + private void DataModelInit() + { + try + { + if (NeedIntailizeItems) + { + ItemCacheClear(); + this.SetItemData(); + SetCategory1(); + + NeedIntailizeItems = false; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "DataModelInit()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void ItemCacheClear() + { + if (AllItems is List) + { + foreach (var aitem in AllItems) + { + if (aitem.DataParameter.NormalBrush != null) + { + CacheManager.CacheRemove(aitem.DataParameter.NormalBrush); + } + if (aitem.DataParameter.SwitchOnBrush != null) + { + CacheManager.CacheRemove(aitem.DataParameter.SwitchOnBrush); + } + if (aitem.DataParameter.DisableBrush != null) + { + CacheManager.CacheRemove(aitem.DataParameter.DisableBrush); + } + if (aitem.DataParameter.DownBrush != null) + { + CacheManager.CacheRemove(aitem.DataParameter.DownBrush); + } + if (aitem.DataParameter.DragCursorImage != null) + { + CacheManager.CacheRemove(aitem.DataParameter.DragCursorImage); + } + } + } + } + private void SetItemData() + { + try + { + #region Item Data From DB + using (var dataHelper = new CommonDataHelper()) + { + //Categoty Data + AllCategory = dataHelper.GetCategoryData(); + if (AllCategory is List) + { + //Category Design Parameter Add + foreach (var category1Item in AllCategory) + { + //Category1 Design Parameter + category1Item.Catalog1Item.DataParameter = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("btn_main_menu_n.png", CommonValue.PBdesignImagesPath), + SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_main_menu_p.png", CommonValue.PBdesignImagesPath), + Width = 150, + Height = 160, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.TextSizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + TextVisible = Visibility.Visible, + TextFontSize = 28, + SwitchOnFontSize = 30, + TextForeground = "#adadad", + TextWrapping = TextWrapping.Wrap, + SwitchOnForeground = "White", + TextFontFamily = "NanumSquare", + TextFontWeight = FontWeights.Normal, + SwitchOnFontWeight = FontWeights.Bold, + TextAlignment = TextAlignment.Right, + TextHorizontalAlignment = HorizontalAlignment.Right, + TextVerticalAlignment = VerticalAlignment.Top, + TextMargin = new Thickness(5, 21, 20, 21), + LanguageText = dataHelper.GetLaguageData("CATE", category1Item.Catalog1Item.Category1) + }; + foreach (var category2Item in category1Item.Catalog2Items) + { + //Category2 Design Parameter + category2Item.DataParameter = new M_AnimationButton + { + NormalBrush = "Transparent", + SwitchOnBrush = "Transparent", + Width = 194, + Height = 86, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.TextBounceDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + TextVisible = Visibility.Visible, + TextFontSize = 24, + SwitchOnFontSize = 24, + TextForeground = "Black", + SwitchOnForeground = "#1469cc", + TextFontFamily = "NanumSquare", + TextFontWeight = FontWeights.Normal, + SwitchOnFontWeight = FontWeights.Bold, + TextAlignment = TextAlignment.Center, + TextMargin = new Thickness(0, 0, 18, 0), + TextWrapping = TextWrapping.Wrap, + TextHorizontalAlignment = HorizontalAlignment.Center, + TextVerticalAlignment = VerticalAlignment.Center, + LanguageText = dataHelper.GetLaguageData("CATE", category2Item.Category2) + }; + }; + } + + } + //Item Master + AllItems = dataHelper.GetItemsData(); + if (AllItems is List && AllItems.Count > 0) + { + //Item Design Parameter Add + foreach (var aItem in AllItems) + { + aItem.BadgeHeight = 30; + aItem.BadgeOrientation = Orientation.Horizontal; + if (aItem.BadgeImages is List && aItem.BadgeImages.Count > 0) + { + var newBadgeImages = new List(); + foreach (var aBadgeImage in aItem.BadgeImages) + { + var strBadgeImage = ResourceManager.GetNximagePathAdd(aBadgeImage, CommonValue.PBdesignImagesPath); + if (!string.IsNullOrEmpty(strBadgeImage)) + { + newBadgeImages.Add(strBadgeImage); + } + } + aItem.BadgeImages = newBadgeImages; + } + if (aItem.Option is List && aItem.Option.Count > 0) + { + foreach (var aOptionGRP in aItem.Option) + { + if (aOptionGRP is M_ItemOptionGroup) + { + aOptionGRP.ImageFile = aOptionGRP.Index.Equals(0) + ? "ic_option_takein.png" + : aOptionGRP.Index.Equals(1) + ? "ic_option_shot.png" + : "ic_option_candle.png"; + } + } + } + var itemImage = ResourceManager.GetItemImage(aItem.ImageFile, CommonValue.ItemDefaultImage);//파일 없을 경우 DefaultImage로 + aItem.DataParameter = new M_AnimationButton + { + NormalBrush = itemImage, + DragCursorImage = itemImage, + DisableBrush = ResourceManager.GetNximagePathAdd("img_contents_soldout.png", CommonValue.PBdesignImagesPath), + Width = 100, + Height = 100, + Margin = new Thickness(80, 30, 80, 40), + BrushStretch = Stretch.Fill, + DragCursorHotSpot = HotSpotType.Center, + ClickAnimationType = ButtonAnimationType.SizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + Enabled = !aItem.IsSoldOut, + CircleText = string.Empty, + }; + aItem.BaseTextBlock = new M_TextBlock() + { + LanguageData = dataHelper.GetLaguageData("PROD", aItem.ItemCode), + TextSize = 24, + Width = 250, + Height = 82, + TextBrush = "Black", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Center, + TextMargin = new Thickness(5, 0, 5, 0), + TextWeight = FontWeights.Bold, + TextWrapping = TextWrapping.Wrap + }; + aItem.AdditionTextBlock = new M_TextBlock() + { + LanguageData = new List + { + new M_Language{ Type = SupportLanguageType.ko, LanguageData = string.Format("₩{0:#,##0}", aItem.Price)}, + }, + TextSize = 26, + Width = 250, + Height = 40, + TextBrush = "#1469cc", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Top, + TextMargin = new Thickness(5, 0, 5, 0), + TextWeight = FontWeights.Bold, + }; + } + + } + else + { + +#if TESTMODE + #region Test Item + AllItems = new List(); + AllCategory = new List(); + var itemFiles = ResourceManager.GetItemImages("*.png"); + int index = 0; + foreach (var aItemFles in itemFiles) + { + var aFile = new FileInfo(aItemFles); + if (Regex.IsMatch(aFile.Name.Replace(aFile.Extension, ""), "^[0-9]") && !aFile.Name.Contains("_FULL")) + { + var category1Code = aFile.Name.Substring(0, 1); + var category2Code = aFile.Name.Substring(1, 2); + var testPrice = 2000d; + int intCategory1Code = int.Parse(category1Code); + if (intCategory1Code < 4) + { + //Add ItemData + AllItems.Add(new M_ItemData() + { + Index = index, + ItemCode = aFile.Name.Replace(aFile.Extension, ""), + Category1 = category1Code, + Category2 = category2Code, + Price = testPrice, + BadgeHeight = 30, + BadgeOrientation = Orientation.Horizontal, + BadgeImages = index.Equals(0) + ? new List + { + ResourceManager.GetNximagePathAdd("Img_best.png", CommonValue.PBdesignImagesPath), + ResourceManager.GetNximagePathAdd("Img_new.png", CommonValue.PBdesignImagesPath), + ResourceManager.GetNximagePathAdd("img_like.png", CommonValue.PBdesignImagesPath), + ResourceManager.GetNximagePathAdd("img_event.png", CommonValue.PBdesignImagesPath) + } + : index.Equals(1) + ? new List + { + ResourceManager.GetNximagePathAdd("Img_best.png", CommonValue.PBdesignImagesPath), + ResourceManager.GetNximagePathAdd("Img_new.png", CommonValue.PBdesignImagesPath), + } + : index.Equals(2) + ? new List + { + ResourceManager.GetNximagePathAdd("img_like.png", CommonValue.PBdesignImagesPath), + ResourceManager.GetNximagePathAdd("img_event.png", CommonValue.PBdesignImagesPath), + } + : index.Equals(3) + ? new List + { + ResourceManager.GetNximagePathAdd("Img_best.png", CommonValue.PBdesignImagesPath), + } + : null, + DataParameter = new M_AnimationButton + { + NormalBrush = aItemFles, + DragCursorImage = aItemFles, + DisableBrush = ResourceManager.GetNximagePathAdd("img_contents_soldout.png", CommonValue.PBdesignImagesPath), + Width = 100, + Height = 100, + Margin = new Thickness(80, 30, 80, 40), + BrushStretch = Stretch.Fill, + DragCursorHotSpot = HotSpotType.Center, + ClickAnimationType = ButtonAnimationType.SizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + Enabled = !index.Equals(7), + CircleText = string.Empty, + }, + BaseTextBlock = new M_TextBlock() + { + LanguageData = index.Equals(0) + ? new List + { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "en아메리카노"}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "아메리카노"} + } + : index.Equals(1) + ? new List + { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "3mm 황금비율로 바삭하고 en고소한 전병세트"}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "3mm 황금비율로 바삭하고 고소한 전병세트"} + } + : index.Equals(2) + ? new List + { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "en카푸치노"}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "카푸치노"} + } + : index.Equals(3) + ? new List + { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "en바닐라라떼"}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "바닐라라떼"} + } + : new List + { + new M_Language{ Type = SupportLanguageType.en, LanguageData = aFile.Name.Replace(aFile.Extension, "")}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = aFile.Name.Replace(aFile.Extension, "")} + }, + TextSize = 24, + Width = 250, + Height = 82, + TextBrush = "Black", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Center, + TextMargin = new Thickness(5, 0, 5, 0), + TextWeight = FontWeights.Bold, + TextWrapping = TextWrapping.Wrap + }, + AdditionTextBlock = new M_TextBlock() + { + LanguageData = new List { + new M_Language{ Type = SupportLanguageType.ko, LanguageData = string.Format("₩{0:#,##0}", testPrice)}, + }, + TextSize = 26, + Width = 250, + Height = 40, + TextBrush = "#1469cc", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Top, + TextMargin = new Thickness(5, 0, 5, 0), + TextWeight = FontWeights.Bold, + }, + + }); + //Add CategoryData + if (!CheckExistCategory1(category1Code)) + { + var mItemData = new M_ItemData + { + Index = -1, + ItemCode = category1Code, + Category1 = category1Code, + DataParameter = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("btn_main_menu_n.png", CommonValue.PBdesignImagesPath), + SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_main_menu_p.png", CommonValue.PBdesignImagesPath), + Width = 150, + Height = 160, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.TextSizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + TextVisible = Visibility.Visible, + TextFontSize = 27, + SwitchOnFontSize = 40, + TextForeground = "#adadad", + TextWrapping = TextWrapping.Wrap, + SwitchOnForeground = "White", + TextFontFamily = "NanumSquare", + TextFontWeight = FontWeights.Normal, + SwitchOnFontWeight = FontWeights.Bold, + TextAlignment = TextAlignment.Right, + TextHorizontalAlignment = HorizontalAlignment.Right, + TextVerticalAlignment = VerticalAlignment.Top, + TextMargin = new Thickness(10, 21, 27, 21), + LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = category1Code+"en" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = category1Code+"ko" } + }, + } + }; + switch (category1Code) + { + case "0": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Coffee" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "커피" } + }; + break; + case "1": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Beverage" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "음료" } + }; + break; + case "2": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Sherbet" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "빙수" } + }; + break; + case "3": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Cake" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "케이크" } + }; + break; + } + AddCategory1(category1Code, mItemData); + } + if (!CheckExistCategory2(category1Code, category2Code)) + { + var mItemData = new M_ItemData + { + Index = -1, + ItemCode = category2Code, + Category1 = category1Code, + Category2 = category2Code, + DataParameter = new M_AnimationButton + { + NormalBrush = "Transparent", + SwitchOnBrush = "Transparent", + //SwitchOnBrush = ResourceManager.GetNximagePathAdd("line_main_tab.png", CommonValue.PBdesignImagesPath), + Width = 194, + Height = 86, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.TextBounceDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + TextVisible = Visibility.Visible, + TextFontSize = 24, + SwitchOnFontSize = 28, + TextForeground = "Black", + SwitchOnForeground = "#1469cc", + TextFontFamily = "NanumSquare", + TextFontWeight = FontWeights.Normal, + SwitchOnFontWeight = FontWeights.Bold, + TextAlignment = TextAlignment.Center, + TextMargin = new Thickness(0, 0, 18, 0), + TextWrapping = TextWrapping.Wrap, + TextHorizontalAlignment = HorizontalAlignment.Center, + TextVerticalAlignment = VerticalAlignment.Center, + LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = category2Code+"en" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = category2Code+"ko" } + }, + } + }; + if (category1Code.Equals("0")) + { + switch (category2Code) + { + case "01": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Cafe Adagio" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "카페 아다지오" } + }; + break; + case "10": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Latte&Tea" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "라떼&티" } + }; + break; + case "50": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Juice&Ade" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "주스&에이드" } + }; + break; + case "51": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Smoothies" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "스무디" } + }; + break; + case "52": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Sherbet" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "빙수" } + }; + break; + case "71": + mItemData.DataParameter.LanguageText = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = "Product Beverage" }, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = "완제음료" } + }; + break; + + } + } + AddCategory2(category1Code, category2Code, mItemData); + } + index++; + } + + } + } + #endregion +#endif + } + } + #endregion + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetOrderHistoryItems()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void SetOrderHistoryItems() + { + try + { + if (FindOrderHistoryItems is List + && FindOrderHistoryItems.Count > 0 + && AllItems is List + && AllItems.Count > 0) + { + var newOrderHistoryItems = new List(); + foreach (var aHistoryItem in FindOrderHistoryItems) + { + var findItem = AllItems.Find(r => r.ItemCode.Equals(aHistoryItem)); + if (findItem is M_ItemData) newOrderHistoryItems.Add(findItem); + } + if (newOrderHistoryItems.Count > 0) + { + OrderHistoryItems = new ObservableCollection(newOrderHistoryItems); + } + else + { + OrderHistoryItems = null; + } + } + else + { + OrderHistoryItems = null; + } + + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetOrderHistoryItems()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void SetCategory1(int _index = 0) + { + if (AllCategory != null) + { + if (NeedIntailizeItems) Category1Data = new ObservableCollection((from aRow in AllCategory + select aRow.Catalog1Item).ToList()); + DefaultCategory1Item = _index < 0 ? 0 : _index; + } + } + private void SetCategory2(int _index = 0) + { + if (Category1Data != null) + { + var catalog2Items = AllCategory[DefaultCategory1Item].Catalog2Items; + Category2Data = new ObservableCollection(catalog2Items); + DefaultCategory2Item = _index < 0 ? 0 : _index; + } + } + private void SetItemList(int _index = 0) + { + if (AllItems != null) + { + var category1Code = Category1Data[DefaultCategory1Item < 0 ? 0 : DefaultCategory1Item].Category1; + var category2Code = Category2Data[DefaultCategory2Item < 0 ? 0 : DefaultCategory2Item].Category2; + if (OrderItems != null) OrderItemPageNo = 0; + OrderItems = new ObservableCollection + ( + from aRow in AllItems + where aRow.Category1.Equals(category1Code) + && aRow.Category2.Equals(category2Code) + select aRow + ); + DefaultOrderItem = _index < 0 ? 0 : _index; + } + } + private bool CheckExistCategory1(string _categoryCode) + { + bool result = false; + try + { + if (AllCategory != null) + { + result = !AllCategory.Where(r => r.Catalog1Item.Category1.Equals(_categoryCode)).Count().Equals(0); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CheckExistCategory1()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + private bool CheckExistCategory2(string _category1Code, string _category2Code) + { + bool result = false; + try + { + if (AllCategory != null) + { + var category1Items = AllCategory.Where(r => r.Catalog1Item.Category1.Equals(_category1Code)).FirstOrDefault(); + if (category1Items != null && category1Items.Catalog2Items != null) + { + result = !category1Items.Catalog2Items.Where(r => r.Category2.Equals(_category2Code)).Count().Equals(0); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CheckExistCategory2()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + + } + private void AddCategory1(string _categoryCode, M_ItemData _categoryItem) + { + if (AllCategory != null) + { + if (AllCategory.Where(r => r.Catalog1Item.Category1.Equals(_categoryCode)).Count().Equals(0)) + { + _categoryItem.Index = AllCategory.Count; + AllCategory.Add( + new M_CategoryItems + { + Catalog1Item = _categoryItem, + Catalog2Items = new List() + } + ); + } + } + } + private void AddCategory2(string _category1Code, string _category2Code, M_ItemData _categoryItem) + { + if (AllCategory != null) + { + var category1Items = AllCategory.Where(r => r.Catalog1Item.Category1.Equals(_category1Code)).FirstOrDefault(); + if (category1Items != null && category1Items.Catalog2Items != null) + { + if (category1Items.Catalog2Items.Where(r => r.Category2.Equals(_category2Code)).Count().Equals(0)) + { + _categoryItem.Index = category1Items.Catalog2Items.Count; + category1Items.Catalog2Items.Add(_categoryItem); + } + } + } + + } + private void SetPageNumber() + { + var pageCount = GetItemPageCount(); + var pageNumbers = new ObservableCollection(); + for (int index = 0; index < pageCount; index++) + { + pageNumbers.Add(new M_ItemData + { + Index = index, + DataParameter = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("Img_page_dot_off.png", CommonValue.PBdesignImagesPath), + SwitchOnBrush = ResourceManager.GetNximagePathAdd("Img_page_dot_on.png", CommonValue.PBdesignImagesPath), + Width = 20, + Height = 20, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.SizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + TextVisible = Visibility.Collapsed, + } + }); + + } + ItemPageStatus = pageNumbers; + } + #endregion + + #region Senssing + private M_ItemData SetItemDesignData(CommonDataHelper dataHelper, M_ItemData aItem) + { + var result = aItem; + try + { + aItem.BadgeHeight = 30; + aItem.BadgeOrientation = Orientation.Horizontal; + if (aItem.BadgeImages is List && aItem.BadgeImages.Count > 0) + { + var newBadgeImages = new List(); + foreach (var aBadgeImage in aItem.BadgeImages) + { + var strBadgeImage = ResourceManager.GetNximagePathAdd(aBadgeImage, CommonValue.PBdesignImagesPath); + if (!string.IsNullOrEmpty(strBadgeImage)) + { + newBadgeImages.Add(strBadgeImage); + } + } + aItem.BadgeImages = newBadgeImages; + } + //if (aItem.Option is List && aItem.Option.Count > 0) + //{ + // foreach (var aOptionGRP in aItem.Option) + // { + // if (aOptionGRP is M_ItemOptionGroup) + // { + // aOptionGRP.ImageFile = aOptionGRP.Index.Equals(0) + // ? "ic_option_takein.png" + // : aOptionGRP.Index.Equals(1) + // ? "ic_option_shot.png" + // : "ic_option_candle.png"; + // } + // } + //} + var itemImage = ResourceManager.GetItemImage(aItem.ImageFile, CommonValue.ItemDefaultImage); + aItem.DataParameter = new M_AnimationButton + { + NormalBrush = itemImage, + DragCursorImage = itemImage, + DisableBrush = ResourceManager.GetNximagePathAdd("img_contents_soldout.png", CommonValue.PBdesignImagesPath), + Width = 100, + Height = 100, + Margin = new Thickness(80, 30, 80, 40), + BrushStretch = Stretch.Fill, + DragCursorHotSpot = HotSpotType.Center, + ClickAnimationType = ButtonAnimationType.SizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + Enabled = !aItem.IsSoldOut, + CircleText = string.Empty, + }; + aItem.BaseTextBlock = new M_TextBlock() + { + LanguageData = dataHelper.GetLaguageData("PROD", aItem.ItemCode), + TextSize = 24, + Width = 250, + Height = 82, + TextBrush = "Black", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Center, + TextMargin = new Thickness(5, 0, 5, 0), + TextWeight = FontWeights.Bold, + TextWrapping = TextWrapping.Wrap + }; + aItem.AdditionTextBlock = new M_TextBlock() + { + LanguageData = new List + { + new M_Language{ Type = SupportLanguageType.ko, LanguageData = string.Format("₩{0:#,##0}", aItem.Price)}, + }, + TextSize = 26, + Width = 250, + Height = 40, + TextBrush = "#1469cc", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Top, + TextMargin = new Thickness(5, 0, 5, 0), + TextWeight = FontWeights.Bold, + }; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SetItemDesignData()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = aItem; + } + return result; + } + private void ProcessBardcord() + { + Console.WriteLine("Paag={0},SubPage={1},Barcord={2}", DefaultPage, SensingSubPage, ReadBarCode); + if (string.IsNullOrEmpty(ReadBarCode) || !DefaultPage.Equals(PBPageType.Sensing)) return; + var barcordData = ReadBarCode.Trim().ToUpper(); + if (barcordData.rIsBigAlpa() && barcordData.Contains("SCANSTART")) + { + AIScanCount = 0; + } + else + { + var isNumeric = barcordData.rIsNum(); + var isAlpaNumaric = barcordData.rIsAlpaNum(); + var barcord = isNumeric && isAlpaNumaric ? barcordData : null; + var itemcode = !isNumeric && isAlpaNumaric ? barcordData.rGetOnlyNum() : null; + var itemType = string.IsNullOrEmpty(itemcode) && !string.IsNullOrEmpty(barcord) && SensingSubPage.Equals(PBSensingSubPageType.BarcordPage) + ? BasketItemType.Barcode + : !string.IsNullOrEmpty(itemcode) && string.IsNullOrEmpty(barcord) && SensingSubPage.Equals(PBSensingSubPageType.SensingPage) + ? BasketItemType.Scan + : BasketItemType.None; + if (!itemType.Equals(BasketItemType.None)) + { + var newScanData = new M_ScanData + { + ItemCode = itemcode, + Barcord = barcord, + ItemType = itemType, + }; + scanQueue.Enqueue(newScanData); + + } + } + } + private void ScanDataProcessor() + { + while (IsScanProcess) + { + try + { + var scanData = scanQueue.Count > 0 ? scanQueue.Dequeue() : null; + if (scanData is M_ScanData) + { + using (var dataHelper = new CommonDataHelper()) + { + var getItemData = dataHelper.GetBarcordItemsData(scanData.ItemCode, scanData.Barcord); + if (getItemData is M_ItemData) + { + var designItem = SetItemDesignData(dataHelper, getItemData); + AddItem2Basket(designItem, scanData.ItemType); + if (scanData.ItemType.Equals(BasketItemType.Scan)) AIScanCount += 1; + } + else + { + CommonLog.ErrorLogWrite(this, "ScanDataProcessor()", "Not Found Item Error !!", string.Format("\nItem={0},Barcord={1}", scanData.ItemCode, scanData.Barcord)); + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + } + #endregion + + #region Basket + private void AddItem2Basket(M_ItemData _itemData, BasketItemType _itemType = BasketItemType.Order) + { + var option = new List(); + var itemCount = 1; + var unitPrice = _itemData.Price; + if (_itemType.Equals(BasketItemType.Order)) + { + if (_itemData.IsOption) + { + ToIntorTimerStop(); + try + { + var newOptions = new List(); + foreach (var aOptionGroup in _itemData.Option) + { + newOptions.Add(aOptionGroup.Clone()); + } + var popupReturn = popupManager.OpenOptionSelect(_itemData.BaseTextBlock.LanguageData + , newOptions + , _itemData.DataParameter.NormalBrush + , itemCount + , _itemData.Price); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + DefaultPage = PBPageType.Intro; + option = null; + } + else + { + if (popupReturn.PopupArgs is M_OptionReturn getOption) + { + option = getOption.Options; + itemCount = getOption.ItemCount; + unitPrice = getOption.PriceWithOption; + } + else + { + option = null; + } + } + } + else + { + option = null; + } + } + catch + { + option = null; + } + finally + { + ToIntorTimerStart(); + } + if (option == null) return; + } + else + { + option = null; + itemCount = 1; + unitPrice = _itemData.Price; + } + } + else + { + option = null; + } + using (var posDataService = new PosDataService()) + { + var getNewBasketData = posDataService.AddItemToBasket(MiniBasketData + , itemCount + , unitPrice + , CommonValue.PBdesignImagesPath + , _itemData + , option + , _itemType); + if (getNewBasketData is ObservableCollection) MiniBasketData = getNewBasketData; + } + } + private double GetItemPrice(M_ItemData _itemData, List _option) + { + double result = _itemData.Price; + try + { + foreach (var aOptionGroup in _option) + { + foreach (var aOption in aOptionGroup.Options) + { + if (aOption.IsSelected) + { + + } + } + } + } + catch + { + + result = _itemData.Price; + } + return result; + } + private void SetBasketSum() + { + if (MiniBasketData is ObservableCollection) + { + OrderTotalCount = MiniBasketData.Sum(r => r.Count); + OrderTotalPayment = MiniBasketData.Sum(r => r.Count * r.Price); + } + else + { + OrderTotalCount = 0; + OrderTotalPayment = 0; + } + } + private void DeleteBasketItem(M_BasketItem _deleteItem) + { + if (MiniBasketData is ObservableCollection) + { + var newBasketData = MiniBasketData.ToList(); + using (var posDataService = new PosDataService()) + { + if (posDataService.DelItem(_deleteItem)) + { + newBasketData.Remove(_deleteItem); + } + } + MiniBasketData = new ObservableCollection(newBasketData); + + } + } + private void DeleteScanItem() + { + if (MiniBasketData is ObservableCollection) + { + var newBasketData = MiniBasketData.ToList(); + using (var posDataService = new PosDataService()) + { + foreach (var aitem in newBasketData.Where(r => r.ItemType.Equals(BasketItemType.Scan)).ToList()) + { + if (posDataService.DelItem(aitem)) + { + newBasketData.Remove(aitem); + } + } + } + newBasketData.RemoveAll(r => r.ItemType.Equals(BasketItemType.Scan)); + MiniBasketData = new ObservableCollection(newBasketData); + } + } + public void DeledteAllBasket() + { + + if (MiniBasketData is ObservableCollection) + { + using (var posDataService = new PosDataService()) + { + foreach (var aitem in MiniBasketData) + { + posDataService.DelItem(aitem); + } + } + MiniBasketData = null; + } + } + #endregion + + #endregion Contents + + #region Etc + /// + /// 타이머 스톱 + /// + public void ToIntorTimerStart() + { + + LastAccessTime = DateTime.Now; + ToIntoroTimer.Start(); + + } + /// + /// 타이머 재시작 + /// + public void ToIntorTimerStop() + { + LastAccessTime = DateTime.Now; + ToIntoroTimer.Stop(); + } + private int GetMaxItemPageNo() + { + int result = 0; + try + { + result = OrderItems.Count / (OrderColumnCount * OrderRowCount); + if ((OrderItems.Count % (OrderColumnCount * OrderRowCount)).Equals(0)) result -= 1; + + } + catch + { + result = 0; + } + return result; + } + private int GetItemPageCount() + { + int result = 0; + try + { + result = OrderItems.Count / (OrderColumnCount * OrderRowCount); + if (!(OrderItems.Count % (OrderColumnCount * OrderRowCount)).Equals(0)) result += 1; + + } + catch + { + result = 0; + } + return result; + } + #endregion Etc + + #endregion Methods + + #region [ Event Handlers ] + private void ToExecuteNothingHandler(object obj) + { + + } + private void VmPBViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + LastAccessTime = DateTime.Now; + try + { + switch (e.PropertyName) + { + case "DefaultPage": + if (DefaultPage.Equals(PBPageType.FirstSelect) + || DefaultPage.Equals(PBPageType.Items)) + { + GmbHappyInfoEnable = !MemberLoginOK; + } + else + { + GmbHappyInfoEnable = false; + } + switch (DefaultPage) + { + case PBPageType.Intro: + ToIntorTimerStop(); + OrderHistoryView = false; + MemberLoginOK = false; + HappyPointReturn = null; + FindOrderHistoryItems = null; + SetIntro(); + DeledteAllBasket(); + break; + case PBPageType.FirstSelect: + ToIntorTimerStart(); + break; + case PBPageType.Items: + GmbOrderEnable = false; + SetContents(); + SetOrderHistoryItems(); + ToIntorTimerStart(); + break; + case PBPageType.Sensing: + GmbAIscannerEnable = false; + AIScanCount = 0; + ToIntorTimerStart(); + break; + } + break; + case "MemberLoginOK": + GmbHappyPointEnable = !MemberLoginOK; + GmbHappyInfoEnable = !MemberLoginOK; + break; + case "GmbHappyInfoEnable": + if (GmbHappyInfoEnable) + { + GmbHappyInfoEnableTime = DateTime.Now; + } + break; + case "DefaultCategory1Item": + if (DefaultCategory1Item > -1) + { + if (Category2Data == null) + { + SetCategory2(); + } + else + { + if (!Category1Data[DefaultCategory1Item].Category1.Equals(Category2Data.FirstOrDefault().Category1)) + { + SetCategory2(); + } + } + } + OrderItemPageNo = 0; + break; + case "DefaultCategory2Item": + if (DefaultCategory1Item > -1) + { + SetItemList(); + } + OrderItemPageNo = 0; + ToIntorTimerStart(); + break; + case "DefaultCategory1PageNo": + case "DefaultCategory2PageNo": + break; + case "ShowLanguageType": + CommonValue.CommonLanguageType = ShowLanguageType; + switch (ShowLanguageType) + { + case SupportLanguageType.ko: + GmbLanguageimage=ResourceManager.GetNximagePathAdd("btn_language_kor.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.en: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_eng.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.ja: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_jap.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.zh: + GmbLanguageimage = ResourceManager.GetNximagePathAdd("btn_language_chi.png", CommonValue.PBdesignImagesPath); + break; + } + break; + case "OrderItems": + PageStatusColumnCount = GetItemPageCount(); + SetPageNumber(); + break; + case "OrderItemPageNo": + Page2LeftEnable = !OrderItemPageNo.Equals(0); + Page2RightEnable = !OrderItemPageNo.Equals(GetMaxItemPageNo()); + break; + case "MiniBasketData": + SetBasketSum(); + if (MiniBasketData is ObservableCollection miniBasketItems + && miniBasketItems.Count > 0) + { + OrderDetailEnable = true; + GotoPaymentEnable = true; + MiniBasketDeleteAllEnable = true; + OrderNoneDataGridVisibility = Visibility.Hidden; + OrderExistDataGridVisibility = Visibility.Visible; + foreach (var aBasketItem in miniBasketItems ) + { + aBasketItem.PropertyChanged += ABasketItem_PropertyChanged; + } + } + else + { + OrderDetailEnable = false; + GotoPaymentEnable = false; + MiniBasketDeleteAllEnable = false; + OrderNoneDataGridVisibility = Visibility.Visible; + OrderExistDataGridVisibility = Visibility.Hidden; + } + break; + case "FindOrderHistoryItems": + SetOrderHistoryItems(); + break; + case "OrderHistoryItems": + //OrderHistoryItemsEnable = OrderHistoryItems != null && OrderHistoryItems.Count > 0; + OrderHistoryItemsEnable = MemberLoginOK; + GmbHappyPointEnable = !MemberLoginOK; + GmbHappyInfoEnable = !MemberLoginOK; + break; + case "ReadBarCode": + ProcessBardcord(); + break; + default: + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmPBViewModel_PropertyChanged()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + } + + + + #region Intro Click + private void RollMediaCommandHandler(object _param) + { + try + { + if (_param is M_MediaRollItem selectItem) + { + NeedIntailizeItems = true; + PBPageType targetPage = PBPageType.Intro; + switch (selectItem.LinkType) + { + case IntroLinkType.Page: + DefaultLinkValue = string.Empty; + switch (selectItem.LinkParameter) + { + case "IntroPage": + targetPage = PBPageType.Intro; + break; + case "ItemPage": + targetPage = PBPageType.Items; + break; + case "SensingPage": + targetPage = PBPageType.Sensing; + break; + case "FirstSelect": + targetPage = PBPageType.FirstSelect; + break; + } + break; + case IntroLinkType.Category: + DefaultLinkValue = selectItem.LinkParameter; + targetPage = PBPageType.Items; + break; + case IntroLinkType.ItemCode: + DefaultLinkValue = selectItem.LinkParameter; + targetPage = PBPageType.Items; + break; + default: + targetPage = PBPageType.FirstSelect; + break; + } + ShowLanguageType = SupportLanguageType.ko; + #region 인트로에서 벗어 날때 해피포인트 맴버 인증 (사용 않음) + //if (!targetPage.Equals(PBPageType.Intro)) + //{ + // var popupReturn = popupManager.OpenHappyPointCertify(); + // if (popupReturn is M_PopupReturn) + // { + // MemberLoginOK = popupReturn.OKAnswer; + // if (popupReturn.PopupArgs is M_HappyPointReturn _HappyPointReturn) + // { + // HappyPointReturn = _HappyPointReturn; + // GmbMemberName = HappyPointReturn.MemberName; + // } + // if (!popupReturn.ReturnLanguage.Equals(ShowLanguageType)) + // { + // ShowLanguageType = popupReturn.ReturnLanguage; + // } + // if (popupReturn.TimeOut) targetPage = PBPageType.Intro; + // } + //} + #endregion + WaitWindowFrom.ShowWaitWindow(); + DefaultPage = targetPage; + if (!targetPage.Equals(PBPageType.Intro)) IntroItems = null; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "RollMediaCommandHandler()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + WaitWindowFrom.CloseWaitWindow(); + } + } + #endregion + + #region GMB Left Click + private void GotoFirstCommandHandler(object obj) + { + DefaultPage = PBPageType.FirstSelect; + } + + private void ReaderCheckCommandHandler(object obj) + { + try + { + ReaderCheckClickCount += 1; + if (ReaderCheckClickCount.Equals(10)) + { + ToIntorTimerStop(); + try + { + var popupReturn = popupManager.OpenNumPadPopup(ShowLanguageType + , Languages.GetMessages("InputPassword") + , false,true,5,5); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + DefaultPage = PBPageType.Intro; + return; + } + else + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is string getPassword + && getPassword.Equals(DateTime.Now.ToString("ddMM") + + ((int.Parse(DateTime.Now.ToString("dd")) + * int.Parse(DateTime.Now.ToString("MM"))) % 10).ToString())) + { + GmbReaderCheckOpen = true; + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ReaderCheckCommandHandler()", "OpenNumPadPopup Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + ReaderCheckClickCount = 0; + ToIntorTimerStart(); + } + + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ReaderCheckCommandHandler()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + } + + #endregion + + #region GMB Right Click + private void HappyPointCommandHandler(object obj) + { + if (HappyPointReturn is M_HappyPointReturn) + { + GmbHappyPointEnable = false; + return; + } + ToIntorTimerStop(); + try + { + OrderHistoryView = false; + FindOrderHistoryItems = null; + var popupReturn = popupManager.OpenHappyPointCertify(false, true, ParentPage.PBWindow); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + DefaultPage = PBPageType.Intro; + return; + } + else + { + MemberLoginOK = popupReturn.OKAnswer; + if (popupReturn.PopupArgs is M_HappyPointReturn _HappyPointReturn) + { + HappyPointReturn = _HappyPointReturn; + GmbMemberName = HappyPointReturn.IsCardNoUsed ? HappyPointReturn.MemberName : "고객"; + if (HappyPointReturn.OrderHistoryItems is List orderHistoryItems + && orderHistoryItems.Count > 0) + { + FindOrderHistoryItems = orderHistoryItems; + } + else + { + FindOrderHistoryItems = null; + } + if (DefaultPage.Equals(PBPageType.Items)) OrderHistoryView = OrderHistoryItemsEnable; + + } + else + { + HappyPointReturn = null; + } + if (!popupReturn.ReturnLanguage.Equals(ShowLanguageType)) + { + ShowLanguageType = popupReturn.ReturnLanguage; + } + + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "HappyPointCommandHandler()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + ToIntorTimerStart(); + } + } + private void CallEmployeeCommandHandler(object obj) + { + ToIntorTimerStop(); + try + { + var popupReturn = popupManager.OpenCallEmployee(); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + DefaultPage = PBPageType.Intro; + return; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CallEmployeeCommandHandler()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + ToIntorTimerStart(); + } + } + private void LanguageCommandHandler(object obj) + { + ToIntorTimerStop(); + try + { + var popupReturn = popupManager.OpenLanguageSelector(ShowLanguageType); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.TimeOut) + { + DefaultPage = PBPageType.Intro; + return; + } + else + { + ShowLanguageType = popupReturn.ReturnLanguage; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "LanguageCommandHandler()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + ToIntorTimerStart(); + } + } + private void GotoIntroPageCommadHandler(object obj) + { + ToIntorTimerStop(); + try + { + if (MiniBasketData != null && MiniBasketData.Count > 0) + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.Cancel, + DisplayLanguage = ShowLanguageType, + Message = Languages.GetMessages("LBL0085"), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + DefaultPage = PBPageType.Intro; + } + } + } + else + { + DefaultPage = PBPageType.Intro; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GotoIntroPageCommadHandler()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + ToIntorTimerStart(); + } + } + #endregion + + #region GMB Center Click + private void GmbOrderCommandHandler(object obj) + { + DefaultPage = PBPageType.Items; + } + private void GmbAIscannerCommandHandler(object obj) + { + DefaultPage = PBPageType.Sensing; + if (this.OptionValue810 == "0" + && this.OptionValue811 == "1") + { + SensingSubPage = PBSensingSubPageType.BarcordPage; + } + } + #endregion + + #region Contents + private void RescanCommandHandler(object obj) + { + DeleteScanItem(); + DefaultPage = PBPageType.Sensing; + } + private void GotoBarcodeCommandHandler(object obj) + { + if (DefaultPage.Equals(PBPageType.Sensing)) + { + SensingSubPage = PBSensingSubPageType.BarcordPage; + } + } + + private void Page2LeftCommandHandler(object obj) + { + OrderItemPageNo -= 1; + } + + private void Page2RightCommandHandler(object obj) + { + OrderItemPageNo += 1; + } + private void ItemCommandCommandHandler(object _param) + { + if (_param is AnimationButton targetButton && targetButton.DataParameter is M_ItemData _ItemData) + { + //AddItem2Basket(_ItemData); + } + } + + + private void Category2CommandHandler(object _param) + { + ToIntorTimerStart(); + if (_param is AnimationButton targetButton && targetButton.DataParameter is M_ItemData _ItemData) + { + DefaultCategory2Item = Category2Data.IndexOf(_ItemData); + } + + } + + private void Category1CommandHandler(object _param) + { + ToIntorTimerStart(); + if (_param is AnimationButton targetButton && targetButton.DataParameter is M_ItemData _ItemData) + { + DefaultCategory1Item = Category1Data.IndexOf(_ItemData); + } + } + private void PageSelectCommandHandler(object _param) + { + if (_param is AnimationButton targetButton && targetButton.DataParameter is M_ItemData _ItemData) + { + OrderItemPageNo = ItemPageStatus.IndexOf(_ItemData); + } + } + private void OrderHistoryCommandHandler(object obj) + { + OrderHistoryView = true; + } + + private void OrderHistoryCloseCommandHandler(object obj) + { + OrderHistoryView = false; + } + + #endregion + + #region MiniBasket + private void ABasketItem_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (sender is M_BasketItem basketItem) + { + using (var posDataService = new PosDataService()) + { + posDataService.UpdatedItem(basketItem); + } + SetBasketSum(); + } + + + } + + private void MiniBasketDeleteAllCommandHandler(object _param) + { + + ToIntorTimerStop(); + try + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.ListCancel, + DisplayLanguage = ShowLanguageType, + Message = Languages.GetMessages("LBL0099"), + CencalButtonText = Languages.GetMessages("BTN0021"), + OkButtonText = Languages.GetMessages("BTN0005"), + IsCencalButton = true, + TimeoutSeconds = 10, + }; + var popupReturn = popupManager.OpenMiniPopup(miniPopup); + if (popupReturn is M_PopupReturn && popupReturn.OKAnswer) + { + DeledteAllBasket(); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "MiniBasketDeleteAllCommandHandler()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + ToIntorTimerStart(); + } + + } + + private void EmptyBasketDropCommandHandler(object _param) + { + if (_param is M_ItemDropEventArgs dropedItem) + { + if (dropedItem.SourceObject is AnimationButton sourceButton && sourceButton.DataParameter is M_ItemData _ItemData) + { + AddItem2Basket(_ItemData); + } + } + } + + private void BasketItemDeleteCommandHandler(object _param) + { + if (_param is M_BasketItem deleteItem) + { + DeleteBasketItem(deleteItem); + } + } + + private void OrderDetailCommandHandler(object _param) + { + OpenPBPaymentPage = PBPaymentPageType.DetailBasket; + } + + private void GotoPaymentCommandHandler(object _param) + { + if (MiniBasketData is ObservableCollection + && MiniBasketData.Count > 0) + { + OpenPBPaymentPage = PBPaymentPageType.PointsDisCounts; + } + else + { + ToIntorTimerStop(); + var topMessage = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "선택한 제품이 없습니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en선택한 제품이 없습니다." + }, + }; + var popupReturn = PopupMessageBox.ShowMessageBox(ShowLanguageType + , topMessage + , null + , MessageBoxButton.OK + , OpenCloseAnimationType.FullSizeUp + , OpenCloseAnimationType.FullSizeDown + , 0.5, 0.2, 5); + ToIntorTimerStart(); + } + } + #endregion + + private void ToIntoroTimer_Tick(object sender, EventArgs e) + { + if (GmbHappyInfoEnable) + { + if (GmbHappyInfoEnableTime.AddSeconds(3) <= DateTime.Now) + { + GmbHappyInfoEnableTime = DateTime.Now; + GmbHappyInfoEnable = false; + } + + } + if (DefaultPage.Equals(PBPageType.Intro)) + { + LastAccessTime = DateTime.Now; + } + else if ((DateTime.Now - LastAccessTime) > TimeSpan.FromSeconds(CommonValue.TimeOutSeconds)) + { + ReaderCheckClickCount = 0; +#if !TESTMODE + if (IsTimeoutPopup) + { + ToIntorTimerStop(); + var popupReturn = PopupMessageBox.ShowMessageBox(ShowLanguageType + , Languages.GetMessages("LBL0067") + , Languages.GetMessages("LBL0021") + , MessageBoxButton.YesNo + , OpenCloseAnimationType.FullSizeUp + , OpenCloseAnimationType.FullSizeDown + , 0.5, 0.2, 10); + if (popupReturn.Equals(MessageBoxResult.Yes)) + { + ToIntorTimerStart(); + } + else + { + + if (!DefaultPage.Equals(PBPageType.Intro)) DefaultPage = PBPageType.Intro; + } + } +#else + LastAccessTime = DateTime.Now; + Console.WriteLine(">>> PBViewModel.DefaultPage=PBPageType.Intro"); +#endif + } + } + #endregion Event Handlers + } + +} diff --git a/Kiosk/PB/SPC.Kiosk.PB.ViewModel/Properties/AssemblyInfo.cs b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2e761ae --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.PB.ViewModel")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Zin")] +[assembly: AssemblyProduct("SPC.Kiosk.PB")] +[assembly: AssemblyCopyright("Copyright © Zin. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("7d7c6385-b4cf-4e81-a79c-3b6cde8c1eac")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/PB/SPC.Kiosk.PB.ViewModel/SPC.Kiosk.PB.ViewModel.csproj b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/SPC.Kiosk.PB.ViewModel.csproj new file mode 100644 index 0000000..e78404a --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB.ViewModel/SPC.Kiosk.PB.ViewModel.csproj @@ -0,0 +1,92 @@ + + + + + Debug + AnyCPU + {BCA39AE9-B2EB-495E-BE62-AB95B0325CFF} + Library + Properties + SPC.Kiosk.PB.ViewModel + SPC.Kiosk.PB.ViewModel + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + TRACE;DEBUG;TESTMODE + prompt + 4 + x86 + + + pdbonly + true + ..\..\..\..\BIN\ + TRACE + prompt + 4 + x86 + + + + + + + + + + + + + + + + + + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {BA2D06E0-74C0-4785-B39F-D1EAAC13B73D} + SPC.Kiosk.Common + + + {fee44681-7f0e-469a-a833-dc324eb6d01a} + SPC.Kiosk.DataHelper + + + {36fe9011-b9bc-4348-b9c1-1c063dbfa926} + SPC.Kiosk.Payments + + + {be7fc15c-325b-4ad4-8ea0-a8244193e431} + SPC.Kiosk.Popup.Model + + + {9ef1fec9-5f0a-4a4e-8723-e93f30798fd2} + SPC.Kiosk.Popup.ViewModel + + + {7c64409c-24e1-4d9e-a686-b13061f1c61b} + SPC.Kiosk.Popup + + + {90ebd618-0409-458d-9829-a012223e8671} + SPC.Kiosk.PB.Model + + + + \ No newline at end of file diff --git a/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml new file mode 100644 index 0000000..775e754 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml.cs new file mode 100644 index 0000000..963050a --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItem.xaml.cs @@ -0,0 +1,251 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +using SPC.Kiosk.Popup; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.PB +{ + /// + /// DetailBasketItem.xaml에 대한 상호 작용 논리 + /// + public partial class DetailBasketItem : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty ItemDataProperty = + DependencyProperty.Register(nameof(ItemData), typeof(M_BasketItem), typeof(DetailBasketItem), new PropertyMetadata(null, new PropertyChangedCallback(OnItemDataPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(DetailBasketItem), new PropertyMetadata(SupportLanguageType.ko));//, new PropertyChangedCallback(OnDisplayLanguageProperyChanged) + + + /// + /// ItemData + /// + public M_BasketItem ItemData + { + get { return (M_BasketItem)GetValue(ItemDataProperty); } + set { SetValue(ItemDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(DetailBasketItem)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + public string BackImage { get; set;} + public string DeleteImageData { get; set; } + public string DeleteDownImageData { get; set; } + public string OptionImageData { get; set; } + public List OptionButtonLabel { get; set; } + private PopupManager popupManager = PopupManager.GetInstance; + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public DetailBasketItem() + { + BackImage=ResourceManager.GetNximagePathAdd("basket_list_bg.png", CommonValue.PBdesignImagesPath); + DeleteImageData = ResourceManager.GetNximagePathAdd("btn_delete_2.png", CommonValue.PBdesignImagesPath); + DeleteDownImageData = ResourceManager.GetNximagePathAdd("btn_delete_2_p.png", CommonValue.PBdesignImagesPath); + OptionImageData = ResourceManager.GetNximagePathAdd("btn_option.png", CommonValue.PBdesignImagesPath); + OptionButtonLabel = new List + { + new M_Language + { + Type =SupportLanguageType.ko, + LanguageData = "옵션변경", + }, + }; + InitializeComponent(); + } + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(DetailBasketItem.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + private void DeleteAnimationRun() + { + var deteleAnimation = Animations.GetShutterAnimation(this.MainGrid, ShutterAnchor.Bottom, this.MainGrid.ActualHeight, 0, 1, 0.5, 0.5); + deteleAnimation.Completed += DeteleAnimation_Completed; + deteleAnimation.Begin(); + } + + #endregion Methods + + #region [ Event Handlers ] + private void DeteleAnimation_Completed(object sender, EventArgs e) + { + RaiseMouseClickedEvent(this.ItemData); + } + private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue is M_BasketItem newValue) + { + var target = d as DetailBasketItem; + if (e.OldValue is M_BasketItem oldValue) + { + oldValue.PropertyChanged -= target.NewValue_PropertyChanged; + } + target.ItemPrice.Text = (newValue.Count * newValue.Price).ToString("#,##0"); + target.ItemCountCombo.LeftButtonData = new M_AnimationButton + { + NormalBrush = newValue.MinusNormalBrush, + DownBrush = newValue.MinusDownBrush, + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + target.ItemCountCombo.RightButtonData = new M_AnimationButton + { + NormalBrush = newValue.PlusNormalBrush, + DownBrush = newValue.PlusDownBrush, + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + + if (newValue.Option is List options + && options.Count > 0) + { + target.OptionChange.Visibility = Visibility.Visible; + } + else + { + target.OptionChange.Visibility = Visibility.Collapsed; + } + newValue.PropertyChanged += target.NewValue_PropertyChanged; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnItemDataPropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void NewValue_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (sender is M_BasketItem newValue) + { + switch (e.PropertyName) + { + case "Count": + case "Price": + this.ItemPrice.Text = (newValue.Count * newValue.Price).ToString("#,##0"); + break; + } + } + } + + private void DeleteItem_MouseClicked(object sender, RoutedEventArgs e) + { + //RaiseMouseClickedEvent(this.ItemData); + DeleteAnimationRun(); + } + private void OptionChange_MouseClicked(object sender, RoutedEventArgs e) + { + try + { + if (this.ItemData.Option is List + && this.ItemData.Option.Count > 0) + { + var newOptions = new List(); + foreach (var aOptionGroup in this.ItemData.Option) + { + newOptions.Add(aOptionGroup.Clone()); + } + var popupReturn = popupManager.OpenOptionSelect(this.ItemData.ItemName + , newOptions + , this.ItemData.ItemImage + , this.ItemData.Count + , this.ItemData.BasePrice - this.ItemData.CampaignPrice + , true); + if (popupReturn is M_PopupReturn) + { + if (popupReturn.OKAnswer) + { + if (popupReturn.PopupArgs is M_OptionReturn getOption) + { + this.ItemData.Option = getOption.Options; + this.ItemData.Count = getOption.ItemCount; + this.ItemData.Price = getOption.PriceWithOption; + this.ItemData.AllOptionLabel = CommonFunction.GetOptionLabel(getOption.Options); + } + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OptionChange_MouseClicked()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + #endregion Event Handlers + + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml new file mode 100644 index 0000000..639e566 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml.cs new file mode 100644 index 0000000..77fb228 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DetailBasketItems.xaml.cs @@ -0,0 +1,370 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +namespace SPC.Kiosk.PB +{ + /// + /// DetailBasketItems.xaml에 대한 상호 작용 논리 + /// + public partial class DetailBasketItems : UserControl + { + #region [ Members ] + /// + /// ListItems + /// + public static readonly DependencyProperty ListItemsProperty = + DependencyProperty.Register(nameof(ListItems), typeof(ObservableCollection), typeof(DetailBasketItems), new PropertyMetadata(null, new PropertyChangedCallback(OnListItemsPropertyChanged))); + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(DetailBasketItems), new UIPropertyMetadata(null)); + /// + /// Horizontal Scroll Offset + /// + public static readonly DependencyProperty HorizontalOffsetProperty = + DependencyProperty.Register(nameof(HorizontalOffset), typeof(double), typeof(DetailBasketItems), new PropertyMetadata(0d, new PropertyChangedCallback(OnHorizontalOffsetPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(DetailBasketItems), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Default PageNo + /// + public static readonly DependencyProperty DefaultPageNoProperty = + DependencyProperty.Register(nameof(DefaultPageNo), typeof(int), typeof(DetailBasketItems), new PropertyMetadata(0, new PropertyChangedCallback(OnDefaultPageNoPropertyChanged))); + /// + /// Page Count + /// + public static readonly DependencyProperty PageCountProperty = + DependencyProperty.Register(nameof(PageCount), typeof(int), typeof(DetailBasketItems), new PropertyMetadata(0)); + + private int TargetPageNo = 0; + private double mouseDownXposition = -1; + private bool MoseDown = false; + /// + /// ListItems + /// + public ObservableCollection ListItems + { + get { return (ObservableCollection)GetValue(ListItemsProperty); } + set { SetValue(ListItemsProperty, value); } + } + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// HorizontalOffset + /// + public double HorizontalOffset + { + get { return (double)GetValue(HorizontalOffsetProperty); } + set { SetValue(HorizontalOffsetProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// DefaultPageNo + /// + public int DefaultPageNo + { + get { return (int)GetValue(DefaultPageNoProperty); } + set { SetValue(DefaultPageNoProperty, value); } + } + /// + /// Page Count + /// + public int PageCount + { + get { return (int)GetValue(PageCountProperty); } + set { SetValue(PageCountProperty, value); } + } + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(DetailBasketItems)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public DetailBasketItems() + { + InitializeComponent(); + this.Unloaded += DetailBasketItems_Unloaded; + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + //Command Excute + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(DetailBasketItems.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + private void FlipItem(FrameworkElement _target) + { + try + { + var targetAnimation = new Storyboard(); + var getAnimations = Animations.GetMoveAnimation(_target, OpenCloseAnimationType.GotoDown, _target.ActualHeight *-1, 0, 0.5, 1, 0.5); + foreach (var aAnimation in getAnimations) targetAnimation.Children.Add(aAnimation); + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "FlipItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void ItemsButtonCreate(object _listItems) + { + try + { + this.GridEventsRemove(); + this.MainStack.Children.Clear(); + if (_listItems is ObservableCollection lstItems && lstItems.Count > 0) + { + foreach (var aItem in lstItems) + { + var newItemObject = new DetailBasketItem(); + newItemObject.ItemData = aItem; + newItemObject.DisplayLanguage = this.DisplayLanguage; + newItemObject.Name = string.Format("ItemStack{0}", aItem.Index); + this.ReregisterName(newItemObject.Name, newItemObject); + this.MainStack.Children.Add(newItemObject); + } + this.UpdateLayout(); + CommonFunction.ReregisterName(this.Parent as FrameworkElement, this.Name, this); + + this.GridEventsSet(); + this.DefaultPageNo = 0; + this.PageCount = lstItems.Count / 5 + (lstItems.Count % 5 > 0 ? 1 : 0); + } + else + { + this.PageCount = 0; + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ItemsButtonCreate()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Events Set + /// + public void GridEventsSet() + { + try + { + MainGrid.PreviewMouseDown += Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp += MainGrid_PreviewMouseUp; + foreach (var aItem in this.MainStack.Children) + { + if (aItem is DetailBasketItem ItemContent) + { + ItemContent.MouseClicked += ItemContent_MouseClicked; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsSet()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + + /// + /// Events Remove + /// + public void GridEventsRemove() + { + try + { + MainGrid.PreviewMouseDown -= Grid_PreviewMouseDown; + MainGrid.PreviewMouseMove -= MainGrid_PreviewMouseUp; + foreach (var aItem in this.MainStack.Children) + { + if (aItem is DetailBasketItem ItemContent) + { + ItemContent.MouseClicked -= ItemContent_MouseClicked; + } + } + this.MainStack.Children.Clear(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsRemove()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + public void ChangePageTo(int _toPageNo) + { + try + { + if (_toPageNo > -1 && _toPageNo < PageCount) + { + var fromOffset = 0d; + var toOffset = 0d; + var totalTime = 0.3; + fromOffset = this.MainScroll.HorizontalOffset; + toOffset = this.Width * _toPageNo; + var scrollAnimation = Animations.GetScrollAnimation(this, Orientation.Horizontal, fromOffset, toOffset, totalTime); + if (scrollAnimation != null) + { + scrollAnimation.Completed += ScrollAnimation_Completed; + scrollAnimation.Begin(); + } + TargetPageNo = _toPageNo; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangePageTo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void ScrollAnimation_Completed(object sender, EventArgs e) + { + var targetGrid = this.FindName(string.Format("PageGrid{0}", TargetPageNo)); + if (targetGrid is Grid selectGrid) + { + DefaultPageNo = TargetPageNo; + selectGrid.IsEnabled = true; + } + } + + private void DetailBasketItems_Unloaded(object sender, RoutedEventArgs e) + { + this.MainStack.Children.Clear(); + this.ListItems = null; + } + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue is SupportLanguageType newValue && !e.NewValue.Equals(e.OldValue)) + { + var target = d as DetailBasketItems; + foreach (var aItem in target.MainStack.Children) + { + if (aItem is DetailBasketItem ItemContent) + { + ItemContent.DisplayLanguage = newValue; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnDisplayLanguageProperyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private static void OnHorizontalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as DetailBasketItems; + target.MainScroll.ScrollToHorizontalOffset((double)e.NewValue); + } + } + private static void OnDefaultPageNoPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + + var target = d as DetailBasketItems; + target.ChangePageTo((int)e.NewValue); + } + } + private static void OnListItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as DetailBasketItems; + target.ItemsButtonCreate(e.NewValue); + } + + + private void Grid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownXposition = e.GetPosition(sender as Grid).X; + MoseDown = true; + } + private void MainGrid_PreviewMouseUp(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseXposition = e.GetPosition(requstGrid).X; + if (!mouseDownXposition.Equals(-1) && (mouseDownXposition - curMouseXposition) > 50) + { + if (this.DefaultPageNo < this.PageCount - 1) this.DefaultPageNo++; + } + else if (!mouseDownXposition.Equals(-1) && (mouseDownXposition - curMouseXposition) < -50) + { + if (this.DefaultPageNo > 0) this.DefaultPageNo--; + } + mouseDownXposition = curMouseXposition; + MoseDown = false; + } + + private void ItemContent_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(e.OriginalSource); + } + + #endregion Event Handlers + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml new file mode 100644 index 0000000..a30cf4b --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml.cs new file mode 100644 index 0000000..68fb0de --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValue.xaml.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; + +namespace SPC.Kiosk.PB +{ + /// + /// DiscountAndValue.xaml에 대한 상호 작용 논리 + /// + public partial class DiscountAndValue : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty ItemDataProperty = + DependencyProperty.Register(nameof(ItemData), typeof(M_DiscountAndAddValues), typeof(DiscountAndValue), new PropertyMetadata(null, new PropertyChangedCallback(OnItemDataPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(DiscountAndValue), new PropertyMetadata(SupportLanguageType.ko)); + + + /// + /// ItemData + /// + public M_DiscountAndAddValues ItemData + { + get { return (M_DiscountAndAddValues)GetValue(ItemDataProperty); } + set { SetValue(ItemDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public DiscountAndValue() + { + //this.ItemName.Text = string.Empty; + InitializeComponent(); + } + #endregion Ctor & Etc + + #region [ Methods ] + #endregion Methods + + #region [ Event Handlers ] + private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue is M_DiscountAndAddValues newValue) + { + var target = d as DiscountAndValue; + switch (newValue.DiscountType) + { + case PaymentsDiscountAndAddType.BonusGift: + target.ItemPrice.Foreground = new SolidColorBrush(Colors.Black); + target.ItemCount.Text = newValue.AddCount.ToString("#0"); + target.ItemPrice.Text = (newValue.AddCount * newValue.AddValue).ToString("#,##0"); + break; + case PaymentsDiscountAndAddType.None: + default: + target.ItemPrice.Foreground = new SolidColorBrush(Color.FromRgb(0xFE, 0x3E, 0x3E)); + target.ItemCount.Text = string.Empty; + target.ItemPrice.Text = (newValue.DiscountValue * -1).ToString("#,##0"); + break; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnItemDataPropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + #endregion Event Handlers + + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml new file mode 100644 index 0000000..ce8f812 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml.cs new file mode 100644 index 0000000..3eddf65 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/DiscountAndValues.xaml.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +namespace SPC.Kiosk.PB +{ + /// + /// DiscountAndValues.xaml에 대한 상호 작용 논리 + /// + public partial class DiscountAndValues : UserControl + { + #region [ Members ] + /// + /// ListItems + /// + public static readonly DependencyProperty ListItemsProperty = + DependencyProperty.Register(nameof(ListItems), typeof(ObservableCollection), typeof(DiscountAndValues), new PropertyMetadata(null, new PropertyChangedCallback(OnListItemsPropertyChanged))); + /// + /// Vertical Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(DiscountAndValues), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(DiscountAndValues), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + + + private double mouseDownYposition = -1; + private bool MoseDown = false; + /// + /// ListItems + /// + public ObservableCollection ListItems + { + get { return (ObservableCollection)GetValue(ListItemsProperty); } + set { SetValue(ListItemsProperty, value); } + } + + /// + /// VerticalOffset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public DiscountAndValues() + { + InitializeComponent(); + this.Unloaded += DiscountAndValues_Unloaded; + } + + #endregion Ctor & Etc + + #region [ Methods ] + private void FlipItem(FrameworkElement _target) + { + try + { + var targetAnimation = new Storyboard(); + var getAnimations = Animations.GetMoveAnimation(_target, OpenCloseAnimationType.GotoDown, _target.ActualHeight *-1, 0, 0.5, 1, 0.5); + foreach (var aAnimation in getAnimations) targetAnimation.Children.Add(aAnimation); + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "FlipItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void ItemsButtonCreate(object _listItems) + { + try + { + this.GridEventsRemove(); + this.MainStack.Children.Clear(); + if (_listItems is ObservableCollection lstItems && lstItems.Count > 0) + { + var index = 0; + foreach (var aItem in lstItems) + { + var newItemObject = new DiscountAndValue(); + newItemObject.ItemData = aItem; + newItemObject.DisplayLanguage = this.DisplayLanguage; + newItemObject.Name = string.Format("ItemStack{0}", index); + this.ReregisterName(newItemObject.Name, newItemObject); + this.MainStack.Children.Add(newItemObject); + index++; + } + this.UpdateLayout(); + CommonFunction.ReregisterName(this.Parent as FrameworkElement, this.Name, this); + + this.GridEventsSet(); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ItemsButtonCreate()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Events Set + /// + public void GridEventsSet() + { + try + { + MainGrid.PreviewMouseDown += Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp += Grid_PreviewMouseUp; + MainGrid.PreviewMouseMove += MainGrid_PreviewMouseMove; + MainGrid.MouseLeave += MainGrid_MouseLeave; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsSet()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + + /// + /// Events Remove + /// + public void GridEventsRemove() + { + try + { + MainGrid.PreviewMouseDown -= Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp -= Grid_PreviewMouseUp; + MainGrid.PreviewMouseMove -= MainGrid_PreviewMouseMove; + MainGrid.MouseLeave -= MainGrid_MouseLeave; + this.MainStack.Children.Clear(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsRemove()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void DiscountAndValues_Unloaded(object sender, RoutedEventArgs e) + { + this.MainStack.Children.Clear(); + this.ListItems = null; + } + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue is SupportLanguageType newValue && !e.NewValue.Equals(e.OldValue)) + { + var target = d as DiscountAndValues; + foreach (var aItem in target.MainStack.Children) + { + if (aItem is MiniBasketItem ItemContent) + { + ItemContent.DisplayLanguage = newValue; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnDisplayLanguageProperyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as DiscountAndValues; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnListItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as DiscountAndValues; + target.VerticalOffset = target.VerticalOffset + target.ActualHeight; + int oldCount = e.OldValue is ObservableCollection oldValue ? oldValue.Count : 0; + int newCount = e.NewValue is ObservableCollection newValue ? newValue.Count : 0; + target.ItemsButtonCreate(e.NewValue); + //if (newCount > oldCount ) + //{ + // if (target.VerticalOffset > 0) target.VerticalOffset = 0; + // if (newCount.Equals(oldCount + 1)) + // { + // target.FlipItem(target.MainStack.Children[0] as FrameworkElement); + // } + // else + // { + // target.FlipItem(target.MainStack as FrameworkElement); + // } + //} + } + + + private void Grid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownYposition = e.GetPosition(sender as Grid).Y; + MoseDown = true; + } + private void MainGrid_PreviewMouseMove(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseYposition = e.GetPosition(requstGrid).Y; + VerticalOffset = VerticalOffset + (mouseDownYposition - curMouseYposition) * 2; + mouseDownYposition = curMouseYposition; + } + + private void Grid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + MoseDown = false; + } + private void MainGrid_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + #endregion Event Handlers + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml new file mode 100644 index 0000000..b95567a --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml.cs new file mode 100644 index 0000000..1932efc --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItem.xaml.cs @@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; + +namespace SPC.Kiosk.PB +{ + /// + /// MiniBasketItem.xaml에 대한 상호 작용 논리 + /// + public partial class MiniBasketItem : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty ItemDataProperty = + DependencyProperty.Register(nameof(ItemData), typeof(M_BasketItem), typeof(MiniBasketItem), new PropertyMetadata(null, new PropertyChangedCallback(OnItemDataPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(MiniBasketItem), new PropertyMetadata(SupportLanguageType.ko)); + + + /// + /// ItemData + /// + public M_BasketItem ItemData + { + get { return (M_BasketItem)GetValue(ItemDataProperty); } + set { SetValue(ItemDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MiniBasketItem)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + public string BackImage { get; set;} + public string DeleteImageData { get; set; } + public string DeleteDownImageData { get; set; } + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public MiniBasketItem() + { + BackImage=ResourceManager.GetNximagePathAdd("bg_basket_box.png", CommonValue.PBdesignImagesPath); + DeleteImageData = ResourceManager.GetNximagePathAdd("btn_delete_2.png", CommonValue.PBdesignImagesPath); + DeleteDownImageData = ResourceManager.GetNximagePathAdd("btn_delete_2_p.png", CommonValue.PBdesignImagesPath); + InitializeComponent(); + } + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(MiniBasketItem.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + private void DeleteAnimationRun() + { + var deteleAnimation = Animations.GetShutterAnimation(this.MainGrid, ShutterAnchor.Right, this.MainGrid.ActualWidth, 0, 1, 0.5, 0.3); + deteleAnimation.Completed += DeteleAnimation_Completed; + deteleAnimation.Begin(); + } + #endregion Methods + + #region [ Event Handlers ] + private void DeteleAnimation_Completed(object sender, EventArgs e) + { + RaiseMouseClickedEvent(this.ItemData); + } + private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue is M_BasketItem newValue) + { + var target = d as MiniBasketItem; + if (e.OldValue is M_BasketItem oldValue) + { + oldValue.PropertyChanged -= target.NewValue_PropertyChanged; + } + target.ItemPrice.Text = (newValue.Count * newValue.Price).ToString("#,##0"); + target.ItemCountCombo.LeftButtonData = new M_AnimationButton + { + NormalBrush = newValue.MinusNormalBrush, + DownBrush = newValue.MinusDownBrush, + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + target.ItemCountCombo.RightButtonData = new M_AnimationButton + { + NormalBrush = newValue.PlusNormalBrush, + DownBrush = newValue.PlusDownBrush, + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + + newValue.PropertyChanged += target.NewValue_PropertyChanged; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnItemDataPropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void NewValue_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + if (sender is M_BasketItem newValue) + { + switch (e.PropertyName) + { + case "Count": + case "Price": + this.Dispatcher.Invoke((Action)(() => + { + Animations.GetClickAnimation(this.MainGrid, ButtonAnimationType.FlipY, 0.2).Begin(); + ItemPrice.Text = (newValue.Count * newValue.Price).ToString("#,##0"); + })); + break; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "NewValue_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void DeleteItem_MouseClicked(object sender, RoutedEventArgs e) + { + DeleteAnimationRun(); + } + + #endregion Event Handlers + + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml new file mode 100644 index 0000000..a2d9af0 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml.cs new file mode 100644 index 0000000..c168a7d --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/MiniBasketItems.xaml.cs @@ -0,0 +1,317 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +namespace SPC.Kiosk.PB +{ + /// + /// MiniBasketItems.xaml에 대한 상호 작용 논리 + /// + public partial class MiniBasketItems : UserControl + { + #region [ Members ] + /// + /// ListItems + /// + public static readonly DependencyProperty ListItemsProperty = + DependencyProperty.Register(nameof(ListItems), typeof(ObservableCollection), typeof(MiniBasketItems), new PropertyMetadata(null, new PropertyChangedCallback(OnListItemsPropertyChanged))); + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(MiniBasketItems), new UIPropertyMetadata(null)); + /// + /// Vertical Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(MiniBasketItems), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(MiniBasketItems), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + + + private double mouseDownYposition = -1; + private bool MoseDown = false; + /// + /// ListItems + /// + public ObservableCollection ListItems + { + get { return (ObservableCollection)GetValue(ListItemsProperty); } + set { SetValue(ListItemsProperty, value); } + } + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// VerticalOffset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MiniBasketItems)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public MiniBasketItems() + { + InitializeComponent(); + this.Unloaded += MiniBasketItems_Unloaded; + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + //Command Excute + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(MiniBasketItems.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + private void FlipItem(FrameworkElement _target) + { + try + { + var targetAnimation = new Storyboard(); + var getAnimations = Animations.GetMoveAnimation(_target, OpenCloseAnimationType.GotoDown, _target.ActualHeight *-1, 0, 0.5, 1, 0.5); + foreach (var aAnimation in getAnimations) targetAnimation.Children.Add(aAnimation); + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "FlipItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void ItemsButtonCreate(object _listItems) + { + try + { + this.GridEventsRemove(); + this.MainStack.Children.Clear(); + if (_listItems is ObservableCollection lstItems && lstItems.Count > 0) + { + foreach (var aItem in lstItems) + { + var newItemObject = new MiniBasketItem(); + newItemObject.ItemData = aItem; + newItemObject.DisplayLanguage = this.DisplayLanguage; + newItemObject.Name = string.Format("ItemStack{0}", aItem.Index); + this.ReregisterName(newItemObject.Name, newItemObject); + this.MainStack.Children.Add(newItemObject); + } + this.UpdateLayout(); + CommonFunction.ReregisterName(this.Parent as FrameworkElement, this.Name, this); + + this.GridEventsSet(); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ItemsButtonCreate()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// Events Set + /// + public void GridEventsSet() + { + try + { + MainGrid.PreviewMouseDown += Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp += Grid_PreviewMouseUp; + MainGrid.PreviewMouseMove += MainGrid_PreviewMouseMove; + MainGrid.MouseLeave += MainGrid_MouseLeave; + foreach (var aItem in this.MainStack.Children) + { + if (aItem is MiniBasketItem ItemContent) + { + ItemContent.MouseClicked += ItemContent_MouseClicked; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsSet()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + + /// + /// Events Remove + /// + public void GridEventsRemove() + { + try + { + MainGrid.PreviewMouseDown -= Grid_PreviewMouseDown; + MainGrid.PreviewMouseUp -= Grid_PreviewMouseUp; + MainGrid.PreviewMouseMove -= MainGrid_PreviewMouseMove; + MainGrid.MouseLeave -= MainGrid_MouseLeave; + foreach (var aItem in this.MainStack.Children) + { + if (aItem is MiniBasketItem ItemContent) + { + ItemContent.MouseClicked -= ItemContent_MouseClicked; + } + } + this.MainStack.Children.Clear(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GridEventsRemove()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void MiniBasketItems_Unloaded(object sender, RoutedEventArgs e) + { + this.MainStack.Children.Clear(); + this.ListItems = null; + } + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + try + { + if (e.NewValue is SupportLanguageType newValue && !e.NewValue.Equals(e.OldValue)) + { + var target = d as MiniBasketItems; + foreach (var aItem in target.MainStack.Children) + { + if (aItem is MiniBasketItem ItemContent) + { + ItemContent.DisplayLanguage = newValue; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(d, "OnDisplayLanguageProperyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as MiniBasketItems; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnListItemsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as MiniBasketItems; + int oldCount = e.OldValue is ObservableCollection oldValue ? oldValue.Count : 0; + int newCount = e.NewValue is ObservableCollection newValue ? newValue.Count : 0; + if (target.VerticalOffset > 0) target.VerticalOffset = 0; + target.ItemsButtonCreate(e.NewValue); + if (newCount > oldCount ) + { + if (newCount.Equals(oldCount + 1)) + { + target.FlipItem(target.MainStack.Children[0] as FrameworkElement); + } + else + { + target.FlipItem(target.MainStack as FrameworkElement); + } + } + } + + + private void Grid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownYposition = e.GetPosition(sender as Grid).Y; + MoseDown = true; + } + private void MainGrid_PreviewMouseMove(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseYposition = e.GetPosition(requstGrid).Y; + VerticalOffset = VerticalOffset + (mouseDownYposition - curMouseYposition) * 2; + mouseDownYposition = curMouseYposition; + + } + + private void Grid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + MoseDown = false; + } + private void MainGrid_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + + private void ItemContent_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(e.OriginalSource); + } + + #endregion Event Handlers + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml b/Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml new file mode 100644 index 0000000..5d61c53 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml @@ -0,0 +1,1512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml.cs new file mode 100644 index 0000000..bb58e6d --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/PBPaymentsWindow.xaml.cs @@ -0,0 +1,303 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Windows; +using System.Runtime.InteropServices; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Forms; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Threading.Tasks; +using SPC.Kiosk.Common; +using SPC.Kiosk.PB.Model; +using SPC.Kiosk.PB.ViewModel; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.PB +{ + /// + /// PBPayments.xaml에 대한 상호 작용 논리 + /// + public partial class PBPaymentsWindow : Window + { + #region [ Members ] + private PBPaymentPageType ShowPage { get; set; } + private int ScreenNo { get; set; } = 0; + + private PBPaymentsViewModel ViewModel { get; set; } + private M_HappyPointReturn GetHappyPointReturn { get; set; } + private ObservableCollection GetBasketItems { get; set; } + private double GetPayments { get; set; } + + #endregion Members + + #region [ Ctor/Etc ] + /// + /// Ctor + /// + public PBPaymentsWindow() + { + StartInitialize(); + } + /// + /// Ctor + /// + /// + /// + /// + public PBPaymentsWindow(ObservableCollection _getBasketItems + , M_HappyPointReturn _getHappyPointReturn + , PBPaymentPageType _startPBPaymentPage) + { + GetHappyPointReturn = _getHappyPointReturn; + GetBasketItems = _getBasketItems; + StartInitialize(); + ShowPage = _startPBPaymentPage; + switch (_startPBPaymentPage) + { + //case PBPaymentPageType.PaymentsSelect: + // ContentGrid.Visibility = Visibility.Hidden; + // PaymentSelectGrid.RenderTransform = new TranslateTransform(0, 0); + // break; + case PBPaymentPageType.PointsDisCounts: + //PaymentSelectGrid.Visibility = Visibility.Hidden; + DetailBasketGrid.Visibility = Visibility.Hidden; + PaymentsGrid.Visibility = Visibility.Visible; + PointsDisCountsGrid.Visibility = Visibility.Visible; + CouponUsePointsGrid.Visibility = Visibility.Hidden; + PaymentExcuteGrid.Visibility = Visibility.Hidden; + PointsDisCountsGrid.RenderTransform = new TranslateTransform(0, 0); + CouponUsePointsGrid.RenderTransform = new TranslateTransform(CouponUsePointsGrid.Width, 0); + PaymentExcuteGrid.RenderTransform = new TranslateTransform(PaymentExcuteGrid.Width, 0); + break; + case PBPaymentPageType.CouponUsePoints: + //PaymentSelectGrid.Visibility = Visibility.Hidden; + DetailBasketGrid.Visibility = Visibility.Hidden; + PaymentsGrid.Visibility = Visibility.Visible; + PointsDisCountsGrid.Visibility = Visibility.Hidden; + CouponUsePointsGrid.Visibility = Visibility.Visible; + PaymentExcuteGrid.Visibility = Visibility.Hidden; + PointsDisCountsGrid.RenderTransform = new TranslateTransform(PointsDisCountsGrid.Width, 0); + CouponUsePointsGrid.RenderTransform = new TranslateTransform(0, 0); + PaymentExcuteGrid.RenderTransform = new TranslateTransform(PaymentExcuteGrid.Width, 0); + break; + case PBPaymentPageType.PaymentExcute: + //PaymentSelectGrid.Visibility = Visibility.Hidden; + DetailBasketGrid.Visibility = Visibility.Hidden; + PaymentsGrid.Visibility = Visibility.Visible; + PointsDisCountsGrid.Visibility = Visibility.Hidden; + CouponUsePointsGrid.Visibility = Visibility.Hidden; + PaymentExcuteGrid.Visibility = Visibility.Visible; + PointsDisCountsGrid.RenderTransform = new TranslateTransform(PointsDisCountsGrid.Width, 0); + CouponUsePointsGrid.RenderTransform = new TranslateTransform(CouponUsePointsGrid.Width, 0); + PaymentExcuteGrid.RenderTransform = new TranslateTransform(0, 0); + break; + case PBPaymentPageType.DetailBasket: + //PaymentSelectGrid.Visibility = Visibility.Hidden; + DetailBasketGrid.Visibility = Visibility.Visible; + PaymentsGrid.Visibility = Visibility.Hidden; + PointsDisCountsGrid.RenderTransform = new TranslateTransform(0, 0); + //PaymentSelectGrid.RenderTransform = new TranslateTransform(PaymentSelectGrid.Width, 0); + break; + + } + } + + #endregion + + #region [ Methods ] + private void StartInitialize() + { + InitializeComponent(); + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + this.Loaded += PBPayments_Loaded; + } + private void SetPage() + { + if (!ShowPage.Equals(ViewModel.DefaultPage)) + { + switch (ShowPage) + { + case PBPaymentPageType.DetailBasket: + switch (ViewModel.DefaultPage) + { + case PBPaymentPageType.PointsDisCounts: + PaymentsGrid.Visibility = Visibility.Visible; + PaymentsGrid.RenderTransform = new TranslateTransform(PaymentsGrid.Width, 0); + OpenAndClose(this.DetailBasketGrid, this.PaymentsGrid, OpenCloseAnimationType.GotoLeft); + break; + } + break; + case PBPaymentPageType.PointsDisCounts: + switch (ViewModel.DefaultPage) + { + case PBPaymentPageType.DetailBasket: + OpenAndClose(this.PaymentsGrid, this.DetailBasketGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPaymentPageType.CouponUsePoints: + OpenAndClose(this.PointsDisCountsGrid, this.CouponUsePointsGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPaymentPageType.PaymentExcute: + OpenAndClose(this.PointsDisCountsGrid, this.PaymentExcuteGrid, OpenCloseAnimationType.GotoLeft); + break; + } + break; + case PBPaymentPageType.CouponUsePoints: + switch (ViewModel.DefaultPage) + { + case PBPaymentPageType.PointsDisCounts: + OpenAndClose(this.CouponUsePointsGrid, this.PointsDisCountsGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPaymentPageType.PaymentExcute: + OpenAndClose(this.CouponUsePointsGrid, this.PaymentExcuteGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPaymentPageType.MoreVIewPoints: + OpenAndClose(this.CouponUsePointsGrid, this.MoreViewPointGrid, OpenCloseAnimationType.GotoRight); + break; + } + break; + + case PBPaymentPageType.MoreVIewPoints: + switch (ViewModel.DefaultPage) + { + + case PBPaymentPageType.PointsDisCounts: + OpenAndClose(this.MoreViewPointGrid, this.PointsDisCountsGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPaymentPageType.PaymentExcute: + OpenAndClose(this.MoreViewPointGrid, this.PaymentExcuteGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPaymentPageType.CouponUsePoints: + OpenAndClose(this.MoreViewPointGrid, this.CouponUsePointsGrid, OpenCloseAnimationType.GotoLeft); + break; + } + break; + case PBPaymentPageType.PaymentExcute: + switch (ViewModel.DefaultPage) + { + case PBPaymentPageType.PointsDisCounts: + OpenAndClose(this.PaymentExcuteGrid, this.PointsDisCountsGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPaymentPageType.CouponUsePoints: + OpenAndClose(this.PaymentExcuteGrid, this.CouponUsePointsGrid, OpenCloseAnimationType.GotoRight); + break; + } + break; + + } + } + } + private void OpenBase() + { + this.PaymentsMainGrid.IsEnabled = false; + var OpenAnimations = Animations.GetOpenAnimation(this.TopGrid, OpenCloseAnimationType.FullSizeUp, this.TopGrid.Width, 0.5); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = this.PaymentsMainGrid.Name; + OpenAnimations.Begin(); + } + + } + private void CloseBase() + { + var CloseAnimation = Animations.GetCloseAnimation(this.TopGrid, OpenCloseAnimationType.FullSizeDown, this.TopGrid.Width, 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void OpenAndClose(Grid _closeGrid, Grid _openGrid, OpenCloseAnimationType _animationType) + { + var OpenAnimations = Animations.GetOpenAndCloseAnimation(_closeGrid, _openGrid, _animationType, _closeGrid.ActualWidth, 0.3); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = _openGrid.Name; + OpenAnimations.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void PBPayments_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is PBPaymentsViewModel viewModel) + { + ViewModel = viewModel; + ViewModel.PropertyChanged += ViewModel_PropertyChanged; + ViewModel.HappyPointReturn = GetHappyPointReturn; + ViewModel.DetailBasketData = GetBasketItems; + ViewModel.DefaultPage = ShowPage; + if (GetHappyPointReturn is M_HappyPointReturn) + { + ViewModel.MemberLoginOK = true; + ViewModel.GmbMemberName = GetHappyPointReturn.IsCardNoUsed ? GetHappyPointReturn.MemberName : "고객"; + } + ViewModel.IsTimeoutPopup = true; + } + OpenBase(); + } + private void ViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (sender is PBPaymentsViewModel viewModel) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseBase(); + } + break; + case "DefaultPage": + SetPage(); + break; + default: + break; + } + } + } + + private void OpenAnimations_Completed(object sender, EventArgs e) + { + var senderStoryboard = (sender as ClockGroup).Timeline as Storyboard; + var getName = senderStoryboard.Name; + switch (senderStoryboard.Name) + { + case "PaymentsMainGrid": + break; + default: + this.ShowPage = ViewModel.DefaultPage; + break; + } + if (ShowPage.Equals(PBPaymentPageType.PointsDisCounts) + && this.ViewModel.FirstLoaded) + { + this.ViewModel.OpenFistPopup(); + } + if (this.FindName(getName) is Grid findGrid) findGrid.IsEnabled = true; + senderStoryboard = null; + + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ViewModel.Dispose(); + this.Close(); + } + #endregion Event Handlers + + + + + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml b/Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml new file mode 100644 index 0000000..f62d5af --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml @@ -0,0 +1,1631 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml.cs b/Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml.cs new file mode 100644 index 0000000..9fe89c3 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/PBWindow.xaml.cs @@ -0,0 +1,652 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Forms; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using SPC.Kiosk.Common; +using System.Threading.Tasks; +using SPC.Kiosk.PB.Model; +using SPC.Kiosk.PB.ViewModel; +using SPC.Kiosk.Popup.Model; +using System.Windows.Interop; +using System.Windows.Threading; + +namespace SPC.Kiosk.PB +{ + /// + /// MainWindow.xaml에 대한 상호 작용 논리 + /// + public partial class PBWindow : Window + { + + #region [ Members ] + /// + /// IcReadStart Event + /// + /// + public delegate void IcReaderCheck(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReaderCheck ReaderCheck; + /// + /// PosRecipetRefund Event + /// + /// + public delegate void PosRecipetRefund(object sender); + /// + /// PosRecipetRefund Event 반환용 + /// + public event PosRecipetRefund RecipetRefund; + /// + /// PosRecipetReprint Event + /// + /// + public delegate void PosRecipetReprint(object sender); + /// + /// PosRecipetReprint Event 반환용 + /// + public event PosRecipetReprint RecipetReprint; + private VmPBViewModel ViewModel { get; set; } + private PBPageType ShowPage { get; set; } + private int ScreenNo { get; set; } = 0; + private DispatcherTimer BarcodeFocusing; + #endregion Members + + #region [ Ctor/Etc ] + /// + /// Ctor + /// + public PBWindow() + { + StartInitialize(); + } + /// + /// Ctor + /// + /// + public PBWindow(int _screenNo) + { + ScreenNo = _screenNo; + StartInitialize(); + } + #endregion + + #region [ Methods ] + + private void AiOpen(PBPageType _TargetPage) + { + //---------객체인식 화면 이동 시------------ + if (_TargetPage.Equals(PBPageType.Sensing)) + { + + this.Topmost = false; + if (this.ViewModel.OptionValue812 == "0") { this.GMB_CallButton.Visibility = Visibility.Collapsed; } + else { this.GMB_CallButton.Visibility = Visibility.Hidden; } + this.GMB_LanguageButton.Visibility = Visibility.Hidden; + this.GMB_PonitButton.Visibility = Visibility.Hidden; + this.ViewModel.ToIntorTimerStop(); + AiScannerProcess.ExcuteAiScanner(new WindowInteropHelper(this).Handle); + } + else + { + this.Topmost = true; + if (this.ViewModel.OptionValue812 == "0") { this.GMB_CallButton.Visibility = Visibility.Collapsed; } + else { this.GMB_CallButton.Visibility = Visibility.Visible; } + this.GMB_LanguageButton.Visibility = Visibility.Visible; + this.GMB_PonitButton.Visibility = Visibility.Visible; + //센싱 화면 종료 시 객체인식 프로세스 종료 + AiScannerProcess.StopAiScanner(); + this.ViewModel.ToIntorTimerStart(); + } + } + private void StartInitialize() + { + InitializeComponent(); + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + this.Loaded += PBWindow_Loaded; + } + private void GoRecipetReprint() + { + try + { + RecipetReprint(this); + } + catch + { + } + } + private void GoRecipetRefund() + { + try + { + RecipetRefund(this); + } + catch + { + } + } + private void GoReaderCheck() + { + try + { + ReaderCheck(this); + } + catch + { + } + } + private void SetPage(PBPageType _TargetPage) + { + switch (ShowPage) + { + case PBPageType.Intro: + switch (_TargetPage) + { + case PBPageType.Items: + ContentGrid.Visibility = Visibility.Visible; + FirstGrid.Visibility = Visibility.Hidden; + ItemGrid.Visibility = Visibility.Visible; + SenserGrid.Visibility = Visibility.Hidden; + ToggleGrid.Visibility = Visibility.Visible; + ContentGrid.RenderTransform = null; + ItemGrid.RenderTransform = null; + break; + case PBPageType.Sensing: + ContentGrid.Visibility = Visibility.Visible; + FirstGrid.Visibility = Visibility.Hidden; + ItemGrid.Visibility = Visibility.Hidden; + SenserGrid.Visibility = Visibility.Visible; + ToggleGrid.Visibility = Visibility.Visible; + SenserGrid.RenderTransform = null; + + break; + case PBPageType.FirstSelect: + ContentGrid.Visibility = Visibility.Visible; + FirstGrid.Visibility = Visibility.Visible; + ItemGrid.Visibility = Visibility.Hidden; + SenserGrid.Visibility = Visibility.Hidden; + ToggleGrid.Visibility = Visibility.Hidden; + FirstGrid.RenderTransform = null; + break; + } + OpenAndClose(this.BaseGrid, this.TradeGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPageType.FirstSelect: + switch (_TargetPage) + { + case PBPageType.Items: + SenserGrid.Visibility = Visibility.Hidden; + ItemGrid.Visibility = Visibility.Visible; + ToggleGrid.Visibility = Visibility.Visible; + ItemGrid.RenderTransform = new TranslateTransform(ItemGrid.Width, 0); + OpenAndClose(this.FirstGrid, this.ItemGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPageType.Sensing: + SenserGrid.Visibility = Visibility.Visible; + ItemGrid.Visibility = Visibility.Hidden; + ToggleGrid.Visibility = Visibility.Visible; + SenserGrid.RenderTransform = new TranslateTransform(SenserGrid.Width, 0); + OpenAndClose(this.FirstGrid, this.SenserGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPageType.Intro: + ItemGrid.Visibility = Visibility.Hidden; + SenserGrid.Visibility = Visibility.Hidden; + OpenAndClose(this.TradeGrid, this.BaseGrid, OpenCloseAnimationType.GotoRight); + break; + } + break; + case PBPageType.Items: + switch (_TargetPage) + { + case PBPageType.Intro: + SenserGrid.Visibility = Visibility.Hidden; + FirstGrid.Visibility = Visibility.Hidden; + OpenAndClose(this.TradeGrid, this.BaseGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPageType.Sensing: + SenserGrid.Visibility = Visibility.Visible; + SenserGrid.RenderTransform = new TranslateTransform(SenserGrid.Width, 0); + OpenAndClose(this.ItemGrid, this.SenserGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPageType.FirstSelect: + FirstGrid.Visibility = Visibility.Visible; + ToggleGrid.Visibility = Visibility.Hidden; + FirstGrid.RenderTransform = new TranslateTransform(FirstGrid.Width, 0); + OpenAndClose(this.ItemGrid, this.FirstGrid, OpenCloseAnimationType.GotoRight); + break; + } + break; + case PBPageType.Sensing: + + ScanFirst.Visibility = Visibility.Visible; + ScanSecond.Visibility = Visibility.Hidden; + switch (_TargetPage) + { + case PBPageType.Intro: + ItemGrid.Visibility = Visibility.Hidden; + FirstGrid.Visibility = Visibility.Hidden; + OpenAndClose(this.TradeGrid, this.BaseGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPageType.Items: + ItemGrid.Visibility = Visibility.Visible; + ItemGrid.RenderTransform = new TranslateTransform(ItemGrid.Width * -1, 0); + OpenAndClose(this.SenserGrid, this.ItemGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPageType.FirstSelect: + FirstGrid.Visibility = Visibility.Visible; + ToggleGrid.Visibility = Visibility.Hidden; + FirstGrid.RenderTransform = new TranslateTransform(FirstGrid.Width, 0); + OpenAndClose(this.SenserGrid, this.FirstGrid, OpenCloseAnimationType.GotoRight); + break; + case PBPageType.Sensing: + this.ViewModel.SensingSubPage = PBSensingSubPageType.SensingPage; + ChangeWindow(); + break; + } + break; + } + } + private void ChangeWindow() + { + //this.Dispatcher.Invoke((Action)(() => + //{ + try + { + var _target = this.SenserGrid; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + //})); + } + private void ScanBoxEnable() + { + if (!this.BarCode.IsEnabled) this.BarCode.IsEnabled = true; + if (!this.BarCode.IsFocused) this.BarCode.Focus(); + } + private void ScanBoxDisable() + { + BarcodeFocusing.Stop(); + this.BarCode.IsEnabled = false; + } + private void TargetAnimation_Completed(object sender, EventArgs e) + { + ScanBoxEnable(); + } + private void GMBtoggle2Sensing() + { + var target = this.AiToggle; + var toSensing = new Storyboard(); + target.RenderTransform = new TranslateTransform(0, 0); + var toLeftAnimation = new DoubleAnimation(this.AiToggle.Width, 0, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(toLeftAnimation, target); + Storyboard.SetTargetProperty(toLeftAnimation, new PropertyPath("RenderTransform.X")); + toSensing.Children.Add(toLeftAnimation); + toSensing.Completed += ToSensing_Completed; + toSensing.Begin(); + } + private void GMBtoggle2Order() + { + var target = this.AiToggle; + var toOrder = new Storyboard(); + target.RenderTransform = new TranslateTransform(0, 0); + var toLeftAnimation = new DoubleAnimation(0, this.AiToggle.Width, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(toLeftAnimation, target); + Storyboard.SetTargetProperty(toLeftAnimation, new PropertyPath("RenderTransform.X")); + toOrder.Children.Add(toLeftAnimation); + toOrder.Completed += ToOrder_Completed; + toOrder.Begin(); + + } + private void OpenBase() + { + this.TradeGrid.IsEnabled = false; + this.TradeGrid.Visibility = Visibility.Hidden; + var OpenAnimations = Animations.GetOpenAnimation(this.TopGrid, OpenCloseAnimationType.FullSizeUp, this.Width, 0.5); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = this.BaseGrid.Name; + OpenAnimations.Begin(); + } + } + private void CloseBase() + { + var CloseAnimation = Animations.GetCloseAnimation(this.TopGrid, OpenCloseAnimationType.FullSizeDown, this.Width, 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void OpenAndClose(Grid _closeGrid, Grid _openGrid, OpenCloseAnimationType _animationType) + { + var OpenAnimations = Animations.GetOpenAndCloseAnimation(_closeGrid, _openGrid, _animationType, _closeGrid.ActualWidth, 0.3); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = _openGrid.Name; + OpenAnimations.Begin(); + } + } + private void OpenPaymentsWindow() + { + try + { + var newPBPayment = new PBPaymentsWindow(ViewModel.MiniBasketData + , ViewModel.HappyPointReturn + , ViewModel.OpenPBPaymentPage); + this.ViewModel.ToIntorTimerStop(); + this.ViewModel.WaitWindowFrom.ShowWaitWindow(); + newPBPayment.ShowDialog(); + this.ViewModel.WaitWindowFrom.CloseWaitWindow(); + this.ViewModel.ToIntorTimerStart(); + if (newPBPayment.DataContext is PBPaymentsViewModel returnViewModel) + { + ViewModel.ShowLanguageType = returnViewModel.ReturnValue.ReturnLanguage; + if (returnViewModel.ReturnValue.PopupArgs is List returnBasket + && returnBasket.Count > 0) + { + ViewModel.MiniBasketData = new System.Collections.ObjectModel.ObservableCollection(returnBasket); + } + else + { + ViewModel.DeledteAllBasket(); + } + if (returnViewModel.ReturnValue.TimeOut + || returnViewModel.ReturnValue.OKAnswer) ViewModel.DefaultPage = PBPageType.Intro; + } + newPBPayment = null; + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenPaymentsWindow()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + } + #endregion Methods + + #region [ Event Handlers ] + private void PBWindow_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmPBViewModel viewModel) + { + ViewModel = viewModel; + viewModel.PropertyChanged += ViewModel_PropertyChanged; + ViewModel.IsTimeoutPopup = true; + } + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + BarcodeFocusing = new DispatcherTimer + { + Interval = TimeSpan.FromMilliseconds(100d), + }; + BarcodeFocusing.Tick += BarcodeFocusing_Tick; + OpenBase(); + } + + private void BarcodeFocusing_Tick(object sender, EventArgs e) + { + try + { + if (this.ViewModel is VmPBViewModel) + { + if (ViewModel.DefaultPage.Equals(PBPageType.Sensing)) + { + ScanBoxEnable(); + } + } + + } + catch + { + } + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "DefaultPage": + SetPage(ViewModel.DefaultPage); + if (this.ViewModel.OptionValue810 == "0" + && this.ViewModel.OptionValue811 == "1") + { } + else + { + AiOpen(ViewModel.DefaultPage); + } + + break; + case "GmbReaderCheckOpen": + if (ViewModel.GmbReaderCheckOpen) + { + AiScannerProcess.StopAiScanner(); + this.ViewModel.ToIntorTimerStop(); + this.AdminGrid.Visibility = Visibility.Visible; + ViewModel.ReaderCheckClickCount = 0; + } + break; + case "OrderHistoryView": + if (this.ViewModel.OrderHistoryView + && this.ViewModel.DefaultPage.Equals(PBPageType.Items)) + { + this.OrderHisoty.Visibility = Visibility.Visible; + var OrderHisotyOpenAnimation = Animations.GetOpenAnimation(this.OrderHisotyItems, OpenCloseAnimationType.GotoUp, this.OrderHisotyItems.Height, 0.2); + if (OrderHisotyOpenAnimation != null) + { + OrderHisotyOpenAnimation.Completed += OrderHisotyOpenAnimation_Completed; + OrderHisotyOpenAnimation.Begin(); + } + } + else + { + var OrderHisotyCloseAnimation = Animations.GetCloseAnimation(this.OrderHisotyItems, OpenCloseAnimationType.GotoDown, this.OrderHisotyItems.Height, 0.2); + if (OrderHisotyCloseAnimation != null) + { + OrderHisotyCloseAnimation.Completed += OrderHisotyCloseAnimation_Completed; + OrderHisotyCloseAnimation.Begin(); + } + } + break; + case "SensingSubPage": + if (this.ViewModel.SensingSubPage.Equals(PBSensingSubPageType.BarcordPage)) + { + ScanFirst.Visibility = Visibility.Hidden; + ScanSecond.Visibility = Visibility.Visible; + ChangeWindow(); + } + break; + case "OpenPBPaymentPage": + OpenPaymentsWindow(); + break; + case "CanWindowClose": + CloseBase(); + break; + default: + break; + } + } + + private void OrderHisotyOpenAnimation_Completed(object sender, EventArgs e) + { + this.OrderHisotyItems.IsEnabled = true; + } + + private void OrderHisotyCloseAnimation_Completed(object sender, EventArgs e) + { + this.OrderHisoty.Visibility = Visibility.Collapsed; + } + + private void ToSensing_Completed(object sender, EventArgs e) + { + var senderStoryboard = (sender as ClockGroup).Timeline as Storyboard; + senderStoryboard = null; + this.SenserGrid.IsEnabled = true; + this.GMB_ic_order.Enabled = true; + BarcodeFocusing.Start(); + } + + + private void ToOrder_Completed(object sender, EventArgs e) + { + var senderStoryboard = (sender as ClockGroup).Timeline as Storyboard; + senderStoryboard = null; + this.ItemGrid.IsEnabled = true; + this.GMB_ai_order.Enabled = true; + } + + + + + private void OpenAnimations_Completed(object sender, EventArgs e) + { + var senderStoryboard = (sender as ClockGroup).Timeline as Storyboard; + var getName = senderStoryboard.Name; + ScanBoxDisable(); + switch (senderStoryboard.Name) + { + + case "BaseGrid": + this.ShowPage = PBPageType.Intro; + break; + case "SenserGrid": + this.ShowPage = PBPageType.Sensing; + this.ContentGrid.IsEnabled = true; + GMBtoggle2Sensing(); + ScanBoxEnable(); + break; + case "ItemGrid": + this.ShowPage = PBPageType.Items; + this.ContentGrid.IsEnabled = true; + GMBtoggle2Order(); + break; + case "ContentGrid": + this.ShowPage = ViewModel.DefaultPage; + switch (ViewModel.DefaultPage) + { + case PBPageType.Items: + GMBtoggle2Order(); + break; + case PBPageType.Sensing: + GMBtoggle2Sensing(); + break; + } + break; + case "FirstGrid": + this.ShowPage = ViewModel.DefaultPage; + break; + case "TradeGrid": + if (ShowPage.Equals(PBPageType.Intro)) + { + + this.ShowPage = ViewModel.DefaultPage; + switch (ViewModel.DefaultPage) + { + case PBPageType.Items: + GMBtoggle2Order(); + break; + case PBPageType.Sensing: + GMBtoggle2Sensing(); + break; + case PBPageType.FirstSelect: + FirstGrid.IsEnabled = true; + break; + } + } + else + { + switch (ViewModel.DefaultPage) + { + case PBPageType.Items: + ItemGrid.Visibility = Visibility.Visible; + ItemGrid.RenderTransform = new TranslateTransform(ItemGrid.Width * -1, 0); ; + OpenAndClose(this.SenserGrid, this.ItemGrid, OpenCloseAnimationType.GotoLeft); + break; + case PBPageType.Sensing: + SenserGrid.Visibility = Visibility.Visible; + SenserGrid.RenderTransform = new TranslateTransform(ItemGrid.Width, 0); ; + OpenAndClose(this.ItemGrid, this.SenserGrid, OpenCloseAnimationType.GotoRight); + + break; + } + } + break; + } + if (this.FindName(getName) is Grid findGrid) findGrid.IsEnabled = true; + senderStoryboard = null; + + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + AiScannerProcess.StopAiScanner(); + if (BarcodeFocusing != null) + { + BarcodeFocusing.Stop(); + BarcodeFocusing.Tick -= BarcodeFocusing_Tick; + BarcodeFocusing = null; + } + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.ViewModel.Dispose(); + this.Close(); + } + private void IcReaderCheckButton_MouseClicked(object sender, RoutedEventArgs e) + { + GoReaderCheck(); + } + private void RecipetRefundButton_MouseClicked(object sender, RoutedEventArgs e) + { + GoRecipetRefund(); + } + private void RecipetReprintButton_MouseClicked(object sender, RoutedEventArgs e) + { + GoRecipetReprint(); + } + private void ExitWindow_MouseClicked(object sender, RoutedEventArgs e) + { + CloseBase(); + } + private void CloseWindow_MouseClicked(object sender, RoutedEventArgs e) + { + ViewModel.GmbReaderCheckOpen = false; + this.AdminGrid.Visibility = Visibility.Collapsed; + this.ViewModel.ToIntorTimerStart(); + } + + #endregion Event Handlers + + } +} diff --git a/Kiosk/PB/SPC.Kiosk.PB/Properties/AssemblyInfo.cs b/Kiosk/PB/SPC.Kiosk.PB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2191970 --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.PB")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Zin")] +[assembly: AssemblyProduct("SPC.Kiosk.PB")] +[assembly: AssemblyCopyright("Copyright © Zin. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +//지역화 가능 응용 프로그램 빌드를 시작하려면 다음을 설정하세요. +//.csproj 파일에서 내에 CultureYouAreCodingWith를 +//설정하십시오. 예를 들어 소스 파일에서 영어(미국)를 +//사용하는 경우 를 en-US로 설정합니다. 그런 다음 아래 +//NeutralResourceLanguage 특성의 주석 처리를 제거합니다. 아래 줄의 "en-US"를 업데이트하여 +//프로젝트 파일의 UICulture 설정과 일치시킵니다. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //테마별 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) + ResourceDictionaryLocation.SourceAssembly //제네릭 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) +)] + + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/PB/SPC.Kiosk.PB/SPC.Kiosk.PB.csproj b/Kiosk/PB/SPC.Kiosk.PB/SPC.Kiosk.PB.csproj new file mode 100644 index 0000000..b73a43a --- /dev/null +++ b/Kiosk/PB/SPC.Kiosk.PB/SPC.Kiosk.PB.csproj @@ -0,0 +1,155 @@ + + + + + Debug + AnyCPU + {38393190-821D-496D-A996-11833C20E476} + Library + SPC.Kiosk.PB + SPC.Kiosk.PB + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + Svn + Svn + Svn + SubversionScc + + + x86 + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + x86 + none + true + ..\..\..\..\BIN\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + 4.0 + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + DetailBasketItem.xaml + + + DetailBasketItems.xaml + + + DiscountAndValue.xaml + + + DiscountAndValues.xaml + + + MiniBasketItems.xaml + + + MiniBasketItem.xaml + + + PBPaymentsWindow.xaml + + + PBWindow.xaml + Code + + + + + Code + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {be7fc15c-325b-4ad4-8ea0-a8244193e431} + SPC.Kiosk.Popup.Model + + + {9ef1fec9-5f0a-4a4e-8723-e93f30798fd2} + SPC.Kiosk.Popup.ViewModel + + + {7c64409c-24e1-4d9e-a686-b13061f1c61b} + SPC.Kiosk.Popup + + + {90ebd618-0409-458d-9829-a012223e8671} + SPC.Kiosk.PB.Model + + + {bca39ae9-b2eb-495e-be62-ab95b0325cff} + SPC.Kiosk.PB.ViewModel + + + + \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/Properties/AssemblyInfo.cs b/Kiosk/Payments/SPC.Kiosk.Payments/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..45219c3 --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Payments")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Payments")] +[assembly: AssemblyCopyright("Copyright © Zin Inc. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("36fe9011-b9bc-4348-b9c1-1c063dbfa926")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/SPC.Kiosk.Payments.csproj b/Kiosk/Payments/SPC.Kiosk.Payments/SPC.Kiosk.Payments.csproj new file mode 100644 index 0000000..18d483a --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/SPC.Kiosk.Payments.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {36FE9011-B9BC-4348-B9C1-1C063DBFA926} + Library + SPC.Kiosk.Payments + SPC.Kiosk.Payments + v4.0 + 512 + true + + + x86 + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\..\BIN\Cosmos.BaseFrame.dll + + + ..\..\BIN\Cosmos.Common.dll + + + ..\..\BIN\Cosmos.CommonManager.dll + + + ..\..\BIN\Cosmos.ServiceProvider.dll + + + ..\..\BIN\Cosmos.UserFrame.dll + + + + + + + + + + + + + + + + + + + + + + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {be7fc15c-325b-4ad4-8ea0-a8244193e431} + SPC.Kiosk.Popup.Model + + + + \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/posHappyPoint.cs b/Kiosk/Payments/SPC.Kiosk.Payments/posHappyPoint.cs new file mode 100644 index 0000000..bc3a796 --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/posHappyPoint.cs @@ -0,0 +1,1454 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Threading; +using System.Collections; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using System.Data; + +namespace SPC.Kiosk.Payments +{ + /// + /// POS HappyPoint Approval Process + /// + public class posHappyPoint : IDisposable + { + //UserLog.WriteLogFile(UserCom.LOG_ERROR, "SPC.Kiosk.Payments", "posHappyPoint.?", "Exception." + ex.Message); + #region [ Members ] + /// + /// HappyPointCertify ErrorCode + /// + public enum ErrorCode + { + HappyPointCertifyMobilePhoneNumberError, + HappyPointCertifyMobileCardNumberError, + HappyPointCertifyMemInfoEncryptedCardNoError, + HappyPointCertifyEncrtipError, + HappyPointCertifyNotInitailzedError, + HappyPointCertifyProcessingTimeOut, + HappyPointUsingPointsError, + HappyCouponCannotUse, + HappyPointUnknownError, + } + /// + /// ErrorMessage Event + /// + /// 반환 로그 + public delegate void ErrorMessageEventHandler(string ErrorString); + /// + /// 로그메세지 이벤트 반환용 + /// + public event ErrorMessageEventHandler ErrorMessageEvent; + /// + /// Error 반환 Event + /// + /// 반환 Error Code + public delegate void LogErrorHandler(ErrorCode errorCode); + /// + /// Error Code 이벤트 반환용 + /// + public event LogErrorHandler ErrorEvent; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadStart(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadStart ReadStart; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadEnd(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadEnd ReadEnd; + + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + private DeviceStatus m_cDevStatus = null; // 디바이스 관리 + private PosOLEDevice.DelegateIcReader delegateReader; // IC리더 콜백 + private IICReaderUs m_cDeviceICReader = null; + private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스 + + + private IPaymentUs m_cHappyPointUse = null; + + + /// + /// 대상 금액 + /// + private double m_nDestAmt = 0; + /// + /// 상품 선택 행(-1:전체) + /// + private string m_sSelRow = "-1"; + + + /// + /// 입력구분 + /// + private string m_sInPutType = ""; + /// + /// 입력데이터 + /// + private string m_sInPutData = ""; + /// + /// 마스킹데이터 + /// + private string m_sInMaskData = ""; + /// + /// 카드데이터(암호화) + /// + private string m_sInEncData = ""; + /// + /// 서비스코드 + /// + private string m_sServiceCode = ""; + /// + /// 승인카드번호 + /// + private string m_sAppCardNo = ""; + /// + /// 조회 성공 여부 + /// + private bool m_bSearchSuccess = false; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + /// + /// 승인 수단 + /// + public string CertifyKey { get; set; } = string.Empty; + private bool icCallBack = false; + /// + /// Ic Reader CallBack Switch + /// + public bool IcCallBack + { + get { return icCallBack; } + set + { + if (value) + { + m_cDeviceICReader.RegIcCallback(delegateReader); + } + icCallBack = value; + } + } + /// + /// 마스크된 회원성명 + /// + public string MemberName { get; protected set; } = string.Empty; + public string MemberNumber { get; protected set; } = string.Empty; + /// + /// SPC 임직원 유무 + /// + public bool IsCompanyMember { get; protected set; } + /// + /// 적립 가능 유무 + /// + public bool CanReservePoint { get; protected set; } + /// + /// 회원 등급 + /// + public string MemberLevel { get; protected set; } = string.Empty; + /// + /// 회원 비밀번호 + /// + public string MemberPassword { get; protected set; } = string.Empty; + /// + /// HappyApp 가입 고객 + /// + public bool IsAppMamber { get; protected set; } = false; + /// + /// 단골 매장 유무 + /// + public bool IsFavoriteStore { get; protected set; } = false; + /// + /// 회원 적립 Point + /// + public double MemberPoint { get; protected set; } = 0d; + /// + /// 회원 가용 Point + /// + public double UseablePoint { get; protected set; } = 0d; + /// + /// 승인 요청 포인트 + /// + public double UseingPoint { get; set; } = 0d; + /// + /// 승인 포인트 + /// + public double ApprovalPoint { get; protected set; } = 0d; + /// + /// Point 사용시 비번 필요 유무 + /// + public bool NeedPassword { get; protected set; } + + public long PaySEQ { get; protected set; } + /// + /// 인증 처리 성공 유무 + /// + public bool ProcessOK + { + get { return m_bSearchSuccess; } + } + /// + /// Processing TimeOut + /// + public bool IsTimeout + { + set + { + if (value) + { + ErrorEvent(ErrorCode.HappyPointCertifyProcessingTimeOut); + } + } + } + public List MyHappyCoupons { get; protected set; } = new List(); + public M_HappyCoupon UsedCoupon { get; protected set; } + #endregion + + #region [ Ctor && Dispose ] + /// + /// Ctor + /// + public posHappyPoint() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + NeedInitModule = StateObject.POS == null + || StateObject.TRAN == null + || StateObject.DEVICE == null; + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + m_cDeviceICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER); + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + + m_cHappyPointUse = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINTUSE); + + delegateReader = new PosOLEDevice.DelegateIcReader(OnIcReaderCallBack); // IC리더 콜백 + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// + /// + public void Dispose() + { + try + { + InDataToZeroFill(); + + sManager = null; + StateObject = null; + m_cPosStatus = null; // POS 기본정보 + m_cTrnStatus = null; // POS 거래정보 + m_cDevStatus = null; + m_cDataCommon = null; + m_cDeviceICReader = null; + delegateReader = null; // IC리더 콜백 + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region [ Methods ] + /// + /// HappyPoint 회원 조회 (16 자리이면 Mobile BarCode, 그외는 전화 번호) + /// + /// + public void StartCertifyProcessing(string _inputString) + { + try + { + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.HappyPointCertifyNotInitailzedError); + } + else + { + var startPorcess = false; + if (_inputString.Replace("=", "").Replace("@", "").Length.Equals(16)) + { + // Mobile BarCode + if (CmUtil.CheckHappyMobileCard(_inputString)) + { + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP; + m_sInMaskData = m_sAppCardNo = _inputString.Replace("=", "").Replace("@", ""); + m_sInPutData = _inputString + "@"; + startPorcess = true; + } + else + { + SendErrLogEvent(ErrorCode.HappyPointCertifyMobileCardNumberError); + } + } + else + { + // 전화 번호 + if (IsCellularPhoneNumber(_inputString)) + { + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + m_sInMaskData = m_sAppCardNo = m_sInPutData = _inputString; + startPorcess = true; + + } + else + { + SendErrLogEvent(ErrorCode.HappyPointCertifyMobilePhoneNumberError); + } + } + //조회 전문 처리 + if (startPorcess) + { + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData)) + { + SearchTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.HappyPointCertifyEncrtipError); + } + } + + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCertifyProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 쿠폰 사용 처리 + /// + /// + /// + public void StartCouponProcessing(string _inputString, double _totalPrice) + { + try + { + CommonLog.InfoLogWrite(this, "StartCouponProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.HappyPointCertifyNotInitailzedError); + } + else + { + var startPorcess = false; + if (_inputString.Length < 11) + { + SendErrLogEvent(ErrorCode.HappyCouponCannotUse); + } + else + { + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + m_sInMaskData = m_sAppCardNo = m_sInPutData = _inputString; + m_nDestAmt = _totalPrice; + startPorcess = true; + + } + if (startPorcess) + { + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData)) + { + CouponCompleteTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.HappyPointCertifyEncrtipError); + } + } + + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartCouponProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCouponProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 해피포인트 사용을 위한 조회 + /// + private bool SearchTxtInPutForUsing() + { + string sRet = UserCom.RST_ERR; + try + { + m_bSearchSuccess = false; + var m_sPosMenuKey = PosKey.MENU_KEY.HAPPY_POINT_USE; + + // 조회 + string[] saRecvdData = null; + sRet = m_cHappyPointUse.SearchPayment(new string[] { m_sPosMenuKey, m_sInPutType, m_sInMaskData, m_sInEncData, "1", m_sAppCardNo }, ref saRecvdData); + if (sRet != UserCom.RST_OK) + { + InDataToZeroFill(); + return false; + } + + Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)m_cHappyPointUse.GetPayment(new string[] { }); + + var m_bPassWord = true; + if (cPayItem.HP_ADD_INFO_SCH.Trim() != "") + { + int nNowPos = 0; + string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length]; + ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cPayItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp); + + if (aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointHPUSEYN] != "Y") + { + //WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0139)); + return false; + } + m_bPassWord = (aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointHPUSEPWYN] == "Y") ? true : false; + + if (m_sInPutData.StartsWith(PosConst.HP_CARD_PRIFIX) == false) + { + // 고객정보 + string sMemInfo = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointMEMINFO].Trim(); + if (sMemInfo.Length >= 17 && CmUtil.LongParse(sMemInfo.Substring(0, 1)) > 0) + { + string sInPutData = sMemInfo.Substring(1, 16).Trim(); // 카드번호 + string sInMaskData = ""; + if (EncryptedCardNo(sInPutData, ref sInMaskData, ref m_sInEncData) == false) return false; + cPayItem.CanFiller1 = m_sInEncData; + + cPayItem.OCCUR_ENTRY_14 = m_sAppCardNo = sInPutData; // 승인카드번호 + } + } + + //#20171017 전자영수증 발행 start, phj + cPayItem.OCCUR_ENTRY_23 = CmUtil.MidH(cPayItem.HP_ADD_INFO_SCH, 144, 1).Trim(); + //#20171017 전자영수증 발행 end, phj + } + + if (cPayItem.OCCUR_ENTRY_12 == "Y") + { + m_cTrnStatus.Sale.HappyBuzzMemNo = m_sInPutData; + } + + cPayItem.CanFiller3 = m_sInPutData; + + // MoonSeokWoo 2017.09.26 마이원 카드 제약조건 제거. + //if (cPayItem.HP_RESERVED.StartsWith("M") == true) // 마이원카드 사용 불가 + //{ + // WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0139)); + // return false; + //} + + + // 할인 대상상품 합계 + double nDestPluAmt = 0; + ArrayList alTrPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + foreach (Column.TR_PLU.DATA cPluItem in alTrPluItem) + { + if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소 + if (cPluItem.alTrSaleCpi == null) continue; + + foreach (Column.TR_SALE_CPI_RSLT.DATA cTrSaleCpi in cPluItem.alTrSaleCpi) + { + if (cTrSaleCpi.TRGT_CUST_TYPE == ItemConst.CPI_TRGT_CUST_TYPE.HPC_PAY && cTrSaleCpi.DC_SUM_AMT > 0) + { + nDestPluAmt = CmUtil.DoubleAdd(nDestPluAmt, cPluItem.BILL_AMT); + break; + } + } + } + + //// 결제포인트 + //txtUsePoint.Value = (m_nRemainPayAmt > cPayItem.AMT_ENTRY_04) ? cPayItem.AMT_ENTRY_04.ToString() : m_nRemainPayAmt.ToString(); + + + //#20180821 해피포인트 고객이름 마스킹 start + if (cPayItem.HP_CUST_NAME != "") { cPayItem.HP_CUST_NAME = m_cDataCommon.NameMasking(cPayItem.HP_CUST_NAME); } + //#20180821 해피포인트 고객이름 마스킹 end + + //lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0109) + " [ " + cPayItem.HP_CUST_NAME + " ]"; + m_bSearchSuccess = true; + return true; + } + catch (Exception ex) + { + WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); + } + return false; + } + + + /// + /// 해피 포인트 사용 처리 + /// + /// + /// + /// + public void StartPaymentProcessing(string _inputString, double _usingPoints,string _memberPassword) + { + try + { + CommonLog.InfoLogWrite(this, "StartPaymentProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(3000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.HappyPointCertifyNotInitailzedError); + } + else + { + var startPorcess = false; + if (_inputString.Replace("=", "").Replace("@", "").Length.Equals(16) + && _usingPoints > 0) + { + UseingPoint = _usingPoints; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP; + m_sInMaskData = _inputString; + m_sInPutData = _inputString + "@"; + startPorcess = true; + } + else + { + SendErrLogEvent(ErrorCode.HappyPointUsingPointsError); + } + //승인 전문 처리 + if (startPorcess) + { + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData)) + { + if (SearchTxtInPutForUsing()) CompleteTxtInPut(); + else SendErrLogEvent(ErrorCode.HappyPointCertifyEncrtipError); + } + else + { + SendErrLogEvent(ErrorCode.HappyPointCertifyEncrtipError); + } + } + + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartPaymentProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartPaymentProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 단골 매장 처리 + /// + /// + /// + public void StartFavoriteStoreProcess(string _inputString, bool _regType) + { + CommonLog.InfoLogWrite(this, "StartFavoriteStoreProcess()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(3000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.HappyPointCertifyNotInitailzedError); + } + else + { + var m_cHappyPoint = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHPREGULARCUST); + m_bSearchSuccess = false; + try + { + var sReqDivCd = _regType ? "10" : "11"; + if (_inputString.Length > 15) + { + m_sInPutData = string.Format("{0}@", _inputString.Substring(0, 16)); + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP; + } + else + { + m_sInPutData = _inputString; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + } + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData)) + { + var sRet = m_cHappyPoint.SetPayment(new string[] { m_sInPutType, m_sInMaskData, m_sInEncData, sReqDivCd }); + if (sRet != UserCom.RST_OK) + { + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.HappyPointUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + m_bSearchSuccess = true; + } + } + else + { + SendErrLogEvent(ErrorCode.HappyPointCertifyEncrtipError); + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartFavoriteStoreProcess()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartFavoriteStoreProcess()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + } + + + /// + /// 휴대폰 번호 형식 확인 + /// + /// + /// + private bool IsCellularPhoneNumber(string sInputData) + { + bool bRet = false; + try + { + if (sInputData.Length == 10 || sInputData.Length == 11) + { + if (sInputData.StartsWith("010") == true || sInputData.StartsWith("011") == true || sInputData.StartsWith("017") == true || + sInputData.StartsWith("016") == true || sInputData.StartsWith("018") == true || sInputData.StartsWith("019") == true) + { + bRet = true; + } + } + } + catch + { + bRet = false; + } + return bRet; + } + /// + /// Happoint 조회 전문 처리 + /// + private void SearchTxtInPut() + { + CommonLog.DebugLogWrite(this, "SearchTxtInPut()", "Start"); + var m_cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT); + string sRet = UserCom.RST_ERR; + try + { + + m_bSearchSuccess = false; + string[] saRecvdData = null; + sRet = m_cHappyPoint.SearchPayment(new string[] { m_sInPutType, m_sInMaskData, m_sInEncData, "0", "", m_sAppCardNo }, ref saRecvdData); + if (sRet != UserCom.RST_OK) + { + CertifyKey = string.Empty; + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.HappyPointUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + CertifyKey = m_sAppCardNo; + var cPointItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { }); + + NeedPassword = true; + if (cPointItem.HP_ADD_INFO_SCH.Trim() != "") + { + int nNowPos = 0; + string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length]; + ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cPointItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp); + MemberNumber = cPointItem.OCCUR_ENTRY_10; + MemberLevel = cPointItem.OCCUR_ENTRY_15; + MemberPoint = cPointItem.AMT_ENTRY_03; + UseablePoint = cPointItem.AMT_ENTRY_04; + IsAppMamber = cPointItem.OCCUR_ENTRY_12.ToUpper().Equals("Y"); + IsCompanyMember = cPointItem.ETC_DTL_CD_04.StartsWith("3A"); + CanReservePoint = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointHPADDYN].Equals("Y"); + NeedPassword = (aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointHPUSEPWYN] == "Y") ? true : false; + + // 고객정보 + string sMemInfo = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointMEMINFO].Trim(); + if (sMemInfo.Length >= 17 && CmUtil.LongParse(sMemInfo.Substring(0, 1)) > 0) + { + string sInPutData = sMemInfo.Substring(1, 16).Trim(); // 카드번호 + string sInMaskData = ""; + IsFavoriteStore = sMemInfo.Substring(53, 1).Equals("Y"); + if (EncryptedCardNo(sInPutData, ref sInMaskData, ref m_sInEncData) == false) + { + SendErrLogEvent(ErrorCode.HappyPointCertifyMemInfoEncryptedCardNoError); + return; + } + cPointItem.CanFiller1 = m_sInEncData; + } + + //#20171017 전자영수증 발행 start, phj + cPointItem.OCCUR_ENTRY_23 = CmUtil.MidH(cPointItem.HP_ADD_INFO_SCH, 144, 1).Trim(); + //#20171017 전자영수증 발행 end, phj + } + + if (cPointItem.OCCUR_ENTRY_12 == "Y") + { + m_cTrnStatus.Sale.HappyBuzzMemNo = m_sInPutData; + } + + cPointItem.CanFiller3 = m_sInPutData; + MemberName = cPointItem.HP_CUST_NAME; + + #region InCard Coupon Query + var m_cHappyCoupon = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYCOUPON); + try + { + sRet = m_cHappyCoupon.SearchPayment(new string[] { m_sInPutType, m_sInPutData, m_sInEncData, "1" }, ref saRecvdData); + if (sRet.Equals(UserCom.RST_OK)) + { + var cPayItem2 = (Column.TR_PAYMENT.DATA)m_cHappyCoupon.GetPayment(new string[] { }); + var aHP_CPN_INFO = cPayItem2.HP_CPN_INFO; + if (aHP_CPN_INFO is ArrayList && aHP_CPN_INFO.Count > 0) + { + var newCouponData = new List(); + foreach (var aCouponData in aHP_CPN_INFO) + { + if (aCouponData is string[] aCouponInfos + && aCouponInfos.Length > 3) + { + var couponName = CmUtil.MidH(aCouponInfos[1], 0, 40); + var aNewCouponData = new M_HappyCoupon + { + Number = string.IsNullOrEmpty(aCouponInfos[0]) + ? string.Empty + : aCouponInfos[0].Trim(), + Name = string.IsNullOrEmpty(couponName) + ? string.Empty + : couponName.Trim(), + StartDate = CommonFunction.GetDate(aCouponInfos[2]), + EndDate = CommonFunction.GetDate(aCouponInfos[2]), + }; + newCouponData.Add(aNewCouponData); + } + } + MyHappyCoupons = newCouponData; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SearchTxtInPut()", "Coupon Search Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + m_cHappyCoupon = null; + } + #endregion + m_bSearchSuccess = true; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SearchTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + m_cHappyPoint = null; + } + CommonLog.DebugLogWrite(this, "SearchTxtInPut()", "End"); + } + + /// + /// 포인트 사용 승인 처리 + /// + /// + private void CompleteTxtInPut() + { + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "Start"); + //var m_cHappyPointUse = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINTUSE); + string sRet = UserCom.RST_ERR; + try + { + m_bSearchSuccess = false; + var m_sPosMenuKey = PosKey.MENU_KEY.HAPPY_POINT_USE; + // 포인트 사용 승인 처리 + sRet = m_cHappyPointUse.SetPayment(new string[] { m_sPosMenuKey, m_sInPutType, m_sInMaskData, m_sInEncData, UseingPoint.ToString(), MemberPassword, m_sAppCardNo, "", "" }); + if (sRet != UserCom.RST_OK) + { + CertifyKey = string.Empty; + MemberPassword = string.Empty; + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.HappyPointUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + var cPointItem = (Column.TR_PAYMENT.DATA)m_cHappyPointUse.GetPayment(new string[] { }); + PaySEQ = cPointItem.SEQ; + ApprovalPoint = UseingPoint; + m_bSearchSuccess = true; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CompleteTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + m_cHappyPointUse = null; + } + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "End"); + } + /// + /// 쿠폰 사용 승인 전문 + /// + private void CouponCompleteTxtInPut() + { + CommonLog.DebugLogWrite(this, "CouponCompleteTxtInPut()", "Start"); + var m_cHappyCoupon = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYCOUPON); + string sRet = UserCom.RST_ERR; + try + { + m_bSearchSuccess = false; + // 해피쿠폰 조회 + string[] saRecvdData = null; + sRet = m_cHappyCoupon.SearchPayment(new string[] { m_sInPutType, m_sInPutData, m_sInEncData, "0" }, ref saRecvdData); + if (sRet != UserCom.RST_OK) + { + CertifyKey = string.Empty; + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.HappyPointUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + var cPayItem = (Column.TR_PAYMENT.DATA)m_cHappyCoupon.GetPayment(new string[] { }); + var aprovalProcessStart = false; + //내려온 제품군 또는 상품코드가 존재 할 때 + if (cPayItem.CpnItemDcCode != "") + { + // 제품군 코드가 내려왔으면 제품군에 속하고, 등록 된 상품을 화면에 보여주고, 사용자가 선택한 제품 할인적용. + // 상품코드가 내려왔으면 바로 해당 상품으로 할인적용. + if (ChoiceCpnItem(cPayItem.CpnItemDcCode) == false) + { + SendErrLogEvent(ErrorCode.HappyCouponCannotUse); + } + else + { + aprovalProcessStart = true; + } + } + //내려온 제품군 또는 상품코드가 존재하지 않을 때 + else + { + + // 전체금액 대상 + m_sSelRow = "-1"; + aprovalProcessStart = true; + } + if (aprovalProcessStart) + { + // 해피포인트 쿠폰 등록 처리 + sRet = m_cHappyCoupon.SetPayment(new string[] { m_sInPutType, m_sInPutData, m_sInEncData, m_nDestAmt.ToString(), m_sSelRow }); + if (sRet != UserCom.RST_OK) + { + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.HappyPointUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + var cPayItem2 = (Column.TR_PAYMENT.DATA)m_cHappyCoupon.GetPayment(new string[] { }); + UsedCoupon = new M_HappyCoupon + { + Number = cPayItem.OCCUR_ENTRY_01, + Name = cPayItem.CanFiller2, + IsUsed = true, + PaySEQ = cPayItem2.SEQ, + UseAmount = cPayItem2.PAY_AMT, + }; + m_bSearchSuccess = true; + } + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CouponCompleteTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + m_cHappyCoupon = null; + } + CommonLog.DebugLogWrite(this, "CouponCompleteTxtInPut()", "End"); + } + + + #region ChoicePluItem (대상 상품 선택) + /// + /// 대상 상품 선택 + /// + /// + private bool ChoiceCpnItem(string CpnItemDcCode) + { + + #region 변경 + string CpnItemDcType = string.Empty; + string sItemNm = string.Empty; + string sItemCode = string.Empty; + bool bItemCheck = false; // false: 등록된상품과 일치된상품없음. true: 등록된상품과 일치된상품있음. + double dPayAmt = -1; + + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 start + string sGubun = string.Empty; + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 end + + try + { + // 제품군의 속한 상품 리스트를 가져온다. + // 조회응답전문에 코드는 내려왔는데 제품군 마스터에 존재하지 않으면 상품코드로 간주한다. + DataTable dtCpnItemDcList = null; + dtCpnItemDcList = m_cDataCommon.CpnItemDCTargetList(CpnItemDcCode); + if (dtCpnItemDcList == null || dtCpnItemDcList.Rows.Count == 0) + { + // 상품코드 + CpnItemDcType = "2"; + } + else + { + // 제품군 + CpnItemDcType = "1"; + + + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 start + DataRow dr = dtCpnItemDcList.Rows[0]; + // 00: 일반제품군, 01: 대분류 코드 ,02: 중분류 코드 ,03: 소분류 코드 + sGubun = CmUtil.GetDataRowStr(dr, PosMst.MST_CPN_ITEM_GRP_MNG.DATA.GUBUN); + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 end + } + + + ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + Column.TR_PLU.DATA cPluItem = null; + if (CpnItemDcType == "1") + { + foreach (DataRow dr in dtCpnItemDcList.Rows) + { + for (int i = 0; i < alPluItem.Count; i++) + { + cPluItem = (Column.TR_PLU.DATA)alPluItem[i]; + if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소 + if (cPluItem.DC_PRMT_YN == "1") continue; + + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 start + //기존 + //if (CmUtil.GetDataRowStr(dr, PosMst.MST_CPN_ITEM_GRP_MNG_DTL.DATA.ITEM_CD) == cPluItem.ITEM_PLU_CD) + //{ + // if (dPayAmt > -1 && dPayAmt <= cPluItem.SALE_PRC) continue; + // dPayAmt = cPluItem.SALE_PRC;// 판매단가 + // + // m_sSelRow = i.ToString(); + // + // bItemCheck = true; + // sItemNm = cPluItem.ITEM_PLU_CD; + // sItemCode = cPluItem.ITEM_NAME; + // break; + //} + + //변경 + if (sGubun == "00") + { + if (CmUtil.GetDataRowStr(dr, PosMst.MST_CPN_ITEM_GRP_MNG_DTL.DATA.ITEM_CD) != cPluItem.ITEM_PLU_CD) continue; + } + else if (sGubun == "01") + { + if (CmUtil.GetDataRowStr(dr, PosMst.MST_CPN_ITEM_GRP_MNG_DTL.DATA.ITEM_CD) != cPluItem.L_CLSS) continue; + } + else if (sGubun == "02") + { + if (CmUtil.GetDataRowStr(dr, PosMst.MST_CPN_ITEM_GRP_MNG_DTL.DATA.ITEM_CD) != cPluItem.M_CLSS) continue; + } + else if (sGubun == "03") + { + if (CmUtil.GetDataRowStr(dr, PosMst.MST_CPN_ITEM_GRP_MNG_DTL.DATA.ITEM_CD) != cPluItem.S_CLSS) continue; + } + + + //#20181030 판매단가 제일 높은 것으로 원복 start + //기존 + /* + //#20180711 단가 제일 높은것으로 변경 start + //기존 + //if (dPayAmt > -1 && dPayAmt <= cPluItem.SALE_PRC) continue; + //변경 + //#15859 유형군 쿠폰 적용 시 오류 확인요청 start + //적용 대상 상품 체크시 실판매금액(BILL_AMT)로 체크 하도록 변경 + //단가가 동일한 상품이 있는 경우 수량에 따라 적용이 안되는 경우가 생김 + //기존 + //if (dPayAmt > -1 && dPayAmt >= cPluItem.SALE_PRC) continue; + //변경 + if (dPayAmt > -1 && dPayAmt >= cPluItem.BILL_AMT) continue; + //#15859 유형군 쿠폰 적용 시 오류 확인요청 end + //#20180711 단가 제일 높은것으로 변경 end + */ + + //변경 + if (dPayAmt > -1 && dPayAmt >= cPluItem.SALE_PRC) continue; + //#20181030 판매단가 제일 높은 것으로 원복 end + + //#20181030 판매단가 제일 높은 것으로 원복 start + //기존 + /* + //#15859 유형군 쿠폰 적용 시 오류 확인요청 start + //적용 대상 상품 체크시 실판매금액(BILL_AMT)로 체크 하도록 변경 + //단가가 동일한 상품이 있는 경우 수량에 따라 적용이 안되는 경우가 생김 + //기존 + //dPayAmt = cPluItem.SALE_PRC;// 판매단가 + //변경 + dPayAmt = cPluItem.BILL_AMT;// 판매단가 + //#15859 유형군 쿠폰 적용 시 오류 확인요청 end + */ + //변경 + dPayAmt = cPluItem.SALE_PRC;// 판매단가 + //#20181030 판매단가 제일 높은 것으로 원복 end + + m_sSelRow = i.ToString(); + + bItemCheck = true; + sItemNm = cPluItem.ITEM_PLU_CD; + sItemCode = cPluItem.ITEM_NAME; + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 start,20180511 + //판매단가 가장 작은 제품에 적용되지 않고 첫번째 제품에 적용됨 + //break; + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 end,20180511 + + //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 end + } + } + } + else + { + for (int i = 0; i < alPluItem.Count; i++) + { + cPluItem = (Column.TR_PLU.DATA)alPluItem[i]; + if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소 + if (cPluItem.DC_PRMT_YN == "1") continue; + if (cPluItem.ITEM_PLU_CD == CpnItemDcCode) + { + m_sSelRow = i.ToString(); + + bItemCheck = true; + sItemNm = cPluItem.ITEM_PLU_CD; + sItemCode = cPluItem.ITEM_NAME; + break; + } + } + } + + + // 등록된 상품과 응답전문의 상품코드가 일치. + if (bItemCheck == true) + { + cPluItem = (Column.TR_PLU.DATA)alPluItem[CmUtil.IntParse(m_sSelRow)]; + m_nDestAmt = cPluItem.BILL_AMT; + return true; + } + // 등록된 상품과 응답전문의 상품코드가 불일치. + else + { + return false; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChoiceCpnItem()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + + return false; + } + #endregion + //20171229 요건변경(할인대상 상품 중 제일 단가가 작은제품적용, 동일 판매가 일 경우 판매코드 제일 작은 상품) end, phj + } + #endregion + + /// + /// 카드 번호 암호화 + /// + /// + /// + /// + /// + private bool EncryptedCardNo(string sInData, ref string sInMaskData, ref string sInEncData) + { + string sEncData = sInData; + bool bRet = false; + try + { + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + // "0"인 경우 마스킹 미처리 + //기존 + //sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData).Trim(); + //변경 + sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData, "0").Trim(); + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + if (CmUtil.MidH(sEncData, 0, 2) == "00") + { + sInEncData = CmUtil.MidH(sEncData, 2, 512).Trim(); // 암호화 데이터 + sInMaskData = CmUtil.MidH(sEncData, 514, sEncData.Length - 514).Trim(); // 마스킹 데이터 + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + sInMaskData = CmUtil.MidH(sInMaskData, 0, 6) + "********"; + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + bRet = true; + } + else + { + //암호화 처리 실패! + CommonLog.ErrorLogWrite(this, "EncryptedCardNo()", "Fail !!"); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "EncryptedCardNo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + return bRet; + } + + #region DeviceEvent 관련 + + + /// + /// IC 카드 정보 입력 처리 + /// + /// + private bool GetIcCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + + ClearCardInfo(); // 카드 입력 정보 클리어 + + if (m_cDeviceICReader.GetCardInfo_ICReader(PosConst.IC_READER_TRAN_TYPE.POINT, 0, ref sRsvStr) == true) + { + if (CmUtil.MidH(sRsvStr, 0, 2) == "00") + { + m_sInEncData = CmUtil.MidH(sRsvStr, 6, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 1030, 37).Trim(); + m_sServiceCode = CmUtil.MidH(sRsvStr, 1067, 5).Trim(); + + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + + + + return true; + } + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetIcCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + + /// + /// RF 카드 정보 입력 처리 + /// + /// + private bool GetRfCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + ClearCardInfo(); // 카드 입력 정보 클리어 + + //카드 정보 입력 + if (m_cDeviceICReader.GetRfCreditCardInfo("1", m_cTrnStatus.Head.NetSaleAmt.ToString(), "", "", "", ref sRsvStr) == false) + { + if (sRsvStr != "") SendErrorMessageEvent(sRsvStr); + return false; + } + + m_sInEncData = CmUtil.MidH(sRsvStr, 2, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 514, 40).Trim(); + m_sServiceCode = CmUtil.MidH(sRsvStr, 554, 5).Trim(); + + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF; + + //ReadBarCode= m_sInPutData.Length > 16 ? CmUtil.MidH(m_sInPutData, 0, 16) : m_sInPutData; + return true; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetRfCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + + /// + /// POP 카드 정보 입력 처리 + /// + /// + private bool GetPopCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + + ClearCardInfo(); // 카드 입력 정보 클리어 + + if (m_cDeviceICReader.RfPrepaidCardInfo(ref sRsvStr) == false) + { + if (sRsvStr != "") SendErrorMessageEvent(sRsvStr); + return false; + } + if (sRsvStr.StartsWith("T") == true) + { + m_sInPutData = sRsvStr.Substring(7, 16).Trim(); + } + else if (sRsvStr.StartsWith("E") == true) + { + m_sInPutData = sRsvStr.Substring(1, 20).Trim(); + } + else + { + return false; + } + + bool bRet = EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData); + if (bRet == true) + { + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF; + } + return bRet; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetPopCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + #endregion + + #region 여전법 대응 + /// + /// ZeroFill 초기화 + /// + private void InDataToZeroFill() + { + try + { + + //여전법 대응! + ////////////////////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref m_sInPutData); + CmUtil.ZeroFillClear(ref m_sInEncData); + CmUtil.ZeroFillClear(ref m_sInMaskData); + ////////////////////////////////////////////////////////////////////////////////// + } + catch + { + } + + } + #endregion 여전법 대응 + + #region IC리더 콜백 + //delegate void DelegateIcReaderCallBack(int rc, StringBuilder str); + /// + /// IC리더 콜백 함수 + /// + /// + /// + public void OnIcReaderCallBack(int num, StringBuilder str) + { + try + { + SendReadStart(); + if (num == 1) + { + GetIcCardData(); + } + else + { + if (str.ToString().StartsWith("EN")) + { + ClearCardInfo(); // 카드 입력 정보 클리어 + + m_sInEncData = CmUtil.MidH(str.ToString(), 0, 512).Trim(); + m_sInMaskData = CmUtil.MidH(str.ToString(), 512, 40).Trim(); + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + } + } + if (!string.IsNullOrEmpty(m_sInPutData)) SearchTxtInPut(); + SendReadEnd(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OnIcReaderCallBack()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region Call Process에 이벤트 전송 + private void SendErrorMessageEvent(string _errorMessageString) + { + try + { + CommonLog.ErrorLogWrite(this, "SendErrorMessageEvent()", _errorMessageString); + ErrorMessageEvent(_errorMessageString); + } + catch + { + } + } + private void SendErrLogEvent(ErrorCode _errorCode) + { + try + { + CommonLog.DebugLogWrite(this, "SendErrLogEvent()", _errorCode.ToString()); + ErrorEvent(_errorCode); + } + catch + { + + } + } + private void SendReadStart() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadStart()"); + ReadStart(this); + } + catch + { + + } + } + private void SendReadEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadEnd()"); + ReadEnd(this); + } + catch + { + + } + } + #endregion + + private void ClearCardInfo() + { + try + { + m_sInPutType = ""; // 입력구분 + m_sInPutData = ""; // 입력데이터 + m_sInMaskData = ""; // 마스킹 + m_sInEncData = ""; // 카드데이터 + m_sServiceCode = ""; // 서비스코드 + m_sAppCardNo = ""; // 승인카드번호 + + + m_bSearchSuccess = false; + } + catch + { + } + } + #endregion + + + + + } +} \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/posLastPayments.cs b/Kiosk/Payments/SPC.Kiosk.Payments/posLastPayments.cs new file mode 100644 index 0000000..e8dd342 --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/posLastPayments.cs @@ -0,0 +1,1133 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Common; +using System.Collections; + +namespace SPC.Kiosk.Payments +{ + /// + /// 통신사 할인 승인 + /// + public class posLastPayments : IDisposable + { + + //UserLog.WriteLogFile(UserCom.LOG_ERROR, "SPC.Kiosk.Payments", "posLastPayments.?", "Exception." + ex.Message); + #region [ Members ] + public enum ErrorCode + { + LastPaymentsCardNumberError, + LastPaymentsEncrtipError, + LastPaymentsNotInitailzedError, + LastPaymentsProcessingTimeOut, + LastPaymentsUnknownError, + LastPaymentsCardReadingError + } + /// + /// ErrorMessage Event + /// + /// 반환 로그 + public delegate void ErrorMessageEventHandler(string ErrorString); + /// + /// 로그메세지 이벤트 반환용 + /// + public event ErrorMessageEventHandler ErrorMessageEvent; + /// + /// Error 반환 Event + /// + /// 반환 Error Code + public delegate void LogErrorHandler(ErrorCode errorCode); + /// + /// Error Code 이벤트 반환용 + /// + public event LogErrorHandler ErrorEvent; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadStart(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadStart ReadStart; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadEnd(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadEnd ReadEnd; + /// + /// NeedSign Event + /// + /// + public delegate void NeedSignStart(object sender); + /// + /// NeedSign Event 반환용 + /// + public event NeedSignStart SignStartEvent; + /// + /// NeedSignEnd Event + /// + /// + public delegate void NeedSignEnd(object sender); + /// + /// NeedSignEnd Event 반환용 + /// + public event NeedSignEnd SignEndEvent; + + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + private DeviceStatus m_cDevStatus = null; // 디바이스 관리 + private PosOLEDevice.CallbackIc delegateReaderCardInfo; // IC리더 콜백(CardInfo) + private IDataProcessUs m_cDataService = null; + private IICReaderUs m_cDeviceICReader = null; + + private IPaymentUs m_cSmilePay = null; + private IPaymentExpUs m_cHappyPoint = null; // 해피포인트 적립 + + private ICampaignUs m_cCampaingMain = null; // 캠페인 관리 + + private string m_sPosMenuKey = string.Empty; + private string m_sFallDiv; //FallBack구분 + private string m_sIcChip; //IC CHIP DATA(EMV) + private string m_sSign; //사인 데이터 + private string m_sTax; //세금 + private double m_dCreditCardDcAtm = 0d; //카드할인금액 + private string m_sCreditCardDcTy=string.Empty; //카드할인타입 + + //#15183 보안리더기 삼성페이 해피포인트 자동적립 기능 수정 start,phj + private string m_sMobileCode = ""; + //#15183 보안리더기 삼성페이 해피포인트 자동적립 기능 수정 end,phj + /// + /// 입력구분 + /// + private string m_InputType = string.Empty; + /// + /// 입력데이터 + /// + private string m_sInPutData = string.Empty; + /// + /// 마스킹데이터 + /// + private string m_sInMaskData = string.Empty; + /// + /// 카드데이터(암호화) + /// + private string m_sCardNo = string.Empty; + /// + /// 서비스코드 + /// + private string m_sService = string.Empty; + /// + /// 처리 성공 여부 + /// + private bool m_bProcessSuccess = false; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + /// + /// 승인 수단 + /// + public string CertifyKey { get; set; } = string.Empty; + public LastPaymentsType PaymentsType { get; set; } + + public double Payment { get; set; } = 0d; + private bool ReadProcessEnd { get; set; } = false; + + private bool icCallBack = false; + + + /// + /// Ic Reader CallBack Switch + /// + public bool IcCallBack + { + get { return icCallBack; } + set + { + if (value) + { + //m_cDeviceICReader.RegIcCallback(delegateReader); + + try + { + string sApprID = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID); + bool icR = m_cDeviceICReader.RegIcCallbackCardInfo(sApprID, m_cDataService.IntParse(Payment.ToString()), delegateReaderCardInfo); + icCallBack = value; + CommonLog.DebugLogWrite(this,"IcCallBack","RegIcCallbackCardInfo Success !!"); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this,"IcCallBack","RegIcCallbackCardInfo Fail !!", string.Format("{0}\n{1}",ex.Message,ex.StackTrace)); + } + } + } + } + public double PaymentsValue { get; protected set; } = 0d; + /// + /// Point 사용시 비번 필요 유무 + /// + public bool NeedPassword { get; protected set; } + public long PaySEQ { get; protected set; } + /// + /// 인증 처리 성공 유무 + /// + public bool ProcessOK + { + get { return m_bProcessSuccess; } + } + public bool IsTimeout + { + set + { + if (value) + { + ErrorEvent(ErrorCode.LastPaymentsProcessingTimeOut); + } + } + } + public bool SignEndStatus { get; set; } + public string SignData + { + get { return m_sSign; } + set { m_sSign = value; } + } + public double NoSignLimitAmount { get; set; } = 0d; + + public string ReadBarcordNumber { get; set; } = string.Empty; + + public bool SelfCashBill { get; protected set; } = false; + #endregion + + #region [ Ctor && Dispose ] + /// + /// Ctor + /// + public posLastPayments() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + NeedInitModule = StateObject.POS == null + || StateObject.TRAN == null + || StateObject.DEVICE == null; + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + m_cDeviceICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER); + delegateReaderCardInfo = new PosOLEDevice.CallbackIc(OnIcReaderCallBackCardInfo); // IC리더 콜백(CardInfo) + m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE); + + m_cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN); + m_cSmilePay = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.SMAILPAY); + m_cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor" ,"Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// + /// + public void Dispose() + { + + try + { + ReadProcessEnd = true; + if (IcCallBack ) + { + //m_cDeviceICReader.UnRegIcCallback(); + m_cDeviceICReader.UnRegIcCallbackCardInfo(); + IcCallBack = false; + } + InDataToZeroFill(); + + sManager = null; + StateObject = null; + m_cPosStatus = null; // POS 기본정보 + m_cTrnStatus = null; // POS 거래정보 + m_cDevStatus = null; + + m_cDeviceICReader = null; + delegateReaderCardInfo = null; + m_cDataService = null; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this,"Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region [ Methods ] + public void StartCashBill(string _inputString, string _divType, double _cashAmount, double _taxAmount) + { + CommonLog.InfoLogWrite(this, "StartCashBill()", "Start"); + + try + { + m_bProcessSuccess = false; + SendReadStart(); + //사업자인 경우 길10자리가 아니면 자진 발급을 위해 입력번호 삭제 + if (_divType.Equals("1") && !_inputString.Length.Equals(10)) _inputString = string.Empty; + //개인(소극공제) 인 경우 6자리 이하면 자진 발급처리 + if (_divType.Equals("0") && _inputString.Length < 6) _inputString = string.Empty; + if (string.IsNullOrEmpty(_inputString)) + { + SelfCashBill = true; + _divType = "0"; //자진 발급은 개인(소득공제용만) + _inputString = CommonValue.CashReceiptDefaultNo; + } + m_sInPutData = EncryptedCashInputNo(_inputString, _divType); + if (string.IsNullOrEmpty(m_sInPutData)) + { + SelfCashBill = true; + _divType = "0"; //자진 발급은 개인(소득공제용만) + _inputString = CommonValue.CashReceiptDefaultNo; + m_sInPutData = EncryptedCashInputNo(_inputString, _divType); + } + if (!string.IsNullOrEmpty(m_sInPutData)) + { + int retry = 0; + do + { + CompleteTxtCashBilll(_inputString, _divType, _cashAmount, _taxAmount); + retry++; + if (!SelfCashBill) + { + if (retry.Equals(1)) + { + //승인 실패시 자진 발급 재승인 + SelfCashBill = true; + _divType = "0"; //자진 발급은 개인(소득공제용만) + _inputString = CommonValue.CashReceiptDefaultNo; + m_sInPutData = EncryptedCashInputNo(_inputString, _divType); + if (string.IsNullOrEmpty(m_sInPutData)) break; + } + else + { + break; + } + } + else + { + break; + } + + + } while (!m_bProcessSuccess && retry < 2);//1회만 재승인 + } + SendReadEnd(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCashBill()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + CommonLog.InfoLogWrite(this, "StartCashBill()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + } + + private void CompleteTxtCashBilll(string inputString, string divType, double cashAmount, double taxAmount) + { + CommonLog.DebugLogWrite(this, "StartCashBill()", "Start"); + var m_cCashBill = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.CASHBILL); + try + { + double dNetAmt = CmUtil.DoubleSubtraction(cashAmount, taxAmount); + string sIssueType = "0"; + var sRet = m_cCashBill.SetPayment(new string[] { PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN, m_sInPutData, dNetAmt.ToString(), taxAmount.ToString(), "0", cashAmount.ToString(), divType, sIssueType, "", "", "", "", "", "", m_sInMaskData, SelfCashBill ? "1" : "0" }); + if (sRet != UserCom.RST_OK) + { + InDataToZeroFill(); + m_bProcessSuccess = false; + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.LastPaymentsUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + m_bProcessSuccess = true; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CompleteTxtCashBilll()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + m_cCashBill = null; + } + CommonLog.DebugLogWrite(this, "StartCashBill()", "End"); + } + private string EncryptedCashInputNo(string sIndata,string divType) + { + string tmpEnc = ""; + + try + { + + if (sIndata.Length == 18 && sIndata.StartsWith("15442020") == true) + { + sIndata = sIndata + "="; + } + + //#20171024 START, PHJ + //DeviceICReader.cs로 결제코드,상세코드를 넘기기 위해서. + //해피포인트로 현금영수증 승인하는지 구분하기 위해서. + + m_cDeviceICReader.PAY_WAY_CD = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM; + m_cDeviceICReader.PAY_DTL_CD = ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL; + //#20171024 END, PHJ + + //카드번호 처리 부분 임시 주석 2016-06-15 + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + // "0"인 경우 마스킹 미처리 + //기존 + //tmpEnc = m_cDeviceICReader.GetEncryptedCardNo(sIndata).Trim(); + //변경 + tmpEnc = m_cDeviceICReader.GetEncryptedCardNo(sIndata, "0").Trim(); + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + if (CmUtil.MidH(tmpEnc, 0, 2) == "00") + { + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + //기존 + /* + // Mod, 2017.09.05, 전화번호 마스킹 변경 처리 + //m_sMaskingCardNo = CmUtil.MidH(tmpEnc, 514, 37).Trim(); + if (sIndata.Length == 10 || sIndata.Length == 11) + { + m_sMaskingCardNo = CmUtil.LeftH(sIndata, sIndata.Length - 4) + new string('*', 4); + } + else + { + m_sMaskingCardNo = CmUtil.MidH(tmpEnc, 514, 37).Trim(); + } + */ + //변경 + m_sInMaskData = CmUtil.MidH(tmpEnc, 514, 37).Trim(); + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + m_sInPutData = m_sInMaskData; + + //#20180426 현금영수증 마스킹 변경 및 영수증 문구 변경 start + //기존 + /* + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + + if (sIndata.Length == 10 || sIndata.Length == 11) + { + //#20171121 전화번호 길이와 마스킹 된 값의 길이와 다름. start, phj + //기존 + //m_sMaskingCardNo = CmUtil.LeftH(m_sMaskingCardNo, m_sMaskingCardNo.Length - 4) + new string('*', 4); + + //변경 + m_sMaskingCardNo = CmUtil.LeftH(sIndata, 6) + new string('*', sIndata.Length - 6); + //#20171121 전화번호 길이와 마스킹 된 값의 길이와 다름. end, phj + } + else + { + m_sMaskingCardNo = CmUtil.MidH(m_sMaskingCardNo, 0, 6) + "********"; + } + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + */ + //#20180426 현금영수증 마스킹 변경 및 영수증 문구 변경 end + + //#20171024 지출증빙으로 발행시 입력한 자리수까지만 영수증상에 표시 되도록 수정 start + //10자리 입력시 spcnpos.dll로 암호화 처리시 6자리+'******' 로 변환이 되어 11자리 입력 한 것으로 보임 + if (divType == "1") + { + m_sInMaskData = CmUtil.MidH(m_sInMaskData, 0, sIndata.Length); + } + //#20171024 지출증빙으로 발행시 입력한 자리수까지만 영수증상에 표시 되도록 수정 end + + tmpEnc = CmUtil.MidH(tmpEnc, 2, 512).Trim(); + } + else + { + tmpEnc = ""; + + + //암호화 처리 실패! + CommonLog.ErrorLogWrite(this, "EncryptedCashInputNo()", "Fail !!"); + } + } + catch (Exception ex) + { + tmpEnc = ""; + CommonLog.ErrorLogWrite(this, "EncryptedCashInputNo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + return tmpEnc; + + } + /// + /// 최종 결제 처리 + /// + /// + public void StartCertifyProcessing(LastPaymentsType _paymentsType, string _inputString, double _payments) + { + try + { + CommonLog.InfoLogWrite(this,"StartCertifyProcessing()","Start"); + m_bProcessSuccess = false; + ReadBarcordNumber = string.Empty; + if (NeedInitModule) + { + SendReadStart(); + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.LastPaymentsNotInitailzedError); + } + else + { + PaymentsType = _paymentsType; + Payment = _payments; + m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL; + switch(PaymentsType) + { + case LastPaymentsType.IcCard: + case LastPaymentsType.SsLgPay: + ReadProcessEnd = false; + IcCallBack = true; + while (!ReadProcessEnd) ; + + + + + + if (!string.IsNullOrEmpty(m_sInPutData)) + { + + + + CompleteTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.LastPaymentsCardReadingError); + } + break; + case LastPaymentsType.HappyGift: + ReadProcessEnd = false; + IcCallBack = true; + while (!ReadProcessEnd && string.IsNullOrEmpty(ReadBarcordNumber)) ; + if (!ReadProcessEnd) + { + if (IcCallBack) + { + m_cDeviceICReader.UnRegIcCallbackCardInfo(); + IcCallBack = false; + } + ReadProcessEnd = true; + } + else + { + ReadBarcordNumber = string.Empty; + } + if (!string.IsNullOrEmpty(ReadBarcordNumber)) + { + m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + m_sInMaskData = _inputString; + m_sInPutData = _inputString + "="; + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sCardNo)) + { + CompleteTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.LastPaymentsEncrtipError); + } + } + else + { + if (!string.IsNullOrEmpty(m_sInPutData)) + { + CompleteTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.LastPaymentsCardReadingError); + } + } + break; + case LastPaymentsType.CashBee: + case LastPaymentsType.Tmoney: + case LastPaymentsType.SpcEmployee: + SendReadStart(); + SendErrLogEvent(ErrorCode.LastPaymentsUnknownError); + break; + case LastPaymentsType.SmilePay: + case LastPaymentsType.AliPay: + case LastPaymentsType.ZeroPay: + //SendReadStart(); + if (_inputString.Replace("=", "").Replace("@", "").Length.Equals(16)) + { + m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + m_sInMaskData = _inputString; + m_sInPutData = _inputString + "="; + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sCardNo)) + { + CompleteTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.LastPaymentsEncrtipError); + } + } + else + { + SendErrLogEvent(ErrorCode.LastPaymentsCardNumberError); + } + break; + } + } + CommonLog.DebugLogWrite(this,"StartCertifyProcessing()","m_cDeviceICReader.Init_ICReader Before"); + m_cDeviceICReader.Init_ICReader(" "); + CommonLog.DebugLogWrite(this, "StartCertifyProcessing()", "m_cDeviceICReader.Init_ICReader After"); + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCertifyProcessing()","Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 휴대폰 번호 형식 확인 + /// + /// + /// + private bool IsCellularPhoneNumber(string sInputData) + { + bool bRet = false; + try + { + if (sInputData.Length == 10 || sInputData.Length == 11) + { + if (sInputData.StartsWith("010") == true || sInputData.StartsWith("011") == true || sInputData.StartsWith("017") == true || + sInputData.StartsWith("016") == true || sInputData.StartsWith("018") == true || sInputData.StartsWith("019") == true) + { + bRet = true; + } + } + } + catch + { + bRet = false; + } + return bRet; + } + /// + /// 승인 전문 처리 + /// + private void CompleteTxtInPut() + { + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "Start"); + string sRet = UserCom.RST_ERR; + object m_cPayments = null; + object m_cPaymentsGift = null; + try + { + m_bProcessSuccess = false; + switch (PaymentsType) + { + case LastPaymentsType.IcCard: + case LastPaymentsType.SsLgPay: + //0:마스킹 카드번호 1:입력구분 2:카드번호 3:할부개월 4:총금액 5:봉사료 + //6:세금 7:비밀번호 8:신용카드종류 9:칩데이터 10:사인 + //11:Fallback구분 12:제휴할인금액(캠페인) 13:원승인번호 14:원승인일자 15:아이템코드 + //16:매입사코드 17:매입사명 18:할인카드구분 19:할인금액 + //20:승인구분 21:매체구분 22:서비스코드 + + // 캠페인 처리 => 키값(취소시사용),카드번호,캠페인대상,지불구분,지불금액 + ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); + double nDisAmt = m_cCampaingMain.ExecuteCampaignPayment(alPayItem.Count.ToString(), m_sCardNo + "0", ItemConst.CPI_CUST_PAY_TYPE.CREDTCARD, Payment); + var lastPayment = CmUtil.DoubleSubtraction(Payment, nDisAmt); + + m_sSign = string.Empty; + if (NoSignLimitAmount > 0 && lastPayment > NoSignLimitAmount) + { + SignEndStatus = false; + SignStart(); + while (!SignEndStatus) ; + SignEnd(); + + } + m_sTax = m_cDataService.GetPaymentAmtVAT(lastPayment).ToString(); + m_cPayments = sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.CREDITCARD); + m_cPaymentsGift = sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HPGIFTCARD); + + + if (m_cPayments is IPaymentUs paymentUs) + { + + // 해피기프트카드 체크 2019.04.25 + //string[] aRet = new string[4]; + //string m_sCardDiv = ""; + //sRet = paymentUs.SearchPayment(new string[] { PosConst.CREDITCARD_SEARCH_TYPE.PREFIX, CmUtil.MidH(m_sInMaskData, 0, 6).ToString() }, ref aRet); + //if (sRet == UserCom.RST_OK) + //{ + // m_sCardDiv = aRet[0].Trim(); + //} + //else + //{ + // InDataToZeroFill(); + // m_bProcessSuccess = false; + // if (!sRet.Equals(UserCom.RST_ERR)) SendErrorMessageEvent(sRet); + //} + ////해피기프트카드 체크 끝 + //sRet = UserCom.RST_ERR; + + //if (aRet[0].Trim() == "C" )//&& aRet[2] == "98") + //{ + // // 해피기프트(신) + // if (m_cPaymentsGift is IPaymentUs paymentUsGift) + // { + // sRet = paymentUsGift.SetPayment(new string[] { + // /*0*/m_sInMaskData, /*1*/m_InputType, /*2*/m_sCardNo, /*3*/"00", /*4*/Payment.ToString(), /*5*/"0" + // , /*6*/m_sTax, /*7*/"", /*8*/"", /*9*/m_sIcChip, /*10*/"" + // , /*11*/m_sFallDiv, /*12*/"0",/*13*/"",/*14*/"",/*15*/"" + // , /*16*/"",/*17*/"",/*18*/"", /*19*/m_dCreditCardDcAtm.ToString() + // , /*20*/ItemConst.PAY_APP_DIV.NORMAL, /*21*/"", /*22*/m_sService }); + + // } + //} + //else + //{ + sRet = paymentUs.SetPayment(new string[] { + /*0*/m_sInMaskData, /*1*/m_InputType, /*2*/m_sCardNo, /*3*/"00", /*4*/lastPayment.ToString(), /*5*/"0" + , /*6*/m_sTax, /*7*/"", /*8*/"", /*9*/m_sIcChip, /*10*/m_sSign + , /*11*/m_sFallDiv, /*12*/"0",/*13*/"",/*14*/"",/*15*/"" + , /*16*/"",/*17*/"",/*18*/"", /*19*/m_dCreditCardDcAtm.ToString() + , /*20*/ItemConst.PAY_APP_DIV.NORMAL, /*21*/"", /*22*/m_sService }); + //} + + + if (sRet != UserCom.RST_OK) + { + InDataToZeroFill(); + m_bProcessSuccess = false; + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.LastPaymentsUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + PaymentsValue = lastPayment; + m_bProcessSuccess = true; + } + } + break; + + case LastPaymentsType.SmilePay: + + #region :: Smile Pay 결제로직 + + // 승인금액 또는 결제 금액을 확인 하세요. + //if (m_cDataService.DoubleParse(txtPayAmt.Text) <= 0) + //{ + // MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0597); + // return false; + //} + + string sInPutType = m_InputType; + string sInPutData = m_sInPutData; + string sInEncData = m_sCardNo; + string sInOrgData = m_sInPutData; + //if (m_sInEncData == "") + //{ + // if (m_sInPutData == "") + // { + // ///sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + // sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP; + // sInOrgData = txtCardNo.Value; + // //sInPutData = txtCardNo.Value; + // } + + // EncryptedCardNo(sInOrgData, ref sInPutData, ref sInEncData); + //} + + //#17169 스마일페이 변경요청 건 start, 20181113 + //기존소스 + /* + //#17169 스마일페이 변경요청 건 start + string sSmilepayCampaingCode = ""; + string sSmilepayPromotionCode = ""; + double dSmileCashTargetAmt = 0; + if (m_cDataService.DoubleParse(txtDCAmt.Text) > 0) + { + m_cCampaingMain.GetSmilepayPromotionCode(out sSmilepayCampaingCode, out sSmilepayPromotionCode); + if (sSmilepayCampaingCode != "" && sSmilepayPromotionCode != "") { dSmileCashTargetAmt = m_cCampaingMain.GetSmileCashTargetAmt(sSmilepayCampaingCode); } + } + //#17169 스마일페이 변경요청 건 end + */ + + //변경소스 + string sSmilepayPromotionCode = ""; //스마일페이로모션코드 + double dSmileCashTargetAmt = 0; //스마일캐시금액 + bool bApplyCampaign = false; // 적용된캠페인유무 + + m_cCampaingMain.GetSmailePayCampaignCheck(Payment, out sSmilepayPromotionCode, out dSmileCashTargetAmt, out bApplyCampaign); + //#17169 스마일페이 변경요청 건 end, 20181113 + + //#17169 스마일페이 변경요청 건 start + //기존 + //포인트 사용 승인 처리 + //sRet = m_cSmilePay.SetPayment(new string[] { m_sPosMenuKey, sInPutType, sInPutData, sInEncData, m_cDataService.DoubleParse(txtPayAmt.Text).ToString(), "", sInOrgData }); + //변경 + //포인트 사용 승인 처리 + m_sPosMenuKey = PosKey.MENU_KEY.SMILE_PAY; + sRet = m_cSmilePay.SetPayment(new string[] { m_sPosMenuKey, sInPutType, sInPutData, sInEncData, Payment.ToString(), "", sInOrgData, sSmilepayPromotionCode, m_cPosStatus.Global.NumericTOCurrency(dSmileCashTargetAmt) }); + //#17169 스마일페이 변경요청 건 end + + if (sRet != UserCom.RST_OK) + { + m_bProcessSuccess = false; + SendErrLogEvent(ErrorCode.LastPaymentsUnknownError); + return; + } + else + { // 자동적립사용이면 스마일페이 자동적립 처리 + if (PosMstManager.GetPosOption(POS_OPTION.OPT030) == "1") + { + sRet = m_cHappyPoint.SetSmilePayment(new string[] { sInPutType, sInPutData, sInEncData, "0", "", sInOrgData }); + } + if (!sRet.Equals(UserCom.RST_OK)) + { + + } + + } + + // 캠페인 처리 => 키값(취소시사용),카드번호,캠페인대상,지불구분,지불금액 + ArrayList alPayItem2 = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); + m_cCampaingMain.CompleteCampaignPayment((alPayItem2.Count - 1).ToString()); + //#14538 스마일페이 캠페인 확인창 중복 팝업 확인요청 start,phj + //double nDisAmt2 = m_cCampaingMain.ExecuteCampaignPayment(alPayItem2.Count.ToString(), m_sCardNo, ItemConst.CPI_CUST_PAY_TYPE.SMILEPAY, Payment, false); + + PaymentsValue = Payment; + m_bProcessSuccess = true; + + #endregion + + break; + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this,"CompleteTxtInPut()","Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + if (m_cPayments != null) m_cPayments = null; + } + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "End"); + } + /// + /// 카드 번호 암호화 + /// + /// + /// + /// + /// + private bool EncryptedCardNo(string sInData, ref string sInMaskData, ref string sInEncData) + { + string sEncData = sInData; + bool bRet = false; + try + { + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + // "0"인 경우 마스킹 미처리 + //기존 + //sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData).Trim(); + //변경 + sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData, "0").Trim(); + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + if (CmUtil.MidH(sEncData, 0, 2) == "00") + { + sInEncData = CmUtil.MidH(sEncData, 2, 512).Trim(); // 암호화 데이터 + sInMaskData = CmUtil.MidH(sEncData, 514, sEncData.Length - 514).Trim(); // 마스킹 데이터 + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + sInMaskData = CmUtil.MidH(sInMaskData, 0, 6) + "********"; + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + bRet = true; + } + else + { + CommonLog.ErrorLogWrite(this,"EncryptedCardNo()","Fail !!"); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this,"EncryptedCardNo()","Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + return bRet; + } + + #region 여전법 대응 + /// + /// ZeroFill 초기화 + /// + private void InDataToZeroFill() + { + try + { + + //여전법 대응! + ////////////////////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref m_sInPutData); + CmUtil.ZeroFillClear(ref m_sCardNo); + CmUtil.ZeroFillClear(ref m_sInMaskData); + ////////////////////////////////////////////////////////////////////////////////// + } + catch + { + } + + } + #endregion 여전법 대응 + + #region IC리더 콜백 + + /// + /// IC리더 콜백 함수(CardInfo) + /// + /// + /// + public void OnIcReaderCallBackCardInfo(int num, StringBuilder str) + { + try + { + IcCallBack = false; + switch (PaymentsType) + { + case LastPaymentsType.IcCard: + case LastPaymentsType.SsLgPay: + case LastPaymentsType.HappyGift: + SendReadStart(); + break; + } + ClearCardInfo(); // 카드 입력 정보 클리어 + if (num > 0) + { + string sRsvStr = str.ToString(); + if (CmUtil.MidH(sRsvStr, 0, 2) == "00") + { + m_sCardNo = CmUtil.MidH(sRsvStr, 6, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 1030, 37).Trim(); + m_sService = CmUtil.MidH(sRsvStr, 1067, 5).Trim(); + m_sFallDiv = CmUtil.MidH(sRsvStr, 3, 1).Trim(); + m_sIcChip = CmUtil.MidH(sRsvStr, 518, 512).Trim(); + //#15183 보안리더기 삼성페이 해피포인트 자동적립 기능 수정 start,phj + m_sMobileCode = CmUtil.MidH(sRsvStr, 1072, 7).Trim(); + //#15183 보안리더기 삼성페이 해피포인트 자동적립 기능 수정 end,phj + if (CmUtil.MidH(sRsvStr, 4, 2).Trim() == "02") + //if (CmUtil.MidH(sRsvStr, 6, 2).Trim() == "EN") //모터드리븐 처리 (2019.04.23) + { + m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + m_sIcChip = m_sFallDiv.Equals("3") ? m_sIcChip : string.Empty; + } + else + { + m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_IC; + } + m_sInPutData = m_sInMaskData; + } + } + + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this,"OnIcReaderCallBackCardInfo()","Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + ReadProcessEnd = true; + } + + private bool GetIcCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + + + if (m_cDeviceICReader.GetCardInfo_ICReader(PosConst.IC_READER_TRAN_TYPE.CREDIT, CmUtil.IntParse(Payment.ToString()), ref sRsvStr) == true) + { + if (CmUtil.MidH(sRsvStr, 0, 2) == "00") + { + m_sCardNo = CmUtil.MidH(sRsvStr, 6, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 1030, 37).Trim(); + m_sIcChip = CmUtil.MidH(sRsvStr, 518, 512).Trim(); + if (CmUtil.MidH(sRsvStr, 4, 2).Trim() == "02") + { + m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + } + else + { + m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_IC; + } + m_sService = CmUtil.MidH(sRsvStr, 1067, 5).Trim(); + m_sFallDiv = CmUtil.MidH(sRsvStr, 3, 1); // == "3" ? "0" : "1"; + m_sInPutData = m_sInMaskData; + //#15183 보안리더기 삼성페이 해피포인트 자동적립 기능 수정 start,phj + m_sMobileCode = CmUtil.MidH(sRsvStr, 1072, 7).Trim(); + //#15183 보안리더기 삼성페이 해피포인트 자동적립 기능 수정 end,phj + return true; + } + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetIcCardData()","Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + #endregion + private void SendErrorMessageEvent(string _errorMessageString) + { + try + { + CommonLog.ErrorLogWrite(this, "SendErrorMessageEvent()", _errorMessageString); + ErrorMessageEvent(_errorMessageString); + } + catch + { + } + } + private void SendErrLogEvent(ErrorCode _errorCode) + { + try + { + CommonLog.DebugLogWrite(this, "SendErrLogEvent()", _errorCode.ToString()); + ErrorEvent(_errorCode); + } + catch + { + + } + } + private void SendReadStart() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadStart()"); + ReadStart(this); + } + catch + { + + } + } + private void SendReadEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadEnd()"); + ReadEnd(this); + } + catch + { + + } + } + + private void SignStart() + { + try + { + CommonLog.DebugLogWrite(this, "SignStart()"); + SignStartEvent(this); + } + catch + { + + } + + } + private void SignEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SignEnd()"); + SignEndEvent(this); + } + catch + { + + } + + } + + + private void ClearCardInfo() + { + try + { + m_sSign = ""; + m_InputType = ""; // 입력구분 + m_sInPutData = ""; // 입력데이터 + m_sInMaskData = ""; // 마스킹 + m_sCardNo = ""; // 카드데이터인카드번호 + + + m_bProcessSuccess = false; + } + catch + { + } + } + #endregion + + + + + } +} \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/posMobileCompanyDiscount.cs b/Kiosk/Payments/SPC.Kiosk.Payments/posMobileCompanyDiscount.cs new file mode 100644 index 0000000..1bda776 --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/posMobileCompanyDiscount.cs @@ -0,0 +1,578 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Payments +{ + /// + /// 통신사 할인 승인 + /// + public class posMobileCompanyDiscount : IDisposable + { + //CommonLog.ErrorLogWrite("SPC.Kiosk.Payments.posMobileCompanyDiscount ?() Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + #region [ Members ] + public enum ErrorCode + { + MobileCompanyDiscountCardNumberError, + MobileCompanyDiscountEncrtipError, + MobileCompanyDiscountNotInitailzedError, + MobileCompanyDiscountProcessingTimeOut, + MobileCompanyDiscountUnknownError, + MobileCompanyDiscountCardNumError + } + /// + /// ErrorMessage Event + /// + /// 반환 로그 + public delegate void ErrorMessageEventHandler(string ErrorString); + /// + /// 로그메세지 이벤트 반환용 + /// + public event ErrorMessageEventHandler ErrorMessageEvent; + /// + /// Error 반환 Event + /// + /// 반환 Error Code + public delegate void LogErrorHandler(ErrorCode errorCode); + /// + /// Error Code 이벤트 반환용 + /// + public event LogErrorHandler ErrorEvent; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadStart(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadStart ReadStart; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadEnd(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadEnd ReadEnd; + + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + private DeviceStatus m_cDevStatus = null; // 디바이스 관리 + private PosOLEDevice.DelegateIcReader delegateReader; // IC리더 콜백 + private IICReaderUs m_cDeviceICReader = null; + private IPaymentUs m_cMobilePoint = null; + + private string m_sPosMenuKey = string.Empty; + /// + /// 입력구분 + /// + private string m_sInPutType = string.Empty; + /// + /// 입력데이터 + /// + private string m_sInPutData = string.Empty; + /// + /// 마스킹데이터 + /// + private string m_sInMaskData = string.Empty; + /// + /// 카드데이터(암호화) + /// + private string m_sInEncData = string.Empty; + /// + /// 서비스코드 + /// + private string m_sServiceCode = string.Empty; + /// + /// 조회 성공 여부 + /// + private bool m_bSearchSuccess = false; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + /// + /// 승인 수단 + /// + public string CertifyKey { get; set; } = string.Empty; + public MobileCompanyType MobileCompany { get; set; } + + public double Payment { get; set; } = 0d; + + private bool icCallBack = false; + /// + /// Ic Reader CallBack Switch + /// + public bool IcCallBack + { + get { return icCallBack; } + set + { + if (value) + { + m_cDeviceICReader.RegIcCallback(delegateReader); + } + icCallBack = value; + } + } + /// + /// 마스크된 회원성명 + /// + public string MemberName { get; protected set; } = string.Empty; + /// + /// 할인 금액 + /// + public double DiscountValue { get; protected set; } = 0d; + public long PaySEQ { get; protected set; } + public bool KT_Double { get; set; } + /// + /// 인증 처리 성공 유무 + /// + public bool ProcessOK + { + get { return m_bSearchSuccess; } + } + public bool IsTimeout + { + set + { + if (value) + { + ErrorEvent(ErrorCode.MobileCompanyDiscountProcessingTimeOut); + } + } + } + #endregion + + #region [ Ctor && Dispose ] + /// + /// Ctor + /// + public posMobileCompanyDiscount() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + NeedInitModule = StateObject.POS == null + || StateObject.TRAN == null + || StateObject.DEVICE == null; + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + m_cDeviceICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER); + m_cMobilePoint = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTMOBILECOM); + delegateReader = new PosOLEDevice.DelegateIcReader(OnIcReaderCallBack); // IC리더 콜백 + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// + /// + public void Dispose() + { + + try + { + InDataToZeroFill(); + + sManager = null; + StateObject = null; + m_cPosStatus = null; // POS 기본정보 + m_cTrnStatus = null; // POS 거래정보 + m_cDevStatus = null; + + m_cDeviceICReader = null; + m_cMobilePoint = null; + delegateReader = null; // IC리더 콜백 + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region [ Methods ] + + /// + /// 통신사 할인 처리 + /// + /// + public void StartCertifyProcessing(string _inputString, MobileCompanyType _mobileCompanyType,double _payments) + { + try + { + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.MobileCompanyDiscountNotInitailzedError); + } + else + { + var startPorcess = false; + if (_inputString.Replace("=", "").Replace("@", "").Length.Equals(16)) + { + MobileCompany = _mobileCompanyType; + Payment = _payments; + m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL; + switch (MobileCompany) + { + case MobileCompanyType.KT_Mobile: + if (KT_Double) + { + m_sPosMenuKey = PosKey.MENU_KEY.KT_DOUBLE; + } + else + { + m_sPosMenuKey = PosKey.MENU_KEY.KT; + } + break; + case MobileCompanyType.SK_Telecom: + m_sPosMenuKey = PosKey.MENU_KEY.SKT; + break; + case MobileCompanyType.LG_Uplus: + m_sPosMenuKey = PosKey.MENU_KEY.LGT; + break; + } + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + m_sInMaskData = _inputString; + m_sInPutData = _inputString + "="; + startPorcess = true; + } + else + { + SendErrLogEvent(ErrorCode.MobileCompanyDiscountCardNumError); + } + //승인 전문 처리 + if (startPorcess) + { + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData)) + { + CompleteTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.MobileCompanyDiscountEncrtipError); + } + } + else + { + SendErrLogEvent(ErrorCode.MobileCompanyDiscountUnknownError); + } + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCertifyProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 휴대폰 번호 형식 확인 + /// + /// + /// + private bool IsCellularPhoneNumber(string sInputData) + { + bool bRet = false; + try + { + if (sInputData.Length == 10 || sInputData.Length == 11) + { + if (sInputData.StartsWith("010") == true || sInputData.StartsWith("011") == true || sInputData.StartsWith("017") == true || + sInputData.StartsWith("016") == true || sInputData.StartsWith("018") == true || sInputData.StartsWith("019") == true) + { + bRet = true; + } + } + } + catch + { + bRet = false; + } + return bRet; + } + /// + /// Happoint 조회 전문 처리 + /// + private void CompleteTxtInPut() + { + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "Start"); + string sRet = UserCom.RST_ERR; + try + { + + m_bSearchSuccess = false; + + // 승인 + sRet = m_cMobilePoint.SetPayment(new string[] { m_sPosMenuKey, m_sInPutType, m_sInMaskData, m_sInEncData, Payment.ToString(), "", "", "", "", "", "", "", "", "", "", "" }); + if (sRet != UserCom.RST_OK) + { + CertifyKey = string.Empty; + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.MobileCompanyDiscountUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + + CertifyKey = m_sInPutData; + var cPayItem = (Column.TR_PAYMENT.DATA)m_cMobilePoint.GetPayment(new string[] { }); + PaySEQ = cPayItem.SEQ; + DiscountValue = cPayItem.AMT_ENTRY_01; + m_bSearchSuccess = true; + + } } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CompleteTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "End"); + } + /// + /// 카드 번호 암호화 + /// + /// + /// + /// + /// + private bool EncryptedCardNo(string sInData, ref string sInMaskData, ref string sInEncData) + { + string sEncData = sInData; + bool bRet = false; + try + { + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + // "0"인 경우 마스킹 미처리 + //기존 + //sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData).Trim(); + //변경 + sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData, "0").Trim(); + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + if (CmUtil.MidH(sEncData, 0, 2) == "00") + { + sInEncData = CmUtil.MidH(sEncData, 2, 512).Trim(); // 암호화 데이터 + sInMaskData = CmUtil.MidH(sEncData, 514, sEncData.Length - 514).Trim(); // 마스킹 데이터 + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + sInMaskData = CmUtil.MidH(sInMaskData, 0, 6) + "********"; + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + bRet = true; + } + else + { + CommonLog.ErrorLogWrite(this, "EncryptedCardNo()", "Fail !!"); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "EncryptedCardNo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + return bRet; + } + + #region 여전법 대응 + /// + /// ZeroFill 초기화 + /// + private void InDataToZeroFill() + { + try + { + + //여전법 대응! + ////////////////////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref m_sInPutData); + CmUtil.ZeroFillClear(ref m_sInEncData); + CmUtil.ZeroFillClear(ref m_sInMaskData); + ////////////////////////////////////////////////////////////////////////////////// + } + catch + { + } + + } + #endregion 여전법 대응 + + #region IC리더 콜백 + //delegate void DelegateIcReaderCallBack(int rc, StringBuilder str); + /// + /// IC리더 콜백 함수 + /// + /// + /// + public void OnIcReaderCallBack(int num, StringBuilder str) + { + try + { + SendReadStart(); + if (num == 1) + { + GetIcCardData(); + } + else + { + if (str.ToString().StartsWith("EN")) + { + ClearCardInfo(); // 카드 입력 정보 클리어 + + m_sInEncData = CmUtil.MidH(str.ToString(), 0, 512).Trim(); + m_sInMaskData = CmUtil.MidH(str.ToString(), 512, 40).Trim(); + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + } + } + if (!string.IsNullOrEmpty(m_sInPutData)) CompleteTxtInPut(); + SendReadEnd(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OnIcReaderCallBack()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private bool GetIcCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + + ClearCardInfo(); // 카드 입력 정보 클리어 + + if (m_cDeviceICReader.GetCardInfo_ICReader(PosConst.IC_READER_TRAN_TYPE.POINT, 0, ref sRsvStr) == true) + { + if (CmUtil.MidH(sRsvStr, 0, 2) == "00") + { + m_sInEncData = CmUtil.MidH(sRsvStr, 6, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 1030, 37).Trim(); + m_sServiceCode = CmUtil.MidH(sRsvStr, 1067, 5).Trim(); + + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + + + + return true; + } + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetIcCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + #endregion + private void SendErrorMessageEvent(string _errorMessageString) + { + try + { + CommonLog.ErrorLogWrite(this, "SendErrorMessageEvent()", _errorMessageString); + ErrorMessageEvent(_errorMessageString); + } + catch + { + } + } + private void SendErrLogEvent(ErrorCode _errorCode) + { + try + { + CommonLog.DebugLogWrite(this, "SendErrLogEvent()", _errorCode.ToString()); + ErrorEvent(_errorCode); + } + catch + { + + } + } + private void SendReadStart() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadStart()"); + ReadStart(this); + } + catch + { + + } + } + private void SendReadEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadEnd()"); + ReadEnd(this); + } + catch + { + + } + } + private void ClearCardInfo() + { + try + { + m_sInPutType = ""; // 입력구분 + m_sInPutData = ""; // 입력데이터 + m_sInMaskData = ""; // 마스킹 + m_sInEncData = ""; // 카드데이터인카드번호 + + + m_bSearchSuccess = false; + } + catch + { + } + } + #endregion + + + + + } +} \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/posMobileHappyCoupon.cs b/Kiosk/Payments/SPC.Kiosk.Payments/posMobileHappyCoupon.cs new file mode 100644 index 0000000..4a52165 --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/posMobileHappyCoupon.cs @@ -0,0 +1,1111 @@ + +using System; +using System.Data; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Threading; +using System.Collections; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Payments +{ + /// + /// POS HappyPoint Approval Process + /// + public class posMobileHappyCoupon : IDisposable + { + //CommonLog.ErrorLogWrite(this, "Ctor", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + #region [ Members ] + /// + /// HappyPointCertify ErrorCode + /// + public enum ErrorCode + { + MobileHappyCouponMobilePhoneNumberError, + MobileHappyCouponMobileCouponNumberError, + MobileHappyCouponMemInfoEncryptedCardNoError, + MobileHappyCouponNotInitailzedError, + MobileHappyCouponProcessingTimeOut, + MobileHappyCouponTotalAmount, + MobileHappyCouponCanUseCouponsIsZero, + MobileHappyCouponUnknownError, + } + /// + /// ErrorMessage Event + /// + /// 반환 로그 + public delegate void ErrorMessageEventHandler(string ErrorString); + /// + /// 로그메세지 이벤트 반환용 + /// + public event ErrorMessageEventHandler ErrorMessageEvent; + /// + /// Error 반환 Event + /// + /// 반환 Error Code + public delegate void LogErrorHandler(ErrorCode errorCode); + /// + /// Error Code 이벤트 반환용 + /// + public event LogErrorHandler ErrorEvent; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadStart(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadStart ReadStart; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadEnd(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadEnd ReadEnd; + + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + private DeviceStatus m_cDevStatus = null; // 디바이스 관리 + private IDataProcessUs m_cDataService = null; + private IDataCommonUs m_cDataCommon = null; + private IPaymentUs m_cMobileCoupon = null; + + private string mPay_DC_Type = ""; // 결제 그룹 코드 + private string mPay_DC_CD = ""; // 결제 상세 코드 + private string m_sPosMenuKey = PosKey.MENU_KEY.MOBILE_COUPON_HAPPYCON; // 입력값 할인 + private string[] m_aRecvdData = null; + /// + /// 상품정보 작업용 + /// + private ArrayList m_aSaleItem = null; + private struct ITEM_PLU_CHECK + { + public string sCouponNo; // 쿠폰코드 + public string sVCouponNo; // 가상 쿠폰코드 + public string sProductID; // 프로덕트 코드 + public string iTemCD; // 상품코드 + public double T_Qty; // 구매해야될 건수 + public double S_Qty; // 구매한 건수 + public double SALE_PRC; // 상품단가 + public double SaleAmt; // 상품판매금액 + public double PayAmt; // 상품결제금액 + public double DCAmt; // 할인 + } + /// + /// 입력구분 + /// + private string m_sInPutType = ""; + /// + /// 입력데이터 + /// + private string m_sInPutData = ""; + /// + /// 마스킹데이터 + /// + private string m_sInMaskData = ""; + /// + /// 카드데이터(암호화) + /// + private string m_sInEncData = ""; + /// + /// 서비스코드 + /// + private string m_sServiceCode = ""; + /// + /// 승인카드번호 + /// + private string m_sAppCardNo = ""; + /// + /// 조회 성공 여부 + /// + private bool m_bSearchSuccess = false; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + /// + /// 승인 수단 + /// + public string CertifyKey { get; set; } = string.Empty; + /// + /// 마스크된 회원성명 + /// + public string MemberName { get; protected set; } = string.Empty; + public string MemberNumber { get; protected set; } = string.Empty; + /// + /// SPC 임직원 유무 + /// + public bool IsCompanyMember { get; protected set; } + /// + /// 적립 가능 유무 + /// + public bool CanReservePoint { get; protected set; } + /// + /// 회원 등급 + /// + public string MemberLevel { get; protected set; } = string.Empty; + /// + /// 회원 비밀번호 + /// + public string MemberPassword { get; protected set; } = string.Empty; + /// + /// HappyApp 가입 고객 + /// + public bool IsAppMamber { get; protected set; } = false; + /// + /// 단골 매장 유무 + /// + public bool IsFavoriteStore { get; protected set; } = false; + /// + /// 회원 적립 Point + /// + public double MemberPoint { get; protected set; } = 0d; + /// + /// 회원 가용 Point + /// + public double UseablePoint { get; protected set; } = 0d; + /// + /// 승인 요청 포인트 + /// + public double UseingPoint { get; set; } = 0d; + /// + /// 승인 포인트 + /// + public double ApprovalPoint { get; protected set; } = 0d; + /// + /// Point 사용시 비번 필요 유무 + /// + public bool NeedPassword { get; protected set; } + public double Payments { get; protected set; } + public long PaySEQ { get; protected set; } + /// + /// 인증 처리 성공 유무 + /// + public bool ProcessOK + { + get { return m_bSearchSuccess; } + } + /// + /// Processing TimeOut + /// + public bool IsTimeout + { + set + { + if (value) + { + ErrorEvent(ErrorCode.MobileHappyCouponProcessingTimeOut); + } + } + } + public M_MobileCouponReturn CouponData { get; protected set; } + #endregion + + #region [ Ctor && Dispose ] + /// + /// Ctor + /// + public posMobileHappyCoupon() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + NeedInitModule = StateObject.POS == null + || StateObject.TRAN == null + || StateObject.DEVICE == null; + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE); + m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); + m_cMobileCoupon = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.MOBILECOUPON_HAPPYCON); + + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// + /// + public void Dispose() + { + try + { + InDataToZeroFill(); + + sManager = null; + StateObject = null; + m_cPosStatus = null; // POS 기본정보 + m_cTrnStatus = null; // POS 거래정보 + m_cDevStatus = null; + + + m_cDataService = null; + m_cDataCommon = null; + m_cMobileCoupon = null; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region [ Methods ] + /// + /// HappyPoint 회원 조회 (16 자리이면 Mobile BarCode, 그외는 전화 번호) + /// + /// + public void StartCertifyProcessing(string _inputString,double _payments) + { + try + { + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.MobileHappyCouponNotInitailzedError); + } + else + { + var startPorcess = false; + if (_inputString.Length > 6) + { + startPorcess = GetPrefixToPayTypeInfo(_inputString); + Payments = _payments; + } + else + { + SendErrLogEvent(ErrorCode.MobileHappyCouponMobileCouponNumberError); + } + //조회 전문 처리 + if (startPorcess) + { + //SearchTxtInPut(PosConst.POS_INQ_MODE.SEARCH, "", ""); + SearchTxtInPut(_inputString, _payments); + } + + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCertifyProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + public void StartPaymentProcessing(M_MobileCouponReturn _mobileCouponReturn, double _payments) + { + try + { + CommonLog.InfoLogWrite(this, "StartPaymentProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(3000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.MobileHappyCouponNotInitailzedError); + } + else + { + var startPorcess = false; + if (_mobileCouponReturn is M_MobileCouponReturn + && _mobileCouponReturn.VirtureCoupons.Where(r=>r.RequestPrice > 0 ).Count() > 0) + { + CouponData = _mobileCouponReturn; + Payments = _payments; + startPorcess = true; + } + else + { + SendErrLogEvent(ErrorCode.MobileHappyCouponTotalAmount); + } + //승인 전문 처리 + if (startPorcess) + { + CompleteTxtInPut(); + } + + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartPaymentProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartPaymentProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #region Prefix에 의한 사용 Van 정보 조회 + /// + /// Prefix에 의한 사용 Van 정보 조회 + /// + /// + /// + private bool GetPrefixToPayTypeInfo(string sCardNo) + { + bool result = false; + try + { + if (sCardNo.Length == 0) return false; + + // PreFix 검색 + DataTable dtVanInfo = m_cDataCommon.SeletPrefixToPayTypeInfo(sCardNo); + if (dtVanInfo == null || dtVanInfo.Rows.Count <= 0) + { + SendErrLogEvent(ErrorCode.MobileHappyCouponMobileCouponNumberError); + result = false; + } + else + { + DataRow drVanInfo = dtVanInfo.Rows[0]; + + // 결제 그룹 코드 + mPay_DC_Type = CmUtil.GetDataRowStr(drVanInfo, "PAY_DC_GRP_TYPE"); + // 결제 상세 코드 + mPay_DC_CD = CmUtil.GetDataRowStr(drVanInfo, "PAY_DC_CD"); + + result = true; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetPrefixToPayTypeInfo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + #endregion + #region CouponData 처리용 함수 + private MobileCouponType GetMobileCouponType(string _TypeCode) + { + MobileCouponType result = MobileCouponType.Normal; + try + { + switch (_TypeCode) + { + case "0": + result = MobileCouponType.Normal; + break; + case "1": + result = MobileCouponType.NormalValue; + break; + case "2": + result = MobileCouponType.CountLimit; + break; + case "3": + result = MobileCouponType.ValueLimit; + break; + case "4": + result = MobileCouponType.ValueFixed; + break; + default: + result = MobileCouponType.Normal; + break; + } + } + catch + { + result = MobileCouponType.Normal; + } + return result; + } + private string GetStringMobileCouponType(MobileCouponType _Type) + { + string result = "0"; + try + { + switch (_Type) + { + case MobileCouponType.Normal: + result = "0"; + break; + case MobileCouponType.NormalValue: + result = "1"; + break; + case MobileCouponType.CountLimit: + result = "2"; + break; + case MobileCouponType.ValueLimit: + result = "3"; + break; + case MobileCouponType.ValueFixed: + result = "4"; + break; + default: + result = "0"; + break; + } + } + catch + { + result = "0"; + } + return result; + } + private MobileCouponStatusType GetMobileCouponStatusType(string _TypeCode) + { + MobileCouponStatusType result = MobileCouponStatusType.CanNotUse; + try + { + switch (_TypeCode) + { + case "Y": + result = MobileCouponStatusType.CanUse; + break; + case "N": + result = MobileCouponStatusType.CanNotUse; + break; + case "D": + result = MobileCouponStatusType.Used; + break; + case "C": + result = MobileCouponStatusType.Cancel; + break; + case "R": + result = MobileCouponStatusType.Refound; + break; + default: + result = MobileCouponStatusType.CanNotUse; + break; + } + } + catch (Exception) + { + result = MobileCouponStatusType.CanNotUse; + } + return result; + + } + + private string GetNextData(ref int _index) + { + string result = string.Empty; + try + { + _index++; + if (m_aRecvdData.Length > _index) + { + result = m_aRecvdData[_index].Trim(); + } + + } + catch (Exception) + { + result = string.Empty; + } + return result; + } + private bool CouponDataCreate() + { + bool result = false; + try + { + int dataIndex = -1; + if (m_aRecvdData is string[] && m_aRecvdData.Length > 6) + { + if (GetNextData(ref dataIndex).Equals("0")) + { + GetNextData(ref dataIndex); // [1] 버림 + CouponData = new M_MobileCouponReturn + { + Number = GetNextData(ref dataIndex), //[2] + Name = GetNextData(ref dataIndex), //[3] + TotalAmount = CmUtil.LongParse(GetNextData(ref dataIndex)), //[4] + IsOnlyAllUse = GetNextData(ref dataIndex).Equals("1"), //[5] + }; + var virtureCouponCount = CmUtil.LongParse(GetNextData(ref dataIndex)); //[6] + var virtureCoupons = new List(); + for (int iLoop = 0; iLoop < virtureCouponCount; iLoop++) + { + var aVirtureCoupon = new M_MobileCouponDetail + { + Number = GetNextData(ref dataIndex), + Name = GetNextData(ref dataIndex), + BrandCode = GetNextData(ref dataIndex), + BrandName = GetNextData(ref dataIndex), + Type = GetMobileCouponType(GetNextData(ref dataIndex)), + Option = GetNextData(ref dataIndex).Equals("1") + ? MobileCouponOptionType.ItemFixed + : MobileCouponOptionType.None, + ShowPrice = CmUtil.LongParse(GetNextData(ref dataIndex)), + ByePrice = CmUtil.LongParse(GetNextData(ref dataIndex)), + RemainPrice = CmUtil.LongParse(GetNextData(ref dataIndex)), + CanUsingPrice = CmUtil.LongParse(GetNextData(ref dataIndex)), + GroupNo = CmUtil.IntParse(GetNextData(ref dataIndex)), + GroupLimitUsingCount = CmUtil.IntParse(GetNextData(ref dataIndex)), + StartDate = CommonFunction.GetDate(GetNextData(ref dataIndex)), + EndDate = CommonFunction.GetDate(GetNextData(ref dataIndex)), + Status = GetMobileCouponStatusType(GetNextData(ref dataIndex)), + StatusDetail = GetNextData(ref dataIndex), + ItemCodeKey = GetNextData(ref dataIndex), + }; + var itemCount = CmUtil.IntParse(GetNextData(ref dataIndex)); + var itemCodes = new List(); + if (itemCount > 0) + { + for (int iLoop2 = 0; iLoop2 < itemCount; iLoop2++) + { + itemCodes.Add(GetNextData(ref dataIndex)); + } + } + aVirtureCoupon.ItemCodes = itemCodes; + virtureCoupons.Add(aVirtureCoupon); + } + if (virtureCoupons.Where(r => r.Status.Equals(MobileCouponStatusType.CanUse)).Count() > 0) + { + CouponData.VirtureCoupons = virtureCoupons.OrderBy(r => r.Status).ToList(); + result = true; + } + else + { + SendErrLogEvent(ErrorCode.MobileHappyCouponCanUseCouponsIsZero); + CommonLog.ErrorLogWrite(this, "CouponDataCreate()", "Not found useable Coupons", string.Format("{0} : {1}", CouponData.Name, CouponData.Number)); + } + } + else + { + CommonLog.ErrorLogWrite(this, "CouponDataCreate()", "Fail !!", string.Format("{0}={1}", m_aRecvdData[0].Trim(), m_aRecvdData[1].Trim())); + } + } + else + { + CommonLog.ErrorLogWrite(this, "CouponDataCreate()", "Recive Data Length Fail !!"); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CouponDataCreate()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + + } + + #endregion + /// + /// 조회 처리 + /// + /// + private void SearchTxtInPut(string _inputString, double _payments) + { + string sCoponinfo = ""; + string sInPutType = ""; + string sInPutData = ""; + string sInEncData = ""; + try + { + CommonLog.DebugLogWrite(this, "SearchTxtInPut()", "Start"); + + // 중복체크 + //if (DataGridSetting(4, ref aRet, ref aRet2, ref aRet3) != UserCom.RST_OK) return sRet; + var sSearchType = PosConst.POS_INQ_MODE.SEARCH; + sInPutType = m_sInPutType; + sInPutData = m_sInPutData; + sInEncData = m_sInEncData; + if (m_sInEncData == "") + { + if (m_sInPutData == "") + { + sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN_CP; + sInPutData = _inputString; + } + } + m_aRecvdData = null; + var sRet = m_cMobileCoupon.SearchPayment(new string[] { m_sPosMenuKey, sInPutType, sInPutData, sInPutData, _payments.ToString(), "", "", "", mPay_DC_Type, mPay_DC_CD, sSearchType, sCoponinfo }, ref m_aRecvdData); + if (sRet != UserCom.RST_OK) + { + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.MobileHappyCouponUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + + } + else + { + m_bSearchSuccess = CouponDataCreate(); + + } + CommonLog.DebugLogWrite(this, "SearchTxtInPut()", string.Format("End : Result={0}", sRet)); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SearchTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + /// + /// 사용 승인 처리 + /// + /// + private void CompleteTxtInPut() + { + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "Start"); + string sProductiTem = string.Empty; + string sRet = UserCom.RST_ERR; + try + { + m_bSearchSuccess = false; + var sSendData = new StringBuilder(); + var sCounponIfo = new StringBuilder(); + bool biTemCheck = false; + // 상품정보 + ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); + + m_aSaleItem = new ArrayList(); + for (int iRow = 0; iRow < aSaleItem.Count; iRow++) + { + Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow]; + m_aSaleItem.Add(cSaleItem.Clone()); + } + var checkOK = true; + sSendData.Append(CmUtil.MidH(CouponData.VirtureCoupons.Where(r => r.Status.Equals(MobileCouponStatusType.CanUse)).Sum(r2=>r2.DiscountPrice).ToString(), 0, 10)); + sSendData.Append(CmUtil.MidH(CouponData.VirtureCoupons.Where(r =>r.Status.Equals(MobileCouponStatusType.CanUse)).Count().ToString(), 0, 5)); + foreach (var aCoupon in CouponData.VirtureCoupons) + { + if (aCoupon.DiscountPrice > 0) + { + if (CouponData.IsOnlyAllUse) + { + var checkGrooup = aCoupon.GroupNo; + var groupItemCount = CouponData.VirtureCoupons.Where(r => r.GroupNo.Equals(checkGrooup) + && r.Status.Equals(MobileCouponStatusType.CanUse)).Count(); + var usingIgtemCount = CouponData.VirtureCoupons.Where(r => r.GroupNo.Equals(checkGrooup) && r.RequestPrice > 0 + && r.Status.Equals(MobileCouponStatusType.CanUse)).Count(); + if (usingIgtemCount < groupItemCount) + { + SendErrorMessageEvent(POS_MESSAGE.ERROR.MSG_0410); + checkOK = false; + break; + } + } + + if (!string.IsNullOrEmpty(aCoupon.ItemCodeKey) + && (aCoupon.Type.Equals(MobileCouponType.Normal) + || aCoupon.Type.Equals(MobileCouponType.CountLimit) + || aCoupon.Type.Equals(MobileCouponType.ValueFixed) + )) + { + sRet = GetDCItemAmount(aCoupon.ItemCodeKey + , CouponData.Number + , aCoupon.Number + , m_cDataService.DoubleParse(aCoupon.DiscountPrice.ToString()) + , aCoupon.Option.Equals(MobileCouponOptionType.ItemFixed) ? "1" : "0", ref sProductiTem); + if (sRet != UserCom.RST_OK && aCoupon.Option.Equals(MobileCouponOptionType.ItemFixed)) + { + SendErrorMessageEvent(sRet); + checkOK = false; + break; + } + } + sSendData.Append(CmUtil.MidH(CouponData.Number, 0, 32)); //쿠폰번호 + sSendData.Append(CmUtil.MidH(aCoupon.Number, 0, 32)); //가상쿠폰번호 + sSendData.Append(CmUtil.MidH(aCoupon.DiscountPrice.ToString(), 0, 10)); //사용금액 + + sCounponIfo.Append(CmUtil.MidH(CouponData.Number, 0, 32)); //쿠폰번호 + sCounponIfo.Append("|"); + sCounponIfo.Append(CmUtil.MidH(aCoupon.Number, 0, 32)); //가상쿠폰번호 + sCounponIfo.Append("|"); + sCounponIfo.Append(GetStringMobileCouponType(aCoupon.Type)); //쿠폰종류 + sCounponIfo.Append("@~"); + if (aCoupon.Option.Equals(MobileCouponOptionType.ItemFixed)) biTemCheck = true; + } + } + if (checkOK) + { + if (biTemCheck == true) + { + sSendData.Append(CmUtil.MidH(m_aSaleItem.Count.ToString(), 0, 5)); // POS 상품갯수 + for (int iRow = 0; iRow < m_aSaleItem.Count; iRow++) + { + Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)m_aSaleItem[iRow]; + + if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue;// 지정취소 + + sSendData.Append(CmUtil.MidH(cSaleItem.ITEM_PLU_CD, 0, 32)); // POS 상품코드 + // 전문 설정 오류 수정(2017.05.22) + sSendData.Append(CmUtil.MidH(cSaleItem.SALE_AMT.ToString(), 0, 10)); // POS 상품금액 + //sSendData += m_cDataService.DoubleParse(CmUtil.MidH(cSaleItem.SALE_AMT.ToString(), 0, 10)); // POS 상품금액 + } + } + else + { + sSendData.Append(CmUtil.MidH("0", 0, 5)); // POS 상품갯수 + } + string sInPutType = m_sInPutType; + string sInPutData = m_sInPutData; + string sInEncData = m_sInEncData; + if (m_sInEncData == "") + { + if (m_sInPutData == "") + { + sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN_CP; + sInPutData = CouponData.Number; + + } + } + // 승인 처리 + sRet = m_cMobileCoupon.SetPayment(new string[] { m_sPosMenuKey, sInPutType, sInPutData, sInPutData, "0", "", "", "", mPay_DC_Type, mPay_DC_CD, sSendData.ToString(), sCounponIfo.ToString(), sProductiTem }); + if (sRet != UserCom.RST_OK) + { + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.MobileHappyCouponUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + CouponData.TotalUseAmount = CouponData.VirtureCoupons.Where(r => r.Status.Equals(MobileCouponStatusType.CanUse)).Sum(r2 => r2.DiscountPrice); + foreach (var aCoupon in CouponData.VirtureCoupons) + { + if (aCoupon.DiscountPrice > 0) aCoupon.PaySEQ = FindPaySEQ(aCoupon.Number); + } + m_bSearchSuccess = true; + } + } + sSendData.Remove(0, sSendData.Length); + sCounponIfo.Remove(0, sCounponIfo.Length); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CompleteTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "End"); + } + private long FindPaySEQ(string _virtureCouponNo) + { + var result = -1L; + try + { + var alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); + foreach (var aitem in alPayItem) + { + if (aitem is Column.TR_PAYMENT.DATA aPayTem) + { + if (aPayTem.PAY_WAY_CD.Trim().Equals(mPay_DC_Type) + && aPayTem.PAY_DTL_CD_01.Trim().Equals(mPay_DC_CD) + && aPayTem.OCCUR_ENTRY_09.Trim().Equals(_virtureCouponNo)) + { + result = aPayTem.SEQ; + break; + } + } + } + + } + catch + { + result = -1L; + } + return result; + } + #region ProductID로 등록된 상품 체크 + /// + /// ProductID로 등록된 상품 체크 + /// + /// + /// + /// + /// + /// + /// + public string GetDCItemAmount(string sProductID, string sCouponNo, string sVCouponNo, double nPayAmt, string sItemChgUse, ref string siTemCheck) + { + string sRet = UserCom.RST_ERR; + + double niTemSum = 0; + double nQty = 0; + int iMaxIndex = -1; + + try + { + // 프로덕트 id 없으면 Skip + if (sProductID.Trim().Length <= 0) return sRet; + + // 쿠폰 List 조회 + DataTable dtMemu = m_cDataCommon.SeletProductIDToItemCD(sProductID); + if (dtMemu == null || dtMemu.Rows.Count <= 0) + { + //WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0149); + return UserCom.RST_OK; + } + + ITEM_PLU_CHECK iTemCheck = new ITEM_PLU_CHECK(); + + if (m_aSaleItem.Count <= 0) + { + return POS_MESSAGE.ERROR.MSG_0149; + } + + foreach (DataRow dr in dtMemu.Rows) + { + // Product ID로 결제구분을 재설정한다. + string sDC_Type = CmUtil.GetDataRowStr(dr, "PAY_DC_GRP_TYPE").Trim(); + if (sDC_Type.Trim().Length > 0) mPay_DC_Type = sDC_Type.Trim(); + + // Product ID로 결제상세코드를 재설정한다. + string sDC_CD = CmUtil.GetDataRowStr(dr, "PAY_DC_CD").Trim(); + if (sDC_Type.Trim().Length > 0) mPay_DC_CD = sDC_CD.Trim(); + + for (int iRow = 0; iRow < m_aSaleItem.Count; iRow++) + { + Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)m_aSaleItem[iRow]; + + if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue;// 지정취소 + if (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.FREE) continue; // 서비스(무료) + if (cSaleItem.NONSALES_RSN_CD != "0") continue; // 비매출구분 + if (cSaleItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue; // 빌분리번호 + if (cSaleItem.BILL_AMT <= 0) continue; // 영수금액 + //if (cSaleItem.DC_PRMT_YN != "0") continue; // 할인가능 여부 + + if (CmUtil.GetDataRowStr(dr, "ITEM_CHECK_YN") == "1") + { + // 등록된 상품과 쿠폰마스터 상품 체크용 저장 + if (CmUtil.GetDataRowStr(dr, "ITEM_CD") == cSaleItem.ITEM_PLU_CD) + { + // 할인 대상 iTemCD/수량 체크용 저장 + nQty = CmUtil.GetDataRowDouble(dr, "QTY"); + + // 할인금액+결제요금액 보다 상품판매금액이 같거나 큰 경우만 + if (nQty > 0 && cSaleItem.SALE_QTY > 0 && cSaleItem.BILL_AMT >= nPayAmt + CmUtil.GetDataRowDouble(dr, "DC_AMT")) + { + // 제일 큰 금액에 설정 + if (iTemCheck.SALE_PRC == 0 || iTemCheck.SALE_PRC < cSaleItem.SALE_PRC) + { + iMaxIndex = iRow; + + iTemCheck.sCouponNo = sCouponNo.Trim(); + iTemCheck.sVCouponNo = sVCouponNo.Trim(); + iTemCheck.sProductID = CmUtil.GetDataRowStr(dr, "PRODUCT_CD").Trim(); + iTemCheck.iTemCD = cSaleItem.ITEM_PLU_CD; + iTemCheck.SALE_PRC = cSaleItem.SALE_PRC; + iTemCheck.SaleAmt = cSaleItem.BILL_AMT; + iTemCheck.PayAmt = nPayAmt; + iTemCheck.DCAmt = CmUtil.GetDataRowDouble(dr, "DC_AMT"); + + // 대상 금액 sum + niTemSum = CmUtil.DoubleAdd(CmUtil.GetDataRowDouble(dr, "DC_AMT"), nPayAmt); + } + } + } + } + else + { + nQty = CmUtil.GetDataRowDouble(dr, "QTY"); + + // 프로덕트 코드 미설정 오류로 인한 수정(2017.05.18) + //if (nQty > 0 && cSaleItem.SALE_QTY > 0 && cSaleItem.BILL_AMT >= nPayAmt + CmUtil.GetDataRowDouble(dr, "DC_AMT")) + //{ + // 제일 큰 금액에 설정 + if (iTemCheck.SALE_PRC == 0 || iTemCheck.SALE_PRC < cSaleItem.SALE_PRC) + { + iMaxIndex = iRow; + + iTemCheck.sCouponNo = sCouponNo.Trim(); + iTemCheck.sVCouponNo = sVCouponNo.Trim(); + iTemCheck.sProductID = CmUtil.GetDataRowStr(dr, "PRODUCT_CD").Trim(); + iTemCheck.iTemCD = cSaleItem.ITEM_PLU_CD; + iTemCheck.SALE_PRC = cSaleItem.SALE_PRC; + iTemCheck.SaleAmt = cSaleItem.BILL_AMT; + iTemCheck.PayAmt = nPayAmt; + iTemCheck.DCAmt = CmUtil.GetDataRowDouble(dr, "DC_AMT"); + + // 대상 금액 sum + niTemSum = CmUtil.DoubleAdd(CmUtil.GetDataRowDouble(dr, "DC_AMT"), nPayAmt); + } + //} + } + } + } + + // 적용 상품의 상품금액 변경 + if (iMaxIndex > -1) + { + Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)m_aSaleItem[iMaxIndex]; + + cSaleItem.CPN_DC_DIV = mPay_DC_Type + mPay_DC_CD; + cSaleItem.CPN_DC_AMT = CmUtil.DoubleAdd(cSaleItem.CPN_DC_AMT, iTemCheck.DCAmt); + cSaleItem.BILL_AMT = CmUtil.DoubleSubtraction(cSaleItem.BILL_AMT, iTemCheck.DCAmt); + } + + //// 구매수량 체크 + //for (int index = 0; index < m_aSaleItem.Count; index++) + //{ + // if (iTemCheck.iTemCD != "") + // { + // if (iTemCheck.T_Qty >= 0 && iTemCheck.S_Qty != 0) + // { + // WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0160); + // return sRet; + // } + // } + //} + + // 금액 체크 + if (niTemSum > Payments) + { + return POS_MESSAGE.ERROR.MSG_0160; + } + + // 가능한 상품 미존재시 && 타상품 교환 불가시 + if (niTemSum <= 0 && sItemChgUse == "1") + { + return POS_MESSAGE.ERROR.MSG_0160; + } + + // 프로덕트 정보 체크용 + if (!string.IsNullOrEmpty(iTemCheck.sCouponNo) && iTemCheck.sCouponNo.Trim() != "") + { + siTemCheck += iTemCheck.sCouponNo; + siTemCheck += "!~"; + siTemCheck += iTemCheck.sVCouponNo; + siTemCheck += "!~"; + siTemCheck += iTemCheck.sProductID; + siTemCheck += "!~"; + siTemCheck += iTemCheck.iTemCD; + siTemCheck += "!~"; + siTemCheck += iTemCheck.PayAmt; + siTemCheck += "!~"; + siTemCheck += iTemCheck.DCAmt; + siTemCheck += "$~"; + } + + sRet = UserCom.RST_OK; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetDCItemAmount()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + return sRet; + } + #endregion + + #region 여전법 대응 + /// + /// ZeroFill 초기화 + /// + private void InDataToZeroFill() + { + try + { + + //여전법 대응! + ////////////////////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref m_sInPutData); + CmUtil.ZeroFillClear(ref m_sInEncData); + CmUtil.ZeroFillClear(ref m_sInMaskData); + ////////////////////////////////////////////////////////////////////////////////// + } + catch + { + } + + } + #endregion 여전법 대응 + + private void SendErrorMessageEvent(string _errorMessageString) + { + try + { + CommonLog.ErrorLogWrite(this, "SendErrorMessageEvent()", _errorMessageString); + ErrorMessageEvent(_errorMessageString); + } + catch + { + } + } + private void SendErrLogEvent(ErrorCode _errorCode) + { + try + { + CommonLog.DebugLogWrite(this, "SendErrLogEvent()", _errorCode.ToString()); + ErrorEvent(_errorCode); + } + catch + { + + } + } + private void SendReadStart() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadStart()"); + ReadStart(this); + } + catch + { + + } + } + private void SendReadEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadEnd()"); + ReadEnd(this); + } + catch + { + + } + } + private void ClearCardInfo() + { + try + { + m_sInPutType = ""; // 입력구분 + m_sInPutData = ""; // 입력데이터 + m_sInMaskData = ""; // 마스킹 + m_sInEncData = ""; // 카드데이터 + m_sServiceCode = ""; // 서비스코드 + m_sAppCardNo = ""; // 승인카드번호 + + + m_bSearchSuccess = false; + } + catch + { + } + } + #endregion + + + + + } +} \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/posOkCashBag.cs b/Kiosk/Payments/SPC.Kiosk.Payments/posOkCashBag.cs new file mode 100644 index 0000000..952a773 --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/posOkCashBag.cs @@ -0,0 +1,672 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Threading; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Payments +{ + public class posOkCashBag : IDisposable + { + #region [ Members ] + /// + /// OkCashBagCertify Error Code + /// + public enum ErrorCode + { + OkCashBagCertifyMobilePhoneNumberError, + OkCashBagCertifyMobileCardNumberError, + OkCashBagCertifyMemInfoEncryptedCardNoError, + OkCashBagCertifyEncrtipError, + OkCashBagCertifyNotInitailzedError, + OkCashBagCertifyProcessingTimeOut, + OkCashBagUnknownError + } + /// + /// ErrorMessage Event + /// + /// 반환 로그 + public delegate void ErrorMessageEventHandler(string ErrorString); + /// + /// 로그메세지 이벤트 반환용 + /// + public event ErrorMessageEventHandler ErrorMessageEvent; + /// + /// Error 반환 Event + /// + /// 반환 Error Code + public delegate void LogErrorHandler(ErrorCode errorCode); + /// + /// Error Code 이벤트 반환용 + /// + public event LogErrorHandler ErrorEvent; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadStart(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadStart ReadStart; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadEnd(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadEnd ReadEnd; + + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + private DeviceStatus m_cDevStatus = null; // 디바이스 관리 + private PosOLEDevice.DelegateIcReader delegateReader; // IC리더 콜백 + private IICReaderUs m_cDeviceICReader = null; + private IPaymentExpUs m_cPntOcbSave = null; + + /// + /// 입력구분 + /// + private string m_sInPutType = ""; + /// + /// 입력데이터 + /// + private string m_sInPutData = ""; + /// + /// 마스킹데이터 + /// + private string m_sInMaskData = ""; + /// + /// 카드데이터(암호화) + /// + private string m_sInEncData = ""; + /// + /// 서비스코드 + /// + private string m_sServiceCode = ""; + /// + /// 조회 성공 여부 + /// + private bool m_bSearchSuccess = false; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + /// + /// 승인 수단 + /// + public string CertifyKey { get; set; } = string.Empty; + private bool icCallBack = false; + /// + /// Ic Reader CallBack Switch + /// + public bool IcCallBack + { + get { return icCallBack; } + set + { + if (value) + { + m_cDeviceICReader.RegIcCallback(delegateReader); + } + icCallBack = value; + } + } + /// + /// 마스크된 회원성명 + /// + public string MemberName { get; protected set; } = string.Empty; + /// + /// 적립 가능 유무 + /// + public bool CanReservePoint { get; protected set; } + /// + /// 회원 가용 Point + /// + public double MemberPoint { get; protected set; } = 0d; + /// + /// Point 사용시 비번 필요 유무 + /// + public bool NeedPassword { get; protected set; } + public string ApprovalNo { get; protected set; } = string.Empty; + public string ApprovalDate { get; protected set; } = string.Empty; + /// + /// 인증 처리 성공 유무 + /// + public bool ProcessOK + { + get { return m_bSearchSuccess; } + } + /// + /// Processing Timeout + /// + public bool IsTimeout + { + set + { + if (value) + { + ErrorEvent(ErrorCode.OkCashBagCertifyProcessingTimeOut); + } + } + } + #endregion + + #region [ Ctor && Dispose ] + /// + /// Ctor + /// + public posOkCashBag() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + NeedInitModule = StateObject.POS == null + || StateObject.TRAN == null + || StateObject.DEVICE == null; + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + m_cDeviceICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER); + m_cPntOcbSave = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PNT_OCB_SAVE); + delegateReader = new PosOLEDevice.DelegateIcReader(OnIcReaderCallBack); // IC리더 콜백 + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// + /// + public void Dispose() + { + + try + { + InDataToZeroFill(); + + sManager = null; + StateObject = null; + m_cPosStatus = null; // POS 기본정보 + m_cTrnStatus = null; // POS 거래정보 + m_cDevStatus = null; + + m_cDeviceICReader = null; + m_cPntOcbSave = null; + delegateReader = null; // IC리더 콜백 + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region [ Methods ] + /// + /// HappyPoint 회원 조회 (16 자리이면 Mobile BarCode, 그외는 전화 번호) + /// + /// + public void StartCertifyProcessing(string _inputString) + { + try + { + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", "Start"); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.OkCashBagCertifyNotInitailzedError); + } + else + { + var startPorcess = false; + if (_inputString.Length.Equals(16)) + { + // Mobile BarCode + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + m_sInMaskData = _inputString; + m_sInPutData = _inputString + "="; + startPorcess = true; + } + else + { + // 전화 번호 + if (IsCellularPhoneNumber(_inputString)) + { + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; + m_sInMaskData = m_sInPutData = _inputString; + startPorcess = true; + + } + else + { + SendErrLogEvent(ErrorCode.OkCashBagCertifyMobilePhoneNumberError); + } + } + //조회 전문 처리 + if (startPorcess) + { + if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData)) + { + SearchTxtInPut(); + } + else + { + SendErrLogEvent(ErrorCode.OkCashBagCertifyEncrtipError); + } + } + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartCertifyProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartCertifyProcessing()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 휴대폰 번호 형식 확인 + /// + /// + /// + private bool IsCellularPhoneNumber(string sInputData) + { + bool bRet = false; + try + { + if (sInputData.Length == 10 || sInputData.Length == 11) + { + if (sInputData.StartsWith("010") == true || sInputData.StartsWith("011") == true || sInputData.StartsWith("017") == true || + sInputData.StartsWith("016") == true || sInputData.StartsWith("018") == true || sInputData.StartsWith("019") == true) + { + bRet = true; + } + } + } + catch + { + bRet = false; + } + return bRet; + } + /// + /// OK CashBag 조회 전문 처리 + /// + private void SearchTxtInPut() + { + CommonLog.DebugLogWrite(this, "SearchTxtInPut()", "Start"); + string sRet = UserCom.RST_ERR; + try + { + + m_bSearchSuccess = false; + + + // 조회 + string[] saRecvdData = null; + sRet = m_cPntOcbSave.SearchPayment(new string[] { m_sInPutType, m_sInMaskData, m_sInEncData, "0"}, ref saRecvdData); + if (sRet != UserCom.RST_OK) + { + CertifyKey = string.Empty; + InDataToZeroFill(); + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.OkCashBagUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + CertifyKey = m_sInPutData; + var cEtcItem = (Column.TR_ETC.DATA)m_cPntOcbSave.GetPayment(new string[] { }); + + NeedPassword = true; + MemberPoint = cEtcItem.AMT_ENTRY_04; + + m_bSearchSuccess = true; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "SearchTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + CommonLog.DebugLogWrite(this, "SearchTxtInPut()", "End"); + + } + /// + /// 카드 번호 암호화 + /// + /// + /// + /// + /// + private bool EncryptedCardNo(string sInData, ref string sInMaskData, ref string sInEncData) + { + string sEncData = sInData; + bool bRet = false; + try + { + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + // "0"인 경우 마스킹 미처리 + //기존 + //sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData).Trim(); + //변경 + sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData, "0").Trim(); + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + if (CmUtil.MidH(sEncData, 0, 2) == "00") + { + sInEncData = CmUtil.MidH(sEncData, 2, 512).Trim(); // 암호화 데이터 + sInMaskData = CmUtil.MidH(sEncData, 514, sEncData.Length - 514).Trim(); // 마스킹 데이터 + + //#20170913 현금영수증, 포인트카드 마스킹 미적용 start + sInMaskData = CmUtil.MidH(sInMaskData, 0, 6) + "********"; + //#20170913 현금영수증, 포인트카드 마스킹 미적용 end + + bRet = true; + } + else + { + CommonLog.ErrorLogWrite(this, "EncryptedCardNo()", "Fail !!"); + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "EncryptedCardNo()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + return bRet; + } + #region DeviceEvent 관련 + + + /// + /// IC 카드 정보 입력 처리 + /// + /// + private bool GetIcCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + + ClearCardInfo(); // 카드 입력 정보 클리어 + + if (m_cDeviceICReader.GetCardInfo_ICReader(PosConst.IC_READER_TRAN_TYPE.POINT, 0, ref sRsvStr) == true) + { + if (CmUtil.MidH(sRsvStr, 0, 2) == "00") + { + m_sInEncData = CmUtil.MidH(sRsvStr, 6, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 1030, 37).Trim(); + m_sServiceCode = CmUtil.MidH(sRsvStr, 1067, 5).Trim(); + + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + + + + return true; + } + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetIcCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + + /// + /// RF 카드 정보 입력 처리 + /// + /// + private bool GetRfCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + ClearCardInfo(); // 카드 입력 정보 클리어 + + //카드 정보 입력 + if (m_cDeviceICReader.GetRfCreditCardInfo("1", m_cTrnStatus.Head.NetSaleAmt.ToString(), "", "", "", ref sRsvStr) == false) + { + if (sRsvStr != "") SendErrorMessageEvent(sRsvStr); + return false; + } + + m_sInEncData = CmUtil.MidH(sRsvStr, 2, 512).Trim(); + m_sInMaskData = CmUtil.MidH(sRsvStr, 514, 40).Trim(); + m_sServiceCode = CmUtil.MidH(sRsvStr, 554, 5).Trim(); + + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF; + + //ReadBarCode= m_sInPutData.Length > 16 ? CmUtil.MidH(m_sInPutData, 0, 16) : m_sInPutData; + //return true; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetRfCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + + /// + /// POP 카드 정보 입력 처리 + /// + /// + private bool GetPopCardData() + { + string sRsvStr = ""; + try + { + //IcCallBack = false; // IC리더 콜백 해지 + + ClearCardInfo(); // 카드 입력 정보 클리어 + + if (m_cDeviceICReader.RfPrepaidCardInfo(ref sRsvStr) == false) + { + if (sRsvStr != "") SendErrorMessageEvent(sRsvStr); + return false; + } + if (sRsvStr.StartsWith("T") == true) + { + m_sInPutData = sRsvStr.Substring(7, 16).Trim(); + } + else if (sRsvStr.StartsWith("E") == true) + { + m_sInPutData = sRsvStr.Substring(1, 20).Trim(); + } + else + { + return false; + } + + bool bRet = EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData); + if (bRet == true) + { + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF; + } + return bRet; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetPopCardData()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + // 여전법 대응//////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref sRsvStr); + ////////////////////////////////////////////////////////////////////////////////// + } + return false; + } + #endregion + + #region 여전법 대응 + /// + /// ZeroFill 초기화 + /// + private void InDataToZeroFill() + { + try + { + + //여전법 대응! + ////////////////////////////////////////////////////////////////////////////////// + CmUtil.ZeroFillClear(ref m_sInPutData); + CmUtil.ZeroFillClear(ref m_sInEncData); + CmUtil.ZeroFillClear(ref m_sInMaskData); + ////////////////////////////////////////////////////////////////////////////////// + } + catch + { + } + + } + #endregion 여전법 대응 + + #region IC리더 콜백 + //delegate void DelegateIcReaderCallBack(int rc, StringBuilder str); + /// + /// IC리더 콜백 함수 + /// + /// + /// + public void OnIcReaderCallBack(int num, StringBuilder str) + { + try + { + SendReadStart(); + if (num == 1) + { + GetIcCardData(); + } + else + { + if (str.ToString().StartsWith("EN")) + { + ClearCardInfo(); // 카드 입력 정보 클리어 + + m_sInEncData = CmUtil.MidH(str.ToString(), 0, 512).Trim(); + m_sInMaskData = CmUtil.MidH(str.ToString(), 512, 40).Trim(); + m_sInPutData = m_sInMaskData; + m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; + } + } + if (!string.IsNullOrEmpty(m_sInPutData)) SearchTxtInPut(); + SendReadEnd(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OnIcReaderCallBack()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + private void SendErrorMessageEvent(string _errorMessageString) + { + try + { + CommonLog.ErrorLogWrite(this, "SendErrorMessageEvent()", _errorMessageString); + ErrorMessageEvent(_errorMessageString); + } + catch + { + } + } + private void SendErrLogEvent(ErrorCode _errorCode) + { + try + { + CommonLog.DebugLogWrite(this, "SendErrLogEvent()", _errorCode.ToString()); + ErrorEvent(_errorCode); + } + catch + { + + } + } + private void SendReadStart() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadStart()"); + ReadStart(this); + } + catch + { + + } + } + private void SendReadEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadEnd()"); + ReadEnd(this); + } + catch + { + + } + } + private void ClearCardInfo() + { + try + { + m_sInPutType = ""; // 입력구분 + m_sInPutData = ""; // 입력데이터 + m_sInMaskData = ""; // 마스킹 + m_sInEncData = ""; // 카드데이터인카드번호 + + + m_bSearchSuccess = false; + } + catch + { + } + } + #endregion + + + + + } +} \ No newline at end of file diff --git a/Kiosk/Payments/SPC.Kiosk.Payments/posPaymentsCancel.cs b/Kiosk/Payments/SPC.Kiosk.Payments/posPaymentsCancel.cs new file mode 100644 index 0000000..23de86f --- /dev/null +++ b/Kiosk/Payments/SPC.Kiosk.Payments/posPaymentsCancel.cs @@ -0,0 +1,327 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using Cosmos.BaseFrame; +using Cosmos.UserFrame; +using Cosmos.ServiceProvider; +using Cosmos.Common; +using Cosmos.CommonManager; +using System.Threading; +using System.Collections; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Payments +{ + /// + /// POS HappyPoint Approval Process + /// + public class posPaymentsCancel : IDisposable + { + #region [ Members ] + /// + /// HappyPointCertify ErrorCode + /// + public enum ErrorCode + { + posPaymentsCancelNotInitailzedError, + posPaymentsCancelProcessingTimeOut, + posPaymentsCancelPaymentSEQError, + posPaymentsCancelCanceledItemError, + posPaymentsCancelNotFoundError, + posPaymentsCancelUnknownError, + } + /// + /// ErrorMessage Event + /// + /// 반환 로그 + public delegate void ErrorMessageEventHandler(string ErrorString); + /// + /// 로그메세지 이벤트 반환용 + /// + public event ErrorMessageEventHandler ErrorMessageEvent; + /// + /// Error 반환 Event + /// + /// 반환 Error Code + public delegate void LogErrorHandler(ErrorCode errorCode); + /// + /// Error Code 이벤트 반환용 + /// + public event LogErrorHandler ErrorEvent; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadStart(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadStart ReadStart; + /// + /// IcReadStart Event + /// + /// + public delegate void IcReadEnd(object sender); + /// + /// IcReadStart Event 반환용 + /// + public event IcReadEnd ReadEnd; + + private SManager sManager = null; // 이 객체를 통해 업무 Service 호출 + private StateServer StateObject = null; // StateObject : StateServer Object (객체) + private PosStatus m_cPosStatus = null; // 기본정보 참조 + private TranStatus m_cTrnStatus = null; // 거래정보 참조 + private DeviceStatus m_cDevStatus = null; // 디바이스 관리 + private IPaymentUs m_cPayCancel = null; + + + /// + /// 성공 여부 + /// + private bool m_bSearchSuccess = false; + /// + /// POS 초기화 필요 유무 + /// + public bool NeedInitModule { get; set; } + /// + /// 승인 수단 + /// + public string CertifyKey { get; set; } = string.Empty; + public long PaySEQ { get; protected set; } + /// + /// 인증 처리 성공 유무 + /// + public bool ProcessOK + { + get { return m_bSearchSuccess; } + } + /// + /// Processing TimeOut + /// + public bool IsTimeout + { + set + { + if (value) + { + ErrorEvent(ErrorCode.posPaymentsCancelProcessingTimeOut); + } + } + } + #endregion + + #region [ Ctor && Dispose ] + /// + /// Ctor + /// + public posPaymentsCancel() + { + try + { + sManager = new SManager(); + StateObject = (StateServer)StateServer.GetInstance(); + NeedInitModule = StateObject.POS == null + || StateObject.TRAN == null + || StateObject.DEVICE == null; + if (!NeedInitModule) + { + m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 + m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 + m_cDevStatus = (DeviceStatus)StateObject.DEVICE; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Ctor", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// + /// + public void Dispose() + { + try + { + + sManager = null; + StateObject = null; + m_cPosStatus = null; // POS 기본정보 + m_cTrnStatus = null; // POS 거래정보 + m_cDevStatus = null; + + m_cPayCancel = null; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "Dispose", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion + + #region [ Methods ] + /// + /// HappyPoint 회원 조회 (16 자리이면 Mobile BarCode, 그외는 전화 번호) + /// + /// + public void StartProcessing(long _paySeq) + { + try + { + CommonLog.InfoLogWrite(this, "StartProcessing()", string.Format("Start [{0}]", _paySeq)); + SendReadStart(); + if (NeedInitModule) + { + Thread.Sleep(1000); //진행창 보이기 위한 딜레이 + ErrorEvent(ErrorCode.posPaymentsCancelNotInitailzedError); + } + else + { + var startPorcess = false; + var payRowNo = -1; + if (_paySeq > 0) + { + m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL; + ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); + foreach (var aPayItme in alPayItem) + { + if (aPayItme is Column.TR_PAYMENT.DATA findPayItem + && findPayItem.SEQ.Equals(_paySeq)) + { + payRowNo = alPayItem.IndexOf(aPayItme); + if (!findPayItem.CANCEL_DIV.Equals(ItemConst.PAY_CANCEL_DIV.CANCEL)) + { + startPorcess = true; + } + else + { + SendErrLogEvent(ErrorCode.posPaymentsCancelCanceledItemError); + } + break; + } + } + if (!startPorcess && payRowNo < 0) + { + SendErrLogEvent(ErrorCode.posPaymentsCancelNotFoundError); + } + else + { + //승인 취소 처리 + CompleteTxtInPut(payRowNo); + if (m_bSearchSuccess) + { + alPayItem.RemoveAt(payRowNo); + } + } + } + else + { + SendErrLogEvent(ErrorCode.posPaymentsCancelPaymentSEQError); + } + + } + SendReadEnd(); + CommonLog.InfoLogWrite(this, "StartProcessing()", string.Format("End : Result={0}", ProcessOK ? "OK" : "Fail")); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "StartProcessing()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + /// + /// 승인 취소 처리 + /// + /// + private void CompleteTxtInPut(int _rowNo) + { + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "Start"); + string sRet = UserCom.RST_ERR; + try + { + m_bSearchSuccess = false; + m_cPayCancel = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PAYMENTCANCEL); + var alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); + var cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[_rowNo]; + + // 포인트 사용 승인 처리 + sRet = m_cPayCancel.CancelPayment(new string[] { cPayItem.PAY_WAY_CD, cPayItem.PAY_DTL_CD_01, _rowNo.ToString() }); + if (sRet != UserCom.RST_OK) + { + if (sRet == null || sRet.Equals(UserCom.RST_ERR)) + { + SendErrLogEvent(ErrorCode.posPaymentsCancelUnknownError); + } + else + { + SendErrorMessageEvent(sRet); + } + } + else + { + m_bSearchSuccess = true; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "CompleteTxtInPut()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + CommonLog.DebugLogWrite(this, "CompleteTxtInPut()", "End"); + } + + private void SendErrorMessageEvent(string _errorMessageString) + { + try + { + CommonLog.ErrorLogWrite(this, "SendErrorMessageEvent()", _errorMessageString); + ErrorMessageEvent(_errorMessageString); + } + catch + { + } + } + private void SendErrLogEvent(ErrorCode _errorCode) + { + try + { + CommonLog.DebugLogWrite(this, "SendErrLogEvent()", _errorCode.ToString()); + ErrorEvent(_errorCode); + } + catch + { + + } + } + private void SendReadStart() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadStart()"); + ReadStart(this); + } + catch + { + + } + } + private void SendReadEnd() + { + try + { + CommonLog.DebugLogWrite(this, "SendReadEnd()"); + ReadEnd(this); + } + catch + { + + } + } + #endregion + + + + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/Functions.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/Functions.cs new file mode 100644 index 0000000..1fd0bcf --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/Functions.cs @@ -0,0 +1,166 @@ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// Popup 사용 공통 기능 + /// + public static class Functions + { + /// + /// Name with Encript Character + /// + /// + /// + public static string GetEncriptName(this string _name) + { + string result = _name; + try + { + switch (_name.Length) + { + case 1: + result = _name; + break; + case 2: + result = _name.Substring(0, 1) + "*"; + break; + case 3: + result = _name.Substring(0, 1) + "*" + _name.Substring(2, 1); + break; + case 4: + result = _name.Substring(0, 1) + "*" + _name.Substring(2, 2); + break; + case 5: + result = _name.Substring(0, 1) + "**" + _name.Substring(3, 2); + break; + default: + var names = _name.Trim().Replace(" ", " ").Split(' '); + int i = 0; + result = string.Empty; + foreach (var aName in names) + { + if (i.Equals(1)) + { + result += string.Empty.PadRight(aName.Length, '*'); + } + else + { + result += aName; + } + i++; + } + break; + } + } + catch + { + result = _name; + } + return result; + + } + /// + /// Card Number With Encript Character + /// + /// + /// + public static string GetEncriptCardNo(this string _cardNo) + { + string result = _cardNo; + try + { + switch (_cardNo.Length) + { + case 14: + result = string.Format("{0}-{1}{2}-{3}-{4}" + , _cardNo.Substring(0, 4) + , _cardNo.Substring(4, 2) + , "**" + , "****" + , "**"); + break; + case 15: + result = string.Format("{0}-{1}{2}-{3}-{4}{5}" + , _cardNo.Substring(0, 4) + , _cardNo.Substring(4, 2) + , "**" + , "****" + , "**" + , _cardNo.Substring(14, 1)); + break; + case 16: + result = string.Format("{0}-{1}{2}-{3}-{4}{5}" + , _cardNo.Substring(0, 4) + , _cardNo.Substring(4, 2) + , "**" + , "****" + , "**" + , _cardNo.Substring(14, 2)); + break; + } + } + catch + { + result = _cardNo; + } + return result; + } + /// + /// Get Mobile Company Name by Type + /// + /// + /// + public static List GetMobileCompanyName(this MobileCompanyType _companyType) + { + List result = null; + try + { + switch (_companyType) + { + case MobileCompanyType.KT_Mobile: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "KT" + } + }; + break; + case MobileCompanyType.SK_Telecom: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "SK Telecom" + } + }; + break; + case MobileCompanyType.LG_Uplus: + result = new List + { + new M_Language + { + Type=SupportLanguageType.ko, + LanguageData = "LG U+" + }, + }; + break; + } + } + catch + { + result = null; + } + return result; + } + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_HappyPointReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_HappyPointReturn.cs new file mode 100644 index 0000000..0e3416b --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_HappyPointReturn.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// HappyPoint 인증 및 사용 정보 + /// + public class M_HappyPointReturn + { + /// + /// 회원명 + /// + public string MemberName { get; set; } = string.Empty; + /// + /// 회원인증번호 + /// + public string MemberNumber { get; set; } = string.Empty; + /// + /// 회원인증번호 + /// + public string MemberCode { get; set; } = string.Empty; + /// + /// 앱 고객 여부 + /// + public bool IsAppMamber { get; set; } = false; + /// + /// MemberLevel + /// + public HappyPointMemberLevel MemberLevel { get; set; } = HappyPointMemberLevel.None; + /// + /// 적립된 포인트 + /// + public double MemberPoint { get; set; } = 0; + /// + /// 가용 포인트 + /// + public double UseablePoint { get; set; } = 0; + /// + /// 적립 유무 + /// + public bool ReservePoint { get; set; } = false; + /// + /// 포인트 사용유무 + /// + public bool PointUse { get; set; } = false; + /// + /// 사용 포인트 + /// + public double UsingPoints { get; set; } = 0; + /// + /// SPC 직원 유무 + /// + public bool IsCompanyMember { get; set; } + /// + /// 단골 매장 유무 + /// + public bool IsFavoriteStore { get; set; } = false; + /// + /// 포인트 카드 사용 유무 + /// + public bool IsCardNoUsed { get; set; } + /// + /// Password 사용유무 + /// + public bool NeedPassword { get; set; } + /// + /// 승인 순번 + /// + public long PaySEQ { get; set; } = -1L; + public List MyHappyCoupons { get; set; } = new List(); + public List OrderHistoryItems { get; set; } + } + /// + /// HappyPoint In Card Coupon Data + /// + public class M_HappyCoupon + { + /// + /// Coupon 번호 + /// + public string Number { get; set; } = string.Empty; + /// + /// Coupon 명 + /// + public string Name { get; set; } = string.Empty; + /// + /// 유효기간 시작 + /// + public DateTime StartDate { get; set; } = DateTime.MinValue; + /// + /// 유효 기간 종료 + /// + public DateTime EndDate { get; set; } = DateTime.MinValue; + /// + /// 사용됨 + /// + public bool IsUsed { get; set; } = false; + /// + /// Discount 금액 + /// + public double UseAmount { get; set; } = 0d; + /// + /// 승인 순번 + /// + public long PaySEQ { get; set; } = -1L; + } + + +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MiniPopup.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MiniPopup.cs new file mode 100644 index 0000000..04657ab --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MiniPopup.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup.Model +{ + /// + /// Mini Popup Model + /// + public class M_MiniPopup + { + /// + /// Icon Type + /// + public MiniPopupIcon Icon { get; set; } = MiniPopupIcon.None; + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage { get; set; } = SupportLanguageType.ko; + /// + /// Main Message + /// + public List Message { get; set; } + /// + /// Sub Message + /// + public List SubMessage { get; set; } + /// + /// Cencal Button Text + /// + public List CencalButtonText { get; set; } + /// + /// Ok Button Text + /// + public List OkButtonText { get; set; } + /// + /// Is Show Cencal Button + /// + public bool IsCencalButton { get; set; } = true; + /// + /// Is Show Timeout Popup + /// + public bool IsTimeoutPopup { get; set; } = false; + /// + /// Timeout Seconds + /// + public double TimeoutSeconds { get; set; } = 10d; + + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCompanyReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCompanyReturn.cs new file mode 100644 index 0000000..5dc83ec --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCompanyReturn.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// 통신사 할인 정보 + /// + public class M_MobileCompanyReturn + { + /// + /// 통신사 + /// + public MobileCompanyType Company { get; set; } + /// + /// 회원인증번호 + /// + public string MemberCode { get; set; } = string.Empty; + /// + /// 할인 대상 금액 + /// + public double ApprovalPayments { get; set; } = 0d; + /// + /// 할인 금액 + /// + public double DiscountValue { get; set; } = 0d; + /// + /// 승인 순번 + /// + public long PaySEQ { get; set; } + + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCouponReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCouponReturn.cs new file mode 100644 index 0000000..7beabdd --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_MobileCouponReturn.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup.Model +{ + /// + /// Mobile Coupon Return Model + /// + public class M_MobileCouponReturn + { + /// + /// 쿠폰 번호 + /// + public string Number { get; set; } = string.Empty; + /// + /// 쿠폰 명 + /// + public string Name { get; set; } = string.Empty; + /// + /// 전체 쿠폰 금액 + /// + public long TotalAmount { get; set; } = 0; + /// + /// 동시 사용 제약 + /// + public bool IsOnlyAllUse { get; set; } = false; + /// + /// 전체 사용 금액 (할인 확정 금액 합계) + /// + public long TotalUseAmount { get; set; } = 0; + /// + /// 사용 쿠폰 수 + /// + public int UsingCounts { get; set; } = 0; + /// + /// 가상 쿠폰 목록 + /// + public List VirtureCoupons { get; set; } = new List(); + } + /// + /// Mobile Coupon Detail Model + /// + public class M_MobileCouponDetail:ViewModelBase + { + /// + /// 가상 쿠폰 번호 + /// + public string Number { get; set; } = string.Empty; + /// + /// 가상 쿠폰명 + /// + public string Name { get; set; } = string.Empty; + /// + /// 브렌드 코드 + /// + public string BrandCode { get; set; } = string.Empty; + /// + /// 브렌드 명 + /// + public string BrandName { get; set; } = string.Empty; + /// + /// 종류 + /// + public MobileCouponType Type { get; set; } = MobileCouponType.NormalValue; + /// + /// 옵션 + /// + public MobileCouponOptionType Option { get; set; } = MobileCouponOptionType.None; + /// + /// 권면가 + /// + public long ShowPrice { get; set; } =0L; + /// + /// 구매가 + /// + public long ByePrice { get; set; } = 0L; + /// + /// 잔액 + /// + public long RemainPrice { get; set; } = 0L; + /// + /// 가용 금액 + /// + public long CanUsingPrice { get; set; } = 0L; + /// + /// 그룹 번호 + /// + public int GroupNo { get; set; } = 0; + /// + /// 그룹 사용 횟수 + /// + public int GroupLimitUsingCount { get; set; } = 0; + /// + /// 유효 기간 시작 + /// + public DateTime StartDate { get; set; } = DateTime.MinValue; + /// + /// 유효 기간 종료 + /// + public DateTime EndDate { get; set; } = DateTime.MinValue; + /// + /// 상태 + /// + public MobileCouponStatusType Status { get; set; } = MobileCouponStatusType.CanUse; + /// + /// 상태 설명 + /// + public string StatusDetail { get; set; } = string.Empty; + /// + /// 구성 상품 순번 (상품코드) + /// + public string ItemCodeKey { get; set; } = string.Empty; + /// + /// 상품 코드 + /// + public List ItemCodes { get; set; } = new List(); + private long requestPrice = 0L; + /// + /// 사용 요청 금액 + /// + public long RequestPrice + { + get { return requestPrice; } + set { requestPrice = value; PropertyChange("RequestPrice"); } + } + private long discountPrice = 0L; + /// + /// 할인 확정 금액 + /// + public long DiscountPrice + { + get { return discountPrice; } + set { discountPrice = value; PropertyChange("DiscountPrice"); } + } + private string statusText = string.Empty; + /// + /// 상태 문자열 + /// + public string StatusText + { + get { return statusText; } + set { statusText = value; PropertyChange("StatusText"); } + + } + /// + /// 승인 순번 + /// + public long PaySEQ { get; set; } = -1L; + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NhsFuncInfoItem.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NhsFuncInfoItem.cs new file mode 100644 index 0000000..2de99cb --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NhsFuncInfoItem.cs @@ -0,0 +1,206 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +using SPC.Kiosk.Base; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// ※CommonTypes에 NhsFuncInfoType과 일치해야함※ + /// Kiosk 에서 사용가능한 결재수단 필드 : 2019-06-10 - 1997fx11 + /// + public class NhsFuncInfoItem : ViewModelBase + { + private string defaultValue = "0"; + /// + /// 아직 없는 필드에대한 값(Default 숨김) + /// + public string DefaultValue + { + get { return defaultValue; } + set { defaultValue = value; PropertyChange("DefaultValue"); } + } + + private string saveHappyPoint; + /// + /// STEP01 포인트 적립 - 해피포인트 적립 + /// + public string SaveHappyPoint + { + get { return saveHappyPoint; } + set { saveHappyPoint = value; PropertyChange("SaveHappyPoint"); } + } + + private string saveOkCashBag; + /// + /// STEP01 포인트 적립 - OK CASHBAG 적립 + /// + public string SaveOkCashBag + { + get { return saveOkCashBag; } + set { saveOkCashBag = value; PropertyChange("SaveOkCashBag"); } + } + + private string discountSKT; + /// + /// STEP01 통신사 할인 - SKT + /// + public string DiscountSKT + { + get { return discountSKT; } + set { discountSKT = value; PropertyChange("DiscountSKT"); } + } + + private string discountKT; + /// + /// STEP01 통신사 할인 - KT + /// + public string DiscountKT + { + get { return discountKT; } + set { discountKT = value; PropertyChange("DiscountKT"); } + } + + private string discountLG; + /// + /// STEP01 통신사 할인 - LGT + /// + public string DiscountLG + { + get { return discountLG; } + set { discountLG = value; PropertyChange("discountLG"); } + } + + private string usePointHappyPoint; + /// + /// STEP02 포인트 사용 - 해피포인트 사용 + /// + public string UsePointHappyPoint + { + get { return usePointHappyPoint; } + set { usePointHappyPoint = value; PropertyChange("UsePointHappyPoint"); } + } + + private string usePointOkCashBag; + /// + /// STEP02 포인트 사용 - OK CASHBAG 사용 + /// + public string UsePointOkCashBag + { + get { return usePointOkCashBag; } + set { usePointOkCashBag = value; PropertyChange("UsePointOkCashBag"); } + } + + private string useCouponHappy; + /// + /// STEP02 쿠폰 사용 - 해피쿠폰할인 + /// + public string UseCouponHappy + { + get { return useCouponHappy; } + set { useCouponHappy = value; PropertyChange("UseCouponHappy"); } + } + + private string useCouponMobile; + /// + /// STEP02 쿠폰 사용 - 모바일쿠폰 + /// + public string UseCouponMobile + { + get { return useCouponMobile; } + set { useCouponMobile = value; PropertyChange("UseCouponMobile"); } + } + + private string useCardPaymentCreditCard; + /// + /// STEP03 카드 결제 - 신용카드 + /// + public string UseCardPaymentCreditCard + { + get { return useCardPaymentCreditCard; } + set { useCardPaymentCreditCard = value; PropertyChange("UseCardPaymentCreditCard"); } + } + + private string useCardPaymentSPCEmployeeCertificate; + /// + /// STEP03 카드 결제 - SPC 사원증 + /// + public string UseCardPaymentSPCEmployeeCertificate + { + get { return useCardPaymentSPCEmployeeCertificate; } + set { useCardPaymentSPCEmployeeCertificate = value; PropertyChange("UseCardPaymentSPCEmployeeCertificate"); } + } + + private string useCardPaymentTMoney; + /// + /// STEP03 카드 결제 - T-MONEY + /// + public string UseCardPaymentTMoney + { + get { return useCardPaymentTMoney; } + set { useCardPaymentTMoney = value; PropertyChange("UseCardPaymentTMoney"); } + } + + private string useCardPaymentCashBee; + /// + /// STEP03 카드 결제 - 캐시비 + /// + public string UseCardPaymentCashBee + { + get { return useCardPaymentCashBee; } + set { useCardPaymentCashBee = value; PropertyChange("UseCardPaymentCashBee"); } + } + + private string useCardPaymentHappyGift; + /// + /// STEP03 카드 결제 - HAPPY GIFT + /// + public string UseCardPaymentHappyGift + { + get { return useCardPaymentHappyGift; } + set { useCardPaymentHappyGift = value; PropertyChange("UseCardPaymentHappyGift"); } + } + + private string useCardPaymentSamsungLGPay; + /// + /// STEP03 카드 결제 - 삼성/LG 페이 + /// + public string UseCardPaymentSamsungLGPay + { + get { return useCardPaymentSamsungLGPay; } + set { useCardPaymentSamsungLGPay = value; PropertyChange("UseCardPaymentSamsungLGPay"); } + } + + private string useCardPaymentAlipay; + /// + /// STEP03 카드 결제 - 알리페이 + /// + public string UseCardPaymentAlipay + { + get { return useCardPaymentAlipay; } + set { useCardPaymentAlipay = value; PropertyChange("UseCardPaymentAlipay"); } + } + + private string useCardPaymentSmilePay; + /// + /// STEP03 카드 결제 - 스마일페이 + /// + public string UseCardPaymentSmilePay + { + get { return useCardPaymentSmilePay; } + set { useCardPaymentSmilePay = value; PropertyChange("UseCardPaymentSmilePay"); } + } + + private string useCardPaymentZeroPay; + /// + /// STEP03 카드 결제 - 제로페이 + /// + public string UseCardPaymentZeroPay + { + get { return useCardPaymentZeroPay; } + set { useCardPaymentZeroPay = value; PropertyChange("UseCardPaymentZeroPay"); } + } + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NumberPadImages.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NumberPadImages.cs new file mode 100644 index 0000000..cc1105c --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_NumberPadImages.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup.Model +{ + /// + /// Number Pad Images Model + /// + public class M_NumberPadImages + { + /// + /// Button Type + /// + public NumberPadButton ButtonType { get; set; } + /// + /// Button Image + /// + public string ButtonImage { get; set; } + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OkCashBagReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OkCashBagReturn.cs new file mode 100644 index 0000000..69f37b8 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OkCashBagReturn.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup.Model +{ + /// + /// OK 캐쉬백 인증 및 사용정보 + /// + public class M_OkCashBagReturn + { + /// + /// 회원명 + /// + public string MemberName { get; set; } = string.Empty; + /// + /// 회원인증번호 + /// + public string MemberCode { get; set; } = string.Empty; + /// + /// 적립된 포인트 + /// + public double MemberPoint { get; set; } = 0; + /// + /// 적립 유무 + /// + public bool ReservePoint { get; set; } = false; + /// + /// 포인트 사용유무 + /// + public bool PointUse { get; set; } = false; + /// + /// 사용 포인트 + /// + public double UsingPoints { get; set; } = 0; + /// + /// Password 사용유무 + /// + public bool NeedPassword { get; set; } + /// + /// 승인번호 + /// + public string ApprovalNo { get; set; } = string.Empty; + /// + /// 승인일자 + /// + public string ApprovalDate { get; set; } = string.Empty; + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OptionReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OptionReturn.cs new file mode 100644 index 0000000..ee4c8a7 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_OptionReturn.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// HappyPoint 인증 및 사용 정보 + /// + public class M_OptionReturn + { + /// + /// Item Count + /// + public int ItemCount { get; set; } = 0; + /// + /// 적립된 포인트 + /// + public double PriceWithOption { get; set; } = 0d; + /// + /// Select Options + /// + public List Options { get; set; } + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentEndReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentEndReturn.cs new file mode 100644 index 0000000..892169c --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentEndReturn.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// Payment End Return Model + /// + public class M_PaymentEndReturn + { + /// + /// 개인 현금 연수중 발행 필요 + /// + public bool IsCashReceipt { get; set; } = false; + /// + /// 법인 혐금 영수증 발행 필요 + /// + public bool IsCompayCashReceipt { get; set; } = false; + /// + /// 현금 영수증 조회 번호 + /// + public string CashReceiptCode { get; set; } = string.Empty; + /// + /// 현금 영수증 발행 대상 금액 + /// + public int CashPayments { get; set; } = 0; + /// + /// 대기번호 + /// + public string WaitNumber { get; set; } = string.Empty; + /// + /// 진동벨 번호 + /// + public string VibrationBellNumber { get; set; } = string.Empty; + /// + /// 일림톡 대상 휴대폰 번호 + /// + public string NotifyTalkPhoneNumber { get; set; } = string.Empty; + /// + /// 승인 순번 + /// + public long PaySEQ { get; set; } = -1L; + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentReturn.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentReturn.cs new file mode 100644 index 0000000..d3676fe --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_PaymentReturn.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Popup.Model +{ + /// + /// 결제 완료 정보 + /// + public class M_PaymentReturn + { + /// + /// 결제 처리 성공 유무 + /// + public bool IsProcessOK { get; set; } = false; + /// + /// 결제 금액 + /// + public double PaymentsTotal { get; set; } = 0; + /// + /// 승인 순번 + /// + public long PaySEQ { get; set; } = -1L; + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_StoreAgree.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_StoreAgree.cs new file mode 100644 index 0000000..b0b8191 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/M_StoreAgree.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup.Model +{ + /// + /// 단골 매장 컨트롤용 모델 + /// + public class M_StoreAgree + { + /// + /// 단골 매장 유무 + /// + public bool IsFavoriteStore { get; set; } = false; + /// + /// 표시언어 + /// + public SupportLanguageType DisplayLanguage { get; set; } + /// + /// 제목 + /// + public List Header { get; set; } + /// + /// 배경 이미지 + /// + public string BackgroundImage { get; set; } + /// + /// 점포 이미지 + /// + public string StoreImage { get; set; } + /// + /// 점포명 + /// + public string StoreName { get; set; } + /// + /// 등록 첫번째 안내 + /// + public List FirstInfoText { get; set; } + /// + /// 등록 두번째 안내 + /// + public List SecondInfoText { get; set; } + /// + /// 환영 안내 + /// + public List WelcomeInfoText { get; set; } + /// + /// Button Normal Brush + /// + public string ButtonNormalBrush { get; set; } + /// + /// Button SwitchOn Brush + /// + public string ButtonSwitchOnBrush { get; set; } + /// + /// Button Text + /// + public List ButtonText { get; set; } + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/Properties/AssemblyInfo.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6389522 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Popup.Model")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Popup.Model")] +[assembly: AssemblyCopyright("Copyright © Zin Inc. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +//지역화 가능 응용 프로그램 빌드를 시작하려면 다음을 설정하세요. +//.csproj 파일에서 내에 CultureYouAreCodingWith를 +//설정하십시오. 예를 들어 소스 파일에서 영어(미국)를 +//사용하는 경우 를 en-US로 설정합니다. 그런 다음 아래 +//NeutralResourceLanguage 특성의 주석 처리를 제거합니다. 아래 줄의 "en-US"를 업데이트하여 +//프로젝트 파일의 UICulture 설정과 일치시킵니다. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //테마별 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) + ResourceDictionaryLocation.SourceAssembly //제네릭 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) +)] + + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/SPC.Kiosk.Popup.Model.csproj b/Kiosk/Popup/SPC.Kiosk.Popup.Model/SPC.Kiosk.Popup.Model.csproj new file mode 100644 index 0000000..2795326 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/SPC.Kiosk.Popup.Model.csproj @@ -0,0 +1,83 @@ + + + + + Debug + AnyCPU + {BE7FC15C-325B-4AD4-8EA0-A8244193E431} + Library + SPC.Kiosk.Popup.Model + SPC.Kiosk.Popup.Model + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + x86 + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + 4.0 + + + + + + + + + + + + + + + + + + + + Code + + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + + \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.Model/Types.cs b/Kiosk/Popup/SPC.Kiosk.Popup.Model/Types.cs new file mode 100644 index 0000000..d0bbbcb --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.Model/Types.cs @@ -0,0 +1,382 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace SPC.Kiosk.Popup.Model +{ + /// + /// 미니팝업 아이콘 타입 + /// + public enum MiniPopupIcon + { + /// + /// 없음 + /// + None, + /// + /// 취소 + /// + Cancel, + /// + /// 삭제 + /// + Delete, + /// + /// 목록 삭제 + /// + ListCancel, + /// + /// 할인 취소 + /// + DiscountCancel, + /// + /// 상은품 취소 + /// + GiftCancel, + /// + /// 주문 취소 + /// + OrderCancel, + /// + /// 쿠폰 추가 + /// + AddCoupon, + /// + /// 결제 + /// + Payment, + } + /// + /// Number Pad Buttons + /// + public enum NumberPadButton + { + /// + /// Button0 + /// + Button0, + /// + /// Button1 + /// + Button1, + /// + /// Button2 + /// + Button2, + /// + /// Button3 + /// + Button3, + /// + /// Button4 + /// + Button4, + /// + /// Button5 + /// + Button5, + /// + /// Button6 + /// + Button6, + /// + /// Button7 + /// + Button7, + /// + /// Button8 + /// + Button8, + /// + /// Button9 + /// + Button9, + /// + /// ButtonCancel + /// + ButtonCancel, + /// + /// ButtonBack + /// + ButtonBack, + /// + /// None Button + /// + ButtonNone + } + /// + /// Mobile Coupon Window Type + /// + public enum MobileCouponWindowType + { + /// + /// 쿠폰조회 시작 + /// + CouponStart, + /// + /// 쿠폰사용 시작 + /// + CouponUsing, + /// + /// 처리중 + /// + Processing, + /// + /// 처리 실패 + /// + ProcessingError, + /// + /// 인증 처리 성공 + /// + CouponSuccess, + } + /// + /// 인증창/통신사 할인 WindowType + /// + public enum CertifyWindowType + { + /// + /// 인증 처리시작 + /// + CertifyStart, + /// + /// 인증 처리중 + /// + CertifyProcessing, + /// + /// 인증 실패 + /// + ProcessingError, + /// + /// 인증 처리 성공 + /// + CertifySuccess, + } + /// + /// Happy Point Coupon Window Type + /// + public enum HappyCouponWindowType + { + /// + /// 쿠폰 인식 + /// + CouponStart, + /// + /// 쿠폰 선택 + /// + CouponUsing, + /// + /// 처리중 + /// + Processing, + /// + /// 처리 실패 + /// + ProcessingError, + /// + /// 처리 성공 + /// + CouponSuccess, + } + /// + /// 포인트 사용 윈도우 타입 + /// + public enum PointUsingWindowType + { + /// + /// 인증 처리시작 + /// + CertifyStart, + /// + /// 포인트 사용 시작 + /// + PointUsing, + /// + /// 처리중 + /// + Processing, + /// + /// 처리 실패 + /// + ProcessingError, + /// + /// 처리 성공 + /// + CertifySuccess, + } + /// + /// 결제창 + /// + public enum PaymentWindowType + { + None, + /// + /// 결제 수단 요구 + /// + PaymentStart, + /// + /// 핀(6자리) 암호 입력창 + /// + ReadPinNumber, + /// + /// 싸인 입력창 + /// + ReadSign, + /// + /// 결제 처리중 + /// + PaymentProcessing, + /// + /// 결제 실패 + /// + ProcessingError, + /// + /// 처리 성공 + /// + PaymentSuccess + + } + /// + /// 결제 후처리창 + /// + public enum PaymentEndWindowType + { + None, + /// + /// 현금 영수증 + /// + CashReceipt, + /// + /// 결제 처리중 + /// + Processing, + /// + /// 진동벨 또는 알림톡 입력 + /// + BellOrNotifyTalk, + /// + /// 일반 처리 처리 성공 + /// + PaymentSuccess, + /// + /// 알림톡 완료 + /// + TalkSuccess, + /// + /// 진동벨/대기번호 완료 + /// + WaitNumberSuccess, + } + + /// + /// 통신사 + /// + public enum MobileCompanyType + { + /// + /// KT + /// + KT_Mobile, + /// + /// SK + /// + SK_Telecom, + /// + /// LG + /// + LG_Uplus + } + /// + /// 최종 결제 수단 + /// + public enum LastPaymentsType + { + None, + /// + /// Card 결제 + /// + IcCard, + /// + /// 삼성,LG 페이 + /// + SsLgPay, + /// + /// 캐시비 + /// + CashBee, + /// + /// 해피기프트 + /// + HappyGift, + /// + /// 티머니 + /// + Tmoney, + /// + /// 임직원결제 + /// + SpcEmployee, + /// + /// 스마일 페이 + /// + SmilePay, + /// + /// 알리페이 + /// + AliPay, + /// + /// 제로페이 + /// + ZeroPay, + } + + public enum PosOptionType + { + /// + /// 마감시간 설정 + /// + OPT800, + /// + /// 자동꺼짐 시간 + /// + OPT801, + /// + /// 진동벨 1사용, 0사용안함 + /// + OPT802, + /// + /// 알림톡 1사용, 0사용안함 + /// + OPT803, + /// + /// 대기번호 1사용, 0사용안함 + /// + OPT804, + /// + /// 자동결제 사용여부 1사용, 0사용안함 + /// + OPT810, + /// + /// 바코드계산 사용여부 1사용, 0사용안함 + /// + OPT811, + /// + /// 직원호출 사용여부 + /// + OPT812, + /// + /// 다국어 - 영문사용 + /// + OPT813, + /// + /// 다국어 - 일어사용 + /// + OPT814, + /// + /// 다국어 - 중국어사용 + /// + OPT815, + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/PopupViewModelBase.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/PopupViewModelBase.cs new file mode 100644 index 0000000..f5fa297 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/PopupViewModelBase.cs @@ -0,0 +1,194 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// Popup View Model Base + /// + public class PopupViewModelBase : ViewModelBase + { + #region [ Members ] + public ICommand ToExecuteNothing { get; protected set; } = null; + private SupportLanguageType showLanguageType; + /// + /// 화면 언어 + /// + public SupportLanguageType ShowLanguageType + { + get { return showLanguageType; } + set { showLanguageType = value; PropertyChange("ShowLanguageType"); } + } + /// + /// 팝업 응답 정보 + /// + public M_PopupReturn ReturnValue { get; set; } + private bool canWindowClose = false; + /// + /// 화면 닫기 (true 이면 바로 닫음) + /// + public bool CanWindowClose + { + get { return canWindowClose; } + set { canWindowClose = value; PropertyChange("CanWindowClose"); } + } + private bool timerEnabled = false; + /// + /// 대기시간 타이머 동작 유무 + /// + public bool TimerEnabled + { + get { return timerEnabled; } + set { timerEnabled = value; PropertyChange("TimerEnabled"); } + } + private bool isTimeout = false; + /// + /// 대기시간 초과 유무 (타이머 동작 중지후 IsTimeOut = True 발생) + /// + public bool IsTimeout + { + get { return isTimeout; } + set { isTimeout = value; PropertyChange("IsTimeout"); } + } + private double timeOutSeconds = 30d; + /// + /// 대기시간 (초) + /// + public double TimeOutSeconds + { + get { return timeOutSeconds; } + set { timeOutSeconds = value; PropertyChange("TimeOutSeconds"); } + } + private bool isTimeoutPopup = false; + public bool IsTimeoutPopup + { + get { return isTimeoutPopup; } + set { isTimeoutPopup = value; PropertyChange("IsTimeoutPopup"); } + } + /// + /// 최종 엑세스 시간 PropertyChanged 가 발생 할때 마다 업데이트됨 + /// + public DateTime LastAccessTime { get; set; } = DateTime.Now; + private DispatcherTimer ShowTimer; + #endregion + + #region [ Ctor ] + /// + /// 생성자 + /// + public PopupViewModelBase() + { + ToExecuteNothing = new Command(ToExecuteNothingHandler); + this.PropertyChanged += PopupViewModelBase_PropertyChanged; + TimeOutSeconds = CommonValue.TimeOutSeconds; + ShowLanguageType = CommonValue.CommonLanguageType; + TimerEnabled = true; + } + /// + /// Dispose + /// + public void Dispose() + { + this.PropertyChanged -= PopupViewModelBase_PropertyChanged; + if (this.ShowTimer != null) + { + ShowTimer.Stop(); + ShowTimer.Tick -= ShowTimer_Tick; + ShowTimer = null; + } + } + #endregion Ctor + + #region [ Event Handlers ] + private void ToExecuteNothingHandler(object obj) + { + + } + private void ShowTimer_Tick(object sender, EventArgs e) + { + if ((DateTime.Now - LastAccessTime) > TimeSpan.FromSeconds(TimeOutSeconds)) + { + + TimerEnabled = false; + if (IsTimeoutPopup) + { +#if !TESTMODE + var popupReturn = PopupMessageBox.ShowMessageBox(ShowLanguageType + , Languages.GetMessages("LBL0067") + , Languages.GetMessages("LBL0021") + , MessageBoxButton.YesNo + , OpenCloseAnimationType.FullSizeUp + , OpenCloseAnimationType.FullSizeDown + , 0.5, 0.2, 10); + if (popupReturn.Equals(MessageBoxResult.Yes)) + { + LastAccessTime = DateTime.Now; + TimerEnabled = true; + } + else + { + IsTimeout = true; + } +#endif + } + else + { + IsTimeout = true; + } + } + } + private void PopupViewModelBase_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + LastAccessTime = DateTime.Now; + switch (e.PropertyName) + { + case "TimerEnabled": + if (TimerEnabled) + { + if (this.ShowTimer != null) + { + this.ShowTimer.Start(); + } + else + { + this.ShowTimer = new DispatcherTimer + { + Interval = TimeSpan.FromSeconds(1), + }; + ShowTimer.Tick += ShowTimer_Tick; + ShowTimer.Start(); + } + + } + else + { + if (this.ShowTimer != null) + { + this.ShowTimer.Stop(); + } + } + break; + case "CanWindowClose": + if (this.ShowTimer != null) + { + this.ShowTimer.Stop(); + this.ShowTimer.Tick -= ShowTimer_Tick; + this.ShowTimer = null; + } + break; + } + } + + + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/Properties/AssemblyInfo.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..56b5ccb --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Popup.ViewModel")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Popup.ViewModel")] +[assembly: AssemblyCopyright("Copyright © Zin Inc. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +//지역화 가능 응용 프로그램 빌드를 시작하려면 다음을 설정하세요. +//.csproj 파일에서 내에 CultureYouAreCodingWith를 +//설정하십시오. 예를 들어 소스 파일에서 영어(미국)를 +//사용하는 경우 를 en-US로 설정합니다. 그런 다음 아래 +//NeutralResourceLanguage 특성의 주석 처리를 제거합니다. 아래 줄의 "en-US"를 업데이트하여 +//프로젝트 파일의 UICulture 설정과 일치시킵니다. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //테마별 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) + ResourceDictionaryLocation.SourceAssembly //제네릭 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) +)] + + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/SPC.Kiosk.Popup.ViewModel.csproj b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/SPC.Kiosk.Popup.ViewModel.csproj new file mode 100644 index 0000000..817a541 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/SPC.Kiosk.Popup.ViewModel.csproj @@ -0,0 +1,100 @@ + + + + + Debug + AnyCPU + {9EF1FEC9-5F0A-4A4E-8723-E93F30798FD2} + Library + SPC.Kiosk.Popup.ViewModel + SPC.Kiosk.Popup.ViewModel + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + x86 + true + full + false + ..\..\..\..\BIN\ + TRACE;DEBUG;TESTMODE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + 4.0 + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {fee44681-7f0e-469a-a833-dc324eb6d01a} + SPC.Kiosk.DataHelper + + + {36fe9011-b9bc-4348-b9c1-1c063dbfa926} + SPC.Kiosk.Payments + + + {be7fc15c-325b-4ad4-8ea0-a8244193e431} + SPC.Kiosk.Popup.Model + + + + \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmCallEmployee.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmCallEmployee.cs new file mode 100644 index 0000000..cdca408 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmCallEmployee.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// CallEmployee.xaml 의 ViewModel + /// + public class VmCallEmployee : PopupViewModelBase + { + #region [ Members ] + private List messageText = null; + /// + /// Message Text + /// + public List MessageText + { + get { return messageText; } + set { messageText = value; PropertyChange("MessageText"); } + } + private List infomationText = null; + /// + /// Infomation Text + /// + public List InfomationText + { + get { return infomationText; } + set { infomationText = value; PropertyChange("InfomationText"); } + } + + private bool isCallEmployeeOK = false; + /// + /// Is Call Employee Process OK + /// + public bool IsCallEmployeeOK + { + get { return isCallEmployeeOK; } + set { isCallEmployeeOK = value; PropertyChange("IsCallEmployeeOK"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + private double okButtonWidth=650d; + /// + /// OK Button Width + /// + public double OkButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OkButtonWidth"); } + } + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Visible + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private string callImage; + /// + /// Call Image Enabled (On Error Enabled False) + /// + public string CallImage + { + get { return callImage; } + set { callImage = value; PropertyChange("CallImage"); } + } + private double popupWidth=1300d; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmCallEmployee() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmCallEmployee_PropertyChanged; + ShowLanguageType = CommonValue.CommonLanguageType; + CallImage = ResourceManager.GetNximagePathAdd("ic_alert_help.png", CommonValue.PBdesignImagesPath); + MessageText = Languages.GetMessages("LBL0102"); + InfomationText = new List(); + OkButtonText = Languages.GetMessages("BTN0005"); + CancelButtonText = Languages.GetMessages("BTN0021"); + } + ~VmCallEmployee() + { + this.PropertyChanged -= VmCallEmployee_PropertyChanged; + } + #endregion Ctor + + #region [ Event Handlers ] + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + TimerEnabled = false; + if (IsCallEmployeeOK) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + else + { + IsCallEmployeeOK = true; + } + } + + private void VmCallEmployee_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + break; + case "IsCallEmployeeOK": + if (IsCallEmployeeOK) + { + CallImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath); + MessageText = Languages.GetMessages("LBL0101"); + InfomationText = new List(); + OkButtonWidth =PopupWidth; + CancelButtonWidth = 0; + OkButtonText = Languages.GetMessages("BTN0039"); + } + break; + } + } + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCertify.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCertify.cs new file mode 100644 index 0000000..8600328 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCertify.cs @@ -0,0 +1,1300 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using System.Reflection; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +using SPC.Kiosk.DataHelper; +using System.Windows.Controls; +using System.Windows.Media; + +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// HappyPointCertify.xaml에 대한 ViewModel + /// + public class VmHappyPointCertify : PopupViewModelBase + { + + + #region [ Members ] + private PosDataService posDataService = null; + private ObservableCollection memberHistoryItems= new ObservableCollection(); + /// + /// Member History Items + /// + public ObservableCollection MemberHistoryItems + { + get { return memberHistoryItems; } + set { memberHistoryItems = value; PropertyChange("MemberHistoryItems"); } + } + private ObservableCollection memberOrderBasket; + /// + /// Member Order Basket + /// + public ObservableCollection MemberOrderBasket + { + get { return memberOrderBasket; } + set { memberOrderBasket = value; PropertyChange("MemberOrderBasket"); } + } + + private double memberHistoryItemsGridHeight = 310d; + /// + /// Member History Items Grid Height + /// + public double MemberHistoryItemsGridHeight + { + get { return memberHistoryItemsGridHeight; } + set { memberHistoryItemsGridHeight = value; PropertyChange("MemberHistoryItemsGridHeight"); } + } + private double topGridMarginHeight = 0d; + /// + /// Top Grid Margin Height + /// + public double TopGridMarginHeight + { + get { return topGridMarginHeight; } + set { topGridMarginHeight = value; PropertyChange("TopGridMarginHeight"); } + } + + private string titileImage; + /// + /// Titile Image + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + private string imageQR; + /// + /// Image QR + /// + public string ImageQR + { + get { return imageQR; } + set { imageQR = value; PropertyChange("ImageQR"); } + } + + private string imageUserType= ResourceManager.GetNximagePathAdd("happy_member_pink.gif", CommonValue.PBdesignImagesPath); + /// + /// + /// + public string ImageUserType + { + get { return imageUserType; } + set { imageUserType = value; PropertyChange("ImageUserType"); } + } + + + private List headerText; + /// + /// Top Header Text + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Sub Header Text + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + private List infoGuid1Text; + /// + /// Bootom first infomation text + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private string errorImage; + /// + /// Read Barcode + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + public bool certifyStartVisible = false; + /// + /// 인증 시작 화면 Visible + /// + public bool CertifyStartVisible + { + get { return certifyStartVisible; } + set { certifyStartVisible = value; PropertyChange("CertifyStartVisible"); } + } + public bool certifyProcessingVisible = false; + /// + /// 인증 진행 화면 Visible + /// + public bool CertifyProcessingVisible + { + get { return certifyProcessingVisible; } + set { certifyProcessingVisible = value; PropertyChange("CertifyProcessingVisible"); } + } + public bool processingErrorVisible = false; + /// + /// 인증 오류 화면 Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + public bool certifySuccessVisible = false; + /// + /// 인증 완료 화면 Visible + /// + public bool CertifySuccessVisible + { + get { return certifySuccessVisible; } + set { certifySuccessVisible = value; PropertyChange("CertifySuccessVisible"); } + } + private List processingMessageText; + /// + /// Number Pad Input Guide Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + + private List numPadGuidText; + /// + /// Number Pad Input Guide Text + /// + public List NumPadGuidText + { + get { return numPadGuidText; } + set { numPadGuidText = value; PropertyChange("NumPadGuidText"); } + } + private List errorText; + /// + /// Process Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcode Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private bool showPhoneInput = false; + /// + /// Show Phone Input + /// + public bool ShowPhoneInput + { + get { return showPhoneInput; } + set { showPhoneInput = value; PropertyChange("ShowPhoneInput"); } + } + private List showPhoneButtonText; + /// + /// Number Pad Input Guide Text + /// + public List ShowPhoneButtonText + { + get { return showPhoneButtonText; } + set { showPhoneButtonText = value; PropertyChange("ShowPhoneButtonText"); } + } + + private string inputNumbers = string.Empty; + /// + /// Number Pad Input Number + /// + public string InputNumbers + { + get { return inputNumbers; } + set { inputNumbers = value; PropertyChange("InputNumbers"); } + } + + private string memberNameText = string.Empty; + /// + /// Number Pad Input Number + /// + public string MemberNameText + { + get { return memberNameText; } + set { memberNameText = value; PropertyChange("MemberNameText"); } + } + private string memberPointsText = string.Empty; + /// + /// Number Pad Input Number + /// + public string MemberPointsText + { + get { return memberPointsText; } + set { memberPointsText = value; PropertyChange("MemberPointsText"); } + } + + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// Ok Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private double okButtonWidth = 650d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + public bool numPadInputVisible = false; + /// + /// OK Button enabled + /// + public bool NumPadInputVisible + { + get { return numPadInputVisible; } + set { numPadInputVisible = value; PropertyChange("NumPadInputVisible"); } + } + public bool numPadGuideVisible = true; + /// + /// OK Button enabled + /// + public bool NumPadGuideVisible + { + get { return numPadGuideVisible; } + set { numPadGuideVisible = value; PropertyChange("NumPadGuideVisible"); } + } + + public int numPadMaxLength; + /// + /// Number Pad Input Maxlength + /// + public int NumPadMaxLength + { + get { return numPadMaxLength; } + set { numPadMaxLength = value; PropertyChange("NumPadMaxLength"); } + } + + private List memberPointsHeaderText; + /// + /// Cancel Button Text + /// + public List MemberPointsHeaderText + { + get { return memberPointsHeaderText; } + set { memberPointsHeaderText = value; PropertyChange("MemberPointsHeaderText"); } + } + private string languageButttonImage; + /// + /// Read Barcode Formated Text + /// + public string LanguageButttonImage + { + get { return languageButttonImage; } + set { languageButttonImage = value; PropertyChange("LanguageButttonImage"); } + } + private bool languageButttonVisibel; + /// + /// Language Select Button Visible + /// + public bool LanguageButttonVisibel + { + get { return languageButttonVisibel; } + set { languageButttonVisibel = value; PropertyChange("LanguageButttonVisibel"); } + } + private CertifyWindowType certifyWindow = CertifyWindowType.CertifyStart; + /// + /// Current View Window + /// + public CertifyWindowType CertifyWindow + { + get { return certifyWindow; } + set { certifyWindow = value; PropertyChange("CertifyWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + + private List bellButtonText; + /// + /// Barcode Scan Login Button Text + /// + public List BellButtonText + { + get { return bellButtonText; } + set { bellButtonText = value; PropertyChange("BellButtonText"); } + } + private List talkButtonText; + /// + /// Mobile Login Button Text + /// + public List TalkButtonText + { + get { return talkButtonText; } + set { talkButtonText = value; PropertyChange("TalkButtonText"); } + } + + /// + /// HappyPoint 인증 정보 + /// + public M_HappyPointReturn HappyPointReturn { get; set; } + + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + public ICommand SwitchPhoneCommand { get; protected set; } + + /// + /// Bell Button Command + /// + public ICommand BellButtonCommand { get; protected set; } + /// + /// Talk Button Command + /// + public ICommand TalkButtonCommand { get; protected set; } + + + public bool openOptionPopup = true; + /// + /// OK Button enabled + /// + public bool OpenOptionPopup + { + get { return openOptionPopup; } + set { openOptionPopup = value; PropertyChange("openOptionPopup"); } + } + /// + /// Selected Data + /// + public M_ItemData SelectedData { get; protected set; } + /// + /// Get Option Popup Return + /// + public M_PopupReturn GetOptionPopupReturn { get; set; } + private bool MemberProcessStart = false; + private posHappyPoint posHappyPoint = null; + private Task ProcessTask = null; + private string certifyKey = string.Empty; + + + private ParentPage _popupParentPage; + /// + /// Popup Parent Page + /// + public ParentPage PopupParentPage + { + get { return _popupParentPage; } + set { _popupParentPage = value; PropertyChange("PopupParentPage"); } + } + private string cashReceipButtonBackground; + /// + /// CashReceip Button Background + /// + public string CashReceipButtonBackground + { + get { return cashReceipButtonBackground; } + set { cashReceipButtonBackground = value; PropertyChange("CashReceipButtonBackground"); } + } + private string cashTypePersonButtonNormal; + /// + /// CashType Person Button Normal + /// + public string CashTypePersonButtonNormal + { + get { return cashTypePersonButtonNormal; } + set { cashTypePersonButtonNormal = value; PropertyChange("CashTypePersonButtonNormal"); } + } + private string cashTypePersonButtonDisable; + /// + /// CashType Person Button Disable + /// + public string CashTypePersonButtonDisable + { + get { return cashTypePersonButtonDisable; } + set { cashTypePersonButtonDisable = value; PropertyChange("CashTypePersonButtonDisable"); } + } + private bool cashTypePersonEnable = false; + /// + /// CashType Serson Enabled + /// + public bool CashTypePersonEnable + { + get { return cashTypePersonEnable; } + set { cashTypePersonEnable = value; PropertyChange("CashTypePersonEnable"); } + } + private string cashTypeCompanyButtonNormal; + /// + /// CashType Company Button Normal + /// + public string CashTypeCompanyButtonNormal + { + get { return cashTypeCompanyButtonNormal; } + set { cashTypeCompanyButtonNormal = value; PropertyChange("CashTypeCompanyButtonNormal"); } + } + private string cashTypeCompanyButtonDisable; + /// + /// CashType Company Button Disable + /// + public string CashTypeCompanyButtonDisable + { + get { return cashTypeCompanyButtonDisable; } + set { cashTypeCompanyButtonDisable = value; PropertyChange("CashTypeCompanyButtonDisable"); } + } + public bool cashTypeCompanyEnable = true; + /// + /// CashType Serson Enabled + /// + public bool CashTypeCompanyEnable + { + get { return cashTypeCompanyEnable; } + set { cashTypeCompanyEnable = value; PropertyChange("CashTypeCompanyEnable"); } + } + + private bool bellButtonEnable = false; + /// + /// Bell Button Enable + /// + public bool BellButtonEnable + { + get { return bellButtonEnable; } + set { bellButtonEnable = value; PropertyChange("BellButtonEnable"); } + } + private bool talkButtonEnable = true; + /// + /// Talk Button Enable + /// + public bool TalkButtonEnable + { + get { return talkButtonEnable; } + set { talkButtonEnable = value; PropertyChange("TalkButtonEnable"); } + } + #endregion + + #region [ Ctor ] + /// + /// Ctor + /// + public VmHappyPointCertify() + { + posDataService = new PosDataService(); + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + SwitchPhoneCommand = new Command(SwitchPhoneCommandHandler); + this.PropertyChanged += VmHappyPointCertify_PropertyChanged; + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode_happy.gif", CommonValue.PBdesignImagesPath); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + ImageQR = ResourceManager.GetNximagePathAdd("Img_qr.png", CommonValue.PBdesignImagesPath); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + HeaderText = Languages.GetMessages("LBL0134"); + MemberPointsHeaderText = Languages.GetMessages("LBL0054"); + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0017"); + ErrorGuide = Languages.GetMessages("LBL0017"); + ErrorText = new List(); + NumPadMaxLength = 11; + NumPadGuidText = Languages.GetMessages("LBL0091"); + ShowPhoneButtonText = new List + { + new M_Language { Type=SupportLanguageType.ko,LanguageData="전화번호로 로그인 >>" } + }; + ShowLanguageType = CommonValue.CommonLanguageType; + posHappyPoint = new posHappyPoint(); + CertifyWindow = CertifyWindowType.CertifyStart; + ShowPhoneInput = false; + + BellButtonCommand = new Command(BellButtonCommandHandler); + TalkButtonCommand = new Command(TalkButtonCommandHandler); + + + CashReceipButtonBackground = ResourceManager.GetNximagePathAdd("img_check_bg.png", CommonValue.PBdesignImagesPath); + CashTypePersonButtonNormal = ResourceManager.GetNximagePathAdd("btn_check_n.png", CommonValue.PBdesignImagesPath); + CashTypePersonButtonDisable = ResourceManager.GetNximagePathAdd("btn_check_s.png", CommonValue.PBdesignImagesPath); + CashTypeCompanyButtonNormal = ResourceManager.GetNximagePathAdd("btn_check_n.png", CommonValue.PBdesignImagesPath); + CashTypeCompanyButtonDisable = ResourceManager.GetNximagePathAdd("btn_check_s.png", CommonValue.PBdesignImagesPath); + } + /// + /// Dispose + /// + public new void Dispose() + { + this.TitileImage = null; + this.ProcessingGIF = string.Empty; + this.ErrorImage = string.Empty; + this.PropertyChanged -= VmHappyPointCertify_PropertyChanged; + if (posDataService != null) + { + posDataService.Dispose(); + posDataService = null; + } + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + if (posHappyPoint != null) + { + HappyPointRemoveEvents(); + posHappyPoint.Dispose(); + posHappyPoint = null; + } + base.Dispose(); + } + #endregion Ctor + + #region [ Method ] + private void AddItem2Basket(M_ItemData _itemData) + { + var option = new List(); + var itemCount = 1; + var unitPrice = _itemData.Price; + if (_itemData.IsOption) + { + SelectedData = _itemData; + GetOptionPopupReturn = null; + OpenOptionPopup = true; + try + { + if (GetOptionPopupReturn is M_PopupReturn popupReturn) + { + if (popupReturn.TimeOut) + { + IsTimeout = true; + option = null; + } + else + { + if (popupReturn.PopupArgs is M_OptionReturn getOption) + { + option = getOption.Options; + itemCount = getOption.ItemCount; + unitPrice = getOption.PriceWithOption; + } + else + { + option = null; + } + } + } + else + { + option = null; + } + } + catch + { + option = null; + } + finally + { + OpenOptionPopup = false; + } + if (option == null) return; + } + else + { + option = null; + itemCount = 1; + unitPrice = _itemData.Price; + } + var getNewOrderBasket = posDataService.AddItemToBasket(MemberOrderBasket + , itemCount + , unitPrice + , CommonValue.PBdesignImagesPath + , _itemData + , option); + if (getNewOrderBasket is ObservableCollection) MemberOrderBasket = getNewOrderBasket; + + } + + private void InitError() + { + LastAccessTime = DateTime.Now; + ErrorText = new List(); + IsErrorBlink = false; + } + private void HappyPointCreateEvents() + { + if (posHappyPoint != null) + { + posHappyPoint.ReadStart += PosHappyPoint_ReadStart; + posHappyPoint.ReadEnd += PosHappyPoint_ReadEnd; + posHappyPoint.ErrorEvent += PosHappyPoint_ErrorEvent; + posHappyPoint.ErrorMessageEvent += PosHappyPoint_ErrorMessageEvent; + } + } + private void HappyPointRemoveEvents() + { + if (posHappyPoint != null) + { + posHappyPoint.ReadStart -= PosHappyPoint_ReadStart; + posHappyPoint.ReadEnd -= PosHappyPoint_ReadEnd; + posHappyPoint.ErrorEvent -= PosHappyPoint_ErrorEvent; + posHappyPoint.ErrorMessageEvent -= PosHappyPoint_ErrorMessageEvent; + } + } + private void DoHappyPointCertify() + { + + if (posHappyPoint != null) + { + HappyPointCreateEvents(); + var processTask = new Task(() => posHappyPoint.StartCertifyProcessing(certifyKey)); + processTask.Start(); + processTask.Wait(); + HappyPointRemoveEvents(); + if (posHappyPoint.ProcessOK) + { + CertifyWindow = CertifyWindowType.CertifySuccess; + } + else + { + CertifyWindow = CertifyWindowType.ProcessingError; + } + TimerEnabled = true; + MemberProcessStart = false; + processTask = null; + } + + } + private void DoBarCodeHappyPointCertify() + { + InputNumbers = string.Empty; + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + certifyKey = ReadBarCode; + CertifyWindow = CertifyWindowType.CertifyProcessing; + } + + private void SetImageUserType() + { + if (HappyPointReturn is M_HappyPointReturn) + { + if (HappyPointReturn.IsCompanyMember) + { + ImageUserType = ResourceManager.GetNximagePathAdd("happy_member_spc.png", CommonValue.PBdesignImagesPath); + } + else + { + switch (HappyPointReturn.MemberLevel) + { + case HappyPointMemberLevel.VIP: + ImageUserType = ResourceManager.GetNximagePathAdd("happy_member_platinum.png", CommonValue.PBdesignImagesPath); + break; + case HappyPointMemberLevel.Gold: + ImageUserType = ResourceManager.GetNximagePathAdd("happy_member_gold.png", CommonValue.PBdesignImagesPath); + break; + default: //PINK && None => Pink + ImageUserType = ResourceManager.GetNximagePathAdd("happy_member_pink.png", CommonValue.PBdesignImagesPath); + break; + } + } + } + } + + private void SetOrderHistory(string _custCD) + { + if (!string.IsNullOrEmpty(_custCD)) + { + using (var dataHelper = new CommonDataHelper()) + { + string[] orderHistoryArray = dataHelper.GetCustBuyHistory(_custCD); + if (orderHistoryArray is string[] && orderHistoryArray.Length > 0) + { + List orderHistoryList = null; + if (orderHistoryArray is string[] && orderHistoryArray.Length > 0) + { + orderHistoryList = new List(); + var historyKeys = string.Format("'{0}'", string.Join("','", orderHistoryArray)); + var historyItems = dataHelper.GetItemsData(historyKeys); + //var historyItems = dataHelper.GetItemsData().GetRange(0,5); + if (historyItems is List) + { + foreach (var aItem in historyItems) + { + + aItem.BadgeHeight = 30; + aItem.BadgeOrientation = Orientation.Horizontal; + if (aItem.BadgeImages is List && aItem.BadgeImages.Count > 0) + { + var newBadgeImages = new List(); + foreach (var aBadgeImage in aItem.BadgeImages) + { + var strBadgeImage = ResourceManager.GetNximagePathAdd(aBadgeImage, CommonValue.PBdesignImagesPath); + if (!string.IsNullOrEmpty(strBadgeImage)) + { + newBadgeImages.Add(strBadgeImage); + } + } + aItem.BadgeImages = newBadgeImages; + } + if (aItem.Option is List && aItem.Option.Count > 0) + { + foreach (var aOptionGRP in aItem.Option) + { + if (aOptionGRP is M_ItemOptionGroup) + { + aOptionGRP.ImageFile = aOptionGRP.Index.Equals(0) + ? "ic_option_takein.png" + : aOptionGRP.Index.Equals(1) + ? "ic_option_shot.png" + : "ic_option_candle.png"; + } + } + } + var itemImage = ResourceManager.GetItemImage(aItem.ImageFile, CommonValue.ItemDefaultImage);//파일 없을 경우 DefaultImage로 + aItem.DataParameter = new M_AnimationButton + { + NormalBrush = itemImage, + DragCursorImage = itemImage, + DisableBrush = ResourceManager.GetNximagePathAdd("img_contents_soldout.png", CommonValue.PBdesignImagesPath), + Width = 60, + Height = 60, + Margin = new Thickness(80, 10, 95, 25), + BrushStretch = Stretch.Fill, + DragCursorHotSpot = HotSpotType.Center, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + Enabled = !aItem.IsSoldOut, + CircleText = string.Empty, + }; + aItem.BaseTextBlock = new M_TextBlock() + { + LanguageData = dataHelper.GetLaguageData("PROD", aItem.ItemCode), + TextSize = 20, + Width = 210, + Height = 50, + TextBrush = "Black", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Center, + TextMargin = new Thickness(5, 0, 20, 0), + TextWeight = FontWeights.Bold, + TextWrapping = TextWrapping.Wrap + }; + aItem.AdditionTextBlock = new M_TextBlock() + { + LanguageData = new List + { + new M_Language{ Type = SupportLanguageType.ko, LanguageData = string.Format("₩{0:#,##0}", aItem.Price)}, + }, + TextSize = 26, + Width = 210, + Height = 30, + TextBrush = "#1469cc", + TextFontFamily = "NanumSquare", + TextVerticalAlignment = VerticalAlignment.Top, + TextMargin = new Thickness(5, 5, 20, 0), + TextWeight = FontWeights.Bold, + }; + orderHistoryList.Add(aItem.ItemCode); + } + } + MemberHistoryItems = new ObservableCollection(historyItems); + HappyPointReturn.OrderHistoryItems = orderHistoryList; + } + } + } + } + } + private void SetCertifyView() + { + if (ShowPhoneInput) + { + InputNumbers = string.Empty; + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = false; + //OkButtonText = Languages.GetMessages("BTN0011"); + //CancelButtonText = Languages.GetMessages("BTN0016"); + //ShowPhoneButtonText = new List + // { + // new M_Language { Type=SupportLanguageType.ko,LanguageData="바코드 스캔 로그인 >>" } + // }; + TalkButtonEnable = false; + BellButtonEnable = true; + } + else + { + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0d; + OKButtonEnabled = false; + //CancelButtonText = Languages.GetMessages("BTN0016"); + ShowPhoneButtonText = new List + { + new M_Language { Type=SupportLanguageType.ko,LanguageData="전화번호로 로그인 >>" } + }; + TalkButtonEnable = true; + BellButtonEnable = false; + + } + } + #endregion Method + + #region [ Event Handlers ] + + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + certifyKey = InputNumbers; + CertifyWindow = CertifyWindowType.CertifyProcessing; + break; + case CertifyWindowType.ProcessingError: + CertifyWindow = CertifyWindowType.CertifyStart; + break; + case CertifyWindowType.CertifySuccess: + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = HappyPointReturn, + PopupSubArgs = MemberOrderBasket is ObservableCollection + ? MemberOrderBasket.ToList() + : null + }; + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + + } + private void SwitchPhoneCommandHandler(object obj) + { + ShowPhoneInput = !ShowPhoneInput; + } + + private void PosHappyPoint_ErrorMessageEvent(string ErrorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = ErrorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + + } + + private void PosHappyPoint_ErrorEvent(posHappyPoint.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 핋요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + IsErrorBlink = true; + } + + private void PosHappyPoint_ReadStart(object sender) + { + MemberProcessStart = true; + TimerEnabled = false; + } + private void PosHappyPoint_ReadEnd(object sender) + { + if (sender is posHappyPoint getPosposHappyPoint) + { + if (getPosposHappyPoint.ProcessOK) + { + HappyPointReturn = new M_HappyPointReturn + { + MyHappyCoupons = getPosposHappyPoint.MyHappyCoupons, + IsFavoriteStore = getPosposHappyPoint.IsFavoriteStore, + IsCompanyMember = getPosposHappyPoint.IsCompanyMember, + MemberName = getPosposHappyPoint.MemberName, + MemberNumber = getPosposHappyPoint.MemberNumber, + MemberCode = getPosposHappyPoint.CertifyKey, + IsAppMamber = getPosposHappyPoint.IsAppMamber, + MemberLevel = getPosposHappyPoint.MemberLevel.StartsWith("VIP") + ? HappyPointMemberLevel.VIP + : getPosposHappyPoint.MemberLevel.StartsWith("G") + ? HappyPointMemberLevel.Gold + : HappyPointMemberLevel.Pink, + MemberPoint = getPosposHappyPoint.MemberPoint, + UseablePoint = getPosposHappyPoint.UseablePoint, + NeedPassword = getPosposHappyPoint.NeedPassword, + ReservePoint = getPosposHappyPoint.CanReservePoint, + IsCardNoUsed = getPosposHappyPoint.CertifyKey.Replace("=", "").Replace("@", "").Length.Equals(16) + }; + + // 포인트 멤버이름 : 핸드폰번호 시 [고객] + MemberNameText = HappyPointReturn.IsCardNoUsed ? HappyPointReturn.MemberName : "고객"; + MemberPointsHeaderText = HappyPointReturn.IsCardNoUsed ? Languages.GetMessages("LBL0054") : new List(); + + SetImageUserType(); + //주문이력 조회 기능 + //SetOrderHistory("1011175065"); //Test + if (HappyPointReturn.IsCardNoUsed) SetOrderHistory(HappyPointReturn.MemberNumber); //Prod + // 핸드폰 로그인 시 안보여도 포인트는 가지고 있어야 한다. + MemberPointsText = HappyPointReturn.IsCardNoUsed ? string.Format("{0}P", HappyPointReturn.MemberPoint.ToString("#,##0")) : string.Empty; + } + } + } + + private void VmHappyPointCertify_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + case CertifyWindowType.CertifySuccess: + case CertifyWindowType.ProcessingError: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + break; + } + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "ShowLanguageType": + switch (ShowLanguageType) + { + case SupportLanguageType.ko: + LanguageButttonImage = ResourceManager.GetNximagePathAdd("btn_language_kor.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.en: + LanguageButttonImage = ResourceManager.GetNximagePathAdd("btn_language_eng.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.ja: + LanguageButttonImage = ResourceManager.GetNximagePathAdd("btn_language_jap.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.zh: + LanguageButttonImage = ResourceManager.GetNximagePathAdd("btn_language_chi.png", CommonValue.PBdesignImagesPath); + break; + } + break; + case "ShowPhoneInput": + SetCertifyView(); + break; + case "NumPadInputVisible": + NumPadGuideVisible = !NumPadInputVisible; + break; + case "InputNumbers": + NumPadInputVisible = InputNumbers.Length > 0; + if (NumPadInputVisible) + { + InitError(); + ReadBarCode = string.Empty; + } + OKButtonEnabled = InputNumbers.Length.Equals(10) || InputNumbers.Length.Equals(11); + break; + case "ReadBarCode": + if (!MemberProcessStart) + { + InitError(); + switch (ReadBarCode.Length) + { + case 17: + readBarCode = ReadBarCode.Substring(0, 16); + DoBarCodeHappyPointCertify(); + break; + case 16: + DoBarCodeHappyPointCertify(); + break; + default: + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + break; + } + } + break; + case "CertifyWindow": + CertifyStartVisible = false; + CertifyProcessingVisible = false; + ProcessingErrorVisible = false; + CertifySuccessVisible = false; + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + CertifyStartVisible = true; + break; + case CertifyWindowType.CertifyProcessing: + CertifyProcessingVisible = true; + break; + case CertifyWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case CertifyWindowType.CertifySuccess: + CertifySuccessVisible = true; + break; + } + break; + case "CertifyStartVisible": + case "PopupParentPage": + if (CertifyStartVisible) + { + if (PopupParentPage == ParentPage.PBPaymentsWindow) + { + HeaderText = Languages.GetMessages("LBL0135"); + ScanGuidText = Languages.GetMessages("LBL0136"); + OkButtonText = Languages.GetMessages("BTN0039"); + CancelButtonText = Languages.GetMessages("BTN0033"); + BellButtonText = new List() { new M_Language() { LanguageData = "바코드스캔", Type = SupportLanguageType.ko } }; + TalkButtonText = new List() { new M_Language() { LanguageData = "휴대폰", Type = SupportLanguageType.ko } }; + } + else + { + HeaderText = Languages.GetMessages("LBL0134"); + ScanGuidText = Languages.GetMessages("LBL0137"); + OkButtonText = Languages.GetMessages("BTN0011"); + CancelButtonText = Languages.GetMessages("BTN0016"); + BellButtonText = new List() { new M_Language() { LanguageData = "바코드스캔 로그인", Type = SupportLanguageType.ko } }; + TalkButtonText = new List() { new M_Language() { LanguageData = "휴대폰 로그인", Type = SupportLanguageType.ko } }; + } + + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + SetCertifyView(); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "CertifyProcessingVisible": + if (CertifyProcessingVisible) + { + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = 0d; + LanguageButttonVisibel = false; + if (ProcessTask != null) ProcessTask.Wait(); + ProcessTask = new Task(DoHappyPointCertify); + ProcessTask.Start(); + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + if (PopupParentPage == ParentPage.PBPaymentsWindow) + { + HeaderText = Languages.GetMessages("LBL0135"); + ScanGuidText = Languages.GetMessages("LBL0136"); + OkButtonText = Languages.GetMessages("BTN0007"); + CancelButtonText = Languages.GetMessages("BTN0033"); + BellButtonText = new List() { new M_Language() { LanguageData = "바코드스캔", Type = SupportLanguageType.ko } }; + TalkButtonText = new List() { new M_Language() { LanguageData = "휴대폰", Type = SupportLanguageType.ko } }; + } + else + { + HeaderText = Languages.GetMessages("LBL0134"); + ScanGuidText = Languages.GetMessages("LBL0137"); + OkButtonText = Languages.GetMessages("BTN0007"); + CancelButtonText = Languages.GetMessages("BTN0033"); + BellButtonText = new List() { new M_Language() { LanguageData = "바코드스캔 로그인", Type = SupportLanguageType.ko } }; + TalkButtonText = new List() { new M_Language() { LanguageData = "휴대폰 로그인", Type = SupportLanguageType.ko } }; + } + + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + TimeOutSeconds = 10d; + LanguageButttonVisibel = false; + } + break; + case "CertifySuccessVisible": + if (CertifySuccessVisible) + { + if (PopupParentPage == ParentPage.PBPaymentsWindow) + { + HeaderText = Languages.GetMessages("LBL0135"); + OkButtonText = Languages.GetMessages("BTN0039"); + ScanGuidText = Languages.GetMessages("LBL0141"); + } + else + { + HeaderText = Languages.GetMessages("LBL0134"); + OkButtonText = Languages.GetMessages("BTN0039"); + ScanGuidText = Languages.GetMessages("LBL0141"); + } + + CancelButtonWidth = 0d; + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + TimeOutSeconds = CommonValue.TimeOutSeconds; + LanguageButttonVisibel = false; + } + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmHappyPointCertify_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void BellButtonCommandHandler(object obj) + { + + //BellButtonEnable = false; + ShowPhoneInput = !ShowPhoneInput; + + } + private void TalkButtonCommandHandler(object obj) + { + //TalkButtonEnable = false; + ShowPhoneInput = !ShowPhoneInput; + } + + #endregion Event Handlers + + + } + +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCoupon.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCoupon.cs new file mode 100644 index 0000000..18e90e5 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointCoupon.cs @@ -0,0 +1,745 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// HappyPointUsing.xaml에 대한 ViewModel + /// + public class VmHappyPointCoupon : PopupViewModelBase + { + #region [ Members ] + private enum ProcessingType + { + SingleCoupon, + CouponUsing + } + private ProcessingType ProcessType { get; set; } = ProcessingType.SingleCoupon; + private List happyAppCoupons = new List(); + /// + /// Happy App Coupons + /// + public List HappyAppCoupons + { + get { return happyAppCoupons; } + set { happyAppCoupons = value; PropertyChange("HappyAppCoupons"); } + } + private string titileImage; + /// + /// Barcode Scan Image + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + + private List headerText; + /// + /// Top Header Text (first Grid) + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Header Text (first Grid) + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List infoGuid1Text; + /// + /// Bootom first infomation text (first Grid) + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text (first Grid) + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private string errorImage; + /// + /// Error Icon + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + private string successImage; + /// + /// Sucess Icon + /// + public string SuccessImage + { + get { return successImage; } + set { successImage = value; PropertyChange("SuccessImage"); } + } + public bool couponStartVisible = false; + /// + /// 인증 시작 화면 Visible + /// + public bool CouponStartVisible + { + get { return couponStartVisible; } + set { couponStartVisible = value; PropertyChange("CouponStartVisible"); } + } + public bool couponUsingVisible = false; + /// + /// Point Using Window Visible + /// + public bool CouponUsingVisible + { + get { return couponUsingVisible; } + set { couponUsingVisible = value; PropertyChange("CouponUsingVisible"); } + } + public bool processingVisible = false; + /// + /// 처리 진행 화면 Visible + /// + public bool ProcessingVisible + { + get { return processingVisible; } + set { processingVisible = value; PropertyChange("ProcessingVisible"); } + } + public bool processingErrorVisible = false; + /// + /// 인증 오류 화면 Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + public bool couponSuccessVisible = false; + /// + /// 인증 완료 화면 Visible + /// + public bool CouponSuccessVisible + { + get { return couponSuccessVisible; } + set { couponSuccessVisible = value; PropertyChange("CouponSuccessVisible"); } + } + private List pointPadGuidText; + /// + /// Point Pad Input Guide Text + /// + public List PointPadGuidText + { + get { return pointPadGuidText; } + set { pointPadGuidText = value; PropertyChange("PointPadGuidText"); } + } + private List totalPayHeaderText; + /// + /// Payments Total Header Text + /// + public List TotalPayHeaderText + { + get { return totalPayHeaderText; } + set { totalPayHeaderText = value; PropertyChange("TotalPayHeaderText"); } + } + private List queryPointsHeaderText; + /// + /// Member Point Header Text + /// + public List QueryPointsHeaderText + { + get { return queryPointsHeaderText; } + set { queryPointsHeaderText = value; PropertyChange("QueryPointsHeaderText"); } + } + + private List processingMessageText; + /// + /// Number Pad Input Guide Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + private List successText; + /// + /// Sucess Guide Text + /// + public List SuccessText + { + get { return successText; } + set { successText = value; PropertyChange("SuccessText"); } + } + private double payments; + /// + /// Payments Total + /// + public double Payments + { + get { return payments; } + set { payments = value; PropertyChange("Payments"); } + } + private List errorText; + /// + /// Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcoe Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read BarCode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private double cancelButtonWidth = 270d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private double okButtonWidth = 270d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button Enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + + private HappyCouponWindowType happyCouponWindow = HappyCouponWindowType.CouponStart; + /// + /// Current View Window + /// + public HappyCouponWindowType HappyCouponWindow + { + get { return happyCouponWindow; } + set { happyCouponWindow = value; PropertyChange("HappyCouponWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + private M_HappyPointReturn happyPointReturn; + /// + /// HappyPoint 인증 정보 + /// + public M_HappyPointReturn HappyPointReturn + { + get { return happyPointReturn; } + set { happyPointReturn = value; PropertyChange("HappyPointReturn"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + /// + /// Coupon Selectd + /// + public ICommand CouponCommand { get; protected set; } + private bool ProcessStart = false; + private posHappyPoint posHappyPoint = null; + private Task ProcessTask = null; + private string certifyKey = string.Empty; + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmHappyPointCoupon() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + CouponCommand = new Command(CouponCommandHandler); + this.PropertyChanged += VmHappyPointCoupon_PropertyChanged; + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode_happy.gif", CommonValue.PBdesignImagesPath); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + SuccessImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath); + ErrorText = new List(); + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + HeaderText = Languages.GetMessages("LBL0133"); + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0028"); + ErrorGuide = Languages.GetMessages("LBL0028"); + posHappyPoint = new posHappyPoint(); + + } + + + public new void Dispose() + { + TitileImage = string.Empty; + ProcessingGIF = string.Empty; + ErrorImage = string.Empty; + this.PropertyChanged -= VmHappyPointCoupon_PropertyChanged; + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + if (posHappyPoint != null) + { + HappyPointRemoveEvents(); + posHappyPoint.Dispose(); + posHappyPoint = null; + } + base.Dispose(); + } + #endregion Ctor + + #region [ Methods ] + private void TestDelay() + { + Thread.Sleep(3000); + } + private void HappyPointCreateEvents() + { + if (posHappyPoint != null) + { + posHappyPoint.ReadStart += PosHappyPoint_ReadStart; + posHappyPoint.ReadEnd += PosHappyPoint_ReadEnd; + posHappyPoint.ErrorEvent += PosHappyPoint_ErrorEvent; + posHappyPoint.ErrorMessageEvent += PosHappyPoint_ErrorMessageEvent; + } + } + private void HappyPointRemoveEvents() + { + if (posHappyPoint != null) + { + posHappyPoint.ReadStart -= PosHappyPoint_ReadStart; + posHappyPoint.ReadEnd -= PosHappyPoint_ReadEnd; + posHappyPoint.ErrorEvent -= PosHappyPoint_ErrorEvent; + posHappyPoint.ErrorMessageEvent -= PosHappyPoint_ErrorMessageEvent; + } + } + private void DoSingleCouponCertify() + { + + HappyPointCreateEvents(); + var processTask = new Task(() => posHappyPoint.StartCouponProcessing(certifyKey,Payments)); + processTask.Start(); + processTask.Wait(); + HappyPointRemoveEvents(); + if (posHappyPoint.ProcessOK) + { + HappyCouponWindow = HappyCouponWindowType.CouponSuccess; + } + else + { + HappyCouponWindow = HappyCouponWindowType.ProcessingError; + } + processTask = null; + TimerEnabled = true; + ProcessStart = false; + } + + + #endregion Methods + + #region [ Event Handlers ] + private void CouponCommandHandler(object obj) + { + if (obj is M_HappyCoupon selectCoupon) + { + //var newHappyAppCoupons = HappyAppCoupons; + //var selectNumber = selectCoupon.Number; + //var selectItem = newHappyAppCoupons.Find(r => r.Number.Equals(selectNumber)); + //if (selectCoupon.IsUsed) + //{ + // certifyKey = string.Empty; + // selectItem.IsUsed = false; + //} + //else + //{ + // if (newHappyAppCoupons.Where(r => r.IsUsed).Count().Equals(0)) + // { + // certifyKey = selectItem.Number; + // selectItem.IsUsed = true; + // } + //} + //HappyAppCoupons = newHappyAppCoupons; + if (selectCoupon.IsUsed) certifyKey = selectCoupon.Number; + OKButtonEnabled = HappyAppCoupons.Where(r => r.IsUsed).Count() > 0; + } + } + + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = HappyPointReturn is M_HappyPointReturn && HappyPointReturn.ReservePoint + ? HappyPointReturn + : null + }; + CanWindowClose = true; + } + private void OkCommandHandler(object obj) + { + switch (HappyCouponWindow) + { + case HappyCouponWindowType.CouponUsing: + HappyCouponWindow = HappyCouponWindowType.Processing; + break; + case HappyCouponWindowType.ProcessingError: + switch (ProcessType) + { + case ProcessingType.SingleCoupon: + HappyCouponWindow = HappyCouponWindowType.CouponStart; + break; + case ProcessingType.CouponUsing: + HappyCouponWindow = HappyCouponWindowType.CouponUsing; + break; + } + break; + case HappyCouponWindowType.CouponSuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + } + + + private void PosHappyPoint_ErrorMessageEvent(string ErrorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = ErrorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + HappyCouponWindow = HappyCouponWindowType.ProcessingError; + } + + private void PosHappyPoint_ErrorEvent(posHappyPoint.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 필요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + IsErrorBlink = true; + HappyCouponWindow = HappyCouponWindowType.ProcessingError; + } + + private void PosHappyPoint_ReadStart(object sender) + { + TimerEnabled = false; + ProcessStart = true; + } + + private void PosHappyPoint_ReadEnd(object sender) + { + ProcessStart = false; + try + { + if (sender is posHappyPoint getPosposHappyPoint) + { + if (getPosposHappyPoint.ProcessOK) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = getPosposHappyPoint.UsedCoupon + }; + } + } + } + catch + { + throw; + } + finally + { + TimerEnabled = true; + } + + } + private void VmHappyPointCoupon_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + switch (HappyCouponWindow) + { + case HappyCouponWindowType.CouponStart: + case HappyCouponWindowType.CouponUsing: + case HappyCouponWindowType.ProcessingError: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + break; + } + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "HappyPointReturn": + if (HappyPointReturn is M_HappyPointReturn + && HappyPointReturn.MyHappyCoupons is List) + { + HappyAppCoupons = HappyPointReturn.MyHappyCoupons; + } + break; + case "HappyCouponWindow": + CouponStartVisible = false; + CouponUsingVisible = false; + ProcessingVisible = false; + ProcessingErrorVisible = false; + CouponSuccessVisible = false; + switch (HappyCouponWindow) + { + case HappyCouponWindowType.CouponStart: + CouponStartVisible = true; + break; + case HappyCouponWindowType.CouponUsing: + CouponUsingVisible = true; + break; + case HappyCouponWindowType.Processing: + ProcessingVisible = true; + break; + case HappyCouponWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case HappyCouponWindowType.CouponSuccess: + CouponSuccessVisible = true; + break; + } + break; + case "CouponStartVisible": + if (CouponStartVisible) + { + ScanGuidText = Languages.GetMessages("LBL0051"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + ProcessType = ProcessingType.SingleCoupon; + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0d; + OKButtonEnabled = false; + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "CouponUsingVisible": + if (CouponUsingVisible) + { + ScanGuidText = Languages.GetMessages("LBL0062"); + InfoGuid1Text = new List(); + InfoGuid2Text = Languages.GetMessages("LBL0016"); + ProcessType = ProcessingType.CouponUsing; + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = false; + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "ProcessingVisible": + if (ProcessingVisible) + { + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = 0d; + if (ProcessTask != null) ProcessTask.Wait(); + ProcessTask = new Task(DoSingleCouponCertify); + ProcessTask.Start(); + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + ScanGuidText = Languages.GetMessages("LBL0077"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0007"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = 10d; + } + break; + case "CouponSuccessVisible": + if (CouponSuccessVisible) + { + ScanGuidText = new List(); + SuccessText = Languages.GetMessages("LBL0093"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OkButtonText = Languages.GetMessages("BTN0039"); + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + TimeOutSeconds = 5d; + } + break; + case "ReadBarCode": + if (!ProcessStart) + { + switch (ReadBarCode.Length) + { + case 11: + case 12: + certifyKey = ReadBarCode.Substring(0, 11); + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + HappyCouponWindow = HappyCouponWindowType.Processing; + break; + + default: + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + break; + } + } + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmHappyPointCoupon_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion Event Handlers + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointUsing.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointUsing.cs new file mode 100644 index 0000000..be15e36 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmHappyPointUsing.cs @@ -0,0 +1,1001 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// HappyPointUsing.xaml에 대한 ViewModel + /// + public class VmHappyPointUsing : PopupViewModelBase + { + #region [ Members ] + private enum ProcessingType + { + Certify, + PointUsing + } + private ProcessingType ProcessType { get; set; } = ProcessingType.Certify; + private string titileImage; + /// + /// Barcode Scan Image + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + private string wonIconImage; + /// + /// Won Icon Image + /// + public string WonIconImage + { + get { return wonIconImage; } + set { wonIconImage = value; PropertyChange("WonIconImage"); } + } + private string pointImage; + /// + /// Point Using Title Image + /// + public string PointImage + { + get { return pointImage; } + set { pointImage = value; PropertyChange("PointImage"); } + } + private string allUseNoramlBrush; + /// + /// All Use Button Normal Brush + /// + public string AllUseNoramlBrush + { + get { return allUseNoramlBrush; } + set { allUseNoramlBrush = value; PropertyChange("AllUseNoramlBrush"); } + } + private string allUseSwitchOnBrush; + /// + /// All Use Button Switch On Brush + /// + public string AllUseSwitchOnBrush + { + get { return allUseSwitchOnBrush; } + set { allUseSwitchOnBrush = value; PropertyChange("AllUseSwitchOnBrush"); } + } + public bool allUseSwitch = false; + /// + /// All Use Button Switch + /// + public bool AllUseSwitch + { + get { return allUseSwitch; } + set { allUseSwitch = value; PropertyChange("AllUseSwitch"); } + } + private List headerText; + /// + /// Top Header Text (first Grid) + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Header Text (first Grid) + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List infoGuid1Text; + /// + /// Bootom first infomation text (first Grid) + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text (first Grid) + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private string errorImage; + /// + /// Error Icon + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + private string successImage; + /// + /// Sucess Icon + /// + public string SuccessImage + { + get { return successImage; } + set { successImage = value; PropertyChange("SuccessImage"); } + } + public bool certifyStartVisible = false; + /// + /// 인증 시작 화면 Visible + /// + public bool CertifyStartVisible + { + get { return certifyStartVisible; } + set { certifyStartVisible = value; PropertyChange("CertifyStartVisible"); } + } + public bool pointUsingVisible = false; + /// + /// Point Using Window Visible + /// + public bool PointUsingVisible + { + get { return pointUsingVisible; } + set { pointUsingVisible = value; PropertyChange("PointUsingVisible"); } + } + public bool processingVisible = false; + /// + /// 처리 진행 화면 Visible + /// + public bool ProcessingVisible + { + get { return processingVisible; } + set { processingVisible = value; PropertyChange("ProcessingVisible"); } + } + public bool processingErrorVisible = false; + /// + /// 인증 오류 화면 Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + public bool certifySuccessVisible = false; + /// + /// 인증 완료 화면 Visible + /// + public bool CertifySuccessVisible + { + get { return certifySuccessVisible; } + set { certifySuccessVisible = value; PropertyChange("CertifySuccessVisible"); } + } + private List pointPadGuidText; + /// + /// Point Pad Input Guide Text + /// + public List PointPadGuidText + { + get { return pointPadGuidText; } + set { pointPadGuidText = value; PropertyChange("PointPadGuidText"); } + } + private List totalPayHeaderText; + /// + /// Payments Total Header Text + /// + public List TotalPayHeaderText + { + get { return totalPayHeaderText; } + set { totalPayHeaderText = value; PropertyChange("TotalPayHeaderText"); } + } + private List queryPointsHeaderText; + /// + /// Member Point Header Text + /// + public List QueryPointsHeaderText + { + get { return queryPointsHeaderText; } + set { queryPointsHeaderText = value; PropertyChange("QueryPointsHeaderText"); } + } + + private List processingMessageText; + /// + /// Number Pad Input Guide Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + private List successText; + /// + /// Sucess Guide Text + /// + public List SuccessText + { + get { return successText; } + set { successText = value; PropertyChange("SuccessText"); } + } + private double queryPoints; + /// + /// Member Points + /// + public double QueryPoints + { + get { return queryPoints; } + set { queryPoints = value; PropertyChange("QueryPoints"); } + } + private double usingPoints; + /// + /// Using Points + /// + public double UsingPoints + { + get { return usingPoints; } + set { usingPoints = value; PropertyChange("UsingPoints"); } + } + private double payments; + /// + /// Payments Total + /// + public double Payments + { + get { return payments; } + set { payments = value; PropertyChange("Payments"); } + } + private List errorText; + /// + /// Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcoe Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read BarCode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private string inputPoints = string.Empty; + /// + /// Input Using Point Text + /// + public string InputPoints + { + get { return inputPoints; } + set { inputPoints = value; PropertyChange("InputPoints"); } + } + public bool numPadInputVisible = false; + /// + /// Number Pad Points Visible + /// + public bool NumPadInputVisible + { + get { return numPadInputVisible; } + set { numPadInputVisible = value; PropertyChange("NumPadInputVisible"); } + } + public bool numPadGuideVisible = true; + /// + /// Nummber Pad Guid Visible + /// + public bool NumPadGuideVisible + { + get { return numPadGuideVisible; } + set { numPadGuideVisible = value; PropertyChange("NumPadGuideVisible"); } + } + private List allUseButtonText; + /// + /// All Point Using Button text + /// + public List AllUseButtonText + { + get { return allUseButtonText; } + set { allUseButtonText = value; PropertyChange("AllUseButtonText"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private double cancelButtonWidth = 270d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private double okButtonWidth = 270d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button Enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private int pointPadMaxLength; + /// + /// Point Pad Input Max Length + /// + public int PointPadMaxLength + { + get { return pointPadMaxLength; } + set { pointPadMaxLength = value; PropertyChange("PointPadMaxLength"); } + } + private string certifyPassword = string.Empty; + public string CertifyPassword + { + get { return certifyPassword; } + set { certifyPassword = value; PropertyChange("CertifyPassword"); } + } + public bool isOpenPasswordWindow = false; + /// + /// Password Window Open + /// + public bool IsOpenPasswordWindow + { + get { return isOpenPasswordWindow; } + set { isOpenPasswordWindow = value; PropertyChange("IsOpenPasswordWindow"); } + } + + private PointUsingWindowType pointUsingWindow = PointUsingWindowType.CertifyStart; + /// + /// Current View Window + /// + public PointUsingWindowType PointUsingWindow + { + get { return pointUsingWindow; } + set { pointUsingWindow = value; PropertyChange("PointUsingWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + private M_HappyPointReturn happyPointReturn; + /// + /// HappyPoint 인증 정보 + /// + public M_HappyPointReturn HappyPointReturn + { + get { return happyPointReturn; } + set { happyPointReturn = value; PropertyChange("HappyPointReturn"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + /// + /// All Points Using Click Command + /// + public ICommand AllUseCommand { get; protected set; } + public bool ImmediatelyClose { get; protected set; } = false; + private bool ProcessStart = false; + private posHappyPoint posHappyPoint = null; + private Task ProcessTask = null; + private string certifyKey = string.Empty; + private double queryUsingPoints = 0d; + private double canUseAllPoints = 0d; + private int passCheckLength = 4; + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmHappyPointUsing() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + AllUseCommand = new Command(AllUseCommandHandler); + this.PropertyChanged += VmHappyPointUsing_PropertyChanged; + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode_happy.gif", CommonValue.PBdesignImagesPath); + WonIconImage = ResourceManager.GetNximagePathAdd("ic_won.png", CommonValue.PBdesignImagesPath); + PointImage = ResourceManager.GetNximagePathAdd("img_point.png", CommonValue.PBdesignImagesPath); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + SuccessImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath); + AllUseNoramlBrush = ResourceManager.GetNximagePathAdd("btn_number_all_n.png", CommonValue.PBdesignImagesPath); + AllUseSwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_number_all_p.png", CommonValue.PBdesignImagesPath); + ErrorText = new List(); + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + AllUseButtonText = Languages.GetMessages("LBL0045"); + HeaderText = Languages.GetMessages("LBL0135"); + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0028"); + ErrorGuide = Languages.GetMessages("LBL0028"); + PointPadMaxLength = 9; + PointPadGuidText = Languages.GetMessages("LBL0059"); + TotalPayHeaderText = Languages.GetMessages("LBL0112"); + posHappyPoint = new posHappyPoint(); + + } + /// + /// Dispose + /// + public new void Dispose() + { + TitileImage = string.Empty; + PointImage = string.Empty; + ProcessingGIF = string.Empty; + ErrorImage = string.Empty; + AllUseNoramlBrush = string.Empty; + AllUseSwitchOnBrush = string.Empty; + this.PropertyChanged -= VmHappyPointUsing_PropertyChanged; + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + if (posHappyPoint != null) + { + HappyPointRemoveEvents(); + posHappyPoint.Dispose(); + posHappyPoint = null; + } + base.Dispose(); + } + #endregion Ctor + + #region [ Methods ] + private void TestDelay() + { + Thread.Sleep(3000); + } + private void HappyPointCreateEvents() + { + if (posHappyPoint != null) + { + posHappyPoint.ReadStart += PosHappyPoint_ReadStart; + posHappyPoint.ReadEnd += PosHappyPoint_ReadEnd; + posHappyPoint.ErrorEvent += PosHappyPoint_ErrorEvent; + posHappyPoint.ErrorMessageEvent += PosHappyPoint_ErrorMessageEvent; + } + } + private void HappyPointRemoveEvents() + { + if (posHappyPoint != null) + { + posHappyPoint.ReadStart -= PosHappyPoint_ReadStart; + posHappyPoint.ReadEnd -= PosHappyPoint_ReadEnd; + posHappyPoint.ErrorEvent -= PosHappyPoint_ErrorEvent; + posHappyPoint.ErrorMessageEvent -= PosHappyPoint_ErrorMessageEvent; + } + } + private void DoHappyPointCertify() + { + + HappyPointCreateEvents(); + var processTask = new Task(() => posHappyPoint.StartCertifyProcessing(certifyKey)); + processTask.Start(); + processTask.Wait(); + HappyPointRemoveEvents(); + processTask = null; + + + } + private void DoHappyPointUsing() + { + + if (posHappyPoint != null) + { + HappyPointCreateEvents(); + var processTask = new Task(() => posHappyPoint.StartPaymentProcessing(HappyPointReturn.MemberCode + ,double.Parse(InputPoints) + ,CertifyPassword)); + processTask.Start(); + processTask.Wait(); + HappyPointRemoveEvents(); + processTask = null; + } + + } + private bool PointValueCheck() + { + bool result = false; + try + { + if (!Payments.Equals(0) && QueryPoints >= 100) + { + var checkValue = double.Parse(InputPoints); + if (checkValue >= 100) + { + result = (checkValue % 10).Equals(0) + && checkValue <= QueryPoints + && checkValue <= Payments; + } + + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "PointValueCheck()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = false; + } + return result; + } + + #endregion Methods + + #region [ Event Handlers ] + private void AllUseCommandHandler(object obj) + { + TimerEnabled = false; + if (QueryPoints > 100) + { + canUseAllPoints = QueryPoints - QueryPoints % 10; + if (!Payments.Equals(0)) + { + if (Payments < canUseAllPoints) + { + InputPoints = Payments.ToString(); + } + else + { + InputPoints = canUseAllPoints.ToString(); + } + + } + } + TimerEnabled = true; + } + + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = HappyPointReturn is M_HappyPointReturn && HappyPointReturn.ReservePoint + ? HappyPointReturn + : null + }; + CanWindowClose = true; + } + private void OkCommandHandler(object obj) + { + switch (PointUsingWindow) + { + case PointUsingWindowType.PointUsing: + queryUsingPoints = double.Parse(InputPoints); + if (HappyPointReturn is M_HappyPointReturn && HappyPointReturn.NeedPassword) + { + IsOpenPasswordWindow = true; + } + else + { + PointUsingWindow = PointUsingWindowType.Processing; + } + break; + case PointUsingWindowType.ProcessingError: + switch (ProcessType) + { + case ProcessingType.Certify: + PointUsingWindow = PointUsingWindowType.CertifyStart; + break; + case ProcessingType.PointUsing: + InputPoints = string.Empty; + PointUsingWindow = PointUsingWindowType.PointUsing; + break; + } + break; + case PointUsingWindowType.CertifySuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + } + + + private void PosHappyPoint_ErrorMessageEvent(string ErrorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = ErrorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + PointUsingWindow = PointUsingWindowType.ProcessingError; + } + + private void PosHappyPoint_ErrorEvent(posHappyPoint.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 필요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + IsErrorBlink = true; + PointUsingWindow = PointUsingWindowType.ProcessingError; + } + + private void PosHappyPoint_ReadStart(object sender) + { + TimerEnabled = false; + ProcessStart = true; + } + + private void PosHappyPoint_ReadEnd(object sender) + { + ProcessStart = false; + try + { + if (sender is posHappyPoint getPosposHappyPoint) + { + if (getPosposHappyPoint.ProcessOK) + { + switch (ProcessType) + { + case ProcessingType.Certify: + HappyPointReturn = new M_HappyPointReturn + { + IsCompanyMember = getPosposHappyPoint.IsCompanyMember, + MemberName = getPosposHappyPoint.MemberName, + MemberNumber = getPosposHappyPoint.MemberNumber, + MemberCode = getPosposHappyPoint.CertifyKey, + IsAppMamber = getPosposHappyPoint.IsAppMamber, + MemberLevel = getPosposHappyPoint.MemberLevel.StartsWith("VIP") + ? HappyPointMemberLevel.VIP + : getPosposHappyPoint.MemberLevel.StartsWith("G") + ? HappyPointMemberLevel.Gold + : HappyPointMemberLevel.Pink, + MemberPoint = getPosposHappyPoint.MemberPoint, + UseablePoint = getPosposHappyPoint.UseablePoint, + NeedPassword = getPosposHappyPoint.NeedPassword, + ReservePoint = HappyPointReturn is M_HappyPointReturn + ? HappyPointReturn.ReservePoint + : false, + }; + QueryPoints = HappyPointReturn.MemberPoint; + PointUsingWindow = PointUsingWindowType.PointUsing; + break; + case ProcessingType.PointUsing: + if (HappyPointReturn is M_HappyPointReturn) + { + HappyPointReturn.PointUse = true; + HappyPointReturn.UsingPoints = getPosposHappyPoint.ApprovalPoint; + HappyPointReturn.PaySEQ = getPosposHappyPoint.PaySEQ; + } + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = HappyPointReturn + }; + UsingPoints = HappyPointReturn.UsingPoints; + PointUsingWindow = PointUsingWindowType.CertifySuccess; + break; + } + } + } + } + catch + { + + throw; + } + finally + { + TimerEnabled = true; + } + + } + private void VmHappyPointUsing_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + switch (PointUsingWindow) + { + case PointUsingWindowType.CertifyStart: + case PointUsingWindowType.PointUsing: + case PointUsingWindowType.ProcessingError: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = HappyPointReturn + }; + break; + } + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "PointUsingWindow": + CertifyStartVisible = false; + PointUsingVisible = false; + ProcessingVisible = false; + ProcessingErrorVisible = false; + CertifySuccessVisible = false; + switch (PointUsingWindow) + { + case PointUsingWindowType.CertifyStart: + CertifyStartVisible = true; + break; + case PointUsingWindowType.PointUsing: + PointUsingVisible = true; + break; + case PointUsingWindowType.Processing: + ProcessingVisible = true; + break; + case PointUsingWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case PointUsingWindowType.CertifySuccess: + CertifySuccessVisible = true; + break; + } + break; + case "CertifyStartVisible": + if (CertifyStartVisible) + { + ScanGuidText = Languages.GetMessages("LBL0129"); + InfoGuid1Text = new List(); + InfoGuid2Text = Languages.GetMessages("LBL0003"); + ProcessType = ProcessingType.Certify; + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0d; + OKButtonEnabled = false; + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "PointUsingVisible": + if (PointUsingVisible) + { + ScanGuidText = Languages.GetMessages("LBL0063"); + InfoGuid1Text = new List(); + InfoGuid2Text = Languages.GetMessages("LBL0001"); + ProcessType = ProcessingType.PointUsing; + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = false; + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "ProcessingVisible": + if (ProcessingVisible) + { + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = 0d; + if (ProcessTask != null) ProcessTask.Wait(); + switch (ProcessType) + { + case ProcessingType.Certify: + ProcessTask = new Task(DoHappyPointCertify); + break; + case ProcessingType.PointUsing: + ProcessTask = new Task(DoHappyPointUsing); + break; + } + ProcessTask.Start(); + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + switch (ProcessType) + { + case ProcessingType.Certify: + ScanGuidText = Languages.GetMessages("LBL0077"); + break; + case ProcessingType.PointUsing: + ScanGuidText = Languages.GetMessages("LBL0077"); + break; + } + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0007"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = 10d; + } + break; + case "CertifySuccessVisible": + if (CertifySuccessVisible) + { + if (HappyPointReturn is M_HappyPointReturn + && HappyPointReturn.PointUse + && HappyPointReturn.UsingPoints.Equals(Payments)) + { + ScanGuidText = new List(); + SuccessText = Languages.GetMessages("LBL0093"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + ImmediatelyClose = true; + TimeOutSeconds = 0d; + } + else + { + ScanGuidText = new List(); + SuccessText = Languages.GetMessages("LBL0093"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OkButtonText = Languages.GetMessages("BTN0039"); + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + TimeOutSeconds = 5d; + } + } + break; + case "HappyPointReturn": + if (HappyPointReturn != null) + { + QueryPoints = HappyPointReturn.MemberPoint; + } + break; + case "NumPadInputVisible": + NumPadGuideVisible = !NumPadInputVisible; + break; + case "InputPoints": + if (canUseAllPoints > 0d) + { + AllUseSwitch = canUseAllPoints.ToString().Equals(InputPoints); + } + else + { + AllUseSwitch = false; + } + NumPadInputVisible = InputPoints.Length > 0; + OKButtonEnabled = PointValueCheck(); + break; + case "ReadBarCode": + if (!ProcessStart) + { + switch (ReadBarCode.Length) + { + case 16: + case 17: + certifyKey = ReadBarCode.Substring(0, 16); + InputPoints = string.Empty; + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + PointUsingWindow = PointUsingWindowType.Processing; + break; + + default: + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + break; + } + } + break; + case "CertifyPassword": + if (HappyPointReturn is M_HappyPointReturn && HappyPointReturn.NeedPassword + && CertifyPassword.Length.Equals(passCheckLength)) + { + PointUsingWindow = PointUsingWindowType.Processing; + } + break; + } + } + catch (Exception ex) + { + + CommonLog.ErrorLogWrite(this, "VmHappyPointUsing_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion Event Handlers + + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmLanguageSelector.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmLanguageSelector.cs new file mode 100644 index 0000000..2792e2a --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmLanguageSelector.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.DataHelper; +using SPC.Kiosk.Popup.Model; + +namespace SPC.Kiosk.Popup.ViewModel +{ + public class VmLanguageSelector : PopupViewModelBase + { + #region [ Members ] + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + + private string optionValue813; + /// + /// 다국어 - 영문사용 + /// + public string OptionValue813 + { + get { return optionValue813; } + set { optionValue813 = value; PropertyChange("OptionValue813"); } + } + + private string optionValue814; + /// + /// 다국어 - 일어사용 + /// + public string OptionValue814 + { + get { return optionValue814; } + set { optionValue814 = value; PropertyChange("OptionValue814"); } + } + + private string optionValue815; + /// + /// 다국어 - 중국어사용 + /// + public string OptionValue815 + { + get { return optionValue815; } + set { optionValue815 = value; PropertyChange("OptionValue815"); } + } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmLanguageSelector() + { + OkCommand = new Command(OkCommandHandler); + this.PropertyChanged += VmLanguageSelector_PropertyChanged; + OkButtonText = Languages.GetMessages("BTN0024"); + ShowLanguageType = CommonValue.CommonLanguageType; + + this.GetPosOption(); + } + + private void GetPosOption() + { + //PosOption 값 획득 + using (var backDataService = new BackDataService()) + { + this.OptionValue813 = backDataService.GetPosOption(nameof(PosOptionType.OPT813)); + this.OptionValue814 = backDataService.GetPosOption(nameof(PosOptionType.OPT814)); + this.OptionValue815 = backDataService.GetPosOption(nameof(PosOptionType.OPT815)); + } + } + + ~VmLanguageSelector() + { + this.PropertyChanged -= VmLanguageSelector_PropertyChanged; + } + #endregion Ctor + + #region [ Event Handlers ] + private void OkCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void VmLanguageSelector_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + break; + } + } + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMiniPopup.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMiniPopup.cs new file mode 100644 index 0000000..799a882 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMiniPopup.cs @@ -0,0 +1,235 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// CallEmployee.xaml 의 ViewModel + /// + public class VmMiniPopup : PopupViewModelBase + { + #region [ Members ] + private M_MiniPopup miniPopup; + /// + /// Parameters + /// + public M_MiniPopup MiniPopup + { + get { return miniPopup; } + set { miniPopup = value; PropertyChange("MiniPopup"); } + } + + private string iconNoramlBrush = string.Empty; + /// + /// Message Text + /// + public string IconNoramlBrush + { + get { return iconNoramlBrush; } + set { iconNoramlBrush = value; PropertyChange("IconNoramlBrush"); } + } + private List messageText = null; + /// + /// Message Text + /// + public List MessageText + { + get { return messageText; } + set { messageText = value; PropertyChange("MessageText"); } + } + private List subMessageText = null; + /// + /// SubMessage Text + /// + public List SubMessageText + { + get { return subMessageText; } + set { subMessageText = value; PropertyChange("SubMessageText"); } + } + + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + private double okButtonWidth = 400d; + /// + /// OK Button Width + /// + public double OkButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OkButtonWidth"); } + } + private double cancelButtonWidth = 400d; + /// + /// OK Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmMiniPopup() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmMiniPopup_PropertyChanged; + } + ~VmMiniPopup() + { + this.PropertyChanged -= VmMiniPopup_PropertyChanged; + } + #endregion Ctor + + #region [ Methods ] + private void SetMiniPopup() + { + if (MiniPopup is M_MiniPopup) + { + ShowLanguageType = MiniPopup.DisplayLanguage; + MessageText = MiniPopup.Message; + SubMessageText = MiniPopup.SubMessage; + OkButtonText = MiniPopup.OkButtonText; + CancelButtonText = MiniPopup.CencalButtonText; + TimeOutSeconds = MiniPopup.TimeoutSeconds; + IsTimeoutPopup = MiniPopup.IsTimeoutPopup; + var iconBrush = "Transparent"; + switch (MiniPopup.Icon) + { + case MiniPopupIcon.Cancel: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_cancel.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.Delete: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_delete.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.ListCancel: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_listcancel.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.DiscountCancel: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_discountcancel.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.GiftCancel: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_giftcancel.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.OrderCancel: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_ordercancel.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.AddCoupon: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_coupon.png", CommonValue.PBdesignImagesPath); + break; + case MiniPopupIcon.Payment: + iconBrush = ResourceManager.GetNximagePathAdd("ic_alert_payment.png", CommonValue.PBdesignImagesPath); + break; + default: + iconBrush = "Transparent"; + break; + } + IconNoramlBrush = iconBrush; + if (!MiniPopup.IsCencalButton) + { + OkButtonWidth = 800d; + CancelButtonWidth = 0d; + } + else + { + OkButtonWidth = 400d; + CancelButtonWidth = 400d; + } + } + } + #endregion Methods + + #region [ Event Handlers ] + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + TimerEnabled = false; + + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + + } + + private void VmMiniPopup_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + break; + + case "MiniPopup": + SetMiniPopup(); + break; + } + } + + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileCompanyMemberCertify.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileCompanyMemberCertify.cs new file mode 100644 index 0000000..cca7ab5 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileCompanyMemberCertify.cs @@ -0,0 +1,661 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using System.Reflection; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +using System.Windows; +using System.Threading.Tasks; +using System.Threading; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// MobileCompanyMemberCertify.xaml 의 ViewModel + /// + public class VmMobileCompanyMemberCertify : PopupViewModelBase + { + #region [ Members ] + private MobileCompanyType mobileCompany; + /// + /// Mobile Company Type + /// + public MobileCompanyType MobileCompany + { + get { return mobileCompany; } + set { mobileCompany = value; PropertyChange("MobileCompany"); } + } + private List mobileCompanyName; + /// + /// Mobile Company Name + /// + public List MobileCompanyName + { + get { return mobileCompanyName; } + set { mobileCompanyName = value; PropertyChange("MobileCompanyName"); } + } + private double payments; + /// + /// Total Payments + /// + public double Payments + { + get { return payments; } + set { payments = value; PropertyChange("Payments"); } + } + private List headerSubText; + /// + /// Top Sub Header Text + /// + public List HeaderSubText + { + get { return headerSubText; } + set { headerSubText = value; PropertyChange("HeaderSubText"); } + } + private List scanGuidText; + /// + /// Second Sub Header Text + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + + private List infoGuid1Text; + /// + /// Bootom first infomation text + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + public bool certifyStartVisible = false; + /// + /// 인증 시작 화면 Visible + /// + public bool CertifyStartVisible + { + get { return certifyStartVisible; } + set { certifyStartVisible = value; PropertyChange("CertifyStartVisible"); } + } + public bool certifyProcessingVisible = false; + /// + /// 인증 진행 화면 Visible + /// + public bool CertifyProcessingVisible + { + get { return certifyProcessingVisible; } + set { certifyProcessingVisible = value; PropertyChange("CertifyProcessingVisible"); } + } + public bool processingErrorVisible = false; + /// + /// 인증 오류 화면 Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + public bool certifySuccessVisible = false; + /// + /// 인증 완료 화면 Visible + /// + public bool CertifySuccessVisible + { + get { return certifySuccessVisible; } + set { certifySuccessVisible = value; PropertyChange("CertifySuccessVisible"); } + } + private List processingMessageText; + /// + /// Number Pad Input Guide Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private string titileImage; + /// + /// Read Barcode Formated Text + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private string errorImage; + /// + /// Error Icon + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + private string successImage; + /// + /// Sucess Icon + /// + public string SuccessImage + { + get { return successImage; } + set { successImage = value; PropertyChange("SuccessImage"); } + } + private List errorText; + /// + /// Process Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcode Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private double discountValue = 0d; + /// + /// Number Pad Input Number + /// + public double DiscountValue + { + get { return discountValue; } + set { discountValue = value; PropertyChange("DiscountValue"); } + } + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// Ok Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private double okButtonWidth = 150d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + + private List successText; + /// + /// Cancel Button Text + /// + public List SuccessText + { + get { return successText; } + set { successText = value; PropertyChange("SuccessText"); } + } + + private CertifyWindowType certifyWindow = CertifyWindowType.CertifyStart; + /// + /// Current View Window + /// + public CertifyWindowType CertifyWindow + { + get { return certifyWindow; } + set { certifyWindow = value; PropertyChange("CertifyWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + /// + /// 통신사 할인 정보 + /// + public M_MobileCompanyReturn MobileCompanyReturnVlaue { get; set; } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + private bool DiscountProcessStart = false; + private posMobileCompanyDiscount posTelecomDiscount = null; + private Task ProcessTask = null; + private string certifyKey = string.Empty; + #endregion + + #region [ Ctor ] + /// + /// Ctor + /// + public VmMobileCompanyMemberCertify() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmMobileCompanyMemberCertify_PropertyChanged; + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode.gif", CommonValue.PBdesignImagesPath); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + SuccessImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath); + HeaderSubText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "할인" + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "Discount" + }, + }; + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0017"); + ErrorGuide = Languages.GetMessages("LBL0028"); + ErrorText = new List(); + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + posTelecomDiscount = new posMobileCompanyDiscount(); + posTelecomDiscount.ReadStart += posTelecomDiscount_ReadStart; + posTelecomDiscount.ReadEnd += posTelecomDiscount_ReadEnd; + posTelecomDiscount.ErrorEvent += posTelecomDiscount_ErrorEvent; + posTelecomDiscount.ErrorMessageEvent += posTelecomDiscount_ErrorMessageEvent; + CertifyWindow = CertifyWindowType.CertifyStart; + } + ~VmMobileCompanyMemberCertify() + { + this.PropertyChanged -= VmMobileCompanyMemberCertify_PropertyChanged; + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + if (posTelecomDiscount != null) + { + posTelecomDiscount.ReadStart -= posTelecomDiscount_ReadStart; + posTelecomDiscount.ReadEnd -= posTelecomDiscount_ReadEnd; + posTelecomDiscount.ErrorEvent -= posTelecomDiscount_ErrorEvent; + posTelecomDiscount.ErrorMessageEvent -= posTelecomDiscount_ErrorMessageEvent; + posTelecomDiscount.Dispose(); + posTelecomDiscount = null; + } + } + + #endregion Ctor + + #region [ Methods ] + private void InitError() + { + LastAccessTime = DateTime.Now; + ErrorText = new List(); + IsErrorBlink = false; + } + private void TelecomCreateEvents() + { + if (posTelecomDiscount != null) + { + posTelecomDiscount.ReadStart += posTelecomDiscount_ReadStart; + posTelecomDiscount.ReadEnd += posTelecomDiscount_ReadEnd; + posTelecomDiscount.ErrorEvent += posTelecomDiscount_ErrorEvent; + posTelecomDiscount.ErrorMessageEvent += posTelecomDiscount_ErrorMessageEvent; + } + } + private void TelecomRemoveEvents() + { + if (posTelecomDiscount != null) + { + posTelecomDiscount.ReadStart -= posTelecomDiscount_ReadStart; + posTelecomDiscount.ReadEnd -= posTelecomDiscount_ReadEnd; + posTelecomDiscount.ErrorEvent -= posTelecomDiscount_ErrorEvent; + posTelecomDiscount.ErrorMessageEvent -= posTelecomDiscount_ErrorMessageEvent; + } + } + private void DoMobileCompanyMemberCertify() + { + if (posTelecomDiscount != null) + { + TelecomCreateEvents(); + var processTask = new Task(() => posTelecomDiscount.StartCertifyProcessing(certifyKey,MobileCompany,Payments)); + processTask.Start(); + processTask.Wait(); + TelecomRemoveEvents(); + processTask = null; + } + } + private void DoBarCodeMobileCompanyMemberCertify() + { + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + certifyKey = ReadBarCode; + CertifyWindow = CertifyWindowType.CertifyProcessing; + } + #endregion Methods + + #region [ Event Handlers ] + private void posTelecomDiscount_ErrorMessageEvent(string _errorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + CertifyWindow = CertifyWindowType.ProcessingError; + } + + private void posTelecomDiscount_ErrorEvent(posMobileCompanyDiscount.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 필요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + IsErrorBlink = true; + CertifyWindow = CertifyWindowType.ProcessingError; + } + + private void posTelecomDiscount_ReadStart(object sender) + { + DiscountProcessStart = true; + TimerEnabled = false; + } + + private void posTelecomDiscount_ReadEnd(object sender) + { + if (sender is posMobileCompanyDiscount getTelecomDiscount) + { + if (getTelecomDiscount.ProcessOK) + { + MobileCompanyReturnVlaue = new M_MobileCompanyReturn + { + Company = getTelecomDiscount.MobileCompany, + MemberCode = getTelecomDiscount.CertifyKey, + ApprovalPayments = getTelecomDiscount.Payment, + DiscountValue = getTelecomDiscount.DiscountValue, + PaySEQ = getTelecomDiscount.PaySEQ, + }; + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = MobileCompanyReturnVlaue + }; + DiscountValue = MobileCompanyReturnVlaue.DiscountValue; + CertifyWindow = CertifyWindowType.CertifySuccess; + } + } + TimerEnabled = true; + DiscountProcessStart = false; + + } + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + switch (CertifyWindow) + { + case CertifyWindowType.ProcessingError: + CertifyWindow = CertifyWindowType.CertifyStart; + break; + case CertifyWindowType.CertifySuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + } + private void VmMobileCompanyMemberCertify_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + case CertifyWindowType.ProcessingError: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + break; + } + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "ReadBarCode": + if (!DiscountProcessStart) + { + switch (ReadBarCode.Length) + { + case 17: + readBarCode = ReadBarCode.Substring(0, 16); + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + DoBarCodeMobileCompanyMemberCertify(); + break; + case 16: + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + DoBarCodeMobileCompanyMemberCertify(); + break; + default: + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + break; + } + } + break; + case "CertifyWindow": + CertifyStartVisible = false; + CertifyProcessingVisible = false; + ProcessingErrorVisible = false; + CertifySuccessVisible = false; + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + CertifyStartVisible = true; + break; + case CertifyWindowType.CertifyProcessing: + CertifyProcessingVisible = true; + break; + case CertifyWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case CertifyWindowType.CertifySuccess: + CertifySuccessVisible = true; + break; + } + break; + case "MobileCompany": + MobileCompanyName = MobileCompany.GetMobileCompanyName(); + break; + case "CertifyStartVisible": + if (CertifyStartVisible) + { + ScanGuidText = Languages.GetMessages("LBL0082"); + InfoGuid1Text = new List(); + InfoGuid2Text = Languages.GetMessages("LBL0003"); + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0d; + OKButtonEnabled = false; + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "CertifyProcessingVisible": + if (CertifyProcessingVisible) + { + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = 0d; + + if (ProcessTask != null) ProcessTask.Wait(); + ProcessTask = new Task(DoMobileCompanyMemberCertify); + ProcessTask.Start(); + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + ScanGuidText = Languages.GetMessages("LBL0077"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0007"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = 10d; + } + break; + case "CertifySuccessVisible": + if (CertifySuccessVisible) + { + ScanGuidText = new List(); + SuccessText = Languages.GetMessages("LBL0093"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OkButtonText = Languages.GetMessages("BTN0039"); + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + TimeOutSeconds = 5d; + } + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmMobileCompanyMemberCertify_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileHappyCoupon.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileHappyCoupon.cs new file mode 100644 index 0000000..6c31fef --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmMobileHappyCoupon.cs @@ -0,0 +1,779 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using System.Reflection; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +using System.Windows; +using System.Threading.Tasks; +using System.Threading; +using SPC.Kiosk.DataHelper; + +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// MobileCompanyMemberCertify.xaml 의 ViewModel + /// + public class VmMobileHappyCoupon : PopupViewModelBase + { + #region [ Members ] + private enum ProcessingType + { + Search, + Using + } + private M_MobileCouponReturn mobileCouponReturn = new M_MobileCouponReturn(); + + public M_MobileCouponReturn MobileCouponReturn + { + get { return mobileCouponReturn; } + set { mobileCouponReturn = value; PropertyChange("MobileCouponReturn"); } + } + + private List basketData; + /// + /// 장바구니 상품정보 + /// + public List BasketData + { + get { return basketData; } + set { basketData = value; PropertyChange("BasketData"); } + } + private double payments; + /// + /// Total Payments + /// + public double Payments + { + get { return payments; } + set { payments = value; PropertyChange("Payments"); } + } + private double totalCouponAmount; + /// + /// Total Payments + /// + public double TotalCouponAmount + { + get { return totalCouponAmount; } + set { totalCouponAmount = value; PropertyChange("TotalCouponAmount"); } + } + private List headerText; + /// + /// Top Header Text + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Sub Header Text + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + + private List infoGuid1Text; + /// + /// Bootom first infomation text + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + public bool couponStartVisible = false; + /// + /// 시작 화면 Visible + /// + public bool CouponStartVisible + { + get { return couponStartVisible; } + set { couponStartVisible = value; PropertyChange("CouponStartVisible"); } + } + public bool processingVisible = false; + /// + /// 진행 화면 Visible + /// + public bool ProcessingVisible + { + get { return processingVisible; } + set { processingVisible = value; PropertyChange("ProcessingVisible"); } + } + public bool processingErrorVisible = false; + /// + /// 오류 화면 Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + public bool couponUsingVisible = false; + /// + /// 쿠폰 목록 화면 Visible + /// + public bool CouponUsingVisible + { + get { return couponUsingVisible; } + set { couponUsingVisible = value; PropertyChange("CouponUsingVisible"); } + } + public bool couponSuccessVisible = false; + /// + /// 쿠폰 처리 성공 Visible + /// + public bool CouponSuccessVisible + { + get { return couponSuccessVisible; } + set { couponSuccessVisible = value; PropertyChange("CouponSuccessVisible"); } + } + private List processingMessageText; + /// + /// Processing Message Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private string titileImage; + /// + /// Titile Image + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private string errorImage; + /// + /// Error Icon + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + private string successImage; + /// + /// Sucess Icon + /// + public string SuccessImage + { + get { return successImage; } + set { successImage = value; PropertyChange("SuccessImage"); } + } + private string wonIconImage; + /// + /// WonIconImage + /// + public string WonIconImage + { + get { return wonIconImage; } + set { wonIconImage = value; PropertyChange("WonIconImage"); } + } + private List errorText; + /// + /// Process Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcode Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private double discountValue = 0d; + /// + /// Number Pad Input Number + /// + public double DiscountValue + { + get { return discountValue; } + set { discountValue = value; PropertyChange("DiscountValue"); } + } + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// Ok Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private double okButtonWidth = 650d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + + private List successText; + /// + /// Cancel Button Text + /// + public List SuccessText + { + get { return successText; } + set { successText = value; PropertyChange("SuccessText"); } + } + + private MobileCouponWindowType couponWindow = MobileCouponWindowType.CouponStart; + /// + /// Current View Window + /// + public MobileCouponWindowType CouponWindow + { + get { return couponWindow; } + set { couponWindow = value; PropertyChange("CouponWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + + private bool ProcessStart = false; + private posMobileHappyCoupon posMobileCoupon = null; + private Task ProcessTask = null; + private string certifyKey = string.Empty; + private ProcessingType processingType = ProcessingType.Search; + #endregion + + #region [ Ctor ] + /// + /// Ctor + /// + public VmMobileHappyCoupon() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmMobileHappyCoupon_PropertyChanged; + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode.gif", CommonValue.PBdesignImagesPath); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + SuccessImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath); + WonIconImage = ResourceManager.GetNximagePathAdd("ic_won.png", CommonValue.PBdesignImagesPath); + HeaderText = Languages.GetMessages("LBL0047"); + ScanGuidText = Languages.GetMessages("LBL0051"); + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0017"); + ErrorGuide = Languages.GetMessages("LBL0028"); + ErrorText = new List(); + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + posMobileCoupon = new posMobileHappyCoupon(); + posMobileCoupon.ReadStart += posMobileCoupon_ReadStart; + posMobileCoupon.ReadEnd += posMobileCoupon_ReadEnd; + posMobileCoupon.ErrorEvent += posMobileCoupon_ErrorEvent; + posMobileCoupon.ErrorMessageEvent += posMobileCoupon_ErrorMessageEvent; + CouponWindow = MobileCouponWindowType.CouponStart; + } + + + ~VmMobileHappyCoupon() + { + this.PropertyChanged -= VmMobileHappyCoupon_PropertyChanged; + if (ProcessTask != null) + { + ProcessTask.Wait(); + ProcessTask = null; + } + if (posMobileCoupon != null) + { + posMobileCoupon.ReadStart -= posMobileCoupon_ReadStart; + posMobileCoupon.ReadEnd -= posMobileCoupon_ReadEnd; + posMobileCoupon.ErrorEvent -= posMobileCoupon_ErrorEvent; + posMobileCoupon.ErrorMessageEvent -= posMobileCoupon_ErrorMessageEvent; + posMobileCoupon.Dispose(); + posMobileCoupon = null; + } + } + + #endregion Ctor + + #region [ Methods ] + private void InitError() + { + LastAccessTime = DateTime.Now; + ErrorText = new List(); + IsErrorBlink = false; + } + private void MobileCouponCreateEvents() + { + if (posMobileCoupon != null) + { + posMobileCoupon.ReadStart += posMobileCoupon_ReadStart; + posMobileCoupon.ReadEnd += posMobileCoupon_ReadEnd; + posMobileCoupon.ErrorEvent += posMobileCoupon_ErrorEvent; + posMobileCoupon.ErrorMessageEvent += posMobileCoupon_ErrorMessageEvent; + } + } + private void MobileCouponRemoveEvents() + { + if (posMobileCoupon != null) + { + posMobileCoupon.ReadStart -= posMobileCoupon_ReadStart; + posMobileCoupon.ReadEnd -= posMobileCoupon_ReadEnd; + posMobileCoupon.ErrorEvent -= posMobileCoupon_ErrorEvent; + posMobileCoupon.ErrorMessageEvent -= posMobileCoupon_ErrorMessageEvent; + } + } + private void DoCouponSearch() + { + if (posMobileCoupon != null) + { + MobileCouponCreateEvents(); + var processTask = new Task(() => posMobileCoupon.StartCertifyProcessing(certifyKey, Payments)); + processTask.Start(); + processTask.Wait(); + MobileCouponRemoveEvents(); + if (posMobileCoupon.ProcessOK) + { + CouponWindow = MobileCouponWindowType.CouponUsing; + } + else + { + CouponWindow = MobileCouponWindowType.ProcessingError; + } + processTask = null; + } + TimerEnabled = true; + ProcessStart = false; + + } + private void DoCouponUsing() + { + if (posMobileCoupon != null) + { + MobileCouponCreateEvents(); + var processTask = new Task(() => posMobileCoupon.StartPaymentProcessing(MobileCouponReturn,Payments)); + processTask.Start(); + processTask.Wait(); + MobileCouponRemoveEvents(); + if (posMobileCoupon.ProcessOK) + { + CouponWindow = MobileCouponWindowType.CouponSuccess; + } + else + { + CouponWindow = MobileCouponWindowType.ProcessingError; + } + processTask = null; + } + TimerEnabled = true; + ProcessStart = false; + } + private void DoBarCodeCouponStart() + { + certifyKey = ReadBarCode; + processingType = ProcessingType.Search; + CouponWindow = MobileCouponWindowType.Processing; + } + private void SetTatalUsingAmount() + { + if (MobileCouponReturn is M_MobileCouponReturn + && MobileCouponReturn.VirtureCoupons.Count > 0) + { + TotalCouponAmount = double.Parse(MobileCouponReturn.VirtureCoupons.Sum(r => r.DiscountPrice).ToString()); + } + else + { + TotalCouponAmount = 0; + } + + } + + + #endregion Methods + + #region [ Event Handlers ] + + private void posMobileCoupon_ErrorMessageEvent(string _errorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + } + + private void posMobileCoupon_ErrorEvent(posMobileHappyCoupon.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 필요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + IsErrorBlink = true; + } + + private void posMobileCoupon_ReadStart(object sender) + { + ProcessStart = true; + TimerEnabled = false; + } + + private void posMobileCoupon_ReadEnd(object sender) + { + if (sender is posMobileHappyCoupon getMobileHappyCoupon) + { + if (getMobileHappyCoupon.ProcessOK) + { + if (processingType.Equals(ProcessingType.Search)) + { + MobileCouponReturn = getMobileHappyCoupon.CouponData; + } + else if (processingType.Equals(ProcessingType.Using)) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = MobileCouponReturn + }; + } + } + } + + } + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + switch (CouponWindow) + { + case MobileCouponWindowType.ProcessingError: + switch (processingType) + { + case ProcessingType.Search: + CouponWindow = MobileCouponWindowType.CouponStart; + break; + case ProcessingType.Using: + CouponWindow = MobileCouponWindowType.CouponUsing; + break; + } + break; + case MobileCouponWindowType.CouponUsing: + processingType = ProcessingType.Using; + CouponWindow = MobileCouponWindowType.Processing; + break; + case MobileCouponWindowType.CouponSuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + } + private void VmMobileHappyCoupon_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + switch (CouponWindow) + { + case MobileCouponWindowType.CouponStart: + case MobileCouponWindowType.CouponUsing: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + break; + } + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "MobileCouponReturn": + SetTatalUsingAmount(); + if (MobileCouponReturn is M_MobileCouponReturn + && MobileCouponReturn.VirtureCoupons.Count > 0) + { + foreach (var aCouponData in MobileCouponReturn.VirtureCoupons) + { + aCouponData.PropertyChanged += ACouponData_PropertyChanged; + } + } + break; + case "TotalCouponAmount": + OKButtonEnabled = TotalCouponAmount > 0; + break; + case "ReadBarCode": + if (!ProcessStart) + { + if (ReadBarCode.Length >= 12 && ReadBarCode.Length <= 20) + { + readBarCode = ReadBarCode; + FormatedBarCode = readBarCode; + DoBarCodeCouponStart(); + } + else + { + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + } + } + break; + case "CouponWindow": + CouponStartVisible = false; + ProcessingVisible = false; + ProcessingErrorVisible = false; + CouponUsingVisible = false; + CouponSuccessVisible = false; + switch (CouponWindow) + { + case MobileCouponWindowType.CouponStart: + CouponStartVisible = true; + break; + case MobileCouponWindowType.Processing: + ProcessingVisible = true; + break; + case MobileCouponWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case MobileCouponWindowType.CouponUsing: + CouponUsingVisible = true; + break; + case MobileCouponWindowType.CouponSuccess: + CouponSuccessVisible = true; + break; + } + break; + case "CouponStartVisible": + if (CouponStartVisible) + { + ScanGuidText = Languages.GetMessages("LBL0051"); + InfoGuid1Text = new List(); + InfoGuid2Text = Languages.GetMessages("LBL0015"); + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0d; + OKButtonEnabled = false; + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "ProcessingVisible": + if (ProcessingVisible) + { + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = 0d; + + if (ProcessTask != null) ProcessTask.Wait(); + + switch (processingType) + { + case ProcessingType.Search: + ProcessTask = new Task(DoCouponSearch); + break; + case ProcessingType.Using: + ProcessTask = new Task(DoCouponUsing); + break; + } + ProcessTask.Start(); + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + ScanGuidText = Languages.GetMessages("LBL0077"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0007"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = 10d; + } + break; + case "CouponUsingVisible": + if (CouponUsingVisible) + { + ScanGuidText = new List(); + SuccessText = Languages.GetMessages("LBL0113"); + InfoGuid1Text = new List(); + InfoGuid2Text = Languages.GetMessages("LBL0004"); + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = false; + OkButtonText = Languages.GetMessages("BTN0039"); + CancelButtonText = Languages.GetMessages("BTN0033"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "CouponSuccessVisible": + if (CouponSuccessVisible) + { + ScanGuidText = new List(); + SuccessText = Languages.GetMessages("LBL0093"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OkButtonText = Languages.GetMessages("BTN0039"); + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + TimeOutSeconds = 5d; + } + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmMobileHappyCoupon_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + private void ACouponData_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + LastAccessTime = DateTime.Now; + SetTatalUsingAmount(); + } + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmNumPadPopup.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmNumPadPopup.cs new file mode 100644 index 0000000..44819e2 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmNumPadPopup.cs @@ -0,0 +1,303 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using System.Reflection; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; + +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// HappyPointCertify.xaml에 대한 ViewModel + /// + public class VmNumPadPopup : PopupViewModelBase + { + + + #region [ Members ] + private List numPadGuidText; + /// + /// Number Pad Input Guide Text + /// + public List NumPadGuidText + { + get { return numPadGuidText; } + set { numPadGuidText = value; PropertyChange("NumPadGuidText"); } + } + private bool formated = false; + /// + /// Input Text Formated + /// + public bool Formated + { + get { return formated; } + set { formated = value; PropertyChange("Formated"); } + } + private bool isPassword = false; + /// + /// Input Text Formated + /// + public bool IsPassword + { + get { return isPassword; } + set { isPassword = value; PropertyChange("IsPassword"); } + } + + private string inputNumbers = string.Empty; + /// + /// Number Pad Input Number + /// + public string InputNumbers + { + get { return inputNumbers; } + set { inputNumbers = value; PropertyChange("InputNumbers"); } + } + + private double cancelButtonWidth = 270d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// Ok Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private double okButtonWidth = 270d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + public bool numPadInputVisible = false; + /// + /// OK Button enabled + /// + public bool NumPadInputVisible + { + get { return numPadInputVisible; } + set { numPadInputVisible = value; PropertyChange("NumPadInputVisible"); } + } + public bool numPadGuideVisible = true; + /// + /// OK Button enabled + /// + public bool NumPadGuideVisible + { + get { return numPadGuideVisible; } + set { numPadGuideVisible = value; PropertyChange("NumPadGuideVisible"); } + } + + public int numPadMaxLength; + /// + /// Number Pad Input Maxlength + /// + public int NumPadMaxLength + { + get { return numPadMaxLength; } + set { numPadMaxLength = value; PropertyChange("NumPadMaxLength"); } + } + public int checkLength; + /// + /// Number Pad Input Maxlength + /// + public int CheckLength + { + get { return checkLength; } + set { checkLength = value; PropertyChange("CheckLength"); } + } + + private List memberPointsHeaderText; + /// + /// Cancel Button Text + /// + public List MemberPointsHeaderText + { + get { return memberPointsHeaderText; } + set { memberPointsHeaderText = value; PropertyChange("MemberPointsHeaderText"); } + } + private string languageButttonImage; + /// + /// Read Barcode Formated Text + /// + public string LanguageButttonImage + { + get { return languageButttonImage; } + set { languageButttonImage = value; PropertyChange("LanguageButttonImage"); } + } + private bool languageButttonVisibel; + /// + /// Language Select Button Visible + /// + public bool LanguageButttonVisibel + { + get { return languageButttonVisibel; } + set { languageButttonVisibel = value; PropertyChange("LanguageButttonVisibel"); } + } + private CertifyWindowType certifyWindow = CertifyWindowType.CertifyStart; + /// + /// Current View Window + /// + public CertifyWindowType CertifyWindow + { + get { return certifyWindow; } + set { certifyWindow = value; PropertyChange("CertifyWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + /// + /// HappyPoint 인증 정보 + /// + public M_HappyPointReturn HappyPointReturn { get; set; } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + #endregion + + #region [ Ctor ] + /// + /// Ctor + /// + public VmNumPadPopup() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmHappyPointCertify_PropertyChanged; + OkButtonText = Languages.GetMessages("BTN0024"); + CancelButtonText = Languages.GetMessages("BTN0033"); + } + /// + /// Dispose + /// + public new void Dispose() + { + this.PropertyChanged -= VmHappyPointCertify_PropertyChanged; + base.Dispose(); + } + #endregion Ctor + + #region [ Method ] + + + #endregion Method + + #region [ Event Handlers ] + + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = InputNumbers + }; + CanWindowClose = true; + } + + private void VmHappyPointCertify_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + break; + case "NumPadInputVisible": + NumPadGuideVisible = !NumPadInputVisible; + break; + case "InputNumbers": + NumPadInputVisible = InputNumbers.Length > 0; + if (CheckLength > 0 && CheckLength <= NumPadMaxLength) + { + OKButtonEnabled = CheckLength.Equals(InputNumbers.Length); + } + else + { + OKButtonEnabled = InputNumbers.Length > 0; + } + break; + case "PopupWidth": + OKButtonWidth = PopupWidth / 2; + CancelButtonWidth = PopupWidth / 2; + break; + } + } + #endregion Event Handlers + + + } + +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagCertify.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagCertify.cs new file mode 100644 index 0000000..3ceae5e --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagCertify.cs @@ -0,0 +1,793 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using System.Reflection; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +using System.Windows; +using System.Threading.Tasks; +using System.Threading; + +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// OkCashBagCertify.xaml에 대한 ViewModel + /// + public class VmOkCashBagCertify : PopupViewModelBase + { + + + #region [ Members ] + + private List headerText; + /// + /// Top Header Text + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Sub Header Text + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private List infoGuid1Text; + /// + /// Bootom first infomation text + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + public bool certifyStartVisible = false; + /// + /// 인증 시작 화면 Visible + /// + public bool CertifyStartVisible + { + get { return certifyStartVisible; } + set { certifyStartVisible = value; PropertyChange("CertifyStartVisible"); } + } + public bool certifyProcessingVisible = false; + /// + /// 인증 진행 화면 Visible + /// + public bool CertifyProcessingVisible + { + get { return certifyProcessingVisible; } + set { certifyProcessingVisible = value; PropertyChange("CertifyProcessingVisible"); } + } + public bool processingErrorVisible = false; + /// + /// 인증 오류 화면 Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + public bool certifySuccessVisible = false; + /// + /// 인증 완료 화면 Visible + /// + public bool CertifySuccessVisible + { + get { return certifySuccessVisible; } + set { certifySuccessVisible = value; PropertyChange("CertifySuccessVisible"); } + } + + private bool showPhoneInput = false; + /// + /// Show Phone Input + /// + public bool ShowPhoneInput + { + get { return showPhoneInput; } + set { showPhoneInput = value; PropertyChange("ShowPhoneInput"); } + } + private List processingMessageText; + /// + /// Number Pad Input Guide Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private string errorImage; + /// + /// Error Icon + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + + private List numPadGuidText; + /// + /// Number Pad Input Guide Text + /// + public List NumPadGuidText + { + get { return numPadGuidText; } + set { numPadGuidText = value; PropertyChange("NumPadGuidText"); } + } + private List numPadCancelText; + /// + /// Number Pad Cancel Button Text + /// + public List NumPadCancelText + { + get { return numPadCancelText; } + set { numPadCancelText = value; PropertyChange("NumPadCancelText"); } + } + private List errorText; + /// + /// Process Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcode Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private string inputNumbers = string.Empty; + /// + /// Number Pad Input Number + /// + public string InputNumbers + { + get { return inputNumbers; } + set { inputNumbers = value; PropertyChange("InputNumbers"); } + } + private string memberPointsText = string.Empty; + /// + /// Number Pad Input Number + /// + public string MemberPointsText + { + get { return memberPointsText; } + set { memberPointsText = value; PropertyChange("MemberPointsText"); } + } + + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// Ok Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private double okButtonWidth = 650d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + public int numPadMaxLength; + /// + /// Number Pad Input Maxlength + /// + public int NumPadMaxLength + { + get { return numPadMaxLength; } + set { numPadMaxLength = value; PropertyChange("NumPadMaxLength"); } + } + + private List memberPointsHeaderText; + /// + /// Cancel Button Text + /// + public List MemberPointsHeaderText + { + get { return memberPointsHeaderText; } + set { memberPointsHeaderText = value; PropertyChange("MemberPointsHeaderText"); } + } + + private CertifyWindowType certifyWindow = CertifyWindowType.CertifyStart; + /// + /// Current View Window + /// + public CertifyWindowType CertifyWindow + { + get { return certifyWindow; } + set { certifyWindow = value; PropertyChange("CertifyWindow"); } + } + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + /// + /// OK CashBag 인증 정보 + /// + public M_OkCashBagReturn OkCashBagReturn { get; set; } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + private bool MemberProcessStart = false; + private posOkCashBag posOkCashBag = null; + private Task ProcessTask = null; + private CancellationTokenSource TokenSource; + private string certifyKey = string.Empty; + + /// + /// 바코드스캔 Image + /// + public string BarcodeScanImage { get; set; } = ResourceManager.GetNximagePathAdd("img_gif_barcode.gif", CommonValue.PBdesignImagesPath); + + #endregion + + #region [ Ctor ] + /// + /// Ctor + /// + public VmOkCashBagCertify() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmHappyPointCertify_PropertyChanged; + HeaderText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "OK 캐시백 회원인증" + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "enOK 캐시백 회원인증" + }, + }; + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0140"); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + ErrorGuide = Languages.GetMessages("LBL0140"); + ErrorText = new List(); + NumPadMaxLength = 11; + NumPadGuidText = Languages.GetMessages("MobileNumberMessage"); + NumPadCancelText = Languages.GetMessages("CommonClear"); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + ShowLanguageType = CommonValue.CommonLanguageType; + posOkCashBag = new posOkCashBag(); + CertifyWindow = CertifyWindowType.CertifyStart; + } + + + ~VmOkCashBagCertify() + { + this.PropertyChanged -= VmHappyPointCertify_PropertyChanged; + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + if (posOkCashBag != null) + { + CashBagRemoveEvents(); + posOkCashBag.Dispose(); + posOkCashBag = null; + } + } + #endregion Ctor + + #region [ Method ] + + + private void InitError() + { + LastAccessTime = DateTime.Now; + ErrorText = new List(); + IsErrorBlink = false; + } + private void CashBagCreateEvents() + { + if (posOkCashBag != null) + { + posOkCashBag.ReadStart += PosOkCashBag_ReadStart; + posOkCashBag.ReadEnd += PosOkCashBag_ReadEnd; + posOkCashBag.ErrorEvent += PosOkCashBag_ErrorEvent; + posOkCashBag.ErrorMessageEvent += PosOkCashBag_ErrorMessageEvent; + } + } + private void CashBagRemoveEvents() + { + if (posOkCashBag != null) + { + posOkCashBag.ReadStart -= PosOkCashBag_ReadStart; + posOkCashBag.ReadEnd -= PosOkCashBag_ReadEnd; + posOkCashBag.ErrorEvent -= PosOkCashBag_ErrorEvent; + posOkCashBag.ErrorMessageEvent -= PosOkCashBag_ErrorMessageEvent; + } + } + private void DoOkCashBagCertify() + { + if (posOkCashBag != null) + { + this.CashBagCreateEvents(); + var processTask = new Task(() => posOkCashBag.StartCertifyProcessing(certifyKey)); + TokenSource = new CancellationTokenSource(); + processTask.Start(); + processTask.Wait(); + if (posOkCashBag.ProcessOK) + { + CertifyWindow = CertifyWindowType.CertifySuccess; + } + else + { + CertifyWindow = CertifyWindowType.ProcessingError; + } + CashBagRemoveEvents(); + TokenSource.Dispose(); + processTask = null; + TokenSource = null; + } + + } + private void DoBarCodeOkCashBagCertify() + { + InputNumbers = string.Empty; + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + certifyKey = ReadBarCode; + CertifyWindow = CertifyWindowType.CertifyProcessing; + } + #endregion Method + + #region [ Event Handlers ] + private void PosOkCashBag_ErrorMessageEvent(string ErrorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = ErrorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + CertifyWindow = CertifyWindowType.ProcessingError; + } + + private void PosOkCashBag_ErrorEvent(posOkCashBag.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 필요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = _errorCode.ToString() + }, + }; + IsErrorBlink = true; + CertifyWindow = CertifyWindowType.ProcessingError; + } + + private void PosOkCashBag_ReadStart(object sender) + { + MemberProcessStart = true; + TimerEnabled = false; + } + + private void PosOkCashBag_ReadEnd(object sender) + { + if (sender is posHappyPoint getPosposHappyPoint) + { + if (getPosposHappyPoint.ProcessOK) + { + OkCashBagReturn = new M_OkCashBagReturn + { + MemberName = getPosposHappyPoint.MemberName, + MemberCode = getPosposHappyPoint.CertifyKey, + MemberPoint = getPosposHappyPoint.MemberPoint, + NeedPassword = getPosposHappyPoint.NeedPassword, + ReservePoint = getPosposHappyPoint.CanReservePoint, + }; + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = OkCashBagReturn + }; + MemberPointsText = string.Format("{0} Points", OkCashBagReturn.MemberPoint.ToString("#,##0")); + CertifyWindow = CertifyWindowType.CertifySuccess; + } + } + TimerEnabled = true; + MemberProcessStart = false; + + } + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + certifyKey = InputNumbers; + CertifyWindow = CertifyWindowType.CertifyProcessing; + break; + case CertifyWindowType.ProcessingError: + CertifyWindow = CertifyWindowType.CertifyStart; + break; + case CertifyWindowType.CertifySuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + + } + + private void VmHappyPointCertify_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + case CertifyWindowType.ProcessingError: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + break; + } + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "InputNumbers": + if (InputNumbers.Length > 0) + { + InitError(); + ReadBarCode = string.Empty; + } + OKButtonEnabled = InputNumbers.Length.Equals(10) || InputNumbers.Length.Equals(11); + break; + case "ReadBarCode": + if (!MemberProcessStart) + { + InitError(); + switch (ReadBarCode.Length) + { + case 17: + readBarCode = ReadBarCode.Substring(0, 16); + DoBarCodeOkCashBagCertify(); + break; + case 16: + DoBarCodeOkCashBagCertify(); + break; + default: + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + break; + } + } + break; + case "CertifyWindow": + CertifyStartVisible = false; + CertifyProcessingVisible = false; + ProcessingErrorVisible = false; + CertifySuccessVisible = false; + switch (CertifyWindow) + { + case CertifyWindowType.CertifyStart: + CertifyStartVisible = true; + break; + case CertifyWindowType.CertifyProcessing: + CertifyProcessingVisible = true; + break; + case CertifyWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case CertifyWindowType.CertifySuccess: + CertifySuccessVisible = true; + break; + } + break; + case "CertifyStartVisible": + if (CertifyStartVisible) + { + ScanGuidText = Languages.GetMessages("LBL0082"); + InfoGuid1Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 인증시 OK 캐시백 포인트가 적립됩니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 인증시OK 캐시백 포인트가 적립됩니다." + }, + }; + InfoGuid2Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 수집된 개인정보는 활용 후 자동 폐기 됩니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 수집된 개인정보는 활용 후 자동 폐기 됩니다." + }, + }; + + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0d; + OKButtonEnabled = false; + //OkButtonText = Languages.GetMessages("CommonYes"); + //CancelButtonText = Languages.GetMessages("CommonNo"); + OkButtonText = Languages.GetMessages("CommonOK"); + CancelButtonText = Languages.GetMessages("CommonCancel"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "CertifyProcessingVisible": + if (CertifyProcessingVisible) + { + ScanGuidText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "인증 처리 진행 중입니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en인증 처리 진행 중입니다." + }, + }; + //InfoGuid1Text = new List + // { + // new M_Language + // { + // Type = SupportLanguageType.ko, + // LanguageData = "* 화면 상태가 지속되면 직원을 호출 하세요." + // }, + // new M_Language + // { + // Type = SupportLanguageType.en, + // LanguageData = "en* 화면 상태가 지속되면 직원을 호출 하세요." + // }, + // }; + InfoGuid2Text = new List(); + if (ProcessTask != null) ProcessTask.Wait(); + ProcessTask = new Task(DoOkCashBagCertify); + ProcessTask.Start(); + + //if (ProcessTask != null) + //{ + // ProcessTask.Dispose(); + // ProcessTask = null; + //} + //ProcessTask = new Task(DoOkCashBagCertify); + //ProcessTask.Start(); + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + ScanGuidText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "인증 처리중 오류가 발생 했습니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en인증 처리중 오류가 발생 했습니다." + }, + }; + InfoGuid1Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 10초간 입력이 없으면 취소 처리됩니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 10초간 입력이 없으면 취소 처리됩니다." + }, + }; + + InfoGuid2Text = new List(); + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("CommonRetry"); + CancelButtonText = Languages.GetMessages("CommonCancel"); + TimeOutSeconds = 10d; + } + break; + case "CertifySuccessVisible": + if (CertifySuccessVisible) + { + ScanGuidText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "인증 처리가 완료 되었습니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en인증 처리가 완료 되었습니다." + }, + }; + InfoGuid1Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 사용 가능 포인트를 확인하세요." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 사용 가능 포인트를 확인하세요." + }, + }; + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OkButtonText = Languages.GetMessages("CommonOK"); + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + TimeOutSeconds = 5d; + } + break; + } + } + #endregion Event Handlers + + + } + +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagUsing.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagUsing.cs new file mode 100644 index 0000000..22dc5a4 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOkCashBagUsing.cs @@ -0,0 +1,781 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// PkCashBagCertify.xaml에 대한 ViewModel + /// + public class VmOkCashBagUsing : PopupViewModelBase + { + #region [ Members ] + private List headerText; + /// + /// Top Header Text (Memebr login) + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List afterHeaderText; + /// + /// Top Header Text (Using Points) + /// + public List AfterHeaderText + { + get { return afterHeaderText; } + set { afterHeaderText = value; PropertyChange("AfterHeaderText"); } + } + private List scanGuidText; + /// + /// Second Header Text (Memebr login) + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List infoGuid1Text; + /// + /// Bottom first Infomation Text (Memebr login) + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second Infomation Text (Memebr login) + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + private List infoGuid3Text; + /// + /// Bottom first Infomation Text (Using Points) + /// + public List InfoGuid3Text + { + get { return infoGuid3Text; } + set { infoGuid3Text = value; PropertyChange("InfoGuid3Text"); } + } + private List infoGuid4Text; + /// + /// Bottom second Infomation Text (Using Points) + /// + public List InfoGuid4Text + { + get { return infoGuid4Text; } + set { infoGuid4Text = value; PropertyChange("InfoGuid4Text"); } + } + public int numPadMaxLength; + /// + /// Number Pad Max Length + /// + public int NumPadMaxLength + { + get { return numPadMaxLength; } + set { numPadMaxLength = value; PropertyChange("NumPadMaxLength"); } + } + private List numPadGuidText; + /// + /// Number Pad Input Guide Text + /// + public List NumPadGuidText + { + get { return numPadGuidText; } + set { numPadGuidText = value; PropertyChange("NumPadGuidText"); } + } + private List numPadCancelText; + /// + /// Number Pad Cancel Button Text + /// + public List NumPadCancelText + { + get { return numPadCancelText; } + set { numPadCancelText = value; PropertyChange("NumPadCancelText"); } + } + private bool pointPadVisible; + /// + /// Point Pad Visible + /// + public bool PointPadVisible + { + get { return pointPadVisible; } + set { pointPadVisible = value; PropertyChange("PointPadVisible"); } + } + private int pointPadMaxLength; + /// + /// Point Pad Max Length + /// + public int PointPadMaxLength + { + get { return pointPadMaxLength; } + set { pointPadMaxLength = value; PropertyChange("PointPadMaxLength"); } + } + private List pointPadGuidText; + /// + /// Point Pad Input Guide Text + /// + public List PointPadGuidText + { + get { return pointPadGuidText; } + set { pointPadGuidText = value; PropertyChange("PointPadGuidText"); } + } + private List pointPadCancelText; + /// + /// Point Pad Cancel Button Text + /// + public List PointPadCancelText + { + get { return pointPadCancelText; } + set { pointPadCancelText = value; PropertyChange("PointPadCancelText"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text (Member Login) + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// OK Button Text (Member Login) + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + public bool oKButtonEnabled = false; + /// + /// OK Button Enabled (Member Login) + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private List cancelButton2Text; + /// + /// Cancel Button Text (Point Using) + /// + public List CancelButton2Text + { + get { return cancelButton2Text; } + set { cancelButton2Text = value; PropertyChange("CancelButton2Text"); } + } + private List okButton2Text; + /// + /// OK Button Text (Point Using) + /// + public List OkButton2Text + { + get { return okButton2Text; } + set { okButton2Text = value; PropertyChange("OkButton2Text"); } + } + public bool oKButton2Enabled = false; + /// + /// OK Button Enabled (Point using) + /// + public bool OKButton2Enabled + { + get { return oKButton2Enabled; } + set { oKButton2Enabled = value; PropertyChange("OKButton2Enabled"); } + } + private List switchAnswer1Text; + /// + /// Point Reserve Check Button Text + /// + public List SwitchAnswer1Text + { + get { return switchAnswer1Text; } + set { switchAnswer1Text = value; PropertyChange("SwitchAnswer1Text"); } + } + public bool switchAnswer1Switch = false; + /// + /// Point Reserve Check Button Switch + /// + public bool SwitchAnswer1Switch + { + get { return switchAnswer1Switch; } + set { switchAnswer1Switch = value; PropertyChange("SwitchAnswer1Switch"); } + } + private List switchAnswer2Text; + /// + /// Point using Check Button Text + /// + public List SwitchAnswer2Text + { + get { return switchAnswer2Text; } + set { switchAnswer2Text = value; PropertyChange("SwitchAnswer2Text"); } + } + public bool switchAnswer2Switch = false; + /// + /// Point Using Button Switch + /// + public bool SwitchAnswer2Switch + { + get { return switchAnswer2Switch; } + set { switchAnswer2Switch = value; PropertyChange("SwitchAnswer2Switch"); } + } + private List allUseButtonText; + /// + /// All using Points Button Text + /// + public List AllUseButtonText + { + get { return allUseButtonText; } + set { allUseButtonText = value; PropertyChange("AllUseButtonText"); } + } + private List totalPayHeaderText; + /// + /// Payments Total Header Text + /// + public List TotalPayHeaderText + { + get { return totalPayHeaderText; } + set { totalPayHeaderText = value; PropertyChange("TotalPayHeaderText"); } + } + private string formatedBarCode; + /// + /// Formated Read Barcode + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + /// + /// Point Reserve Check Flag + /// + private bool reservepoint; + public bool ReservePoint + { + get { return reservepoint; } + set { reservepoint = value; PropertyChange("ReservePoint"); } + } + private double payments; + /// + /// Total Payments + /// + public double Payments + { + get { return payments; } + set { payments = value; PropertyChange("Payments"); } + } + private string showPayment; + /// + /// Total Payments Show Text + /// + public string ShowPayment + { + get { return showPayment; } + set { showPayment = value; PropertyChange("ShowPayment"); } + } + private string memberName; + /// + /// Login Memeber Name + /// + public string MemberName + { + get { return memberName; } + set { memberName = value; PropertyChange("MemberName"); } + } + private double queryPoints; + /// + /// Member Useable All Points + /// + public double QueryPoints + { + get { return queryPoints; } + set { queryPoints = value; PropertyChange("QueryPoints"); } + } + private List errorText; + /// + /// Error Text (Member login) + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink (Member login) + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private List errorText2; + /// + /// Error Text (Point Using) + /// + public List ErrorText2 + { + get { return errorText2; } + set { errorText2 = value; PropertyChange("ErrorText2"); } + } + private bool isErrorBlink2 = false; + /// + /// Is Error Text Blink (Point using) + /// + public bool IsErrorBlink2 + { + get { return isErrorBlink2; } + set { isErrorBlink2 = value; PropertyChange("IsErrorBlink2"); } + } + private bool toAfterBase = false; + /// + /// Change Grid to Point Using Grid Flag (true => to to Point Using) + /// + public bool ToAfterBase + { + get { return toAfterBase; } + set { toAfterBase = value; PropertyChange("ToAfterBase"); } + } + private List memberInfo; + /// + /// Login Memner Info + /// + public List MemberInfo + { + get { return memberInfo; } + set { memberInfo = value; PropertyChange("MemberInfo"); } + } + private string inputNumbers = string.Empty; + /// + /// Number pad input Numbers + /// + public string InputNumbers + { + get { return inputNumbers; } + set { inputNumbers = value; PropertyChange("InputNumbers"); } + } + private string inputPoints = string.Empty; + /// + /// Point pad Input Points + /// + public string InputPoints + { + get { return inputPoints; } + set { inputPoints = value; PropertyChange("InputPoints"); } + } + private M_OkCashBagReturn okCashBagReturn; + /// + /// Ok Chash bag Return Value + /// + public M_OkCashBagReturn OkCashBagReturn + { + get { return okCashBagReturn; } + set { okCashBagReturn = value; PropertyChange("OkCashBagReturn"); } + } + /// + /// OK Click Command (Member Login) + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command (Member Login & Point Using) + /// + public ICommand CancelCommand { get; protected set; } + /// + /// Ok Click Command (Point Using) + /// + public ICommand Ok2Command { get; protected set; } + /// + /// Point Reserve Click Command + /// + public ICommand SwitchAnswer1Command { get; protected set; } + /// + /// Point Using Click Command + /// + public ICommand SwitchAnswer2Command { get; protected set; } + /// + /// All Using Points Click Command + /// + public ICommand AllUseCommand { get; protected set; } + + private List PointUsingGuid3 = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 해피포인트 적립시 OK캐쉬백은 적립할 수 없습니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 해피포인트 적립시 OK캐쉬백은 적립할 수 없습니다." + }, + }; + private List PointUsingGuid4 = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 1000P 이상 10P 단위 사용가능." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* * 1000P 이상 10P 단위 사용가능." + }, + }; + private List ReservePoint3 = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 최종 결제후 자동 적립됩니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 최종 결제후 자동 적립됩니다." + }, + }; + private List ReservePoint4 = new List(); + private bool MemberProcessStart = false; + private Task ProcessTask = null; + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmOkCashBagUsing() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + Ok2Command = new Command(Ok2CommandHandler); + SwitchAnswer1Command = new Command(SwitchAnswer1CommandHandler); + SwitchAnswer2Command = new Command(SwitchAnswer2CommandHandler); + AllUseCommand = new Command(AllUseCommandHandler); + this.PropertyChanged += VmOkCashBagCertify_PropertyChanged; + HeaderText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "OK 캐쉬백 회원인증" + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "OK CASHBAG Member Certify" + }, + }; + AfterHeaderText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "OK 캐쉬백" + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "OK CASHBAG" + }, + }; + ScanGuidText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "바코드 스켄 또는 전화 번호를 입력하세요." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en바코드 스켄 또는 전화 번호를 입력하세요." + }, + }; + InfoGuid1Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 해피포인트 적립시 OK캐쉬백은 적립할 수 없습니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 해피포인트 적립시 OK캐쉬백은 적립할 수 없습니다." + }, + }; + InfoGuid2Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 수집된 개인정보는 활용 후 자동 폐기 됩니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* 수집된 개인정보는 활용 후 자동 폐기 됩니다." + }, + }; + NumPadMaxLength = 11; + NumPadGuidText = Languages.GetMessages("MobileNumberMessage"); + NumPadCancelText = Languages.GetMessages("CommonClear"); + PointPadMaxLength = 9; + PointPadGuidText = Languages.GetMessages("InputUsingPoints"); + PointPadCancelText = Languages.GetMessages("CommonClear"); + CancelButtonText = Languages.GetMessages("CommonCancel"); + OkButtonText = Languages.GetMessages("CommonOK"); + CancelButton2Text = Languages.GetMessages("CommonCancel"); + OkButton2Text = Languages.GetMessages("CommonOK"); + SwitchAnswer1Text = Languages.GetMessages("CommonReserve"); + SwitchAnswer2Text = Languages.GetMessages("CommonUsing"); + AllUseButtonText = Languages.GetMessages("CommonUsingAll"); + TotalPayHeaderText = Languages.GetMessages("PriceForPayment"); + if (!ReservePoint) PointPadVisible = true; + } + + ~VmOkCashBagUsing() + { + this.PropertyChanged -= VmOkCashBagCertify_PropertyChanged; + } + #endregion Ctor + + #region [ Methods ] + private bool PointValueCheck() + { + bool result = false; + try + { + if (!Payments.Equals(0) && QueryPoints >= 1000) + { + var checkValue = int.Parse(InputPoints); + if (checkValue >= 1000) + { + result = (checkValue % 10).Equals(0) + && checkValue <= QueryPoints + && checkValue <= Payments; + } + } + + } + catch + { + result = false; + } + return result; + } + private void DoOkCashBagCertify() + { + TimerEnabled = false; + MemberProcessStart = true; + //TODO : OK CASHBAG Point 조회 + OkCashBagReturn = new M_OkCashBagReturn + { + MemberName = "홍길동", + MemberPoint = 120501, + MemberCode = ReadBarCode.Equals(string.Empty) ? InputNumbers : ReadBarCode, + }; + MemberName = OkCashBagReturn.MemberName; + QueryPoints = OkCashBagReturn.MemberPoint; + ToAfterBase = true; + TimerEnabled = true; + } + #endregion Methods + + #region [ Event Handlers ] + private void AllUseCommandHandler(object obj) + { + if (QueryPoints > 1000) + { + var canUseAllPoints = QueryPoints - QueryPoints % 10; + if (!Payments.Equals(0)) + { + if (Payments < canUseAllPoints) + { + InputPoints = Payments.ToString(); + } + else + { + InputPoints = canUseAllPoints.ToString(); + } + } + } + } + + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + DoOkCashBagCertify(); + } + + private void Ok2CommandHandler(object obj) + { + TimerEnabled = false; + OkCashBagReturn.ReservePoint = SwitchAnswer1Switch; + OkCashBagReturn.PointUse = SwitchAnswer2Switch; + OkCashBagReturn.UsingPoints = string.IsNullOrEmpty(InputPoints) + ? 0 : int.Parse(InputPoints); + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = OkCashBagReturn + }; + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + + private void SwitchAnswer1CommandHandler(object obj) + { + if (SwitchAnswer2Switch) + { + OKButton2Enabled = PointValueCheck(); + + } + else + { + OKButton2Enabled = ReservePoint ? SwitchAnswer1Switch : false; + } + } + + private void SwitchAnswer2CommandHandler(object obj) + { + if (!ReservePoint) SwitchAnswer2Switch = true; + if (SwitchAnswer2Switch) + { + InfoGuid3Text = PointUsingGuid3; + InfoGuid4Text = PointUsingGuid4; + if (!Payments.Equals(0)) + { + PointPadVisible = true; + OKButton2Enabled = PointValueCheck(); + } + else + { + SwitchAnswer2Switch = false; + } + + } + else + { + InfoGuid3Text = ReservePoint3; + InfoGuid4Text = ReservePoint4; + InputPoints = string.Empty; + PointPadVisible = false; + OKButton2Enabled = ReservePoint ? SwitchAnswer1Switch : false; + } + } + + private void VmOkCashBagCertify_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + } + break; + case "ReservePoint": + if (ReservePoint) + { + InfoGuid3Text = ReservePoint3; + InfoGuid4Text = ReservePoint4; + PointPadVisible = false; + } + else + { + SwitchAnswer2Switch = true; + OKButton2Enabled = false; + InfoGuid3Text = PointUsingGuid3; + InfoGuid4Text = PointUsingGuid4; + } + break; + case "InputNumbers": + if (InputNumbers.Length > 0) ReadBarCode = string.Empty; + OKButtonEnabled = NumPadMaxLength.Equals(InputNumbers.Length); + break; + case "InputPoints": + OKButton2Enabled = PointValueCheck(); + break; + case "Payments": + ShowPayment = string.Format(@"\{0}", Payments.ToString("#,##0")); + break; + case "MemberName": + case "QueryPoints": + var memberInfo = string.Format("{0}({1}P)" + , MemberName.GetEncriptName(), QueryPoints.ToString("#,###0")); + MemberInfo = new List + { + new M_Language { Type=SupportLanguageType.ko, LanguageData = memberInfo } + }; + break; + case "ReadBarCode": + if (!MemberProcessStart) + { + switch (ReadBarCode.Length) + { + case 16: + InputNumbers = string.Empty; + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + DoOkCashBagCertify(); + break; + default: + FormatedBarCode = string.Empty; + OKButtonEnabled = false; + break; + } + } + break; + } + } + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOptionSelect.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOptionSelect.cs new file mode 100644 index 0000000..3cece47 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmOptionSelect.cs @@ -0,0 +1,329 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// OptionSelect.xaml 의 ViewModel + /// + public class VmOptionSelect : PopupViewModelBase + { + #region [ Members ] + /// + /// Return Data + /// + public M_OptionReturn OptionReturn { get; set; } + + private double itemPrice; + public double ItemPrice + { + get { return itemPrice; } + set { itemPrice = value; PropertyChange("ItemPrice"); } + } + private List options; + /// + /// Option Data + /// + public List Options + { + get { return options; } + set { options = value; PropertyChange("Options"); } + } + + private List headerText; + /// + /// Top Header Text + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Sub Header Text + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + + private string itemImageBrush; + /// + /// Item Image + /// + public string ItemImageBrush + { + get { return itemImageBrush; } + set { itemImageBrush = value; PropertyChange("ItemImageBrush"); } + } + private M_AnimationButton leftButtonData= null; + /// Combo Right Left Data + public M_AnimationButton LeftButtonData + { + get { return leftButtonData; } + set { leftButtonData = value; PropertyChange("LeftButtonData"); } + } + private M_AnimationButton rightButtonData = null; + /// + /// Combo Right Button Data + /// + public M_AnimationButton RightButtonData + { + get { return rightButtonData; } + set { rightButtonData = value; PropertyChange("RightButtonData"); } + } + + + private List itemName; + /// + /// Second Sub Header Text + /// + public List ItemName + { + get { return itemName; } + set { itemName = value; PropertyChange("ItemName"); } + } + private int itemCount = 1; + /// + /// Item Count + /// + public int ItemCount + { + get { return itemCount; } + set { itemCount = value; PropertyChange("ItemCount"); } + } + private double unitPrice; + public double UnitPrice + { + get { return unitPrice; } + set { unitPrice = value; PropertyChange("UnitPrice"); } + } + private List totalPriceLabel; + /// + /// Second Sub Header Text + /// + public List TotalPriceLabel + { + get { return totalPriceLabel; } + set { totalPriceLabel = value; PropertyChange("TotalPriceLabel"); } + } + + private double totalPrice; + public double TotalPrice + { + get { return totalPrice; } + set { totalPrice = value; PropertyChange("TotalPrice"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + /// + /// Option Changed Command + /// + public ICommand OptionCommand { get; protected set; } + private bool editMode = false; + /// + /// Edit Mode + /// + public bool EditMode + { + get { return editMode; } + set { editMode = value; PropertyChange("EditMode"); } + } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmOptionSelect() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + OptionCommand = new Command(OptionCommandHandler); + LeftButtonData = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("btn_count_minus_n.png", CommonValue.PBdesignImagesPath), + DownBrush = ResourceManager.GetNximagePathAdd("btn_count_minus_p.png", CommonValue.PBdesignImagesPath), + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + RightButtonData = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("btn_count_plus_n.png", CommonValue.PBdesignImagesPath), + DownBrush = ResourceManager.GetNximagePathAdd("btn_count_plus_p.png", CommonValue.PBdesignImagesPath), + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + this.PropertyChanged += VmOptionSelect_PropertyChanged; + HeaderText = Languages.GetMessages("LBL0115"); + TotalPriceLabel = Languages.GetMessages("LBL0132"); + ScanGuidText = Languages.GetMessages("LBL0068"); + ShowLanguageType = CommonValue.CommonLanguageType; + CancelButtonText = Languages.GetMessages("BTN0033"); + OkButtonText = Languages.GetMessages("BTN0024"); + } + + + ~VmOptionSelect() + { + this.PropertyChanged -= VmOptionSelect_PropertyChanged; + } + #endregion Ctor + + #region [ Methods ] + private void CalcUnitPrice(object _param) + { + if (_param is List changedOption) + { + + var optionPrice = ItemPrice; + foreach (var aGroup in changedOption) + { + foreach (var aOption in aGroup.Options) + { + if ((aOption.Kind.Equals(OptionKind.Discount) + || aOption.Kind.Equals(OptionKind.UpCharge)) + && aOption.IsSelected) + { + optionPrice += aOption.SelectValue; + } + } + } + UnitPrice = optionPrice; + } + } + #endregion Methods + + #region [ Event Handlers ] + private void OptionCommandHandler(object _param) + { + CalcUnitPrice(_param); + } + private void CancelCommandHandler(object obj) + { + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + + private void OkCommandHandler(object obj) + { + TimerEnabled = false; + var newOptionReturn = new M_OptionReturn + { + ItemCount = ItemCount, + PriceWithOption = UnitPrice, + Options = Options + }; + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = newOptionReturn + }; + CanWindowClose = true; + } + + private void VmOptionSelect_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + break; + case "ItemPrice": + CalcUnitPrice(Options); + break; + case "ItemCount": + case "UnitPrice": + if (ItemCount > 0 && UnitPrice > 0) + { + TotalPrice = ItemCount * UnitPrice; + } + break; + } + } + catch (Exception ex) + { + + CommonLog.ErrorLogWrite(this, "VmOptionSelect_PropertyChanged()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentProcess.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentProcess.cs new file mode 100644 index 0000000..6dd4afd --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentProcess.cs @@ -0,0 +1,896 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; + +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// HappyPointCertify.xaml에 대한 ViewModel + /// + public class VmPaymentProcess : PopupViewModelBase + { + #region [ Members ] + private string titileImage; + /// + /// Read Barcode Formated Text + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private string errorImage; + /// + /// Error Icon + /// + public string ErrorImage + { + get { return errorImage; } + set { errorImage = value; PropertyChange("ErrorImage"); } + } + private string successImage; + /// + /// Sucess Icon + /// + public string SuccessImage + { + get { return successImage; } + set { successImage = value; PropertyChange("SuccessImage"); } + } + private List headerText; + /// + /// Top Header Text + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Sub Header Text + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List processingMessageText; + /// + /// Number Pad Input Guide Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + private List errorGuide; + /// + /// Error Guide Text + /// + public List ErrorGuide + { + get { return errorGuide; } + set { errorGuide = value; PropertyChange("ErrorGuide"); } + } + + private List infoGuid1Text; + /// + /// Bootom first infomation text + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private TextAlignment infoGuid1TextAlignment = TextAlignment.Left; + public TextAlignment InfoGuid1TextAlignment + { + get { return infoGuid1TextAlignment; } + set { infoGuid1TextAlignment = value; PropertyChange("InfoGuid1TextAlignment"); } + } + private List infoGuid2Text; + /// + /// Bootom Second infomation text + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + private List leftInfomationText; + /// + /// Bootom Second infomation text + /// + public List LeftInfomationText + { + get { return leftInfomationText; } + set { leftInfomationText = value; PropertyChange("LeftInfomationText"); } + } + private bool paymentStartVisible = false; + /// + /// ReadCardOrBarCode Window Is Visible + /// + public bool PaymentStartVisible + { + get { return paymentStartVisible; } + set { paymentStartVisible = value; PropertyChange("PaymentStartVisible"); } + } + private bool readSignVisible = false; + /// + /// PaymentProcessing Window Is Visible + /// + public bool ReadSignVisible + { + get { return readSignVisible; } + set { readSignVisible = value; PropertyChange("ReadSignVisible"); } + } + private bool paymentProcessingVisible = false; + /// + /// PaymentProcessing Window Is Visible + /// + public bool PaymentProcessingVisible + { + get { return paymentProcessingVisible; } + set { paymentProcessingVisible = value; PropertyChange("PaymentProcessingVisible"); } + } + private bool processingErrorVisible = false; + /// + /// ProcessingError Window Is Visible + /// + public bool ProcessingErrorVisible + { + get { return processingErrorVisible; } + set { processingErrorVisible = value; PropertyChange("ProcessingErrorVisible"); } + } + + private bool paymentSuccessVisible = false; + /// + /// Payment Success Window Is Visible + /// + public bool PaymentSuccessVisible + { + get { return paymentSuccessVisible; } + set { paymentSuccessVisible = value; PropertyChange("PaymentSuccessVisible"); } + } + private List errorText; + /// + /// Process Error Text + /// + public List ErrorText + { + get { return errorText; } + set { errorText = value; PropertyChange("ErrorText"); } + } + private bool isErrorBlink = false; + /// + /// Is Error Text Blink + /// + public bool IsErrorBlink + { + get { return isErrorBlink; } + set { isErrorBlink = value; PropertyChange("IsErrorBlink"); } + } + private string formatedBarCode; + /// + /// Read Barcode Formated Text + /// + public string FormatedBarCode + { + get { return formatedBarCode; } + set { formatedBarCode = value; PropertyChange("FormatedBarCode"); } + } + private string readBarCode; + /// + /// Read Barcode + /// + public string ReadBarCode + { + get { return readBarCode; } + set { readBarCode = value; PropertyChange("ReadBarCode"); } + } + private double payments; + /// + /// Total Payments + /// + public double Payments + { + get { return payments; } + set { payments = value; PropertyChange("Payments"); } + } + private string showPayment; + /// + /// Total Payments + /// + public string ShowPayment + { + get { return showPayment; } + set { showPayment = value; PropertyChange("ShowPayment"); } + } + private double popupWidth = 1300d; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + private bool oKButtonEnabled = false; + /// + /// OK Button Enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + + private double okButtonWidth = 650d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + private string signData; + /// + /// SignData + /// + public string SignData + { + get { return signData; } + set { signData = value; PropertyChange("SignData"); } + } + private string signFile; + /// + /// SignFile + /// + public string SignFile + { + get { return signFile; } + set { signFile = value; PropertyChange("SignFile"); } + } + private bool useableSign; + /// + /// Useable Sign + /// + public bool UseableSign + { + get { return useableSign; } + set { useableSign = value; PropertyChange("UseableSign"); } + } + private bool signEnd; + /// + /// Sign End + /// + public bool SignEnd + { + get { return signEnd; } + set { signEnd = value; PropertyChange("SignEnd"); } + } + private bool signReset; + /// + /// Sign Reset + /// + public bool SignReset + { + get { return signReset; } + set { signReset = value; PropertyChange("SignReset"); } + } + /// + /// 결제 처리 정보 + /// + public M_PaymentReturn PaymentReturn { get; set; } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + private LastPaymentsType paymentType = LastPaymentsType.None; + public LastPaymentsType PaymentType + { + get { return paymentType; } + set { paymentType = value; PropertyChange("PaymentType"); } + } + private PaymentWindowType paymentWindow = PaymentWindowType.None; + /// + /// Current View Window + /// + public PaymentWindowType PaymentWindow + { + get { return paymentWindow; } + set { paymentWindow = value; PropertyChange("PaymentWindow"); } + } + public bool ImmediatelyClose { get; protected set; } = false; + + private bool ProcessStart = false; + private posLastPayments PosLastPayments = null; + + private Task ProcessTask = null; + private Task ProcessTask2 = null; + private CancellationTokenSource TokenSource; + private string certifyKey = string.Empty; + + #endregion + + #region [ Ctor ] + /// + /// Ctor + /// + public VmPaymentProcess() + { + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + this.PropertyChanged += VmHappyPointCertify_PropertyChanged; + + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + SuccessImage = ResourceManager.GetNximagePathAdd("ic_alert_check.png", CommonValue.PBdesignImagesPath); + ErrorImage = ResourceManager.GetNximagePathAdd("ic_alert_error.png", CommonValue.PBdesignImagesPath); + HeaderText = Languages.GetMessages("LBL0026"); + + ProcessingMessageText = Languages.GetMessages("LBL0031"); + ProcessingGuide = Languages.GetMessages("LBL0140"); + ErrorGuide = Languages.GetMessages("LBL0028"); + ErrorText = new List(); + ShowLanguageType = CommonValue.CommonLanguageType; + PaymentWindow = PaymentWindowType.PaymentStart; + PosLastPayments = new posLastPayments(); + } + /// + /// Dispose() + /// + public new void Dispose() + { + this.TitileImage = string.Empty; + this.ProcessingGIF = string.Empty; + this.ErrorImage = string.Empty; + this.PropertyChanged -= VmHappyPointCertify_PropertyChanged; + if (TokenSource != null) + { + TokenSource.Cancel(); + } + if (PosLastPayments != null) + { + PaymentProcessRemoveEvents(); + PosLastPayments.Dispose(); + PosLastPayments = null; + } + if (ProcessTask != null) + { + //ProcessTask.Dispose(); + ProcessTask = null; + } + base.Dispose(); + } + #endregion Ctor + + #region [ Methods ] + private void PaymentProcessCreateEvents() + { + if (PosLastPayments != null) + { + PosLastPayments.ReadStart += posLastPayments_ReadStart; + PosLastPayments.ReadEnd += posLastPayments_ReadEnd; + PosLastPayments.SignStartEvent += posLastPayments_SignStartEvent; + PosLastPayments.SignEndEvent += PosLastPayments_SignEndEvent; + PosLastPayments.ErrorEvent += posLastPayments_ErrorEvent; + PosLastPayments.ErrorMessageEvent += posLastPayments_ErrorMessageEvent; + } + } + + private void posLastPayments_SignStartEvent(object sender) + { + PaymentWindow = PaymentWindowType.ReadSign; + } + + private void PosLastPayments_SignEndEvent(object sender) + { + PaymentWindow = PaymentWindowType.PaymentProcessing; + } + + private void PaymentProcessRemoveEvents() + { + if (PosLastPayments != null) + { + PosLastPayments.ReadStart -= posLastPayments_ReadStart; + PosLastPayments.ReadEnd -= posLastPayments_ReadEnd; + PosLastPayments.SignStartEvent -= posLastPayments_SignStartEvent; + PosLastPayments.SignEndEvent -= PosLastPayments_SignEndEvent; + PosLastPayments.ErrorEvent -= posLastPayments_ErrorEvent; + PosLastPayments.ErrorMessageEvent -= posLastPayments_ErrorMessageEvent; + } + } + + private void DoPaymentProcess() + { + + + try + { + #region 결제 처리 Task 처리 + PosLastPayments.NoSignLimitAmount = CommonValue.NoSignAmountMaxLimit; + if (PosLastPayments != null) + { + TimerEnabled = false; + SignReset = false; + SignEnd = false; + PaymentProcessCreateEvents(); + ProcessTask2 = new Task(() => PosLastPayments.StartCertifyProcessing(PaymentType, certifyKey, Payments)); + TokenSource = new CancellationTokenSource(); + ProcessTask2.Start(); + ProcessTask2.Wait(); + PaymentProcessRemoveEvents(); + PaymentWindow = PosLastPayments.ProcessOK ? PaymentWindowType.PaymentSuccess : PaymentWindowType.ProcessingError; + TokenSource.Dispose(); + ProcessTask2.Dispose(); + ProcessTask2 = null; + TokenSource = null; + } + #endregion + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "DoPaymentProcess()", "Fail !!", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + TimerEnabled = true; + } + } + #endregion Methods + + #region [ Event Handlers ] + + private void CancelCommandHandler(object obj) + { + switch (PaymentWindow) + { + case PaymentWindowType.ProcessingError: + case PaymentWindowType.PaymentStart: + TimerEnabled = false; + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + break; + case PaymentWindowType.ReadSign: + SignReset = true; + break; + } + + } + private void OkCommandHandler(object obj) + { + switch (PaymentWindow) + { + case PaymentWindowType.ProcessingError: + PaymentWindow = PaymentWindowType.PaymentStart; + break; + case PaymentWindowType.PaymentSuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + case PaymentWindowType.ReadSign: + SignEnd = true; + break; + } + } + private void posLastPayments_ErrorMessageEvent(string ErrorString) + { + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = ErrorString.Replace("\n"," ").Replace("\r","") + }, + }; + IsErrorBlink = true; + } + + private void posLastPayments_ErrorEvent(posLastPayments.ErrorCode _errorCode) + { + //TODO: 공통에 에러 메세지 등록 필요 + //ErrorText = Languages.GetMessages(_errorCode.ToString()); + var errTxt = string.Empty; + + switch (_errorCode) + { + case posLastPayments.ErrorCode.LastPaymentsCardNumberError: + errTxt = "카드를 리딩에 실패했습니다. \n다시 결제 버튼을 눌러 다시 시도하세요."; + break; + case posLastPayments.ErrorCode.LastPaymentsCardReadingError: + errTxt = "카드를 리딩에 실패했습니다. \n다시 결제 버튼을 눌러 다시 시도하세요."; + break; + case posLastPayments.ErrorCode.LastPaymentsEncrtipError: + errTxt = "암호화 에러가 발생했습니다."; + break; + case posLastPayments.ErrorCode.LastPaymentsNotInitailzedError: + errTxt = "초기화 에러가 발생했습니다."; + break; + case posLastPayments.ErrorCode.LastPaymentsProcessingTimeOut: + errTxt = "처리시간이 초과되었습니다. \n재결제 버튼을 눌러 다시 시도하세요."; + break; + case posLastPayments.ErrorCode.LastPaymentsUnknownError: + errTxt = "에러가 발생했습니다."; + break; + default: + break; + + + } + + ErrorText = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + //LanguageData = _errorCode.ToString() + LanguageData = errTxt + }, + }; + IsErrorBlink = true; + } + + private void posLastPayments_ReadStart(object sender) + { + TimerEnabled = false; + ProcessStart = true; + switch (PaymentType) + { + case LastPaymentsType.IcCard: + case LastPaymentsType.SsLgPay: + case LastPaymentsType.CashBee: + case LastPaymentsType.HappyGift: + case LastPaymentsType.Tmoney: + case LastPaymentsType.SpcEmployee: + case LastPaymentsType.SmilePay: + PaymentWindow = PaymentWindowType.PaymentProcessing; + break; + } + } + + private void posLastPayments_ReadEnd(object sender) + { + ProcessStart = false; + try + { + if (sender is posLastPayments getposLastPayments) + { + if (getposLastPayments.ProcessOK) + { + PaymentReturn = new M_PaymentReturn + { + IsProcessOK = true, + PaymentsTotal = getposLastPayments.PaymentsValue, + PaySEQ = getposLastPayments.PaySEQ, + + }; + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = PaymentReturn + + }; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "posLastPayments_ReadEnd()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + + } + private void VmHappyPointCertify_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + #region 입력시간 초과시 + switch (PaymentWindow) + { + case PaymentWindowType.PaymentStart: + case PaymentWindowType.ProcessingError: + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + break; + } + if (!ProcessStart) CanWindowClose = true; + #endregion + } + break; + case "PaymentWindow": + #region 창 모두 안보이게 하기 + PaymentStartVisible = false; + ReadSignVisible = false; + PaymentProcessingVisible = false; + ProcessingErrorVisible = false; + PaymentSuccessVisible = false; + #endregion + + #region 선택창 보이기 + switch (PaymentWindow) + { + case PaymentWindowType.PaymentStart: + PaymentStartVisible = true; + break; + case PaymentWindowType.ReadSign: + ReadSignVisible = true; + break; + case PaymentWindowType.PaymentProcessing: + PaymentProcessingVisible = true; + break; + case PaymentWindowType.ProcessingError: + ProcessingErrorVisible = true; + break; + case PaymentWindowType.PaymentSuccess: + PaymentSuccessVisible = true; + break; + } + #endregion + break; + case "PaymentType": + switch (PaymentType) + { + case LastPaymentsType.IcCard: + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_card.gif", CommonValue.PBdesignImagesPath); + ScanGuidText = Languages.GetMessages("LBL0084"); + break; + case LastPaymentsType.SsLgPay: + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_pay.gif", CommonValue.PBdesignImagesPath); + ScanGuidText = Languages.GetMessages("LBL0083"); + break; + case LastPaymentsType.SmilePay: + TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode.gif", CommonValue.PBdesignImagesPath); + ScanGuidText = Languages.GetMessages("LBL0082"); + break; + } + break; + case "PaymentStartVisible": + if (PaymentStartVisible) + { + #region 카드 또는 신용카드 리딩 처리 + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + InfoGuid1TextAlignment = TextAlignment.Left; + CancelButtonText = Languages.GetMessages("BTN0033"); + CancelButtonWidth = PopupWidth; + OKButtonWidth = 0; + TimeOutSeconds = CommonValue.TimeOutSeconds; + switch (PaymentType) + { + case LastPaymentsType.IcCard: + case LastPaymentsType.SsLgPay: + case LastPaymentsType.CashBee: + case LastPaymentsType.HappyGift: + case LastPaymentsType.Tmoney: + case LastPaymentsType.SpcEmployee: + if (ProcessTask != null) ProcessTask.Wait(); + ProcessTask = new Task(DoPaymentProcess); + ProcessTask.Start(); + break; + } + #endregion + } + break; + case "ReadSignVisible": + if (ReadSignVisible) + { + ScanGuidText = Languages.GetMessages("LBL0072"); + InfoGuid1Text = Languages.GetMessages("LBL0066"); + InfoGuid2Text = new List + { + new M_Language + { + Type = SupportLanguageType.ko, + LanguageData = "* 싸인이 너무 짧거나 길면 확인 버튼이 활성화 되지 않습니다." + }, + new M_Language + { + Type = SupportLanguageType.en, + LanguageData = "en* * * 싸인이 너무 짧거나 길면 확인 버튼이 활성화 되지 않습니다." + }, + }; + CancelButtonText = Languages.GetMessages("BTN0007"); + CancelButtonWidth = PopupWidth / 2; + OkButtonText = Languages.GetMessages("BTN0024"); + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = false; + } + break; + case "PaymentProcessingVisible": + if (PaymentProcessingVisible) + { + if (PaymentType == LastPaymentsType.SmilePay) + { + //ScanGuidText = Languages.GetMessages("LBL0087"); + ProcessingMessageText = Languages.GetMessages("LBL0087"); + } + else + { + ScanGuidText = Languages.GetMessages("LBL0032"); + } + + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + OKButtonWidth = 0d; + CancelButtonWidth = 0d; + + if (!SignEnd) + { + switch (PaymentType) + { + case LastPaymentsType.SmilePay: + case LastPaymentsType.AliPay: + case LastPaymentsType.ZeroPay: + if (ProcessTask != null) ProcessTask.Wait(); + ProcessTask = new Task(DoPaymentProcess); + ProcessTask.Start(); + break; + } + } + } + break; + case "ProcessingErrorVisible": + if (ProcessingErrorVisible) + { + #region 처리 실패 오류 창 + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + InfoGuid1TextAlignment = TextAlignment.Left; + CancelButtonText = Languages.GetMessages("BTN0003"); + CancelButtonWidth = PopupWidth / 2; + OkButtonText = Languages.GetMessages("BTN0006"); + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = true; + TimeOutSeconds = 10d; + #endregion + } + break; + case "PaymentSuccessVisible": + if (PaymentSuccessVisible) + { + if (PaymentType == LastPaymentsType.SmilePay) + { + ScanGuidText = Languages.GetMessages("LBL0087"); + } + else + { + ScanGuidText = Languages.GetMessages("LBL0029"); + } + + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + OKButtonWidth = 0d; + CancelButtonWidth = 0d; + ImmediatelyClose = true; + TimeOutSeconds = 0d; + } + break; + case "ReadBarCode": + if (!ProcessStart) + { + switch (PaymentType) + { + case LastPaymentsType.SmilePay: + case LastPaymentsType.AliPay: + case LastPaymentsType.ZeroPay: + switch (ReadBarCode.Length) + { + case 16: + case 17: + certifyKey = ReadBarCode.Substring(0, 16); + FormatedBarCode = ReadBarCode.GetEncriptCardNo(); + PaymentWindow = PaymentWindowType.PaymentProcessing; + break; + default: + FormatedBarCode = string.Empty; + break; + } + break; + } + } + break; + case "UseableSign": + OKButtonEnabled = UseableSign; + break; + case "SignData": + if (PosLastPayments != null && !string.IsNullOrEmpty(SignData)) + { + PosLastPayments.SignData = SignData; + PosLastPayments.SignEndStatus = true; + } + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmHappyPointCertify_PropertyChanged()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + #endregion Event Handlers + } + +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentsEnd.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentsEnd.cs new file mode 100644 index 0000000..a88cbee --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmPaymentsEnd.cs @@ -0,0 +1,1397 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Threading; +using System.Windows; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Payments; +using SPC.Kiosk.DataHelper; + +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// PaymentsEnd.xaml에 대한 ViewModel + /// + public class VmPaymentsEnd : PopupViewModelBase + { + #region [ Members ] + private PosDataService posDataService = null; + public WaitWindow WaitWindowFrom { get; set; } + private List basketData; + public List BasketData + { + get { return basketData; } + set { basketData = value; PropertyChange("BasketData"); } + } + private string titileImage; + /// + /// Cash Image + /// + public string TitileImage + { + get { return titileImage; } + set { titileImage = value; PropertyChange("TitileImage"); } + } + private List headerText; + /// + /// Top Header Text (first Grid) + /// + public List HeaderText + { + get { return headerText; } + set { headerText = value; PropertyChange("HeaderText"); } + } + private List scanGuidText; + /// + /// Second Header Text (first Grid) + /// + public List ScanGuidText + { + get { return scanGuidText; } + set { scanGuidText = value; PropertyChange("ScanGuidText"); } + } + private List infoGuid1Text; + /// + /// Bootom first infomation text (first Grid) + /// + public List InfoGuid1Text + { + get { return infoGuid1Text; } + set { infoGuid1Text = value; PropertyChange("InfoGuid1Text"); } + } + private List infoGuid2Text; + /// + /// Bottom second infomation text (first Grid) + /// + public List InfoGuid2Text + { + get { return infoGuid2Text; } + set { infoGuid2Text = value; PropertyChange("InfoGuid2Text"); } + } + + private List totalPayHeaderText; + /// + /// Payments Total Header Text + /// + public List TotalPayHeaderText + { + get { return totalPayHeaderText; } + set { totalPayHeaderText = value; PropertyChange("TotalPayHeaderText"); } + } + private List queryPointsHeaderText; + /// + /// Member Point Header Text + /// + public List QueryPointsHeaderText + { + get { return queryPointsHeaderText; } + set { queryPointsHeaderText = value; PropertyChange("QueryPointsHeaderText"); } + } + private double cashPayments; + /// + /// Payments Total + /// + public double CashPayments + { + get { return cashPayments; } + set { cashPayments = value; PropertyChange("CashPayments"); } + } + private double cashTax; + /// + /// Payments Total + /// + public double CashTax + { + get { return cashTax; } + set { cashTax = value; PropertyChange("CashTax"); } + } + + + private List cancelButtonText; + /// + /// Cancel Button Text + /// + public List CancelButtonText + { + get { return cancelButtonText; } + set { cancelButtonText = value; PropertyChange("CancelButtonText"); } + } + private double cancelButtonWidth = 650d; + /// + /// Cancel Button Width + /// + public double CancelButtonWidth + { + get { return cancelButtonWidth; } + set { cancelButtonWidth = value; PropertyChange("CancelButtonWidth"); } + } + private double okButtonWidth = 650d; + /// + /// OK Button Width + /// + public double OKButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OKButtonWidth"); } + } + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + private bool oKButtonEnabled = false; + /// + /// OK Button Enabled + /// + public bool OKButtonEnabled + { + get { return oKButtonEnabled; } + set { oKButtonEnabled = value; PropertyChange("OKButtonEnabled"); } + } + private bool talkGetButtonEnabled = false; + /// + /// OK Button Enabled + /// + public bool TalkGetButtonEnabled + { + get { return talkGetButtonEnabled; } + set { talkGetButtonEnabled = value; PropertyChange("TalkGetButtonEnabled"); } + } + private bool storeAgreeView; + public bool StoreAgreeView + { + get { return storeAgreeView; } + set { storeAgreeView = value; PropertyChange("StoreAgreeView"); } + } + + private M_StoreAgree storeAgreeData; + /// + /// Sotre Agree Data + /// + public M_StoreAgree StoreAgreeData + { + get { return storeAgreeData; } + set { storeAgreeData = value; PropertyChange("StoreAgreeData"); } + } + + #region CashReceipt + + private bool cashReceiptVisible = false; + /// + /// 인증 시작 화면 Visible + /// + public bool CashReceiptVisible + { + get { return cashReceiptVisible; } + set { cashReceiptVisible = value; PropertyChange("CashReceiptVisible"); } + } + private string cashReceipTitileImage; + /// + /// CashReceip Titile Image + /// + public string CashReceipTitileImage + { + get { return cashReceipTitileImage; } + set { cashReceipTitileImage = value; PropertyChange("CashReceipTitileImage"); } + } + private string cashReceipButtonBackground; + /// + /// CashReceip Button Background + /// + public string CashReceipButtonBackground + { + get { return cashReceipButtonBackground; } + set { cashReceipButtonBackground = value; PropertyChange("CashReceipButtonBackground"); } + } + private string cashTypePersonButtonNormal; + /// + /// CashType Person Button Normal + /// + public string CashTypePersonButtonNormal + { + get { return cashTypePersonButtonNormal; } + set { cashTypePersonButtonNormal = value; PropertyChange("CashTypePersonButtonNormal"); } + } + private string cashTypePersonButtonDisable; + /// + /// CashType Person Button Disable + /// + public string CashTypePersonButtonDisable + { + get { return cashTypePersonButtonDisable; } + set { cashTypePersonButtonDisable = value; PropertyChange("CashTypePersonButtonDisable"); } + } + private bool cashTypePersonEnable = false; + /// + /// CashType Serson Enabled + /// + public bool CashTypePersonEnable + { + get { return cashTypePersonEnable; } + set { cashTypePersonEnable = value; PropertyChange("CashTypePersonEnable"); } + } + private List cashTypePersonText; + /// + /// CashType Serson Button text + /// + public List CashTypePersonText + { + get { return cashTypePersonText; } + set { cashTypePersonText = value; PropertyChange("CashTypePersonText"); } + } + private string cashTypeCompanyButtonNormal; + /// + /// CashType Company Button Normal + /// + public string CashTypeCompanyButtonNormal + { + get { return cashTypeCompanyButtonNormal; } + set { cashTypeCompanyButtonNormal = value; PropertyChange("CashTypeCompanyButtonNormal"); } + } + private string cashTypeCompanyButtonDisable; + /// + /// CashType Company Button Disable + /// + public string CashTypeCompanyButtonDisable + { + get { return cashTypeCompanyButtonDisable; } + set { cashTypeCompanyButtonDisable = value; PropertyChange("CashTypeCompanyButtonDisable"); } + } + public bool cashTypeCompanyEnable = true; + /// + /// CashType Serson Enabled + /// + public bool CashTypeCompanyEnable + { + get { return cashTypeCompanyEnable; } + set { cashTypeCompanyEnable = value; PropertyChange("CashTypeCompanyEnable"); } + } + private List cashTypeCompanyText; + /// + /// All Point Using Button text + /// + public List CashTypeCompanyText + { + get { return cashTypeCompanyText; } + set { cashTypeCompanyText = value; PropertyChange("CashTypeCompanyText"); } + } + private string inputNumber = string.Empty; + /// + /// Input Numner Point Text + /// + public string InputNumber + { + get { return inputNumber; } + set { inputNumber = value; PropertyChange("InputNumber"); } + } + private List numPadGuidText; + /// + /// Number Pad Input Guide Text + /// + public List NumPadGuidText + { + get { return numPadGuidText; } + set { numPadGuidText = value; PropertyChange("NumPadGuidText"); } + } + + private int numPadMaxLength; + /// + /// Point Pad Input Max Length + /// + public int NumPadMaxLength + { + get { return numPadMaxLength; } + set { numPadMaxLength = value; PropertyChange("NumPadMaxLength"); } + } + private bool numPadFormated = false; + /// + /// NumPad Formated + /// + public bool NumPadFormated + { + get { return numPadFormated; } + set { numPadFormated = value; PropertyChange("NumPadFormated"); } + } + private bool numPadInputVisible = false; + /// + /// Number Pad Points Visible + /// + public bool NumPadInputVisible + { + get { return numPadInputVisible; } + set { numPadInputVisible = value; PropertyChange("NumPadInputVisible"); } + } + private bool numPadGuideVisible = true; + /// + /// Nummber Pad Guid Visible + /// + public bool NumPadGuideVisible + { + get { return numPadGuideVisible; } + set { numPadGuideVisible = value; PropertyChange("NumPadGuideVisible"); } + } + + #endregion + + #region Processing + private bool processingVisible = false; + /// + /// 처리 진행 화면 Visible + /// + public bool ProcessingVisible + { + get { return processingVisible; } + set { processingVisible = value; PropertyChange("ProcessingVisible"); } + } + + private string processingGIF; + /// + /// Processing GIF + /// + public string ProcessingGIF + { + get { return processingGIF; } + set { processingGIF = value; PropertyChange("ProcessingGIF"); } + } + private List processingMessageText; + /// + /// Processing Message Text + /// + public List ProcessingMessageText + { + get { return processingMessageText; } + set { processingMessageText = value; PropertyChange("ProcessingMessageText"); } + } + private List processingGuide; + /// + /// Processing Guide Text + /// + public List ProcessingGuide + { + get { return processingGuide; } + set { processingGuide = value; PropertyChange("ProcessingGuide"); } + } + #endregion + + #region BellOrNotifyTalk + private bool bellOrNotifyTalkVisible = false; + /// + /// 처리 진행 화면 Visible + /// + public bool BellOrNotifyTalkVisible + { + get { return bellOrNotifyTalkVisible; } + set { bellOrNotifyTalkVisible = value; PropertyChange("BellOrNotifyTalkVisible"); } + } + private string bellOrNotifyTalkTitileImage; + /// + /// BellOrNotifyTalk Titile Image + /// + public string BellOrNotifyTalkTitileImage + { + get { return bellOrNotifyTalkTitileImage; } + set { bellOrNotifyTalkTitileImage = value; PropertyChange("BellOrNotifyTalkTitileImage"); } + } + private List bellOrNotifyTalkText; + /// + /// Bell Button Text + /// + public List BellOrNotifyTalkText + { + get { return bellOrNotifyTalkText; } + set { bellOrNotifyTalkText = value; PropertyChange("BellOrNotifyTalkText"); } + } + private bool bellButtonEnable = false; + /// + /// Bell Button Enable + /// + public bool BellButtonEnable + { + get { return bellButtonEnable; } + set { bellButtonEnable = value; PropertyChange("BellButtonEnable"); } + } + private List bellButtonText; + /// + /// Bell Button Text + /// + public List BellButtonText + { + get { return bellButtonText; } + set { bellButtonText = value; PropertyChange("BellButtonText"); } + } + private bool talkButtonEnable = true; + /// + /// Talk Button Enable + /// + public bool TalkButtonEnable + { + get { return talkButtonEnable; } + set { talkButtonEnable = value; PropertyChange("TalkButtonEnable"); } + } + private List talkButtonText; + /// + /// Talk Button Text + /// + public List TalkButtonText + { + get { return talkButtonText; } + set { talkButtonText = value; PropertyChange("TalkButtonText"); } + } + private string talkNumPadNumber = string.Empty; + /// + /// TalkNumPad Number + /// + public string TalkNumPadNumber + { + get { return talkNumPadNumber; } + set { talkNumPadNumber = value; PropertyChange("TalkNumPadNumber"); } + } + private List talkNumPadGuidText; + /// + /// Number Pad Input Guide Text + /// + public List TalkNumPadGuidText + { + get { return talkNumPadGuidText; } + set { talkNumPadGuidText = value; PropertyChange("TalkNumPadGuidText"); } + } + + private int talkNumPadMaxLength; + /// + /// Point Pad Input Max Length + /// + public int TalkNumPadMaxLength + { + get { return talkNumPadMaxLength; } + set { talkNumPadMaxLength = value; PropertyChange("TalkNumPadMaxLength"); } + } + private bool talkNumPadFormated = true; + /// + /// TalkNumPad Guide Visible + /// + public bool TalkNumPadFormated + { + get { return talkNumPadFormated; } + set { talkNumPadFormated = value; PropertyChange("TalkNumPadFormated"); } + } + private bool talkNumPadInputVisible = false; + /// + /// TalkNumPad InputNumber Visible + /// + public bool TalkNumPadInputVisible + { + get { return talkNumPadInputVisible; } + set { talkNumPadInputVisible = value; PropertyChange("TalkNumPadInputVisible"); } + } + private bool talkNumPadGuideVisible = true; + /// + /// TalkNumPad Guide Visible + /// + public bool TalkNumPadGuideVisible + { + get { return talkNumPadGuideVisible; } + set { talkNumPadGuideVisible = value; PropertyChange("TalkNumPadGuideVisible"); } + } + + #endregion + + #region PaymentSuccess + private bool paymentSuccessVisible = false; + + /// + /// 처리 완료 화면 Visible + /// + public bool PaymentSuccessVisible + { + get { return paymentSuccessVisible; } + set { paymentSuccessVisible = value; PropertyChange("PaymentSuccessVisible"); } + } + private string successImage; + /// + /// Sucess Icon + /// + public string SuccessImage + { + get { return successImage; } + set { successImage = value; PropertyChange("SuccessImage"); } + } + private List successText; + /// + /// Sucess Guide Text + /// + public List SuccessText + { + get { return successText; } + set { successText = value; PropertyChange("SuccessText"); } + } + + #endregion + + #region TalkSuccess + private bool talkSuccessVisible = false; + + /// + /// 처리 완료 화면 Visible + /// + public bool TalkSuccessVisible + { + get { return talkSuccessVisible; } + set { talkSuccessVisible = value; PropertyChange("TalkSuccessVisible"); } + } + private string talkSuccessImage; + /// + /// Sucess Icon + /// + public string TalkSuccessImage + { + get { return talkSuccessImage; } + set { talkSuccessImage = value; PropertyChange("TalkSuccessImage"); } + } + private List talkSuccessText; + /// + /// Sucess Guide Text + /// + public List TalkSuccessText + { + get { return talkSuccessText; } + set { talkSuccessText = value; PropertyChange("TalkSuccessText"); } + } + private List talkSuccessInfoText; + /// + /// Sucess Guide Text + /// + public List TalkSuccessInfoText + { + get { return talkSuccessInfoText; } + set { talkSuccessInfoText = value; PropertyChange("TalkSuccessInfoText"); } + } + #endregion + + #region WaitNumberSuccess + private bool waitNumberSuccessVisible = false; + + /// + /// 처리 완료 화면 Visible + /// + public bool WaitNumberSuccessVisible + { + get { return waitNumberSuccessVisible; } + set { waitNumberSuccessVisible = value; PropertyChange("WaitNumberSuccessVisible"); } + } + private List waitNumberHeaderText; + /// + /// Sucess Guide Text + /// + public List WaitNumberHeaderText + { + get { return waitNumberHeaderText; } + set { waitNumberHeaderText = value; PropertyChange("WaitNumberHeaderText"); } + } + private string waitNumberText; + /// + /// Sucess Guide Text + /// + public string WaitNumberText + { + get { return waitNumberText; } + set { waitNumberText = value; PropertyChange("WaitNumberText"); } + } + private List successInfoText; + /// + /// Sucess Guide Text + /// + public List SuccessInfoText + { + get { return successInfoText; } + set { successInfoText = value; PropertyChange("SuccessInfoText"); } + } + + /// + /// Point Saving Button OK + /// + private bool pointSavingButtonOk = false; + + public bool PointSavingButtonOk + { + get { return pointSavingButtonOk; } + set { pointSavingButtonOk = value; PropertyChange("PointSavingButtonOk"); } + } + + /// + /// Point Saving Button Background + /// + private string pointSavingButtonBackground; + + public string PointSavingButtonBackground + { + get { return pointSavingButtonBackground; } + set { pointSavingButtonBackground = value; PropertyChange("PointSavingButtonBackground"); } + } + + /// + /// Point Image + /// + private string waitNumberSuccessPointImage; + + public string WaitNumberSuccessPointImage + { + get { return waitNumberSuccessPointImage; } + set { waitNumberSuccessPointImage = value; PropertyChange("WaitNumberSuccessPointImage"); } + } + + #endregion + + private PaymentEndWindowEndType endWindow = PaymentEndWindowEndType.None; + public PaymentEndWindowEndType EndWindow + { + get { return endWindow; } + set { endWindow = value; PropertyChange("EndWindow"); } + } + private PaymentEndWindowType paymentEndWindow = PaymentEndWindowType.None; + /// + /// Current View Window + /// + public PaymentEndWindowType PaymentEndWindow + { + get { return paymentEndWindow; } + set { paymentEndWindow = value; PropertyChange("PaymentEndWindow"); } + } + private bool bellAnsTalkToggleVisible = true; + public bool BellAnsTalkToggleVisible + { + get { return bellAnsTalkToggleVisible; } + set { bellAnsTalkToggleVisible = value; PropertyChange("BellAnsTalkToggleVisible"); } + } + + + private double popupWidth = 1300; + /// + /// Popup Whidth (For Calculate OK Button Width) + /// + public double PopupWidth + { + get { return popupWidth; } + set { popupWidth = value; PropertyChange("PopupWidth"); } + } + private M_PaymentEndReturn paymentEndReturn; + /// + /// HappyPoint 인증 정보 + /// + public M_PaymentEndReturn PaymentEndReturn + { + get { return paymentEndReturn; } + set { paymentEndReturn = value; PropertyChange("PaymentEndReturn"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + /// + /// Cancel Click Command + /// + public ICommand CancelCommand { get; protected set; } + /// + /// Cash Type Person Command + /// + public ICommand CashTypePersonCommand { get; protected set; } + /// + /// Cash Type Company Command + /// + public ICommand CashTypeCompanyCommand { get; protected set; } + /// + /// Bell Button Command + /// + public ICommand BellButtonCommand { get; protected set; } + /// + /// Talk Button Command + /// + public ICommand TalkButtonCommand { get; protected set; } + /// + /// Store Agree Command + /// + public ICommand StoreAgreeCommand { get; protected set; } + /// + /// Point Saving Button Command + /// + public ICommand PointSavingButtonCommand { get; protected set; } + /// + /// Talk Get Button Command + /// + public ICommand TalkGetButtonCommand { get; protected set; } + /// + /// All Points Using Click Command + /// + public bool ImmediatelyClose { get; protected set; } = false; + /// + /// Happy Point Reserve + /// + public bool HappyPointReserve { get; set; } + /// + /// OkCashBag Reserve + /// + public bool OkCashBagReserve { get; set; } + private M_HappyPointReturn happyPointReturn; + /// + /// Happy Point Return + /// + public M_HappyPointReturn HappyPointReturn + { + get { return happyPointReturn; } + set { happyPointReturn = value; PropertyChange("HappyPointReturn"); } + } + + private bool ProcessStart = false; + private posLastPayments LastPayments = null; + private Task ProcessTask = null; + private string certifyKey = string.Empty; + private string divType = "0"; // "0"=개인(소득공제) ,"1"=사업자(증빙제출) + + #endregion Members + + + #region [ Ctor ] + /// + /// Ctor + /// + public VmPaymentsEnd() + { + posDataService = new PosDataService(); + WaitWindowFrom = WaitWindow.GetInstance; + WaitWindowFrom.CloseWaitWindow(); + OkCommand = new Command(OkCommandHandler); + CancelCommand = new Command(CancelCommandHandler); + CashTypePersonCommand = new Command(CashTypePersonCommandHandler); + CashTypeCompanyCommand = new Command(CashTypeCompanyCommandHandler); + BellButtonCommand = new Command(BellButtonCommandHandler); + TalkButtonCommand = new Command(TalkButtonCommandHandler); + StoreAgreeCommand = new Command(StoreAgreeCommandHandler); + PointSavingButtonCommand = new Command(PointSavingCommandHandler); + TalkGetButtonCommand = new Command(TalkGetCommandHandler); + this.PropertyChanged += VmPaymentsEnd_PropertyChanged; + //TitileImage = ResourceManager.GetNximagePathAdd("img_gif_barcode_happy.gif", CommonValue.PBdesignImagesPath); + CashReceipTitileImage = ResourceManager.GetNximagePathAdd("img_cashreceipt.png", CommonValue.PBdesignImagesPath); + CashReceipButtonBackground = ResourceManager.GetNximagePathAdd("img_check_bg.png", CommonValue.PBdesignImagesPath); + CashTypePersonButtonNormal = ResourceManager.GetNximagePathAdd("btn_check_n.png", CommonValue.PBdesignImagesPath); + CashTypePersonButtonDisable = ResourceManager.GetNximagePathAdd("btn_check_s.png", CommonValue.PBdesignImagesPath); + CashTypeCompanyButtonNormal = ResourceManager.GetNximagePathAdd("btn_check_n.png", CommonValue.PBdesignImagesPath); + CashTypeCompanyButtonDisable = ResourceManager.GetNximagePathAdd("btn_check_s.png", CommonValue.PBdesignImagesPath); + ProcessingGIF = ResourceManager.GetNximagePathAdd("ic_alert_ing2.gif", CommonValue.PBdesignImagesPath); + SuccessImage = ResourceManager.GetNximagePathAdd("img_receipt.png", CommonValue.PBdesignImagesPath); + TalkSuccessImage = ResourceManager.GetNximagePathAdd("ic_talk.png", CommonValue.PBdesignImagesPath); + + OkButtonText = Languages.GetMessages("BTN0033"); + CancelButtonText = Languages.GetMessages("BTN0024"); + CashTypePersonText = Languages.GetMessages("BTN0002"); + CashTypeCompanyText = Languages.GetMessages("BTN0017"); + SuccessText = Languages.GetMessages("LBL0030"); + SuccessInfoText = Languages.GetMessages("LBL0076"); + TalkSuccessText = Languages.GetMessages("LBL0075"); + TalkSuccessInfoText = Languages.GetMessages("LBL0076"); + ProcessingMessageText = Languages.GetMessages("LBL0087"); + ProcessingGuide = Languages.GetMessages("LBL0028"); + NumPadFormated = true; + NumPadMaxLength = 11; + NumPadGuidText = Languages.GetMessages("LBL0091"); + + BellOrNotifyTalkTitileImage = ResourceManager.GetNximagePathAdd("img_bell.png", CommonValue.PBdesignImagesPath); + BellOrNotifyTalkText = Languages.GetMessages("LBL0078"); + TalkNumPadFormated = false; + TalkNumPadMaxLength = 3; + TalkNumPadGuidText = Languages.GetMessages("LBL0104"); + TotalPayHeaderText = Languages.GetMessages("PriceForPayment"); + LastPayments = new posLastPayments(); + + WaitNumberSuccessPointImage = ResourceManager.GetNximagePathAdd("ic_point.png", CommonValue.PBdesignImagesPath); + PointSavingButtonBackground = ResourceManager.GetNximagePathAdd("btn_store.png", CommonValue.PBdesignImagesPath); + } + + /// + /// Dispose + /// + public new void Dispose() + { + TitileImage = string.Empty; + ProcessingGIF = string.Empty; + this.PropertyChanged -= VmPaymentsEnd_PropertyChanged; + if (posDataService != null) + { + posDataService.LastBarcodeDelete(); + posDataService.Dispose(); + posDataService = null; + } + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + if (LastPayments != null) + { + CashReceiptRemoveEvents(); + LastPayments.Dispose(); + LastPayments = null; + } + base.Dispose(); + } + #endregion Ctor + + + #region [ Methods ] + private void SetStoreAgreeData() + { + var isFavoriteStore = HappyPointReturn is M_HappyPointReturn + ? HappyPointReturn.IsFavoriteStore + : false; + StoreAgreeData = new M_StoreAgree + { + IsFavoriteStore = isFavoriteStore, + DisplayLanguage = ShowLanguageType, + Header = isFavoriteStore + ? new List + { + new M_Language { Type=SupportLanguageType.ko, LanguageData="단골매장"} + } + : Languages.GetMessages("LBL0039"), + BackgroundImage = ResourceManager.GetNximagePathAdd("store_bg.png", CommonValue.PBdesignImagesPath), + StoreImage = ResourceManager.GetNximagePathAdd("ic_store.png", CommonValue.PBdesignImagesPath), + StoreName = posDataService != null ? posDataService.StoreName() : string.Empty, + FirstInfoText = Languages.GetMessages("LBL0040"), + SecondInfoText = Languages.GetMessages("LBL0019"), + WelcomeInfoText = new List + { + new M_Language { Type=SupportLanguageType.ko, LanguageData="고객님 저희 매장을 방문해 주셔서 감사합니다."} + }, + ButtonNormalBrush = ResourceManager.GetNximagePathAdd("btn_store_agree_n2.png", CommonValue.PBdesignImagesPath), + ButtonSwitchOnBrush = "Transparent", + ButtonText = Languages.GetMessages("BTN0010"), + }; + } + private void TestDelay() + { + Thread.Sleep(1000); + } + + + private void CashReceiptCreateEvents() + { + if (LastPayments != null) + { + LastPayments.ReadStart += LastPayments_ReadStart; + LastPayments.ReadEnd += LastPayments_ReadEnd; + } + } + + + private void CashReceiptRemoveEvents() + { + if (LastPayments != null) + { + LastPayments.ReadStart -= LastPayments_ReadStart; + LastPayments.ReadEnd -= LastPayments_ReadEnd; + } + } + + + private void DoCashReceiptProcessing() + { + + ProcessStart = true; + TimerEnabled = false; + CashReceiptCreateEvents(); + var processTask = new Task(() => LastPayments.StartCashBill(InputNumber,divType,CashPayments,CashTax)); + processTask.Start(); + processTask.Wait(); + DoBeforeReceiptPrint(); + CashReceiptRemoveEvents(); + processTask = null; + ProcessStart = false; + TimerEnabled = true; + } + private void DoNewMemberRequest() + { + ProcessStart = true; + TimerEnabled = false; + WaitWindowFrom.ShowWaitWindow(); + + var korItemName = BasketData.FirstOrDefault().ItemName.GetLanguageData(SupportLanguageType.ko); + var itemCount = BasketData.Sum(r => r.Count).ToString(); + //TODO:비회원 입력 전화 번호 처리 (InputNumber) + using (var commonDataHelper = new DataHelper.CommonDataHelper()) + { + commonDataHelper.Send_NoticeTalk(InputNumber, korItemName, itemCount); + } + + // test + //DoReceiptPrint(); + + //TestDelay(); + WaitWindowFrom.CloseWaitWindow(); + ProcessStart = false; + CanWindowClose = true; + + } + private void DoRegFavoriteStore()//DoRegFavoriteStore + { + ProcessStart = true; + TimerEnabled = false; + WaitWindowFrom.ShowWaitWindow(); + using (var PosHappyPoint = new posHappyPoint()) + { + PosHappyPoint.StartFavoriteStoreProcess(happyPointReturn.MemberCode, true); + } + WaitWindowFrom.CloseWaitWindow(); + ProcessStart = false; + CanWindowClose = true; + } + + private void DoBeforeReceiptPrint() + { + switch (EndWindow) + { + case PaymentEndWindowEndType.Talk: + TalkButtonEnable = false; + PaymentEndWindow = PaymentEndWindowType.BellOrNotifyTalk; + break; + case PaymentEndWindowEndType.Bell: + BellButtonEnable = false; + PaymentEndWindow = PaymentEndWindowType.BellOrNotifyTalk; + break; + default: + DoReceiptPrint(); + break; + } + } + + + private void DoAfterReceiptPrint() + { + switch (EndWindow) + { + case PaymentEndWindowEndType.None: + PaymentEndWindow = PaymentEndWindowType.PaymentSuccess; + break; + case PaymentEndWindowEndType.Bell: + PaymentEndWindow = PaymentEndWindowType.WaitNumberSuccess; + break; + case PaymentEndWindowEndType.Talk: + if (string.IsNullOrEmpty(TalkNumPadNumber)) + { + PaymentEndWindow = PaymentEndWindowType.WaitNumberSuccess; + } + else + { + PaymentEndWindow = PaymentEndWindowType.TalkSuccess; + } + break; + case PaymentEndWindowEndType.WaitNumber: + PaymentEndWindow = PaymentEndWindowType.WaitNumberSuccess; + break; + default: + PaymentEndWindow = PaymentEndWindowType.PaymentSuccess; + break; + } + } + + + private void DoReceiptPrint() + { + var waitNumber = string.Empty; + var bellNo = EndWindow.Equals(PaymentEndWindowEndType.Bell) + ? TalkNumPadNumber + : string.Empty; + var isTalk = EndWindow.Equals(PaymentEndWindowEndType.Talk); + using (var ps = new PosDataService()) waitNumber=ps.PrintReceipt(bellNo, isTalk, HappyPointReserve,OkCashBagReserve); + if (!string.IsNullOrEmpty(waitNumber)) WaitNumberText = waitNumber; + DoAfterReceiptPrint(); + + } + + + #endregion Methods + + + #region [ Event Handlers ] + private void CashTypePersonCommandHandler(object obj) + { + CashTypePersonEnable = false; + } + private void CashTypeCompanyCommandHandler(object obj) + { + CashTypeCompanyEnable = false; + } + private void BellButtonCommandHandler(object obj) + { + + BellButtonEnable = false; + + } + private void TalkButtonCommandHandler(object obj) + { + TalkButtonEnable = false; + } + + private void PointSavingCommandHandler(object obj) + { + PointSavingButtonOk = true; + } + + private void TalkGetCommandHandler(object obj) + { + //Console.WriteLine("알림톡 받기"); + DoNewMemberRequest(); + CanWindowClose = true; + } + + private void CancelCommandHandler(object obj) + { + switch (PaymentEndWindow) + { + case PaymentEndWindowType.CashReceipt: + certifyKey = InputNumber; + divType = CashTypeCompanyEnable ? "0" : "1"; + PaymentEndWindow = PaymentEndWindowType.Processing; + break; + case PaymentEndWindowType.PaymentSuccess: + case PaymentEndWindowType.WaitNumberSuccess: + case PaymentEndWindowType.TalkSuccess: + CanWindowClose = true; + break; + } + } + private void OkCommandHandler(object obj) + { + switch (PaymentEndWindow) + { + case PaymentEndWindowType.CashReceipt: + PaymentEndWindow = PaymentEndWindowType.Processing; + break; + case PaymentEndWindowType.BellOrNotifyTalk: + DoReceiptPrint(); + break; + case PaymentEndWindowType.PaymentSuccess: + case PaymentEndWindowType.WaitNumberSuccess: + case PaymentEndWindowType.TalkSuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + + break; + } + } + + + private void StoreAgreeCommandHandler(object obj) + { + if (ProcessTask != null) ProcessTask.Wait(); + if (HappyPointReturn is M_HappyPointReturn) + { + DoRegFavoriteStore(); + } + else + { + CanWindowClose = true; + } + } + + private void LastPayments_ReadStart(object sender) + { + TimerEnabled = false; + ProcessStart = true; + } + private void LastPayments_ReadEnd(object sender) + { + ProcessStart = false; + } + private void VmPaymentsEnd_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + try + { + switch (e.PropertyName) + { + + case "IsTimeout": + if (IsTimeout) + { + switch (PaymentEndWindow) + { + case PaymentEndWindowType.CashReceipt: + InputNumber = string.Empty; + PaymentEndWindow = PaymentEndWindowType.Processing; + break; + case PaymentEndWindowType.BellOrNotifyTalk: + TalkNumPadNumber = string.Empty; + DoReceiptPrint(); + break; + case PaymentEndWindowType.PaymentSuccess: + case PaymentEndWindowType.WaitNumberSuccess: + case PaymentEndWindowType.TalkSuccess: + if (ProcessTask != null) ProcessTask.Wait(); + CanWindowClose = true; + break; + } + } + break; + case "HappyPointReturn": + StoreAgreeView = HappyPointReturn is M_HappyPointReturn; + SetStoreAgreeData(); + break; + case "EndWindow": + switch (EndWindow) + { + case PaymentEndWindowEndType.Bell: + BellAnsTalkToggleVisible = !CommonValue.DisableEndType.Equals(PaymentEndWindowEndType.Talk); + break; + case PaymentEndWindowEndType.Talk: + BellAnsTalkToggleVisible = !CommonValue.DisableEndType.Equals(PaymentEndWindowEndType.Bell); + break; + } + break; + case "PaymentEndWindow": + CashReceiptVisible = false; + ProcessingVisible = false; + BellOrNotifyTalkVisible = false; + PaymentSuccessVisible = false; + WaitNumberSuccessVisible = false; + TalkSuccessVisible = false; + switch (PaymentEndWindow) + { + case PaymentEndWindowType.CashReceipt: + CashReceiptVisible = true; + break; + case PaymentEndWindowType.Processing: + ProcessingVisible = true; + break; + case PaymentEndWindowType.BellOrNotifyTalk: + BellOrNotifyTalkVisible = true; + break; + case PaymentEndWindowType.PaymentSuccess: + PaymentSuccessVisible = true; + break; + case PaymentEndWindowType.WaitNumberSuccess: + WaitNumberSuccessVisible = true; + break; + case PaymentEndWindowType.TalkSuccess: + TalkSuccessVisible = true; + break; + } + break; + case "CashReceiptVisible": + if (CashReceiptVisible) + { + using (var ps = new PosDataService()) ps.GetCashBill(ref cashPayments, ref cashTax); + if (CashPayments.Equals(0)) + { + DoBeforeReceiptPrint(); + } + else + { + HeaderText = Languages.GetMessages("LBL0139"); + ScanGuidText = Languages.GetMessages("LBL0053"); + InfoGuid1Text = Languages.GetMessages("LBL0009"); + InfoGuid2Text = Languages.GetMessages("LBL0010"); + CancelButtonWidth = PopupWidth / 2; + OKButtonWidth = PopupWidth / 2; + OKButtonEnabled = false; + CancelButtonText = Languages.GetMessages("BTN0033"); + OkButtonText = Languages.GetMessages("BTN0024"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + } + break; + + case "ProcessingVisible": + if (ProcessingVisible) + { + HeaderText = Languages.GetMessages("LBL0139"); + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = 0d; + if (ProcessTask != null) + { + ProcessTask.Dispose(); + ProcessTask = null; + } + ProcessTask = new Task(DoCashReceiptProcessing); + ProcessTask.Start(); + } + break; + case "BellOrNotifyTalkVisible": + if (BellOrNotifyTalkVisible) + { + HeaderText = Languages.GetMessages("LBL0029"); + ScanGuidText = Languages.GetMessages("LBL0074"); + InfoGuid1Text = Languages.GetMessages("LBL0011"); + InfoGuid2Text = Languages.GetMessages("LBL0005"); + CancelButtonWidth = 0d; + OKButtonWidth = PopupWidth; + OKButtonEnabled = false; + OkButtonText = Languages.GetMessages("BTN0024"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "PaymentSuccessVisible": + if (PaymentSuccessVisible) + { + InputNumber = string.Empty; + HeaderText = Languages.GetMessages("LBL0029"); + ScanGuidText = new List(); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0039"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + case "WaitNumberSuccessVisible": + if (WaitNumberSuccessVisible) + { + InputNumber = string.Empty; + HeaderText = Languages.GetMessages("LBL0029"); + ScanGuidText = Languages.GetMessages("LBL0093"); + WaitNumberHeaderText = Languages.GetMessages("LBL0041"); + if (EndWindow.Equals(PaymentEndWindowEndType.Bell) + && !string.IsNullOrEmpty(TalkNumPadNumber)) + { + WaitNumberHeaderText = Languages.GetMessages("LBL0103"); + + WaitNumberText = TalkNumPadNumber; + } + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0039"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + + } + break; + case "TalkSuccessVisible": + if (TalkSuccessVisible) + { + InputNumber = string.Empty; + HeaderText = Languages.GetMessages("LBL0029"); + ScanGuidText = Languages.GetMessages("LBL0093"); + InfoGuid1Text = new List(); + InfoGuid2Text = new List(); + CancelButtonWidth = 0d; + OKButtonWidth = PopupWidth; + OKButtonEnabled = true; + OkButtonText = Languages.GetMessages("BTN0039"); + TimeOutSeconds = CommonValue.TimeOutSeconds; + } + break; + + case "NumPadInputVisible": + NumPadGuideVisible = !NumPadInputVisible; + break; + case "InputNumber": + NumPadInputVisible = InputNumber.Length > 0; + switch (PaymentEndWindow) + { + case PaymentEndWindowType.CashReceipt: + if (!CashTypePersonEnable) + { + OKButtonEnabled = InputNumber.Length.Equals(10) || InputNumber.Length.Equals(11); + } + if (!CashTypeCompanyEnable) + { + OKButtonEnabled = InputNumber.Length.Equals(10); + } + break; + case PaymentEndWindowType.PaymentSuccess: + case PaymentEndWindowType.WaitNumberSuccess: + case PaymentEndWindowType.TalkSuccess: + TalkGetButtonEnabled = InputNumber.Length.Equals(10) || InputNumber.Length.Equals(11); + break; + default: + OKButtonEnabled = InputNumber.Length.Equals(10) || InputNumber.Length.Equals(11); + break; + } + break; + case "TalkNumPadInputVisible": + TalkNumPadGuideVisible = !TalkNumPadInputVisible; + break; + case "TalkNumPadNumber": + TalkNumPadInputVisible = TalkNumPadNumber.Length > 0; + if (!BellButtonEnable) + { + OKButtonEnabled = TalkNumPadNumber.Length > 0; + } + if (!TalkButtonEnable) + { + OKButtonEnabled = TalkNumPadNumber.Length.Equals(10) || TalkNumPadNumber.Length.Equals(11); + } + break; + case "CashTypePersonEnable": + if (!CashTypePersonEnable) + { + NumPadFormated = true; + NumPadMaxLength = 11; + NumPadGuidText = Languages.GetMessages("LBL0091"); + InputNumber = string.Empty; + CashTypeCompanyEnable = true; + } + break; + case "CashTypeCompanyEnable": + if (!CashTypeCompanyEnable) + { + NumPadFormated = false; + NumPadMaxLength = 10; + NumPadGuidText = Languages.GetMessages("LBL0056"); + InputNumber = string.Empty; + CashTypePersonEnable = true; + } + break; + case "BellButtonEnable": + if (!BellButtonEnable) + { + EndWindow = PaymentEndWindowEndType.Bell; + TalkNumPadFormated = true; + TalkNumPadMaxLength = 3; + TalkNumPadGuidText = Languages.GetMessages("LBL0104"); + BellOrNotifyTalkTitileImage = ResourceManager.GetNximagePathAdd("img_bell.png", CommonValue.PBdesignImagesPath); + BellOrNotifyTalkText = Languages.GetMessages("LBL0078"); + TalkNumPadNumber = string.Empty; + TalkButtonEnable = true; + } + break; + case "TalkButtonEnable": + if (!TalkButtonEnable) + { + EndWindow = PaymentEndWindowEndType.Talk; + TalkNumPadFormated = true; + TalkNumPadMaxLength = 11; + TalkNumPadGuidText = Languages.GetMessages("LBL0091"); + BellOrNotifyTalkTitileImage = ResourceManager.GetNximagePathAdd("img_talk.png", CommonValue.PBdesignImagesPath); + BellOrNotifyTalkText = Languages.GetMessages("LBL0036"); + TalkNumPadNumber = string.Empty; + BellButtonEnable = true; + } + break; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "VmPaymentsEnd_PropertyChanged()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmStepInfoPopup.cs b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmStepInfoPopup.cs new file mode 100644 index 0000000..2196e35 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup.ViewModel/VmStepInfoPopup.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Input; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup.ViewModel +{ + /// + /// CallEmployee.xaml 의 ViewModel + /// + public class VmStepInfoPopup : PopupViewModelBase + { + #region [ Members ] + + public string StepIamge { get; set; } = ResourceManager.GetNximagePathAdd("step.gif", CommonValue.PBdesignImagesPath); + + private List okButtonText; + /// + /// OK Button Text + /// + public List OkButtonText + { + get { return okButtonText; } + set { okButtonText = value; PropertyChange("OkButtonText"); } + } + private double okButtonWidth = 800d; + /// + /// OK Button Width + /// + public double OkButtonWidth + { + get { return okButtonWidth; } + set { okButtonWidth = value; PropertyChange("OkButtonWidth"); } + } + /// + /// OK Click Command + /// + public ICommand OkCommand { get; protected set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public VmStepInfoPopup() + { + OkCommand = new Command(OkCommandHandler); + this.PropertyChanged += VmStepInfoPopup_PropertyChanged; + OkButtonText = Languages.GetMessages("BTN0039"); + TimeOutSeconds = 10d; + } + ~VmStepInfoPopup() + { + this.PropertyChanged -= VmStepInfoPopup_PropertyChanged; + } + #endregion Ctor + + #region [ Methods ] + #endregion Methods + + #region [ Event Handlers ] + + private void OkCommandHandler(object obj) + { + TimerEnabled = false; + + ReturnValue = new M_PopupReturn + { + OKAnswer = true, + TimeOut = false, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + + } + + private void VmStepInfoPopup_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "IsTimeout": + if (IsTimeout) + { + ReturnValue = new M_PopupReturn + { + OKAnswer = false, + TimeOut = true, + ReturnLanguage = ShowLanguageType, + PopupArgs = null + }; + CanWindowClose = true; + } + break; + } + } + + + #endregion Event Handlers + } +} \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml new file mode 100644 index 0000000..15af5b9 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml.cs new file mode 100644 index 0000000..f6b938c --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/CallEmployee.xaml.cs @@ -0,0 +1,130 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; + +namespace SPC.Kiosk.Popup +{ + /// + /// CallEmployee.xaml에 대한 상호 작용 논리 + /// + public partial class CallEmployee : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmCallEmployee ViewModel { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public CallEmployee() + { + InitializeComponent(); + this.ContentRendered += CallEmployee_ContentRendered; + this.Loaded += CallEmployee_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= CallEmployee_ContentRendered; + this.Loaded -= CallEmployee_Loaded; + this.Close(); + } + + private void CallEmployee_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void CallEmployee_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmCallEmployee viewModel) + { + ViewModel = viewModel; + ViewModel.PropertyChanged += ViewModel_PropertyChanged; + ViewModel.IsTimeoutPopup = false; + } + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + } + } + + + + + + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml new file mode 100644 index 0000000..799e638 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml.cs new file mode 100644 index 0000000..e8ca724 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupon.xaml.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup +{ + /// + /// DiscountAndValue.xaml에 대한 상호 작용 논리 + /// + public partial class HappyAppCoupon : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty ItemDataProperty = + DependencyProperty.Register(nameof(ItemData), typeof(M_HappyCoupon), typeof(HappyAppCoupon), new PropertyMetadata(new M_HappyCoupon(), new PropertyChangedCallback(OnItemDataPropertyChanged))); + + private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as HappyAppCoupon; + } + + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(HappyAppCoupon), new PropertyMetadata(SupportLanguageType.ko)); + /// + /// Button Switch + /// + public static readonly DependencyProperty SwitchPropery = + DependencyProperty.Register(nameof(Switch), typeof(bool), typeof(HappyAppCoupon), new PropertyMetadata(false, new PropertyChangedCallback(OnSwitchProperyChanged))); + /// + /// Button Switch + /// + public bool Switch + { + get { return (bool)GetValue(SwitchPropery); } + set { SetValue(SwitchPropery, value);} + + } + /// + /// ItemData + /// + public M_HappyCoupon ItemData + { + get { return (M_HappyCoupon)GetValue(ItemDataProperty); } + set { SetValue(ItemDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Button NormalBrush + /// + public string ButtonNormalBrush { get; set; } + public string ButtonDownBrush { get; set; } + public string ButtonSwitchOnBrush { get; set; } + public string ButtonDisableBrush { get; set; } + + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(HappyAppCoupon)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public HappyAppCoupon() + { + ButtonNormalBrush = ResourceManager.GetNximagePathAdd("btn_coupon_n.png", CommonValue.PBdesignImagesPath); + ButtonDownBrush = ResourceManager.GetNximagePathAdd("btn_coupon_p.png", CommonValue.PBdesignImagesPath); + ButtonSwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_coupon_s.png", CommonValue.PBdesignImagesPath); + ButtonDisableBrush = ResourceManager.GetNximagePathAdd("btn_coupon_d.png", CommonValue.PBdesignImagesPath); + InitializeComponent(); + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(HappyAppCoupon.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnSwitchProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as HappyAppCoupon; + target.OptionButton.Switch = (bool)e.NewValue; + } + + private void OptionButton_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(this.ItemData); + + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml new file mode 100644 index 0000000..6e1a621 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml.cs new file mode 100644 index 0000000..fd1a1cf --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyAppCoupons.xaml.cs @@ -0,0 +1,314 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup +{ + /// + /// MiniBasketItem.xaml에 대한 상호 작용 논리 + /// + public partial class HappyAppCoupons : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty CouponDataProperty = + DependencyProperty.Register(nameof(CouponData), typeof(List), typeof(HappyAppCoupons), new PropertyMetadata(null, new PropertyChangedCallback(OnCouponDataPropertyChanged))); + + + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(HappyAppCoupons), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Vertical Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(HappyAppCoupons), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(HappyAppCoupons), new UIPropertyMetadata(null)); + + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// Vertical Scroll Offset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + + /// + /// ItemData + /// + public List CouponData + { + get { return (List)GetValue(CouponDataProperty); } + set { SetValue(CouponDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + #region [ RoutedEvent 'CouponSelect' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent CouponSelectEvent = EventManager.RegisterRoutedEvent(nameof(CouponSelect), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(HappyAppCoupons)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler CouponSelect + { + add { AddHandler(CouponSelectEvent, value); } + remove { RemoveHandler(CouponSelectEvent, value); } + } + #endregion RoutedEvent 'SelectChange' + private double mouseDownYposition = -1; + private bool MoseDown = false; + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public HappyAppCoupons() + { + InitializeComponent(); + CouponGrid.PreviewMouseDown += CouponGrid_PreviewMouseDown; + CouponGrid.PreviewMouseUp += CouponGrid_PreviewMouseUp; + CouponGrid.PreviewMouseMove += CouponGrid_PreviewMouseMove; + CouponGrid.MouseLeave += CouponGrid_MouseLeave; + + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseCouponSelectEvent(object _sender) + { + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(HappyAppCoupons.CouponSelectEvent, _sender); + RaiseEvent(newEventArgs); + } + private void SetCouponStack(List newValue) + { + foreach (var aGrid in CouponStack.Children) + { + if (aGrid is Grid aCoupons) + { + foreach (var aStack in aCoupons.Children) + { + if (aStack is StackPanel aItems) + { + foreach (var aItem in aItems.Children) + { + if (aItem is HappyAppCoupon aCoupon) + { + aCoupon.MouseClicked -= ACoupon_MouseClicked; + } + } + aItems.Children.Clear(); + } + } + aCoupons.Children.Clear(); + } + } + CouponStack.Children.Clear(); + if (newValue.Count.Equals(0)) return; + var index = 0; + Grid lineGrid = null; + StackPanel lineStack = null; + foreach (var aCouponDetail in newValue) + { + var newCoupon = new HappyAppCoupon + { + ItemData = aCouponDetail, + DisplayLanguage = this.DisplayLanguage + }; + if ((index % 3).Equals(0)) + { + lineGrid = new Grid + { + VerticalAlignment = VerticalAlignment.Top, + HorizontalAlignment = HorizontalAlignment.Left, + Width = newCoupon.Width * 3, + Height = newCoupon.Height, + }; + lineStack = new StackPanel + { + VerticalAlignment = VerticalAlignment.Top, + HorizontalAlignment = HorizontalAlignment.Left, + Orientation = Orientation.Horizontal, + }; + + } + newCoupon.MouseClicked += ACoupon_MouseClicked; + newCoupon.Name = string.Format("HappyAppCoupon{0}", index); + this.ReregisterName(newCoupon.Name, newCoupon); + lineStack.Children.Add(newCoupon); + index++; + if ((index % 3).Equals(0)) + { + lineGrid.Children.Add(lineStack); + CouponStack.Children.Add(lineGrid); + } + } + if (!(index % 3).Equals(0)) + { + lineGrid.Children.Add(lineStack); + CouponStack.Children.Add(lineGrid); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void ACoupon_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is HappyAppCoupon selectCoupon) + { + foreach (var aGrid in CouponStack.Children) + { + if (aGrid is Grid aCoupons) + { + foreach (var aStack in aCoupons.Children) + { + if (aStack is StackPanel aItems) + { + foreach (var aItem in aItems.Children) + { + if (aItem is HappyAppCoupon aCoupon) + { + if (aCoupon.Name.Equals(selectCoupon.Name)) + { + aCoupon.ItemData.IsUsed = !aCoupon.ItemData.IsUsed; + selectCoupon.Switch = aCoupon.ItemData.IsUsed; + } + else + { + aCoupon.Switch = false; + aCoupon.ItemData.IsUsed = false; + } + } + } + } + } + } + } + } + RaiseCouponSelectEvent(e.OriginalSource); + } + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as HappyAppCoupons; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnCouponDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is List newValue) + { + var target = d as HappyAppCoupons; + target.SetCouponStack(newValue); + } + } + + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is SupportLanguageType newValue) + { + var target = d as HappyAppCoupons; + foreach (var aGrid in target.CouponStack.Children) + { + if (aGrid is Grid aCoupons) + { + foreach (var aStack in aCoupons.Children) + { + if (aStack is StackPanel aItems) + { + foreach (var aItem in aItems.Children) + { + if (aItem is HappyAppCoupon aCoupon) + { + aCoupon.DisplayLanguage = newValue; + } + } + } + } + } + } + } + } + private void CouponGrid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownYposition = e.GetPosition(sender as Grid).Y; + MoseDown = true; + } + + private void CouponGrid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + MoseDown = false; + } + + private void CouponGrid_PreviewMouseMove(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseYposition = e.GetPosition(requstGrid).Y; + VerticalOffset = VerticalOffset + (mouseDownYposition - curMouseYposition) * 2; + mouseDownYposition = curMouseYposition; + } + + private void CouponGrid_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml new file mode 100644 index 0000000..4bde7b7 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml.cs new file mode 100644 index 0000000..21977bf --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCertify.xaml.cs @@ -0,0 +1,306 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; + +namespace SPC.Kiosk.Popup +{ + /// + /// HappyPointCertify.xaml에 대한 상호 작용 논리 + /// + public partial class HappyPointCertify : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmHappyPointCertify ViewModel { get; set; } + private bool ShowLanguageButton { get; set; } + private bool ShowMemberHistoryItems { get; set; } + private ParentPage PopupParentPage { get; set; } = ParentPage.EmptyPage; + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public HappyPointCertify(bool _showLanguageButton = true, bool _showMemberHistoryItems = true, ParentPage _popupParentPage = ParentPage.EmptyPage) + { + ShowLanguageButton = _showLanguageButton; + ShowMemberHistoryItems = _showMemberHistoryItems; + PopupParentPage = _popupParentPage; + InitializeComponent(); + this.ContentRendered += HappyPointCertify_ContentRendered; + this.Loaded += HappyPointCertify_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.5); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Width + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + //this.Dispatcher.Invoke((Action)(() => + //{ + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + catch + { + } + //})); + } + + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CertifyWindow.Equals(CertifyWindowType.CertifyStart) + && !this.ViewModel.ShowPhoneInput) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void OpenOptionPopup() + { + this.ViewModel.TimerEnabled = false; + try + { + var newOptions = new List(); + foreach (var aOptionGroup in this.ViewModel.SelectedData.Option) + { + newOptions.Add(aOptionGroup.Clone()); + } + var newOpenOptionSelect = new OptionSelect(this.ViewModel.SelectedData.BaseTextBlock.LanguageData + , newOptions + , this.ViewModel.SelectedData.DataParameter.NormalBrush + , 1 + , this.ViewModel.SelectedData.Price + , false); + newOpenOptionSelect.ShowDialog(); + if (newOpenOptionSelect.DataContext is VmOptionSelect optionViewModel) + { + this.ViewModel.GetOptionPopupReturn = optionViewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenOptionPopup", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + this.ViewModel.TimerEnabled = false; + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CertifyWindow.Equals(CertifyWindowType.CertifyStart) + && !this.ViewModel.ShowPhoneInput) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= HappyPointCertify_ContentRendered; + this.Loaded -= HappyPointCertify_Loaded; + this.LostFocus -= HappyPointCertify_LostFocus; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ChangeLanguage.MouseClicked -= ChangeLanguage_MouseClicked; + this.ViewModel.Dispose(); + + this.Close(); + + } + private void HappyPointCertify_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void HappyPointCertify_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmHappyPointCertify viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.LanguageButttonVisibel = ShowLanguageButton; + this.ViewModel.MemberHistoryItemsGridHeight = ShowMemberHistoryItems ? 310d : 0d; + this.ViewModel.TopGridMarginHeight = ShowMemberHistoryItems ? 0d : 120d; + this.ViewModel.PopupWidth = this.FrameBase.Width; + this.ViewModel.IsTimeoutPopup = false; + this.ViewModel.PopupParentPage = PopupParentPage; + } + this.LostFocus += HappyPointCertify_LostFocus; + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.ChangeLanguage.MouseClicked += ChangeLanguage_MouseClicked; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void HappyPointCertify_LostFocus(object sender, RoutedEventArgs e) + { + this.Focus(); + } + + private void ChangeLanguage_MouseClicked(object sender, RoutedEventArgs e) + { + this.ViewModel.TimerEnabled = false; + try + { + M_PopupReturn result = null; + var newLanguageSelector = new LanguageSelector(this.ViewModel.ShowLanguageType); + newLanguageSelector.ShowDialog(); + if (newLanguageSelector.DataContext is VmLanguageSelector viewModel) + { + result = viewModel.ReturnValue; + } + newLanguageSelector = null; + if (result is M_PopupReturn) + { + if (result.TimeOut) + { + this.ViewModel.ReturnValue = result; + CloseWindow(); + } + else + { + this.ViewModel.ShowLanguageType = result.ReturnLanguage; + this.ViewModel.TimerEnabled = true; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeLanguage_MouseClicked", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + case "OpenOptionPopup": + if (this.ViewModel.OpenOptionPopup) + { + OpenOptionPopup(); + } + break; + case "ShowPhoneInput": + ChangeWindow(); + break; + case "CertifyWindow": + ChangeWindow(); + break; + + + } + } + + + + #endregion Event Handlers + + private void OrderHistory_MouseClicked(object sender, RoutedEventArgs e) + { + + } + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml new file mode 100644 index 0000000..6daebb9 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml.cs new file mode 100644 index 0000000..f01b84f --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointCoupon.xaml.cs @@ -0,0 +1,213 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; + +namespace SPC.Kiosk.Popup +{ + /// + /// HappyPointCoupon.xaml에 대한 상호 작용 논리 + /// + public partial class HappyPointCoupon : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmHappyPointCoupon ViewModel { get; set; } + /// + /// HappyPoint 인증 및 사용 정보 + /// + private M_HappyPointReturn GetHappyPointReturn { get; set; } + private double GetPayments { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + /// + /// + public HappyPointCoupon(M_HappyPointReturn _happyPointReturn, double _totalPayment = 0) + { + GetPayments = _totalPayment; + GetHappyPointReturn = _happyPointReturn; + InitializeComponent(); + this.ContentRendered += HappyPointCoupon_ContentRendered; + this.Loaded += HappyPointCoupon_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + + } + catch + { + } + } + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.HappyCouponWindow.Equals(HappyCouponWindowType.CouponStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (this.ViewModel.HappyCouponWindow.Equals(HappyCouponWindowType.CouponStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= HappyPointCoupon_ContentRendered; + this.Loaded -= HappyPointCoupon_Loaded; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ViewModel.Dispose(); + this.Close(); + } + private void HappyPointCoupon_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + + } + private void HappyPointCoupon_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmHappyPointCoupon viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.Payments = GetPayments; + this.ViewModel.HappyPointReturn = GetHappyPointReturn; + this.ViewModel.PopupWidth = this.FrameBase.Width; + if (GetHappyPointReturn is M_HappyPointReturn + && GetHappyPointReturn.MyHappyCoupons.Count > 0 + && GetHappyPointReturn.MemberCode.Length > 15) + { + this.ViewModel.HappyCouponWindow = HappyCouponWindowType.CouponUsing; + } + else + { + this.ViewModel.HappyCouponWindow = HappyCouponWindowType.CouponStart; + + } + this.ViewModel.IsTimeoutPopup = false; + } + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + CloseWindow(); + break; + case "HappyCouponWindow": + ChangeWindow(); + break; + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml new file mode 100644 index 0000000..ff555a7 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml.cs new file mode 100644 index 0000000..e01b81b --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/HappyPointUsing.xaml.cs @@ -0,0 +1,259 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; + +namespace SPC.Kiosk.Popup +{ + /// + /// HappyPointUsing.xaml에 대한 상호 작용 논리 + /// + public partial class HappyPointUsing : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmHappyPointUsing ViewModel { get; set; } + /// + /// HappyPoint 인증 및 사용 정보 + /// + private M_HappyPointReturn GetHappyPointReturn { get; set; } + private double GetPayments { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + /// + /// + public HappyPointUsing(M_HappyPointReturn _happyPointReturn, double _totalPayment = 0) + { + GetPayments = _totalPayment; + GetHappyPointReturn = _happyPointReturn; + InitializeComponent(); + this.ContentRendered += HappyPointUsing_ContentRendered; + this.Loaded += HappyPointUsing_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.PointUsingWindow.Equals(PointUsingWindowType.CertifyStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void OpenPassWindow() + { + this.ViewModel.TimerEnabled = false; + try + { + M_PopupReturn result = null; + var newPasswordPopup = new NumPadPopup(this.ViewModel.ShowLanguageType + , Languages.GetMessages("LBL0055")); + newPasswordPopup.ShowDialog(); + if (newPasswordPopup.DataContext is VmNumPadPopup viewModel) + { + result = viewModel.ReturnValue; + } + newPasswordPopup.DataContext = null; + newPasswordPopup = null; + if (result is M_PopupReturn) + { + if (result.OKAnswer) + { + this.ViewModel.CertifyPassword = (string)result.PopupArgs; + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenPassWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + this.ViewModel.IsOpenPasswordWindow = false; + this.ViewModel.TimerEnabled = true; + } + + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (this.ViewModel.PointUsingWindow.Equals(PointUsingWindowType.CertifyStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= HappyPointUsing_ContentRendered; + this.Loaded -= HappyPointUsing_Loaded; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ViewModel.Dispose(); + this.Close(); + } + private void HappyPointUsing_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + + } + private void HappyPointUsing_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmHappyPointUsing viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.Payments = GetPayments; + this.ViewModel.HappyPointReturn = GetHappyPointReturn; + this.ViewModel.PopupWidth = this.FrameBase.Width; + if (GetHappyPointReturn is M_HappyPointReturn && GetHappyPointReturn.MemberCode.Length >= 16) + { + this.ViewModel.PointUsingWindow = PointUsingWindowType.PointUsing; + } + else + { + this.ViewModel.PointUsingWindow = PointUsingWindowType.CertifyStart; + + } + this.ViewModel.IsTimeoutPopup = false; + } + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + if (this.ViewModel.ImmediatelyClose) + { + CloseAnimation_Completed(null, null); + } + else + { + CloseWindow(); + } + } + break; + case "PointUsingWindow": + ChangeWindow(); + break; + case "IsOpenPasswordWindow": + if (this.ViewModel.IsOpenPasswordWindow) OpenPassWindow(); + break; + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml new file mode 100644 index 0000000..5a52642 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml.cs new file mode 100644 index 0000000..ed305fc --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/LanguageSelector.xaml.cs @@ -0,0 +1,228 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Forms; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Threading; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +namespace SPC.Kiosk.Popup +{ + /// + /// LanguageSelector.xaml에 대한 상호 작용 논리 + /// + public partial class LanguageSelector : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmLanguageSelector ViewModel { get; set; } + private SupportLanguageType GetLanguageType { get; set; } + #endregion Members + + #region [ Ctor / Etc ] + /// + /// Ctor + /// + public LanguageSelector(SupportLanguageType _supportLanguageType) + { + GetLanguageType = _supportLanguageType; + InitializeComponent(); + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + this.Loaded += LanguageSelector_Loaded; + this.ContentRendered += LanguageSelector_ContentRendered; + } + + #endregion Ctor / Etc + + #region [ Methods ] + private void ChangeSwitch() + { + foreach (var aObj in this.LanguageButtonStack.Children) + { + if (aObj is AnimationButton aButton) + { + if (aButton.Tag is SupportLanguageType languageType) + { + aButton.Switch = this.ViewModel.ShowLanguageType.Equals(languageType); + aButton.Text = languageType.GetLanguageNativeName(); + } + } + } + } + private void CreateLanguageButtons() + { + foreach (var aLanguage in Enum.GetValues(typeof(SupportLanguageType)).Cast()) + { + var visible = Visibility.Visible; + switch (aLanguage) + { + case SupportLanguageType.en: + if (this.ViewModel.OptionValue813 == "0") visible = Visibility.Collapsed; + break; + case SupportLanguageType.ja: + if (this.ViewModel.OptionValue814 == "0") visible = Visibility.Collapsed; + break; + case SupportLanguageType.zh: + if (this.ViewModel.OptionValue815 == "0") visible = Visibility.Collapsed; + break; + default: + break; + } + + var ButtonData = new M_AnimationButton + { + Width = 180, + Height = 180, + BrushStretch = Stretch.Fill, + ClickAnimationType = ButtonAnimationType.SizeDown, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + Switch = this.ViewModel.ShowLanguageType.Equals(aLanguage), + TextVisible = Visibility.Collapsed, + Margin = new Thickness(33,0,33,0), + }; + switch (aLanguage) + { + case SupportLanguageType.ko: + ButtonData.NormalBrush = ResourceManager.GetNximagePathAdd("btn_pop_kor_n.png", CommonValue.PBdesignImagesPath); + ButtonData.SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_pop_kor_s.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.en: + ButtonData.NormalBrush = ResourceManager.GetNximagePathAdd("btn_pop_eng_n.png", CommonValue.PBdesignImagesPath); + ButtonData.SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_pop_eng_s.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.zh: + ButtonData.NormalBrush = ResourceManager.GetNximagePathAdd("btn_pop_chi_n.png", CommonValue.PBdesignImagesPath); + ButtonData.SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_pop_chi_s.png", CommonValue.PBdesignImagesPath); + break; + case SupportLanguageType.ja: + ButtonData.NormalBrush = ResourceManager.GetNximagePathAdd("btn_pop_jap_n.png", CommonValue.PBdesignImagesPath); + ButtonData.SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_pop_jap_s.png", CommonValue.PBdesignImagesPath); + break; + } + var newLanauageButton = new AnimationButton + { + Name = string.Format("Button_{0}", aLanguage), + DataParameter = ButtonData, + Tag = aLanguage, + Visibility = visible + }; + + newLanauageButton.MouseClicked += NewLanauageButton_MouseClicked; + this.LanguageButtonStack.Children.Add(newLanauageButton); + this.ReregisterName(string.Format("Button_{0}", aLanguage), newLanauageButton); + } + } + + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + + + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.Loaded -= LanguageSelector_Loaded; + this.ContentRendered -= LanguageSelector_ContentRendered; + this.ViewModel.Dispose(); + this.Close(); + } + private void OpenAnimations_Completed(object sender, EventArgs e) + { + } + + private void NewLanauageButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is AnimationButton clickedButton) + { + if (clickedButton.Tag is SupportLanguageType changeLanguage) + { + if (!this.ViewModel.ShowLanguageType.Equals(changeLanguage)) + { + this.ViewModel.ShowLanguageType = changeLanguage; + ChangeSwitch(); + } + } + } + } + private void LanguageSelector_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void LanguageSelector_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmLanguageSelector viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.ShowLanguageType = GetLanguageType; + this.ViewModel.IsTimeoutPopup = false; + } + CreateLanguageButtons(); + this.UpdateLayout(); + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + + } + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml new file mode 100644 index 0000000..1698ba2 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml.cs new file mode 100644 index 0000000..08938b5 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/MiniPopup.xaml.cs @@ -0,0 +1,147 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; + +namespace SPC.Kiosk.Popup +{ + /// + /// CallEmployee.xaml에 대한 상호 작용 논리 + /// + public partial class MiniPopup : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmMiniPopup ViewModel { get; set; } + + private M_MiniPopup GetMiniPopup { get; set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public MiniPopup(M_MiniPopup _getMiniPopup) + { + GetMiniPopup = _getMiniPopup; + InitializeComponent(); + this.ContentRendered += MiniPopup_ContentRendered; + this.Loaded += MiniPopup_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void CloseAnimation_Completed(object sender, EventArgs e) + { + + this.ContentRendered -= MiniPopup_ContentRendered; + this.Loaded -= MiniPopup_Loaded; + this.ViewModel.Dispose(); + this.Close(); + } + + private void MiniPopup_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 800; + this.FrameBase.Height = 540; + OpenWindow(); + } + + private void MiniPopup_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmMiniPopup viewModel) + { + ViewModel = viewModel; + ViewModel.PropertyChanged += ViewModel_PropertyChanged; + ViewModel.MiniPopup = GetMiniPopup; + ViewModel.IsTimeoutPopup = false; + } + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + case "SubMessageText": + if (string.IsNullOrEmpty(ViewModel.SubMessageText.GetLanguageData(ViewModel.ShowLanguageType))) + { + Message2.Visibility = Visibility.Collapsed; + } + else + { + Message2.Visibility = Visibility.Visible; + } + break; + } + } + + + + + + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml new file mode 100644 index 0000000..fce9c8e --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml.cs new file mode 100644 index 0000000..ceb8da3 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/MobileCompanyMemberCertify.xaml.cs @@ -0,0 +1,212 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; +namespace SPC.Kiosk.Popup +{ + /// + /// MobileCompanyMemberCertify.xaml에 대한 상호 작용 논리 + /// + public partial class MobileCompanyMemberCertify : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmMobileCompanyMemberCertify ViewModel { get; set; } + private MobileCompanyType GetMobileCompany { get; set; } + private double GetPayments { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + /// + /// + public MobileCompanyMemberCertify(MobileCompanyType _mobileCompany, double _totalPayment = 0) + { + GetPayments = _totalPayment; + GetMobileCompany = _mobileCompany; + InitializeComponent(); + this.ContentRendered += MobileCompanyMemberCertify_ContentRendered; + this.Loaded += MobileCompanyMemberCertify_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + //this.Dispatcher.Invoke((Action)(() => + //{ + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + //})); + } + + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CertifyWindow.Equals(CertifyWindowType.CertifyStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CertifyWindow.Equals(CertifyWindowType.CertifyStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= MobileCompanyMemberCertify_ContentRendered; + this.Loaded += MobileCompanyMemberCertify_Loaded; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ViewModel.Dispose(); + this.Close(); + } + + private void MobileCompanyMemberCertify_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void MobileCompanyMemberCertify_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmMobileCompanyMemberCertify viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.MobileCompany = GetMobileCompany; + this.ViewModel.Payments = GetPayments; + this.ViewModel.IsTimeoutPopup = false; + } + this.LostFocus += MobileCompanyMemberCertify_LostFocus; + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + + } + private void MobileCompanyMemberCertify_LostFocus(object sender, RoutedEventArgs e) + { + this.Focus(); + } + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + case "CertifyWindow": + ChangeWindow(); + break; + } + } + #endregion Event Handlers + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml new file mode 100644 index 0000000..621773d --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml.cs new file mode 100644 index 0000000..d2df8cf --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/MobileHappyCoupon.xaml.cs @@ -0,0 +1,363 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Media.Animation; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using SPC.Kiosk.DataHelper; +namespace SPC.Kiosk.Popup +{ + /// + /// MobileHappyCoupon.xaml에 대한 상호 작용 논리 + /// + public partial class MobileHappyCoupon : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmMobileHappyCoupon ViewModel { get; set; } + private double GetPayments { get; set; } + private List GetBasketItems { get; set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + /// + /// + public MobileHappyCoupon(List _getBasketItems, double _getPayments) + { + GetPayments = _getPayments; + GetBasketItems = _getBasketItems; + InitializeComponent(); + this.ContentRendered += MobileHappyCoupon_ContentRendered; + this.Loaded += MobileHappyCoupon_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + //this.Dispatcher.Invoke((Action)(() => + //{ + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + //})); + } + + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CouponWindow.Equals(MobileCouponWindowType.CouponStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CouponWindow.Equals(MobileCouponWindowType.CouponStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= MobileHappyCoupon_ContentRendered; + this.Loaded += MobileHappyCoupon_Loaded; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ViewModel.Dispose(); + this.Close(); + } + + private void MobileHappyCoupon_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void MobileHappyCoupon_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmMobileHappyCoupon viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.Payments += GetPayments; + this.ViewModel.BasketData = GetBasketItems; + this.ViewModel.IsTimeoutPopup = false; + } + this.LostFocus += MobileHappyCoupon_LostFocus; + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + + } + private void MobileHappyCoupon_LostFocus(object sender, RoutedEventArgs e) + { + this.Focus(); + } + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + case "CouponWindow": + ChangeWindow(); + break; + } + } + #endregion Event Handlers + private void OpenErrorPopup(List _errorMessage) + { + this.ViewModel.TimerEnabled = false; + try + { + var miniPopup = new M_MiniPopup + { + Icon = MiniPopupIcon.AddCoupon, + DisplayLanguage = this.ViewModel.ShowLanguageType, + Message = _errorMessage, + OkButtonText = Languages.GetMessages("BTN0039"), + IsCencalButton = false, + TimeoutSeconds = 10, + }; + var MiniPopupWin = new MiniPopup(miniPopup); + MiniPopupWin.ShowDialog(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenErrorPopup()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + finally + { + this.ViewModel.TimerEnabled = true; + } + } + private long GetUsingValue() + { + long result = 0L; + try + { + M_PopupReturn getInput = null; + var newPasswordPopup = new NumPadPopup(this.ViewModel.ShowLanguageType + , Languages.GetMessages("LBL0122") + ,false + ,false + ,6 + ,0); + newPasswordPopup.ShowDialog(); + if (newPasswordPopup.DataContext is VmNumPadPopup viewModel) + { + getInput = viewModel.ReturnValue; + } + newPasswordPopup.DataContext = null; + newPasswordPopup = null; + if (getInput is M_PopupReturn) + { + if (getInput.OKAnswer) + { + result = long.Parse("0"+(string)getInput.PopupArgs); + } + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetUsingValue()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = 0L; + } + return result; + + } + private void CoupnDatas_CouponSelect(object sender, RoutedEventArgs e) + { + if (e.OriginalSource is M_MobileCouponDetail mobileCouponDetail) + { + //if (mobileCouponDetail.BrandCode.StartsWith()) + if (mobileCouponDetail.RequestPrice.Equals(0)) + { + var canUsingPrice = mobileCouponDetail.CanUsingPrice; + var maxUsingPrice = long.Parse((this.ViewModel.Payments - this.ViewModel.TotalCouponAmount).ToString()); + var maxCanInputPrice = maxUsingPrice <= canUsingPrice + ? maxUsingPrice + : canUsingPrice; + if (maxUsingPrice > 0) + { + switch (mobileCouponDetail.Type) + { + case MobileCouponType.NormalValue: + case MobileCouponType.ValueLimit: + var inputValue = GetUsingValue(); + if (inputValue > 0) + { + if (inputValue > maxCanInputPrice) + { + OpenErrorPopup(Languages.GetMessages("LBL0033")); + } + else if (inputValue % 10 > 0) + { + OpenErrorPopup(Languages.GetMessages("LBL0020")); + } + else + { + mobileCouponDetail.RequestPrice = inputValue; + mobileCouponDetail.DiscountPrice = inputValue; + } + } + break; + case MobileCouponType.ValueFixed: + if (canUsingPrice > maxUsingPrice) + { + OpenErrorPopup(Languages.GetMessages("LBL0033")); + } + else + { + mobileCouponDetail.RequestPrice = canUsingPrice; + mobileCouponDetail.DiscountPrice = canUsingPrice; + } + break; + default: + if (canUsingPrice > maxUsingPrice) + { + OpenErrorPopup(Languages.GetMessages("LBL0033")); + } + else + { + if (mobileCouponDetail.Option.Equals(MobileCouponOptionType.ItemFixed)) + { + var exitItem = false; + using (var newPosDataService = new PosDataService()) + { + exitItem = newPosDataService.IsExistITEM_PLU_CD(mobileCouponDetail.ItemCodeKey); + } + if (exitItem) + { + mobileCouponDetail.RequestPrice = canUsingPrice; + mobileCouponDetail.DiscountPrice = canUsingPrice; + } + else + { + OpenErrorPopup(Languages.GetMessages("LBL0064")); + } + } + else + { + mobileCouponDetail.RequestPrice = canUsingPrice; + mobileCouponDetail.DiscountPrice = canUsingPrice; + } + } + break; + } + } + } + else + { + mobileCouponDetail.RequestPrice = 0; + mobileCouponDetail.DiscountPrice = 0; + } + } + } + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml new file mode 100644 index 0000000..76118bb --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml.cs new file mode 100644 index 0000000..a70b86e --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/NumPadPopup.xaml.cs @@ -0,0 +1,163 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; + +namespace SPC.Kiosk.Popup +{ + /// + /// HappyPointCertify.xaml에 대한 상호 작용 논리 + /// + public partial class NumPadPopup : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmNumPadPopup ViewModel { get; set; } + private SupportLanguageType GetLanguageType { get; set; } + private List GetGuideText { get; set; } + private bool Formated { get; set; } + private bool IsPassword { get; set; } + private int MaxLength { get; set; } + private int CheckLength { get; set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public NumPadPopup(SupportLanguageType _languageType + , List _guideText + , bool _formated = false + , bool _isPassword = true + , int _maxLength = 4 + , int _checkLength = 4) + { + GetLanguageType = _languageType; + GetGuideText = _guideText; + Formated = _formated; + IsPassword = _isPassword; + MaxLength = _maxLength; + CheckLength = _checkLength; + InitializeComponent(); + this.ContentRendered += NumPadPopup_ContentRendered; + this.Loaded += NumPadPopup_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.5); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Width + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + + + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.Loaded -= NumPadPopup_Loaded; + this.ViewModel.Dispose(); + + this.Close(); + + } + private void NumPadPopup_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 540; + this.FrameBase.Height = 800; + OpenWindow(); + } + + private void NumPadPopup_Loaded(object sender, RoutedEventArgs e) + { + + if (this.DataContext is VmNumPadPopup viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.ShowLanguageType = GetLanguageType; + this.ViewModel.NumPadGuidText = GetGuideText; + this.ViewModel.Formated = Formated; + this.ViewModel.IsPassword = IsPassword; + this.ViewModel.NumPadMaxLength = MaxLength; + this.ViewModel.CheckLength = CheckLength; + this.ViewModel.PopupWidth = this.FrameBase.Width; + this.ViewModel.IsTimeoutPopup = false; + } + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + + } + } + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml new file mode 100644 index 0000000..7426b46 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml.cs new file mode 100644 index 0000000..cf1f60a --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagCertify.xaml.cs @@ -0,0 +1,210 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; + +namespace SPC.Kiosk.Popup +{ + /// + /// OkCashBagCertify.xaml에 대한 상호 작용 논리 + /// + public partial class OkCashBagCertify : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmOkCashBagCertify ViewModel { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public OkCashBagCertify() + { + InitializeComponent(); + this.ContentRendered += OkCashBagCertify_ContentRendered; + this.Loaded += OkCashBagCertify_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + //this.Dispatcher.Invoke((Action)(() => + //{ + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + //})); + } + + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CertifyWindow.Equals(CertifyWindowType.CertifyStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + if (this.ViewModel.CertifyWindow.Equals(CertifyWindowType.CertifyStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= OkCashBagCertify_ContentRendered; + this.Loaded -= OkCashBagCertify_Loaded; + this.LostFocus -= OkCashBagCertify_LostFocus; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ViewModel.Dispose(); + this.Close(); + } + private void OkCashBagCertify_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void OkCashBagCertify_Loaded(object sender, RoutedEventArgs e) + { + + if (this.DataContext is VmOkCashBagCertify viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.IsTimeoutPopup = false; + } + this.LostFocus += OkCashBagCertify_LostFocus; + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + + } + + private void OkCashBagCertify_LostFocus(object sender, RoutedEventArgs e) + { + this.Focus(); + } + + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + case "CertifyWindow": + ChangeWindow(); + break; + + + } + } + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml new file mode 100644 index 0000000..08726cf --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml @@ -0,0 +1,493 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml.cs new file mode 100644 index 0000000..24e00d5 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OkCashBagUsing.xaml.cs @@ -0,0 +1,178 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using System.Text.RegularExpressions; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +namespace SPC.Kiosk.Popup +{ + /// + /// PkCashBagCertify.xaml에 대한 상호 작용 논리 + /// + public partial class OkCashBagUsing : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmOkCashBagUsing ViewModel { get; set; } + private double GetPayments { get; set; } + private bool GetReserveEnabled { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + /// + /// + public OkCashBagUsing(double _totalPayment = 0, bool _reserveEnabled = true) + { + + GetPayments = _totalPayment; + GetReserveEnabled = _reserveEnabled; + InitializeComponent(); + this.ContentRendered += OkCashBagUsing_ContentRendered; + this.Loaded += OkCashBagCertify_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + this.AfterBase.Visibility = Visibility.Hidden; + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + this.BarCode.Focus(); + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= OkCashBagUsing_ContentRendered; + this.Loaded -= OkCashBagCertify_Loaded; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.Close(); + } + private void OkCashBagUsing_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void OkCashBagCertify_Loaded(object sender, RoutedEventArgs e) + { + + + + if (this.DataContext is VmOkCashBagUsing viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.Payments = GetPayments; + this.ViewModel.ReservePoint = GetReserveEnabled; + this.ViewModel.IsTimeoutPopup = false; + } + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.AfterBase.IsEnabled = false; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + case "ToAfterBase": + if (this.ViewModel.ToAfterBase) + { + this.FrameBase.IsEnabled = false; + var AfterBaseOpenAnimations = Animations.GetOpenAndCloseAnimation(this.FrameBase + , this.AfterBase + , OpenCloseAnimationType.GotoRight + , this.FrameBase.Width, 0, 0.3); + if (AfterBaseOpenAnimations != null) + { + AfterBaseOpenAnimations.Completed += AfterBaseOpenAnimations_Completed; + AfterBaseOpenAnimations.Begin(); + } + } + break; + } + } + private void AfterBaseOpenAnimations_Completed(object sender, EventArgs e) + { + this.AfterBase.IsEnabled = true; + } + #endregion Event Handlers + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml new file mode 100644 index 0000000..26ae388 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml.cs new file mode 100644 index 0000000..173acc6 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionGroup.xaml.cs @@ -0,0 +1,291 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup +{ + /// + /// DiscountAndValue.xaml에 대한 상호 작용 논리 + /// + public partial class OptionGroup : UserControl + { + #region [ Members ] + private string optionGroupDefault = ResourceManager.GetNximagePathAdd("btn_count_plus_p.png", CommonValue.PBdesignImagesPath); + /// + /// ItemData + /// + public static readonly DependencyProperty GroupDataProperty = + DependencyProperty.Register(nameof(GroupData), typeof(M_ItemOptionGroup), typeof(OptionGroup), new PropertyMetadata(null, new PropertyChangedCallback(OnGroupDataPropertyChanged))); + + + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(OptionGroup), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + + /// + /// Horizontal Scroll Offset + /// + public static readonly DependencyProperty HorizontalOffsetProperty = + DependencyProperty.Register(nameof(HorizontalOffset), typeof(double), typeof(OptionGroup), new PropertyMetadata(0d, new PropertyChangedCallback(OnHorizontalOffsetPropertyChanged))); + /// + /// EditMode + /// + public static readonly DependencyProperty EditModeProperty = + DependencyProperty.Register(nameof(EditMode), typeof(bool), typeof(OptionGroup), new PropertyMetadata(false)); + + /// + /// Horizontal Scroll Offset + /// + public double HorizontalOffset + { + get { return (double)GetValue(HorizontalOffsetProperty); } + set { SetValue(HorizontalOffsetProperty, value); } + } + /// + /// ItemData + /// + public M_ItemOptionGroup GroupData + { + get { return (M_ItemOptionGroup)GetValue(GroupDataProperty); } + set { SetValue(GroupDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Edit Mode + /// + public bool EditMode + { + get { return (bool)GetValue(EditModeProperty); } + set { SetValue(EditModeProperty, value); } + } + #region [ RoutedEvent 'SelectChange' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent SelectChangeEvent = EventManager.RegisterRoutedEvent(nameof(SelectChange), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(OptionGroup)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler SelectChange + { + add { AddHandler(SelectChangeEvent, value); } + remove { RemoveHandler(SelectChangeEvent, value); } + } + #endregion RoutedEvent 'SelectChange' + private double mouseDownXposition = -1; + private bool MoseDown = false; + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public OptionGroup() + { + InitializeComponent(); + OptionGrid.PreviewMouseDown += OptionGrid_PreviewMouseDown; + OptionGrid.PreviewMouseUp += OptionGrid_PreviewMouseUp; + OptionGrid.PreviewMouseMove += OptionGrid_PreviewMouseMove; + OptionGrid.MouseLeave += OptionGrid_MouseLeave; + } + + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseSelectChangeEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(OptionGroup.SelectChangeEvent, _sender); + RaiseEvent(newEventArgs); + } + private void SetOptionStack(M_ItemOptionGroup newValue) + { + this.OptionGroupName.MultiLanguage = newValue.Name; + this.OptionGroupIcon.NormalBrush = ResourceManager.GetOptionImage(newValue.ImageFile, CommonValue.OptionDefaultImage); + foreach (var aItem in OptionStack.Children) + { + if (aItem is OptionItem aOptionItem) + { + aOptionItem.MouseClicked -= OptionItem_MouseClicked; + } + } + OptionStack.Children.Clear(); + var Index = 0; + + foreach (var aOption in newValue.Options) + { + if (!EditMode) + { + if (newValue.IsMustSelect && Index.Equals(0)) + { + switch (aOption.Kind) + { + case OptionKind.Button: + aOption.IsSelected = true; + break; + case OptionKind.Discount: + case OptionKind.UpCharge: + aOption.IsSelected = true; + aOption.SelectValue = aOption.Amount; + break; + case OptionKind.Count: + aOption.IsSelected = true; + aOption.SelectValue = aOption.AmountMin.Equals(0) ? aOption.Amount : aOption.AmountMin; + break; + } + } + else + { + aOption.IsSelected = false; + } + } + var newOptionItem = new OptionItem + { + DisplayLanguage = this.DisplayLanguage, + OptionMode = newValue.SelectMode, + ItemData = aOption, + }; + newOptionItem.MouseClicked += OptionItem_MouseClicked; + newOptionItem.Name = string.Format("OptionItem{0}", aOption.Index); + this.ReregisterName(newOptionItem.Name, newOptionItem); + this.OptionStack.Children.Add(newOptionItem); + Index++; + } + } + + + + private string GetGroupImage(string _ImageFile) + { + string result = optionGroupDefault; + try + { + if (string.IsNullOrEmpty(_ImageFile)) + { + result = ResourceManager.GetNximagePathAdd(_ImageFile, CommonValue.PBdesignImagesPath); ; + if (string.IsNullOrEmpty(result)) result = optionGroupDefault; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "GetGroupImage()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + return result; + } + #endregion Methods + + #region [ Event Handlers ] + private void OptionItem_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is OptionItem getOption) + { + switch (GroupData.SelectMode) + { + case OptionSelectMode.Single: + foreach (var aItem in OptionStack.Children) + { + if (aItem is OptionItem otherOption && !otherOption.Equals(getOption)) + { + otherOption.Switch = false; + otherOption.ItemData.SelectValue = 0d; + } + }; + break; + case OptionSelectMode.Multi: + break; + } + RaiseSelectChangeEvent(GroupData); + } + } + private static void OnHorizontalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as OptionGroup; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnGroupDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is M_ItemOptionGroup newValue) + { + var target = d as OptionGroup; + target.SetOptionStack(newValue); + } + } + + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is SupportLanguageType newValue) + { + var target = d as OptionGroup; + target.OptionGroupName.DisplayLanguage = newValue; + foreach (var aOptoin in target.OptionStack.Children) + { + if (aOptoin is OptionItem optionItem) + { + optionItem.DisplayLanguage = newValue; + } + } + } + } + private void OptionGrid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownXposition = e.GetPosition(sender as Grid).X; + MoseDown = true; + } + + private void OptionGrid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + MoseDown = false; + } + + private void OptionGrid_PreviewMouseMove(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseXposition = e.GetPosition(requstGrid).X; + HorizontalOffset = HorizontalOffset + (mouseDownXposition - curMouseXposition) * 2; + mouseDownXposition = curMouseXposition; + } + + private void OptionGrid_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml new file mode 100644 index 0000000..1a32570 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml @@ -0,0 +1,64 @@ + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml.cs new file mode 100644 index 0000000..caf0515 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionItem.xaml.cs @@ -0,0 +1,285 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup +{ + /// + /// DiscountAndValue.xaml에 대한 상호 작용 논리 + /// + public partial class OptionItem : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty ItemDataProperty = + DependencyProperty.Register(nameof(ItemData), typeof(M_ItemOption), typeof(OptionItem), new PropertyMetadata(null, new PropertyChangedCallback(OnItemDataPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(OptionItem), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Option Select Mode + /// + public static readonly DependencyProperty OptionModePropery = + DependencyProperty.Register(nameof(OptionMode), typeof(OptionSelectMode), typeof(OptionItem), new PropertyMetadata(OptionSelectMode.None)); + /// + /// Button Switch + /// + public static readonly DependencyProperty SwitchPropery = + DependencyProperty.Register(nameof(Switch), typeof(bool), typeof(OptionItem), new PropertyMetadata(false)); + /// + /// Option Select Mode + /// + public OptionSelectMode OptionMode + { + get { return (OptionSelectMode)GetValue(OptionModePropery); } + set { SetValue(OptionModePropery, value); } + } + /// + /// Button Switch + /// + public bool Switch + { + get { return (bool)GetValue(SwitchPropery); } + set { SetValue(SwitchPropery, value); SelectedChange(value);} + + } + /// + /// ItemData + /// + public M_ItemOption ItemData + { + get { return (M_ItemOption)GetValue(ItemDataProperty); } + set { SetValue(ItemDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Delete Button NormalBrush + /// + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(OptionItem)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public OptionItem() + { + InitializeComponent(); + OptionValueCombo.LeftButtonData = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("btn_count_minus_n.png", CommonValue.PBdesignImagesPath), + DownBrush = ResourceManager.GetNximagePathAdd("btn_count_minus_p.png", CommonValue.PBdesignImagesPath), + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + OptionValueCombo.RightButtonData = new M_AnimationButton + { + NormalBrush = ResourceManager.GetNximagePathAdd("btn_count_plus_n.png", CommonValue.PBdesignImagesPath), + DownBrush = ResourceManager.GetNximagePathAdd("btn_count_plus_p.png", CommonValue.PBdesignImagesPath), + BrushStretch = Stretch.Fill, + DragEnable = false, + Width = 36, + Height = 36, + Switch = false, + AutoToggle = false, + TextVisible = Visibility.Collapsed, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + }; + OptionValueCombo.SelectChange += OptionValueCombo_SelectChange; + + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(OptionItem.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + #endregion Methods + + #region [ Event Handlers ] + private void OptionValueCombo_SelectChange(object sender, RoutedEventArgs e) + { + if (sender is NumericCombo numericCombo) + { + ItemData.SelectValue = double.Parse(numericCombo.SelectedValue.ToString()); + if (!ItemData.SelectValue.Equals(0) && ItemData.SelectValue >= ItemData.AmountMin && !ItemData.IsSelected) + { + SelectedChange(true, true); + } + else if (ItemData.SelectValue.Equals(0)) + { + SelectedChange(false, true); + } + } + } + private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is M_ItemOption newValue) + { + var target = d as OptionItem; + target.OptionButton.NormalBrush = ResourceManager.GetNximagePathAdd("btn_option_n.png", CommonValue.PBdesignImagesPath); + target.OptionButton.SwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_option_s.png", CommonValue.PBdesignImagesPath); + target.OptionButton.DisableBrush = ResourceManager.GetNximagePathAdd("btn_option_s.png", CommonValue.PBdesignImagesPath); + + switch (newValue.Kind) + { + case OptionKind.Button: + target.OptionValueCombo.Visibility = Visibility.Collapsed; + target.OptionAmount.Visibility = Visibility.Collapsed; + break; + case OptionKind.Count: + target.OptionValueCombo.Visibility = Visibility.Visible; + target.OptionAmount.Visibility = Visibility.Collapsed; + target.OptionValueCombo.MinValue = newValue.AmountMin; + target.OptionValueCombo.MaxValue = newValue.AmountMax; + target.OptionValueCombo.ValueStep = int.Parse(newValue.Amount.ToString()); + if (newValue.IsSelected) + { + target.OptionValueCombo.SelectedValue = int.Parse(newValue.SelectValue.ToString()); + } + else + { + target.OptionValueCombo.SelectedValue = newValue.AmountMin; + } + break; + case OptionKind.Discount: + target.OptionValueCombo.Visibility = Visibility.Collapsed; + target.OptionAmount.Visibility = Visibility.Visible; + target.OptionAmount.Text = newValue.Amount.ToString("#,##0"); + break; + case OptionKind.UpCharge: + target.OptionValueCombo.Visibility = Visibility.Collapsed; + target.OptionAmount.Visibility = Visibility.Visible; + target.OptionAmount.Text = newValue.Amount.ToString("#,##0"); + break; + } + target.SelectedChange(newValue.IsSelected); + target.OptionButton.LanguageText = newValue.Name; + } + } + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is SupportLanguageType newValue) + { + var target = d as OptionItem; + target.OptionButton.DisplayLanguage = newValue; + } + } + private void OptionButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (ItemData is M_ItemOption) + { + switch (ItemData.Kind) + { + case OptionKind.Button: + case OptionKind.Discount: + case OptionKind.UpCharge: + if (ItemData.IsSelected) + { + this.ItemData.SelectValue = 0d; + SelectedChange(false,true); + } + else + { + this.ItemData.SelectValue = ItemData.Amount; + SelectedChange(true,true); + } + break; + case OptionKind.Count: + if (ItemData.IsSelected) + { + this.ItemData.SelectValue = 0d; + OptionValueCombo.SelectedValue = ItemData.AmountMin; + SelectedChange(false,true); + } + else + { + if (OptionValueCombo.SelectedValue > 0) + { + this.ItemData.SelectValue = double.Parse(OptionValueCombo.SelectedValue.ToString()); + SelectedChange(true,true); + } + } + break; + } + } + } + private void SelectedChange(bool _switch, bool _sendEvent = false) + { + switch (OptionMode) + { + case OptionSelectMode.Single: + ItemData.IsSelected = _switch; + this.OptionButton.Enabled = !_switch; + break; + case OptionSelectMode.Multi: + ItemData.IsSelected = _switch; + this.OptionButton.Switch = _switch; + break; + } + if (_sendEvent) RaiseMouseClickedEvent(this); + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml new file mode 100644 index 0000000..b913069 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml @@ -0,0 +1,225 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml.cs new file mode 100644 index 0000000..e435365 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelect.xaml.cs @@ -0,0 +1,162 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; + +namespace SPC.Kiosk.Popup +{ + /// + /// OptionSelect.xaml에 대한 상호 작용 논리 + /// + public partial class OptionSelect : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmOptionSelect ViewModel { get; set; } + + private List GetItemName { get; set; } + private List GetOptions { get; set; } + private string GetItemImage { get; set; } + private int GetItemCount { get; set; } + private double GetItemPrice { get; set; } + private bool GetEditMode { get; set; } + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public OptionSelect(List _getItemName + , List _getOptions + , string _getItemImage + , int _getItemCount + , double _getItemPrice + , bool _editMode) + { + GetItemName = _getItemName; + GetOptions = _getOptions; + GetItemImage = _getItemImage; + GetItemCount = _getItemCount; + GetItemPrice = _getItemPrice; + GetEditMode = _editMode; + InitializeComponent(); + this.ContentRendered += OptionSelect_ContentRendered; + this.Loaded += OptionSelect_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.GotoLeft + , this.FrameBase.Width + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.GotoRight + , this.FrameBase.Width + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= OptionSelect_ContentRendered; + this.Loaded -= OptionSelect_Loaded; + this.ViewModel.Dispose(); + this.Close(); + } + + private void OptionSelect_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void OptionSelect_Loaded(object sender, RoutedEventArgs e) + { + try + { + if (this.DataContext is VmOptionSelect viewModel) + { + ViewModel = viewModel; + ViewModel.PropertyChanged += ViewModel_PropertyChanged; + ViewModel.EditMode = GetEditMode; + ViewModel.ItemName = GetItemName; + ViewModel.Options = GetOptions; + ViewModel.ItemImageBrush = GetItemImage; + ViewModel.ItemCount = GetItemCount; + ViewModel.ItemPrice = GetItemPrice; + ViewModel.IsTimeoutPopup = false; + } + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OptionSelect_Loaded()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + } + } + + + + + + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml new file mode 100644 index 0000000..a1e3e52 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml.cs new file mode 100644 index 0000000..7c99b91 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/OptionSelector.xaml.cs @@ -0,0 +1,241 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; + +namespace SPC.Kiosk.Popup +{ + /// + /// MiniBasketItem.xaml에 대한 상호 작용 논리 + /// + public partial class OptionSelector : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty OptionDataProperty = + DependencyProperty.Register(nameof(OptionData), typeof(List), typeof(OptionSelector), new PropertyMetadata(null, new PropertyChangedCallback(OnOptionDataPropertyChanged))); + + + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(OptionSelector), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Vertical Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(OptionSelector), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + /// + /// EditMode + /// + public static readonly DependencyProperty EditModeProperty = + DependencyProperty.Register(nameof(EditMode), typeof(bool), typeof(OptionSelector), new PropertyMetadata(false)); + + + + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(OptionSelector), new UIPropertyMetadata(null)); + + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// Vertical Scroll Offset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + + /// + /// ItemData + /// + public List OptionData + { + get { return (List)GetValue(OptionDataProperty); } + set { SetValue(OptionDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Edit Mode + /// + public bool EditMode + { + get { return (bool)GetValue(EditModeProperty); } + set { SetValue(EditModeProperty, value); } + } + #region [ RoutedEvent 'SelectChange' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent SelectChangeEvent = EventManager.RegisterRoutedEvent(nameof(SelectChange), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(OptionSelector)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler SelectChange + { + add { AddHandler(SelectChangeEvent, value); } + remove { RemoveHandler(SelectChangeEvent, value); } + } + #endregion RoutedEvent 'SelectChange' + private double mouseDownYposition = -1; + private bool MoseDown = false; + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public OptionSelector() + { + InitializeComponent(); + OptionGrid.PreviewMouseDown += OptionGrid_PreviewMouseDown; + OptionGrid.PreviewMouseUp += OptionGrid_PreviewMouseUp; + OptionGrid.PreviewMouseMove += OptionGrid_PreviewMouseMove; + OptionGrid.MouseLeave += OptionGrid_MouseLeave; + + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseSelectChangeEvent(object _sender) + { + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(OptionSelector.SelectChangeEvent, _sender); + RaiseEvent(newEventArgs); + } + private void SetOptionStack(List newValue) + { + foreach (var aItem in OptionStack.Children) + { + if (aItem is OptionGroup aOptionGroup) + { + aOptionGroup.SelectChange -= OptionGroup_SelectChange; + } + } + OptionStack.Children.Clear(); + foreach (var aOptionGroup in newValue) + { + var newOptionGroup = new OptionGroup + { + EditMode = this.EditMode, + GroupData = aOptionGroup, + DisplayLanguage = this.DisplayLanguage + }; + newOptionGroup.SelectChange += OptionGroup_SelectChange; + newOptionGroup.Name = string.Format("OptionGroup{0}", aOptionGroup.Index); + this.ReregisterName(newOptionGroup.Name, newOptionGroup); + this.OptionStack.Children.Add(newOptionGroup); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void OptionGroup_SelectChange(object sender, RoutedEventArgs e) + { + RaiseSelectChangeEvent(OptionData); + } + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as OptionSelector; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnOptionDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is List newValue) + { + var target = d as OptionSelector; + target.SetOptionStack(newValue); + } + } + + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is SupportLanguageType newValue) + { + var target = d as OptionSelector; + foreach (var aGroup in target.OptionStack.Children) + { + if (aGroup is OptionGroup optionGroup) + { + optionGroup.DisplayLanguage = newValue; + } + } + } + } + private void OptionGrid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownYposition = e.GetPosition(sender as Grid).Y; + MoseDown = true; + } + + private void OptionGrid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + MoseDown = false; + } + + private void OptionGrid_PreviewMouseMove(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseYposition = e.GetPosition(requstGrid).Y; + VerticalOffset = VerticalOffset + (mouseDownYposition - curMouseYposition) * 2; + mouseDownYposition = curMouseYposition; + } + + private void OptionGrid_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml new file mode 100644 index 0000000..9d14951 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml.cs new file mode 100644 index 0000000..4dda3f5 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PBNumericPad.xaml.cs @@ -0,0 +1,602 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup +{ + /// + /// NumericPad.xaml에 대한 상호 작용 논리 + /// + public partial class PBNumericPad : UserControl + { + #region [ Members ] + /// + /// Button Images + /// + public static readonly DependencyProperty ButtonImagesProperty = + DependencyProperty.Register(nameof(ButtonImages), typeof(List), typeof(PBNumericPad), new PropertyMetadata(null, new PropertyChangedCallback(OnButtonImagesPropertyChanged))); + /// + /// Input Text + /// + public static readonly DependencyProperty InputTextProperty = + DependencyProperty.Register(nameof(InputText), typeof(string), typeof(PBNumericPad), new PropertyMetadata(string.Empty, new PropertyChangedCallback(OnInputTextPropertyChanged))); + /// + /// Show Text With Mask + /// + public static readonly DependencyProperty ShowTextProperty = + DependencyProperty.Register(nameof(ShowText), typeof(string), typeof(PBNumericPad), new PropertyMetadata(string.Empty)); + /// + /// Text Area Visible + /// + public static readonly DependencyProperty TextVisibleProperty = + DependencyProperty.Register(nameof(TextVisibility), typeof(Visibility), typeof(PBNumericPad), new PropertyMetadata(Visibility.Visible)); + /// + /// Guid Text (Mutil Language) + /// + public static readonly DependencyProperty GuidTextProperty = + DependencyProperty.Register(nameof(GuidText), typeof(List), typeof(PBNumericPad), new PropertyMetadata(default(List), new PropertyChangedCallback(OnGuidTextPropertyChanged))); + /// + /// Max input Length + /// + public static readonly DependencyProperty MaxLengthPropery = + DependencyProperty.Register(nameof(MaxLength), typeof(int), typeof(PBNumericPad), new PropertyMetadata(0)); + /// + /// Is Formated Show Text + /// + public static readonly DependencyProperty FormatedPropery = + DependencyProperty.Register(nameof(Formated), typeof(bool), typeof(PBNumericPad), new PropertyMetadata(false)); + /// + /// CurrencyFormat Text + /// + public static readonly DependencyProperty CurrencyFormatPropery = + DependencyProperty.Register(nameof(CurrencyFormat), typeof(string), typeof(PBNumericPad), new PropertyMetadata("#,##0")); + /// + /// Display Language Type + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(PBNumericPad), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Is PassWord + /// + public static readonly DependencyProperty IsPassWordPropery = + DependencyProperty.Register(nameof(IsPassWord), typeof(bool), typeof(PBNumericPad), new PropertyMetadata(false)); + + /// + /// CurrencyFormat Text + /// + public string CurrencyFormat + { + get { return (string)GetValue(CurrencyFormatPropery); } + set { SetValue(CurrencyFormatPropery, value); } + } + /// + /// Is PassWord + /// + public bool IsPassWord + { + get { return (bool)GetValue(IsPassWordPropery); } + set { SetValue(IsPassWordPropery, value); } + } + /// + /// Is Formated Show Text + /// + public List ButtonImages + { + get { return (List)GetValue(ButtonImagesProperty); } + set { SetValue(ButtonImagesProperty, value); } + } + /// + /// Is Formated Show Text + /// + public bool Formated + { + get { return (bool)GetValue(FormatedPropery); } + set { SetValue(FormatedPropery, value); } + } + /// + /// Max input Length + /// + public int MaxLength + { + get { return (int)GetValue(MaxLengthPropery); } + set { SetValue(MaxLengthPropery, value); } + } + + /// + /// Text Area Visibility + /// + public Visibility TextVisibility + { + get { return (Visibility)GetValue(TextVisibleProperty); } + set { SetValue(TextVisibleProperty, value); } + } + /// + /// Input Text (Real Data) + /// + public string InputText + { + get { return (string)GetValue(InputTextProperty); } + set { SetValue(InputTextProperty, value); } + } + /// + /// Show Text With Mask + /// + public string ShowText + { + get { return (string)GetValue(ShowTextProperty); } + set { SetValue(ShowTextProperty, value); } + } + /// + /// Guid Text (Multi Language) + /// + public List GuidText + { + get { return (List)GetValue(GuidTextProperty); } + set { SetValue(GuidTextProperty, value); } + } + /// + /// Display Language Type + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + #endregion Members + + #region [ Ctor/Etc ] + /// + /// Ctor + /// + public PBNumericPad() + { + try + { + InitializeComponent(); + + foreach (var aElement in this.BaseGrid.Children) + { + if (aElement is AnimationButton aNumberButton) + { + aNumberButton.MouseClicked += NumberButton_MouseClicked; + } + } + SetImage(); + } + catch + { + } + } + + #endregion Ctor + + #region [ Methods ] + + private void SetShowText(string _showText) + { + string displayText = _showText; + if (!string.IsNullOrEmpty(displayText)) + { + if (displayText.Length < 10) + { + + } + else if (displayText.Length.Equals(10) && Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 2 && i < 6) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + else if (displayText.Length.Equals(11) && Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 2 && i < 7) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + else if (displayText.Length < 17 && Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 5 && i < 14) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + + } + else if (Formated) + { + var displayChars = displayText.ToCharArray(); + displayText = string.Empty; + for (int i = 0; i < displayChars.Length; i++) + { + if (i > 3 && i < 16) + { + displayText += '*'; + } + else + { + displayText += displayChars[i]; + } + } + } + string formatedString = string.Empty; + if (IsPassWord) + { + formatedString = string.Empty.PadRight(displayText.Length, '*'); + } + else + { + if (Formated) + { + if (displayText.Length.Equals(10)) + { + formatedString = string.Format("{0}-{1}-{2}" + , displayText.Substring(0, 3) + , displayText.Substring(3, 3) + , displayText.Substring(6, 4)); + } + else if (displayText.Length.Equals(11)) + { + formatedString = string.Format("{0}-{1}-{2}" + , displayText.Substring(0, 3) + , displayText.Substring(3, 4) + , displayText.Substring(7, 4)); + } + else if (displayText.Length.Equals(16)) + { + formatedString = string.Format("{0}-{1}-{2}-{3}" + , displayText.Substring(0, 4) + , displayText.Substring(4, 4) + , displayText.Substring(8, 4) + , displayText.Substring(12, 4)); + } + else if (displayText.Length.Equals(20)) + { + formatedString = string.Format("{0}-{1}-{2}-{3}-{4}" + , displayText.Substring(0, 4) + , displayText.Substring(4, 4) + , displayText.Substring(8, 4) + , displayText.Substring(12, 4) + , displayText.Substring(16, 4)); + } + } + else + { + if (string.IsNullOrEmpty(CurrencyFormat)) + { + formatedString = displayText; + } + else + { + formatedString = (double.Parse(displayText)).ToString(CurrencyFormat); + } + } + } + if (!string.IsNullOrEmpty(formatedString)) displayText = formatedString; + this.ShowText = displayText; + } + else + { + this.ShowText = this.GuidText.GetLanguageData(this.DisplayLanguage); + } + } + private double SetEtcTextFontSize(AnimationButton _target, string _text) + { + double result = 20d; + try + { + var textLength = string.IsNullOrEmpty(_text.Trim()) ? 1 : _text.Trim().Length; + var fontSize = 0d; + switch (textLength) + { + case 1: + case 2: + case 3: + case 4: + fontSize = 0.35; + break; + default: + fontSize = 0.3; + break; + } + result = _target.ActualHeight > 0 ? _target.ActualHeight * fontSize : 20d; + + } + catch + { + result = 20d; + } + return result; + } + + private void SetImage(object _buttonImages = null) + { + var getButtonImages = new List(); + if (_buttonImages is List) + { + getButtonImages = _buttonImages as List; + } + else + { + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button0, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_0.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button1, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_1.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button2, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_2.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button3, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_3.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button4, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_4.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button5, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_5.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button6, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_6.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button7, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_7.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button8, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_8.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.Button9, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_9.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.ButtonCancel, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_c.png", CommonValue.PBdesignImagesPath) + } + ); + getButtonImages.Add + ( + new M_NumberPadImages + { + ButtonType = NumberPadButton.ButtonBack, + ButtonImage = ResourceManager.GetNximagePathAdd("btn_number_d.png", CommonValue.PBdesignImagesPath) + } + ); + } + foreach (var aElement in this.BaseGrid.Children) + { + if (aElement is AnimationButton aNumberButton) + { + var getType = NumberPadButton.ButtonNone; + var ButtonTag = string.Empty; + switch (aNumberButton.Name) + { + case nameof(Button0): + getType = NumberPadButton.Button0; + ButtonTag = "0"; + break; + case nameof(Button1): + getType = NumberPadButton.Button1; + ButtonTag = "1"; + break; + case nameof(Button2): + getType = NumberPadButton.Button2; + ButtonTag = "2"; + break; + case nameof(Button3): + getType = NumberPadButton.Button3; + ButtonTag = "3"; + break; + case nameof(Button4): + getType = NumberPadButton.Button4; + ButtonTag = "4"; + break; + case nameof(Button5): + getType = NumberPadButton.Button5; + ButtonTag = "5"; + break; + case nameof(Button6): + getType = NumberPadButton.Button6; + ButtonTag = "6"; + break; + case nameof(Button7): + getType = NumberPadButton.Button7; + ButtonTag = "7"; + break; + case nameof(Button8): + getType = NumberPadButton.Button8; + ButtonTag = "8"; + break; + case nameof(Button9): + getType = NumberPadButton.Button9; + ButtonTag = "9"; + break; + case nameof(ButtonCancel): + getType = NumberPadButton.ButtonCancel; + break; + case nameof(ButtonBack): + getType = NumberPadButton.ButtonBack; + break; + } + aNumberButton.Tag = ButtonTag; + var findButtonImage = getButtonImages.Find(r => r.ButtonType.Equals(getType)); + aNumberButton.Width = this.Width / 3; + aNumberButton.Height = this.Height / 4; + if (findButtonImage is M_NumberPadImages) + { + aNumberButton.NormalBrush = findButtonImage.ButtonImage; + } + + } + } + this.UpdateLayout(); + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnButtonImagesPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as PBNumericPad; + target.SetImage(e.NewValue); + } + } + + private static void OnGuidTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null) + { + var target = d as PBNumericPad; + target.SetShowText(target.InputText); + } + } + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != null ) + { + var target = d as PBNumericPad; + target.SetShowText(target.InputText); + } + } + private static void OnInputTextPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as PBNumericPad; + var inputText = (string)e.NewValue; + target.SetShowText(inputText); + } + private void NumberButton_MouseClicked(object sender, RoutedEventArgs e) + { + if (sender is AnimationButton aNumberButton) + { + switch (aNumberButton.Name) + { + case nameof(ButtonCancel): + this.InputText = string.Empty; + break; + case nameof(ButtonBack): + if (this.InputText != null && this.InputText.Length > 0) + { + this.InputText = this.InputText.Remove(this.InputText.Length - 1, 1); + } + break; + default: + if (!this.MaxLength.Equals(0) ) + { + if (this.InputText.Length < this.MaxLength) + { + this.InputText = this.InputText + (string)aNumberButton.Tag; + } + } + else + { + if (!(this.InputText.Length.Equals(0) && aNumberButton.Tag.Equals("0"))) + { + this.InputText = this.InputText + (string)aNumberButton.Tag; + } + + } + break; + } + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml new file mode 100644 index 0000000..72820e2 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml.cs new file mode 100644 index 0000000..496b532 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PBStoreAgree.xaml.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; + + +namespace SPC.Kiosk.Popup +{ + /// + /// PBStoreAgree.xaml에 대한 상호 작용 논리 + /// + public partial class PBStoreAgree : UserControl + { + public static readonly DependencyProperty StoreDataProperty = + DependencyProperty.Register(nameof(StoreData), typeof(M_StoreAgree), typeof(PBStoreAgree), new PropertyMetadata(null, new PropertyChangedCallback(OnStoreDataPropertyChanged))); + + + public static readonly DependencyProperty SelectedProperty = + DependencyProperty.Register(nameof(Selected), typeof(bool), typeof(PBStoreAgree), new PropertyMetadata(false)); + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(PBStoreAgree), new UIPropertyMetadata(null)); + public bool Selected + { + get { return (bool)GetValue(SelectedProperty); } + set { SetValue(SelectedProperty, value); } + } + + + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// Store Data + /// + public M_StoreAgree StoreData + { + get { return (M_StoreAgree)GetValue(StoreDataProperty); } + set { SetValue(StoreDataProperty, value); } + } + #region [ Make RoutedEvent 'MouseClicked'] + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(PBStoreAgree)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(PBStoreAgree.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + #endregion Make RoutedEvent 'MouseClicked' + public PBStoreAgree() + { + InitializeComponent(); + } + private void ResetVisible() + { + this.WelcomInfo.Visibility = this.StoreData.IsFavoriteStore ? Visibility.Visible : Visibility.Collapsed; + this.StoreInfo1.Visibility = this.StoreData.IsFavoriteStore ? Visibility.Collapsed : Visibility.Visible; + this.StoreInfo2.Visibility = this.StoreData.IsFavoriteStore ? Visibility.Collapsed : Visibility.Visible; + this.StoreAgree.Visibility = this.StoreData.IsFavoriteStore ? Visibility.Collapsed : Visibility.Visible; + } + + private static void OnStoreDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as PBStoreAgree; + if (e.NewValue is M_StoreAgree storeAgree) + { + target.ResetVisible(); + } + } + + private static void DisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + } + + private void StoreAgree_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(this.StoreData); + } + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml new file mode 100644 index 0000000..b252d7d --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml.cs new file mode 100644 index 0000000..2a8930b --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentProcess.xaml.cs @@ -0,0 +1,221 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; +using System.Threading.Tasks; + +namespace SPC.Kiosk.Popup +{ + /// + /// CallEmployee.xaml에 대한 상호 작용 논리 + /// + public partial class PaymentProcess : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmPaymentProcess ViewModel { get; set; } + private double GetPayments { get; set; } + private LastPaymentsType GetPaymentType { get; set; } + private bool FirstLoaded = true; + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public PaymentProcess(LastPaymentsType _getPaymentType, double _totalPayment ) + { + GetPaymentType = _getPaymentType; + GetPayments = _totalPayment; + InitializeComponent(); + this.ContentRendered += PaymentProcess_ContentRendered; + this.Loaded += PaymentProcess_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void ChangeWindow() + { + this.Dispatcher.Invoke((Action)(() => + { + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + })); + } + private void TargetAnimation_Completed(object sender, EventArgs e) + { + if (this.ViewModel.PaymentWindow.Equals(PaymentWindowType.PaymentStart)) + { + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + } + else + { + this.BarCode.IsEnabled = false; + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + this.ViewModel.PaymentWindow = PaymentWindowType.PaymentStart; + this.BarCode.IsEnabled = true; + this.BarCode.Focus(); + + + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= PaymentProcess_ContentRendered; + this.Loaded -= PaymentProcess_Loaded; + this.BarCode.PreviewKeyDown -= BarCode_PreviewKeyDown; + this.BarCode.LostFocus -= BarCode_LostFocus; + this.ViewModel.Dispose(); + this.Close(); + } + private void PaymentProcess_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + } + + private void PaymentProcess_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmPaymentProcess viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.PaymentType = GetPaymentType; + this.ViewModel.Payments = GetPayments; + this.ViewModel.IsTimeoutPopup = false; + } + this.BarCode.PreviewKeyDown += BarCode_PreviewKeyDown; + this.BarCode.LostFocus += BarCode_LostFocus; + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + + } + private void BarCode_LostFocus(object sender, RoutedEventArgs e) + { + this.BarCode.Focus(); + } + + private void BarCode_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) + { + if (sender is System.Windows.Controls.TextBox textBox + && (e.Key.Equals(Key.Enter) || e.Key.Equals(Key.Return)) + && !string.IsNullOrEmpty(textBox.Text)) + { + this.ViewModel.ReadBarCode = textBox.Text.Trim(); + textBox.Text = string.Empty; + } + } + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + if (this.ViewModel.ImmediatelyClose) + { + CloseAnimation_Completed(null, null); + } + else + { + CloseWindow(); + } + } + break; + case "PaymentWindow": + if (!FirstLoaded) + { + ChangeWindow(); + } + else + { + FirstLoaded = false; + } + break; + } + } + + + + + + + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml new file mode 100644 index 0000000..e989952 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml @@ -0,0 +1,1155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml.cs new file mode 100644 index 0000000..ce4596a --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PaymentsEnd.xaml.cs @@ -0,0 +1,192 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +using System.Windows.Media.Animation; + +namespace SPC.Kiosk.Popup +{ + /// + /// PaymentsEnd.xaml에 대한 상호 작용 논리 + /// + public partial class PaymentsEnd : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmPaymentsEnd ViewModel { get; set; } + /// + /// HappyPoint 인증 및 사용 정보 + /// + private PaymentEndWindowEndType GetPaymentEndWindow { get; set; } + private List GetBasketItems { get; set; } + private bool GetHappyPointReseve { get; set; } + private bool GetOkCashBagReseve { get; set; } + private M_HappyPointReturn GetHappyPointReturn { get; set; } + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + /// + /// + public PaymentsEnd(PaymentEndWindowEndType _paymentEndWindow + , List _getBasketItems + , bool _happyPointReserve + , bool _okCashBagReserve + , M_HappyPointReturn _getHappyPointReturn = null) + { + GetPaymentEndWindow = _paymentEndWindow; + GetBasketItems = _getBasketItems; + GetHappyPointReseve = _happyPointReserve; + GetOkCashBagReseve = _okCashBagReserve; + GetHappyPointReturn = _getHappyPointReturn; + InitializeComponent(); + this.ContentRendered += PaymentsEnd_ContentRendered; + this.Loaded += PaymentsEnd_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void ChangeWindow() + { + try + { + var _target = this.FrameData; + var targetAnimation = new Storyboard(); + var centerX = _target.ActualWidth / 2; + var centerY = _target.ActualHeight / 2; + _target.RenderTransform = new ScaleTransform(1, 1, centerX, centerY); + var flipXAni = new DoubleAnimation(0, 1, new Duration(TimeSpan.FromSeconds(0.2))); + Storyboard.SetTarget(flipXAni, _target); + Storyboard.SetTargetProperty(flipXAni, new PropertyPath("RenderTransform.ScaleX")); + targetAnimation.Children.Add(flipXAni); + targetAnimation.Completed += TargetAnimation_Completed; + targetAnimation.Begin(); + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "ChangeWindow()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + private void TargetAnimation_Completed(object sender, EventArgs e) + { + } + #endregion Methods + + #region [ Event Handlers ] + private void OpenAnimations_Completed(object sender, EventArgs e) + { + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.ContentRendered -= PaymentsEnd_ContentRendered; + this.Loaded -= PaymentsEnd_Loaded; + this.ViewModel.Dispose(); + this.Close(); + } + private void PaymentsEnd_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 1300; + this.FrameBase.Height = 1010; + OpenWindow(); + + } + private void PaymentsEnd_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmPaymentsEnd viewModel) + { + this.ViewModel = viewModel; + this.ViewModel.PropertyChanged += ViewModel_PropertyChanged; + this.ViewModel.EndWindow = GetPaymentEndWindow; + this.ViewModel.BasketData = GetBasketItems; + this.ViewModel.HappyPointReturn = GetHappyPointReturn; + this.ViewModel.HappyPointReserve = GetHappyPointReseve; + this.ViewModel.OkCashBagReserve = GetOkCashBagReseve; + this.ViewModel.PopupWidth = this.FrameBase.Width; + this.ViewModel.PaymentEndWindow = PaymentEndWindowType.CashReceipt; + this.ViewModel.IsTimeoutPopup = false; + } + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + if (this.ViewModel.ImmediatelyClose) + { + CloseAnimation_Completed(null, null); + } + else + { + CloseWindow(); + } + } + break; + case "PointUsingWindow": + ChangeWindow(); + break; + + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/PopupManager.cs b/Kiosk/Popup/SPC.Kiosk.Popup/PopupManager.cs new file mode 100644 index 0000000..53bfcbf --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/PopupManager.cs @@ -0,0 +1,429 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; +namespace SPC.Kiosk.Popup +{ + /// + /// Popup Manager + /// + public sealed class PopupManager + { + private static PopupManager instance = null; + private static readonly object padlock = new object(); + /// + /// This Class Instance + /// + public static PopupManager GetInstance + { + get + { + lock (padlock) + { + if (instance == null) + { + instance = new PopupManager(); + } + return instance; + } + } + } + public void OpenPaymentsEnd(PaymentEndWindowEndType _paymentEndWindow + , List _getBasketItems + , bool _happyPointReserve + , bool _okCashBagReserve + , M_HappyPointReturn _happyPointReturn=null) + { + try + { + var PaymentsEndWin = new PaymentsEnd(_paymentEndWindow + , _getBasketItems + , _happyPointReserve + , _okCashBagReserve + , _happyPointReturn); + PaymentsEndWin.ShowDialog(); + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenPaymentsEnd", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + } + } + /// + /// 번호 입력창 + /// + /// + /// + /// + /// + /// + /// + /// + public M_PopupReturn OpenNumPadPopup(SupportLanguageType _languageType + , List _guideText + , bool _formated = false + , bool _isPassword = true + , int _maxLength = 4 + , int _checkLength = 4) + { + M_PopupReturn result = null; + try + { + var NumPadPopupWin = new NumPadPopup(_languageType + , _guideText + , _formated + , _isPassword + , _maxLength + , _checkLength); + NumPadPopupWin.ShowDialog(); + if (NumPadPopupWin.DataContext is VmNumPadPopup viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenNumPadPopup", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + + } + return result; + } + public M_PopupReturn OpenStepInfoPopup() + { + M_PopupReturn result = null; + try + { + var StepInfoPopupWin = new StepInfoPopup(); + StepInfoPopupWin.ShowDialog(); + if (StepInfoPopupWin.DataContext is VmStepInfoPopup viewModel) + { + result = viewModel.ReturnValue; + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenStepInfoPopup", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + + } + return result; + } + /// + /// Open MiniPopup + /// + /// + /// + public M_PopupReturn OpenMiniPopup(M_MiniPopup _miniPopup) + { + M_PopupReturn result = null; + try + { + if (_miniPopup is M_MiniPopup) + { + var MiniPopupWin = new MiniPopup(_miniPopup); + MiniPopupWin.ShowDialog(); + if (MiniPopupWin.DataContext is VmMiniPopup viewModel) + { + result = viewModel.ReturnValue; + } + //MiniPopupWin.DataContext = null; + //MiniPopupWin.Content = null; + //MiniPopupWin = null; + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenMiniPopup", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + + } + return result; + } + /// + /// Option Select + /// + /// + /// + /// + /// + public M_PopupReturn OpenOptionSelect(List _getItemName + , List _getOptions + , string _getItemImage + , int _getItemCount + , double _getItemPrice + , bool _editMode = false) + { + M_PopupReturn result = null; + try + { + var OptionSelectWin = new OptionSelect(_getItemName + , _getOptions + , _getItemImage + , _getItemCount + , _getItemPrice + , _editMode); + OptionSelectWin.ShowDialog(); + if (OptionSelectWin.DataContext is VmOptionSelect viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenOptionSelect", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// Last Payment + /// + /// + public M_PopupReturn OpenPaymentProcess(LastPaymentsType _paymentType, double _totalPayment ) + { + M_PopupReturn result = null; + try + { + var PaymentProcessWin = new PaymentProcess(_paymentType, _totalPayment); + PaymentProcessWin.ShowDialog(); + if (PaymentProcessWin.DataContext is VmPaymentProcess viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenPaymentProcess", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// Language Select + /// + /// + public M_PopupReturn OpenLanguageSelector(SupportLanguageType _supportLanguageType) + { + M_PopupReturn result = null; + try + { + var LanguageSelectorWin = new LanguageSelector(_supportLanguageType); + LanguageSelectorWin.ShowDialog(); + if (LanguageSelectorWin.DataContext is VmLanguageSelector viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenLanguageSelector()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + + } + return result; + } + /// + /// Call Employee + /// + /// + public M_PopupReturn OpenCallEmployee() + { + M_PopupReturn result = null; + try + { + var CallEmployeeWin = new CallEmployee(); + CallEmployeeWin.ShowDialog(); + if (CallEmployeeWin.DataContext is VmCallEmployee viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenCallEmployee", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// HappyPoint Certify + /// + /// + public M_PopupReturn OpenHappyPointCertify(bool _showLanguageButton=true, bool _showMemberHistoryItems = true, ParentPage _popupParentPage = ParentPage.EmptyPage) + { + M_PopupReturn result = null; + try + { + var HappyPointCertifyWin = new HappyPointCertify(_showLanguageButton, _showMemberHistoryItems, _popupParentPage); + HappyPointCertifyWin.ShowDialog(); + if (HappyPointCertifyWin.DataContext is VmHappyPointCertify viewModel) + { + result = new M_PopupReturn + { + OKAnswer = viewModel.ReturnValue.OKAnswer, + TimeOut = viewModel.ReturnValue.TimeOut, + ReturnLanguage = viewModel.ReturnValue.ReturnLanguage, + PopupArgs = viewModel.ReturnValue.PopupArgs + }; + } + + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenHappyPointCertify", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// HappyPoint Using + /// + /// 이전 인증 결과 + /// 결제 대상 금액 + /// + public M_PopupReturn OpenHappyPointUsing(M_HappyPointReturn _happyPointReturn, double _totalPayment = 0) + { + M_PopupReturn result = null; + try + { + var HappyPointUsingWin = new HappyPointUsing(_happyPointReturn, _totalPayment); + HappyPointUsingWin.ShowDialog(); + if (HappyPointUsingWin.DataContext is VmHappyPointUsing viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenHappyPointUsing", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + public M_PopupReturn OpenHappyAppCoupon(M_HappyPointReturn _happyPointReturn, double _totalPayment = 0) + { + M_PopupReturn result = null; + try + { + var HappyAppCouponWin = new HappyPointCoupon(_happyPointReturn, _totalPayment); + HappyAppCouponWin.ShowDialog(); + if (HappyAppCouponWin.DataContext is VmHappyPointCoupon viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenHappyAppCoupon", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + public M_PopupReturn OpenMobileHappyCoupon(List _getBasketItems , double _totalPayment = 0) + { + M_PopupReturn result = null; + try + { + var MobileHappyCouponWin = new MobileHappyCoupon(_getBasketItems, _totalPayment); + MobileHappyCouponWin.ShowDialog(); + if (MobileHappyCouponWin.DataContext is VmMobileHappyCoupon viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenMobileHappyCoupon()", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// OK CashBag Certify + /// + /// 결제 대상 금액 + /// 적립 가능 유무 + /// + public M_PopupReturn OpenOkCashBagCertify() + { + M_PopupReturn result = null; + try + { + var OkCashBagCertifyWin = new OkCashBagCertify(); + OkCashBagCertifyWin.ShowDialog(); + if (OkCashBagCertifyWin.DataContext is VmOkCashBagCertify viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenOkCashBagCertify", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + /// + /// OK CashBag Using + /// + /// 결제 대상 금액 + /// 적립 가능 유무 + /// + public M_PopupReturn OpenOkCashBagUsing(double _totalPayment=0, bool _reserveEnabled = true) + { + M_PopupReturn result = null; + try + { + var OkCashBagUsingWin = new OkCashBagUsing(_totalPayment, _reserveEnabled); + OkCashBagUsingWin.ShowDialog(); + if (OkCashBagUsingWin.DataContext is VmOkCashBagUsing viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenOkCashBagUsing", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + /// + /// MobileCompany Certify && Discount + /// + /// 대상 통신사 + /// 경제 대상 금액 + /// + public M_PopupReturn OpenMobileCompanyCertify(MobileCompanyType _mobileCompany, double _totalPayment = 0) + { + M_PopupReturn result = null; + try + { + var MobileCompanyMemberCertifyWin = new MobileCompanyMemberCertify(_mobileCompany, _totalPayment); + MobileCompanyMemberCertifyWin.ShowDialog(); + if (MobileCompanyMemberCertifyWin.DataContext is VmMobileCompanyMemberCertify viewModel) + { + result = viewModel.ReturnValue; + } + } + catch (Exception ex) + { + CommonLog.ErrorLogWrite(this, "OpenMobileCompanyCertify", "Fail", string.Format("{0}\n{1}", ex.Message, ex.StackTrace)); + result = null; + } + return result; + } + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/Properties/AssemblyInfo.cs b/Kiosk/Popup/SPC.Kiosk.Popup/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..81c5e24 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Popup")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Zin Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Popup")] +[assembly: AssemblyCopyright("Copyright © Zin Inc. 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("7c64409c-24e1-4d9e-a686-b13061f1c61b")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/SPC.Kiosk.Popup.csproj b/Kiosk/Popup/SPC.Kiosk.Popup/SPC.Kiosk.Popup.csproj new file mode 100644 index 0000000..782d9ac --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/SPC.Kiosk.Popup.csproj @@ -0,0 +1,249 @@ + + + + + Debug + AnyCPU + {7C64409C-24E1-4D9E-A686-B13061F1C61B} + Library + Properties + SPC.Kiosk.Popup + SPC.Kiosk.Popup + v4.0 + 512 + true + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + HappyPointCoupon.xaml + + + StepInfoPopup.xaml + + + MobileHappyCoupon.xaml + + + NumPadPopup.xaml + + + MiniPopup.xaml + + + HappyAppCoupon.xaml + + + HappyAppCoupons.xaml + + + VirtureMobileHappyCoupons.xaml + + + VirtureMobileHappyCoupon.xaml + + + PaymentsEnd.xaml + + + PBNumericPad.xaml + + + OptionSelector.xaml + + + OptionGroup.xaml + + + OptionItem.xaml + + + OptionSelect.xaml + + + OkCashBagCertify.xaml + + + PaymentProcess.xaml + + + CallEmployee.xaml + + + HappyPointUsing.xaml + + + LanguageSelector.xaml + + + MobileCompanyMemberCertify.xaml + + + OkCashBagUsing.xaml + + + HappyPointCertify.xaml + + + PBStoreAgree.xaml + + + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {fee44681-7f0e-469a-a833-dc324eb6d01a} + SPC.Kiosk.DataHelper + + + {be7fc15c-325b-4ad4-8ea0-a8244193e431} + SPC.Kiosk.Popup.Model + + + {9ef1fec9-5f0a-4a4e-8723-e93f30798fd2} + SPC.Kiosk.Popup.ViewModel + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + XamlIntelliSenseFileGenerator + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + + + \ No newline at end of file diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml new file mode 100644 index 0000000..56340c0 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml.cs new file mode 100644 index 0000000..1b9f19f --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/StepInfoPopup.xaml.cs @@ -0,0 +1,134 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Forms; +using System.Drawing; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using System.Windows.Threading; +using SPC.Kiosk.Popup.Model; +using SPC.Kiosk.Popup.ViewModel; + +namespace SPC.Kiosk.Popup +{ + /// + /// StepInfoPopup.xaml에 대한 상호 작용 논리 + /// + public partial class StepInfoPopup : Window + { + #region [ Members ] + private int ScreenNo { get; set; } = 0; + private VmStepInfoPopup ViewModel { get; set; } + + + #endregion Members + + #region [ Ctor ] + /// + /// Ctor + /// + public StepInfoPopup() + { + InitializeComponent(); + this.ContentRendered += StepInfoPopup_ContentRendered; + this.Loaded += StepInfoPopup_Loaded; + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = Screen.AllScreens[ScreenNo].Bounds.Width; + this.Height = Screen.AllScreens[ScreenNo].Bounds.Height; + + } + + #endregion Ctor + + #region [ Methods ] + private void OpenWindow() + { + var OpenAnimations = Animations.GetOpenAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeUp + , this.FrameBase.Height + , 0.5 + , 0.2); + if (OpenAnimations != null) + { + OpenAnimations.Begin(); + } + } + private void CloseWindow() + { + var CloseAnimation = Animations.GetCloseAnimation(this.FrameBase + , OpenCloseAnimationType.FullSizeDown + , this.FrameBase.Height + , 0.5 + , 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void CloseAnimation_Completed(object sender, EventArgs e) + { + + this.ContentRendered -= StepInfoPopup_ContentRendered; + this.Loaded -= StepInfoPopup_Loaded; + this.ViewModel.Dispose(); + this.Close(); + } + + private void StepInfoPopup_ContentRendered(object sender, EventArgs e) + { + this.FrameBase.Width = 800; + this.FrameBase.Height = 540; + OpenWindow(); + } + + private void StepInfoPopup_Loaded(object sender, RoutedEventArgs e) + { + if (this.DataContext is VmStepInfoPopup viewModel) + { + ViewModel = viewModel; + ViewModel.PropertyChanged += ViewModel_PropertyChanged; + ViewModel.IsTimeoutPopup = false; + } + this.FrameBase.Width = 0; + this.FrameBase.Height = 0; + } + + private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "CanWindowClose": + if (this.ViewModel.CanWindowClose) + { + CloseWindow(); + } + break; + } + } + + + + + + + #endregion Event Handlers + } + + +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml new file mode 100644 index 0000000..bd73acd --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml.cs new file mode 100644 index 0000000..061a820 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupon.xaml.cs @@ -0,0 +1,211 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup +{ + /// + /// DiscountAndValue.xaml에 대한 상호 작용 논리 + /// + public partial class VirtureMobileHappyCoupon : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty ItemDataProperty = + DependencyProperty.Register(nameof(ItemData), typeof(M_MobileCouponDetail), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(new M_MobileCouponDetail(), new PropertyChangedCallback(OnItemDataPropertyChanged))); + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(SupportLanguageType.ko)); + /// + /// Button Switch + /// + public static readonly DependencyProperty SwitchPropery = + DependencyProperty.Register(nameof(Switch), typeof(bool), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(false, new PropertyChangedCallback(OnSwitchProperyChanged))); + public static readonly DependencyProperty EnabledPropery = + DependencyProperty.Register(nameof(Enabled), typeof(bool), typeof(VirtureMobileHappyCoupon), new PropertyMetadata(true, new PropertyChangedCallback(OnEnabledProperyChanged))); + + + + /// + /// Button Switch + /// + public bool Switch + { + get { return (bool)GetValue(SwitchPropery); } + set { SetValue(SwitchPropery, value);} + + } + /// + /// Button Enabled + /// + public bool Enabled + { + get { return (bool)GetValue(EnabledPropery); } + set { SetValue(EnabledPropery, value); } + + } + /// + /// ItemData + /// + public M_MobileCouponDetail ItemData + { + get { return (M_MobileCouponDetail)GetValue(ItemDataProperty); } + set { SetValue(ItemDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + /// + /// Button NormalBrush + /// + public string ButtonNormalBrush { get; set; } + public string ButtonDownBrush { get; set; } + public string ButtonSwitchOnBrush { get; set; } + public string ButtonDisableBrush { get; set; } + + #region [ RoutedEvent 'MouseClicked' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent MouseClickedEvent = EventManager.RegisterRoutedEvent(nameof(MouseClicked), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(VirtureMobileHappyCoupon)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler MouseClicked + { + add { AddHandler(MouseClickedEvent, value); } + remove { RemoveHandler(MouseClickedEvent, value); } + } + #endregion RoutedEvent 'MouseClicked' + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public VirtureMobileHappyCoupon() + { + ButtonNormalBrush = ResourceManager.GetNximagePathAdd("btn_coupon_n.png", CommonValue.PBdesignImagesPath); + ButtonDownBrush = ResourceManager.GetNximagePathAdd("btn_coupon_p.png", CommonValue.PBdesignImagesPath); + ButtonSwitchOnBrush = ResourceManager.GetNximagePathAdd("btn_coupon_s.png", CommonValue.PBdesignImagesPath); + ButtonDisableBrush = ResourceManager.GetNximagePathAdd("btn_coupon_d.png", CommonValue.PBdesignImagesPath); + InitializeComponent(); + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseMouseClickedEvent(object _sender) + { + RoutedEventArgs newEventArgs = new RoutedEventArgs(VirtureMobileHappyCoupon.MouseClickedEvent, _sender); + RaiseEvent(newEventArgs); + } + #endregion Methods + + #region [ Event Handlers ] + private static void OnSwitchProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as VirtureMobileHappyCoupon; + target.OptionButton.Switch = (bool)e.NewValue; + } + private static void OnEnabledProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as VirtureMobileHappyCoupon; + target.OptionButton.Enabled = (bool)e.NewValue; + } + + private static void OnItemDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var target = d as VirtureMobileHappyCoupon; + if (e.OldValue is M_MobileCouponDetail oldValue) + { + oldValue.PropertyChanged -= target.ItemData_PropertyChanged; + } + if (e.NewValue is M_MobileCouponDetail newValue) + { + newValue.PropertyChanged += target.ItemData_PropertyChanged; + if (newValue.Status.Equals(MobileCouponStatusType.CanUse)) + { + switch (newValue.Type) + { + case MobileCouponType.NormalValue: + target.RemainAmount.Text = string.Format("잔액:{0}", newValue.CanUsingPrice.ToString("#,##0")); + break; + case MobileCouponType.ValueFixed: + target.RemainAmount.Text = string.Format("1회:{0}", newValue.CanUsingPrice.ToString("#,##0")); + break; + case MobileCouponType.ValueLimit: + target.RemainAmount.Text = string.Format("최대:{0}", newValue.CanUsingPrice.ToString("#,##0")); + break; + } + target.Enabled = true; + target.UsingValue.Visibility = newValue.DiscountPrice.Equals(0) + ? Visibility.Collapsed + : Visibility.Visible; + + } + else + { + target.Enabled = false; + target.UsingValue.Visibility = Visibility.Collapsed; + } + } + } + + private void ItemData_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "DiscountPrice": + if (this.ItemData.Status.Equals(MobileCouponStatusType.CanUse)) + { + this.UsingValue.Visibility = this.ItemData.DiscountPrice.Equals(0) + ? Visibility.Collapsed + : Visibility.Visible; + this.Switch = this.ItemData.DiscountPrice > 0; + } + else + { + this.UsingValue.Visibility = Visibility.Collapsed; + } + break; + } + } + + private void OptionButton_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseMouseClickedEvent(this.ItemData); + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml new file mode 100644 index 0000000..9ea3468 --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml.cs b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml.cs new file mode 100644 index 0000000..fe2d35a --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/VirtureMobileHappyCoupons.xaml.cs @@ -0,0 +1,284 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using SPC.Kiosk.Base; +using SPC.Kiosk.Common; +using SPC.Kiosk.Popup.Model; +namespace SPC.Kiosk.Popup +{ + /// + /// MiniBasketItem.xaml에 대한 상호 작용 논리 + /// + public partial class VirtureMobileHappyCoupons : UserControl + { + #region [ Members ] + /// + /// ItemData + /// + public static readonly DependencyProperty CouponDataProperty = + DependencyProperty.Register(nameof(CouponData), typeof(M_MobileCouponReturn), typeof(VirtureMobileHappyCoupons), new PropertyMetadata(null, new PropertyChangedCallback(OnCouponDataPropertyChanged))); + + + /// + /// Display Language + /// + public static readonly DependencyProperty DisplayLanguagePropery = + DependencyProperty.Register(nameof(DisplayLanguage), typeof(SupportLanguageType), typeof(VirtureMobileHappyCoupons), new PropertyMetadata(SupportLanguageType.ko, new PropertyChangedCallback(OnDisplayLanguageProperyChanged))); + /// + /// Vertical Scroll Offset + /// + public static readonly DependencyProperty VerticalOffsetProperty = + DependencyProperty.Register(nameof(VerticalOffset), typeof(double), typeof(VirtureMobileHappyCoupons), new PropertyMetadata(0d, new PropertyChangedCallback(OnVerticalOffsetPropertyChanged))); + + /// + /// Command + /// + public static readonly DependencyProperty CommandProperty = + DependencyProperty.Register(nameof(Command), typeof(ICommand), typeof(VirtureMobileHappyCoupons), new UIPropertyMetadata(null)); + + /// + /// Command + /// + public ICommand Command + { + get { return (ICommand)GetValue(CommandProperty); } + set { SetValue(CommandProperty, value); } + } + /// + /// Vertical Scroll Offset + /// + public double VerticalOffset + { + get { return (double)GetValue(VerticalOffsetProperty); } + set { SetValue(VerticalOffsetProperty, value); } + } + + /// + /// ItemData + /// + public M_MobileCouponReturn CouponData + { + get { return (M_MobileCouponReturn)GetValue(CouponDataProperty); } + set { SetValue(CouponDataProperty, value); } + } + /// + /// Display Language + /// + public SupportLanguageType DisplayLanguage + { + get { return (SupportLanguageType)GetValue(DisplayLanguagePropery); } + set { SetValue(DisplayLanguagePropery, value); } + } + #region [ RoutedEvent 'CouponSelect' ] + + /// + /// MouseClicked Event + /// + public static readonly RoutedEvent CouponSelectEvent = EventManager.RegisterRoutedEvent(nameof(CouponSelect), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(VirtureMobileHappyCoupons)); + /// + /// MouseClicked Routed Event Handler + /// + public event RoutedEventHandler CouponSelect + { + add { AddHandler(CouponSelectEvent, value); } + remove { RemoveHandler(CouponSelectEvent, value); } + } + #endregion RoutedEvent 'SelectChange' + private double mouseDownYposition = -1; + private bool MoseDown = false; + + #endregion Members + + #region [ Ctor & Etc ] + /// + /// Ctor + /// + public VirtureMobileHappyCoupons() + { + InitializeComponent(); + CouponGrid.PreviewMouseDown += CouponGrid_PreviewMouseDown; + CouponGrid.PreviewMouseUp += CouponGrid_PreviewMouseUp; + CouponGrid.PreviewMouseMove += CouponGrid_PreviewMouseMove; + CouponGrid.MouseLeave += CouponGrid_MouseLeave; + + } + + #endregion Ctor & Etc + + #region [ Methods ] + /// + /// Raise MouseClicked Event + /// + private void RaiseCouponSelectEvent(object _sender) + { + if (Command != null && Command.CanExecute(_sender)) + { + Command.Execute(_sender); + } + RoutedEventArgs newEventArgs = new RoutedEventArgs(VirtureMobileHappyCoupons.CouponSelectEvent, _sender); + RaiseEvent(newEventArgs); + } + private void SetCouponStack(M_MobileCouponReturn newValue) + { + foreach (var aGrid in CouponStack.Children) + { + if (aGrid is Grid aCoupons) + { + foreach (var aStack in aCoupons.Children) + { + if (aStack is StackPanel aItems) + { + foreach (var aItem in aItems.Children) + { + if (aItem is VirtureMobileHappyCoupon aCoupon) + { + aCoupon.MouseClicked -= ACoupon_MouseClicked; + } + } + aItems.Children.Clear(); + } + } + aCoupons.Children.Clear(); + } + } + CouponStack.Children.Clear(); + if (newValue.VirtureCoupons.Count.Equals(0)) return; + var index = 0; + Grid lineGrid = null; + StackPanel lineStack = null; + foreach (var aCouponDetail in newValue.VirtureCoupons) + { + var newCoupon = new VirtureMobileHappyCoupon + { + ItemData = aCouponDetail, + Enabled = aCouponDetail.Status.Equals(MobileCouponStatusType.CanUse), + DisplayLanguage = this.DisplayLanguage + }; + if ((index % 3).Equals(0)) + { + lineGrid = new Grid + { + VerticalAlignment = VerticalAlignment.Top, + HorizontalAlignment = HorizontalAlignment.Left, + Width = newCoupon.Width * 3, + Height = newCoupon.Height, + }; + lineStack = new StackPanel + { + VerticalAlignment = VerticalAlignment.Top, + HorizontalAlignment = HorizontalAlignment.Left, + Orientation = Orientation.Horizontal, + }; + + } + newCoupon.MouseClicked += ACoupon_MouseClicked; + newCoupon.Name = string.Format("MobileCoupon{0}", index); + this.ReregisterName(newCoupon.Name, newCoupon); + lineStack.Children.Add(newCoupon); + index++; + if ((index % 3).Equals(0)) + { + lineGrid.Children.Add(lineStack); + CouponStack.Children.Add(lineGrid); + } + } + if (!(index % 3).Equals(0)) + { + lineGrid.Children.Add(lineStack); + CouponStack.Children.Add(lineGrid); + } + } + #endregion Methods + + #region [ Event Handlers ] + private void ACoupon_MouseClicked(object sender, RoutedEventArgs e) + { + RaiseCouponSelectEvent(e.OriginalSource); + } + private static void OnVerticalOffsetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue != e.OldValue) + { + var target = d as VirtureMobileHappyCoupons; + target.MainScroll.ScrollToVerticalOffset((double)e.NewValue); + } + } + + private static void OnCouponDataPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is M_MobileCouponReturn newValue) + { + var target = d as VirtureMobileHappyCoupons; + target.SetCouponStack(newValue); + } + } + + + private static void OnDisplayLanguageProperyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (e.NewValue is SupportLanguageType newValue) + { + var target = d as VirtureMobileHappyCoupons; + foreach (var aGrid in target.CouponStack.Children) + { + if (aGrid is Grid aCoupons) + { + foreach (var aStack in aCoupons.Children) + { + if (aStack is StackPanel aItems) + { + foreach (var aItem in aItems.Children) + { + if (aItem is VirtureMobileHappyCoupon aCoupon) + { + aCoupon.DisplayLanguage = newValue; + } + } + } + } + } + } + } + } + private void CouponGrid_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + var requstGrid = sender as Grid; + mouseDownYposition = e.GetPosition(sender as Grid).Y; + MoseDown = true; + } + + private void CouponGrid_PreviewMouseUp(object sender, MouseButtonEventArgs e) + { + MoseDown = false; + } + + private void CouponGrid_PreviewMouseMove(object sender, MouseEventArgs e) + { + if (!MoseDown) return; + var requstGrid = sender as Grid; + var curMouseYposition = e.GetPosition(requstGrid).Y; + VerticalOffset = VerticalOffset + (mouseDownYposition - curMouseYposition) * 2; + mouseDownYposition = curMouseYposition; + } + + private void CouponGrid_MouseLeave(object sender, MouseEventArgs e) + { + MoseDown = false; + } + #endregion Event Handlers + + } +} diff --git a/Kiosk/Popup/SPC.Kiosk.Popup/packages.config b/Kiosk/Popup/SPC.Kiosk.Popup/packages.config new file mode 100644 index 0000000..d7bbafa --- /dev/null +++ b/Kiosk/Popup/SPC.Kiosk.Popup/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Kiosk/Start/SPC.Kiosk.Start.Model/Properties/AssemblyInfo.cs b/Kiosk/Start/SPC.Kiosk.Start.Model/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..2fa629d --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start.Model/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Start.Model")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("SPC.Kiosk.Start.Model")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("37f15b06-9bcb-4f3c-8eb5-050d6be1c344")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Start/SPC.Kiosk.Start.Model/SPC.Kiosk.Start.Model.csproj b/Kiosk/Start/SPC.Kiosk.Start.Model/SPC.Kiosk.Start.Model.csproj new file mode 100644 index 0000000..66ef52d --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start.Model/SPC.Kiosk.Start.Model.csproj @@ -0,0 +1,57 @@ + + + + + Debug + AnyCPU + {37F15B06-9BCB-4F3C-8EB5-050D6BE1C344} + Library + Properties + SPC.Kiosk.Start.Model + SPC.Kiosk.Start.Model + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + + \ No newline at end of file diff --git a/Kiosk/Start/SPC.Kiosk.Start.Model/m_InitImage.cs b/Kiosk/Start/SPC.Kiosk.Start.Model/m_InitImage.cs new file mode 100644 index 0000000..0ef87cb --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start.Model/m_InitImage.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using SPC.Kiosk.Common; +namespace SPC.Kiosk.Start.Model +{ + public class M_UriImage + { + public int Index { get; set; } + public UriTypes LinkType { get; set; } + public string LinkUri { get; set; } + public string Image { get; set; } + } + +} diff --git a/Kiosk/Start/SPC.Kiosk.Start.ViewModel/Properties/AssemblyInfo.cs b/Kiosk/Start/SPC.Kiosk.Start.ViewModel/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8c07e43 --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start.ViewModel/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Start.ViewModel")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("KioskStart")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("beacf939-6802-4d28-8445-e02692e741a4")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Start/SPC.Kiosk.Start.ViewModel/SPC.Kiosk.Start.ViewModel.csproj b/Kiosk/Start/SPC.Kiosk.Start.ViewModel/SPC.Kiosk.Start.ViewModel.csproj new file mode 100644 index 0000000..ec1db72 --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start.ViewModel/SPC.Kiosk.Start.ViewModel.csproj @@ -0,0 +1,76 @@ + + + + + Debug + AnyCPU + {BEACF939-6802-4D28-8445-E02692E741A4} + Library + Properties + SPC.Kiosk.Start.ViewModel + SPC.Kiosk.Start.ViewModel + v4.0 + 512 + true + Svn + Svn + Svn + SubversionScc + + + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + x86 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\BIN\Cosmos.BaseFrame.dll + + + ..\..\BIN\Cosmos.Common.dll + + + + + + + + + + + + + + + + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {BA2D06E0-74C0-4785-B39F-D1EAAC13B73D} + SPC.Kiosk.Common + + + {37f15b06-9bcb-4f3c-8eb5-050d6be1c344} + SPC.Kiosk.Start.Model + + + + \ No newline at end of file diff --git a/Kiosk/Start/SPC.Kiosk.Start.ViewModel/StartViewModel.cs b/Kiosk/Start/SPC.Kiosk.Start.ViewModel/StartViewModel.cs new file mode 100644 index 0000000..4608a14 --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start.ViewModel/StartViewModel.cs @@ -0,0 +1,535 @@ +using Cosmos.BaseFrame; +using Cosmos.Common; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.IO; +using System.ComponentModel; +using System.Windows.Input; +using SPC.Kiosk.Common; +using SPC.Kiosk.Base; +using System.Windows.Media.Animation; +using System.Windows; +using System.Collections.ObjectModel; +using System.Windows.Forms; +using SPC.Kiosk.Start.Model; +using System.Text.RegularExpressions; + +namespace SPC.Kiosk.Start.ViewModel +{ + /// + /// Test View Model + /// + public class VmStartViewModel : ViewModelBase + { + #region [ Members ] + + public SupportLanguageType ShowLanguageType + { + get { return CommonValue.CommonLanguageType; } + set { CommonValue.CommonLanguageType = value; PropertyChange("ShowLanguageType"); } + } + public string TitIeImage { get; set; } = ResourceManager.GetCDPimagePath("intro_bimg.png"); + + public string CloseImage { get; set; } = ResourceManager.GetNximagePath("btn_close.png"); + + public string IntroTop { get; set; } = ResourceManager.GetCDPimagePath("블루투스인형1.jpg"); + + public string IntroBottom { get; set; } = ResourceManager.GetCDPimagePath("블루투스인형2.jpg"); + + public ObservableCollection MediaRollItems { get; set; } + + public int ScreenNo { get; set; } + public Size ScreenSize { get; set; } + public string FirstMedia { get; set; } + + public ICommand BaseToTradeCommad { get; protected set; } = null; + public ICommand RollMediaCommand { get; protected set; } = null; + public ICommand ItemDropedCommand { get; protected set; } = null; + public ICommand ListItemDropCommand { get; protected set; } = null; + public ICommand ListCircleClickCommand { get; protected set; } = null; + public ICommand OpenPopupCommand { get; protected set; } = null; + public ICommand WaitPopupCommand { get; protected set; } = null; + + public ICommand NumericPadOkCommand { get; protected set; } = null; + + private bool toggleSwitch = false; + public bool ToggleSwitch + { + get { return toggleSwitch; } + set { toggleSwitch = value; PropertyChange("ToggleSwitch"); } + } + private int testItemPageNo; + public int TestItemPageNo + { + get + { + return testItemPageNo; + } + set + { + testItemPageNo = value; + PropertyChange("TestItemPageNo"); + } + } + private ObservableCollection testItems; + public ObservableCollection TestItems + { + get + { + return testItems; + } + set + { + testItems = value; + PropertyChange("TestItems"); + } + } + private int defaultSelectedItem; + public int DefaultSelectedItem + { + get + { + return defaultSelectedItem; + } + set + { + defaultSelectedItem = value; + PropertyChange("DefaultSelectedItem"); + } + } + private int defaultSelectedPageNo; + public int DefaultSelectedPageNo + { + get + { + return defaultSelectedPageNo; + } + set + { + defaultSelectedPageNo = value; + PropertyChange("DefaultSelectedPageNo"); + } + } + public int SelectedColumnCount { get; set; } + public int SelectedRowCount { get; set; } + + + private ObservableCollection selectedItems; + public ObservableCollection SelectedItems + { + get + { + return selectedItems; + } + set + { + selectedItems = value; + PropertyChange("SelectedItems"); + } + } + + public List PreviousText { get; set; } + public List NextText { get; set; } + public List PopupText { get; set; } + public List ExistText { get; set; } + public List ToggleText { get; set; } + public List TradeHeaderText { get; set; } + + public List OkText { get; set; } + public List CancelText { get; set; } + public List InputMobileNumberMessage { get; set; } + + private string inputNumbers; + public string InputNumbers + { + get + { + return inputNumbers; + } + set + { + inputNumbers = value; + PropertyChange("InputNumbers"); + } + } + + #endregion Members + + #region [ Ctor ] + public VmStartViewModel() + { + ScreenNo = 0; + ScreenSize = new Size(0,0); + InitViewModel(); + } + public VmStartViewModel(int _screenNo,Size _screensize) + { + ScreenNo = _screenNo; + ScreenSize = _screensize; + InitViewModel(); + } + + #endregion Ctor + + #region [ Methods ] + + private void InitViewModel() + { + var waitWindow = new WaitWindow(); + waitWindow.ShowWaitWindow(); + try + { + SelectedColumnCount = 6; + SelectedRowCount = 1; + + BaseToTradeCommad = new Command(BaseToTradeCommandHandler); + RollMediaCommand = new Command(RollMediaCommandHandler); + ItemDropedCommand = new Command(ItemDropedCommandHandler); + ListItemDropCommand = new Command(ListItemDropCommandHandler); + ListCircleClickCommand = new Command(ListCircleClickCommandHandler); + OpenPopupCommand = new Command(OpenPopupCommandHandler); + WaitPopupCommand = new Command(WaitPopupCommandHandler); + NumericPadOkCommand = new Command(NumericPadOkCommandHandler); + TitIeImage = ResourceManager.GetCDPimagePath("intro_bimg.png"); + CloseImage = ResourceManager.GetNximagePath("btn_close.png"); + FirstMedia = ResourceManager.GetCDPmediaPath("CF1.wmv"); + + MediaRollItems = new ObservableCollection + { + new M_MediaRollItem() { Type = MediaType.Image, MediaPath = ResourceManager.GetCDPimagePath("블루투스인형2.jpg"), RunnigSeconds = 10 }, + new M_MediaRollItem() { Type = MediaType.VOD, MediaPath = ResourceManager.GetCDPmediaPath("CF1.wmv"), RunnigSeconds = 48 }, + new M_MediaRollItem() { Type = MediaType.VOD, MediaPath = ResourceManager.GetCDPmediaPath("CF2.wmv"), RunnigSeconds = 39 }, + }; + + PreviousText = Languages.GetMessages("CommonPrevious"); + NextText = Languages.GetMessages("CommonNext"); + PopupText = Languages.GetMessages("CommonPopup"); + ExistText = Languages.GetMessages("CommonExist"); + ToggleText = Languages.GetMessages("CommonToggle"); + TradeHeaderText = Languages.GetMessages("TradeHeader"); + InputMobileNumberMessage = Languages.GetMessages("MobileNumberMessage"); + OkText = Languages.GetMessages("CommonOK"); + CancelText = Languages.GetMessages("CommonCancel"); + + this.PropertyChanged += VmStartViewModel_PropertyChanged; + + + } + catch + { + throw; + } + finally + { + waitWindow.CloseWaitWindow(); + } + } + + + private void VmStartViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + switch (e.PropertyName) + { + case "ToggleSwitch": + ShowLanguageType = ToggleSwitch ? SupportLanguageType.en : SupportLanguageType.ko; + break; + default: + break; + } + } + + + + private List GetEmptyItems(int _emptyCount) + { + List result = null; + + try + { + result = new List(); + for (int i = 0; i < _emptyCount; i++) result.Add(GetAnEmptyItem(i)); + return result; + } + catch + { + result = null; + } + return result; + + } + private M_ItemData GetSelectData(int _index, M_ItemData _sourceData) + { + M_ItemData result = null; + try + { + result = new M_ItemData + { + Index = _index, + ItemCode = _sourceData.ItemCode, + Category1 = "Select", + DataParameter = _sourceData.DataParameter + }; + result.DataParameter.Width = 100; + result.DataParameter.Height = 100; + result.DataParameter.DragEnable = false; + result.DataParameter.DragCursorImage = string.Empty; + result.DataParameter.ClickAnimationType = ButtonAnimationType.None; + result.DataParameter.CircleSize = 30; + result.DataParameter.CircleBackBrush = "Black"; + result.DataParameter.CircleTextBruch = "White"; + result.DataParameter.CircleText = "X"; + } + catch + { + + result = null; + } + return result; + } + private M_ItemData GetAnEmptyItem(int _index) + { + M_ItemData result = null; + try + { + result= new M_ItemData + { + Index = _index, + ItemCode = "EmptyItem", + Category1 = "Empty", + DataParameter = new M_AnimationButton + { + NormalBrush = "Gray", + DownBrush = "Gray", + DragEnable = false, + Width = 100, + Height = 100, + Switch = false, + AutoToggle = false, + ClickAnimationType = ButtonAnimationType.None, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty, + } + }; + } + catch + { + + result = null; + } + return result; + } + private List GetItemImages(List m_ItemDatas) + { + List result = m_ItemDatas; + + try + { + var itemFiles = ResourceManager.GetItemImages("*.png"); + if (result ==null) result= new List(); + result.Clear(); + int index = 0; + foreach (var aItemFles in itemFiles) + { + var aFile = new FileInfo(aItemFles); + if (Regex.IsMatch(aFile.Name.Replace(aFile.Extension, ""), "^[0-9]")) + { + result.Add(new M_ItemData() + { + Index = index, + ItemCode = aFile.Name.Replace(aFile.Extension, ""), + Category1 = "All", + DataParameter = new M_AnimationButton + { + NormalBrush = aItemFles, + DownBrush = aItemFles, + DragCursorImage = aItemFles, + Width = 100, + Height = 100, + BrushStretch = Stretch.Fill, + Switch = false, + AutoToggle = false, + DragEnable = true, + DragCursorHotSpot = HotSpotType.Center, + ClickAnimationType = ButtonAnimationType.SizeUp, + CircleBackBrush = "Transparent", + CircleTextBruch = "Transparent", + CircleText = string.Empty + }, + BaseTextBlock = new M_TextBlock() + { + LanguageData = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = aFile.Name.Replace(aFile.Extension, "")}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = aFile.Name.Replace(aFile.Extension, "")} + }, + TextSize = 14, + TextBrush = "White", + TextWeight = FontWeights.Bold + }, + AdditionTextBlock = new M_TextBlock() + { + LanguageData = new List { + new M_Language{ Type = SupportLanguageType.en, LanguageData = string.Format("₩{0:#,##0}", 3001)}, + new M_Language{ Type = SupportLanguageType.ko, LanguageData = string.Format("₩{0:#,##0}", 3000)} + }, + TextSize = 16, + TextBrush = "LightPink", + TextWeight = FontWeights.Bold, + }, + + }); + index++; + } + } + return result; + } + catch + { + result = null; + } + return result; + } + + private void DataModelInit() + { + var waitWindow = new WaitWindow(); + waitWindow.ShowWaitWindow(); + try + { + ToggleSwitch = false; + TestItems = new ObservableCollection(GetItemImages(null)); + TestItemPageNo = 0; + SelectedItems = new ObservableCollection(GetEmptyItems(1)); + DefaultSelectedItem = 0; + DefaultSelectedPageNo = 0; + + } + catch + { + throw; + } + finally + { + waitWindow.CloseWaitWindow(); + } + + } + + #endregion Methods + + #region Event Handlers + private void NumericPadOkCommandHandler(object _param) + { + if (!string.IsNullOrEmpty(InputNumbers)) + { + if (InputNumbers.Length < 11) + { + KioskMessageBox.TimeMessageBox(ScreenNo + , ScreenSize + , null + , null + , Languages.GetMessages("TimePopupMessage") + , OpenCloseAnimationType.GotoUp + , OpenCloseAnimationType.GotoDown, 0.5, 0.2, 2); + } + else if (InputNumbers.Length.Equals(11)) + { + InputNumbers = string.Empty; + } + } + } + + private void ListItemDropCommandHandler(object _param) + { + if (_param != null) + { + var dropedItem = _param as M_ItemDropEventArgs; + var sourceButton = dropedItem.SourceObject as AnimationButton; + var targetButton = dropedItem.TargetObject as AnimationButton; + var targetData = targetButton.DataParameter as M_ItemData; + var sourceData = sourceButton.DataParameter as M_ItemData; + var selectSourceData = TestItems.Where(r => r.Equals(sourceData)).FirstOrDefault(); + var targetIndex = SelectedItems.IndexOf(targetData); + if (targetIndex > -1) + { + var newSelectItem = GetSelectData(targetData.Index, sourceData); + SelectedItems[targetIndex] = newSelectItem; + targetButton.DataParameter = newSelectItem; + var defaultItem = SelectedItems.Where(r => r.ItemCode.Equals("EmptyItem")).FirstOrDefault(); + if (defaultItem == null) + { + SelectedItems.Add(GetAnEmptyItem(SelectedItems.Count)); + SelectedItems = new ObservableCollection(SelectedItems.ToList()); + } + DefaultSelectedItem = SelectedItems.IndexOf(SelectedItems.Where(r => r.ItemCode.Equals("EmptyItem")).FirstOrDefault()); + DefaultSelectedPageNo = DefaultSelectedItem / (SelectedColumnCount * SelectedRowCount); + } + + } + } + private void ListCircleClickCommandHandler(object _param) + { + var targetButton = _param as AnimationButton; + var targetData = targetButton.DataParameter as M_ItemData; + var targetIndex = SelectedItems.IndexOf(targetData); + if (targetIndex > -1) + { + var newDeletedItem = GetAnEmptyItem(targetIndex); + SelectedItems[targetIndex] = newDeletedItem; + targetButton.DataParameter = newDeletedItem; + DefaultSelectedItem = SelectedItems.IndexOf(SelectedItems.Where(r => r.ItemCode.Equals("EmptyItem")).FirstOrDefault()); + } + } + + private void OpenPopupCommandHandler(object obj) + { + var dialogResult = MessageBoxResult.None; + while (dialogResult.Equals(MessageBoxResult.None)) + { + dialogResult = KioskMessageBox.ShowMessageBox(ScreenNo + , ScreenSize + , Languages.GetMessages("PopupHeader") + , null + , Languages.GetMessages("PopupMessage") + , MessageBoxButton.YesNo + , OpenCloseAnimationType.GotoUp + , OpenCloseAnimationType.GotoDown, 0.5, 0.2); + } + + } + private void WaitPopupCommandHandler(object obj) + { + KioskMessageBox.TimeMessageBox(ScreenNo + , ScreenSize + , null + , null + , Languages.GetMessages("TimePopupMessage") + , OpenCloseAnimationType.GotoLeft + , OpenCloseAnimationType.GotoRight, 0.5, 0.2, 3); + } + + private void BaseToTradeCommandHandler(object _param) + { + DataModelInit(); + } + private void RollMediaCommandHandler(object _param) + { + DataModelInit(); + } + private void ItemDropedCommandHandler(object _param) + { + if (_param is M_ItemDropEventArgs dropedItem) + { + var targetButton = dropedItem.TargetObject as AnimationButton; + targetButton.CircleText = (int.Parse(targetButton.CircleText) + 1).ToString() ; + } + } + + #endregion Event Handlers + } + +} diff --git a/Kiosk/Start/SPC.Kiosk.Start/Properties/AssemblyInfo.cs b/Kiosk/Start/SPC.Kiosk.Start/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b92fa90 --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SPC.Kiosk.Start")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("HP Inc.")] +[assembly: AssemblyProduct("KioskMain")] +[assembly: AssemblyCopyright("Copyright © HP Inc. 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +//지역화 가능 응용 프로그램 빌드를 시작하려면 다음을 설정하세요. +//.csproj 파일에서 내에 CultureYouAreCodingWith를 +//설정하십시오. 예를 들어 소스 파일에서 영어(미국)를 +//사용하는 경우 를 en-US로 설정합니다. 그런 다음 아래 +//NeutralResourceLanguage 특성의 주석 처리를 제거합니다. 아래 줄의 "en-US"를 업데이트하여 +//프로젝트 파일의 UICulture 설정과 일치시킵니다. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //테마별 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) + ResourceDictionaryLocation.SourceAssembly //제네릭 리소스 사전의 위치 + //(페이지 또는 응용 프로그램 리소스 사진에 + // 리소스가 없는 경우에 사용됨) +)] + + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Kiosk/Start/SPC.Kiosk.Start/SPC.Kiosk.Start.csproj b/Kiosk/Start/SPC.Kiosk.Start/SPC.Kiosk.Start.csproj new file mode 100644 index 0000000..93679bf --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start/SPC.Kiosk.Start.csproj @@ -0,0 +1,96 @@ + + + + + Debug + AnyCPU + {252882FC-0458-4FF7-9B3F-1440189A733B} + Library + SPC.Kiosk.Start + SPC.Kiosk.Start + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + Svn + Svn + Svn + SubversionScc + + + x86 + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + 4.0 + + + + + + + ..\..\..\packages\WpfAnimatedGif.1.4.17\lib\net\WpfAnimatedGif.dll + + + + + MSBuild:Compile + Designer + + + StartWindow.xaml + Code + + + + + Code + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {beacf939-6802-4d28-8445-e02692e741a4} + SPC.Kiosk.Start.ViewModel + + + + + + + \ No newline at end of file diff --git a/Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml b/Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml new file mode 100644 index 0000000..16fdbc1 --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml.cs b/Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml.cs new file mode 100644 index 0000000..4e8989d --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start/StartWindow.xaml.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Runtime.InteropServices; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Forms; +using System.Windows.Input; +using System.Windows.Media.Animation; +using SPC.Kiosk.Common; +using System.Threading.Tasks; +namespace SPC.Kiosk.Start +{ + /// + /// MainWindow.xaml에 대한 상호 작용 논리 + /// + public partial class StartWindow : Window + { + public int ScreenNo { get; set; } = 0; + public Size WindowSize { get; set; } = new Size(0, 0); + public StartWindow() + { + StartInitialize(); + } + public StartWindow(Size _size) + { + WindowSize = _size; + StartInitialize(); + } + public StartWindow(int _screenNo) + { + ScreenNo = _screenNo; + StartInitialize(); + } + + public StartWindow(int _screenNo,Size _size) + { + ScreenNo = _screenNo; + WindowSize = _size; + StartInitialize(); + } + private void StartInitialize() + { + InitializeComponent(); + this.Left = Screen.AllScreens[ScreenNo].WorkingArea.Left; + this.Top = Screen.AllScreens[ScreenNo].WorkingArea.Top; + this.Width = WindowSize.Width.Equals(0) ? Screen.AllScreens[ScreenNo].Bounds.Width : WindowSize.Width; + this.Height = WindowSize.Height.Equals(0) ? Screen.AllScreens[ScreenNo].Bounds.Height : WindowSize.Height; + this.Closed += StartWindow_Closed; + } + + private void StartWindow_Closed(object sender, EventArgs e) + { + this.Loaded -= StartWindow_Loaded; + this.DataContext = null; + BindingOperations.ClearAllBindings(this); + GC.SuppressFinalize(this); + } + + ~StartWindow() { } + private void StartWindow_Loaded(object sender, RoutedEventArgs e) + { + OpenBase(); + + } + private void BaseToTrade() + { + + ItemList.DefaultPageNo = 0; + var OpenAnimations = Animations.GetOpenAndCloseAnimation(this.BaseGrid, this.TradeGrid, OpenCloseAnimationType.GotoLeft, this.Width, 0.3); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = "TradeOpen"; + OpenAnimations.Begin(); + } + } + private void TradeToBase() + { + + var OpenAnimations = Animations.GetOpenAndCloseAnimation(this.TradeGrid,this.BaseGrid, OpenCloseAnimationType.GotoRight, this.Width, 0.3); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = "BaseOpen"; + OpenAnimations.Begin(); + } + + } + private void TradeToBasket() + { + + var OpenAnimations = Animations.GetOpenAndCloseAnimation(this.TradeGrid,this.BasketGrid, OpenCloseAnimationType.GotoLeft, this.Width,0.3); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = "BasketOpen"; + OpenAnimations.Begin(); + } + + } + private void BasketToTrade() + { + + var OpenAnimations = Animations.GetOpenAndCloseAnimation(this.BasketGrid,this.TradeGrid, OpenCloseAnimationType.GotoRight, this.Width, 0.3); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = "TradeOpen"; + OpenAnimations.Begin(); + } + + } + + private void OpenBase() + { + this.TradeGrid.IsEnabled = false; + this.BasketGrid.IsEnabled = false; + this.TradeGrid.Visibility = Visibility.Hidden; + this.BasketGrid.Visibility = Visibility.Hidden; + var OpenAnimations = Animations.GetOpenAnimation(this.BaseGrid, OpenCloseAnimationType.GotoLeft, this.Width, 0.5); + if (OpenAnimations != null) + { + OpenAnimations.Completed += OpenAnimations_Completed; + OpenAnimations.Name = "BaseOpen"; + OpenAnimations.Begin(); + } + } + private void CloseBase() + { + var CloseAnimation = Animations.GetCloseAnimation(this.BasketGrid, OpenCloseAnimationType.GotoLeft, this.Width, 0.2); + if (CloseAnimation != null) + { + CloseAnimation.Completed += CloseAnimation_Completed; + CloseAnimation.Begin(); + } + } + private void OpenAnimations_Completed(object sender, EventArgs e) + { + var senderStoryboard = (sender as ClockGroup).Timeline as Storyboard; + var getName = senderStoryboard.Name; + switch (senderStoryboard.Name) + { + case "BaseOpen": + this.BaseGrid.IsEnabled = true; + break; + case "TradeOpen": + this.TradeGrid.IsEnabled = true; + break; + case "BasketOpen": + this.BasketGrid.IsEnabled = true; + break; + + } + + } + private void CloseAnimation_Completed(object sender, EventArgs e) + { + this.Close(); + } + private void CloseImage_Click(object sender, RoutedEventArgs e) + { + CloseBase(); + } + private void TradeToBase_MouseClicked(object sender, RoutedEventArgs e) + { + TradeToBase(); + } + private void TradeToBasket_MouseClicked(object sender, RoutedEventArgs e) + { + TradeToBasket(); + } + private void BasketToTrade_MouseClicked(object sender, RoutedEventArgs e) + { + BasketToTrade(); + } + private void BaseToTrade_MouseClicked(object sender, RoutedEventArgs e) + { + BaseToTrade(); + } + private void ToggleButton_MouseClicked(object sender, RoutedEventArgs e) + { + Console.WriteLine("ToggleButton Clicked"); + } + + private void ItemList_MouseClicked(object sender, RoutedEventArgs e) + { + var itemButton = e.OriginalSource as AnimationButton; + Console.WriteLine("ClickItem:{0}",itemButton.NormalBrush); + } + private void TitleMedia3_MouseClicked(object sender, RoutedEventArgs e) + { + var target = sender as MediaPlayer; + target.Restart(); + + } + + } +} diff --git a/Kiosk/Start/SPC.Kiosk.Start/packages.config b/Kiosk/Start/SPC.Kiosk.Start/packages.config new file mode 100644 index 0000000..d7bbafa --- /dev/null +++ b/Kiosk/Start/SPC.Kiosk.Start/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Kiosk/Test/KioskTest/App.xaml b/Kiosk/Test/KioskTest/App.xaml new file mode 100644 index 0000000..d5a8267 --- /dev/null +++ b/Kiosk/Test/KioskTest/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Kiosk/Test/KioskTest/App.xaml.cs b/Kiosk/Test/KioskTest/App.xaml.cs new file mode 100644 index 0000000..70a8dca --- /dev/null +++ b/Kiosk/Test/KioskTest/App.xaml.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Windows; + +namespace TestProject +{ + /// + /// App.xaml에 대한 상호 작용 논리 + /// + public partial class App : Application + { + } +} diff --git a/Kiosk/Test/KioskTest/KioskTest.csproj b/Kiosk/Test/KioskTest/KioskTest.csproj new file mode 100644 index 0000000..a1d9f11 --- /dev/null +++ b/Kiosk/Test/KioskTest/KioskTest.csproj @@ -0,0 +1,132 @@ + + + + + Debug + AnyCPU + {E2928D3E-C5D3-42E7-952D-19491B079A16} + WinExe + KioskTest + KioskTest + v4.0 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + Svn + Svn + Svn + SubversionScc + + + x86 + true + full + false + ..\..\..\..\BIN\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + window_icon_spc_icon.ico + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + {bcc10fa2-c358-480c-8ff0-615750f3c306} + SPC.Kiosk.Base + + + {ba2d06e0-74c0-4785-b39f-d1eaac13b73d} + SPC.Kiosk.Common + + + {bca39ae9-b2eb-495e-be62-ab95b0325cff} + SPC.Kiosk.PB.ViewModel + + + {38393190-821d-496d-a996-11833c20e476} + SPC.Kiosk.PB + + + {37f15b06-9bcb-4f3c-8eb5-050d6be1c344} + SPC.Kiosk.Start.Model + + + {beacf939-6802-4d28-8445-e02692e741a4} + SPC.Kiosk.Start.ViewModel + + + {252882fc-0458-4ff7-9b3f-1440189a733b} + SPC.Kiosk.Start + + + + + + + \ No newline at end of file diff --git a/Kiosk/Test/KioskTest/MainWindow.xaml b/Kiosk/Test/KioskTest/MainWindow.xaml new file mode 100644 index 0000000..ac892fc --- /dev/null +++ b/Kiosk/Test/KioskTest/MainWindow.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + +

    2. 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 **UF$@ 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 literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_barcode_happy.avi b/Dropimage/img_gif_barcode_happy.avi new file mode 100644 index 0000000000000000000000000000000000000000..36563787f8338f499ed48fe2f0c6f622c656618f GIT binary patch literal 181784 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%0D-f@=HVTWor!i{MzE#NhF?%JBIN?RV#6o! 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 C?xu7A literal 0 HcmV?d00001 diff --git a/Dropimage/img_gif_barcode_happy.gif b/Dropimage/img_gif_barcode_happy.gif new file mode 100644 index 0000000000000000000000000000000000000000..c7e7400abaa4f0d9002384d37db7135220dc706e GIT binary patch literal 272464 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

      t=9z?k1}jKy6f6#TeKh0_WGoYU}G^ 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 ?7%i-+c{#^}(#A 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

  • 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_help.png b/Dropimage/btn_help.png new file mode 100644 index 0000000000000000000000000000000000000000..ed36d15741e38bac9727c305a45063fd62b9403e GIT binary patch literal 2544 zcmaJ@XH-+^7L9aKlp=@}3E^QulUx!YBvR855QNaB$Thi`45pA=NT`Yw2LYvtD5wua zKxv8;4JwGpi;98`#IXet2L&C0B|0chaMXD}p6{-8?^o8|`<(Bb{jGJge7xPXG>tS7 z2!xjVMk+%w(&t|dHN`guGn}p%R=~7i*pD9ti$NiTaAongK}dHlxE*3ZAS*uR8svaL zD6iu92gAW$n@CJP7X!{?FcPjn!A2k)oFxK~84bb6ZP0cO&k^;uy#s~hupCiAwqAgj zfC8~O8xw?(UxK$kGa;HuWTBj$kPZ@(LVydwAX38J!4r`rj;OD?B*lDw8;e4Ig}~8{ zsK1j6_VPhe_(BM2i?Ks9t!;2f0uf_v2M}>K>ybFXnt%leSZh2QuqFX^Bs>xM?LjG` z30YAj29^FTmSW|IV#Bb2gvE-*VvHD%;S0B8t%*b;7QkU~IJ5$R7RB>mP=e-(EWRsH zArVu^5x^Wi4>_+0ZsW(ojwnT@e;_#w*^eJhiqU|0z#z*=K~`6GP?dU^eSD3|*K zErJ=)Kl%PoVUd5l0KzgL5kFSQR5UKiVm_3BL=i$D%oqCe`8&Q>(TB~4`64!7fTU37 zt7eZ}6U5=M_+ru8uN*Hgk~>cXgFGhWPIW{nR4^P4i{whc6X_HR*@lQGTU*nJ_5^@J z!{aFgJF*R#Ord<|Qu)kSF2sYsb6NjzDL>`T+kq=kM5aPQP8`Id3;A5+*JG17KhK5u zQ@w9o*3WZs{V5l#NCrFK-2ZC!_br8k=BGcbt62OnKg3fwUZ}8k>}D0kjZuqqr@Hz} z9*&14Z#)uUxbssd^@xb!idJ>)w)@xQahtHQ!vH!zs+eartnTOMOI39(F`s41{4dzvrO6IW=-715JpW6@pH6QNNZ);u@A(F_=cA~H)o%`o_#V?Hhbo=*{8Yqj$5LX zvi&dPZxI`B%*{F3gNuWzRlLEnF8d4}4e`nB{QUfi>l^mvl%w*h^Ic_y8=WhcCPrzU zPcL)xws?!$lb0rgbm&@ITG#Y4@kc3_vM=mPS}_*aJ>`@${lrsk&raWAp2G#J{SO1o*_+7lDCXlOdUKAo63?ppky z+?Z^aoHpIo3T!@;@>yy+%eGmU(zl~!FK{ocgHE^Kr97+D)K|cJ^ULKD@{+)F%JDN; zT&W{fb85k4opPqr_Cpio^m5MW2dU4=O`lBzTq{-9^v@PmACSxC+Q!C&s33E>_CidUEr(%?wdCK2Nxug=KG$gbMj$!n+E+Ljv` z8AV1%XYa9pnfLUN9(`ZN+o{u)QmK(pBtq+EQy5mB77nuc<>P^5OBJ_UMo&4{vv+couwx=D9+1^oQ{Z#vx8$}FL!nA-g5U;??Prn zxO1*UV=MehX>P8^+|$iXy}7yBFsp)3YiViefBcv`4kk!kghJf@H}KK>zGr~tsgzfE zC#Q(Xgv7-5p_v+5ct?uqz~Er+8=9Njly=XNdC*A*59iodMXc8C|HWx+I$|9gj$|$L~xRjH# zSa#z^;f2AWp=)Pr?s`ZWd1zXBF(YifscdF?x>F|8=o{W$q%l>8RwC}{oB%d# zSY&BwN&4c3*ta(Jk2LWx+_^0FU;K{W{7$+DvMxUqvexxNMk8XgTI#Qhhc zE4#F>Q)!Rzc)WD&Z`$`R&iGU*wmy~50B{5o=Z)0+;Myf>N+tB|EmGr4AVc>v>|T2Cb24J^ihgVmv&%Y^XR*L)4k+E zl?lJI_WCt(;aTsC@8}pljJdc&eRmxY`h?kK*uch6hN{sDt(~Atdn^0ytwQAIMQI)KNb8&=o$?MK r&vYG8{>k`PKf`Lk8|)t5x literal 0 HcmV?d00001 diff --git a/Dropimage/btn_language_chi.png b/Dropimage/btn_language_chi.png new file mode 100644 index 0000000000000000000000000000000000000000..eebdf9024f7f0c4b8881da4eb3f6118a58eff622 GIT binary patch literal 2543 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_language_eng.png b/Dropimage/btn_language_eng.png new file mode 100644 index 0000000000000000000000000000000000000000..cb32111bc43ab8202ff2d37bb026d56b2c64db72 GIT binary patch literal 2549 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_language_jap.png b/Dropimage/btn_language_jap.png new file mode 100644 index 0000000000000000000000000000000000000000..51cb3a4785d55583287c34f748470831ad1b824d GIT binary patch literal 2460 zcmaJ@c{r4N8y-s)FESpvCYablO@|QF_I-qqFLTyViq%lvE|SdlPoQ=rgTJK zLY>r?Ito!q6pjv&&ft(Nb&3?yH#+Hje|&xKb-nNJ`90Tj-_QLlf4mZJFE@3S%_<-e zNS*BN;v+jrD=%0{_Kijki)F_qp=+Sfm&+8!QTYJKk-?<_FfyAO4)_36MtpP|U<(2% z7_s~Ug@F`LBAv@dQdeS-A~sKk27zoHL_8`z5)i^@KsbwI2Y-F*4jjf}*uev=C};}L z8HixHC-4E^1TQ~&LL{BQfIHa3Y(+#F0UHofVIp=EM?e(W!N2elW%i021&4hJ5k}g< z{}vTU@rF5b`2frciMOC*EU_?a0uqBq6R?)%Ff1BljY3xy5+x^U?+Y=9$N#WMcEI(`?svJPyXEVB#1XT<^x5}(V4eJPvB`o0$H z@A7@cGQO|H=DS#wOblvexc@cmRhMjoR?Kg!E4zGKet;v}c)o14jkHVsK_DeHvWugi z=-E^V+nwPLwGW<7V+FHmg%Xo?;`H@hPvM*E%ScS5m0uC;d3@*=oU+zvKb%HeBt zLQa9#HE(J*ms(2KHxThSoMs7BcQm;9uGqAhE%tB>i5j)k66pJ5&^)_TfZd;Fd z?|=<@*tC6~%Llv4my5eO5d-hUuWu;z&m|mo(FMn6pxvOxCttZQPmANgVUUZ!zYVVb z@*`MJgQUDxt?oobocN82^i&{RDaO|M!*Op7S2upfz*%IoYnPGH!GUArYS>YD>`T^A z<21 zNn-}&;MDvY)eeO4FGVXFEfgQC{-IeqsTqj6R(3yHZ^kVx!)CBIm|O^5dIu0(@k{@}c6?-=UjXpMWYnW-tQqobqd z?eH*sa%xJLm!6*P|2ilrh}z!X9+i+#M4?bVmb|;o<#4j+W@iyOnH5I6LqeuZ=ik3q z`b~2*=!Ldng{20~$JaOLz<~pe(dX&Q;}@%{`bS5%PR`6QtE#Hx=F4m`n5MDuafMgz zWb$7jnfBm^)UGn|*61+Hxm)Gs;%jwv7Z&^9#};<{38{hT-($Ai9ce9fAi25OjhmU7 z6?QOvduxsyQ7L@huZL?vC`YB=mG&u@uUqK!iTV~dB(oIFD<(~r&H4QDbJ zN)%X;k&!k0*x2jseLHl#^d;m>?Xa75by~crsHjK2HPzL?#KZ))=$U3uOCv{=2)n^d znV6h>7eVpy(U7S=(Iq^RachXJsLW=wOZg;{QhQrlw0aJ^>6L|i4p{7P7czp9oZPU!Ycs=_f%vq=;^$kJFE=hME*3uL z%qzz2PkZom+l=H%@@J!Sn8O=1C*%#qiy66&D&-Xwq%I?tA&E>sfcH?cL8JeOehu9n zA75mUr46BVlAcK~T{3shNNv*9(|aNDWEatU*2w(g$-O^Ki{ww6p-}TBVPRpv=arO| z>Fdo`@45}Sf`N^d99Q)%3hjH3+#kw}jolqU+gA>mwZh}~R}b4t_dv2zCl_4G?=?3! zpB<;_KyoK6A{4ezs&tK)42gON4e9!y^p4wmn&;)^T^Sq<$(M6ki%B|bvRoc9z4Si0 zU{+=0KqHQw*)yS4yit2g(xR??7= zskycve*j@>t4@PSkM@WG)e~tEao(yJ9=$fOpdcV9w?VmVXzv~7uIi84URHf;$};4B zuHLwHj662<=ea^?Kt|)BM?f_k9GY|Zrn?xbNX$W;A2ZVO{FfyO5~vN%3`~k zhG|){m()DGb#^J!$Y@P_d$uH0XGZ>IC74^3t2IlwM3(X-O?^ox-&~it6FNH@PnEW8 zU)G0ZOj(&#iT;$t!A7QXJy4oLVJqnmVY7>&v`bO=WA+kJGdk6HPFoAeN*IU}kpx_4|U z@1@j2H?(-zcg?z*Lx*=bEoD02>o2guMAMMlKZgAz2kKSM^uLzP(qH*sBD;FI)Hv-+ F`wtBd2J8R; literal 0 HcmV?d00001 diff --git a/Dropimage/btn_language_kor.png b/Dropimage/btn_language_kor.png new file mode 100644 index 0000000000000000000000000000000000000000..df8cc406dd651c2399d64f1825389b48dd83bc9b GIT binary patch literal 2629 zcmaJ@X;f3!7S02Wj0OcFf|L-ML_%&xlE@U20I7h0C-+Zp_ORBud65wz zmS*;55D3JQ8A^{ftij8#3Dof2?>(AjSk@~TafZ2$#~p6n<#B4BVa`5yMFraL8O_fIq@lNijGOfeJQ4DH4k16r~^XtzU{^zidV$ z5pN+1fgkdBQE}ms2%1C&A_(3@6bFOHB7Df+7$QK%;=K@90ONxOe9#yi3cyeRA_YfA zynB#_XfiI35={?&7t3(+L#8McQVJTKmX_w7hVz!llF=A4nT!UoXe<_GK%nFY#R|3( zC6;e|?|}}=IWoRf!Iy{;%O2TDl2nBs(xCMB6hzYS@IM@jdJGmZCA<09qtk z&g(5&u80Qzl<}8ndCWm6h>iy3l2jST&=20m_hduu{yxw$(4dAwmvB-=pjg4A`ymY$ zZ!VupVUVa)3_!pW>3AFl!yuCwbOH%OC6a@Kh(1Iz={=VzmMhp|4)~tS|C5XRTP}qr z1KA3REJh*`zVBXSibNrir%0p-8g02-B!ovSU(A)H$u}*R_nlf$#y z{J+qEqv5f{U>ras29uWc2Vns!70&>If&p4k5D9~P$L0P-?(evm|I0-i#Gsd(`#;To zZ!%2K^7fC>H5~pJeo$6i{O-p@QK;(BQyP-TLyBl?EQqbYnyvp*vl!TfCigMcNhQVx833X;UjQ zzO(Pw??m^SM6c`Si!#P#j+5QRMHw9#lS(J0>g5nFx#!?S#*>+w$vt)rT5VV6;{rdb zX{K&P_7rr^bKB+0%J{>*9;5g4D@J$gT}D%jQ+j>(pCffGSWemO&rT_#ZE$jW1pnG7 z(db5ApwxehEzPZw$pS!ViTy!nQuG@F-l$~qjvC!8EpZiPC+-jid6O4gba_9!< zoH*z1M*V9e5}Lke?w?;}YfF>^P^R1*b0j`aFU z;L=E2Xw_3$op;)?lz3g2QM0vMK)_x~!RgbX;P6&^2Zvoeo?A_IHL$t+$Qt(QeGd?6 zW|m*n)`CnXvmXtWmlhXu9UUDbLfm26zP`vGl53saMtdVKdTltCq0wlVy7qlIEVi4J z{`0~XKlWUn@=Z@q1k;KIf{aBA9thTtj*g-lAw72sB4bpqq#gU7E-tntw2hfP%BZNS zYV7O`-67aPRp-up)L*l*09KNXNKH+RFn{s<`MD#S>1o-+Cr>84+Uo0_ciHp}4sM3C zr1wYu^;AI5$*bNTJ8Zv(ttcC3(CMKa&z^x*SKF@=2?W=ornOcTYIT^sS;MnjqoBKu zXH14O;Ba`HP^ccfR?RBQ1zHkNRtcSLo|OENR zupnc?aJ<$Jnx*wXcJI0oZx#D=e4KLlWQ}b*1-Lx)kDV3coDa8dt=M=(q`^wn4Ys#V zc0PPzAG>K@YmyX2SILnCTU%S^@tq%jXl8D1exWBkEKE3sLXNb^-%NiCr3J3Hy&J^7 zc6{#%0EI#cQ&K|h9~$nhh${7(MFHC|&wJ?t2S-P6W@aWw?)*r)+f>yiGii>uTEQ2I z3e}pHmh}7+lP_Li9ZcVNBD-6Crd=Qp$9ggmmu27ln`nG?Wf$(kW~oz_v1);}d-~Pw zR|Gz)eH&8e6<4xQE>DM75>8Md=bT@PoMzmoEaXDCO(yoZVwJ_J8~FARQpanrrXOFq z;p(2$gdy&YhxqFfg5h8I!`DC^ZJ8d=F87?hDt1=ZfUMMTHMFWsxfqKd)PVc4Ax68mMyMYh4WA zwL4u`+;rsui&McfyXtOXgR1)sfIUZD%?;}?G1}93&O;(y>hiUPR{zlB*>}9~#75*w zM)tx<P_NF0Cc@sq&!-iAqe*;G@x-yZz#)`|R(l8(cO&MN)Oyk6WLC}OYqMq~54 z*?NbfZ_a;qacYfRSl&IGQy91Dv_&gyw|>KxLICHLUO#bgkNW`+*1G%r%@o$`r3ufn z^+^lB?Z!v*xkv4)$I?cxch@^RY@30-q8x2(7|BTMgRxX4!)lj3U!%-mwe?qBPG7ve z^OSkwz>M#Q literal 0 HcmV?d00001 diff --git a/Dropimage/btn_main_camerascan_f.png b/Dropimage/btn_main_camerascan_f.png new file mode 100644 index 0000000000000000000000000000000000000000..53c4abc46acbf55abdcb67f3bde1963d4ed55fcd GIT binary patch literal 8482 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 literal 0 HcmV?d00001 diff --git a/Dropimage/btn_main_menu_p.png b/Dropimage/btn_main_menu_p.png new file mode 100644 index 0000000000000000000000000000000000000000..abf7be060d3ad60d758bbba3956a0a252c338b07 GIT binary patch literal 1243 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 a1$yZbA%S|lrHOMNZ*5^`US@hR;=ce9?){no literal 0 HcmV?d00001 diff --git a/Dropimage/btn_main_selforder_n.png b/Dropimage/btn_main_selforder_n.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf361681dd349ea158e52049d0aad280320f205 GIT binary patch literal 6207 zcmcIoc{tQ<_a94TjYwI-kd(@dv5sY8vNTz%>@@Ts z9+h2oGa*}qCo;(J`_A(|J@0#6zhA$YYrfxeo%6ZRea`2;?{mI!7tGJ`^N90+ zKp_6}C<7}Hh%FBUV&~%83rJ)_GZ4U^7}3y{XpM6t2BGm75YiQQ4Ff*!gLcPQVbHE2 z{_PkY5QszG)5ex)Yi6qDg7bl(SvrtlA3wkv1k%wB_Cvd1F+}h+jJu~VLUy^nQ5Nj! zijcjmW~OB3r;qXQM1|rp)}iJ$E}>W#O;=gnGhm%yEdam=LqvmveY|}MTEPg}zi_pH zXOqOarQ<0fnh3 zD#5gr)U{MJ!GHf`f!Xk`Zdz6bMt{!*ydh*gh(tdvC^RT22oj_M!QtJZFilNOsFE^N zSy>U#P$Y!-64AkmzJ#Mc5DYK`7rdt*(G%wjW+9@l;R1*VS-{hOEy2g{A6Q?)-(dm* z1`S60L17Rj){=fGnwkCosy;sdXcLH5n1B2Ge*zP1Li{jLD+~b_fOi2B=XR7em7kVA z9)l+0@HRM{_m3!E@W2sq1P`1aSYMwNH8}XhWlvvMTo6IwFB>y6t@FMFBHGslbKU?U z3!p$eJzce61_l~ukw`;T!?VgTn4u=p$VkOV9j2zNk2E@~stW&MYk+eJ@WJ>Jf7rVI z+t%o(wk$gM_yIE;VDO%S7*``a&IkP0vb8*a?u-6U@&2}T{kbm&KedGd&Olko{f}h- z5CIHgJ^n*o;N>6kV|)R|;{j@qmB8>I(81F421uLWk;QRtKk{_M>xs)Rr#W(zhnyu6 zhC#R4`JIJCxXwM|kOEJmZjb`mtw%ueX8PE~yj$J!);u-BT5Kw}OnFs&My|1&bMW&i zdOi}n5XC!zQg~6d*ZYy^(b0|mVMgjD8^_YXfa2oR^$_JT?9zr*v29@azCwAnpLD`Gnfc_hIk#0r*rXoVSm%O7=&oG_3Wa@dR zbS^kg=_ZvccS5HYD*{1$O%?Fi7EO&#vpuv(w0ug4(jJAZV$$=9$kL!4+0Kjp*)I}7 z4=lATmzLntUjl~f;OQe{w4R+1X}^3?HYL97_Ae`I>bjkV3aHs>>QTvpuz?IVr6bDe z?^S9C)&d=QdfUE2?9sI#QMb)m#Up7^6;8C*TInDLGRjpUlTN@cf`mp~xNssh& z5ll%Wtcvc^w70l=TVgOB-_;kk`5t0&~9`iG=SiOjhs;aS0v8p;MP-@MEopPNgwPU_OE1m3q4Cj3KQWUNYX#o`&4Y`C6kTTAJ z!<=!(O1}%)I4&eknoxKv4umhyIMk_8u9NSbrFteFR@ZK&=dWgFW|p;? zcIDycfwJO|&{FEG#H2mFtzdP^yQt~d)^&0pkNwU&`0@2E!nvv5t&S4QvLaLYzHjQ8 z9f2eIPoB~=p1{nP4}RZg_O$c6QNgfHCiH^G+N>O8D} z85E$z`2*r6AmN9jq*Wo5WxtDT$g?CM z@FEvZZ6lK-m3A(Yt?ikDazo$tR$m~|_@lMu)WjW>UnBA|ylH}mFlKHS^%Fhu}uuQxfq%S?XltA#`*u6Z-TDQKc*k1)0yf&^DUGyZrHFsUlNrNuzy$vr7vK$GeYhjJYMtB#lhk=DLY|3VQfq! zw_lWghU~U}|6=Kz>exdY-NFugUc_>~iMBB-jq5K3n-v!!DBVU=Uf3puSTpFFc5pa( zbaMOilNc&vehQoCF4id1sdL$olN%|%!5{Ep&$Ef6){Q+Q1OAsD-%}>Y$57=D?xxT;@W@o#d+Ae-nz~Qzi`?=RBjL8Roq)_UA@-3wQuD;G zjR`6Hm#GKqa<0vZUbZySX2<{w;p@$-%c%2AX)BHR_T@|8-H4S8Mqtdqdgld=l7cRu zOS{X7H+QlU-*?=bH)#nuLDVgnFGLRtE54Qzic)-r-OS?sxVGBkMBSM7@|dG2u3lRhkj3^*jm7f9!P_&G zFOMnI@`A>k*`iZ4zOEA5%h74=tJ+Pek*m6B2ZBlM&fEE$6;5|nbKwh9;ZS0uG3D@X z?ln!BI0_mMn*nI#eajTGyinm(!U4%{jDojp(tQGxciu`8{BR=PIF67QFOL!rX@{sMNXE zH|)K%9`5B#}PkjEs!I%)Uf!dtgGVBiPsUz6UCTaNgBOZeXf+5ud>eTE=^td zTA-92IaXY9KFnBmr?g|j>G}(p&Y@W*#Ycbhk_0|QYI)7L6j8WK{BVx+R8^u#0R=Ot z6khPc6;rr1aM<}1p_6Ar55-7yrXOw~&Rln3z>Z0$t0)w2e|*8^)?hr zgNA>zUcKw9f(|!>uRaxX=-a8?Gm-wmt|=Gl&8HjhFFwgFbncUUmibQTTtk<_oA&un zTtXtkc^pMDD3}pp(y=ERW^g=pByj0{o!|0w`r2vUdg}5@NJ?{xlcvtt#>bHry=3c# zFm2~$?uqp-2v?yr%tbG9_TU?fBU%*f&SVou6Oi&R@zxngorY)CYbuTM8uJO%)LK0z zoY+_;3|!zsc}fG(2VIDvW2?d7R*y^1e7f$0$R$I*%JX|?xQ}SII#9K8iGZC;*v-`Pw;$4761i7O5vyAM(#@2=t$($ZoC zV4vqGD>q&TA_5J^n-9KXAnk&;^Y57-KSvVGw)g=Vt&)$NPLS^y1?7sFea|Mf1Mn9pk4}1OIoC&LA z*wKyiI?a1q^)$9Yvtct-dfA*Yhm%yKzuTI=YjvmBnk~QC^f-etwg0!ug}x>;s9?d` z$6@Y}uEnhV3uZYs&ZFFw_2W)9DPi(=!o$pp$G^l~X?t_8@X%18@mOFut!kd+ymh3W z`EjysR+o;gv-Gg1<}Y;91eXbK2MJo6Z#PtIQz3u2m0z!YZYrO`U7Hh8h>&|rjqNW_ zs|ZkyPyvo)Dctg$P6${!B~m#m%y{o&b6@+EE>|xBn*Ti$;$?qz*#@s;&4JbB!&S?VLY zpp*)$BDoh2mQ+1vAGH3;lEE++m>akMDAsN*Xtz4~;eZBYZE((+*{O>Z_!bwI&Ya97uDM68@R*&BqoelNm zLp~8@$iOaSasmrDiM*&Yr2$k(LSUdydi{sL6~{DB?~BJ9SAs<_z}m*SE^6G(E zisc%0J6ZZTP-dy17;Pa$)o|g3G^lambzUJGK>*L4qys-BD96byI)3D(KIyA{VDF;e zRLCkb@7-eNslnUdvmJ3Vf^u(j#T|t`n>I4yL--%RkfWSBI7O0-o={5$A)m+wx8n3j zf^yE@K>Zi>pfI1J;yprJD%APgF+DBe_ruO*vwt}Tc*@2l)O;Y1$Q2wv&Bhs*y#GE` z&bgc1uU8vQ)F<<&?(n~NeEHVm0B0ObDi4~tj$7J@E{rKpDq&bd%Fj7@tQ)@qdJ5qAP_tvL9I7>A2HOc~5YR(KCIdK1Pf%RT( zD~eB+|7ha<(SR0Bi1$v-eP#`ga zX4Ol_xnpBb9ggDUNR~P^^`|l`1guJ(Gs#n*^we$GTb(-WdhBFVq%F{Qc~y@ICDc?m zpNNZS&pMd;w z_yk+hnLp~i>o9E2a7_7dT*%?dJTNsYXoB5j&ub-Z_;MGn5KR3oXyWz&_YL$zdd933 z>C%itur+xvcF$`+-~wwDqlY7wCsP$rrzVR#!rI3D6U)6p4~C!EyM)@MU40PMFEnfM zl@?-3&S~2$ho5VGRvrW5vvMdo_DrGcji%NzbI?^eJ&VU2NM_6m~Wg)LIaUW8+%yCm|#Ollh`DrAu+Dor0k)Z zW&7THe9rfM_uO;*db+>2rTK|w48vOFJ~4yFcJJBbNAF*->1i~yxl+y@Gz)H7u^|@M z%sj;9l2U{jsA%J(XJHh>HomN9b8arRPf*QLQ1N_%m6C;`F)X^bVkzn{bn!ea>PC#X zwRD=mbuC65;8LNKm4HKf--HbZC;GGM#IVY1#NIu4v?3sY5_A>3QW`NFp%Noja0N8? z%oKsIxVXbHVpUWwmBtgM4RJ0QCe;v4;{XI{mIHw9#F-GyP$6^!l4b=C2uv4VzX-%; zYXu=AChJ^i6(fdR*AghITrLO8;hmy5;Jo zfqRHb-W+pd1X8-Xg_4y@tpOWOJy9rSR7J5UIvAo#C2wCV-j17r|I1j{+sTewkjg;E z9J5t)9)<0VV3fND6M2qEjWA&A=ungq(NxDu&~RljMxZZ2P1gj#hnNUdc~XOUh73no zKq@R3AwwvsD$OezQ^+@P){7UVP=cYwI1412rX{{74&o7xXGOpzMG#IjVr9c|6+?v$ zZXI#gWBCWh3JDu3u4!jYbEHuP=^@iKogvf06N3QXc|bQbv+Q(uN3^|#R%h2&9Q$=p{$4HK$MZ@ShHXtCB(&_I1;qlSrU zH}V+f+a`uFAwd3Kd8`wWOE-ff!n+n9esZOjZ|9 z)%b_uC)p^so1U;{T%f&nhPXlOC zZeRpwL!uDel;|D6Ox(dFvdq_gk8qABDHZTQF&z=li{y()@h;|{^^%nG!fTW{;xk0N z!^QkBr-Es|2seQcMBtGG2PPVaK{yhTXaYdQ;Or3?0PTnZ98qYj1Arz01QM2r_;Q&m ztqECdl0Sv|#g=mBVjdwDN0CsdxVSiE92O}MhNI9#A`t~(P#BDZ65$|9;EU<;4t$Zt zR}BdS`?5F1)}^xkswCMRMvxS@s+I1-M<@J04lv9`3O16qR=BL0%i;k2pt@6>fUjInzDP{xGr_O6IZE4KxcGnNlH7zKT`Uj=2n3N| zyTCU>AQp%s1W^dLO$3BZ5Qona#EEPdO7vI66i~>C1zA*~fQR^;V-n{Z_Q@DGECEk& z#Sz?r1>cl=Cd!gc$p& zCx34skgwb|Lgn@txM7QfK(rosQpf@E{iEBqMH&XeejUpiEFa`?OuXRTGCK)nZ^MOd zn;tdpkCw@~kOS*V;bRBqJXq>0oFO6B44 z`1>OxT=#nWpOcn)LsJ9Du&n3c)Y=fRC6x-LNcOCSxZnvJ?({`-wiFa7p3qC2rFxDkW zBg5wvts53a!fIH9dY8vIyN~3Fyw3)Yc}g zI&KxY{p269+`LMCx!0Z?1v!nd2Yz&+ZnzV+>0$&W-q&j z!>IOi!$vtvX}n>zcB99WHNM6gFY8VGPtNYz0N^9q!!~_4*gb7WuUZv$JhTiYg%=rD z=1a~2dYz#5+)z*F^1;yGDbT>#o*dcgHlvpZO<(0!sr3UJvcakNTa5)^W|BJo>6189 zq^_{OI9nX;42J1kpdUfLYh;vZ{yAfpHkOxlZ)TNgl^U9U=9oCz0X(z#gmOKy$FBCM zO_WhcSKy5I5d*gRqnNDc?!UR!(VMqWJdWs9{J^G;|0Wf;^a)^MkG3{Kg6ze2zf|2i zkbUhTATvlGW_GTu8E{wyGFoJ(e_SR>2rlSs@-J}ElGHqUx$UglCrR&nl`GKHDP0ey zZX?j7Cs!ZB_rf)#9Z;=j&v9%x_ou_{lB41&Yp@vKwvybJD>r(f&JpnlZKhiS!xzsz zImN4>^RxG&`O<+%g4d$B9wTXT?~U7RIZn7SHrY7hstJ$a6_7+7O6!l5?iG7B-Mp~3 zU9wcI{RHyUCt_B{QYD-eUO_+j8VmQh&z8@W+hof0e(C*{U{c_7!*Xbw|Jim4@s7(I zb#`9m_ex-A@nIW)E5#B_hEbj{(Y+PVZBIg{O%6rq=+O=zyr|t7eG)2i%^q0}TYt_M zhB_2kNcX>FxaP`t$4^9?g)noi1fqKV{R^>*`o<>EbZKhwGyA9&AwwkySizdJ9ZPm@ z+lslHSJfSysk^0*2TNzZ2Z}fPH*L7_wAeA7y1E213vNs4t?Fus%fYl|{}D+*4IW!N zxU{nI@fjIRW6(f1EOuB(oZYul(tG0NF>U{P{k57J8c$cm!a}-E7u0r0=|?aglKuOa zKo>7=DIL`>vciouJw7TkrVg$2G``aXUTL1d@ua2Ef%BGF>u@%;`&h0Lj6?^IwlP;yd-NwohU^V1TbiwB~3!kV$_#D?X+t5i0#D+Z#g zTVIK$TF0TNJi*7R(o&xX(a<98%5&5tC$l=3WWvL_|Iwq}^PLwrJ~4oD$+V)3*Ue2D zN&RM$u8SA-U;3mOCRX?^;+|_!U%d;PIWr(}U16)wcz+m(^NC!GzsIh5Q7D=oS{(5F z_U2Ify1mheHbTW%_xc^@8i3=~cVz^#HN(_UX_6+!uhLamxW{0Mfp$rD@G#SAOndQ{PjL*AGf$@N`Kwalx2blLfK^ho;>hlKGP&`?Na z@O9b&`h%C}AF8fUj667G6GU)$_w@5;`a?iX$$g``IP&lHz5W)VJ{78|jj@yM@y-uJ zw{E>MACi9J%7@uW{j(lZ9W;f?)~@?+`*DUJAxUYVqO~lzIJ3#q(xBy4`JGeN(^gox zd!0@_-ad3Q=Z#B>PU%GSg)YwOPdC|tVXD_KIbOZj7|yNJxtJxDPYrXn9Zvcw#<6;l zGuOW>z|KmNV?H8#rr=(KHXZ16>gnmRgU3|$X}-%GQU!R1-y@#Zk9xbjnqsk#k{aT* z8=7aEC&z6C*R$;g%k!*Tb;}PLH~)Yrc5J}GeJr_d!u>pcZrdfGdC;y#)qCPmoa$&V z6X))D|8YoAivN3vAQw$uhb)2|(}=I8s@$4i_=oUx_okG%Zcq6ShR$_| literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number2.png b/Dropimage/btn_number2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a357699b778b745ba0da032deabcfdc08b43406 GIT binary patch literal 2572 zcmaJ@c~}!?8V}+kD+y3U2!X9J2x2A4|sH+OU3#YXA9RT(0UQYL|N2*D9b`4E;D4@N`55GYL9 zbrWJE5Qed$(5=d?{(dZhG@by?+YplDWiT3nV7n*FKtUX&#PXqNk;Dx*dHE_1D-ycl z!f5`0zsw7Y5p7JBLm{b~Lj|dE0;Uk>{xz1J%z_ExAti`Sju%T5tYkOb2VNGupH~xc z*bgSkI5*tKptkx4V!fnt2umZ-@d6T+jAbwhBs#z(Q=PG7fW#mI3?hkw2S_Y{&Z01} z3l|RdCKpDrg1J5mzF^4>7o$|lSVUq{QW7DFLXgU%i6kbINd(A5G8qqB;1wwnC76tt zDC`#*xR6317s-?&sRTRE2=b)~N;e!F>Bkh}W&Zx3h$V`JLct{?CWA5}i2xAeH(YuHBzInm2@_VFk!Va8p1rS1L$|ha^fK z*9`~1AqYi67M%%@T_6DyFNFAHJjI1d$AeUw3tT`dO+aFTLUI&;k>_)G8kOtGCDZ6s zrZ`rHUA-4C@s_$2x_HBtmJDV%>a;K4#2?kqL+I2hvmfc)RUEUMrsoZo&Le^~f* zfFKEcYUJ?oIL|v&hCmp(@VK1NMxEzeC24J)m`uk-=Tr)aCUSk^jP z2H7t!@>p@F&d0dRQ((M4!u-ZRbDd1`UwC4J&e4nv9Rn@#oA?~m(^VG1*0H{aj(+bQ z(yuRVw@7~djT$;8Hs$ChixG>$ry#wQ3RB8v(_*PuGfYIo>Jx}adQ zG1u95r_a>Yofj2kB6W_<8*<34Iqy5#Mdl}mc9Qyb=m+fAa8CH9q7zg3Q=rW_I6%Ca?*@V@1}jYDK)IMg4AYqJs|JMQyWLOQrzFN2b{|v-7%=PZ`N2gpFXVVH9#Iu zC-cVNM!kp#?NsTh}wr6Zzm(Yq)Rp(3yU-7@|UbTJH&B72}iLA^^JYE!$AyT9L zvOq$gWq$3A9$BR7I)6D*0gi*}yvphWU|&|)@syDZh@-_DIQ$Sp?OcD2X7;rY&xKyE z1^&wRZ^e{eT2r%TOJUxO&f~am6tjNss;;4>q6@wkzE!UotS~6Om1Y)IZG7aeRlZ&< zQ>*ljiKgs8QcKCRrj`UAd-cqI-^%x#=X1QGvAm0D`7MX|%x!1+jn@I|2n(|>9vquK zt4CjW-UdwM#$9f>L+`<{UsV2vXmN_twq)B?^_etaMhLnqozn4#Rrh1#Fe9SjLEHYA z^xQ!xPgI4^ zyIeEPHHIDkP3%^2Ci48(3kHFU*gfNZ7sUmqj=3ikIopmn4hNLj;%zGpW<#pl8bJ)K z#=xQxEVeg-h{sO>f6%$KnDyw z@^^YqKdkP6dDp_cPFuh>^{;EDYfr?94U%$@vx4yMM|sL*7hUK0 za?8NzkU*@mso2qa>m{LZ>FwrkvaF3$1aG$3%m^EemTE(nl?B{(Y}b#yp-P*dQ=Xgh z^0hueOu3=z7GuEKrs8#0Q5w;qEN#H42&i;@Cdo1zA6qfgWnRFD{3UzazRQ`~TF@iy kY3rIl{5Ef&Dnl3|S|L8oAkE^){Qnuxdo%YRo{{^02NG>CO8@`> literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_0.png b/Dropimage/btn_number_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd8d9dc1919b9af6ae7e3c06df45b34b408d153 GIT binary patch literal 3780 zcmaJ^c|25WA6J&w(uAalt7%3hjF~Zu84O_>S;k(dWX8BB4!FQFIJ(Uieu8_`!}j6`f6s4XRBZYko?8HWHN)DH+?aY(Q?ckaTVEG7x&iKC*Z zJR2a8wL6jzxJNp9Fd`2zh)kHJ1=L(*3IebJAss4W2Xh3bA`TQSw_O3-$jIn zNU$HIyr?cv8!jJ!;*2l|1`3Ua;_*gkEDn!H8$yjyXk#P_yzvM$))a>~H8z3%b-_Su ze5Svt8=3N#E%1v33ls`@rbuLXc(_qG#)!)gK%$96;tGbbF#?o82qHK_x(LA$z<(l; z0Re;0;t5$?4s->P?#B%kl3*ayA1<(YRO;Wr9Km0K0z-xr(RoO;5ems>ulV&{S|D@- z{zKy*r3D@lJOJqi2)Lnq2AB_j_)ldpcK_ediXh0w)S1r$lR^(Ba~Yv*fFraclVISE z5tGF<#S>A+1b{(AFabYf1crdcBj{Kh0f7R8%0Lt8Ok;n)pE&=hZ?lU?#1hF^{4OvX zyNCn=8D)dU?V?~QHdYjj)lXeJjzCD~Fo2)7Su3`G=-T{WT~ixAKo@fP9$aql&nj>U zi> z10ottzz{)a$i{d)*_uM$WeodEm-%0D`%$0Z3do=LlZGh{iy<%p0vdtGU`-GV082;E z8F(TBjY0bv`vW+@1dD)X(liBOLUD@5v2e2&~B zSl{~J72Moip5%r6z87ZwG57LK>-C<9-*>E2g}SZ|bVmiHtbdRadNfoF)U)I4VzpexI&Z zP1-2~S80$Zqq40$J<~ob%95#6s#CNjMNe%^T)rw;ux4Sa7h)!)*Q0kMEw!)lx^XYc zaMko<+kGZ8@ZR|AYkQ;Tmth*&3S-{vZWq1NyLH#EjelAlGODceOPJ$7~pqqrKW z+uGXNS9u=M(b4O;l?{V2StSW}PJE1skbHcLxOpXBkb=10gbl*+g4Z!m8$+c4r!jBWgrA+1rU zryWyLEBXkVxo93AVp$ZGkYNV^%e!DNCvwC4t81~@|JEM@Q<8L|>K0ZGF z0fh@I9&nc7^jBYbF-J(I2dU2#i_$-jNUkr21Uzdh-k3P5|4^=E?mWBUzT3iFt*m>(l=@OEMHew*SFZ`RHlx8ob{DZ zc~|Yyz&Ibw+&(JA?kvrAyJI>kn&h?0*%g3}+ln@vAsvQF~ z$b-#RZtN6N`xkQvaf`_XxN1^McM1e2SKfVwnjP0aJiif^j$KMWeC#;Dd?78dI16}%7J$!S%+?KXAh(XfJ?--u1qKy}o%idH+6@%QDRy7HrHYkUm- z1jm@<+kn&X4C~@=NEh+Z@Db?(PojlxE9AnB>}#t@PYlk*vtpwVjOIG1NeYH z`y5ePO;pC_Pj2A8?@2Pu7Za*~JQ*|C8Ie9o=<#kze5cH}=Y;&x?<{7W?r0rIvWwDOmOaKJXFu1KPI_%6Xpa}6r)8zF zIVPJ=^Ts${;OAlZ6l8=Ka>cb72n%qh{y&qxS(E)HM9HMtT$dIac{b(*cN~FV5aPQbk7qL)r@#vzH@fhCroZc@8ni&&t{2Xy3y-XfiVA$^bu`h zx@i1CYOzJrBRM~;^0N8*4qMQ@ngX4?s;UJiU){{|EqliS#e#{htV7Jq`Oc45I>p3h zDwZnSZltimHu)w**B{qaYbkznFPaO>%O4VbZw8)r z_qGk`pY}d)+}5oVmjfQ92-QfP zQ|)CI_9XMQG%xCx1&jzRje({%i7M6U9)7tlFBIHA*gbWfw0v{_d6&7k}h~(U@ZXP>hfA zMcU24t`~28+AdUdowyXAg%}G>M`?b$l|c5>dadKyEWMNSX?fWj`6=v5S@XH4T6h?K zbC=;e_>yI-!tE`#+YX%CAs+dBoIC&FL+HWU$UPo8Rz~2CYn)*)?a?QcW7;KIyMUc; z!_C%fTVw6H1iGU>t50m5odT^M`6fp+FP|OTnK-U?wzTt}`n77ESK9sbXk|a!bhf{w z?dXJc0=;BPl&_u&RkG-r~io)Ry`BsxemS))({XBW#A& z!)Lxl^MlDPdowcX^kBBzO;8Ti!YQ}x&1Ox(YLYz6l{eFP1J#a6X@eKp*0$HPI1=UD z{>Ud8S(4~$^M_y7;t$-SwwE5H*{X1s?{7pN)V>+<=b4^TN&V_;0YXXfPS-1D=invn z#;bLX)w;U5RU|o_dT#tJ14z|Y^IMf+-*e-l!8}g05}uhTZlhTQA7Zgsq*%r)|EtBX z^Idr6N7Ksc2XW(l;%(_`&e#98K7l;pLMZogRF8aN88NPlQQYM$ONS`6>nBH2R6H7( zE@h9lN_7GN;2NjT>7Gs%wQhB1#_5oLt%NLWn~5o)8^08{9Wg61I#zN7XGNeZ=2usH z#WsB$m^n86pj^sPDONhhuwyXyhR$fz1T4KGe( zw5;nHG};%GaWjz~tMp+$aQfK}l+tyxn_k5S>GfbT9i^j(!^TGrGcBza9M=8M(;|3q fgt{zcOG!)F76qM$udeM}`LDFwXNLt|i;J?!L-$xvmh&k|pF^_gpS_;od7Zw4kmQ@*m4&OR^rR9WDhFsvn}Y$N1a5Hh{eMJERG0ALO~5dkpKpoN&mw0Px@#KnnJLr z;<0!KXf+&2b||VHl}2))*x4g7BqHvMt`k=v1h^sK7uzhz_Gew(zv`0h`5++V@x6FF z_LnSh590}Wf-qhr%-$0ZGx1?@8N3*Q>FN@FnlTmRvyOla8lT63eT*@g^-uO`RC@vq zho{mY4@f8!5kqnyk*H`qo@z&oWcpw@>*ANg)3tzqmohVKGDoNJPQ$7%TxE z0%8F;5P~PcQ5X~*%>;2E0gKc}K<*({Q|50e^hE^amm_JbF zXgN8R|2R=8UZRniz(DpEZ>{?ufIBl>)7zB3Lgfmqp}xA2QnAkZ*3j7UUBacf#ZK9qOZ5U?(1{a`n(LI$$A4oB6Kk9S*3h*Qv}jOwT?^QK(cPp(tfrmLq);fiGMUT_fk1p19vj=G;Igv3>?}LE zI8qa#`tWr}*4M1X#l?z(f&yz!{)h1(*TcFd-M?HN*suUNH<88_ZsK)P#plkQ+oDqa z;@$aRoh;|lzL}XBhS{vVjbfvM^uu8CuX#X4b8B#5R1_*+)7w6IgX>kXZsE7jo;|}} za5mJuwB)H+r?kgVjQSC|Kk`vg0Uighu zW<|Kx^r6hEua@Tdb9I~t(}%+5w(iKu%*yKe8i61@H-DNm-63eJ?;a?w+*%uW8@~XU zHSc$JcCMg!`-a8f?#C`vg!6dDeq{ynd7PgmL+Qxw#KxaGzEiFuxRA|ym1|FP=u)9> z>BfwtdFjam-5!hHqFt@LV1K%ByTce$m*(v`cNJ8Fq4q6~&&s;>eopD@^XN`)ccYJ& z(J7Q>%}f*P>*b1;B~L6xqe^ddt>c%}+G;O%@vVjq)@mo)gsHb6lbXWjRx}J~UMRmr z<=Pz1Rb~J6s7^Rib5yan%^the>*j2~Em+`^x*ZqKH3s zt5gT{?VdKBuRy3L36BzYY_MVWRl;hM{Oz7Rj3TzCsm$k>oDVUbzjp&72P$97XhpC) zJ-LHVERQ>9*T+BgE7(4@b6MTxg8oZcJ8}Vy<{xP(@oYOTDcpg=L`=yS3wlO=GYaaA zmB>Bm$=m2c;@6t%fe$)PTQ+jFUaI7Y`vRn;*RHky(5e&N(ZAe`OnVVKV0<-lZk&RP zTV#8Cdza$bL%~_V?Y1=X2dfKiEzRB?&waCAiR(qb7LD9yW%yS!Q)@t{h)$Ks{(Dab zPvtZzt#jS>!<8$Pf&TvYoNrIB-#)_D3I9;owYz;t2-twVMGh4W4M8{pp>ns&x8<9S z-O6S2(<^%5jJZ?Ou`-LU13o?%@y;MvI#L%^oJ$fgm)|CD+*Lb>jI|pf=BZ-_`~9M^ z?ZeffPj){-5VkI~lG>P((TMN|YKG@77uGa9d}+PU)MsE@onlq=wJx#gWcrLkOks^h z^)OOTrXA?`h$(3)F{}?tr{i^L;{;Fg`#+8AIVnwFg;izXb<2E?)1LN5R0IBXrdg}9 zLu~xM%1pzjE*_O#Vv+>6p!CKz;uvJIrQW8f$y<_tYZz&42#h8*5YvX)*<*EQ%bH3j z4)9`63R{?x9Rr6JR0C|yvUG;F4ZBI8?Jknb$|y;h@6mZ;erZsLHhI!jJn`df{&f9K9ZT_4i>@!qOadbRUgy%I1zBixwDyQApNi)X1t zo*n6!sWT%?X$)!vY2q?E$B#qjWF96y?8!w3j(o^OwhUglut9cOpjP$j;GKqUoCF5y z#Kp!g#zaTA-^e#`cM1DpV{&Q(CZ#Pd9ZlMQF`9e)s#Gjf_G#@#(>uBzo$>eZ9Me$- z&q_+NAb`uotQ{sY5)hVa1#Os?QmJ&xr_t5jGHj`aKk@kbG*rT+rKP)fXH?!=iz`0T z-*f)$?=8r^Ig?Aia8p6tD}{TdI|}?l{U2=lrFZFY3wAh1>BTw6U83j>1=`A{5|#4( z20@md*D~uSPBh6Z`c;$nC-^9YYH@Oz@%LcGWt6mY+mgD13X)Y2lPB``84)I5Yxs<= z={NdjFS~65f1|rKb3iwU#`)uVO^x?xlw!F`%@vwaewwLxVnt(KIx=!0pdsEbpojv8 zMh=M0*};9w$Q>50$$L-Ol{Dp@)^T5-H5~aM`$`FGy=q{Q?U@Oi#DIdKBjJTz{Pq$7 zCQ7M75UhUv=B}h64QAdjB(HI&XHxC zR%=Q|wTT9Q=n2>8YD%A9jt&jcn; z(ZvVeRl@Qm4_H|T#|$3LFYk1`aA&3JV2-I=bZcwt0d9Wl?9pfFjWsVe<&-)$HjKz| zR7EHq!g^A<#`-&5&MR-G>p_fJNJ5)0Qs?ssz z@0O1_HXj=?xo%#sCyv^V?O9{xJR!~vY3?`2fVE9egS;2Fs-)+j?d^7L1 z-*-U(?2u&W`K$Y1&8_8nSu~{07(Y7h^yz4`N%HxW^Z!SmHL536kaDj(YX(EDq<2^U Ogq$4QsMqa+6aNcnn&-3t literal 0 HcmV?d00001 diff --git a/Dropimage/btn_number_2.png b/Dropimage/btn_number_2.png new file mode 100644 index 0000000000000000000000000000000000000000..373e952cb347099a6f05c1d3d978f6f9fb47f5af GIT binary patch literal 3720 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