From 09e156098a9426b82777c13fda9083b9b12a60bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=86=AC=E9=98=B3?= Date: Mon, 15 Jan 2024 11:43:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 8 + .project | 28 + .settings/org.eclipse.jdt.core.prefs | 11 + META-INF/MANIFEST.MF | 50 ++ ant/.svn/README.txt | 2 + ant/.svn/dir-wcprops | 5 + ant/.svn/empty-file | 0 ant/.svn/entries | 21 + ant/.svn/format | 1 + ant/.svn/text-base/build.xml.svn-base | 90 ++ ant/.svn/wcprops/build.xml.svn-work | 5 + ant/build.xml | 57 ++ build.properties | 6 + .../origin/autocodemanager/Activator.class | Bin 0 -> 949 bytes .../AutoCodeManagerPerspective.class | Bin 0 -> 2150 bytes .../common/AbstractTreeViewPart.class | Bin 0 -> 866 bytes .../common/AutoCodeConstants.class | Bin 0 -> 1894 bytes .../common/AutoCodeManagerImageKey.class | Bin 0 -> 1683 bytes .../common/AutoCodeManagerPropertyName.class | Bin 0 -> 6270 bytes .../common/AutoCodeManangerConstants.class | Bin 0 -> 1382 bytes .../autocodemanager/common/BusinessType.class | Bin 0 -> 7837 bytes .../autocodemanager/common/CacheImage.class | Bin 0 -> 4881 bytes .../common/CreateCompositeUtil$1.class | Bin 0 -> 1353 bytes .../common/CreateCompositeUtil.class | Bin 0 -> 7478 bytes .../common/GetChoosePath.class | Bin 0 -> 2676 bytes .../IsShowAutocodeManagerPerspective.class | Bin 0 -> 2316 bytes .../common/PackCodeDescInfos.class | Bin 0 -> 3260 bytes .../autocodemanager/common/TCLOVUtil.class | Bin 0 -> 1514 bytes .../common/TCPreferenceUitl.class | Bin 0 -> 5111 bytes .../autocodemanager/common/TCQueryUtil.class | Bin 0 -> 2824 bytes .../common/dialog/AbstractCodeDialog.class | Bin 0 -> 15265 bytes .../dialog/AbstractCodeSegmentDialog$1.class | Bin 0 -> 1737 bytes .../dialog/AbstractCodeSegmentDialog$2.class | Bin 0 -> 1634 bytes .../dialog/AbstractCodeSegmentDialog.class | Bin 0 -> 7457 bytes .../common/encrypt/EncryptOperations.class | Bin 0 -> 619 bytes .../common/operations/ExcelOperation.class | Bin 0 -> 6659 bytes .../common/operations/GetCodeNumber.class | Bin 0 -> 2365 bytes .../common/operations/PackCodeNodeInfo.class | Bin 0 -> 3950 bytes .../operations/TreeAndListCodeOperation.class | Bin 0 -> 23863 bytes .../operations/ViewControlOperation.class | Bin 0 -> 1427 bytes .../progress/ExpandProgressBar$1$1.class | Bin 0 -> 1947 bytes .../common/progress/ExpandProgressBar$1.class | Bin 0 -> 2697 bytes .../common/progress/ExpandProgressBar.class | Bin 0 -> 2977 bytes .../ImportORExportProgressBar$1.class | Bin 0 -> 2631 bytes .../progress/ImportORExportProgressBar.class | Bin 0 -> 2592 bytes .../common/progress/ProgressBarEvent.class | Bin 0 -> 497 bytes .../common/progress/ProgressBarListener.class | Bin 0 -> 305 bytes .../tree/AbstractCreateTreeView$1.class | Bin 0 -> 1651 bytes .../tree/AbstractCreateTreeView$2.class | Bin 0 -> 1600 bytes .../common/tree/AbstractCreateTreeView.class | Bin 0 -> 8638 bytes .../common/tree/AbstractTreeData.class | Bin 0 -> 7333 bytes ...RightKeyAction$AddChildrenNodeAction.class | Bin 0 -> 3256 bytes ...iewRightKeyAction$CopyCodeNodeAction.class | Bin 0 -> 2939 bytes ...iewRightKeyAction$EidtCodeNodeAction.class | Bin 0 -> 8839 bytes ...iewRightKeyAction$LockCodeNodeAction.class | Bin 0 -> 6198 bytes ...wRightKeyAction$RemoveCodeNodeAction.class | Bin 0 -> 3935 bytes ...wRightKeyAction$UnLockCodeNodeAction.class | Bin 0 -> 4099 bytes .../tree/AbstractTreeViewRightKeyAction.class | Bin 0 -> 4741 bytes .../common/tree/ORTreeContentProvider.class | Bin 0 -> 1610 bytes .../common/tree/ORTreeLabelProvider.class | Bin 0 -> 1825 bytes .../common/tree/TreeViewOperation.class | Bin 0 -> 9236 bytes .../common/treetable/AbstractTreeTable.class | Bin 0 -> 7151 bytes .../ORNewItemTreeTableLabelProvider.class | Bin 0 -> 2250 bytes .../ORTreeTableContentProvider.class | Bin 0 -> 1635 bytes .../treetable/ORTreeTableLabelProvider.class | Bin 0 -> 2571 bytes .../export/ExportNodeOperation.class | Bin 0 -> 6355 bytes .../handlers/CodeCopyHandler.class | Bin 0 -> 3140 bytes .../handlers/DeleteNodeHandler.class | Bin 0 -> 5286 bytes .../handlers/DownListNodeHandler.class | Bin 0 -> 5411 bytes .../handlers/ExportNodeHandler.class | Bin 0 -> 4231 bytes .../handlers/ImportCodeNextIdHandler.class | Bin 0 -> 1641 bytes .../handlers/ImportNodeHandler.class | Bin 0 -> 4153 bytes .../handlers/UpListNodeHandler.class | Bin 0 -> 5393 bytes .../imports/ImportNodeOperation.class | Bin 0 -> 7552 bytes .../views/AutoCodeListCodeView.class | Bin 0 -> 957 bytes .../views/AutoCodeSegmentView.class | Bin 0 -> 961 bytes .../views/AutoCodeTestView.class | Bin 0 -> 861 bytes .../views/AutoCodeTreeCodeView.class | Bin 0 -> 960 bytes .../codestyleview/CreateCodeStyleView.class | Bin 0 -> 4085 bytes .../views/codeview/CodeSegmentDialog$1.class | Bin 0 -> 920 bytes .../views/codeview/CodeSegmentDialog.class | Bin 0 -> 10846 bytes ...ViewRightKeyAction$NewCodeNodeAction.class | Bin 0 -> 3120 bytes .../CodeSegmentViewRightKeyAction.class | Bin 0 -> 2455 bytes .../views/codeview/CopyCodeNodeDialog.class | Bin 0 -> 9131 bytes .../codeview/CreateCodeSegmentView$1.class | Bin 0 -> 1320 bytes .../codeview/CreateCodeSegmentView$2.class | Bin 0 -> 1776 bytes .../codeview/CreateCodeSegmentView$3.class | Bin 0 -> 2724 bytes .../codeview/CreateCodeSegmentView.class | Bin 0 -> 8516 bytes .../views/codeview/NewCodeNodeDialog.class | Bin 0 -> 6748 bytes .../views/codeview/NewCodeTestView.class | Bin 0 -> 654 bytes ...eyAction$CancelDefaultSelectedAction.class | Bin 0 -> 4001 bytes ...ViewRightKeyAction$NewCodeNodeAction.class | Bin 0 -> 3470 bytes ...ightKeyAction$NewCodeNodeValueAction.class | Bin 0 -> 2815 bytes ...htKeyAction$SetDefaultSelectedAction.class | Bin 0 -> 3991 bytes .../CodeListViewRightKeyAction.class | Bin 0 -> 3269 bytes .../listcodeview/CreateListCodeView$1.class | Bin 0 -> 1244 bytes .../listcodeview/CreateListCodeView$2.class | Bin 0 -> 1662 bytes .../listcodeview/CreateListCodeView$3.class | Bin 0 -> 1559 bytes .../listcodeview/CreateListCodeView.class | Bin 0 -> 2391 bytes .../listcodeview/NewItemListCodeView$1.class | Bin 0 -> 1881 bytes .../listcodeview/NewItemListCodeView$2.class | Bin 0 -> 1565 bytes .../listcodeview/NewItemListCodeView.class | Bin 0 -> 12174 bytes .../NewListPropertyNodeDialog.class | Bin 0 -> 4336 bytes .../NewListPropertyValueNodeDialog.class | Bin 0 -> 4589 bytes .../testview/CreateCodeTestView$1$1.class | Bin 0 -> 5044 bytes .../testview/CreateCodeTestView$1$2.class | Bin 0 -> 4764 bytes .../testview/CreateCodeTestView$1$3.class | Bin 0 -> 4622 bytes .../views/testview/CreateCodeTestView$1.class | Bin 0 -> 7631 bytes .../views/testview/CreateCodeTestView.class | Bin 0 -> 23586 bytes ...ViewRightKeyAction$NewCodeNodeAction.class | Bin 0 -> 3794 bytes .../CodeTreeViewRightKeyAction.class | Bin 0 -> 2847 bytes .../treecodeview/CreateTreeCodeView$1.class | Bin 0 -> 1244 bytes .../treecodeview/CreateTreeCodeView.class | Bin 0 -> 1647 bytes .../treecodeview/NewItemTreeCodeView$1.class | Bin 0 -> 2128 bytes .../treecodeview/NewItemTreeCodeView$2.class | Bin 0 -> 1565 bytes .../treecodeview/NewItemTreeCodeView.class | Bin 0 -> 2734 bytes .../treecodeview/NewTreeCodeNodeDialog.class | Bin 0 -> 4857 bytes classes/icons/add.png | Bin 0 -> 332 bytes classes/icons/addgroup_16.png | Bin 0 -> 699 bytes classes/icons/addnode_16.png | Bin 0 -> 3556 bytes classes/icons/adduser_16.png | Bin 0 -> 681 bytes classes/icons/addvalue_16.png | Bin 0 -> 454 bytes classes/icons/autocode_16.png | Bin 0 -> 726 bytes classes/icons/autocode_24.png | Bin 0 -> 1412 bytes classes/icons/autocode_32.png | Bin 0 -> 2272 bytes classes/icons/classficationcode_16.png | Bin 0 -> 616 bytes classes/icons/close_16.png | Bin 0 -> 906 bytes classes/icons/code2_16.png | Bin 0 -> 672 bytes classes/icons/code_16.png | Bin 0 -> 441 bytes classes/icons/codenode_16.png | Bin 0 -> 616 bytes classes/icons/delete_16.png | Bin 0 -> 766 bytes classes/icons/down_16.png | Bin 0 -> 391 bytes classes/icons/edit_16.png | Bin 0 -> 662 bytes classes/icons/exceltemplate_16.png | Bin 0 -> 642 bytes classes/icons/exceltemplate_32.png | Bin 0 -> 1279 bytes classes/icons/export_16.png | Bin 0 -> 713 bytes classes/icons/exporttoexcel_16.png | Bin 0 -> 3374 bytes classes/icons/exporttoexcel_24.png | Bin 0 -> 3713 bytes classes/icons/folder_16.png | Bin 0 -> 3182 bytes classes/icons/grant_16.png | Bin 0 -> 576 bytes classes/icons/group_16.png | Bin 0 -> 737 bytes classes/icons/home_data.png | Bin 0 -> 1113 bytes classes/icons/import_16.png | Bin 0 -> 681 bytes classes/icons/importhistory_16.png | Bin 0 -> 742 bytes classes/icons/item_16.png | Bin 0 -> 3565 bytes classes/icons/linkageNode_16.png | Bin 0 -> 756 bytes classes/icons/linkage_16.png | Bin 0 -> 723 bytes classes/icons/list_16.png | Bin 0 -> 495 bytes classes/icons/listproperty_16.png | Bin 0 -> 582 bytes classes/icons/listvalue_16.png | Bin 0 -> 624 bytes classes/icons/lock_16.png | Bin 0 -> 682 bytes classes/icons/newclassfication_16.png | Bin 0 -> 447 bytes classes/icons/newcodetreenode_16.png | Bin 0 -> 3198 bytes classes/icons/newlistproperty_16.png | Bin 0 -> 495 bytes classes/icons/newlistvalue_16.png | Bin 0 -> 724 bytes classes/icons/ok_16.png | Bin 0 -> 851 bytes classes/icons/organization_16.png | Bin 0 -> 676 bytes classes/icons/person_16.png | Bin 0 -> 729 bytes classes/icons/remove_16.png | Bin 0 -> 230 bytes classes/icons/role_16.png | Bin 0 -> 809 bytes classes/icons/seq_16.png | Bin 0 -> 336 bytes classes/icons/tree_16.png | Bin 0 -> 1016 bytes classes/icons/treenode_16.png | Bin 0 -> 546 bytes classes/icons/unlock_16.png | Bin 0 -> 594 bytes classes/icons/up_16.png | Bin 0 -> 344 bytes jxl.jar | Bin 0 -> 725735 bytes plugin.xml | 286 +++++++ schema/dsds.exsd | 84 ++ .../com/origin/autocodemanager/Activator.java | 52 ++ .../AutoCodeManagerPerspective.java | 44 + .../common/AbstractTreeViewPart.java | 31 + .../common/AutoCodeConstants.java | 32 + .../common/AutoCodeManagerImageKey.java | 43 + .../common/AutoCodeManagerPropertyName.java | 152 ++++ .../common/AutoCodeManangerConstants.java | 34 + .../autocodemanager/common/BusinessType.java | 218 +++++ .../autocodemanager/common/CacheImage.java | 120 +++ .../common/CreateCompositeUtil.java | 279 +++++++ .../autocodemanager/common/GetChoosePath.java | 106 +++ .../IsShowAutocodeManagerPerspective.java | 61 ++ .../common/PackCodeDescInfos.java | 125 +++ .../autocodemanager/common/TCLOVUtil.java | 26 + .../common/TCPreferenceUitl.java | 134 +++ .../autocodemanager/common/TCQueryUtil.java | 50 ++ .../common/dialog/AbstractCodeDialog.java | 375 +++++++++ .../dialog/AbstractCodeSegmentDialog.java | 184 +++++ .../common/encrypt/EncryptOperations.java | 18 + .../common/operations/ExcelOperation.java | 145 ++++ .../common/operations/GetCodeNumber.java | 78 ++ .../common/operations/PackCodeNodeInfo.java | 124 +++ .../operations/TreeAndListCodeOperation.java | 780 ++++++++++++++++++ .../operations/ViewControlOperation.java | 24 + .../common/progress/ExpandProgressBar.java | 80 ++ .../progress/ImportORExportProgressBar.java | 68 ++ .../common/progress/ProgressBarEvent.java | 20 + .../common/progress/ProgressBarListener.java | 20 + .../common/tree/AbstractCreateTreeView.java | 192 +++++ .../common/tree/AbstractTreeData.java | 246 ++++++ .../tree/AbstractTreeViewRightKeyAction.java | 352 ++++++++ .../common/tree/ORTreeContentProvider.java | 41 + .../common/tree/ORTreeLabelProvider.java | 48 ++ .../common/tree/TreeViewOperation.java | 330 ++++++++ .../common/treetable/AbstractTreeTable.java | 157 ++++ .../ORNewItemTreeTableLabelProvider.java | 67 ++ .../treetable/ORTreeTableContentProvider.java | 46 ++ .../treetable/ORTreeTableLabelProvider.java | 84 ++ .../export/ExportNodeOperation.java | 127 +++ .../handlers/CodeCopyHandler.java | 47 ++ .../handlers/DeleteNodeHandler.java | 100 +++ .../handlers/DownListNodeHandler.java | 108 +++ .../handlers/ExportNodeHandler.java | 63 ++ .../handlers/ImportCodeNextIdHandler.java | 43 + .../handlers/ImportNodeHandler.java | 60 ++ .../handlers/UpListNodeHandler.java | 107 +++ .../imports/ImportNodeOperation.java | 159 ++++ .../views/AutoCodeListCodeView.java | 33 + .../views/AutoCodeSegmentView.java | 23 + .../views/AutoCodeTestView.java | 40 + .../views/AutoCodeTreeCodeView.java | 44 + .../codestyleview/CreateCodeStyleView.java | 119 +++ .../views/codeview/CodeSegmentDialog.java | 230 ++++++ .../CodeSegmentViewRightKeyAction.java | 79 ++ .../views/codeview/CopyCodeNodeDialog.java | 167 ++++ .../views/codeview/CreateCodeSegmentView.java | 247 ++++++ .../views/codeview/NewCodeNodeDialog.java | 146 ++++ .../views/codeview/NewCodeTestView.java | 15 + .../CodeListViewRightKeyAction.java | 160 ++++ .../listcodeview/CreateListCodeView.java | 82 ++ .../listcodeview/NewItemListCodeView.java | 456 ++++++++++ .../NewListPropertyNodeDialog.java | 67 ++ .../NewListPropertyValueNodeDialog.java | 79 ++ .../views/testview/CreateCodeTestView.java | 704 ++++++++++++++++ .../CodeTreeViewRightKeyAction.java | 87 ++ .../treecodeview/CreateTreeCodeView.java | 38 + .../treecodeview/NewItemTreeCodeView.java | 84 ++ .../treecodeview/NewTreeCodeNodeDialog.java | 80 ++ src/icons/add.png | Bin 0 -> 332 bytes src/icons/addgroup_16.png | Bin 0 -> 699 bytes src/icons/addnode_16.png | Bin 0 -> 3556 bytes src/icons/adduser_16.png | Bin 0 -> 681 bytes src/icons/addvalue_16.png | Bin 0 -> 454 bytes src/icons/autocode_16.png | Bin 0 -> 726 bytes src/icons/autocode_24.png | Bin 0 -> 1412 bytes src/icons/autocode_32.png | Bin 0 -> 2272 bytes src/icons/classficationcode_16.png | Bin 0 -> 616 bytes src/icons/close_16.png | Bin 0 -> 906 bytes src/icons/code2_16.png | Bin 0 -> 672 bytes src/icons/code_16.png | Bin 0 -> 441 bytes src/icons/codenode_16.png | Bin 0 -> 616 bytes src/icons/delete_16.png | Bin 0 -> 766 bytes src/icons/down_16.png | Bin 0 -> 391 bytes src/icons/edit_16.png | Bin 0 -> 662 bytes src/icons/exceltemplate_16.png | Bin 0 -> 642 bytes src/icons/exceltemplate_32.png | Bin 0 -> 1279 bytes src/icons/export_16.png | Bin 0 -> 713 bytes src/icons/exporttoexcel_16.png | Bin 0 -> 3374 bytes src/icons/exporttoexcel_24.png | Bin 0 -> 3713 bytes src/icons/folder_16.png | Bin 0 -> 3182 bytes src/icons/grant_16.png | Bin 0 -> 576 bytes src/icons/group_16.png | Bin 0 -> 737 bytes src/icons/home_data.png | Bin 0 -> 1113 bytes src/icons/import_16.png | Bin 0 -> 681 bytes src/icons/importhistory_16.png | Bin 0 -> 742 bytes src/icons/item_16.png | Bin 0 -> 3565 bytes src/icons/linkageNode_16.png | Bin 0 -> 756 bytes src/icons/linkage_16.png | Bin 0 -> 723 bytes src/icons/list_16.png | Bin 0 -> 495 bytes src/icons/listproperty_16.png | Bin 0 -> 582 bytes src/icons/listvalue_16.png | Bin 0 -> 624 bytes src/icons/lock_16.png | Bin 0 -> 682 bytes src/icons/newclassfication_16.png | Bin 0 -> 447 bytes src/icons/newcodetreenode_16.png | Bin 0 -> 3198 bytes src/icons/newlistproperty_16.png | Bin 0 -> 495 bytes src/icons/newlistvalue_16.png | Bin 0 -> 724 bytes src/icons/ok_16.png | Bin 0 -> 851 bytes src/icons/organization_16.png | Bin 0 -> 676 bytes src/icons/person_16.png | Bin 0 -> 729 bytes src/icons/remove_16.png | Bin 0 -> 230 bytes src/icons/role_16.png | Bin 0 -> 809 bytes src/icons/seq_16.png | Bin 0 -> 336 bytes src/icons/tree_16.png | Bin 0 -> 1016 bytes src/icons/treenode_16.png | Bin 0 -> 546 bytes src/icons/unlock_16.png | Bin 0 -> 594 bytes src/icons/up_16.png | Bin 0 -> 344 bytes 284 files changed, 9434 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 META-INF/MANIFEST.MF create mode 100644 ant/.svn/README.txt create mode 100644 ant/.svn/dir-wcprops create mode 100644 ant/.svn/empty-file create mode 100644 ant/.svn/entries create mode 100644 ant/.svn/format create mode 100644 ant/.svn/text-base/build.xml.svn-base create mode 100644 ant/.svn/wcprops/build.xml.svn-work create mode 100644 ant/build.xml create mode 100644 build.properties create mode 100644 classes/cn/com/origin/autocodemanager/Activator.class create mode 100644 classes/cn/com/origin/autocodemanager/AutoCodeManagerPerspective.class create mode 100644 classes/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.class create mode 100644 classes/cn/com/origin/autocodemanager/common/AutoCodeConstants.class create mode 100644 classes/cn/com/origin/autocodemanager/common/AutoCodeManagerImageKey.class create mode 100644 classes/cn/com/origin/autocodemanager/common/AutoCodeManagerPropertyName.class create mode 100644 classes/cn/com/origin/autocodemanager/common/AutoCodeManangerConstants.class create mode 100644 classes/cn/com/origin/autocodemanager/common/BusinessType.class create mode 100644 classes/cn/com/origin/autocodemanager/common/CacheImage.class create mode 100644 classes/cn/com/origin/autocodemanager/common/CreateCompositeUtil$1.class create mode 100644 classes/cn/com/origin/autocodemanager/common/CreateCompositeUtil.class create mode 100644 classes/cn/com/origin/autocodemanager/common/GetChoosePath.class create mode 100644 classes/cn/com/origin/autocodemanager/common/IsShowAutocodeManagerPerspective.class create mode 100644 classes/cn/com/origin/autocodemanager/common/PackCodeDescInfos.class create mode 100644 classes/cn/com/origin/autocodemanager/common/TCLOVUtil.class create mode 100644 classes/cn/com/origin/autocodemanager/common/TCPreferenceUitl.class create mode 100644 classes/cn/com/origin/autocodemanager/common/TCQueryUtil.class create mode 100644 classes/cn/com/origin/autocodemanager/common/dialog/AbstractCodeDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog$1.class create mode 100644 classes/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog$2.class create mode 100644 classes/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.class create mode 100644 classes/cn/com/origin/autocodemanager/common/operations/ExcelOperation.class create mode 100644 classes/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.class create mode 100644 classes/cn/com/origin/autocodemanager/common/operations/PackCodeNodeInfo.class create mode 100644 classes/cn/com/origin/autocodemanager/common/operations/TreeAndListCodeOperation.class create mode 100644 classes/cn/com/origin/autocodemanager/common/operations/ViewControlOperation.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar$1$1.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar$1.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar$1.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ProgressBarEvent.class create mode 100644 classes/cn/com/origin/autocodemanager/common/progress/ProgressBarListener.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView$2.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeData.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$AddChildrenNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$CopyCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$EidtCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$LockCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$RemoveCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$UnLockCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/ORTreeContentProvider.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/ORTreeLabelProvider.class create mode 100644 classes/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.class create mode 100644 classes/cn/com/origin/autocodemanager/common/treetable/AbstractTreeTable.class create mode 100644 classes/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.class create mode 100644 classes/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.class create mode 100644 classes/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.class create mode 100644 classes/cn/com/origin/autocodemanager/export/ExportNodeOperation.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/ImportCodeNextIdHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.class create mode 100644 classes/cn/com/origin/autocodemanager/imports/ImportNodeOperation.class create mode 100644 classes/cn/com/origin/autocodemanager/views/AutoCodeListCodeView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/AutoCodeSegmentView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/AutoCodeTestView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction$NewCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CopyCodeNodeDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$2.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$3.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/NewCodeNodeDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$CancelDefaultSelectedAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$NewCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$NewCodeNodeValueAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$SetDefaultSelectedAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$2.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$3.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView$2.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyNodeDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.class create mode 100644 classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$2.class create mode 100644 classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$3.class create mode 100644 classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/CodeTreeViewRightKeyAction$NewCodeNodeAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/CodeTreeViewRightKeyAction.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView$1.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView$2.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView.class create mode 100644 classes/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.class create mode 100644 classes/icons/add.png create mode 100644 classes/icons/addgroup_16.png create mode 100644 classes/icons/addnode_16.png create mode 100644 classes/icons/adduser_16.png create mode 100644 classes/icons/addvalue_16.png create mode 100644 classes/icons/autocode_16.png create mode 100644 classes/icons/autocode_24.png create mode 100644 classes/icons/autocode_32.png create mode 100644 classes/icons/classficationcode_16.png create mode 100644 classes/icons/close_16.png create mode 100644 classes/icons/code2_16.png create mode 100644 classes/icons/code_16.png create mode 100644 classes/icons/codenode_16.png create mode 100644 classes/icons/delete_16.png create mode 100644 classes/icons/down_16.png create mode 100644 classes/icons/edit_16.png create mode 100644 classes/icons/exceltemplate_16.png create mode 100644 classes/icons/exceltemplate_32.png create mode 100644 classes/icons/export_16.png create mode 100644 classes/icons/exporttoexcel_16.png create mode 100644 classes/icons/exporttoexcel_24.png create mode 100644 classes/icons/folder_16.png create mode 100644 classes/icons/grant_16.png create mode 100644 classes/icons/group_16.png create mode 100644 classes/icons/home_data.png create mode 100644 classes/icons/import_16.png create mode 100644 classes/icons/importhistory_16.png create mode 100644 classes/icons/item_16.png create mode 100644 classes/icons/linkageNode_16.png create mode 100644 classes/icons/linkage_16.png create mode 100644 classes/icons/list_16.png create mode 100644 classes/icons/listproperty_16.png create mode 100644 classes/icons/listvalue_16.png create mode 100644 classes/icons/lock_16.png create mode 100644 classes/icons/newclassfication_16.png create mode 100644 classes/icons/newcodetreenode_16.png create mode 100644 classes/icons/newlistproperty_16.png create mode 100644 classes/icons/newlistvalue_16.png create mode 100644 classes/icons/ok_16.png create mode 100644 classes/icons/organization_16.png create mode 100644 classes/icons/person_16.png create mode 100644 classes/icons/remove_16.png create mode 100644 classes/icons/role_16.png create mode 100644 classes/icons/seq_16.png create mode 100644 classes/icons/tree_16.png create mode 100644 classes/icons/treenode_16.png create mode 100644 classes/icons/unlock_16.png create mode 100644 classes/icons/up_16.png create mode 100644 jxl.jar create mode 100644 plugin.xml create mode 100644 schema/dsds.exsd create mode 100644 src/cn/com/origin/autocodemanager/Activator.java create mode 100644 src/cn/com/origin/autocodemanager/AutoCodeManagerPerspective.java create mode 100644 src/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.java create mode 100644 src/cn/com/origin/autocodemanager/common/AutoCodeConstants.java create mode 100644 src/cn/com/origin/autocodemanager/common/AutoCodeManagerImageKey.java create mode 100644 src/cn/com/origin/autocodemanager/common/AutoCodeManagerPropertyName.java create mode 100644 src/cn/com/origin/autocodemanager/common/AutoCodeManangerConstants.java create mode 100644 src/cn/com/origin/autocodemanager/common/BusinessType.java create mode 100644 src/cn/com/origin/autocodemanager/common/CacheImage.java create mode 100644 src/cn/com/origin/autocodemanager/common/CreateCompositeUtil.java create mode 100644 src/cn/com/origin/autocodemanager/common/GetChoosePath.java create mode 100644 src/cn/com/origin/autocodemanager/common/IsShowAutocodeManagerPerspective.java create mode 100644 src/cn/com/origin/autocodemanager/common/PackCodeDescInfos.java create mode 100644 src/cn/com/origin/autocodemanager/common/TCLOVUtil.java create mode 100644 src/cn/com/origin/autocodemanager/common/TCPreferenceUitl.java create mode 100644 src/cn/com/origin/autocodemanager/common/TCQueryUtil.java create mode 100644 src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeDialog.java create mode 100644 src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog.java create mode 100644 src/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.java create mode 100644 src/cn/com/origin/autocodemanager/common/operations/ExcelOperation.java create mode 100644 src/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.java create mode 100644 src/cn/com/origin/autocodemanager/common/operations/PackCodeNodeInfo.java create mode 100644 src/cn/com/origin/autocodemanager/common/operations/TreeAndListCodeOperation.java create mode 100644 src/cn/com/origin/autocodemanager/common/operations/ViewControlOperation.java create mode 100644 src/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar.java create mode 100644 src/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar.java create mode 100644 src/cn/com/origin/autocodemanager/common/progress/ProgressBarEvent.java create mode 100644 src/cn/com/origin/autocodemanager/common/progress/ProgressBarListener.java create mode 100644 src/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView.java create mode 100644 src/cn/com/origin/autocodemanager/common/tree/AbstractTreeData.java create mode 100644 src/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction.java create mode 100644 src/cn/com/origin/autocodemanager/common/tree/ORTreeContentProvider.java create mode 100644 src/cn/com/origin/autocodemanager/common/tree/ORTreeLabelProvider.java create mode 100644 src/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.java create mode 100644 src/cn/com/origin/autocodemanager/common/treetable/AbstractTreeTable.java create mode 100644 src/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.java create mode 100644 src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.java create mode 100644 src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.java create mode 100644 src/cn/com/origin/autocodemanager/export/ExportNodeOperation.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/ImportCodeNextIdHandler.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.java create mode 100644 src/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.java create mode 100644 src/cn/com/origin/autocodemanager/imports/ImportNodeOperation.java create mode 100644 src/cn/com/origin/autocodemanager/views/AutoCodeListCodeView.java create mode 100644 src/cn/com/origin/autocodemanager/views/AutoCodeSegmentView.java create mode 100644 src/cn/com/origin/autocodemanager/views/AutoCodeTestView.java create mode 100644 src/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.java create mode 100644 src/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.java create mode 100644 src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog.java create mode 100644 src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction.java create mode 100644 src/cn/com/origin/autocodemanager/views/codeview/CopyCodeNodeDialog.java create mode 100644 src/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.java create mode 100644 src/cn/com/origin/autocodemanager/views/codeview/NewCodeNodeDialog.java create mode 100644 src/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.java create mode 100644 src/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction.java create mode 100644 src/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView.java create mode 100644 src/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView.java create mode 100644 src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyNodeDialog.java create mode 100644 src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.java create mode 100644 src/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.java create mode 100644 src/cn/com/origin/autocodemanager/views/treecodeview/CodeTreeViewRightKeyAction.java create mode 100644 src/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.java create mode 100644 src/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView.java create mode 100644 src/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.java create mode 100644 src/icons/add.png create mode 100644 src/icons/addgroup_16.png create mode 100644 src/icons/addnode_16.png create mode 100644 src/icons/adduser_16.png create mode 100644 src/icons/addvalue_16.png create mode 100644 src/icons/autocode_16.png create mode 100644 src/icons/autocode_24.png create mode 100644 src/icons/autocode_32.png create mode 100644 src/icons/classficationcode_16.png create mode 100644 src/icons/close_16.png create mode 100644 src/icons/code2_16.png create mode 100644 src/icons/code_16.png create mode 100644 src/icons/codenode_16.png create mode 100644 src/icons/delete_16.png create mode 100644 src/icons/down_16.png create mode 100644 src/icons/edit_16.png create mode 100644 src/icons/exceltemplate_16.png create mode 100644 src/icons/exceltemplate_32.png create mode 100644 src/icons/export_16.png create mode 100644 src/icons/exporttoexcel_16.png create mode 100644 src/icons/exporttoexcel_24.png create mode 100644 src/icons/folder_16.png create mode 100644 src/icons/grant_16.png create mode 100644 src/icons/group_16.png create mode 100644 src/icons/home_data.png create mode 100644 src/icons/import_16.png create mode 100644 src/icons/importhistory_16.png create mode 100644 src/icons/item_16.png create mode 100644 src/icons/linkageNode_16.png create mode 100644 src/icons/linkage_16.png create mode 100644 src/icons/list_16.png create mode 100644 src/icons/listproperty_16.png create mode 100644 src/icons/listvalue_16.png create mode 100644 src/icons/lock_16.png create mode 100644 src/icons/newclassfication_16.png create mode 100644 src/icons/newcodetreenode_16.png create mode 100644 src/icons/newlistproperty_16.png create mode 100644 src/icons/newlistvalue_16.png create mode 100644 src/icons/ok_16.png create mode 100644 src/icons/organization_16.png create mode 100644 src/icons/person_16.png create mode 100644 src/icons/remove_16.png create mode 100644 src/icons/role_16.png create mode 100644 src/icons/seq_16.png create mode 100644 src/icons/tree_16.png create mode 100644 src/icons/treenode_16.png create mode 100644 src/icons/unlock_16.png create mode 100644 src/icons/up_16.png diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..560f526 --- /dev/null +++ b/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..70fe4c0 --- /dev/null +++ b/.project @@ -0,0 +1,28 @@ + + + cn.com.origin.autocodemanager + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..7341ab1 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF new file mode 100644 index 0000000..a76ae05 --- /dev/null +++ b/META-INF/MANIFEST.MF @@ -0,0 +1,50 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Autocodemanager Plug-in +Bundle-SymbolicName: cn.com.origin.autocodemanager;singleton:=true +Bundle-Version: 1.0.0 +Bundle-Activator: cn.com.origin.autocodemanager.Activator +Require-Bundle: org.eclipse.ui;bundle-version="3.8.0", + org.eclipse.core.runtime;bundle-version="3.8.0", + com.teamcenter.rac.tcapps;bundle-version="10000.1.0", + TcSoaClient;bundle-version="10000.1.0", + TcSoaCoreRac;bundle-version="10000.1.0", + TcSoaCoreTypes;bundle-version="10000.1.0", + org.eclipse.ui.forms;bundle-version="3.5.200", + org.eclipse.core.expressions;bundle-version="3.4.400", + com.teamcenter.rac.common;bundle-version="10000.1.0", + com.teamcenter.rac.aifrcp;bundle-version="10000.1.0", + com.teamcenter.rac.kernel;bundle-version="10000.1.0", + com.teamcenter.rac.util;bundle-version="10000.1.0" +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Export-Package: cn.com.origin.autocodemanager, + cn.com.origin.autocodemanager.common, + cn.com.origin.autocodemanager.common.dialog, + cn.com.origin.autocodemanager.common.encrypt, + cn.com.origin.autocodemanager.common.operations, + cn.com.origin.autocodemanager.common.progress, + cn.com.origin.autocodemanager.common.tree, + cn.com.origin.autocodemanager.common.treetable, + cn.com.origin.autocodemanager.export, + cn.com.origin.autocodemanager.handlers, + cn.com.origin.autocodemanager.imports, + cn.com.origin.autocodemanager.views, + cn.com.origin.autocodemanager.views.codestyleview, + cn.com.origin.autocodemanager.views.codeview, + cn.com.origin.autocodemanager.views.listcodeview, + cn.com.origin.autocodemanager.views.testview, + cn.com.origin.autocodemanager.views.treecodeview, + jxl, + jxl.biff, + jxl.biff.drawing, + jxl.biff.formula, + jxl.common, + jxl.common.log, + jxl.demo, + jxl.format, + jxl.read.biff, + jxl.write, + jxl.write.biff +Bundle-ClassPath: jxl.jar, + . +Bundle-ActivationPolicy: lazy diff --git a/ant/.svn/README.txt b/ant/.svn/README.txt new file mode 100644 index 0000000..271a8ce --- /dev/null +++ b/ant/.svn/README.txt @@ -0,0 +1,2 @@ +This is a Subversion working copy administrative directory. +Visit http://subversion.tigris.org/ for more information. diff --git a/ant/.svn/dir-wcprops b/ant/.svn/dir-wcprops new file mode 100644 index 0000000..0fed885 --- /dev/null +++ b/ant/.svn/dir-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 68 +/svn/projects/!svn/ver/380/Dicastal8.1/com.teamcenter.rac.tcapps/ant +END diff --git a/ant/.svn/empty-file b/ant/.svn/empty-file new file mode 100644 index 0000000..e69de29 diff --git a/ant/.svn/entries b/ant/.svn/entries new file mode 100644 index 0000000..de2a58e --- /dev/null +++ b/ant/.svn/entries @@ -0,0 +1,21 @@ + + + + + diff --git a/ant/.svn/format b/ant/.svn/format new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/ant/.svn/format @@ -0,0 +1 @@ +4 diff --git a/ant/.svn/text-base/build.xml.svn-base b/ant/.svn/text-base/build.xml.svn-base new file mode 100644 index 0000000..b01e5d8 --- /dev/null +++ b/ant/.svn/text-base/build.xml.svn-base @@ -0,0 +1,90 @@ + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ant/.svn/wcprops/build.xml.svn-work b/ant/.svn/wcprops/build.xml.svn-work new file mode 100644 index 0000000..2eaac6b --- /dev/null +++ b/ant/.svn/wcprops/build.xml.svn-work @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 78 +/svn/projects/!svn/ver/380/Dicastal8.1/com.teamcenter.rac.tcapps/ant/build.xml +END diff --git a/ant/build.xml b/ant/build.xml new file mode 100644 index 0000000..19b5bd6 --- /dev/null +++ b/ant/build.xml @@ -0,0 +1,57 @@ + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build.properties b/build.properties new file mode 100644 index 0000000..89997e4 --- /dev/null +++ b/build.properties @@ -0,0 +1,6 @@ +source.. = src/ +output.. = classes/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + jxl.jar diff --git a/classes/cn/com/origin/autocodemanager/Activator.class b/classes/cn/com/origin/autocodemanager/Activator.class new file mode 100644 index 0000000000000000000000000000000000000000..3b3bebf07a3c38cb8dd5f660d977135834a34728 GIT binary patch literal 949 zcmb7?TTc@~6vzM5D_xhO#a0pJ4z?xfCi-H6F{vP?$x504eKpf%SVy-z&Fn1lvAjHx z_}~ZdLmAKP5=cnA?ZfO`&iu~roXn4(-@XHQimfUN43C4@3)I9@T81+AcxqIjPQ--A zJQUjN2S%Q8qjVJ|hApK-PXv*iCc;alH;qzzsXtDP=7BjL46_Y}+R#6KJvewf*kfq; z@A(<`A|8j{q0ur9cNk`ORh$?en-PyvF@qYzvmow~NiR3)-7x9($!wR*-sEOOp_8ew zc7maji!gNje=LU-D$ivs%?pNNyE9@aS-68DZo68+(Lt9ZXSgB48d$SD56Ct7I!a0?bD9E<#e|%u+aUA#cN(YlUgFB zWz?{eF)H9SGvCa9{{5ey zZv!|1Q$vK|v}qfrQ#Bk{R-|q4y6>1ySyZ{rE5bEqNY0R42;~LgdNpDCaz$u}GE6B~ zU+}6aY@f_sZW>&^>6$g8wqz!GbL^5Pcw8SQzeF|s;C!T=+n`QIK!U2 zw8ebAx-8s9zHAAVlw)$M#9gW6=3&&oDm{iX`TvU<750GX3hs*>+;VK8Oc=(J?FBC7vh9bdQVfqX=y!ho{La_!{kitxA79>%o=x|^ zt8O@{<4HV4+OWM@$0`e#A=@E%$JlM{4b*rd-t+#~Dm%py3JV3guZHbI68Ms&d?T zKF2#{+6L*C$7CGO;{^@54)1BpO2>KiPIP)F8O!m6Vglt@&@rzRaZ(hVmEb&v1%|!r z?|--c!#C?+eYC#%!CyB&9f{#0u}yA1d!ZMLC~0_!VYCBf)_rLi1>t%0=Fd6TbzH*B zz%&9qR+Dmu+VE*%9EM)8Ng)J5RhG+^*qG|WZLY0zq}ZDt znfZ2s*8<|y@CISCo#g3?qEmNGk(G*Yhj-@hv~tA=h!N=t%^ADHZ+RXKnR_6BQUfPF}iM4XI%TFIGBlUGb^hiGfy zFhk)Nj9$KlM}EYkH*sS;k%~qWY2gPypMcv1Ta#Y?KZE~xUdR1ByPjY{dm0Dblo zsU9FS4q^&}n8hLFiT4*VjAf$w8fkCf2tLM9d_l~+iX^_pSOCvh2tgAb0t1(^L;wxo jGrU3oMJVDGyo%T8?kjZbE=2yus)pBNWW?zpg5`e!@(5dy literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.class b/classes/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.class new file mode 100644 index 0000000000000000000000000000000000000000..a6d231cc4976a4346d3e239fbe919c4dcc8ea7b1 GIT binary patch literal 866 zcma)4T}vB56g}5`X^ge;tJSs-rBGrE&O`A*B0`(uQxHMP`(zx_k?c;Goo)V>f*|8!_U9c&Q-NmDAEk2;o$o(%0@%_J^9V(X~nrd(xS( zpB$F`ACnQ0AV@P{?w|RMXzzU!k1t);dg6)u`&MV>pblw{~H3r}U`__U+Ca{@_~v zmH5n<62B$lkAWPOIpS;JbtS&BkO3;+?oq$xU--1aa&Z%D95sp}yumu}h%?Pe zgG1hjT6zUnWASzb?i9%hFhDo3$tz)Ns^NQVIj6nUNQu zsG=%WaNxp)g5tuBGX<4{1Ni~`jwBB7A1J=jc&q_@$mQ$#-u_;{>EHj}xl2Un>C-s% zFuI^yY29w6ZO3RBR$8__Tes_~B`w)dj<0IjRyqT57UHaJxt_Ed9y-OdS=k1nI{Z_5bnx?cF=K?%lb~Xf!lkaP0Q_ zey@{^Qje5)-wosZf2bhk3_8BIvvdFJZy$X1#e-k&Mocx;XerCv&wHHF#e?(it;v5z z9r0&085R(ccDiQNE8VlW*Bb|I26X2b@k_dCScZ2Q#%Ja#jQae0i_??;TE1YNIL$%t z50}%^_$o`s(mmSx!jXpSK#>CUzIMe;%32ng%0ja(V%iDQnnF z3oC8d7N?8QYkE`F+a|1Ef<9!+(p}?(O-^JSy=i#xXgjcZ6}z1=O2Z9B3RLU=vITheq%9kBmSFX$H8l!UerH&erJhg@Xmrztswk^&JDlD|xOt;qmiihV z08ZEaW;cTgX6+XGs6tY1Zo7sq&0xki;1i58sP%nx3Qa4gZgN_Ia*xbs@xw|?Cgg_K zG11X%D6(zbfa(fz(nA%EZjf9J21b`(Ra>0ay1Zba>sFU*c_g(X+(VZi?ePU?9WM_j z*T0)iJ6N7}SBdicwb@M2DVk+8Tr@1T*lyL7vn*>S$`nOhv00Ih;qyJ=fM&NHU0pGJ zi~S!keCphk{}9F);`ZVp9;7KcL@}^9SPyaVfe82YLlJ%$JQ?9fz(*o{6ns3wC%~s7 zd>ZU%gdYPx5#fG({3EDk%5NGcmY+`3V>llNnV~+&i2jQGMo(0G#Tl*IC!W%(hr~15 z&y-4@4#dy-;&ZD;(e{;i0FEpU`d(Z2`w|RYYSrr|C1Ap7CvLy4qKN!p6suwpybV3Mh6$`T*V3m?FT za=ByZ&hCYm-^@4v>^+mr?>|3(F~-)|{sbH2Y_lCGZRsmAbh~b#ID<&GWk>i<;B-Y8 zPx&%XR2VM7a5Wj$eVE)4#}n){XVZtyk)wD{&{fP&hoT*EmeosU&91ABZO&$mbl#3a zH|TC~HdT^AKXQVo<#+>;VOh?`-8PIVoaMI7s&=4P)ryv3dCumNi7(O@2OTGJR(e4f ztddzqtH{|*V#T!|tga_cF?K4J*{l!aW-;!w^g1F;)f%WR)o5boJZB3@W&oK-ah+%v z;^272F!wxX^JxL`0(5f?OG9r73yngNI)&Jwd6zIR_D1sz-EIu`y^49B+mCS1LhR7I z8=NgB^~GKB}e#NxOl407|@|d(>M)PkbNoW=*T2*7SX~p_{c~ee2k_47*O?{%|5! z25F@uAIA%VDn53QVK8raSzo_Hud(oJ2n>~!BZSS1{EpX`{^8(MW(-8;;3BjKm} z8D=-Wep)WC?l_T!+2k7_v8e%+4aj1}FwY z2&gm@lAuze5dxA(O|X~Pd++Q5mKbB~8uR_Vnce&CWf%E_nfrX-ue|bm@6Gbei)WuE zqG@VY4RumJGb%Z@K<5E0wi1b%k9y=f35#WSwSB5k;NxhoT|nOkC3& zx7l8=si&eI$>y69?V6&&6`lMIZRk%FT`c;rbTtJ->B7?0y0$JDc0buQqg^de zvz`Bg{T|(DH-@>G)+(x<4heIDt9oIPTr+y zQhNtks5A|pZTWVh84pc26sDnFR5YqwCsS6&M~BuqnS$>$MZLL~9b2xRH=D6NO*2dL zvUm-71K*p<T%k(Y zrciIM4y&|XQ#869Y7 zw9CsKQ+)#0xZTofyS^~**MQx%#7_kemq+HXtJ#F- zT?La&Fn^lf81BAMz}i&sDCzjv3PvyARR1SjFxYDe7g$yb*W%&kO0W%9A`xy=Ayyt& zVC1D!Hau6Bcp4F>UxmR2o-JNF+Xh!$E~dz&sz}fC?N%;mO{*1EIUq%mB{-RRHG>8m zc~yK?!BLA<-hQ#d4jyO>GAj z??$iFLPcGMn>=WLucDe_k#-eBf1jc*W)U#RC0NG5{5~_ODW1POP!)l=17c7|dOoh2 zK>Pqts=0Xj&S`Egd?l4m;BFj8Wg1Z}P)kksq2odf9GBpFEnV~n17F#Im4PEG!RU%B z^Dri?V+-b!ODoZ6zCb>Vq-paRm;clRrFtM`M&MBnvRA$h=YbA?w+C@k1m+@<8UwJDyW5g z?96>W8RiQZ11QFc2VYU23cpp@z(^Q?vB{=e6Ta1==?uyy1S|!&E#a>Lz9WKBp+Fko z%~zwQr|=28eEteVF|4`W ze>EJw!VU`-z(MF!G<}W3vmAuyj~rNkldT&YOJo>-hmG6SB;OO7zRzj{YLZPUi=@$f$XzUa1)E!uwX(*%gEd_$F=kECAQ}1Pw@=09tntPw2lEsRyGIf2 z^*-0%AH#9Dh6{7c6JEHNH9Z>^5T62?o(oHdPtBmtpErkLv(1V*AT_<9XaJjc{H?as z@o@{`3%$aHQ)rLzpyT%1toiybsQQ*<%5fckHY#D<_+=;_HmjlkV!=E9-s?(={uiO! zXfFOzDnhTNxmtBb;pR?k&h0p*RTuny>BPC*!`rl~VSVTJOGl1tg`b7hmkw;oZ9K14 zH`Wi{lRx>WR^3qw`F)S)b{@WX`s|f+`z{|lXl(FPFLLSp9=PNWoXVZwp;fP1#~#oMzsw@JtqM~%voXF_4qq~^bk<1DM)zn z^!D6+TXH)e%kMs(JGz&HPK(e#XfE33JFdMj+q%;BmRc+MT8rWcwo=P1&tVS5+ITwa zCGFcBwitGm|3jF}6;Z8F2A%O=6Dz1cb)jld4X6`oaIN5O;O>HZfa?VJ0>=dR2KN!% z7u;X)0MH=8gTX@u4+D=7JQ6%w@EGto!Q;W#3!Vs`EVv##MetPcbip&gHwvBweudzh z!LJlN8+@zaIp7AtjbQ98%w>PxS>`=YwBHVWzTgGmMS>TDmk8$m#|3kLmkQ?fxI-|{ z|1!aE05=KdcyAKS^RZko$G=lB&&LYEZw9|bumw&EZU(Os+yZt4uK}k7w}R7x+rXaS z3^*%z9eBOq4dAy4emnS`g5L$+BzQCUJ%YD@?-9Hee6Qeb;O&C%2k#X8e((nc?*i`; zychf-!4H7<3w{Xvh~NX@j|l!K_>kbk;70|24E&hjPk@gJejI#4@F&4f2!0ZLO7Lm$ zS-~9toZ$1|rv+aCe@5_U!JilW1@M;ye;NFY;ID$eF8CYZZwdZ3_`8C?2mXQJAA)}@ z_$T0>3H~|wmx6x<{*B<@f^&lN;LCz}e_RpF`{8$jIp6OE{{j50;6H(%6Z~iJ^Md~Z zenIeG!MJD4xq&;yym1ZSjgJlbC;bcWf8(I;PgT%J?XK(b6#b{EbF_E7sVdql-qa=9 zH{Mho9T0D-i4Kl8>FAhvQ(bj*B%U?ViFoR0Bc5HO^?24sr{dWyIs?y0bQYf7qdI<) zUeq0f!oQl`Yq%Ys6?MiSraB>QOjRLoOjW}srZkLVsurnZDuRfRdf)}E4ljsNyt>8| zI$T#9Q+@F27E}H3io_JUUDrLP2I18sriS3vGp2?iH{f**QKz23%5+lG@mxa#@EnZGbqGap z(efgc5Qb+8Bxz}(^oy3#FDTz&7YYIi2`LH!MM~33j(Uw;vkI=_U1U40IQD`# zAORP+rZ>bP9Fb7z58!{a4u1kMj&U+cP}Llt-Fe6F?7rS#e}3!(z%nc+p%3ASC3Qpu=@RA?|r?tAN;H#OvmznQF`vG%ByBHZuaP*sYV!$ z8yAGvh;1YGcM$IPGE^)^81L#AjkMGZ{O_;t>fd${1`JhkE%D4Qi;l3hJq}vw+37BBXj=^yfA`(bKmWCwF(iKP>8k#Oy2u1nNeKTW8sE*XH z-)Fyh@4kD_{m(i7S?<$wZ+`v+fYoZ50gu9}csd%-q@tN@VtXPTwTJVWcxKQ^*=c*b zla*JgOgg%5IG0E}xm^FAA;*AEq3R}kmmN*o>Fv=?+ir5=c?BcK35iTvVQIHW%sX}} z?xgdSlC|T}olZ9GB%}SEeeSdlg;1X2`ZHZ|Syb7rMGof^$!L!~#Met)Oj`v{uj34M zXY9eQyp!t7+u8i)Om;A*P~)!BK>G68M0z_HF8p5>3VN<7yC9KHsOolVGdVbGV~ks!F$-E(#bH8!_9c`;2v!${*>&C)brV2Q$|(_E8tvbz#-C#QWB z&t#qG*0z-^*KA$c9$jze?HXe1G)Z6-V@Fsi@vN_skxPdGUf&1g|rMjh5Cazjabk2VXP)oZ7m+~!1nM`64x zePc%9_Sw1Zn(5B{zpC2NG>w`DmMc`BqU$^D+zwJUgeX=SSUI!aCH`;N9e0NE3=|V> z!lcR}(l$?0$9MMAK;%ato5|$Gm3(Q7S>s~%gqU4nk26j#}aR{xblFLOVF2*_r?M`P;pF{nt8z;Mi zLmgqP$0Y_f5a21F@P&y>@lJwCFa_E9Oje<8%321D9`BHSHkx>s>=Pi>v+hn6&hB`U zi7%5b=u$faaOS-obbrboQmCDzM1d2unwQ9@rZ)kt;7L%Md6Slu@F@6q*~wvM+8)=I zmu54=l;7Og^cLq&aaLz0HIzwH1BwroJeLb#3q@)nAzX{=4P2*i_6)IE;%Fg9o7jpQ z=;VSsOX3yYF@sy1PD`ZHVlififo%#aP6wehU*ncVA=nr+;b1fA;Ox#*Pr97gu3)(6 zSvi@q!^Dk9C`4y%Exnc|tD!7?Z(p3v+IzYaxqJXgg|Hs%aU_KsV68fL_Q2g$F8mY* z4cx4-a<0om7y{Ge0I2W^a(MRZsa178&iO7cTr08i&7Mc$?Lt0R4TbhO?0rggqEPgR z>SBGIj>etE%GWk$(PYssmjPO@D>6wb?*peV51mtN(J||Y3SlqqFz{Z6;q1+CVxO?J zT9cIME=~^?T~IOADGIG~&|l)aw4ORk{TKDGWR2tF-Z`0IcKeF>xmasIK49Q(g{E0q zOQf6lGyJ)m@CtftnUfx~b)^WW0exBSsn9Y9^_k*n=sqXOhSwRCpmuxLmKn356r5{)Y4O8C@}HC@H$9EK=a7EV#(P_h&ABOb~L$jMJuhCt7Irb#SrW z58*}p(8S-0Zea$1jLWeggdgLl27aP&-mDHx{hgO(og1C3la4!ACh|!We}}(!i^r)K z3O%zUP}d|K3&+kWdKbn*csu^l#6JmmA5W(#8F~BuP8vv{sDhEn>5O zG4Zc5HB5Hr?L<2FE@zL7ziQ&&@C%Ytp9s#MAtOw}SCshHAwl!+CVnaIElWD-?fD%t z^q(gF3;)en&B;MqpTDMoEUL`5(vw>ymo|dYJ#Z-P+*0U$DKyXEUBwA%W1&xGxD|)F z#IKue?xcSQq~|3sXCM%H%`UnyL8aJE54tDCJn4|or@|TAhtpDvH6S4Cg-)!|=}Dg$ zgk|(hg|>hkKnnwPQ%~-kRXWmZ((A7mZ0|2A|A3XBGMBlMG^4BBZRrD`Esqi<DuZzW4CAu6YcV%{4VgP}^J+ zIl||bBUo@)uX~%kr&Qn!%3nY!7OJoi5uC{pd8Z|CFDUIMKxP{k% zGVpc-9r7FXam59=kXIT>HF8CebFVs%R-#_pD@w$Cman7+Z%cYuzJelD;vF%+cnMjNl^YAr6L2A$NQ zn>t+1Y%@UI;)-isoF(nADrisaoZCa~1Go&m+{sJ18?`JSuM0SOIc;gSlD$HiWLZLfu5uTAh5?RBMr)}qzK=>yozU9KV)v0+q`EXEPVkt%U>&DEp0<|OP< z#2@FFM|)OQ0+(nVOm}WU2gP&ftR-%rF7dJ%CEhfH#Ak>^!sY_itx@jOC{sPHqsVl( zjALobiG!&3t{p+7<;=E|7!v=FA{+DX^QtpjP8^!}d5i4sGIg2u!!?w7EiHN-=HYq< z$5yiS1~S#gD&EI1sL`EE%W~g>z8;PbV;5~uNx$EM-ITGI^Y-9Y%5J7V-i_O6Tj6dM zyl>(x1Ak;7rK(@29EJDbk9n2Qet^Fca`RiBgD=(z z!9@w0Vkh6G_&$wlWEkr=Yp`y3%`XvbKHi7-Ye|*(6Tey^F~pJfEN`2OE&o+KE$0xra<>{onL1L*Sbu00X0FvKFxJv-(Q3;bp0^?q5yv{ zHJ04FRP~TL_dLr)Dv827hL0Y>Ju=jC4EK9*5+CcK*^3-;Q|cW=u#X0MAN6`a&L$E; zUGEAkp*(&mG6u)iuY)aJ(*1=Xd7e>C`B`Fp4ja;#tcWS24+0UspUk zt(3cOF_nd^&@p_QH(?q19&b#`bVtg)?G+<<(<+ZtFi2jERa%v!_(4oZzQMigj^anL zY5^fnwenPBRWr0UdE0A8u-2-wsw1^+qxgqW{PX>2v3y$8G5pNKmTh6-(J~67wCXYZ z+>6coYE`6`f(}ib9Kmf?4JBTuC3agiMR~6sL8NcP74-u8*PQPQ2 zELPj_2FDCEsO#`Q9Fwo34S189gb-I}V1mNJ{Onhw3yXJIM=-(iE? zPOyZ|W-}H~wq-NzMuj|bymzD6vw)_rXqo#P_-ODUukEGAJ~OX|ozlVh`uK zy^bFvs+MCuBG}Im=^?5H=360C8P35SD#AO1m@*875b1m=u2yxN7bLDtYQB=T_Xey{ z7RSQG*QVaa6()8dO1j@lVrOxNTF6-ynt)d!I6*ZhyPAEHW)JD}1}w5^g1u@G8zc)*p?NN)=V*b|9#`UURorRz}8wb?Vvf%Fl*w@a~ literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/CacheImage.class b/classes/cn/com/origin/autocodemanager/common/CacheImage.class new file mode 100644 index 0000000000000000000000000000000000000000..460d4c0635a99779d3e32fd686a883832e46eae1 GIT binary patch literal 4881 zcmb7H`Ck<08UMbp%fLE{7e>S&8mpYHU_8PSQUQ-`0STxSwK2moEThZrIy);iJ<=vN zO?stit!>j&+r~CMViEe~>TO`At`&3s%hz*^j;VI6&C`Jh7`>+uHCM~4C%a(%gi2-W1c z_ogsVj#xdGImPD3q?=59<|!DK8g1-f%E<=95VIS}qq6FTbAAW*L4*I}k2wv}`e z_HH{d>TVF|&4riI*gRAm8#W?l&^A+vw9SDcHETT-KoE@@HVf3|!kqh*jwWoO4kET` zIBqowtfLNcP25KBG6!3AY{PaEo=lVQ9k~&C?9Sx-HYs2ljbt)rMGVJE#KRp@u``%p zy(%`ljZq58uf_sZ^TG5KF69@FBm~+#ka5!q9_Z~1&2%(xez`k0(WVXiKR7x zmTBhmjm@12c7VdP9TQmOg33T-QBBj4Kz&}^^V-#htW+|QGG)@jI^Kjgv)i0BVri2t zU?r2CEu;2CEXLl+M1&Tg3;Q&5v$x!CT}Kb@mp#@oZG-9-SdnKb?9J0o9}Z~P&%9>s zWL9+?L_eEd+&o1MEzelUY2(!O1`O!f16^7=tm6pYDxi%Rscv_T?nv@twuiR#@UUr{L#l)Xw!3LN#m3HF?-my263;XYgZ*CRAeeWM$V@~v z3=5RW$Yz|^F#=0KmmQGi`mG^nM78&@Jb7G4OfE0aUBWprX`^&i2DXp zrhU?6P*oX*vY7IAgfwv1YDIK*OCIb1PQa1(lr&XP9S(1p!H?;bOou(U#&Pv9vXAH~O9C9!}Lb{8KV z*h%ip&5G+GyG*5gTwu*KrF2*}%RjqI!zTpR&w4ZHF=D3UsCWW6gHP#rT1q-V;r5zC zT}JA-oc@fC&t?i?k8PUq%);k&d_gYA$B;I*BX|BR91UOOZD>}vN(eH18U2@aJR^U0)hi^iv2>ZXn2h^?3gL1Pu>ysC;GtD`L*~8lpOae0d1;sb|F9mV5yy&AusZl5*p{l6N7#Zxvvvd}-j7rml(+kPq@4 z7jum-9b8$+t2XWy{9Rl-fkm}bSUfO+rI)end3CCc-;0#J3ixmbO0gO%I44i@3}>Xp z60AhIXKxp+%fIC>VAXXjoPwai)h}WduP<`G5Lug5#J84K)+w9v+?{HNSWIJ;SmT*| zmWO;?2-aVRUtFxcgk|-Us4BoUZ0K&dj+J%wS5Q5UP2Fm#VG?&2qQ4>QtyZDjNF&ws zScB!LCE|LlLLEKUql&+4(ZK)B3Q4W&&WnzYu><$0h=XY6sDKtK5JC%qNyH^6D7t|S z8uKl1FIqj^&vDt$<)&G1SJYj>ea*gd-yG1_F6`y?w>=;rh2ti96%m6tN{K{ztmN-T`rXXuJt?9Ut^*HqDP_@W9o<)OmD zhH<>JzuYI)P@uF|sVZV0E%i_r_Y+<(v)M=Y`Kf_c$M^}U+m1u{DSk%kT1foQ@fxYSk7@Y@ zDK4U7TJcMcH2MkPR~!{9ZLEjyCShnAPG~rz;jD)98ZK-2HJj26wur|6vcU=b=9ZWr zp$A!sRZ}nrmi~4Ezwc!2{i%z6<1f_Ch5^wqfxk8TvQ2M=+Hccuim7&3cWL&cF%_X( kYgL|Z1DumGVJ{|&QV6m==w5`fhsj3apCjbBd literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/CreateCompositeUtil$1.class b/classes/cn/com/origin/autocodemanager/common/CreateCompositeUtil$1.class new file mode 100644 index 0000000000000000000000000000000000000000..60a7db900c900e5275f55bdee115d8c7302780b5 GIT binary patch literal 1353 zcmbVMYg5xe6g}IP#)j|^6;VVAR_#NHC@N9}wLI)h!4D|q(8O7z^+AtD^UwuTVX7fc&DUam^6@K=-=c!-1d3k+HW>Cg`*5)8S-J|+QRYW zRxIpzSJ}I==?WFw4H+vDh=?J#!~KHd8@^x|ZFIuF)qpBPc2)*b%`uD@|AQ^9Gh}L% zLJkZ)77Sc4kw%||9Qqm3MGfd{$Uv-aw>CtSFfa@>LWle7Jd&EReV9?6j2UJd=Pwe) z-tF5Ii35vVg0ND$T1x``oNH*k$%>z${d7 zkD-@hT?zxWB2+~748>xpv-cB7qM5)012#jUBh3lCg-KnT9Pzyt()E-{BmdaI6vc2n zvMXG97M|cK<^RzSLz>G>aiO%JYxm5;j4n*pOY8|D4m;R+S`Qn@V6KJRkt3F*9`2!k zh-X5FKx4QVI6f&VaH$?%*fj8xVfwtoW}$`!O3z8ex+-?tQ~aT`Wd10++Bh!C8nq^H ztM&Tn&K$}3NS0PTATif`9>*d^o)nj+y9=y;KnsulGby@rFzK|Lc2o4OPt0;qGr;^+@gwEqDtdAk)$w(d0I1gfmc|h KolZoDM%QmZFJ~nH literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/CreateCompositeUtil.class b/classes/cn/com/origin/autocodemanager/common/CreateCompositeUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..49fe8481a7de173781e2495891c9b6ee981e15fb GIT binary patch literal 7478 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/GetChoosePath.class b/classes/cn/com/origin/autocodemanager/common/GetChoosePath.class new file mode 100644 index 0000000000000000000000000000000000000000..351d5cc0c5e1aff84336729f206b4b7eebcd78a2 GIT binary patch literal 2676 zcmb7GS#KLv6#i~%ds1gg({!N*LTC#mNt>816o|X0X>qgCl$4}w6Zgb`6#*=IX?pp+Zeh2z$E;K)r`*%7N?%f5OT@-lW&VQ1g} zPmE!%n5<=b*cKO!t!+WLwi}m|L_O9qBuTK-c00XXK5ZAGSdZ%r#Fnr!e7flAoQdmk zgF*w%4i((IE_kOEHeZc`D_Jpcqk`#kS@mw6=wY{Pbide049E3Bz8zcip`v_{d4+fD4k9rUSZ?V`te zvs=bQaF>ZL5v)iRwB_jmJtJi^uv=lh5H}ky&aflnN98!^X)>2ULlpaPz`%Zm)iuhK zgFUk;o%d|lF>z3Oa%GeTUqm7?843hQe4gQbZHUC`-c+G0Hn99D?cWJxDq zq9TLJ)x>w#YFVxBB1jZRa8!uzRajMJv(|xaBT@9AU!(&}YC*b4KOvxQ3<>BSX0!kb zoLA+;CXV~GGpw{+FX^EX6DM#Vsm*F<(#!bNCWWG-QJfTt?pJ88r6nv5xZYv6T*cV^Mno8rE432{PHwYtGx=nv@U|7&nmudq!|cC!-6tR~&NlrF_43N`e~; za1$mbQO~PK+#%b_x|7Fc+K36;#FUs=Pf>p<>)G?ZdK?)HX#r(TpWVl8cfMKfQ$b0O1p#z^sYW zSi^qeTnM7oX<ZB$^@_)YXX~fztg@!m$9a`U*X!mIW&*Xp=ET-SJ+U& ztxauZY$+pN!H#}4u(gbx7tzeuohRmy7_DH>z(;tYD-;WrvG*gK5x{$xoJ-3}DB)!m;r8*cA(xaqs)+6o;`e?RQ0D5nsJgOvfS>jM8}ff}fU!<(dFY zmr*fS##jd*4|FgLtE2r3tSCdvCexwHIJGOJy25Ki7jgR>Tn6=s1XZlS6Du8M%#`tH z8E3@(Q)1B%WUmOs_-CZF9d~ee@8dxD7@zRni!V^&%=t}4)N<~ZK}v8DoB77H@e4-qD@WsR7{ebpsT2oc1P`bNJg6F>)jDMS zcDTSMVWF$-5K*h~3}aP{^)Eb&=h!Tp@F$+f3(RLXTjfQZW9}(V;`4Zkt0~6yGBv`C zwi&NbBf{7MT!hhuaRIOL`3v)U4X;zLKQlSV(i7mO3Op|^8 zL^qx3iVd60v~H)1Ojlj>fAmjuQF@;202v#y>5OgZy?4*O=bn4t^>U@{39xhi7*G$(dnuc%fn<^B6 z)@S;@p33WXF15P*j0Xa}UM+0HGu_pqZ#njgUN8mPmrih5-?i-Alt5(KvMql`Aeybps$cRimjed#N63N#f%53Z=V zED%(^mcf}&4IiRcAVxA-)AIrb6K6AcZo0OaKkcoGno@C9;A$P>Rml2W)iQ=Y^lP|| z0Rfd^W#b5p)Q@=#o^uLC$EH@&ocRu7NJUa$@Vtm`fiw(bM4+)6GV?^BlR;~`G{y!? zX&A!|^0T~!7naACA4t?%*6zq&7{@IY69WC`Foecc=oSk{Zd#gT=&t09eh zREnytx#ph9b~Vhb>F!&Su%&0|r;0xN!=J~coM_wlJfi|o^2nxtJACEvt&SbuY`Oaa^-$t%J;lALrDfug6 z$#(4*w7lXngjW8x1kh$EXhIAZ(8fKjVvcrnaK+9;SJl-kS}WX3gr|SQdu4p^2l|$W z%eYoXVkJ3}{247}j7}dQDtB*o9}*YBWl|g`QpUSXVxYee2eyWb^d0BkCH8qY=TT1( ze}ZW+Mm2tj`*-jWJ!#ze7?Z?ylIs*x4HKteI!JMbm^Ort7%ZehP-+$93Sk^075ZX_ zfGEwj!!yV9CzZHT#_VK6yg?=BxyeX8@+ZdPk=H*W8NRI^ARdo&sW;2W43)9+15{FDnRw8))`pGQ51q!+?nwqus}_EGSxq<$|D;5tteXy)|nM3M;)aW#xl zq?p7QX2~_p^%5qqid%Td*_37S8%%tQDa-O~2UXp!$|KhsltNZ`8=HKS@wWoW!i=*R zNTx8_EI!8DC1WYQ_6S;kt0%yQbrXI_~D~Z#k`8I8Kyn- V4`N5M6Hd;hVOEmZAv}a{{sTYdOi%y- literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/PackCodeDescInfos.class b/classes/cn/com/origin/autocodemanager/common/PackCodeDescInfos.class new file mode 100644 index 0000000000000000000000000000000000000000..97c87c25c64074d6a93c9fb7ce8c048cb0abb2b7 GIT binary patch literal 3260 zcmbuAeQy&-5XR?{5ZCTPUVs!rOL+}WQgUt51`4TZNC-H%4vkZ{0;$sZytrr1XX(67 zY5JvFsa2)^(GSoMRrQ(mL44~yfrKpG_;&Z1`OWO?-oO9-{SOhX(GNKqb7DyuHS9Sju&|?8S_-98@W$B|HT%Dw`I>SN6)*x98EYh-S!SWH}s;GyVqz- zUpZ80$wz_Lo($nbHfyrgk&&um z+@X!iTLG$AN_Vr-Q?ci(1H5c|%0sj~d#|ZqLbwt^v+jj`Sw4_2fqJdNc`NC4d_+U8 zkh*;pgl@nKb^;kT;o)Q~4~J!^BCjKd2VS||9k@NGlYZ&;en!5o9vpF%EIoFW3`}kW zQJ_i=jTaZ|s1TRDK;v{?&{>*uXsQxKvfA%7WPIQ?IH%c4*Z0D@7YF>F3{I$@f}TUS z->!5cd&^0;ql(t@+a(e<2C9*)bp0a(2tD97qN)Pqrn za(YEOd+ik)NGwpLJsfHOB`=aP=Ve@4DeWE z+$+9I2riIF64X7*F>ebJoTETY&M|4`DP5-FK3w4Z-rUjb^D99o=@j}&*LB#*4J7bp z9}GGTfc@d4!H(|>nqtS(aGaWSXa?)6siVV!9YND9n1LWY3%cVJlk+j3w4vp6v9rg5 zW@t8*RwBGGXh)0AOhpUW*%Lvh+1YR^iMLcLuLTE!&afbrN}?##y8YOfI{}~BxsemM z!uKRyM$~a!&4R}GP~qPg9}jJD475eNYl}A27OkNzwo_YFUt1JaThv2aq@pbdVb3EH zE)+aJz}p(E1AAiWFFNx%%ghAG=6}e@C>{vm*v{&So z39<{2#~C1eP#NS7YBpMt4HKkl1u4yOI!{{u8{6vhAm literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/TCLOVUtil.class b/classes/cn/com/origin/autocodemanager/common/TCLOVUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..d80917b24238bf1714f982f24aee97d3bb62752b GIT binary patch literal 1514 zcmbVMOH&g;5dJz@7)XLZ0+NX01A&A`Hask=jD=NFS{{;c28a5 zUiE@i9w<*9{0;sVv?pl55>mn*W_BL^_19ld_xF=8#{gEbCJ-Uy9p83>h8=`%-SutR z)`1i3sD|`qU4`bT5%~7jMrpJ5TDzWrMHtzW2h#SWU$-~6_mrav{ZC!r)$4?4HdiB9 z8;lV{6oU!$p`S2Za(z{4H?~!{CAU3ANR|RedNmokX8n89(r?`sp-{RSt0G}&*Y$Up zC7glE}nGc-s=fehhM zFA7~}=jj{U7}A(b;5P1XK8?DBR~NB)a}B`+?hFMlG zRtdzfDEY5+gbD4i+tVC+oWo%Epp!$wYES43W#V@?c?q6o1qqL@j@d~YAuTTfCahgY zaY9@>>P*zRp3J)Ho64$c>Fk$fvs0r2dBSq9%w4FIKu%!!uhwx|Z-iJiXorq^>6)%^ zquXinrZRCK+)}t*0TKS=R>Gs;mCZBp+&BLj1D`s_F&@n^Fn~CZiPH-_5AkXcH!#dQ z#`p(=_3>Pw@_cgS2+6NVSC$rzaO;VcvA$t6V;#RoJYz*y${!FX9{MX(Ui`@R5oED| zDJEt7%`&d>6k+rPzRxp}aC4i+OsFwY*N{0Fv(o?upBNgyp?|Ktl%fs{aj_do(uMy3_M8Nuo=%9*Gq literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/TCPreferenceUitl.class b/classes/cn/com/origin/autocodemanager/common/TCPreferenceUitl.class new file mode 100644 index 0000000000000000000000000000000000000000..83e258c11602bd3ffea50334a4ef1be89f7636a2 GIT binary patch literal 5111 zcmb_f`+F2u8GdJPv)K$GBm~$3g+hQNBy6GOk_1u#(-KJncGDmMX(yW@8L~UOotaIO zT6+_%^{$8tDq69mRjkn3g%rhlYqj402>%6tunNBC>}+;78+j1rdBW_R^PTVVe(!nD znfGqIbsfNc_^S$^f~^TFmPn^!Y1p>ksJLtTl98uW@4Lh-m zPL0R2dXmjDKTd z9%2MNlQFCj1#R<1sNjO8pemn_M@VVUJZTdmyH~84w>%QoRkaX8WP3_HGCKk zD^MpyHV2N+A!4Dtir_NpfY=3({0H}gBCkWDw2#cGsE|N~(?UgpBtsgG;3yLt)17|F z2X0>O=76QAr)DvntCeBZaz{uCa6de$%?HS;I2z4sB#ld9y$f?0^b14T&RZsp$;Z zS)+np3OeqTU4ly%UeNGqyht=>TccpZyj`hmN*JG&-4H6(j?ZiOf{>Nkybkt^T4~$Z zt2-oGP>M&Mhx3%M|Bg$j%!$ooCB3FoLU;vzw-@2I$#@!HSMjyNK_kzf?#YCaak-H- zd_$c43o|^T$#%-c0QWmlP-p2HbQ0+dNBkL+YObc`Ix2<2F;98QeNuVK_wYX58KVmQ zPnG4tlM3j$W052ybgY(C|Z?qDGggT^K(iu)739f2`pWE)#Im8ZjotSypyb7ml4CVf%)L zpWsd6;bez-YVfutt}H!0^IW-v`4wS)RXCjA;ym8ca1B2dJCUu8fk+LK&hP>6X1b%VQiMa0bS2e;=`N#J2Z5^NDU(o*s zBA5BY2aW%Sw0q7e->-SZ0l7VxPrJC8WfY$(CF~6g0nYYZN0>pep%WkA^>LQXKssRW{a^3 zOK>liqMM%<{fJ_i-w_7qEPgEr2=344?A62U@lhOOMSi64D1Z4l^C%vJ&XHB*>o5`s zV1z3d!v8NUR?)7a<$W9s69fatJuv=GbCpIt{;rlBMn%;s%T09zqrrFCl8e#cJ7|jr zub;yP|F+OHqS0VOXiE-Gs{}<2bgjI2GNd$wX!Fv|zpcDTXZb3($Xc72Su-2g!u&R} z##Yw132S*5Z^mZqz!r4yqhTlCAHsH7>ArkIn7|YC#ndn326i zhNoERBKrC`o+e7`$+&0mEaye_4G7-AGDU@@;<J ze@dXA2R%^tnH)ZM2Eo9t6-7kXuwIZMKK5571`Dx|tnMMI`>`6mSVQI%xzad`V55hi zj}`(qA6KuGxcTX$0beAld9Eyg?*_kcC0gy(WXhNDWiRDpOgX^tH6r1@R=-HNzfF)j zk5>)nfrnXEoQ)rliL~Tb%qCLfB@(1((KfNtC&T+W@)ex&V!i0asu!`AlW8eN>Tk>8 ztI8z_d^H!IrjZbeB@)TQRF@&XA7S95WW%u%BF=j4FHw-=)n<9P{COe233ROQ9q)*KnSS@N)k(T;TJSjzG(DO2Dh$ z=4rbmHcu5d##scFOLYw$A^xfUZQ*H*a~p-X)LqQswR6}bU;M?P9A59>hN4ArEbv$k zxem208j7kp%p8gaqM;mqc4!(a+B{`y2W&U%nW|*HD<*?%jUQ$-RkkvS_ZVdf8<+R?`&n;)pf}Ox z?Wnqe)hf=bxIlr3C^xV`N@ct9KK3v3-4utGiZN~p>Zh;*f1Va1%FEE5)AbqpeU?Z+ gM>L)%!YBVvboJqntjdQ!;m>@EYg>$c`%9?m-vX=Q`Tzg` literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/TCQueryUtil.class b/classes/cn/com/origin/autocodemanager/common/TCQueryUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c31b1c033319c4db44eabbf79ced8421f047373f GIT binary patch literal 2824 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 aG@6~F*#z!jn*JIU#a%q0p3+z;NY5|&NY=an literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog$2.class b/classes/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog$2.class new file mode 100644 index 0000000000000000000000000000000000000000..e138fbec9b387eb1378b893253b93b1646bd9225 GIT binary patch literal 1634 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 Tnx$s*S;oDd=2QM1av%Q%i>g~0 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.class b/classes/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..d3e4565fe9edcb58f00b793e1b6a88d7e362b183 GIT binary patch literal 619 zcmbu5y-ve06orr5qzxg^AAZG#1X9aDhK^Jf5-L+f2T+G@uCa=%)UJ{g!8@@40}=xd zz(XOf+epwd5-Gm+wZC)jy`Nw29{^g|FQdTF5jqrR5}HJfln(hUGs4`;3DX_g2Fy?v`_J(6AGKPvuBPFCxW%psK63M^@3|?Er zN~^5HP;4~&49*34t$|@ZfQu4wk<#*NHW|v~h7V)n>X8vV?(;<1bDkucL(7g0eqCt4J(jeD?U s;*%N3&LPMe1&c>{oy^W_Rp8_e^`9yi0u>UdEeUL6hvaA|v=*@U4Y-+iCIA2c literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/operations/ExcelOperation.class b/classes/cn/com/origin/autocodemanager/common/operations/ExcelOperation.class new file mode 100644 index 0000000000000000000000000000000000000000..b03d8be25f64299b82ce5044ccd76c9e5612a8d8 GIT binary patch literal 6659 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.class b/classes/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.class new file mode 100644 index 0000000000000000000000000000000000000000..3f2807bc53fc2ce7a334431d64364f4c7b895ea0 GIT binary patch literal 2365 zcmbtVT~`xV6y28$nQ<5u15s%OL2czj9V&>GfR>_YY((22mfA{(;R2({B%PVC@S%(U z(Wfq7`l@TSl-0G``qYR1sM>vpX&7zlOOutkU+12)&pvxj{`~8g-vEqZO-Gx+wCme$ zt!mc-Z{724rxDfM+N!KNzOya^byThScC9W0C-Q23Xy264EDh!x)fE}&&;&XkJDZMO zar|}r?#g57Mgkp;PzGfgYFuVBju}@x>PXHg}jb#fta>8l6u=!3rBHGz$BQm3`3GB zF#g{N5`I!Zl3N8GJp!j& z08Z;TCD65B^&4BRtSfa`I0HlAa6Rz+s2n-&lLeAU1spDUej=F#XQjfOT&dPJq75$;xK{dKqNIuhBjigh5c2F`4D60mPl9%?%8HESavxH336E;53G5VU~_f9Qb#2Cd}k^XwL5sSBI;1YrK8@Mb0b@z&eNf3Y@$a*EF<$5~K z?1sZv=9`A}U0F!Qe{Fv#b&vp4uBRzEZd`!@Nc zN^ju?=IEETst8<3<4xQ?Ohwvz{R`>f$ricsB3V`B=290DA3Uu)fm3DeyIT0uahqjR zFLAT+2u!uWQsn2~-qUcJ0nMgpLml_1xi<(2-3>Ou&<<;ky?k+WbYgjQ%$ENMJ+zbN z*7TyP@R@}&7Fgg-r_zvj*OZWoEux!P#OFF52prk3QjwjJ9ap(n5;*$$#pJMH;31nU zH4;3%=LFGwjjOs7v8Vcq8+I3$Ln%?AC~_l=Xjt@D<(7a^b+#52HUZ1?-9S2_EJw0V zGp1H)ta24ly`g%VW-^Q_b z_-B~IyRdeUdx_∾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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/operations/ViewControlOperation.class b/classes/cn/com/origin/autocodemanager/common/operations/ViewControlOperation.class new file mode 100644 index 0000000000000000000000000000000000000000..8555ffaf0f54e30803a0cb2a3078277efeb6d25b GIT binary patch literal 1427 zcmb_c%Tg0T6g?dR6T%=N1O${vKr|C1qk_)>3J6uHib53_s@zQ`ZPJiT$H@fz2|vIu zaLoqAg-aKHl;!P743Y>dH#5_H?>*<9?sMnouW#Q0EMiMTfZ?U>n6|8#(iKJFm{#4B zwk+_9m~@LKx67hh<7Qo$J7vpzC*8`MjE-r< z8T2Ce_N9B6=Z;-sm>~YPl1wX{?!zqRG~DXMJx|hc8+RB+33tu*#1U_m?+d3O>4;{p z;%FohlYw~+NrtIQ+i9fgxQhjb{ubX3`HUfc6^TkA3KRD=+#}JKQm8~7*YJQL^{9n1C7VJzX1hKCH(ZRjeTAs26cuz6LDfR4w$cdKL;Z`ZTz!#&rsNkc#slz}_^ z#K0&z(@x$2OwR20@m^Wgrt?E3QQ!@y#uM!TRqD(iM_+-FQz!I7#|qYzG1{{;Ev^12 z9{Kj4Y|pxg$q?R^b=T%wLJjAbf@q)pl+uehXvpce0(vqv-1O9FWzw650o}pz2ww4mRa#J%3f?HUQZ6AWV1zU=K25iiWwD)YX1B_tFZx%A zk0gl12OoX#M;X5Deu$OkLT$Wxm!Ue7p=|tK3!fK_X3?=iA;rLvYic^uk$&<>VRQr3wtu97zxZL$?J3T_z&v zu@FO?A(GSyJ$X-x^;)GU)YfrLy?Ni^M(!^z4HE@L? z+qQNVuHiaE7k3@RMTH{x$ zr`y?L5GwA3`bcaFw<2VC43sg63tUac0j;E8u6YFdj*eCAsc_0+35jb&mIPYgU}=xe&;(yk+_q325rPqokV zRFx;g&5%29w&?hgYcgv6`M>;woT0m(xW=mu<1sh=nsUUlr|ov&57QpgD743tbjp6< zNq0?z+kVMHKjs+5l6habws6W`H4yX(P{JnX3B8K2SASdonopkVtBiI-YgJ02a%CO_ zBA^RLPDSk;SUj%nlfE_`)M7Ac_B@RyDb_RQ$mnNSBVTY~zn*iE`cBFLNzhBZRUez^ z!zGHSdc+$DpBe}&BL}dKFmQky-!a$>8lxi&9pe5ThEC!KCnH)J-$Pe^^biyK^^Inc zC2A398aIhJFokYp=z>qvjhewM=CFWyEK{%P4b+QRY0z6h6wmOSkfvy@3z6Yh1}39~ bm!Y_WFlOjCO7=ZV7$AfW8XrHpWO{x9uAxHh literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar$1.class b/classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar$1.class new file mode 100644 index 0000000000000000000000000000000000000000..c50a8144c8a8a9f5171c086e138e89dea07ef811 GIT binary patch literal 2697 zcmb_eU2_vv7=BKYcH4AoW3ixUsY=i!EnPyZh`|;}(-KGu(paqcwcQ+&t(&tuXE$xR z@zTHIt;|RfnbA8h_&NLl$MU zikfkIdxu+rhGB-RD{BU~9NY7`vGc&RxZ!$Snt@F^i+7tsnA;A&X9x9;Muy>_Zu`j# zWLarI({iNjiY@G5iD4x*u(tFjLo83+jDlfYhlY_jqL|PziUdP6r35BQw&3f{#x|D~ zg^gjd=W^p;(s!<9K@ zYP_&-aZkCz*YFO*Y}bX7KXAy0Mp5jN@k*p(${G(2PiT0T;Y{~HQ3PDdrWf$)p-ddp zn9*>CVR=AD>UbX?FpQX%MKP#iWBWC@^9Wu3USRCmRl?{S8+GnDxj4?^oQ5RBbT6;R z1a*9bkBLn>x?=mDV?Ja!n@Yb_ds`@{Ax!}=AT!BqG8;z zXfPONUWUC5Lq`@D$u<5%VHNhd#c(QB>c&MU#Y3IbSk&7==~zL5VU)Us=Wr?l6xscv?ok`E z8HUUniW+V(oalzsVSUkYQ`OxGPue2b2u$mzilh!Rh7#5_lo`^!q`k5p>bR{`#j38L zimg${Q&o~m;*l(Vr3$LULtI4x!`1&Ek1ga3jLewo$)iKi^qTPyYuWU|UZUaaBlJ}2 z(%oxyp21T~6@xy(9Q!~Zi{l$^Q(Ao0R{ikgF^PHQTykVVSdQ!4qE_ZX-L2~QUO8o$ zho2k_dQniO<{i`bxlbK|8Xx_Kz!C}7i|LytO8-&BX?Kifi-^z##51#xp=X}pjYqVK z;7z&@lZ=v>q`Mx@<2Zr0Xhpo^BuSkLr6PD6r$cQo5TgtDHuF35Kk(iGK75AM7OBk~ z;CyRy;U8RnhD%$m)#WGnqTGHk_Y_wn_!Xzia|c+ReTrL*R+HBE=yh?TE29{AIxmzT86J;7VX!aG2_i3fDWm-13v61z- zgD(l=JjQXCq$8vuh6S=t3A80m7^6I$yrCP&(3zi|? literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar.class b/classes/cn/com/origin/autocodemanager/common/progress/ExpandProgressBar.class new file mode 100644 index 0000000000000000000000000000000000000000..7dc8cfd1f86e503c7d44305d4eb770da161a2d60 GIT binary patch literal 2977 zcmcguU31$+6g}%WabiT9ek5($(vmizwnDo#2~bGC5+`jlV<>|=W?G)s%A#z>mOQI9 z=_4=jdte}xp)>pdeiXx9DT?EdX&sW{2kow;bMLul?;iQ@fByUnz#=ws$S~aZ0`7%P z9%|*QfQz;Xy>L@DMId~s?W1NG@RkmJEu)C9zi5eI^Q*n(s?a%P878;I_kuS>;PWT- zZRr_?(P&FH8Vpw|q4v4-8mbjZ9_<*uqc(kMB3`vGEHj))gRd#k2z`c97i9Z8;Yq$3 zKZ|&p`HL`6Ce#Upf}BZ%)P=67$jCryhH~X_)uqv?t~3b6p0I+f2_qtgyWb8M(r799 zN`Ioa1j$l_c@lS#;Ww2GBEq1 zj@?nD@;!!M3td~%zl)Vl15}MxfxkQ)i7uIX$~uzL#TrA_)|AHxrW~BYG{Z=tSepRD zc?Y8yv$G2h-o*(!yX4>C|>A z-hYzA0t4Am$25j;fIM8>u)BPd;p&?tOPb)8gB-?l_=tA#a4ym3fpeuiN?5Y_KW11f z9JwiqHCxc94sPQ!YFph77;YDyKkqt)i7a7DYGD=S8(+7Bz_#c&%50@hwrmf=xbQqO z@3~tH^~SqSm_WY6Zi&Gh2fIU_W&1s=hHdT1hsyfmbl-WqX>EhS*$C(>Uv7vfk`ZR9f)V;- zGlqd{Mp$>E>o_4#;WS;(&}t{f15@rxoOKs=an8N5iy3z& zyNipz&8w&3HEZ3Z-Wx*5dE@q@zz#+agK4L@GRqDLF}yM3>2Ne2(S4dgp1h2}W(~ zpJ|eaoMfGj!6X_%?%?hK$i-gBr2~+AxIX|g(+jzL0P+AU10butkP8POYgiuu;k}Ua VDTFF~7}xm-k7>*kxI`oU{sp0WIwSx9 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar$1.class b/classes/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar$1.class new file mode 100644 index 0000000000000000000000000000000000000000..cc780daa6a680a1c1d67a3dff907ef3e24c8027e GIT binary patch literal 2631 zcmcguQBxaL6#i}qEG$cjU`0{UDr!h5OMq5rD5XGJV-qM4sHiW?<~CWH>|O6}un)fK zqkp5%ol$CaM&EewM>(Fmn-J_w!_>(%GrRZPd(S;N-#O=gXaD}^_dfy5<68|ehP>^X zwy2vzIu*w?twtbhQRa2awJKbyt-5ecPl}4Cp%EIFCc5NAjn zS;v-Hv)qcgb$G<>KtmrxM#zfE?V98H+&p?{+1wN!msa4A?fg!|b*;l1f8YewmPLlX zpz8ROv*cl+OD<-~=(6KF!3skm*)^+E`wa1QirD}dh74%v*U^Jv0|Q7f^dyzSaKUl; zW}|+{Wl3RW7%2$bs_k3SQS;_vT!Ch|*DdEJGX%OvHe808WZ`@kY$3Tx8-Y{jX1*2n zqM+~ynN=?9xyLs5REm5J?=Ym>sg?X;jdE+|-D3iwR7#et@Zju(hIbhz+6VG(z@=<> z0WY8F=y)F=XqaHQ+oc2>_z+hZ`Yqe0T2;04V;9qWK~8vhBh2VxY*IOFwJJQT<70fH zVUl67Gt!saFz~4=COy(n=2iHT2Bwf|BhE1V^!gAxAs4hb;YG;Pn9*>RVW~6Z4n_=^ zA?8S>g*jtj4)blya|}PfKFlxjVe8@$0~Q=V;4YV04c8b}I>YW@CwI){vBX@y!;hCLL^q%T&e-$SPJ_X1JUzv~PFB^h6qiSi!1>TMW1V zH~dx@4cx{W!vICft8pR@hV@rP-@-xJ38P9b>e#>?4LOFs zc<&U6rgVajo?tARe0GYVrgVaIB+Z^;=?^R%M6>J9aHH7Vn0}6%F+9O|ary-7>F4-@ z(QIThlCJ(0jZZ@q+bB^f0tYyxcMlYbH6-XgONi&l_j&Sp0atLHa4q5*mPr2wwy}&o z+@y22=;R7)8Xc_S5slx`oly};MaY^FAdDztlOnN!A#CA3{r?_mY-5L{UDCgVzOm7& hhK-_zQhzUbvrnrrJiu2p#)*p#@C`{S6DrR1`xpHd9W4L= literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar.class b/classes/cn/com/origin/autocodemanager/common/progress/ImportORExportProgressBar.class new file mode 100644 index 0000000000000000000000000000000000000000..d581996e394bb8d10ebd606ca09e3711f608ac21 GIT binary patch literal 2592 zcmcgtTTc@~6#k~P6zWQmJBr){>_u2EUJwwKiiV_u0fT|J?J|}j?QXNX6&`%mM}LbZ zB8epa0DqM6%r0wbffgd64|`^2_xsK{-<)&$`_Io`0H%-%Bf#)VH&orstEMHg!ceuM zW9sG>&ufO3<(7PvHx0F5nOTe5wz`xrn3l7$y0|Cpo1^0e%?cyP(7dC4(A1n}WYv|- z4%Z!qkiE@wIflNpX=PQe=S0Egs=e!|yJ9QL9a~+KAIvf|`A%L4EoWvKCdwc??=_vP zTkbns^*z5f4dIxU2O*MHpCqGMX<<9u;1)wFeX%TkcFM~qk=(*fewpN1DR4`3glRC$ z*5LL)zH((?$;n+I%Z?dlYH)fW)w_f;EK%0a3DRVq!Hks&cvACp>AKb&OBmVz$tAwd z5KNIa5!9hoK@@Eab+Pz*BN#dqgitS6T?(#2VTh)M!Iz8q47c8DnH*j4`@_i*?YMb7E*Bf>Dgi zI3^ggcaKgn*o;v3M^8I(;7`8%-RbC6U}mdt!7So!?wQH$7Y2*WL8INxI!4 ziXK`42@ggmJ+vbN*FAGrx6w8tEeg97r5uWFzq%?FWeMBT1`dFnEa34H7~9fyq)Zl1%0rMUp~Exq&Di ziI;hE10LcLok%f<$w~(yV(kA)ivXmAp4ToHOtKJU8jnwbbXGz-k3nWIdkSQ(64G%D dGLNUHK$4Y^b{|6FK68V9js>z20*{iV-(SdC(7FHs literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/progress/ProgressBarEvent.class b/classes/cn/com/origin/autocodemanager/common/progress/ProgressBarEvent.class new file mode 100644 index 0000000000000000000000000000000000000000..4ac1853f093143c1999bbc89591a624ce045bcb3 GIT binary patch literal 497 zcmbtQyG{c!5F8(Qpi4qRAVH#|<00XKGAKd>kU%Fu0@6E&bvU}Sk?qTWQ6W+A0elo< z&q)O(F1()E-Pu`xeSdrcIKfU65yLpuJT(P3R%J?aQF@b_XITg>GHI(+VKjfWCbQBx ze!qI03wybc+BZ>S7|g{&@Y1WC2l8$S$1G z5{j@+FH%5@?lv)F;v$NT!=ra}-a<{6?l`c0>fJ(*@Nij$P4o#-J@MN?Yd|Q%@COht Bd`SQR literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/progress/ProgressBarListener.class b/classes/cn/com/origin/autocodemanager/common/progress/ProgressBarListener.class new file mode 100644 index 0000000000000000000000000000000000000000..d49e003a8064933bf85fa980702c4fdbfc200e6d GIT binary patch literal 305 zcmbV|JqiLb5QSg-TU{;e^a$FR!qQ4bD?vf9kJ({~WE06|_iz>-z(a|NXlG?H%JL6>B*2w z&|(-~L@l@$Cg=O}g``i=VHmyD$}7z`H5vasVdzR>Bx%YR)|1`e3~$%P^u*8$q*qNo pI;KZkIZ0ckiDCQ$c^0_>A44-#JG`S2G9>6CX6eNq^fc<|zX0WoTR;E+ literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView$1.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView$1.class new file mode 100644 index 0000000000000000000000000000000000000000..564785f326aa37e51ab53e7ca6965e3345ef746f GIT binary patch literal 1651 zcmbtUTTc@~7(LTgmM)8}fOr9sOTkhuD$H;<={ug)ko%1L<>1=6u1WSfQy^TWqE#G{hK^>wJTo4tLAui{iSl zq=qJj0naa+!gB0tAk1J>nqot^GB8ze!49Nwh0o9=*X$s5o5&Q-%O*=`v$ku?Ifi`t z{BXmo46z&u5(h)80S(PMqDUBsBgqg=s||^Q?TV#Zr6~LrUUURQTfwuqv&wy2jq8&! zl_tZ&xml$qD9u*&O>&;&aMHHKFqkg9`?Z=MVv`b|{UU(V4vpV`PprN0k=P2^wod!}EWY8#hflJQN zksdA_bzfG)EryxX+etZ7!Ri>sh=vTqqtk;Nt`GyG7-P^ysNoWsiDCXM-rVO#-%*DN zDm<#0_P?p;w=7YWw&xnSquiOO`nD^VCAVI!P~pCHEwHz<7-SVQ4YhKB~EFO|}R^!fLm_F|G zeTU?{N|mCe$R41!EJ=oPXny0FOE*r=;Xxn*^ioYn>A3)wOsdkRdofB+96HUmQ131x z^au3J$Y&UtFSxi(qX;fh+eCYS0BzJ7VP8i(I%q`7ptFuJMPr4)jt17kz|OtJdY}ru zf~(XrTx&plq&+c$=o{I=^E(U4;g zWd&?eF0YZm8(Mu!>+jHw_musIkV0k;yg{L_PN9VeOoj?{(~c?JBh34R){5vaBsB~@ c*I>qIa+)S1cz_vt$Ea+wn4_MOPzgl8KQ1x9M*si- literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView$2.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView$2.class new file mode 100644 index 0000000000000000000000000000000000000000..c5714c24a3579b2194c82a8fb28ddeea06ee25c9 GIT binary patch literal 1600 zcmbtUTTc@~6#j-*R+a_IMNtuKvDgd9D&COd1q&u71x-q7;@fn0QWm$n&F%pH024K8 zjK29ZNDvbrjBh0VCSyF)79(Jy&?cRkGkfOy=A8M?`Tq0ER{&RVOG6vOJs`{QO10l@0awr3C$$TKV6w9<#a>Pb*N<)+(+V5hGtQ?!jg{f&Dp#rMZnN5SDY|;iKq*$a_0zb*6|#9n_(f{I$Wm25Y1Eg z9bo7*a18A_BIq)pp_?I+Rt`M{#}i9y)v^eddD#^VeFfj*ZixquvYVSx6(+-c%eP8S zQJCEuj$IM5kxgMUWYdLzWqd)sKrU12z)76aFvu|WUq=j_#u-Y4BSn=Vet@TOmC$@# zzfw-eS&V2HW*FHIzt_{iIm8(>iesKj&M=V96ju248274hzFF0-LDL{iS+2`6m0@&0~ur)VosP}aa@}S3O=`$xJe>UbWC7U z!$pR>hbP)wTn0=~rRd^WjeGVIDU;#OQG~u5KgofC5lZU7v+gh0hI|-|uwKH#Zams- zE7@b{DoSoWUF5Z9ndn7-EwIFWM-|f0-&@S25(yRFf@isY=y;VyAy<6czznD~bnACN zVwgTy7P}(M`_&qqmLm6u=!!BRyn0rQ2c9Q_yvxH-goslIh)|zov6yNDv}&WjhU2u~ zL944|s~tT%{)vXqFgEKxJv6qH5AYl@8jbo|M=$!wV(7;}6X64$R}AU#Eu7fK&^II& zCw36soY=H!w|el!SZ}vvnU*4bAlX1)e|3 AJ^%m! literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractCreateTreeView.class new file mode 100644 index 0000000000000000000000000000000000000000..29f8c3e323c4a3dabbebb7bd4c83a278ac1621d8 GIT binary patch literal 8638 zcmb_i33y!9b^ebv(i=Y>81FX5#ty=0u{<#*0W=uU;zhPB8%q|ENgz+7XZe}Y%yecX z+cZfjN!wtOHfd4_kewtzR!pLi6G2Lwwkhepr3>9DOBb4zq*=*-?t3$ukw#|h)Ss>U z-n-|X`=8~WbMBG9_R}wY8NgO~qlE>68xpBlB0UyMXZ=w>6?4b)=|pp-3x`}*O)^qdT06z`--Z2Xi!G%ZN2{)E>Q=_qc!$-YDUSR7QCGfI> zjlJpYXv|9_{Y=h_9X;$Oyx4@9%f*U}ylh-x<-AOXsn=BqI_}3Z{2Ws?=sam7s+QSwxnud*F@I##%LnREVA*s!ud3;G^RD39 z+JGtZlAVgH$!(QRbfiXl{an6_=G~X^vTok!d3SA`)5R45!fL#@&tlz2r7hcFTWuQ{ z=nA=FxoSfFQGx4(p#2rtO^_-V>!2U2phbaoEqN_cUj5$a7+oM>cgBI5g(H?bm^lMEKkvnRXHIQ@ zKI^AO;}whMcyIF{{Z}#Ds6(TJ^|(w>*VH_?5QOaDd|Y7jso6n`&e)2DZtsre^z$YM zZP?7u2@^j8^&dJnoXr(Lt4pVQzS_YSg|gTk89CsO9?9?VPIM&H@pX2qgDZ9R0?zJD zkLSE#if+=&n9w&qHtb~w++j7ylHPQ}O%A$QU*E%zk^B)qC+K_y7kcFwN;@tjRVJ-w z5nNh>bc{M0A^O}ggKmx`Ezk>g)fCNYINCP0p;4{e;b1A2S?ChPYhqsgSlj3f`0a48 z94l<>!fp#af<~%gcF=eI!`Vb8*3q-$VBSyq`4bNIpjWV*@vFndde2XZS-Nkg?$2(4QHjDGc9#+BM#832_{TRf-C1o5N5DqE+vp+Dzh*^ z(^rvycG6Qj3_7q7wb75)IT*qr`s|E0!c@4qI*JmzuF7PnY+vtSA#7!Pi-TM7MxKos zwn1oWtCg#g$Cc@@gSA+vOh+7eILs_hra{1}nVXUuZbuwkf^`;-3bxebf#u2ChL5BM zt}#JVQ#CIsX{TtGAiAX;oCim6^*P2XM$X;mwsdZg)-W7ppcvDdMdMiB!8lm^gppM< zi&8N929L{|sxeX1@F>-z!NM;Jw$-FebDZ}bP`1g|`W=KU)#H(yS~~`57VJ8VK=g z4&IKt81)Hl77YW$8NtmWH_+~8ZBRS3VrWnuYw;JwJDGMh*xNXX-%#&;m*8%C?^##w zMV9e1dVVP`R4WkXB$`9bgKGERbnqU$mu^Ru^`tW6tc5GwF1Qv@9VAgFQpqgbE7(x( zDpfPNjeBsPihVz;j7sHKrH}WhKfJ#R>!f=kJ)V#4@RP}2^JwD%wfH^wkb@87BTU1_ z8I_8$c>cYD)s#j>zfXUB%)!U;i6FG8ng#0_DCd(+DNHnb*uf%PXyKE*63iwZ&AOQ* zej*p^N+;7iVV}llEqq3B$!x;n)uG$ZWhkP9&*9M^BZcWvWtksLxQsdQ5j>`P{(MzE zm*8}J6Mn*r_w-QDHYPD;p&+<;K2$2JgVXq;;CyPg(@oqq%DY->q^gEXyBML3h6U3O zCU8vE{Dgxq9Mvp*J<7uv=xHlD;+R1v=?*nTeO ztdgM-ViJGg;H&sUCTdojsuR7Mcqy&gnTcjAk5Z+=%V3d?Y%F~3|3knlY&?apsOkR1 z!Jp#K1j~r2-%Il1&eFKJp`dMEU~`Cxj@J*~c8Qz5cer%KXyrN5%{hlGfbGDdeY{>U zlAnv#RjC?QjK05)zq9bS6`hIx6IA$^gTKc=FbJjGRC>VI>X|nf7N7rEYyQY&)1z5- z3}V}j3o?0_*G|_Q(SLUEFU8Z>?HzWEQh}N99UFX z=V|X8n;`!Y@pXLL z!FTXo8qtL8<$<(*I<`L`XzZ=B!2ARC-^Brv0&ZLZT0f29@>*SoECIzDO^huF1umP<`TCBvcM9lwH0>; zUXIjBguX(s3i8&Jxg0Jd%Gt6r*1seTj#v_<3EWJ^({Rk=K8JAb+E8!ts1W+fXYP3S z3n%Y<{?0Ex|K5k6ySLCZmTUgT;_gwJ&5p$6 z)q>Sb-@^($m)ljM?$7Y7lJbyJUg5}ArCd2fIp}5cyu2q3ozlFuizmXFvi+i? zB~drbmsd)HQe{E2i7FcKjuY;|`NO3td*|tk&0jnzTPpP0GZjE2u_dl`qR91*G|FXs zl@3QbwPMzysMl1ZYC)apc4WJ8Y|aF*7wTnh&`pk0k5;NEOl7mVycRa7=p7~L%?0b6 z+k*3pZ}?LFUcuVgHB2!N85&#mPyw<}ZnR{7Wm-0^M@J4wKZTo6A@{LIu(3QC6>kr7 z<5N@)GWav(a0BT!XCE?1?F0z3a_Buw@3pn!D z&L`>%Q8Th@V@5V9%*a-(8F{%d<6XWagIv0&_E%I znQfI6TpD5PGK%ZWHcmhsZX?>J4jJ7~I%PD_GL3CRQ@DN-H}J8OkKL2l-f|i{3)uT4 z`X_O)rR57aSint_xH)`$!zA4BF)@izF7$_#XbQJYA~l2QRmNH!Y$bJ4|6RBg-Pnxn z6m|!ncCtgZs|@Er3FmrbLYzk_mCCiMDDb>$zsPvVZpyWXyY|wCd)d0}!%FNkd#n%m zlvJ+f2voi*RJq#x7s7pS>q|`QOLnYBmS#~q^49?& z``w{fQ6o;S^-*pWcu%myAceW940g1%L$tI*v;>aC4cSrKD&6 zHsF;O-cofTZ>QnHx6|9zK<%{u@oC&n2YOQhZw}tx%C}!B;8&+{a!90g$vf(%@aubZ zF7gEGhUzx;7x3;Gs4IBP0heAs%#)I!yN*y=uS^f^B|Wqo>D8q##BcGiFCZQ^1w&Nd zAu8o{VjA}hwQ|?@^-bdeqWM63q-}MifDh7V-!jy;IEpEJbP~tan~xXp;3OX6(?ipE zWauc4g5c^H3z zzclChukhD_0%ScMNF$}+`c*_uoyOmEP~#_u>RS8TBhz@A!u?YL|GMNqT2@D<@LYTS z>iPoy^C8&n4XYap_#ZB~s^KwwYZ@;NE&2Wwe$ZOLj|zCXAoWXSA%CuDSnn;9^TrBt zenBoQ$kJ2X_;PGQj2D|a69)sq?;)^zDb9V2h4&Ne1El%@=|0F`RDFoTeuM&jlqZ#!U#KOslC6`*fO7i(do(io?LU%b##u{?hP0PliDQW6$wI-#xH8Lq}t#y;K zMPIKhJETFZ`2;om5QFr?g!l;K%qQuzpE6>s2)Kn}M6p7ylB>Cw$TgxdN5Q2jf<~A% z(-I$QRY#O(PL(#Adjpm>1$2NQP#)~ zlSkNZlby1QHWBHO-Qni>aP!7#*`wz}_V%@@tv8*PK3aRJ4A92Lu!ChNf)rDrD^F2` z(`5)6O9&cE2pZ)kgTTf`@;VtpT}0%N+)Ny=r`Vc)UgUqscmtmo$Sra!M?J+)a@0Rh H1;ft(Vg8v) literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeData.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeData.class new file mode 100644 index 0000000000000000000000000000000000000000..42a2f61eef5bfcd4270684ec098cd5c81953828f GIT binary patch literal 7333 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 B7$pDz literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$AddChildrenNodeAction.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$AddChildrenNodeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..4c6a50d42ced2402a1bc900c528773318a738582 GIT binary patch literal 3256 zcmb_e+fy4=82=qe*$@|@P>?E0p@+M17sN?^j9sD00^*b9tBoTx*GdX)M-}%mW`F)o=e|~-o zz(HJ5P{44`urqu^17!`n02fG+e9YEUMJJu2!@&rqG*dXWgcrl)eM3S1cp%6Xn=8g+Xx)l7gbFup7em7V1r!L!x98N{&{gpy4l?YN zQ7%u1Q{2^Md@>x_f<0F9!s_)-DeKcJo>rA++Kd?lLsy!Hm?CyPmcp19!o2X=H+Di02E&JfdvJrt%e;etbPns)*tguP%t^DN9F&28Tl!#S03?80uxU6kJal z1Z1j^R1vkbFfHvA_dLpqea@VU7{=*h%JHbEoy?OIa}#xhjI=3Z!u%PA?v4GK#k`C* zIn&m}&VZ>~PC^D{ZwN2qoPw7q-R7p}ToRSu;)~ z9zE(4k@KbyS75B`0rHTl;5g3^lt7#27V)p!fWJ@Tr9c~|`*XQ~$lYmj2p-Z32x}Gp^iRj;44#rn zT*W2XQIw{rpAw@&H!h43W+{Aw?rI!$Z9{|A2xVZzt#XaPt8Y`eEAgK^rKgq)ZD`al z{ez|~#d|mIDfdZr7}SVubGP5pJ&#k3uFTtMQgcGqpw3qQsav8EvR4Ai%4By%s{*13 z;Q<;|T75w49rW!8x7D$0`g5X(@g$4d|3

xJmFO7Suya}3yL2Y0Cd1cJavl4!pQkeDxQ^}&2BORREg776A0_2O<bCQhHpo}JBLA_G0UNYG~&{i_ynAp?8-8iG-}>n`}OXgEul+K+MnTL`ITJy{X> z4%PUcG`>Sw&EplCy-IwlQ1}P- hE2#O42$@2=GD|h)=>Y%LL>gj*t zZeWO#9bVseFyp!91U6x_h7Sq58*5#)4bQ16Q0u^5$PY#W9b51bVWVAPjQd1j`L-8I zzu%XYngU^Hkr)?=y3lxG4P0LYvg$L+`T5?nsu5LL1+tvBdk!A)a3S=p-Jd|$66?BMsgnxXxL9U`fiabFFHQKr-Zd-5e}Nx zjXHDW-Em3i>qspvK@yxya>B-+;-}~#^A7B3PO^qa8-oO3g z_AlGx=wWWj5A>f;pcgp}CkZ9Y0hP=RW zR`ug)9cPed(oqXQasK&wy$Q#bhETLR>MLW;oWVJVqJ{z?yCiTHccWtf=Ls!#FjRHK zkdzTTgr0Zh{HVWEmoELW zlW$SEI(O$H`+6O@nJyCa*#>%e=lR_Saa>|T>@AfVE0Mq;uBhd7m2hu9y#`aEF=dyy zqXT1jLO4$L|3~%ehPeEyC^f30`a;Kbe94W=Q|CsTGattolV~lc7tij*QR0c4P3W{Q ztDYLY1jaF;q0G$j-x57FZ3$1YfDT*j;Z~2AYB(G+uZ-|C@?L0BI4S!YG=$zaWcx;R znGT2@uWLwfE(|_f9o=3uz1ba<7>>4Lzpb{^&N`}fJm-H(WmIMiZ{BrO?DbVFT^KX3C&FI%`snunW8S{|3J7V{}Bsz2u!;6#CmldL9pZ&>7)3gQ zAv(&VnZ+b^LsAa{I)N$5McJkiQ+dp0TjaV-;s$%4oO=pb!$E~*E^8*Ra#Qo(s~W~* UTmi|FCV2QNI^jlPCh$T30*>5@p#T5? literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$EidtCodeNodeAction.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$EidtCodeNodeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..ef6a2ce3ba40e6a6ffaa07618ba3fd25a52b264e GIT binary patch literal 8839 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$LockCodeNodeAction.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$LockCodeNodeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..b84520c8c344f8a1ee53fa119dffe160d89b1d9d GIT binary patch literal 6198 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 Z!9)RX{g|ic;1hhxPx)CxoWDK;{R=70=nMb= literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$UnLockCodeNodeAction.class b/classes/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction$UnLockCodeNodeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..8281b8ae353b1b840862483098a29cf077f0f154 GIT binary patch literal 4099 zcmb_f=~ok16#qSpPKbkGSQM1HfXF7}(pm*dWs!=8rEJz(ONZeR29udMGePL0Vpp}c zwYB?d)q3; za8*JU!x7C;G&87}mhRULMGZTqW{&WnYN&p0iLIb%D2~Os(mZTCmZ~}Z^f0LN2Mc)Vv7=74C_qGuW&7(hitBlkE$A1NDCcNVnPhdoH5-l z-^#Gxw^;5pkk&@s(48iR&dSA8TQ$hw5|_*d!*Ur*vCM-d$dMso1;dicszEpM$oR~) z%l9u%dq~PFBOe6}lFgldKIt$NR{F-(2~`QGhF|G(EZy)oh;u~@rJ7MkL9dJDqi$Y4 z+*r+!uWP1ZD`6u*@gCZ?vo2)#Jt)Ci32PWClA|5gl~5oo5<8o`fsUT&f{ao;!BDIR zDbH=()+{~bm{z-G24eyYy=lBmQb|Rt-wU2Tc zDjq9rWTOUKB-AqOTdY=)Q3r(~&*lNHIebL)Z=33<42_Q&4RM-sxeYrcY-gx{JWqud z8BgLVDrrA=dejH#(P5053~iNFnK@{NxTOk2v6cB+$jzs*Tf#1eJsG*VfG!#JpbY1c zvjXB;&0xqhxIqnFB|Ie*b+{VTXoZlIkWx9yErSP?{?>$OgB#CK*UkKV`~Imjf1kTP z^V4(;C}z%{{^#^>8{Bx7@TH@xz1xFkv`T1U*qBCh*wF(@C%0|t-WGFGMjQ6h!H{W_ zHwQ9m+>W#^&r{qW;W>ttQM8I~?NjZsPBr8~J96CEPZ+3;>>kqXApu5i_!yRsssWn| zfi4-{=%Km}g~_X3$zF92k5er+B*961r7CsFjb4TVVJ4v3&XC0?bej*2s1A3dp8;+V z45aLbZElHXdO^k^yck7a+olp>*tB4(`Y5O*Ms@QNUY2l#p)5`O6Pb;R%NW8dWQ0m% zfDAKi$+RMbI2jwphy;x)X(3~YG7^VmaE#KR5hnE!iU3(mnJN;-GDVW4!WRh9Y>fDH z+YzI#d$zqi@FPcj9hDJ4kZguSA`e2oyH|*dzF^R3;AYefF^7{2t08SwCc>SFK!eDw zDIAvH_N&wM4soJ1{5%Q%fU89bWBsU!tKWoXH4eu(l(Fr?P#c@a^egR=fM z-j(o9rdeM=myGvthCCD^Lbt$)iZm2qBD!ZQvpz%t;vCLPc%Pv>m2RcV%lH5v5*%54 zl(-l{z#PUo3$=qDT)-z1KBnwEK#skW8V`wKD&wM{w7DVTr%s>COwKP=gE;yHMFMFuF@&QgbD4PD8$EE{U89%@WDo zsZKX0>3Ha1Ya*pN(J0dRjFVDNUz8@d>w>nH%~JH)w9kFNsuLMvkUI>6Tdgz+Z2=Ai z>E61CU(?W~mpqo2CtgtKUly%MG%1On(vwQhV!yPy=2v*CZ$qy3=0>p6Tj*VN2gRM$ zwGphl89i1;-$kSZOhz`#K`vW?RV){4Ssu!xds#veHlc!kSCO&JsEnGc!itzV7A9k) z0XM2|!E+1M_mCg|7s1vDcK(SRZ=<(Kx`RCjZ_e5A-9`JM+t}Axa}P$Xx5IlNg3g1r z-sio2u|ESb@q-Z@jzAS_cj2cKdJSD+yeqbAZ21LN1e5iyxbk9G1h2>bpSp#&;;Rvy zy#}|hCW4P{(hYzzT%iUj$EE16i=KfNWxNwy|-{4!4`;L5(6Y}4a{13FU9Ile=e{oX61s5${qNObSh|BaVUcDIM I%-( zKw2OW)-EhvpoMO%Z4c)}rof?x-#Dj#O8y~!a!?lbfy{xwi8ZqGVSW4 z``zMPxK|$^bwbzo4D>17;s-@bJ0-VL)mF{5c$!;PD?YL(@M{%?lyDOUI#Ae{Pm&y- zwH<98iT0{i^CBH&6$Z-MtBuEEbta21v&PSzBU#D`v>is*DcqZ1zP7oDz9|YhUQyL0 z?S#4@Ydh`GR@izGe4EtdXjFBzN;@fR$cryRZI>PGg|t8IZO!Yz(4^(tuOF${ye*qC2aqBlJ;$Z5;i!xs+_lPwT7i{b90-;=t(?xRfymYJUx#4z& zT|>*@)O=!XK{q_D&?gp1p%;TDuE&iEy+gy(tDtbRiB(9g!Yx>DV4cD}|8I<&xCEC9 z=k+Q6eAmQ~T$d7kChWj2S7k44;#;^bg-ys9_?|+x`&-4!E!H++;Z}vKiaMN3ysdpy zSfMb~U4|IG2s4W$@`AIX(QPIMVDdfWT~F_;m1lG?WzUo-!kWDA*rjPZaAn?D>iTr?44=qUcr=*Wg-l-CznkFlyi)`np5n zvEA9gsaT_9yAOnJ$qkR2xEDEvYv`z4EeMz}Mk|$)>ogwa?L&0J()>j>i?u^|jU|Y( zDeS@?1G^QXGSrs(&PQtEK8!Igqo`@*&pW{HiC9567Ya6_`_wVyLFjfYqjL@_sH z{B59CZ3JTv`N8~*_MAE4EXT3~IEX_A9#L3(!NVqgh)3fqCRpc5a{eodI@^yQDQtGU z3=Nfu(L$yTEo8(J)l8>4GXNWoffSf%+V~M2AH1cu&~M-;OeIMV$B1qzG)v(G1`Rx^aOnIZGTgdEpzE2Y=S6!d95Lcd;UrE;z5FR( z?!^@1W-4w=)x*;w|I;R(!LzKycA+4zwB?buC_Wa8lO3Km@SMVyj{31>~Vp^h?w!~9C8d^u)0&`zX z#-w=yzcTR}UMEnC>tiDH6h>Rko}`y^fnRD%7s(S6y}aQ~{Kmkq+tPCKoXBe8xAJSm)6`TK~zYwZOjc`o9}YB%ZE0!Qz51(&RA7BgWY z8L%}?pmDnBy}{8{0#6$`)7LLoQjmI{Od=i-6@q2s!N_g3!&JDs(>vmFr)P|{Osl>8R2LLZM9vYT5B*V3 z#2@uUtWi%)67{THQP1iT^~~Q%)x+!d*!yGqpV+>DonPVpI`Wj`rmxZW ziS%c&FB&$+3)ue|9;W*r`wTzs!B?2AV@?E@gNvJo8=Iv%yd|5J#%54QC_45=I%fDu z0D|5Dd>KJ@3RAHQP%}mq!KT%!B(Py-n&yjT(9%;kXYyBjUuPi+X>_ zHF51UWjywEr1J^t{6rncWaSH-JV<9ewSb?+)6+72esOw6rZ2|R4GVZlY;$a60lyp{ z*|dN+&dI-#o&g?Y*i14YrWjHOa4X^E4m^xK#ETPnge!+4xo?goYRJ8ZAm}Z;O{pj7 z=ilQG^rq;-(AmM^I~?}lUHp;#Z9MQN9{da2U)kPg`+)5uwv%ihvz=l48{28NzeD{G D{}8b4_m($aa` zvkki{n%v?w;i#*oZRwsPgueg!h(yV@JYjhUj(sYt!qJdm7-{fRuAAJd>HC$2Fgy(@ zhGpBS>B2B&%N2U#gd0LXmEyf{Tz#)cB!<+cw4}Gq5HA#u84@J|l13Z@8EEKZ7%odo zylOWq!a3pc`BP@o6LbcZg{FG&$-9b$YLUcNlY<}T|sbhPplOv@Bb&D%KBTJYVwFK)y1x| z$bb?b_%;mly$bJkQn>GAa2NL&MkDu2)Z2yP%|L6y6iq@+#MHTaNz6nqd~axiPE1~7 zV5ANndfa&TlDEPkQOv#wqPZFh)aV{WGGwIHYF`*KXjSR9Y?mf4xG2?W=0%lZuTZ{z z+K>II-{@{w_lZCE+^MZFepG>3c`=>y3);mF6g6smK~gy7CG z5^853kxXpOej=;5Uu_l%(#HtrI8E~ea+vb-<$_2N@;u!r@qpw*@}pk;LQd5) zA9d!5Z$)jTlnb53%w8!b83j+G7#6b_v9mJiLI{|)y zKj0r`0h^383p8w4@J(pMDYrZ1#Y@O?U6);T?m6dHl|TLe?|T3jQFf3M-0%a>51U>X znYsx)wU&f_Skp}vsJf2qr)C&LnvNWF3HGn5b>%fwQ1>2G zSGAuw=n<5{sP1XMVOp{FR#%j-y>+8s=qUE)w_yl+uA9IlHwF39rVas@l+kVkPud!0 zT9Qu#)#U0JCd*wCxqbqxB^|M~CYc5NZnu*yw1e4g+owH3(5Gs(iir~)=twYE+P2`n zx0gDT%61?1HZ~zH{5pcbshPMH#?(1z;?9<(-N`G#nLWzA+lt920^yb%h;%bt*By3( z?uI=@1cjw=E%Nn!V>k7oJr0;zYcGz0Yn*pC4=#t1rvlr3?0Jk_Q0Sie2ZeWh$iZdX zlfHD&&u6zi00S6gkAC9-TRVA$G0!+O{Q<={=%4-%#f6y-48N7Pe4S6Bis<5VfjRrw zcR6_=g`H?m&0qB zVFM=@X1)?QOf?ohk73d{NEIWzMlr@DR^L<`Z8OF>R;s1#xmq9k>{>I$XkBmisoN stwS#Vw{26~+Z8Nru{yVzJeMi7V=t!)1y_EoWcC|M{>qeGO_N{y0*w`?6951J literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.class b/classes/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.class new file mode 100644 index 0000000000000000000000000000000000000000..f12e513205b9001367d7634bc80fa1a894363247 GIT binary patch literal 9236 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.class b/classes/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..49e9f9263128ebf78e15cf45e1f028909aa262ac GIT binary patch literal 2250 zcmb_cZExFD7(F-5>b7&=lC`CygLUg$T2ilL1=f_Y(lQn)>nd7J2qBFd=Pq*>+mY?G z<)^?;Kzt})io^#5pOE-RNE6~*+s*nWH4=+-edBxmoadb9?eBko`yIfCC>zKKY}%e> z`>y2&PTlb=*@}GIuPIl0vaSMs<@%l#1xiJ-+ECWhuQt_wIa2Npk9PD?MOIZ~EAaQ6 znhFeL1%`Izp0pa$t6NX2yULCXbPE*ypl&I<;WR^K?Y@wS9m6nT_>$Rbm6KA13dzR6~|MXEw`$I*jyl2@om|7CId(FN)NNqOD7cAs=QsH zC4qsuiq`!`%k|1GgC(#$S2?S^R4!Cb>JIlKs~*VaOUI^cZB{an7g*_-owZgCqd?k` zPQZqYWFK-EF)@lUfgVyy$=sT|)U$x08p>5(q+@rEy1-RCk>}Oafq*Crn7TNQJqxUM z9@TTa8NvSTNZPNS$Yz?W{&qxn)B#D&UL4RjOt+)J@#>`>+!BBe#FU9?%n0O(v_))P zG@D#y?}ab0!I*RuXuqif89BZeT4zy8eVD_%fr7xp|BGc}0UxkmNLG_v_uZ!N#px($ zrfkbdN!R8HTah`pUa7!S4Qpq;{b@{R(S(IN%uWjQ+>oQO3pqIpsdCqpo(g4#v-H{@eovhU=P8caq1#wrM z?4UD~cT$Ja-T=<5A%dhTo zaPhfxy1~-2

Fs>+h*!-VF4%-wJH?$Z62`)Fs1qQ70FZpeL>?oazR54o5zF`DSrv zU*O98uju=Qe=;!n?2Zoy(9i#7@&N`g$TyZEhWXUS2i&vV#}@uX?gtDn{DIu&#E(TW7eU-VQ4=iAv?kW@dFuNi_b%u3Fp)1Oq+ iYHWEkxotboU_DKD1{?T-76OkhSF(1Ak}qTDkN*RFxEr$o literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.class b/classes/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..be9c698f6e71755faf751081829f478cc14e2c47 GIT binary patch literal 1635 zcmb_cTT|0O6#ljs0;LsN1O&O1iqL`(E>FtEajMQRR$+wUL7%qilBT9fCrQy?<1g?* zUv$O?#wQ;9O^)N)Bm|}{qoYnIIj6hleEWUpoXz*2U(Wz+VpBnkVNbJE&2Fl;W9WvZ z^0sGdc1<+7#dYDxt)^|Mo+E_EtEN!*UmlTvB>l2&dBXAz9Q)L$2}ePKVYtChxoUDt zSNE$8p?M1W7*=gZSA}L8Emx?G6RrvM)DUll%0wxJ zI0n;D(9bYbF)Z<--K+}7r^1k{*cvyFxnoFb;bOw88!p4M%6}8N#W1J~uUt3Gnjc0}_nLwch6jJlLw!_rJ%?+aEYD-^@f30xO=Aq>3?o+^S{+yuB8&?i@Wy`a~#X>9)~(fc~ju8QJ907oLX0B&H2{?W$(S$fOl zZL%@4{mb8w`;40($-kPP_4CJqm@uEBaSIca$uNoAy^*Fmk;bn<%7;jED1=Dw$i|6B zA-*G7onta2caGuEJA030VrS|DMa6x!IV8xRBA(MU(lf}@FGDN&04ZW#pcTnHM)nTo z$=;~~oz1X<)!-zWhzY-83~S`csaYqW7&d+Zdz*E1 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.class b/classes/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.class new file mode 100644 index 0000000000000000000000000000000000000000..9331993b7bcf4f51ec4ee72c8a2093b5795d1717 GIT binary patch literal 2571 zcmb_d-ES0C6#w0A=`8J((&eLypnxLV)-rrmgazcIfQ#FuwiU2`l-b$KcFOL|W@fh3 z2O}@OkdW|VEWXHt5n@bOV}r&fMqf1XZ}3(B2xE-Ddv{veQbQB%_S`db?>*=K&hMOa z=hwf#{{g@O6bvK;&N-gt_!Y|!+>+~Ab}jN9zbGrVXP0E4mMXqyMS+x&T_{WI!tf}c zN7ZxAF39pw;7_?l85n35SU+h`*;d*1O4fzKq;w(!EdqUhP_m>`cB`SZCa>C#w5D8n zT?V0*ecX{i%Td>JqvHZi>F$dH&8LZ{6-{U}VIV2ck#jwnuT=^%(B=ZEobTA>i+12D zT=8UcG~tE<+1&pWVMbtGNk*sra;@TJE2KxDKb>11awglITO4qBJ+exHU7c_p#;eRS z1~v#BSv4%{WFd?K+ldtO19oJ$B85#RHls@*Nk}o6o#`i@EMUm8tVl0Xq&)^*pv`H7 z=N09&fXE7%svPD|7C5?kIv>ML2HQs>+qpJqSK}nLFEBbPrwMBJ%7i{bIuZr0SIQ^~ zcA9t|F9>X)k0E+hb&{uKy{o>!0NGd-#eP)=cI5hAXf5}WN#aETv?7fj1Kk2A{;Nk5 zy?BYF60(9i?%5TV(MDojA;dKHn6T7-MU&n?WtVGghBWq>*uTV6QHIW1E*vz`kCz2H z-Ecr&wQJ>Qgei9-S!6!Pl6ZxE^~cPEB#!Xm_uF46XGcvOn|C%`D-#y6DQB;mIH8;w zZa7}{ooj0IDHEsFX59>dv?DoQ}~&cx$jZ5V+VKy zWeqov=YURU(k};Rp0t04L_!+KZU%X za*T3@GDvxsA}KY>2b7N}x0L-u?5;O-U#$0PJ&OZ(==xASbvT~S#Pi3O&7X|d2V#9L z*5~W@kj&HfAOWI{+;rg^nkW}J%K>$X?&>l4cyfFHa^jM2A^qt7x%Qj zj|W;eGBCz(4#=xPMoqHWMLxHX#39zkWnRWtunQB|%`?&@p@*sM!wpu)P3*-j-dDFt z*$fWhE)L^9GN_ZjSscfAIH|LEP-l2m4`srr6vq27D- zjul*-UsUV!E(FH#HqBMVoS<%^PBeX`MqSp8E*aF8+Z(G3hbQn(T*e7j*L$=OOz0CM M8Gb?}SM=fbKjaBx9{>OV literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/export/ExportNodeOperation.class b/classes/cn/com/origin/autocodemanager/export/ExportNodeOperation.class new file mode 100644 index 0000000000000000000000000000000000000000..80c3312734cb0889b7fc20b1057a0db35af72c86 GIT binary patch literal 6355 zcmbtY33yc175;BBGw)@1KpYkwTg45{0t^MEkYE%dXq2ra1_EgMGI>b`CNpv7O$4^ z6OmXW`+YMbv4~x!aA(2LCUVbF9kH%oWG3v=p$#3}$AMlIRx5ZUynf_jq=8|`SI8|W ztj+^hVL*c}tTM8aGnxbtHi zMrt@$!Ekyb@z7l6*pG8CUSf5=!kB`=g6c;BiZm2*u|tCDpy@JDj0tqC(PE&(t0YU} zZAGjhu5ejF;Yq?cunPKHDfMF#CTj>OTskB-T@}^emVu983gbj)#mU;3*-RLWrk4XM zArBW~nud#pI_oTQi7bA8noAZX#0`7R0?uIIqnNI6x>TWyD;y81B6idw+(s=Q=z=V~ z#6T%#l6x{Pm&co1;xQ{m?kSYulFV$&Yz|XG0%NU*R#}Od6%AFD_o_023S|Z^!KDf# z(ufjY!~rgkbv`63X$Sjaue74DTE}b!Rvy!Bzzd%rb8&@+%N4G8zxnDHpvb4Z2Y3SmLb^8nK(!$@)O2lTDUoJ2j** zEF6uenqyLN{R=ANA+5C>htJr)?7yZZy8|p5%$1og;T2}GX};N#5jh8f%>J2Ha!ble z%eWy7ue3>y9OG;<8o2wqP7~?D8tSBUM$*g5NMp>jQwgql^$Anqp2g){@4oOsJZ4#I zV1`aPzTadP?ME|4>bQ;z2-nZ3O~Cqv1&8LFK! zdGfT{$y0f_&eVM}RB0tzBVmVZ940Vuzns=aws1O9J1eD%I~h+f56T2PPeQ&fLh)zN z!f+^fqgJaGWxOl6bJ$_}nBF-Fl7gY)fr)NP7dtu3Rb*LU(RzfT?PV1PUa@Fr^@rR0 zjR+~@g8nx8Z0@~_rsj-+j=8DngmqU|s^JlZ8$ZYa-~*D3?5|H4cv8}@C9H;om2A@S z6bVzvMOdZQCNb-H#x0U#n~n}{2)$ZPIqKN&RwEyTbsWs7g~eFXUK8ceLj;=)b!1U1 z)@XCq=a^ynz?6Ycoc_Odia3G@Gll;;+hJrlyEb99Mv~c{@AOqqC9Q;x z?+v0ZJrdL(82BN6#AwL5Jbf082t5`M`u*um=y8Bd$4^L3-R+Ky6&}ybo^fAyKn1x`Y|1U zWKAAEw2fUoyE?lM-L2!*Udhp|&vzf(qoap6w4QzIdY*hnENpzRyX_9g&Jnk~=Yh4| zyW1T3pICe~!eM_g@K>R{eCxWD8BJC+#^MR9+)OgWf0wb_pXlDa=hgiOdv+Z-a{Kzj z>ksJohr^gDYP?S7Xy7O||K(Ob+O_@2-rdebZ_(AXk)vDIb??1T$A2j4-gtj^*TJ59 zAMJVIAszpfvGi^8U9UdBw`a?Nto&V4Yg+Tj+6_96F|lqn3VEMX%1}8fm)odW&#j>k zTW89-a2X-xVzrYIMtPS0NEpLgT(=W~Vnp`4S~fKbPQoae-Dx0bgi(0Y@mI!EiLjME zw4F9*;J;HQ3EXftkH@+E?@TUopk`%%>fZ;7v+vo6KQ5ymq5D{Crp zf^jZAJP)HWo+~<^tpeUq3o)I&OEHo9lVD-8v(7Rnm<^eA>bMpwa1E`F=2hfc)N-BU za5+cFI?uywn5g4S(`g}0nHTk(Q-YozX|dHn$vEU3qk>O^(lAcLIT{)@MEDc|;mDIy zHe@JqLP#@3U6{+5t=xz5<4N*6p`OazUgS6|lgX6n#N^10i5jaY%Ry9fuim6vdHmj^ zO1xcYrp0)PFX#)j6n7x8gpJk-(vUa@eH~a`;thIVfT#TykIJ2y8ixCmomd~ZxdR(GbVCO|U7`o|4%{iCyLVt%P^a!^OZ1|k?u=!!*h>pc*e#kG zqXoUsJ$&r(HjI|ZI&g0r{OQ&M?GDf;VGEB)As)Zv4Tg6oPc-r^?{sPxGbz9fMyrJD zFU1(lB=9a~V#}z13AJZq3d)(B%lJEoX`G9dOkRRF;#(=d2UlSm`FNS zp;ufZVX=)GkKyxt?s8g>^C_Si+iTaNt+b6V(1yV0LTK+Iq~VJin%{x0-oXq)=WUEV zCYWl`fqj)VzCdSXjTSgiS)&KKDr@q6foJ*D0?+fQ2fo5*Uf^qd`UBtKb6DU7 zK8?VOd=3wMo6iw}?^c$0izUb3C+IwZAD^)wKXq{D3H&1H%bk*G|0?M7WZS<9`n=ip z?}9#Gw*7~oPs_Gn3HtPGyF2L1?^Qa?kBpWtU!M{<+JQgsKt8AbTi`XBtPR7RkAFHd z`||VLI&Zjj-UwuM{BE5$-8ye(bUcB7bK+rHm)_=wk^OjwAH%aB@9|@V^Kl&Wq%fYy zmI!-|P&cbvdm+9P7cl*mOj;FTQcXr)N=B|BXDuV7mlIwqSn4&rJYIto`Dq;)Y7^OM z2YKmHGE+OD`z+!0BKhrQLg^I}&TDAG+lb&@tRz;VYBZYFnY^%`jkqf2<#aj{YBrK; z4s5j$t!f4DlM$>|tyrUO#tmvCuaKK~*V}?mI_0vMpeCTQ<)XGKkCM$tWWt>+7q+BG za=E(OoYL@c&aukJ()9AiJA!^phmV$}H2M^TW5c2iXQa{@2`PvP$n(C3w^$CE%Hv;N akiW+;EmI8hq!QRE#UO>CWJAnR!~O?P%`#vB literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.class b/classes/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..56ff41fb1bc4ba7697a8c893097adcebdb50821e GIT binary patch literal 3140 zcmbVO>sJ(I9DZI{m~|Z#S5WY7C<20;nwP*V1WbyH0b*)N!|c1u$n4BIJByHZwd{WR zTp#=3r#jW?td{3!=XCngA7wr7%(|>Bc*rkvdEejt_xvvZJpAK6fW!DkLzTc$(@B_a zCgFNk+Hw*`-giwmDKmy+q@|abF`T3=y0|AxgIsQJf_j>F1cV4PPev77L+g*}SYuKO-=v zA}}tncU25goD*m&^L{v$J~ihNB&N*eqBu`rPuo)=2ty<)U|-O25trCw<<-1lv#uUP zaIsyrUyMQEO&ymp#USKV5n9=4*YJ`{7#=}>G6n;thG~Xou@nd9O_^0aOGh$j+*#J5 zKh6}*PO$N@uhxbgR-j|`{grMT#gVbJ%?TX*-9w#kjON{Fwe2=D?v=gQ*y<;~fn*9`#nmIpMnYtmW%? z7w-vdU}g2ol##dn;ze2SE+c2bT*n7GKE%y%ER8SZ2=g+awmj&qT!an z&gDHRk?QyqpRp0EVsJUm9G}HATrBts4TN_P3AK*&gu$<%DTyAv=18wctvb~?-y9nObp@t>P*8$}gcC(zTxygY~p_V8Q+K2}QoxP^_QX31==>h_ z&5`(_-|<`(MsDL)>9V`>(kfk^2riqNBY)y#cTICm0WZZ570^!!{UxH81EMX8XiyQw zUoBu*k-bK;?Ip5_fUJ&IOomp(H+2>8`gf@B;QNi+hz`^4x5UqZoA+>^eXKeN!Wfq@ zAdUz&(%lBS--zwlgnihIZZx5vyVQAXVUOGji`&r+-rmFxe9Nuo2kgR+Tww}m!96Z1 z573IgxRR)Vjv=aoRt%{6l1Nc|1b2|e41=oSH%h!hJL>QgW?}R0GI=v_n7f-ib&=)Q z1D;=nM~)mNwm^G`4h_v3x-=Zwwx_lEU(};YgV5lshY_I~w)8N6xI_gC6pi;VcVYh> z%n#qi+XcMeDGK;#5e(}BqWxHdPDY_C@L^ZTSn{C}pVMAJ8XaHYOIjrG6-8I!>;C}I Coq8Pr literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.class b/classes/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..1226f0cb5d2c3d9ae7ef57cbec1039debb20ab04 GIT binary patch literal 5286 zcmbtYX>?TO8GgQOcQUz2AP{gwYQvgf%!p8d2~t89iG~Ep0#Yo!nfWrgWH#^I388jT zYAb3NYFpb-t5B`DAY!FM5Nn~e+S+~doc`<&6o2(cPye*%ls?~`C6iR=N?|t`wufGXk4gRK~Kw!N;;`K+v-l$~;&4|}X*inBpAj3w)2ujO4XhZ@bX~n%Q zG9+!;$yZxbk2Dks)J3hJSNcO{EH0_WQh&l+8;EfkV%nPo3Tx~7 z1d5ue%Z);m>L^BuKxKy+k)4TfzqERc{*V-?>WKP{P@iF$>OTFj$R0G~0=|xG1>Pv2 z$r0&K*xX`MZO8OSXmzB_Xry&mM(oDAj(x_k;SCv)ptq}kpY+>QvpZ+q*o5lZCha^nVkOv7SwX@vdUpD{tNdJS{H^2fYQ?QOlb88Yny zI&Q?rQ@ENFmPN@NcmivPE5Dj-peSAKIg1+ISb}95mJ<6_F4eIdE9e^tGFM--5i$N4a+Wr2lYB`MuR{ZVPt|>U`1_C z7R_C!fD~=;()|&o(&! z+*paVIzEBh1WMyHk8Riqrc-r3RDEu&hfl)>fw|+Mza<(CNh6}85gVCGDsE)gfWU&< z-MO)s7NZxv*rel=*i2#N5L4yda(W{-AQPsyeP`4f>X#A!pgMpOYb?VSv}kA+sJWuB zj#jj#w%E?n#U(Ru5tNNCY!z7Nk2KJb4XFayFsT4G4AY?Th9;IpRj;~bFwD?aRxZPx z=+JPNz~ULO1*MK{=oD}bn2~^5C(w}3)>EvJ@g!q#yMxk6f@#XMgVLJ^rLz7G9o^^= zD5v$CEos=sqEyW&uTEo2pn`fnWhC}Mui_b8?7W7tkz84EzuDj_km_EibdmWYj@>InW<&8J#UYhq?j(TF{~j$4srE? zk+GQkM`p__dDIKHjnTLL%c7VG$a+q>Tk5HAU?8IOew@|f@7i4=86^B59(= zd{4(HjtEpxVUt4zx(8*5;Xk<*Qspcm_{fXjAv4&#ktjS3_m2}U@$07IAB^~fwqYiX6oisGimA*W#V0UR>zO<9DN#a z#sQTLT{~3$P1UmdYpDLzV)a|LUq$x>$S zRl(PnUd-L}46#(t$fxb}>nv#zxP5jTsFhiYkzKA_qTb}=LjrfsPIXQXQSkHW;y!cY zO#TdsQS?G!VKQ`zhy zu5u@-wiz+!OM!+zPv|D8JYd{(M-!G`wwdY+!-6TFH5ydrq6SPQekB14c*V~X{Hr-% zO^AcP#jDQ1^{VsQ&A)Dn0ZUPYWhmp7o)Y43Iq#U)sHDUkUKjChu2NMvj~nobsJ$tP zdE4qQz%wcqk71Fo$WxR=&3UZ!71y7K$5-Mhsj54Rn+iCJd9(}gj^f{*;;Pk2tSKDB zI-kpM2d)_OobW`rmOD?FBfGu1@vvZlC)cdha=doxZYj*u{(8KHXF1ai7Mg zk}!Pbp0b-yL#FR4Jmv48qROlq(#8p{nnX;Rh+i>dh$XJi3S5CGpH{mDQD_@T5VhN5_xD&7)E9 zB~Nh@r^G4RZY`b?*R#kT#cAg^iMO2Jx5Yx|w~(Fyp5XKk)YEOZ&;zS!?_05mAG~U~ zzMiA+TCC&jx*ko~fUVewd$9=t4ya*l#xS2AEhGZ1Y`|^YZ7W_vJ5F=rOQHkk zIMKa@PP~oncn^2u?;NlGfgbz|efTeSiW2M+WgKW0Vvo3i14s?_iWTU0BI5+n(C6vM zP*<-}FGEZ$#ZRccfM|Y-GZZByog^CYZ=dW4DaAq-1{KU_G`S$=sb*v@f%)M5cORA z7QaI!F&E?a)a1e+X~!YBF4F{+8ia=V8vdlAOT!WkD>ZnW+w~f}8un=D)v!y0&Hq4k jWtHbLR=|~AN2KGcl(G{gmwC3raRHSof8mw|`0M`x{~m2% literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.class b/classes/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..d6106f3f46d79df000d950bf771ca0125efd25aa GIT binary patch literal 5411 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.class b/classes/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..6befade1b25b6545bc1e7f354a0a5b48ddc2d951 GIT binary patch literal 4231 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 aSE0uftkL?3p8S~XJ6O&LuX8wnr~d&u55@if literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.class b/classes/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..d6ad487cfdccc0258bbda6042121cf0686dae1cc GIT binary patch literal 4153 zcmbVPYj9j;8GgQGle5`9<+7!~DVLI7H*K2JLJM@aR&pyu(xj4*7{JTP?w91GC%fCT zXOo~Ppj56ZRs{+uA|jw-L2(mEb=p6S<4}2L^>&Ftdun=U31Dx zB^~Kz&AypT+VuvwbVuQphJZj@+MP6I!m%@1Nf=jMW+al1hCemiA* z2Lu|UZ6gAKZeoSdh!!19XcoA%-%iPa+|0Oihpll(3Pk$T3CkI=Tw6UCUk1D>J1Y?D zzgWfN0-BtciJZqH4n+G`Hlf$wWv5fUvohty+xn-iS<7^+)TB8$J}na-p+dd$37PS@ zDXSqO(7qbDl1KD*3 z%w~NJ_N=VI5$UF+Q;AlTifgz*U{f8%iz36_#hoE+#AXef1fr{PvWl6GE!bM{ScTQy zY5I8H6S#u<*2Gjpl-{U0LC$B~f}Jde-dW4Z`ED;_1+ksJV7lA0^04K4VQfRYj-BWb z2-8KSBo^2jtvGVXbM4e*z0A_EOJLuHb6nM0I#u@Ruq)+=E$7tvA(*&PXO-^}SfldA zm6qqP3iPNbU9jqlz#ak1=mmt*8I0P^0`b+ulmrJe()Aq|!d|qrU>^t-6S!^lP$g!m z)=0;Ge1b7hN-Hl&m%gql?&%3DAAHF~Gos-$0+*ey-$F43 zagRXL_KtZctHAEl@mYM1W)O@nB)1M&Gm;JD%ILjy3UNfqd_jk$WY(5tdgncvQXJ=F zCUhjhtO%qtlDu2ZBE^zcIFmZ2)IL>!g|iP^-jrII)^S9wC~8oFRXPPRBY+S_k=BvH zQTjw4%~=k0t+Kz^dfM*Mz@@8}+uxP5ouqUXPEN-x=IBVpR&sD+8TpieYTXcm3not! z7@IE%2vfcIvW~CdL26}XXm(OyXT7M@fED#&Qn+|n$5)lvK`&hj)*}K}|Lx?$-yeGX z+>>tBk)vob&Or2#uB-yRuEsEs8>n$WlpN~R2xg=IG)pS zLJe)9f&q#pl@ngj@uGUIs_iamCGRhIB8VTb3X0Kv?CG;lywu99Vj^s>qN3^na@q97 zJh6%+sFE)~X9n55x|r zz9gWlFqE1&8|><0S2ygc%!*(FU8@7CN`mVCN*(pAEHuVKQ`~P(b78t30C zmsNHNMUREPM-75XMv-WB7>b-*TvueubYtozjvTTw{&$0hg{odr2%Ls@`6co3Cy$a9 zG-4>7a}!c2$(B;{k<_751+8H2@S6*0;2l49c-8o1@|Tp)Znc2m+x~KhSG5cn2=l5J zHt=^1pIBJ9lpvS!KES8T6->i@gygDdTEyBz?Rgldv0-3G9<8x}5jcZwC-4s=a2nfU zO-56s?Op6>K&;tlJ_GXvJ}{b3!;EQ$mdEZ`a0z?I7I2FZdJcf)=;5Qf@YmAHy<#BJ-)8~y)9^<3xIuQ%2A3LTS;r9`XI7T>+)brS7 z=Mi#j*7Q-M!u29x0Y~x z%+QP$BfNm`=JD*#Jf4qyzr2aAX=E1#Qn-fKYw4)#=)UU_AwR9h4U9%B+W9H52b&Pb zW_IH(7{XSJb7Z#>#T?pj4BOd6c97`W$#Wf8V5~mCF8l$z@h9AfKU4Y~r^bKdX8aeo zh(^Txa6M88L@`_p30}ev8K{5|co{!p=yd!Cui(ejF@k^LRs4kdwc;;$4X-nd?f4_! z;JapO_B;F(KVyKqa0Wlen+Q_Nx9|&`L<@C&nfGtg&f_?WU*cCh{RF1*4)1jQns(og y#t*6P8Vy3jMh)vVY|xO`u+6`k8un>eB)W!C{&Vp7kUnWzww*u%@A2AzrT+s6i0T6X literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.class b/classes/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..f3dae86b0fbf57f3f7c1c7ebc4077045fafd6473 GIT binary patch literal 5393 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 sn^lEd<kPm3ri3qDS^!#c9N6J{sPv*3fj zK=92spM8*mia)^rA@x^?cQ$EjrPi`=cjnH_x#ym9zyJFD4ZuCD)lg!%A7wn!Dc45D zD&t~ob)=eaa4GoXX6Gl&qn`@Zjvngq!M&Zw+&6L}Yi2lhj8-$NPmKITwmXap*gPsZs`njJArBtt9Ekw`*el-tje75hTv z#3VSI%0K()F*GA1g_Vw0UuV|ngyGIcpiRtWl&DcIc|NgxqIP3xbKckKNaxDR-e%|s zH+?LiQNtyM$LAs8OZ{B%m;j$BDg&{l-t>C5D z6Fd=F%m>z}Ebg7?Wvuv!TIGjUP#g1Lxa#8?t}}R3HQXsR^dDJg4qI~e$mVHVhh~$$ zRVqhQ!?1pW$LX3f)N^UKbu=bdy@4K^NNy`<|H>&-c-OUxRia;}nFdAXriWs!m~loc zV6L-|`bS!n;8FDG?_vcP=mY%eCHh~a9dmBZ0G<()ySv=!?qjj@1+C}Z))Jw$KjF$T z;6hQoL6sM=gk}NSo<5v`5(IAGCc!e?I^x$Y%2CN^vXDL~f~+WEA*VrvEOYPeG?SK@?xm+Edlqu= z3j}Z8JbMbL_yPWh#IF#mCliuL2)T4uS697yud06i{q_^UQ#@*+!SGBPE^W@O)2TLG zl-^3ar*dILsvJMiYFhAZ@(#&6QiV^*(?XNs#nqVvnp?xS$Ax!7`jJyAq`no-Gt9lz zM*CL`GwT}(LoW--UG5No5}l=)b>kr-!+p%+^zvP3u?-nFyo_jSSWJieOB z0cXs-qvNnqRUU>*xC z+-7)v9R{A-7r5|YRrY*G+gM`g9RK)u{Q3Q#FNeQBe2UP+-O!GE49Rsk#qY#{;F&Nf z-}O$LbZ|jPsriI-^3x%Z2I@1plp*o8Foq`=k}g-z&@PnUv9hG*N4vIkQtjw4rKSHj zWh;=vW6-2&=|Cq76Q;9OEg>TdnB6==`zsj@M07@U1B+;)i<@M1PJ-yZMK2bbUIWAw zQ^jufkFfY1y?*ZwVJ)9w%~yq2sOSUATCMPwYy1iAO=*>W8hH2*LYCWP literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.class b/classes/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.class new file mode 100644 index 0000000000000000000000000000000000000000..802bd8529bd0ee0a87c39144255bae0902a0b633 GIT binary patch literal 960 zcma)4T~8B16g{^sv|TGmg(`jlniyyk$HW)4#soLvsWBQz6CbC`WEs=lX=Z2Xvp>NX zpZNKkbtVg7|q zwR=e@Zf}GF2u(6DnRcqZ)%A*(YFNNx z8P^HnWmGu!!JF(giEu=H+Sv+L2-TDCpH7ZG{5tv=ppF~flbeL@Wkhw}%R?#pGL6Nq zvpS92XDZ3H7;vHDZzs5jDhRh~xQ#o6VC;o|CA|8NtCI%%f~H-b734A4-IBENW5RsC?!_ z0RgW8@4yO5Xy6K;YU5A5U*#M5R!#ukGSujAvvrJX&2Ol`Yt@$-t?>n`Gr)xr`x-N^ rW0}=>(8h#h4C?9b;vT~i)~5PeBRZy>L3!yw^OP={>RRWQ0yh2t+^+ft literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.class b/classes/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.class new file mode 100644 index 0000000000000000000000000000000000000000..ac8e6191200bdf17bbbbd12a4fce92ffc4b40cc3 GIT binary patch literal 4085 zcmb_e|92GC75_}K$u7$%ae+!K@CXzm!FZ2@s;2NDOQYZEa^a<7Qwpv&_yW zq}U3DwpvTEUr?)}Xhm!-6wfJ1s)(n*_U~|m{U>_*d2c4OyCi984`xbd<*W(aGilywn1=I& zg57O(!PJ85vBry5$#C>koyvlEqZtJO!C@GUSf!!`s}(f1MKjBw;9eC?XbyAKs^UI; zQ$ZvrNgvQB{S6dsxg8i{qZMhx)CbDrSw^B|3p)L!t(;cKXtp8do-p8y86^e1={r&r zOcBZR*if*kj*rDD3u2RkjkR?m^a|RPRd$lSwlSKP!!RDes%8A!qGBuBSPEu&yvHh( z$4$al`of4I5k!0uU-LEOv#6pS9Yk8v9oIRLE={Yel8R=+cnI5r*rs6pt#IeJ*lm=G zgs!sHIth`b+f%k}-DGWVYKtz(hG&)%J3OM|Q9P#LZW<3wl^k6}Y1zU--$D<0TPuzk zxl&Rp(LoG5RHU#|0o%jr)^bPkwpBJq7Y*?i>u4qfR{FBJYbWQf{`KaClVNnBJBTM0 zJocZ`s;PAKjA17mWVni6M zb`84Aj$@g=HdT3=%F+tw{Wf8m7gQMwvc8v6jK<_KRWxfRdDPW1e4&CwQbnVMjPlC1c{DvqGwR=nG- zuKnt^n$mHvC)vhbFjZJ!{jGGV<*vhHJipUgR;QmkUX{{sDg<`1(j`K6RFpA6#Qy&7 z&2#W}XsZe8zxIQ0n-bT{F%@?qM3QCpYN}{?wRpCL@FENMt1r)2F2DKpl^Zv|xFW#* zSj9^?!5hT~>z1N|;X4i2bI#TUd<{p)I~_$huSp9N0FC>ipa3$z__>*{3{ zuizI9sJ4F;jQoF~`xZHU=ljHiO^UL&Hfhk6@Y2|@WSjZsp7Qn(USr$eeC2PI8z;pX z^3I9M)wBOR_hsd?k3#s30*H+MPQ~2_iP7sSR><7SHuZBG!tdGWm6y*~F1=bgaXo~$ zS$+=*gYzna2!-&TIPB^C!%JKj3-7CR&4oYkbaD3+(u*p>LVAhPxyu*1Af$g(v0O+$ z5hXKwrt;b+bLXyBF25nxE~`)lBJsZS@i0$AR@u(!dkyg%S<|!dP1zxidTgYJM!r{t zC%%a|QUqT4B|P~hAo(Q(`Q>)<%OaOwQX{`4hTmp-Xu&=Fk8n1E2I+rAYz8Z1iEH>q zEIy4jpK_@IYxy5RfdA|Gzn&mAkmrrKpOOu(8CTYG2C}|Ef)yhHw1FG&>E>>uM5!I5 z)~V0&z{m_X_a_3^@L)VKjc9xp$-p!op2oN1k;iATYoOhi?1{BcV_!V-G{rjtt$~__ z*1!z<4cBN?s&&DGM#Y%H)bL~p=42G+r?IjDqX0q}i4}>iYbt^+_qa=zX zUk{x~U?<;4`_O>_K1VXxhAg&Yj4MSvj2H0;oAXgg$38bapN>;FBJnDCO)GOlA=7yuFUO1=!*KpqS z(7z?ac_$Hhw@z>&5&57_@L?kIQJvu9MC4DNz-8diRR-Kf)5t)U4CKhbC?nI!zzbwx zj0_lL;0PHgkO7l?SZs!)T(S9cSZrmS!bA--r+sEldyN(*8&^DLY@eCGkog8&{Wp97 BMZEw3 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog$1.class b/classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9b929fee31c11d284a30d24b788abf46a9b41353 GIT binary patch literal 920 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 IzxnTf0eyCwxc~qF literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction$NewCodeNodeAction.class b/classes/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction$NewCodeNodeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..d571b5050e9a2aca8f03478c053617fa44788d60 GIT binary patch literal 3120 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$1.class b/classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$1.class new file mode 100644 index 0000000000000000000000000000000000000000..f949d892c119b675b994ce4e1bb34d5aa92578af GIT binary patch literal 1320 zcmb_cTTc@~6#jgl%JoE`{L^_O2J2Z)EDjmv>HIZph zTWZ;)Bs@}doHC$6&I(HjNlPWZ?o+c(+Sb@xSoM$vN1V0iHN*2HvYUE*Wj_7C0mFDSh*|RJKD%Vu(vYJ`9{(UQ>k5zftn+t#6bdrd+l$)H13s-9SgFKR4(x#4L zlPcY;l5LrWhb4hG*AwKTjSaBuIyNL5jq?f#1Up(&Qi^4oQi^Hbf(-vH#NeP?1-AP5 z^>Ca0dA45i-Ff_l#czC^BKX?H4Dgv_46uzsK7+39V+g~16Bxm0kHIp(i!i=;f_u3y z82O3GcMB)*Pw}X_^c~ZVFat+8(M@27gO{0bmx;?vQ^6SaxeL)wZCkc(*8O#ajwKKrk^eX1X2gV7uGw4&XoXRT4$x zgYnJ8-(-y6EEN?EJV=|JoilsRneTk(^7Z@2PXNxN;-E|5P7wM*)bgWPH+1OB1rr5P zUA1H=8!Gk}wOUH3P*-;6S7IfNs!*I!jg|_{98dFO4zdFM^Kw!8O&K=)N40qs7zf<~ z!%^JuRnXM!MES{*@zo;D5`Q*Us;U#CLKO>in-@CCpCz2?|Klms-?$F7xgl_`uoVuA za{^f#bq)f(9vt+z$e_r3N>QGHDv}!7zm9?f4*j0@J*_@NHwsPk%YeN;d zy9K!NV+^&|kjYBaY)Ud*7dTO!&flAUcxW6T7ds3Xs;TVP;92Xecj1>=goM4`{Q7x+fMahz`Hxw)P zar!R1IEA8vg20jWp8wSJP{N3SL*qNrNP*pjVs(A5lpUNFxVABu?9)~h`Zf>#ty*GY z8JJlL)~!v5@8K-Y3AifF(liTJU}7^WH}c9#aXBh3I=CP(@C)?ht3b7ljzSNYYzOqU zV;!0qBZHT-M8#`+?95n=cYKpl-w=R+ptn805w>=>E&lY%DcSBcmpcC;bH)J!0EHu*Y z@*ad7Y?Y==5|v~e z4)7GaxO(Z{#Q=6wA~D$8@or2jlUoA>E%%X literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$3.class b/classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView$3.class new file mode 100644 index 0000000000000000000000000000000000000000..5b4be37139711950ae6fbc4b1d7e1b22bd44c81e GIT binary patch literal 2724 zcmb_e{Zku77=9KaSHiVTzm!&spaBv}6Ag^@KO8ZKND$QY56-vqt=Q$f6G7u5y z_56aR?4nZ+lohOpmRjS2z{;wkvO~vnNAt2ADqo-_Tylc=t8||E|K3xyH{!TXcunAD z;wTIz=LI4fV=DyOOgw{@D4KEHgn<(R%?Z8WWX5sT%xWp8{5hE`DuL4(&z8k`={tH{ zpNwdz0+UA&SA2+2Ppmunf(mOnRe6EFMCPEpPv~<cds<@B02>O;ux2q6gZnmW|rlew2IO#Sa);F zlSl@^paD|(?Q0Q zd3_a0<^`Rp*G($IC4s1VP?m0fhU^!(eh|ino@>zFF!3g?2%M=xvsd)J($=TkMUMh- zSa4oh`BIBWV9m;Rnm@u^mFwowu9JD4+&J?vqJJGEiAEfep8N*>iqbbR_g^z2f(7tI_>wLGVMCB?V}^p zcyoJq!Pu`D*NOr;6I9Ey%GacLZ>`&|EY<55uu`RVdsyh{|1h6zLmX89P62AU;oc+eu24BU2~Fc3)cW;#MqkE zeiWy0nj?xF&ekl5^W3jJJnXOF+$Ns?16|Vtj}Y1Ds~{Tr6)z8LBKZhs_;}? HmcM@hVrVr} literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.class b/classes/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.class new file mode 100644 index 0000000000000000000000000000000000000000..12516dd319562a9f4bed76c165459b4a01852c84 GIT binary patch literal 8516 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 RVWrBatAbJ&@N15m`ESwVrw9N5 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.class b/classes/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.class new file mode 100644 index 0000000000000000000000000000000000000000..67db8470357b3fcc7a08da7891d0b81c6ea36326 GIT binary patch literal 654 zcmb7>OG^VW6opS}wGXSczSfExUzmj(p+(SwAP!yF(tSE}86%yfWKxSi%a!25AK;G? zZ`y)TH+B=wJvsU2-aB94AD;j&v0p+#pcNY#+e})gQ*ERgdmGz?GG$asPQGZG!TNoChNZPMmRU!WMMRji;=!z$JU>XA0o8D|4>JvA7Tz;No*U?ggEUcm_P~kn!8WcGC#}oo(XRYt3Y}(nMnFJatNgj3j z4gzHkRaHp$#F<^oL}3-}_$g`~7^6_uJoJe+S?Se4t^L zK+19q%gq?BXQyn(Fmr)xxk;HZ9Wy08W4A5u@{P3Z2WnM)8J&DdaAAlaTkX_XuvzZy zuman48aqwLlIbovYUa|xfJ{p(kjcWHhKRrt*Gn1FO50gq8snp;B@Hv=GzvrlbAvJ4 zZ(J$RlbAun+9`Og?byLOf&Qi$mE1fe5K%6f2Z1wm%)#6kW}{ArhBF0bH#HAM(I8NN z;+dCz&ma8r_$w2KKRB`Pn;6OCIu_t80nL}epxhG(ENn`Qo4ZXTZ8|AqAnY>B*RV`rO?6|dNzu`W ziv<>>WYBL~J5~I9`RjH@U4gEq=GqK&v(htF;`qi?DKzs^G;3%QxS=L9tH{#Pf>t_` z#wsH_-AvYXq(ithD@&RDfiyD~SD5hhm9bNLj!YYaoh8!tC{_rZJMr1EKleTM`xBo` ze7Jw&@OOWFdwAmU1AiR&YH1V()1bR|V_yuH;|dL{1eR5hoD1x<(Ib7I#bv#_N5_@8 zii}y;r!|`^fPZ>AbXPQair~YESgYu+)1ORFGbN$-zbG?(+`F{7JFX~C(S@cu~h(33|83B`O;JAKcr(DZV5}7 z?-S7i7gt5r05L!^#_3kvreTM`@(OS%0kKG~<96IZB@F1zR4lNfRsbt4%b7M_M( zwN|(ejwZ@|J%!O^GEaNWjMU+S*k9&L)3e5=XjDE_#EOtPx?o2c_KPi6#bCFNyRe5v zj*%{tP@o8lfx!K>2BLzF8R-d2akq|pa4(O+nPF|MWG*x;b|Pw@C>8#U#Hlx$C6pq zMPWgGT9B;X(LOG zfvpA`0l~8@EK9D^$=O=ZK6zYaBQB1ttEU^iwoJw;JJ>o3tqZ-#jv30*@HV>+0e<>% zhM*a6bDkwP+G>_wqRL9;E6rspkQ^bp9Y=bd?2NvuA?H=O=y1GbFXjzPG&HE&0N-YD zMPmaMn8&a6{GP>ULrd!yh_xJp-V(3RWB!qlav}fE4EeW_`WDn<2hQf2PHytx94z9K zWr|dxJn;po=Wy-UmZOLr#p0i^p!k-@MR{EEGwR}P@yoO?v2xpylXep2UsuQ1>@Tk7@#sg0CR+1&>PUF}<@kZ=)QJA@xdq>c&j^%* zdUr5m-{i_7%vn6|FSKcR>mMo>8Y%eqbcFlwaDNuw#e00J>mYH3_aXiTEJN%0 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$NewCodeNodeAction.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$NewCodeNodeAction.class new file mode 100644 index 0000000000000000000000000000000000000000..a40299adc0db0a4ab587db1b88513f5df783509e GIT binary patch literal 3470 zcmb_fYjYE26n@^evgx|e67EPXmx^s#vmgpW04c52(DVW=K~SvQ?b~$AW;g6^DCJr} zl#70IbjAJnwG9q)n!2wbSV)`(Dm_&U2pgyeGf^ z^YCW?J8)Y<1;a_*Qgu76+K!PjELF>Twr&scv}S23?x<%BKIW>X;d)|Jys2&UB|!s8 zdO2dGM!Zfw-l}_sZ8dcBF)`as|G|iaDu#O7NvT{njf~6H(P2&Js^+g(gGCHWyb;4~ z*v8P6SVVVXWO%P(8Qy+|-o{0>+>~Uf5}{Uu;aLUGV2O-MEL9+38AD}bQ!<2F24(WI zA0Iz@`1sD3lM~;_v^K0@1y(XhF8BKRS&v~=V`5Z0qp7B5rPMypF|1Tf>|V`Kr(03V zO*F_&bXIOcSj(`^&}}P7P{y${-0{W-w(pE)tdxxP*dXCKhOLG8XAL!DW<{!72VKvh zL>!Ix`U48;@Vu~?rp&iJ?OyCeGv*sDp#)X&@iK$5#7Vplc2f5R)4Vs(`Cv06albU0Q_vyhZK{|$k#Uw^? z1rQ0VpCZc8vXEeiNKV$OMl)WL(8AEUh{d5G3YB5G=Ws46xrex;i6Um$R|XNHWZJe= zu~Y4zy*(z}-LBwe?4V2t(dgr;G`D=YVAx&8cAz({q(Y*)3bqnaUd1j6I~jJ(2Zj8QUe@?VOjE#VL-mh6(q> z=#y}SVbA<=&oe0>wSs;e4Pfup^i%nZG;R&s3m~bu1N=I6)!A0a&0{z&;qCd7bPihz zPT(E7--siE7X#jShRCs!N~!2F3*jVzE?Ni~1JESA&rmyim4ZR&bYJt+So^dPo z42}{DV@)SQphN15dGYwh=Tl#OJIxLWDTYIH=OK`p8Ep;qE~2aHoxVjyRPBal+9@Gu z`(%v5lyHinq4;turoVzTNJ(WOHMZqBw#l%Cz$x78j(O^sF+@vT>Z$xil%Wh938!Z@ zO(m8pa6v2%i6R~0CfVOKhkbvEFU@BZjNvS~rWZ)y!T&FS63#KSEg1DcMg{PK?@5w0 z8N;|B`lyQx=VppcAq+u8W&AFY=Hdfm#gskKloW1URxp7pL|!Tc$|iMnq&p$Uwtdbs z>@9PADXq^}JM{%sLD7VZ&!mtoRL5|#m5((Gj zuspmfyyiaEbwyfosK4WH+d|LPWCS=*TQ8sn7qJGHumP9R;Llaivkos{D}An^!(K$A ze_RumO&|9Mjf&$^k-L!ZA`*OT%i)!~*ptJ7MDuT08tw?cCEdrNV|SW!=*=P7)e?R; zhxfjqsiFMTBMcu8c8}y>#FJ*T~@y$jR&E z=10^W-M}u~!~xu*OZ8)7!zX?)8v{3|gIS9n+Ix+Hh+;SGzD{9%NcNVY;t94&IQ#_b XB~rZ#vM3O~K^8$LGWu&K%N73u77ABN literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$NewCodeNodeValueAction.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$NewCodeNodeValueAction.class new file mode 100644 index 0000000000000000000000000000000000000000..6ce147523c985aaffd720f9a2fe4910b0ada17e8 GIT binary patch literal 2815 zcmb_e+fy4=82=r>Ziq{vsesfXIEFLD^SZ6)xU0>Ye9qG>(-U%6uCx^W$VU- zlMGE}o)X{3J;OB%!g2duCm#qfjFt(sOz4@l4ue#?+;fU9QPx)XCUCAAsT=0nB&BzMR4NsE)=jAQ6lR(DOgUf!&dbYqy>O-ekV0EmOttFSV3 z?c_wnBe!T*qZ7|4=wcYy#oADjfX1*-xSY#s9xiZKmxau5dK*}XlzGS2q^35$Q9UWc zJ*wha9AgL@F4u)`pP_dLW>*NB^7U7oknQJiQo#v^vs**4HpKF_R6LItD8iNVbC;^6 zOmbw~GWx9|S>>-UQ{?<~E42ioTw=6gX3=1hBWuKUh~na!Kb$1WeWq?XIZ4-(VGLnJ!7xL|=Ki%Ab``H;l(<8w zOF6c19gCqo8e7L6Z%$})<`ju|G&Ox8BF;Fn3eInsh-E}oOyD(!kR-=6x5$3$7WRD+ zg6ASbYRB*dB_epV$U*id!#nGVxHiox=|laI{~lbZ+0#aLE`aY@D7 z(1}fyJL*g{R*706*KtHpC*9k)FV_cF`Oi=@CUoPB< zy*b|b6T;{igfGyBFKPcP>L_2Y2`{}I lUOkRu5(b4eMY@E>KWJCLDYzW1D=-a{-tv~gsK{qf@gIB&c&q>b literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$SetDefaultSelectedAction.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction$SetDefaultSelectedAction.class new file mode 100644 index 0000000000000000000000000000000000000000..3ccef2cf9d584737b95f2565eeef0ea5300de9ac GIT binary patch literal 3991 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 BSoZ(` literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$2.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$2.class new file mode 100644 index 0000000000000000000000000000000000000000..0babbe521af3977674fd15cc7ffdb313cfd871c2 GIT binary patch literal 1662 zcmb_cTTc@~6#k~IEL|2`0YL?^K*3TjD-_^RS(i!R>CdJ6wK@?>>_t zCO#P7O#Ds8cxI`HkhDI~W-sULIp2Ken{(#JuP@WC^e*4$w#&Vm{dRj-ILbf= z!{Z9d5-Ic(yOftwc}SUtl%l> z=0xX@-W!Ic%Z>i0L5hC8LD@EV> z8K)}=le}H@_7E}p17?2e6RiAaTt6Z!h8uM6pcr5dJ#@FCcN4wnBa2i)e-mMmY>mJ! zCN4yY{ih$Bi8^%vx9HAr`wZd(#Uuz~Wa=1qPLTPAiS_C4NF3#lVNIVP_Ys{NGbflm zqO>%n4^m^qBaXvV6|hLPJVFYO>FY9mFJOpd&0sa6kUs@KqcGB>&_x6mA_ayhVv!Ky lgaC9S{u5~f6K@RI334uxGlnMw4GNqj_*Ht-5^90y_Zv5m!Vmxe literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$3.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView$3.class new file mode 100644 index 0000000000000000000000000000000000000000..9cd3783b8f5b5cc1f81f6108a5b39a5d1d99871f GIT binary patch literal 1559 zcmb_c?@tp!5PjQL&R!2F2%`9_Xpy!ci-L-lU`Q!KEND_vKX0#_a(KOK?iTQ?e-a5| z;s@h568|P+oV}JrApxQ^>2_v1``*s%oBi?Y>o)+icwr#MP_{j8`z`JVPSf$Y*ipXi zH)KnAqA3Hu>&U&3yH2QdRC~M>NTFnfLL~~-D3qNwkYJebgC>`@>$F43!#&02uJlyM ztJ0OWa(r*8A=*j?3_WVg39~cAUbzJNA^|Qqo}(5SR&$qvn6EJ;ba_cIq%2%PkBK;X zEg0xyi05=df5q|S#!jm)gH2I)CBtCFw}o31fusFyFrkZOczqcM%g$1OIlF=S5hbdD18_tBAxCT`=dfjbO$ zPs0D5Y2h9+3Q?!!@@H>r^eXP!=rDHVg9t_j|EopTW#8{WbqF{ zRaHQEQAeyb&yzvP6=5htWN5(S^d7QwT2DDyG5Q*~O7SFFbL8uYS(yAx%NJPtQBFUt zJ(L41Ax*0l*(L@sNFKvA40RDc(SFU4nLNPoA#Q!g*!t8F68lq!cyNSN;Q%I?6B;)T zjXN5hV;L!w$zLJ-Rg7SbM&?b#mFeJhxd<7LFimVJ41;5a_#P8V60x618yM@O^d}UE W(W5^{zX_7kV{`umSR0jy$2LrkD#yQb~6OwV^3 zj%!*S<=I|cwk+3bNZ;Id<^ zd1vigX47&T=9cmuw~-&&)N#zVP{fvdPil<|=rMI8>4 z4=}G`p6EFRb{1E3%;5%ywjfYWoeJZe?=389xGgYuoU%9%19xy&V2T)d<#mEk<Zgj&qr3pQ{GGz?T9VRc4gzLMlD7eM~1hx&7L} zLwrM;cfy(!aFlH0xwQZ9VnVf0W=*XCG(G{ zX$64{aFawjLElJFNeTKV=&sRh8*%yp$xL=BcZlR~^c;gucb!Jy5?NirXY`bb>|o$5 z&1eTc$2mgbrzuQ_)=A9ZJo#Y{vpo;1G_uv1%pooug}+9i^C7$u8TH^Pu|7b7Y#3lF z^E)no#M}-6UGL)NQLF_DCpCmM)yKL=>ruMDQed2JIa|$qM0zJTox~xsAF!Mu^yMxd ze8A<*QWszGG~UIxk<$V@ecDAany&Hmc^BnD47Z2|AWJkX5g9pZ_{&84eJb}AY7Ip^ zCm{@IEcae5_H(#6G{v<+8x6W_>sn|bX;>Z@>Pfis?YHH2R|`>2LJ#7 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView$1.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0ea9b79a30e365662d1c8b6c0fd62b9f2b52412b GIT binary patch literal 1881 zcmb_dT~8B16g|^c)~>5mMO0L%P_c!|ir-S?!vfl*pa}#MeK6DQSO&Jc&F%pH4&VG4 zB#4O*#y1mxlQG^|3ejo`3AEYSo!hzR-gEcd+aJHad_e%lG0!@ro-L&Xs+KyURR~dfzlA zG+l=0$C6oQl<1yTRL`RCx}54zfW4o;0A+1&NEzb zhOTU`+^WQaftw6t?WIM1Q1?As^RuTbp$fR8mT044O$;JuVF<$v=PA@n?yPAoEYMZ* z-uVnO6!uW~enSLYN#6_YR+K^#w_qC>VVF89mWA6GrMk%Qt?N5$4D7Wgao55<+-JBF ziiq4ab^IQY;)-;uf$%7L_RZnQ{I^&nEE5m$*uW#IOM4=Rn=lr}Kq5Cqq&r=7hRK8a zy50MXw13hepk2|7AB8S;-=ZQx%=1RGzs*H|J#fUF)Dz&+e@5nrRw#{&SjYRTrNqT6mmErO}#0NT~)5;BRqh|-{Zy21H z@*k1RvmM;o8rp_Mwg);?Jj$^@;xs{ACeev0r0^6yRMI}o5c@e~@hnOsy&GUZja)O0 rQ#7N-@q`kXAj~9UKanyp*h$AH$q*yRX}Tv!+)pt}Pr7irEcE#eMNks( literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView$2.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView$2.class new file mode 100644 index 0000000000000000000000000000000000000000..965b7b7666c3bfb020283d8b326901f91eb3d607 GIT binary patch literal 1565 zcmb_c?@tp!5PjQL&R!2F2!g0sv`AZ!MMOnQFoYiw(-yU)e%@X;z3 zugQk+L|q1a*O9G|yH2RIS6jR!TkA?T3glZRUxj?>SpzYK2|uWFX}eA{lss%HE_bD; zLSB}xw3Xv~OEu9{GGORZTTYmsA^O5)@aG9}!SNim$grNd9LQ{iA*K_IgCSwz3c5^0 z(QUy%4?{Gg19}UNCrdkxsth(o)s+nW1>Y8KMFftvkDM``F2l=9xmkLa((P$EwYpTD z%E}r;E>k$K`m4Gd`D`VQ>lijL#4vuLBNlF8go@!%*BMf$csf@J`MdU&@+NL!)WB_q z(Ub6hMq0Ro6oWx|tOz9-1~S>gw%8Ti6<(chRJTbrc>{MDo}aA}5^%%!xC*4?OVv;X z!d9DPXjl_tNLv`keTF`wdMyGf!|}fii$wbG=#*^+IRjaSm9tSUHc1vHF~wlY4^83K zN+dsq7w0MZtn{hh42)1FPWA2NbawQ?V1?~@m9wa3g&exl_wti5(j zFRfh^1H3|#R;#@?(T9Gr7_MR92;n20*9@u2eGDGp<~NKLrw$R@n>xU~LnLzhFljrX zaih?kwA&;4Z?qeA-tub*=%#AI(SE1gp3E6Cbk3y!7)R84+$lX$PXk9jP+3X ZEIA_d^v}_6jD-6b^RzSRkWPU6{{{Uh>gn6wrFP{8VhX?MFPR@M6@m1ZgmDD!R=No zusdY!i3h@=ctS_D7g%fUS(UIl8#&g%u@;Vb;1)EzWljw-E10k{83{&p#iCtSEU~XK zxXlU+rf+VH#|IyMuvnFtR<+oQQ=Y+ez+K-JSQIu3#cz#Ug?ULntrn?&z>$ zY5L_>yiG8goY$u`Y6^Av^^3`bjK*n!ohEs3|XUo=*Uv?D2#W7 zLkUMML6WZrynwT$pHL z9L5(wFxf-_d|pfyu)%FGQ3z98Gfa$v>A@_)xNPe>HuGU7W-F)j1+I$97M)dTVl;}h zRc&GnioB>%&1(2(sg4Frl)+Skh9cJ5?#^viY(sEcm_{sajJ5^CEx}kw`>8>9Vn--0 zSkd^Fy)=iv>#i|q90Lkw4l-D#iw;R^8dR_B!6Dx29W0A4#C_BBPa?tcl!zx9+y1^>_6^ZSYq!FZyMk(au#q11uW+bY^L^NW zO=|Y5s8hwi#!FR&t8tA7n;D*&d!KC=6W3x3Ln+wat_D#=wjx$cP%+d2sDFgun@LAV z@Zh?Cl__d{*osXmd7FuLa8pYuSF;ti+7h8?WI(u@VTBt)Y=c%lag4H)A6-n@q=C65 z81CjWm%N$T8S!UQj{>)(6{mDGIOU-&K*0C{sD(Wkjqs!3Ncq@jx~ghGHDu9?(jc{UoFDMni( zcH%B2lk9Y2)4$!sJCuG@ntr$LuMhiiiwEzdK-sfQyi4f`A)!tsyVbX4^FiF9p})?H z4+)IAIv)<=E)$3FVG0rK>ars30=j$l>N&Wj1fn4h;%*c7sAAqk)F}-#&)%ziKPs3r zLUwjdaHU-D4&^@cM8ZANSxv!Ia_fg?qUzYT^?rh>h*m-h?uE$V49U zeRx@rUc{23FE;ImA<@oo)1)@CdyDpsw^Y0~|;TjxA(;@|KDt!Q1}9SpMo z7zFj{J-J#*lP3D`q+RVr62VY}#FH{@)UYEMYbF~j(q`3H+EYGf;sib~$g|5YJ6{gn zqRm6MP4$1;#8?y;;#qvbgMX*D+B4I2p^4}4JRPsAn~}(@KfpF6^U#q@Go*+VkxrTT z6245#h*@1>ru^nEt1YDEk&StST-0%r98Oj5#aC&=m*0E)OYc7H!`JW)557*815#bS zx6SHONHOsriho62+#eRC1gQ-SZK7*o+}hsBSXU?zEEyS6<%U`st0NSP+pL_jd~|<5 zrI&>0sH;e*rMqH%YTWH$hnoi&7ULy3_J;E)Us;BI`*o`)KU*ah?si$}!H-zt4{RJ0 z0deLh_?ZVk9gH*km{B`T{2aevZfNU{X(HMX>a?0d;jq@Fta?}b@I$<;IPgoYFIH<( z{k34C%|5}X2{eZ~yTX<(vLYJm3?{sIh4t1x{;6qds%dZc;a9jre|~S`Rs4ZF)?w4J z@=JM;?Ow_t_a?taP*@B%p6Qz@FZ1Gc zs>x;SMNVsMzoFroE1bPJOA~Ewy4EYAlbW>U(xK&S1C02 z1u3oP)}@OxpUlQ={z#Q6)iTGae|Tsla@bx;V~=R5+?LFU)N{bT%w-g{wO_O~1zB4o zl+Y*hq}C(z1?RPmq=+-+0!{w;44sXkcJ-z&cx6$Fu~U=VeB)kOOaPiwAa%0DBaEVv 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 P--Y3*@Oxrt!ukIK@oNYr literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.class b/classes/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..27e3b92c344a0f0f52b91c4a09690eaff76bc650 GIT binary patch literal 4589 zcmcIo`*&1V75+{Vn8|Px$nYpgcoZ;ACLvd#Qedz=!o%3f5KI~@R_V>;Fu5?fH@$O{ z0KQVIeTekos}{AjiVf69!O{UKt^TBI`FAuFfAV+N(&e}B9R`w+>0p;Dnap|YyZ5*E z{?0!8=I{Tx_5pxR_;UnR3I{TdnQ@0q*R!*>V_GA=n{fy9kmXoe?U|#t9?P3KJMYV? z%*?bNOL5-qxx?D?Pxe{45uN7d9^1;f*$8SB9xktx_J&-?90(pTclGCe&&v26B^?TL zx7&{GKdf-7Ipum;Q)hDaa9*4FG2a}s2eR7Fn>~X%mrJI~o4O1B4o_RY78k@~A6-hO zj#;CYnX{a%+2eb*lT99O=~Ji?ff%Y$YhVsy3S*xTP0?}R)B3jC0i0egm4h-rWji`O zGSsiVUaLQ+72+v3W99lR&z5;{vBn>?^9l#=Ju2n1npBuKY0V=U%z_#`($d>oF*-HgG@IC@cz5 zmPGe^?#Qr0UnNLqQg?RjfnFk4SZCnVXi``hT9)HmvaZlniD5Y)b3;xjtSu9-TQQ~g z83xZHkv)zb+AKOcJDEbnjF6NAQdACP31}4U3dZE6*KUkYOulsHqlt^++Gh-Gz($4o zqHC;HR=>{uAHo^vO-Avc0>tuW0}o+~LS4ynuRcK{K3YjQ?W+-gxJ{NbNPSPox%# z)E=GBc=oVwyH048*)67;+TG*bp3dj>fI@Y1OJ59+peuruLgQ=)MU)swc73Q-d_+4}*&--w2d!qJfw2GEZ&Z z8r8-7Lh`Nfdh`F_r)ZaB$S$*@AXf%-X8B;ZDK+PZ27V;8mH}I(a{`o$j$uQD6-zH@(beJ!^Q-&hV7Ew&N!w_?g1W@M;vI!0HbWJ@It6(-jwM>#)-SHPg6JjAsxVL1_zg6m7I7FH zJs3)&4)vVL{(LN;HW@WgMxgxRmeBTn)V-9NmIW9R;qxU7OYs1jslAq1S~#krbOZ^s(vm_O znu?a6;d6p-TcR~iQ|6%r2b&7`?7P^?(dVWv?cmbxsY`oq$7N;U%L?$7f!?mhaz?ia zYtfE%*viITVznf+R>HXr`vaUc_&hp8Olm)~AUSy}aT!|+_(B2QDGqmp!>-o9qOO%| z1w48d@kIQw0=^td9yxTWjhk(EY-YkuKFdu?>A%59#BHulV86@@I9|Y$@zDZKyoyzc zaOvy(8t3Obm+@SDw7P&7Ca^5no3W87;0K2!2Gs#K()1jR^E^g+3FEvD>p5%3MwtBH z#Rj&k8|m>T93X4Dv6*e&Lu}Z#kZ)VrHEhFacE&GYJI-MTOUTY3W~;+!6k|4z73s(1 z5|1j&?oT+X!Yj1N{Qev3A~?w3`nvl0>lZV%KgFxXL~r3tC|Um=&OX+Fe>LF775w}* zv4sA>-oT&{N)`>)NC_-zdAvxMMj`4Ot&GO63;0dzRlF6y82@7dmkYRhn-C#cAK~#x bQCAlUk-mcjjU^H^;(Bmk6y7I>Dtz!?DEC=) literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$1.class b/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$1.class new file mode 100644 index 0000000000000000000000000000000000000000..378621242fd518750f0378f1fdd3d9340bb5d0fd GIT binary patch literal 5044 zcmcIo|9e|i8UMUpy4%IW7}>@cR-MpoZMSjPZXH`wH%8ixLe~wFm2NP~?agU>x8&aJ z-kWyd1XMtg?j?Yn=3HPst|c@XrYSwIWjo=~C1Ji^nxbJe9$JF67hsQLJnh)J?@FmB_)W#`;f!<*6`BR+HVJG- z>nyH4gvb8>xPk=3h*a7sB$+`u)$hx+La72#A&ss;JGN@r!soE4qg`Mz(w}s_5@XV3s9W}s_ch7xLF{EUV>(MBPqu`MWEwNI6#0(K(`3=<5sR6yp7_c$i=>eBB|V4 zs#z{1jvfpM9Ks+$1O|-QMw-244TC>vOd5L1u*dbd?^^bF0p}5c+i?ebxy>*}CXH0K zP^jkUD%1&qqu|Q6+Lf6Udwx74O-mKD!lX^Db9bn*X&A#euHhJST)m0FUAUWTbxPXf z{zRdU_G`F@u&!G3=B$-UN>{CQuYiG3Cc1$A@EFHvIgrDnC%LnT)&z0_Nma4g;I-vb z0(RPlnlMgi=~WHQp`y1K2_lsOCpK-oi2AT404qiOP;;uZ>iM&Ps( zhWJR*ieyi~N4Bi2>>?ap$T5Nh`NmCA{i?vjc%%#(w-OWeLz_RA$?Ik<9lT^b`s9kk89qeoh>3YGgdQxAn*!aEd#ZK@YE83s?M;{ z`e6Q0;71iMxKlCuV}YMkgi@E1{!HL?RaP3gWcBwd$(sUimABTNyOi{zz&jOd-l$w| zTHsxkKsBCSbf{rm63F8hEDH)%p)sGeFg9Vhad|qc;xSqlL>2Oy{14-ORc?N%Dn@@z zjb?lx@aqbgyE)6U$8WA^9cx{Fi}x_D-Cp53ER(7SBlOhM!SOxR%(|R<3hhj<^h_?i zWs)G{go*QF!QK^|1~tRd zTOZ0}vs1mcvhH*UjUN($a62Mi+AUd1O-UpDWs!$9v^-epS*u%VOme%b=X% z0lt5O;s{d$8|f(8Xb9~z%vYvk=%Tx@kM8DH{vO0=1PAF}+(x6EW=xDw5-v&HPh&Vo z6SzPY{z0ekZ%W}Z*>nv#w3#y0PN!)Pd6XcZpR)8UP0~v=MIX```X}92aK^nwhYOsM zT@Sy(Z`mC;QXap<@7bYabRK`e9gO)Py?_sS6k;UL;g39O#7At$wP^Ye+BNJ7hc9DT ooB8W*+p>~p{fRXi@MnC?pCSH%<}dgwk0LC)nm^S`g#*9-3v;*`T>t<8 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$2.class b/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$2.class new file mode 100644 index 0000000000000000000000000000000000000000..f4e2edefea550e031ee2ca3a460b0d94352e37c7 GIT binary patch literal 4764 zcmcIo`F9gl6#i~onGzpc+1xEswJplnmMT&eu!~kpsWcQtQK!?_b|9IFGm{o@!F}I1 z1W`Z*1QkIcMseTe|L||{2hZ_%-y}@ZHk5i&)051b_wKv*yX$+mC;$2CTL29>siB0> zY}&f%#C6BD1}s}QlD=a)eKKy?#(;G7AxjQ>x-UInjr3+$8oq31f+$b*@KjY@RlSBX z!px1vkfFy6dq7{^yHT3HhAD(9#~sk68M6|e)V*O}mqXI_J-y8_lU|4A`O=myVTwO! zc~x}`r=w^*P0a2(%eMR*2yNAqz^|rk4!8R< zu98_Li7E2S=UT)fQ~~?`$l34TA&NJLz9WYPKvaW7y+(_mtKJT(Mpy+I<3UexlXasaanjnQxzl zhH?xO5WyDQuVE`;*@UzySnLEIz=MR@K^-tRsXElj-*&s76>Z^KG$GciHX1%V)YH3+ zkzClt+wh2nhY2f+%gO`AN8AJv z6wK-cct+sad^gu!t(^b7zzcXW4=SI`FHQo~F}YD3_?HD<84?Bjg58+yq$kDtPgDTj=;Mkg!8Gj0eb}Ys?$(oF{%cZ<9z~E zMz9YDH0&SIcx8@Dfe&$zH@GqpGfXateCf;~YaTS*Zh2o)6@#YJ%@@SI4<8A9tgw{v zH7l+V92WQ#N4VjNNqfK_44R>KweXq1=Qze7hSWu4b-$|I?FG3mKuX|?5qd9G=KWIO zt9+x^@$A?5R>L=(<~em*H=8n{QdZzQ)s4+a@D0%K_Bnl{d>pd&C6dqixp|s~Tliiy zEudUwB(nWkq}xflrfjoR2RDCgySrFPW+|<<8FM_oYp#<1pwlPt8-6ED&zxP|GRFO{ z>d0zO+mU5x7e3e$kLqk_jmjd|B>%;6{70`syQ8u?vupwSz51RLjN7PA}G z*7-Pxe+lQFVo_3wG6jpa)gFUL6gU)cYhEnKB;jVC^Hyrh+v2iCZ4Br#s$m0zMP!YZ-Du!|_!dXVSIfaMPczj)U zE?jy#9EC*Bogzx(rP1WCrtn5iKpH#3?YqL!ODXKGcuxWOAcaFIe3Hh|{5{7*%5;Ff zeAN{xoH)u(iO>*j;T$OqBA}Dq2HM55?_vS%#!}jYHMEy+4e#-p@d5VIKBQ?sPS63I zq=WdA4pD?YqDAyEHPR<^4;^NHpVC%3LJ!erK|oYyTzx7aXj>*AXe$T7_xORsewOjS5ProUJgQ*w^ZBVhDnR-3F9y}JqW}N^ literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$3.class b/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView$1$3.class new file mode 100644 index 0000000000000000000000000000000000000000..25b38f76f0704e9e094cd7ab907034073d596b92 GIT binary patch literal 4622 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 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.class b/classes/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.class new file mode 100644 index 0000000000000000000000000000000000000000..a45eae062d82ca5e512585e3e186701e8fc9abb4 GIT binary patch literal 23586 zcmcg!34B!5)j#LXBr_QvTVj-`D4Q6v7z~P<2nazSkOU+F42U>PCdo*W2{RKG6&1IF zb>DG8P%E`=fMf#VR<+pHT3f5N*1Z<@y=vY0{^!0oGcS`#h{fM$HSf-ScRBYg|8vg0 z_w|oIKKKX`jdApGkz$(QYbo*tn~Q>>KtrIV$lDeP`hs=-W^aqP!5=DG7Vs|*7e)Nx zh?I)TLVj<=Uxo%XsG5r^7de>*obFxbEo$<%G!)HTe7fHkK~>lrZk!SfHA`b@$TYMf z7-}f;`vBy2$JDh`%}3r6LfHm|X^7 zHLbyLAflq^X^1q|_*Y-lM&HvOnxI+olKV%z`WAUuKrvE#79ZT1LufYmqfIFAg#t z+U=;i0fx==HF?9~Kz+dHjRb-%rU1rQ^hVes0WIt*|8mVkOVUDY6WC&oHKkW$NqhTv zA~G#1ODSZ`2xRnA#+3HSV`_~_j5(gBD>AW|IJiFK#fdwqVb7Nrtvgsn-jIDnMM8;zNR+7u=zSM zf~-o`DS$NDU+-;eid3~VHNjRyWy)LXgIX@YUMwv;?f?XdVn76j0C>wgVdRk9QJsuZ zJVOkiWh$(~Da2w~dk_0aXYxYx+AlV3tRA*>d;q){&osBkrD*rZyn*_VueE4m`II?8 zuRvs_K^N06VcF1!vbInN@IJA%waE%Gn8rZ4Qx8)V19cgz+}5eoLzmL!F1if9<|lSF z=nA?LS_on+H^y{S_Y_z@&qheh`MKz71a~QBPj-_clxqzdP9xlOJupe&&_h?zI)iSc zo8S*XieP40%r7Fk&h4tiDVY?XE8bZ7k8uyNhl^ z6wuQMC$8}MTO~*|=ngTQ{;hC`k?M%ox1qcyiLJ|i6}Eo z>5VCO5AbEdmPjbr1b~IpH3N5mxjPgLMogFL7H}5(P7bEK*gw27y7n9o#21SR`|35q zDQjopqAkGZ!YO2sh z4@GH*AlQRYu-tNiw9WL8K@Za-CMcWDps?Mu-E0ClbkSqT6_S^flyrIMQF>fvd;+}d ze$Y4rN2U81yN92JMDppA-xs>75%0 z2Xt`d%$+Z)_#XYopf9A2#0S-Z=GG>_!+Z3VLI0(%VNs|xwNJPKPhp2Yb7w%S<+mwV zX`|2t)^F&0QGy>*s->;9m3muhxyK+Ex!ug5(NwCpH(cqVZ`fh5lhbr=6fxtPPSjax zfN5~T7hKc$7rRC)&a&Wf6`||;&U?u_38$!Xhmb#Sa5g$V@ zNe5F=f<}MC2O4}39}KD?T??)eF!W@YCZq#^7&bS#H|QXCX-5d{%}^(Czu2prhX4@8 zD|mP?JuUJXZqPw=u#^rn5YIv8hsS|r_nPb9-S}&$CXX^WPry`S>1v&unr6)f1{osW zBYH{U-nKG4T&P1UKGL8ZI#B2uV^9gD177%OgU9kQFl^I*0s>`$k}+XNq9;yT9ueX| z^o(#9K%qS)paTgI_A@;7ao+*4b_$RskFo$N;b6qkHdt_V9Dt&`9x+HOb@7B0cwz%S z)8IWk9?R$PJjviP4Sg+b%}}Mb=9aLVPZVohyJPnwtAX+!p33Deo(6R9Sv3$4$aYF> z)6wFE1fvE|=NUljI6Eu6i~UGM|Hr(ddjr(t!u+OkrNLD^6Q&fO(?pRuy%Apu57mY7 zF{qGXOWk}DBC$Bj-n;hE-4EXB=4#RKwRgRJ-MV+yu6g_Bd)z!HUbFj(OW)bF+0FBy zDQ{nX`MZy97P4y%p3e*7tdhaaxNYA5MmLb9XUaXikQcf5)TDSQIjJ}JH1Q*XDJQl_ z#tu~Sh+>-R)PpXIW}1zl%b7q@1cxw-seratbGxZNcQ5(ArC6!=n?@~2mBn-o(4iIe z-00#4fT7(#bhoEya6lpqZ0^>F{NY9qFX3hvLupHTWd$jTHMoTVAz7LWz9oW|!U7Xm zCQCNd_C(mp;3qysJC8UB^h^cI8H^R3tb zYHfpRA%RE`Z&A{<#=b(U5#Y%5w-#@a?ApXG;e=?Iyu^Bu=l9Awx|5`fe+Au5tZo`k z#E_VJ_znrdR`ah7zKefjipGRH#H&n;_i0)i8)DIK*D5#PBWZu#af^KBmd~OVEZM{N z@n#p_zn86rxQQFQMFg7;&6*Ra!?O4mH*d2BHrcGl4T~B?4esFWXx*d_()3my;spe8 z2P8ykQaq_GAcu3(>mh?5W+ch3W!|PX|IB(FSS8xWl(6dxJ-mY-lh``V&5t94Dv*jN z4gMYP0uA2QR=-5dg?2samR%M-K+PTedxQTVi*`qXX8R0&nxAnovfAE3=|r5x3KmzI zXR)(Fg42(9Ns`Db@^~`m4du@!yb6CI*=~ zTTU~izjzSzoo=mKo1CSTDfVSk%wSoR?kIzn_Td-!MHl}ap-4i{<&DAr5NSKZfiwKl z=${6^%&$P|P!>TF1RPz&D9-aWk=g4^tM|jOgt)U zgmNM@(FzRkTLN1K-ESNG4!_HEkOd(zF$>!hT}}}6?v3;A4pK6ZC;df2ln)I4P?B>u z<|}UjD0=u~>-<_Eh-*8dhDXnV~TJZWbO}!i>m!0$uHxZ zXdeDdM*18|mJm_=Erci62}FfuJ0K1Qu+c^n-_XyLZ72Ogu3$m}%qEV)C>H}FvCGjZ zK7o!7unnO#4MMQbt4|BjZrnaG6u__qb0yEuG^uxD>Pdt20oA@q0-hxm z560kct;4b7Y>cyP`*_QdOHnb@7Q# zN`^qcp)yq#(|*`|jPFqhSN%H0hwDl1>|chsS?o~`+p(b$YpnMP0O*nO$<|S?Bz)yz z>%bS`k=h^ds<0)5ZHI)-rtpqdl}F{MgIwxBrlWgiFQ7z{^_sF-NO1gsJ)eJ0Akt*0 zgVkVcAOylDu_vy;E_zMS-fXToY#3+-INsR`QeIZDk!|_mt~I0P16o3UY`OXT)vbOX z&MWjRNz1nS+Z~KmXi^vv!O;R>^=>&Vx*ctv%eDi zGII8ebI9o)HAIaPy~=~1%bkvmF;#$T4SJLa1XN^hrOG67Wy%|ID{M=7R^p$+%F4pJ zI*-cd$M8oTX{cf~260KfZm0L*^e`GhWq{HYt8uHNfnS9PlhiSWI#yxhCk^|N0r*#J z`P&v_-i1I0+@;Q~VD;$>YVprP8E2fK#w+X$;nsxd?cmVtLzOjpL%254CVEghYQA)t zXsAi540de^M%!3oqE0<*1azuTxj5`D@esF~3g&`9OD^hO6cXF67?o*;Mq@ilDp-$u55pJkDL-{4R z?28r>I4sh%NSg*j9ik4EHUUGOE^XrZTnhq1w`yWiB_(c!xJ350_5CZ*i|u+V;W2+? zv|w1vXxvhka1vLTq<=YXG??jJ z4@eY`WMms4mAygQ!ltrLckmLdvTswwq9YOA`G#68S)KzLYi}d>Hbf}W<`;&#P}*pb z$O|Y8C@-H3sRodzNM1c9(Bf^f@E?~EdWO~bVp1){t&m{%)7hUWSy-+_xz!bzCSGSI zX>N6u)iCT|y2z|UlBljR)V1n5Q%|h~CLma!i|{sK`j#oC!X1ygLEY$5NdC?ASYI+N z$5l4mPDRG2Zt4cYY@=JPOJ%5A47Fae4L45Yv~pvcL2WQ-G#%+yx4|Mt!(On2I9FuD z7fT0}#jbv3v?g*ZkCgQ|Sd&rTiSIy09OL1Rk_Jf>wRLmAWJU}dtAb3GcHp#l(W5Jj zQ-7tP)kF__w_wu|s)h+BA2pn50b)LhwH?m~p<8U#>=gDc>u2|@$I)-A(0 zBLH6E2rdc401G+0RWt%EvSS|xxcXbs4C#zqZqvd*O0?8!mX4yXb6E`l$)*|~3Hf<_ za@sm#v{>Np4Rx+;#;h#=viL9NZ7h0TDCd0vro*37<%o`vC3Z23?&y3 zloiPR8GZbKItd;G2*CUd3!;vM18e+Q=;|Q=id~(vO$!vnNocPY)BVRJsoa@u4q)3} zcf9`>A$N)i?Yso4?R9stHxu@TEq3{eTw@>D*y#bT{lDoPlGnX`x)Im8qs1@2W2mtB z#dt07Cte07;B3A(eCT0=CdJOP;9YzYfIz$q^Nf{?VG{8&^whiWgzV)E+%_L{_N;xM zuea#mHGC4u{KrtgRF~L@f?i+tGZ57!R@*l+|7)nb)jc*cq3&_H!HdSrV`Wj_8)`qh zx)npk;w@~NPz+7j^fN5BXWjMLu5@<|O?rC}i*-4a!9GSJ7hB61oA!=@_Qva>S)qMj zS1;YW_Bhx&wxQ7&XpyHn*cS5nalHun{Q4~Ut{#6b$Kkt$F~EzjL!!26JHGIC+>;qC$7}uIRSl+r*Zf@ z9>0q4#3u`smbZ;2Y}U;t;%~aHtffgP8)gG4qsjQibRtc`U+Fv^lPYPQm)}kkwxFa) zdV6&3LI~hgJ;MHGD{BN9U05v>Po-(rSaw3nlL_&rBxD9vq#~p|nGin+sqcmmk);q) znUW(_$%F(_5;7|_N2-zuX$B!J-4Jq;#gW-538_vdWNAu5=A6*5VEWrLPYC@ zBXd&{GB25sl_?3SO-;zWWI|Sfkh8lXM9fYInV*u71<8c0PD#kZ)PyWZCgeg8a#1&g zh}{bzr_v()h2rB9q66)T&dckd)AG2TeDcSim)X!x0sVK0{@bko2KC>id70sMisWT3 zYp3OTnJe4rjJ%z6R&58J-A?DAxEjUt+v$S5?Q~I;E_sZuYNu=RV3*fqUKgbs9;2Jv zY5gYhlsI#oQQDA~AEjS`p@=zXDMe@_XcFVA!WUFTYsg9ExVbtV*fs;7OH}})DrpGb zj-*+@h1vM*s2U#_)nGkq(eh%HeuUb+wS-;dfHQhPw0(?#r}%`V#NqHR*#n2rYc?89WJng@^u zLwQwxp0HhQ+5 zp395U^Y+Fs?xdH%(wBu_1E#doD>+VAJH4LcOlzlqVOeli^+*=*EN}w9|+9 z@gcbTu{<47`dpsE?k~~w8)^C>DEY3Penj!dET$+cyxDBM;q-QPpUHgz{?R?JW{69lyPp- zwE1X}FT9HluKVPhgBPN7IhhX716bj>vg!me?30i zy8+*e-GrUYTkv7VdiaoAp-~%X4z%tRx{Vgo?bL`bd|K#EIu~MH1HoPa9a#sRxC>hG z05swW=)|k|;N%0^LSNxdjhnXdAbi>~3_Q%k2P`GDou|)6=XJS=Zbc!M$N2FH4{)XyHm|P)YNpUS%8|k zv6=z%2Xeu7KDnK$AcJa0luyBPg7utdJ*(uIKqk|YpM(Sc9V~bkZ0RXP7QcrD{{fPC z8rJ(KaOTgj@n>PZe}yETgP;2wr0_hgq8I2we0Fjvy$Ct}19E#wb1~24K#YsD-r}MG zOBb6~nCW8n@?vmNNw8@04j-X8@IRu_TnWOTi?ToeDN5tbP_WaZ+`5bUN@*J}yHRTM z^6_hB2d~mPW#ZB>9eurm8D0f0y#~E{9bv$m(6qPkLD_D68u_-SaELiioWjw(8gUX% zAm|7_kI%*+KI*Q6{?fL(`R&dHDrcg9yZ2!blKK^gdYh0nFh;0N+Ot z!Y43^Phk?DAwK#X!uZn0=o#^4%&?XL(s%9I4JB!X`8jD(-c*u?r5uvu%;LMTo_nLb zb)NiqKwfUeN^|tD%!b&DyUij-NJqzGrP)0Xk)iE?-Hj@q2G?Yy&tAI;+5 zM)?VI<~VcGxAGsO{Ff3}j%yd)ljGXK&ohwYHmme7FDY?5#%64y zxjC-vj2--v!Uttbp-N8?h8b_KEb-*Hvom(`lG^+nPY1tRo#Tn}8|y$ms*9Z%s@5TI zJNVz#QQmz)24`nj(`?*x2ZTFp8^4$1j`I6f8QQyv233Ock2cW&JZZxwa?9^ex9AwT z4=%cYOa|BJCs7|>1f-MS@|52VxSb@w<>}OZ_da~^OY{vK*|!kecd*(Y@TK*S_y}wd z9R^o<1S=|L2bHpuCU6>6a5~L{C!7x?^m7KaavzGYK`Xc~ozMMfE%&EOcmVx|GwEK= z!WV?uK*as&89sns0&>32Ik@D0Abo+)XA}?Sf%qOKhY#f<9)vF?hT$WI;h^s@KAA`I zB7DAb8ZfbeM{y(P;bM4!R?^EP^Wo;0l5(@9q=WH2$$yZQC{SLc^A`u`AIV?vmso8v zM*j+mn+C`J2LBhObb5rYK^%iG=GetcTzsF4R=fBP#1%x@ z-_t=T3~~HOg)V-n67d7|H#3;++o{}vCYq*PH)Djbo$-J&Yz-1SS@4ps<`*x^o zXgY00J)*m96v^MN2Cbt$C|1KYYxpsUX z=^cP(K@--D${=NO1KEun*_(8!l~|?>df`qrq;|U+)}eAMcdGo_ELGT{imD0=qH45+ zOIhlus2W?6mY=0cqU!i{G(t)_X^!HkI-x=^Am4%jH5m{9+pj=_DY|K{l%#1|R88xt zc}0BWikviOk0V#bn^x_u>8yCuSvhHGJ&rm%-gNffn%2ad)<96fo|ZK?-gGXS2D)!5 z;g%`sWdI4{e*;!_)BgN64d!>~aDEqGI=x5Z_k@)9y z4}XE+=}USX=J+Cv?@j)eKH~2H2S4De!5;wxd$>?B9|OxOQw}~^rSW2w&MgYJ@>Pb` zqVc9e#3A59b+Xo?K759%Rr8_7`*Tn&P^W;_!Q7}8;;j?ZovKddX8{3XmT>KRkWpx> zM1-$~xKzG``f3qiFHipiHN@=_Qw{l6j3DXLSNXf>3yBme;ch+v{FQ4u#0d%k$NQbIS z8m_Wv3?OBK%BE@R0Gh1^QIpD{HR?dRO&vs!sDtSxHJH9sL$w^u6z!{+9O)|+)L~Nw zeW+Tkc;oMCDWvB>$n~5GX*r7Y29o-brU{%%cDD6v#Oq3S+bv-^Ei7w;HlKt4o{Or; zQ-nw)IoS>3B}5igD^RG870P#!f#2owd!@XP7#GiZ_-{Q&)mdiy39RM7m*c^g@!-n@@Z|*XWg;D}CedhBM#rhibb>mO z%GFdlNlgQ9$|<0xQ%KFAWvYVCP*pbGoN4i9Sr^_MXYz*SW|7Gog1geDy%457Urf8I za2K5fD>O}eYM%I*^D1?P^69M%9b>Mi0&y$IktDK=SrW3dcwO9HD{V=Ij>y$Xu%Own zplVo94IQH9V5M`Z7`qBnfM$YSlc49Og)EF)$U@6Ph!&~~U=0e<{cLS34mzBU(zar5 zVx$q`nFW9_+>WwzU>Md3PfC|#otMPcd47DIEA=`rO03gdaAQfDEKP#y^)$z}xYP@_ zpvKMxiOB`f>~(Q)v2&&v0VpX1S;`B}ECy$M;7lDjkj8nW~ZMRDf2f)9F%W z?o4WbfbAc1w-*bHbLsLpmoA8Nsovt!Xz*|icxd_q&96(rueGtr18I>0$B5k6wo>&b zp|;Ipz)`x2Xfc`jpF2)~+j2Q0DUL+O#ZnWp!14VN_jR;>^o&I*Qw=8Bb^Nc6EJJ-Q2Ej#kP?3V;sPz3Oi35 zWN)ci{7l|9b!#E?PoU`pQ+#y?*NxSwR<;w8bc{vLGFapp&yCbZQ&1&o7o>A`dbV@p zo`1y>s`WG+J3c#P(>e6+vfL)k9Sdv4>@ud@FOy!JR2> z^$#dme}qcKh%w{Rs3^!%_eRzIKpH;4okH{vRM)190@S*)RC_g|1y~ytAuUg$RILaI zKNE_8sL}i}Ha#aTJyu3y>xz}#&aoMYO*{~5#%W{wWcSH--$AbIbSZ9E9VLb&sIc(E zb3E2aeRHHvBIztCW%s?HFQX;YXI#T z0F2w|8feE2>Q1^9(%%HRZ-Jb5s=MiFbss{E`{_lsnO;*{5Q1!_Pt*elR<_Z1s-3fN zsc(pSkVoKdUaoowLFyw~5ATtHh>K%-$i?a*Xpm4|tRB|+Xg2rJy6M27z*|})oj8zs zS!-k(HP8->B$^gRMk$)>qH}1YdK4u$cBt2@$56_^PXCSSw-{OeAEK^SkE5;+b~IP3 zCs1c#fAT=}B3B(2rweZC~haEKsY z)}-uN^_LXW_>!lwcloP&F4Z*t*b>YpjP3`_1(W}D?@^-9++bWL)XskSb!s@GCjY3p*1 zJ;aoh z%&;k1hl7(B^Kzn(!;xBRmL{zR=eKbNIGia->vBpz-qt0}A$B46HxiBpxp*>V(`;Q_ eDJ8Qsxl5cdQVxC9#*yKWz|w8$bbhE0)rxr3<3Gr67HwP@2BjmLOHE+vJjNNp{2ThJyG4 zh{}toC^7?|@QWS4sEm+OaMW+k_&cPn|AA4@%_b!@ou<`Jr^()X&z^hEbD#6vlRy4` z@C$&g_*y~%!_knggp8PCm|8^B6*XZSAtTIVs;)-3shrgKu%*~0=VDfjlqP!UrHLR7 zy0yrl-NsKhglx^wD?0eFSnZ&HXGTIH!&<|PC_EI^;ucqij;SH8s408JF=FsIs_GG?$2K)R;%8W7Yj%_ti|j$os@TlX9$3J@X@jDAP1o!_3Nz)= z>L5d*fT2S$di5Dm%ej=epErw-PSwVCT4DpcdukLeWHG@2U?;;(Ek`8f=nK%TSrko`j~vqX|LOh5^eqi8hB?yHXP}>Yy;J z&|<{fW^RQ{Ep8iTi)q9h1BUKw9MW-SA(M$bkiDTpSCd;t!X)0dKJDEv0NEnrC2S?U z2#{&(3`*5}+zDzd4rn^>NW=!X*{co+&U*t!NR0+nQxoI#WT7YohW>>lYi|8gVHDb_ zsw|!YmZ5e&IWd&<*lOr_yBbf0E@3xA+X5CZm5iCti&2lgG8)jxP$u+B$Wv#Wo2pPI zhTVC9B9_JsJ*9L?M%|`f_Y3dMGWMZ`4oE0r50AvSZi`JAcINRdWYba_NLoeNXT3`N zIe>!_S{b&_1(6wC$Y?`=FphA$$>ge?%A29Nsya_l*$HQg$?=d$pR(>imxNA+y|YJ` z-zJWzRq(0Tnl`sUzSfVbqJDghLGexkr)7Vd@BF9LDP;rG!%tkCFuP zu&@zQ$`GEZN@ob=zhEkMX;y93??xZ#)8r4Mf1SNFe&xH#Z_oYt>-Xc=$0kQEJi2(Z z+>JM>*jhVUIz4y`Z%gQBSWmzzHdkXI;u_t?BzQ`~)}l%~w=B}RM&pzW6$A8Q+^|TB z+vX&3t&~Sz$Ao(r$0QIuyXKC2hDn*MWkfLOz}`h7km(Lu^<&07NNQy2*ixo@p)iLK zm2iBnB%Q^Vj2K8NWa5b6MZcqbOR1EmU$JzUaUqR#wr&V2=N{|2iCY&Ye!ekr``q~L zYw0tVKxfo4JDQGI2+u-i#7LpGO5m9RuUS*0Mnp(bmj}Z*E#VYHMeePYOJEuA;0#rv z5DP=MO(RP8Ii;8Vt~G2c!&;b3ENb;qMuhQu_&~z@(|WlXOl6$KIR>{Vvq2su|K+pz zPno2|^+OpK@DYU;$`Y~0|1V(@K4EB@H{wr(P=Fq!L-4@DCDEc?W;pY-Tx7%GWRxfF z8ICx2Lw_#m`ueJaB92dGT*YU^KjJd+l{!YcK-{Kbq-e`fpJ)G>{uM<^4<WDDjPAv9Ir ztVv?Mx6)g6AHELXrX)7sq4!;QnLd5wS^VB9rqQ!_h5F`gSdHyihaITIF6tZoG*eHX zyJ;0PFJi5yx$X2Vo_0{I1vD(4I(gFr zdGw|sse1_Ph_gc?iIYjZ>kQ8ShL7oKjjM1J7n8Vhcmy^1OkHWyCkVDsQovp;r}k^z48+=ad tjC@^5<1EniqUbRyC4?ViC1G2(Xxm0QforrgR8pYb`vUwY}-R#!Q0(#|4 zy=!lKQ?L9B&L|mW##?9nAAbA?XB^Mj4KaaDzz&m1PR_}B&&RXRdrp4)=jUGlT!E$_ zB(SJks%}?Q+cC<9rD~h5t=lD8(JZYj9d*l)+f~(dq+}~=YL33FlA%b-vQge}7v)!3 z-8F1WLASv5&H*V`#kRbNYIeQqI-2eVM-%9sH7vuOqnL?&=cqwtI#P4JLb+frHj^w0 zbh8#g7fwXcgNVTVVX=cM&NYHJ0{7(&OD=6z)}^zmt(#IHmbZ1yENYIydfnLVZWvX8 z!c#QV7WWM0(i;`+wM(r%MUn$yD0tr;!!&cY<;pMJg0waTx)RCa2?#tN#c7-oI9VZc z!RL&?c;0r(s?<&6epRY>?`XPI=`j;SR6bt!%P4q3Abu3r2nO&HKd+dAA%R=}pA2oW zi!aG-Mr?`RK8wRROATd9C8i~tBN)U8XCD<$xiBsW^i$or4Z|!s(%P$EK~ms$XUu{~9(*n1O&OX& zOAAE*sO|p#@VmbrKKS#&PhngX2)hjo6Hpn$R|LK|48x-r698ZkqzWzz+&ne}=8clu z%9#izF~#k@N>}?B+e;P|ymlzzkB(P-Syt>Vxxe^nOeuKdI3c3ZcW-}|8P4+NadvaV z3d%E!DV|MlN0G%l0ukmQk7?-yk0!pd(y6L@e3wopf_HIM!F=F+I_Mw8HCz`^%F^3q z0walJ%ayHeyXv-4qTl^AlwbhwMX`vyz;piWZW*xI)+^t9p8Xu#%(TzILzXfu;R6Nl z3k)@n*yc#wa1W>1TW| zoWe7tkw5zIEXAN?i21QZKUq1)x2Ye{|0}*u?P6f9h8KTCKU;P&xR#2&T*L4V&i!W? zZ#E>zBNdyd;ZnnAaxGQEm4-Ua>gx@4hSf|%on>{-SKrz}F3)+=J6I^BCw5Ta{<^^Z zO;abpFkvuC^`FCedQH)ayM{3oF%F3faFM__NZ}FEc#H`=!9@>?5x>hi7LN#t6|52l zkE#C~bUK8OD0UCT-*h~Lk4Xt(4WE#_OfCsJev{lMNq$OlhU6`h(yEb}PW6~gMQ|N_lNW45OM>x8iLv|0KZ{sVN zRGVnx1NczJIg}gI_*26sJ3BL({buHyneRWod;{qVVh-mK8wPNyVPvDZ^?YB$BJRA)c6zQ zb<6%bR<=`DNIjyQm8W2F3;nIV{>ue5;o5} zonMJ%a1WFcVJ+ZMBqHQ#edBcLESt4EOj?Xy;+_0y(jJj*Jx-G=tL CXjmWs literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.class b/classes/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.class new file mode 100644 index 0000000000000000000000000000000000000000..094a84e7a1264cd1549f867344b8cc314f31d230 GIT binary patch literal 1647 zcmb_dYflqF6g^Wag|a|fx$lI=EdsWNxr6XO7*Og~` zWl`lWcZ6>pNzn)__T6*e*`glRbz7t-e<&+uUy#I`nf*Vc zb)p5ky6+KJJfw(kzq3V6-&hdCO@^`Kj_T~_o4#dW87pD2mWB4F26*^i>iF-mi4WEux)^@i3_dJmgR%PUR9 z&Av}CK9C`T5gJEA=M*_4U|AOkjv05(J_t=UR>(%4CN!*`{Q;jF~pk2BGM166QzDent9~ z*~I*3Tt7}L9tJs0*y#}8Xq|84Gkte-VwEs7k`*eoK^C1_zq!=J+G(r>Qg<=LnrNNs b#M)1PBzFiUg1h7$!9CokcbqI~deiSG^yR5o literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView$1.class b/classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView$1.class new file mode 100644 index 0000000000000000000000000000000000000000..760435b6189ce3ceeef21bc38cfa68e0bca1496c GIT binary patch literal 2128 zcmb_dYfl?T6g`7oHZ~h@9!=e*O$i~y7$*bGqroNwYM^mzoU|Y+r5~zcJvAHFyVmXk z{VV+$NYs_`q3Wkr>TimwoLL@fAp%Rm)~+a+6G)paXCQFVhJ_1Rq%dS7gPcIBU>t_(uCE(g?R6cls&!8bT&@R> z^43)7n)QJ(ZMG}$>|81vo#J*cnnS7vo~OujQ{Z-?ehTr6<_s#P;Eah&mI5PZhX~k7 zz%L!;H+3_E>-fyVrvk%gWwUVupOZnC;-UMAR6B07rKyV_lHW=eH*w3th`^2G$p81W zF^by)7K0a5tOTwW#_PwGSg~+NpnSTt*az*vPt-2w*P}R8PHa?aV6zy*xQ!wv1g(8 z>H_1YQuchTRokJ3ea@}QO&$8$ldIJu*Gh)v+_&)n4@s~a{p1DCrhs^9*!a@MV@wNN zk95M)JV(bNBh?MpYlhnAHVQxX#)?tZ3D&7lld58422TVoG1Vb-Jy1bRxWn1ETVu240Cn;w22)HJ>kws;8nzM;PW9PVxExB9}AMn6I@I zuMD!Z4)Ey#`uGL1#fjfw7k|g#E?0fH#Ctz|jK^i(?c_O&E4a#)z=ybYfbfuOgCLFv zK1u?w?f-cYXhJ_io_B$dk04&tCrya*#2!BBV)##tEtmdAdbiX?p^H-E?qA58=RJJ! zD+WuVi$|qY7vR literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView$2.class b/classes/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ab0fec268eff140bc5a8c53b0709a1a46d721c7f GIT binary patch literal 1565 zcmb_cT~8B16g|^c)@~Ol2!i-kv`AZ!K}1DMFoX|9OVO0n=jnD*7Teuscc8xdlSmK~ zAB=A#{w8C*vn`2&0irbN^v>;_bLQTA?tK6G=ZTNuQxhZ8<@Dn&=A`!Jj9@dB=6s0>fJ7Vj#0+hL}z;4u*tea9Ko=`y^$kej7vDBYfxQ>{tW zuB@yw z*h=eD!Aku$Fr))FG8OSm$pN?|ANwP43Nd{AXXbQJl zB>6EsKTFZ4rBD54V1zP$qHo8iv#k#XD+uRRR@+^f|DW-{iXBNzox8vJ# z)zQ;3{FldMN=tx7YsIzeUf{U3b*Z+zs)fgRLY1+7DU{UxW0*TB`Xh-gd5tEWRx|^hg^|Te}){PXp&fAV1Tu>+`^R8Dhb*XBv_}cW>19ROjS9IW;S+}<0`gWi* z`DJU(GOLzTG3Nu%b}E^+msV|a#qt7EFwSw3Nfi}31$6@Z&~4x;bSWIj+m0@*)|Rxl zU@cX(LT}zJS=FND*qJA=EnuP~E;Y@QEMEThm(*&`YX$J<~(oU20IbKRg|)k1{3 znDe>hM|dg>wr#je2ZgEsCvU1K${iNv`WR4hCHYf0l-!+*RIwWh&l`9F1JqrrXeY8( zsbk%kGcb+`g@nMB!qJ|>Xq%kNcdU{QkB0VqQ{Y5?nHWrk z!rt}4tk+y8JW_#FmwDxCOMQg3mbaF4bbCp$EGI&g}kz^6KE%BGMmPv(0R?k1-#B< z$87BIQ84#}xx<|x6U^b81}=(TJ*AcoQ(dh&aa>X`9(?`T{U0{AzWVaPw?B&ejDgFT z<%7sQ>x!$w&GyKxrMg!K%B9+hrS&yYBHBF@$J=anM6&hiZ*k-~-}>f@`#*oj!fS#S zajr=2=M+x<7c@EHe-2j-%ws_z#&#(&6^4>~qvE+^%Qf&Ej>rZd7+A!0h5h=I70W3v zxOu&%t31O=Mu_1iHQT!kq!a!7y)nY{-@q+lc$<}#d@`*yI{ub{C6svlt#Vm3$lE@P zPY!c(w~}P%@M3B83+tWAJsF~B5-8)Aw4S>LY%DAE5!bw~>QZ34P7~b3Bf;%*4sWwA zUU0(o+7pq)*9>!6MH&R3Tfnd|&(QqUPNZE({e zBt_Pll$6MDTE7wzQ8t?R+5u*vAHxxHT#%W%nW4yG+!>~rQ zVI!=3J2`qSfeye}pN5<&X!;l^Tm6Cc*` zQDm0Iyi-S|iRBoD08A1-&9qKpfCPv6J2FK5Jo*k&c;n>UB4UY0xj)uPh&<5V0 literal 0 HcmV?d00001 diff --git a/classes/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.class b/classes/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.class new file mode 100644 index 0000000000000000000000000000000000000000..b215c1c8ca094125ec50169ffc1a7b92c3090a4b GIT binary patch literal 4857 zcmcIo`+F4C8Ga8**kzdn350S9AgGvZAR}J5WGNaJ&}fLXiJ_*pcCtBa26kuCnMp#i zwt}s;wpgvL6?>6ZTeLT!h6NF=y=kBR9YXxAzxV0Wr|&nj*<^FaJ|#~kXU?4Seed^v z@A=L-{Nq2D-ve+5{vN{uh5Z@F%(!{e_3W(enATw6X52oVw;U_0J#)y`!@e1KT1&6I znH_q#i|=W^ckp+wZROl-43!GIXSYQ+dDk)f!U<+;uOE0;CJ;N34TWmkr}cEdo$K?o zqo8^e7VfegJJ_x8SVOz(Wlf#Q*#o{d{o%kIw)?U=@XgMCoy(=#XLmnMC}~eyfgX#d zo6)7(k61&NnX{a%*%^4YlTG#XG{=3C~Pe8oL)k zp~gTJ7Ah=hw;kOvnD5nIm(`oo3bpNS#>#bDo-Oai&dQ+Q_7(2CeuAdWbxL9JfW-s_ zA@2(7=SYl#A?gvHB`$@1*NDWlJjJd3*Z*mmf%80gF*iV%|_DFjjY!|hhD&ix&W4{8M6`2jH8vQqYSS;aYd}84eS*w)ncXF$_<8Q;@HnoS6_Sj+FP&7 zsQV1G$*5&AYOnS)o;?uQt`oUrYKwVhYTcs;J?;CtPobiru{(hd9E{;Xh5DIRi5M~P z8GKeD#h1=T-%cuzJWtxppvyaFT)--(1Xu2h@5t^L4OFQEsifJ zteGg9k1n11_{n!ax^#K;jm!VMazZlssDUqmwPFd&L2!Vf_}mfqxW^Rg8m2;uBFq@* z1IuvS*TH@_GsvpT;CqC+tbu;mMC|LF&IGzo%Hduspod*^lta=g8)w;8F*ZAtz)=G^ zIfv~bLh;R3o+)I_ zPMAu&J_cjp!q`5aU3(f628O_`BoVE%2+y85@JvT!x_r-Fgs+C4Gdr-kZ5j9~ z9w)-Fq)5fvRJJOQ9JVq#JY#9kH^k+_IKIc_9nh-KD0Sj_ z1K-CBTpqqPq>I~AMDZ&Pb3mO=LnZF!NzMEOHML;zR4Zj^Fo75GQVc&Lv9ohB8(0IU z@iJ3Pr5y}UhGS9iQosWK$qk1Gm7f^+sZ`afOwRSCy2|e3aHnI_bKM}SqSc*&l{tFA z8YrH6YY3)|Ck9?OI_={eyOBsH?>$-18tAt(zIo8Kogfv%YYOXTAC$nW_?27&&Js~W zTbrDLYIvwQY-a~OT|5$REMHwyFDtTNRNyxTUdJ1fhu<0a6jmniCeFujPGRk25M_5A z1AmaMDaLI^w#fuWP>A7zf;lg$(^jTmx8=E?8Muf`JkJYP9i3gR9qD~MJ$c_rCo2KGXW)-`pD7hAf-O9zPu}0B zxuDIG)zA(#^d|mn;4k7h_XF|EC@wt%g7~*^`;@jiJ-nwMd<}G!V7m-L-TtIcQu8Pm|9IyaO_^d@G zpUXJq2Gn3Ve^#&s9{0p#9hP#0{Hx=b<)O1WwpVbr^ifVBh&rs|c(GI$x~*cHH z)jnHMz;kCA+6byoqdv*Mhl@jgFyVXjp@1Jw`Iao;$A={3iclQ8!)G%VlhReV4ePO$ z0pHGm?_|$iXvH=jg}3wcy8{+U80Nj?I8u0l@_7k&hm_nH1zV(KF`mWGC>q7NEAR?z zrsoX(@jn~>ja4yp)ofkAl1ckHeo;)}4!()TYu>@D4==^Pmg3q){Bm3}qI&RNA@m#3 z$fB=Gse45$j}(PaFB1H969fNk0l#m$gtuznu6?I~cMJH_c&ejCaX+Q}0IHd|HN04i Vr?>_+OO9r2PN@ literal 0 HcmV?d00001 diff --git a/classes/icons/add.png b/classes/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..bc58bd77b083d526805084fd527f730ebc930e36 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hT5@^oYHyN+ zC%Y_Z`68u~YqD~_naa6}_dC^}|La^eiDl)AmKi2TU5+l1^geL>QkIHv$L&MsSzJN| zC(B*YcMv@3+)zl(SVzu=6pvEa7@m6I2_r z_>$bFEmk_a%5F5R@?&QIen6{)-EGF7`s_Q!mS+mKAD^Dxzopr07jj9vj6}9 literal 0 HcmV?d00001 diff --git a/classes/icons/addgroup_16.png b/classes/icons/addgroup_16.png new file mode 100644 index 0000000000000000000000000000000000000000..71b9d4769f793d9d994fc09ecd615aa66664a966 GIT binary patch literal 699 zcmV;s0!00ZP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;F-b&0RCwB?lTAp|aTv!x|84D`o5Q~;Q`y{<5_^%_ zu!-11sqJq3shpq(?LYF!jbx0-XkPt!AMM}h8mS_`Am}z3^ayF-%FaNzb z`E^lAv@rZ0A09r>^L%-}k`RLJNW(Uz12})WtVvOf9-~1f8jbaJbq!SweGf+eY?Ryx z)WChwYPqp)gJOH`p=GV`9LzUx_Glg#YOIc8t5Ub=xcIM(%{EY`=jJIdEM=d?3>xrf zb%$4`x`BeVZlld9xw!?5i56N`0b|iwHS)aEuiVbD5DJW|zKQ500LzI>Xyqeo06EJE zIEe+nNK#F)J0`SBo95I4U}ntD9n7G&B#956&;H8))@*L!+;P69Rn>V%)^PfvMW zes=|@0_b+_Gch>rFIGxTDucyr1wXLYzrs=FJT-dO6A;i!+6ZM)M zN_c*bMKzABF)*_55IJpx{rPf*JzICJ%(3S(05iTPguI_Om{@slxM5u<-{?{9QmMu-BUjg1CPZk=S6UC{Db=X`XmrsEmW6U8nsFJsuakM^GX zpHEDkF?WxrrU(vvrTJYiFG>qCYin!uTLNU?aaJlty5?4!O55=&I$gP>m!vlgOM$&x z0@%$Ex{WpIKOy8a6*0jH_yi-)++HRbG4*>2E(4hl0->U!s002ovPDHLkV1j;Ao literal 0 HcmV?d00001 diff --git a/classes/icons/addnode_16.png b/classes/icons/addnode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d84fdfdafa05b6f4e7f8000ba4359f417057f5e6 GIT binary patch literal 3556 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 Nn(Df0bt<+m{s)FRoooOA literal 0 HcmV?d00001 diff --git a/classes/icons/adduser_16.png b/classes/icons/adduser_16.png new file mode 100644 index 0000000000000000000000000000000000000000..b184734eb72569cbcfabbb11e9ec5d9f28b94849 GIT binary patch literal 681 zcmV;a0#^NrP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;A4x<(RCwC7lTS#KaTv!x@4I(yZgcNmow|@xDbl2a zQirgM*}))6gKizHPFK^T3!Nuh?$z%NpLa|f%`4-P9hP;OiK$da zY=8V3j_pE{Rb=-;3b{FC&k~LqXGp!Q0OU6Eb@Pd3ZeBV{Q1jsp`C0m~!tFPS(=l83 zVsH3xdHj@UAc`)mj7om722d4%wGHD-MDq~|RDdnPs>3dSIY$mu7P%X21ALsCYNbRQ z;oZP3US7HX-9c6X5W4wbc0S#;n9NfXE(1wm7c5>(CzC>mJdl^V$$g96Z3`h*f4Rc= zOzPp_iH6>=wPCB&-ZH#&ojRlVojGj(V8q*<5N zxH{8FTCaS)d*w;T*x1;@cDGe3TCUgnk2UoL_GzI}GlY_VOF{GCI#f?-Ry4jEj9dhI zwgpIKrEPMx8UpZD2Z)y+#_a-cxylVw@!|Kyqe8{q2zMF-|a>V;W( P00000NkvXXu0mjf3H>Zb literal 0 HcmV?d00001 diff --git a/classes/icons/addvalue_16.png b/classes/icons/addvalue_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf9bd364b374a633d5c8ef33816a2b8217ff828 GIT binary patch literal 454 zcmV;%0XhDOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwB?lD|traTLWr-{;GuvWTE96q=&RmWKX; zj9QBpacPVQf`*3Hf|^@ukXphagNB;y2d(j-!dhxjOb`oRWIpYATl!)8lFS1a?mci1 zmwOH(LS+#WAJg}~YW}yZngdk~InrHZC)Iu+@x>4MDH_pzz=#umaE~ z?u3n8TB+hdgcGjT z_de$`vH_6NpMpTQ8$H`=cN%qbAR=bPc;`Yp%eu@lkF+fG*c~_f?H6W4L9!|D*Z=?k literal 0 HcmV?d00001 diff --git a/classes/icons/autocode_16.png b/classes/icons/autocode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..44938f5d76688b54225a5f832eb34dc6193590a7 GIT binary patch literal 726 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 I&MBb@038aBp8x;= literal 0 HcmV?d00001 diff --git a/classes/icons/code2_16.png b/classes/icons/code2_16.png new file mode 100644 index 0000000000000000000000000000000000000000..242a122d199f04a7d89582106b450a28498844b5 GIT binary patch literal 672 zcmV;R0$=@!P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;7D+@wRCwBqQ%h(QQ4~G*&6~+o7Y%e{7oxF37r{2* zCqWY@=)#TIpmZVVMky{Vb)#;?9~FgC#1Ae+5L{HjMJpAo5|pNXpf#y!q}EC$DQF{w zLW>`g%!KPAAI8uOJ~%wyyO;CcJ@;Hd1h{(`& zz3W2%y_N%=M*@lhR3HQ}@n#fmDr}NYujg{Pb7P~4GvBhswL$=jUu%p_yWM12M`#{j^;+c>+L1^}kykM#Jh?{n`OEz5#w zny@Sj`FwsWfFuzanx@^j^YDew9}Gjc#AEG!hZDpFV#vQZJsGOuTg>*cIM)u;b9NOFLAFYW>nS4-anl zJ#reR#@05&=ihUK_w4}vJQ%1j6J(wpWuJj-vI!d;S8x*OQS0Q0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-FG)l}RCwC7lfO$sQ545NFQgyhAXv~4_~s^;=8WLd z68IN{xU@w^i&MA1phajCTB2}mIuKrI$t84XGkTIkHN65cO1LdAkbKe;>5S*x`{8@O z=N!jc%QWFk3y1+Yx{wCkAlJ0I@-`8mkloCevfDaMg4E$oPATP&dGCoxX9V!h7hQTR z5F`FENCKHL00WEyTHd2MHKJ3@@v;~ zQB9l)k&C{)vL)}@u9z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ--bqA3RCwBA`2YVu0}K}%->I*ZJZ+CGMhG+h|Nox> z20Fc0{r~<{i{UE++Xd#&KPGhC)mz9w05BnQta?~IoVuo`gk^jU^0 zSFbZLFfcIuV`O2F(syCd2quNcMhlV>IU^T$l$bjMTlcx+v zkDo$um4Jc)gR*BX!zX@ChMpNqQRG-qILyopp6)ITA3uI#_=P3JIV3b06eTnn&Yw7p zJrM6dc*yYe>sJO+09qKFGsr2dSa9<6S%$A4UXyOXhSiHN&Yv|o@&1EH3OlD1HJsZz z@56@|5Ahnnf=zJ4>ctNk7#JD@LSrX9IKMwZTv@L`&B{kXR9=%f1CR{*$iTobk%56> zVnAqYJddzsfx4BC0nVgM3Vj+ce!tlq_U!58#~0-MdM=&aaORJd`G$tF-%oS2B@e3I zO|JP-m-s8>;n}=p=M3b{p8b-Gd%L@6_Iax__V?qSGH@+B_bhFF$(H`CkN&DvOC$7- zPWG}{bM$G{9PKk=KC*X|rZ*Qn$w|!HrX0q#(dW_H~W4o_o`0LTV?FV z*KH~izCLoDXKQ?G)i>j?XO3B+jg^W*ogD}Q;(frB|NY~80F<~L#| z25l;PJ1Z?S^E#*5`@5HyEa?}WwcJK;e$ivK?)QchuU*qQduGDl^I}RaUQ%}w3wz^> z?)>jt|9+9vX^rpZGd%zI$V*SYy+#wZ{0sOJ-LcT~-vRMIB~xb# zR=LWrzdZZ#^HjC?#~&IOI&D_elo#9MT66M^c}>lP+uFBTx3j-4>HmB&bJ_hzy@9X9 z{BP_ynr~n9lW%@`#0{g%dACm$?no=Lzk5Jye?HHfJv%O+`_D8%_|vu}ny;n<(~oM2 zYeY$MQEFmIs%{F9U@$T;u+TL$&^5FOF|@EUF|{%^);6%PGB9X=5Eu{Bkei>9nN~?a U!;L`oY@h}PPgg&ebxsLQ0Mx@((*OVf literal 0 HcmV?d00001 diff --git a/classes/icons/down_16.png b/classes/icons/down_16.png new file mode 100644 index 0000000000000000000000000000000000000000..35ef44fbdb1e4c2e3d358275800cc8cc415119e6 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hVx^>lFzskrrKl3`YxgFtKgW~~#OZoQnQ6c)vzt;o)CW9cW3d57<*sc-nml&SMY zY^NjFZP%Qbf{UJ01%&^bh-H3ya8M-QZpK4Fmlo|^&E3DM8$KEeIK9(7U6s_sn9SpI znPsVn#?pjHu?tc4cdH$bTxVtwygx~$GUEEzi=S;aE((P4u(tpc_4p1)fw^K)%yYUD02&5YY+ j`=%=X58cOCAbP0l+XkK0793L literal 0 HcmV?d00001 diff --git a/classes/icons/edit_16.png b/classes/icons/edit_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d1333066f3179b8658cc0620cf6b1f7040b839db GIT binary patch literal 662 zcmV;H0%`q;P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;3`s;mRCwBA{Qv(y10{fo7)4Kwxbt3Ev%j4z&ryjX z`Tzfaym;{x-L_?VtpARvvHv})#{REgl53}!m>364p1Gl+0jJH|rfY}3`2Bbymtz3q zy{m5--`)JlAn=z-SyoR?=)qsc<3>hCKX7_sYC5~Drp?!d;qhUNEPO%?GT~1cE(-l- zJR>Z0N--woqk)0Jcf4M>uwVK8pZ~7^fBxJ2|KBb4|MNl^{`Vy5zHe@BUUvHQX(^aG ztS&gSL+7@x1GB&%hB^k;=gABYR{msAl2iEehF5>BiHS+SiHXTGoPl^`jmhjUABFz^ z_;IqsSN{L=E%5)>^$h*Yu3{1bzG5kNXp5f9~28LV0HdiDK!}c2+ z8!y9~kk(%K=X>c+AmfL3q6`dIdKhl5XJB~DZ}94ye8^@yJG*7->gqqR8Ndij%8D{9 z+rR$e@vznY$S~QBf#Lj1)t~2tW2d{ix=yjMu(*pWx>;b1cc1er_EyJf7#ehG57|#Fx!}N!hP4MndK`RDFujo_G&d#R^41-qkAqOg!iE6@0C>G$cM+nW0ssI207*qoM6N<$g8tb-nE(I) literal 0 HcmV?d00001 diff --git a/classes/icons/exceltemplate_16.png b/classes/icons/exceltemplate_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f4a2604b61f39fb5c7741c09eed7d98a5220d7 GIT binary patch literal 642 zcmV-|0)737P)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb09`}1z>owla7E>g`! zP_8b;x>SUe1s#Ge9>P;39qK$JBIpp=Ijmbjut`W_C!-D-ky~J6X@9KrP%UuIch0%D z!(49CH0lcv4?OVuJf9!W?-8bH@;?z(fdBrXczL<(`S#{#0vCtT@Zcb3o}V21D}cBg z>W=y&iLvpQV8D)MW$I=rdb?5KvZ=*SUb*^N)V2_~6CG^U^q%Bsn)lbc*sePo-aK+6 z+jso(z<~T)*@ zGJrWeIRp#=#QM2-;Rv^~-{%*?K4xYFK(fAtniNama_byD zb^=8L$pTKN9hcLAKwz#nSf4@>jC_vN>sLq;$QE$BHNqVse7X*%*cf0e!9u>sm#?$P zs|F5-9Z8ZXn`~~dSOAx2D`(F3VpGAYfFgk`SBh(=|Brx$0*KXTtFFqhRJQVFfcZS+ zbD&zlro!~Q31nf?)Z|0=>a@1lHw45-9;CeKw{gQTvPSiAcX%J2od;PmB!(Z81SaY} c)4%4|01ru|KeAPA^8f$<07*qoM6N<$f&!}<+yDRo literal 0 HcmV?d00001 diff --git a/classes/icons/exceltemplate_32.png b/classes/icons/exceltemplate_32.png new file mode 100644 index 0000000000000000000000000000000000000000..f961043777ac226d4c85d3275a97582a1ed0e3ff GIT binary patch literal 1279 zcmVz^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0#lHuP!a+myQb>$FXec$kcrYb;GSQT9&`1pR;KATwF>!4K zWC^s}7AtGm*0#GdpNE<5ZvU69&@Y+f+ixcGKJW89@B8j3Qc70xQdr?7q?FSSx+6Ps zKW+p4B;?2O>*8c2h>s==zyx$s^0oM-+uu!L;_EShOOn1*jtah96Egd1Gol^ z0(B5DY);56?HiryWU)c_z1!KjAOH_Ub94PuJz=Ys(-*#gt3Uw0YTd;CDy!&>)A1OU zdt+iD54bEx<7dSuk=|4Lj_=&@@HT$@`y#<%AM1lPm~~}E0~o)VSkwb91FuHj;R-vC zec#T}#|{##4)BjJL(7LhkxEbAyD|h2t&uJ0#4vzT2sQ@j+5IWII-~F>G(TFyse`RW zOVIdi$NUnA7a~D4x^o8(+_^TEK6mM- z3!l%Idsp|D5Iw}=ePEU~9I&1I-jSYu!lPV(kYJi7mStfW2AZlN3bG#@1WjFh7|prt z0syL}Q(awy5TJe&YyELSMr%E0#sEY z9B!bYp@FK33M{`LUDsU+#=$g-1dw$g;{kANkPbMC+bO4f=14Gg1IzMb7$&ObLlH{O zq&a4mGK^+1V7m-tZ5NC!JrL6Mhx8heRccXEQi`D)sH*B#fpqVWkI#yK7Yx{t$-4X1 zIk%Em`80s9`L_goOZR8G7arDv-t@-!JA+VCeudS(wav z!NlyLBbc#Q+-M#a6d;v?V6a#KHcV#7_xysWVv)bS9u`&w{|5$ym>zLf<}=ptE$F`q zL&LD`akzYW82~0SGtM&b*B!UNkB`CFC}cA*I5>i;W)MJKoxwvJOq!ZXP!#y1NC3&f z1gS({QXfhtw1FFOCqLf@oOF7?0T>zSvnwmB<)+9JG=w)(RkfDUw88IvDi?nthJcX~ p*t7dC$MJprHoV_!#lMdK8vqxK;Es*Xj@SSI002ovPDHLkV1he_OU3{I literal 0 HcmV?d00001 diff --git a/classes/icons/export_16.png b/classes/icons/export_16.png new file mode 100644 index 0000000000000000000000000000000000000000..baa7c0f2238c1cc7e0d1e78c0d4826b81055fa0d GIT binary patch literal 713 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 Ef`AWR>Hq)$ literal 0 HcmV?d00001 diff --git a/classes/icons/exporttoexcel_24.png b/classes/icons/exporttoexcel_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec0c154c6d9eda326ea2e969ee0724419fd81ff GIT binary patch literal 3713 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 literal 0 HcmV?d00001 diff --git a/classes/icons/folder_16.png b/classes/icons/folder_16.png new file mode 100644 index 0000000000000000000000000000000000000000..e7499ce829f9029749514b20873ddd94f4361876 GIT binary patch literal 3182 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 T>x{Dw00000NkvXXu0mjfXf8|-?ZMTLzk zmt`)iH1RS%nWEM|Q>9qG_`T)#9TS><+^wG$-}GP9lapyf+jWT>y5aF<{BuiOQe)3c zEzR-IJN!KE!eK6j76yhJ+!{-diHfXjY`Y};h;wzJdz&!au5A(U3``8h+puG z_*WTsyA^IZYi#SfRpK$b`(3n;7pL4OvsEh%|4!lh?b~%Fm3i%f=F+PTf!iD;8}Hw3 z`8AU(sBb|`zv8yE2Kf%T)?z-zBNHbYH*Gk!@%LrBZQ|MmOPbq)*1)Hd_niFS#eeMdw}P4*b2cmPpZ?*!dxp(QHq=ZtRH- zw>%XyxtDYwkTRLCxp(j08GkZ1iM@JQ@@y6F`Mf5*l`sA*ls>vV*&y$>fN$fAok#x7 zb$&C`^hdr);{I&5Z<5)w`uh7{&z?QoZJ&0$e$UhRexHfo(w$cL@n}gzG&S8;JmJgx z#P0C7JA5bD1%IjUPVe=5TYT&Kb#ZSMp_#4i+-J6&dHki~6OXLIvg!v1?LRzBk7enW z`FEf3&Kl;|wZd=1gI50v$kEDRRb7=Cl@U2Dp-0twsgPxcjLb>7iIbl@SyxS+{9;PO zo4y8arc+xz@Y1bMXa4eIUJ{|RXzyOxdCv{KGTQ|nEy=xov@hm(gxYL5 zkENG#3$^70n!NVjn-L!$`TyNJ^YZE3txb1s-TGC&Ox)MU$01PU(XMr;EX_+}%|k;| z6D8Vi-@bi(s@G9Qh5yjhJTtwsh63{GmS($xpcptHh#{!_Z`tkz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;A4x<(RCwB)lTS#KaTv!xzu)`5(@p2zWwxbRtHUxW zCM2Dt>>_oDgpPXf)TvW+2_Zdn)rd~*n4Sa)p%6OcN)kc~8w6QdE1j5Y({1ga+umP? zFodl@ANaz<_wa%5m*BPE6M`bZS$8jvdLP-t5jHlqqVMCOmRqTJ6#yag zkPJVQkM0ZqP`f@eZht;@Bbv)42@3z_ zl|fUZ2^|kLOApYzPbf#76ibfE2wmSE&nJ_~`EWFv-7y`UN5g|uwFsM^@+T+xxTNr_ zN{O?xv)OPsoZW5Olo#FFKw5LC>@xYdB)Ga!^w|G(9s zxXQU}-89Hvno7POD>1CMOQn@n`~AhQO~ZS8--iU&rw$HH5Bj@yyx#)=Y>pV>-Vxbk P00000NkvXXu0mjfE1xNs literal 0 HcmV?d00001 diff --git a/classes/icons/importhistory_16.png b/classes/icons/importhistory_16.png new file mode 100644 index 0000000000000000000000000000000000000000..57a85f8e5a134ed42fbf77a72a17c4eebec29c20 GIT binary patch literal 742 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;TuDShRCwB?lTApIaU91#|GmHHHnrwUE={q5N`(p{ zf)w&rpqDx%B;JFdL*AU7Iz&*nf?yCGdyyo(WEONV#3Y?9N}VnDzi4vCU(Kq*T0`}VbougTIH zM1_q&6&$JryVrx7??BN{qUc_d7CYu6iJ<7XSLgCqj0#Uh+d80tqjRp{C25l^nIUe1 zq*JowE@8HkMXquTfQHI&b--P zYb)CAn_4LRdTuOfEPpEyi5Z0B2J=dRWIRv$`x?gLDz0NUG4GkrRlIq4RXEgnsmV;v(7VIR6Bh z)iKYNtM1vB;o6mvf${P2$c`!l3=R%DR8>7Z^uADc!2MZEBoaSDp-|+Xe&K&&Vwd?n Y0PVIC#bZY9od5s;07*qoM6N<$g8Ft$X#fBK literal 0 HcmV?d00001 diff --git a/classes/icons/item_16.png b/classes/icons/item_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6ff9793c98ed3b47a57c41be04c98ac07cdacc02 GIT binary patch literal 3565 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 FV1kM0K+ymI literal 0 HcmV?d00001 diff --git a/classes/icons/list_16.png b/classes/icons/list_16.png new file mode 100644 index 0000000000000000000000000000000000000000..8c83db0c66c62b71ef665002d6bb9e30a93bc852 GIT binary patch literal 495 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Wl2OqRCwCNle!oGgTrneP1xjZ5o6-1W z+Uzk%QaC(5LP;pE8cxsaJ;QVqs2I~nq>~ipXXnrg!f=TBnK`5cDf%gf?WxgL#x#+L{T(lt!+E!UUjPt##9-OA&#KD zRwWJ~3?Rr!IxChEns2uY&bb}$eGNcgoP9K2p0Bg!d|;#?#uED(3LMU*c$ehrcz?4` lK+Svq3LyUdGYxF;H2_PSbz&iAGvWXM002ovPDHLkV1gKJ#vT9w literal 0 HcmV?d00001 diff --git a/classes/icons/listproperty_16.png b/classes/icons/listproperty_16.png new file mode 100644 index 0000000000000000000000000000000000000000..eccc1f17a4e03167d51aae51dcca3d6d78af76bc GIT binary patch literal 582 zcmV-M0=fN(P)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0H?71ur2KlDkp6+$&Brf#Z0D?AU4#}XIrxT^nU)M zM1<=!#il$5%zy5GrU7&BX=Yr0jw>v_u=rw(cVoP}B)AE|PYFIFggFv&L<;QbBSvSB zyBgrht|s^!1fNvn9AA}lIfcu~^MYAkkj)D&Gsl;~Hls7p0DHR$kRWV4P!gv z`?s$I5kdg(g`&0zbXpIt0Mi)^_EX}xwAkqzE=HE&AT1+RmO%s`zUDHJCMuf=}Zr(O@+R$#7 zXHpxi02U_0Bee_|9;UQ3v=X>;*YNw7<>Nt0^B$U@C^7X@{_yTSW^)}j7S$z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-=1D|BRCwBylRs!vQ5431@9`39v40Y@4hm6=VqO#r z{y`9=lxA=!Mo@6kn=Il`P{GM5YeckDp`G3&#q2>yhJrXbB!f?IYX!wXFNPOd} zbs~8_IGmjP>1;&yxdPNQrXM1Lh=6jHlRFojdYHc1?G5MH(&;~_`K)G`1 z>8*u-k-OQ%1?4701V;;?(3=@c(+OYU*m)q=^&oRB zc4S37zXHtaUPCJ9-Kz^r(F1;>5{WO^Q;Trp*$+_ILrsJ}0u+_fQ$h{)h67_qMF zZKGC30d3<5r;L3UwdDI&HWdRFb?+~%4KO`EQR(fe9|c|4My#Hp6PEf4gmoZqP6mpG z{NdGC2->RvR`)7TJ-A%n{S_Pn=Ed`WXmA;biRWK5$eT1fpXK$Z8v`CJxz}>>1CzVv zbrsJ~8)OC4tX8g8 zw?+==xmPG0EN;I&`>px?c&pta(hRp|w&X*#THPDQjvVkm@n-;yY7LYMtfR{S0000< KMNUMnLSTY8F%l5~ literal 0 HcmV?d00001 diff --git a/classes/icons/lock_16.png b/classes/icons/lock_16.png new file mode 100644 index 0000000000000000000000000000000000000000..197232ee54584d72ad2caec4de5102ae95a73a47 GIT binary patch literal 682 zcmV;b0#*HqP)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0OLJC5L12w! zK{?|>bTg|Uf(oO+T7*Ql2p6dkv}l`zMo_khpp_E+BdidlFtox(5phPH8r0;?sN?9o zcTWqGbeyn0IB+KZpVo9e(w zXUk3!TFz^FB>MAPSD&FEiOT*50znzLR#v9^p7jDG^xE!><)pPlRTmuEb8S8xaP0M; zt{d)XsME9KZ_VNUpb|%6_GW`0243LiD%;Cv?74NgA>ZR`Od2~8WssrbF#jDD4>2{^ z&rlfV#zIV+R^!z!XoU-~U-+`R(4O7qt~Zx3B74eRZX8X}S%f5z%N3 z*1SgIm}$?r60If5nN#F0&UL$ddASw~GXdYwh#ma=RUR~ck$3A7{11K&0Ew+0+!&R- Q1poj507*qoM6N<$g5stu-~a#s literal 0 HcmV?d00001 diff --git a/classes/icons/newclassfication_16.png b/classes/icons/newclassfication_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3c91d1c6bd0b35b5273db899776cf5d993f645dc GIT binary patch literal 447 zcmV;w0YLtVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-HAzH4RCwCNld(%eQ5eO4-$PK}3k_@t8hntuMC9V| zbjhuTwx<3CX$-QZr6q{=3JO|+8k!B7+M3)V3)`LEGYC#Y&oHzMB>LcTFWkd-&bjBi zCW%SPVZ!=V12fB;Sz!_dK2ZD<3yCq>v#)S=35h94hh_^N>_~e1#7O#fg>YDh8V~?$ zg5ncw4`LD{9xMPV04K1t4_#mma1C1Lu%0)w7```>8OQ;-4qO4VzzVQYhxt3W?%xCH zA1w$1!OaRFcVL zJBlJ)*Y(3NJdWpJM$*L)gCso9Yn01n0S({xRVtO5nM|fxtyUE$@R7m@n|%fOn57-> p-MIfWa37zulAecB`}g1YJ^<(fvV!Wc!XN+u002ovPDHLkV1k6auIB&% literal 0 HcmV?d00001 diff --git a/classes/icons/newcodetreenode_16.png b/classes/icons/newcodetreenode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..92353fcead153d87ed93fd5fb7fa8a4fcb3a58b9 GIT binary patch literal 3198 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 literal 0 HcmV?d00001 diff --git a/classes/icons/newlistvalue_16.png b/classes/icons/newlistvalue_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd33d01b588d5083ad5437695ac6e892dade3af GIT binary patch literal 724 zcmV;_0xSKAP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;N=ZaPRCwB?kxNLFVHAd+@1K9h=AsTw>WpA&g_9C0 zqM1bKB19~TXi*ke6a>}AT1B<6%Oa4VWgtNpiWXgnTGXaYBSfXbz)8Uw>7vcpWgK;G z|IGij7?lZ4iVnQ+9S+}f&Up_~O8!+=UKGy1RsJ%Xnwsl_KU#|F8k^g9A8`pGM6Hz4 zzbxS1)e{f(SiC6TnO%AR@_r_RE4kgHVYaTuz5ZGU(5fucu`nysQCU&ys@znO13-3` zpt`_EUtceggjOwtC{RTv^*}@V=PRc=>^Cm$Ya8{AVz)%mW$r@Fy*9!(--tIh^W~-x zVnziTwj2((Yf(R1EP#zMYBsFkOy_$nYM4V?EeJJ;HPgmyB+8w~&!3J@Tt6Q02fT10 zWn%l$40PRzOgc#F>-d?}*nU7G9*;6O`~bUcnrEIVI`10#10Nq94EO{7`H573i1{5h z{T8|?VdS%wUDd55l9G5r5_X@Ye`pwE*(xFi$Lt5s9)J3}DnPC|pYh2Oyk2nS_Oj4rN)M3d;;Y>zlX+UT?mAvZm zVe0nKczS@OsDhp-wTB%SjaZag=ngTeX$zhR!SaA@duz!HIhlO&m1J^^#CHv2xrzW#1VYF~ z0D(>Jtk_7KNd==3jA}~ioYI@VeM8r$Ap5`% literal 0 HcmV?d00001 diff --git a/classes/icons/ok_16.png b/classes/icons/ok_16.png new file mode 100644 index 0000000000000000000000000000000000000000..380ce66a06aa59801fa4811987cdf227cd157be9 GIT binary patch literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87?^52T^vI!PS2ej>k(WiacutP&l`=?FYlbS z%kr*{_+^oc6I4Al8k^K6-pvRo4@`6AU~|+6bc~fKx!lT8wv^M=B_zB`FsZ3kW#=WA z?5&pBuXWC!yLry?_I~cA9FxP&zdil_Z-rbO*Z<`_=MKg{hzN4~FYFe`kYF}d@|Tyj z&)pKGOwZY=6jOl!Gw#l{@myEmmRpUVujtI-uX3I>Tkct9*H{n zojKuhR>CPK=gXR9+tM#NS}i|y^4+#Ko(!y3X?yqaIy@88$=$km?_;Ca@2lS`-7Pj< z@@>*v?c^o1eAaz^xaIQcUW@Oq{8l(=sdfKgaJbu0IeWI%^@?i+hwnby(zQi2fBB&& zR~`4gvxxV{h;^;tO~cdF0(gP)gmTT92zOgh!$ z;Be&2f#(~iiU;v8b>>M)KH4(HD7?}(EUuywsjT2>VT#*6 z9rtyDX9eNuo8vWwAaUc(?=90bFBd!Gh%(-{z@CN-aJ}(yW?qayeaVhBG zMwu6DeWJ^@7WUjeC|CMj?9bGnj59Z~dOmyb(Gr*_RZCnWN|K9G6H8KcQ-B16k%57Q zuAzahp+$(Hg_Vh!m63_IfrXWU!Q!oVPs23i=BH$)RT9wfhh_DDpaup{S3j3^P6z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;8c9S!RCwB?l08UUQ5462_vQJ>hoYe=L6B;xAQch= z-2yEnV5ZLPAcYhsm2A4UbghF_$W$sWfesB1J7x&BgOrqx21XLkF0jpI4Dcg~Fz3nh6~s9*=WxEegXU;0=Hf zpn>KQ^z{jRK0zShVPF7)LAZPg#@bCrN8fujO$+PptL10o7`gzu|1^cqtMT~NU+Vx| zzv{o3CRy;Wm+vetF0LjL z2{M^X*|zPwQp&?>wc4)N>o|@>qtQT0DaA>P#pL=5Pz4zFypBb$IPo`MqWK?Pe?zJv zN1-WIPCx2d=R|x|<@D;WW15A91uY!<5Of^pFrUwN#pL?KQ#Cm&ve|4G_;wZ}rl+S@ zqS0u~Ez}yu$e>?-1+Xj&(=-#QRO%0N_}v%_2IMD~w=4@i7K`0@D>64XD9~w8gb*7KhH153ffdlADPiNq?{UvzblbKAFU{xl_xF=b zCOJ4bV0(L;TCGN@RC+o$H^+I5Xt&#gmSqhsEiJ{Trly`4hGCedd3%3<->y_DG@H%O zolfUW=GZ@(nVGq@ySv*0-W7{Qd72ZaGD@jqIXgS6pRAq7{2Ty^pg5IJf3FGv0000< KMNUMnLSTZI3?WYd literal 0 HcmV?d00001 diff --git a/classes/icons/person_16.png b/classes/icons/person_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fa412c80f78072826c82e6fa9ae54a1dff734089 GIT binary patch literal 729 zcmV;~0w(>5P)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0e#Tbc zsCpTBS;du;2f)!BSj!1or{E&naO%V%9P6S>Ex%x>rG#a-A~~@HLMQ%N0*Fmp&@{bC zVgrFvFz*?Pp?=P;0S4Ld%2EmGm5ue51Q~vne|PQh`S7{XDH!Ay0bn7O`k8*cASYT9 z0KmmhmkT#vR#Lwf*HBeWXnzVw&(C2p(ZL=)J$WP=jncakbVcr5^qiI^R1A9@KWtMYu1Z6=(jkWD_`)jNXMs8g&%2jRo9hmSvR7Wl2#KqvbXJPyHPL`Oo+yFtkpQ00000 LNkvXXu0mjfNFXiJ literal 0 HcmV?d00001 diff --git a/classes/icons/remove_16.png b/classes/icons/remove_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff8845379914bb2b580609f62fd8b701fdf6d4b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiI;l}H)G9s&he1&9>AYTTC>?8(;5;F#d&np=idgd`O6ad+GfF|lI0hQEzVtM!! zs5Zva#WAGfR?@Hk|LvJoXLL3?8DudqGjlToL9$J=?MkWt`Y9G1<_(RF4;dt<884Fh z@VAx2bC;y*+W-Im*H8HfBm)@T>V;xIupMo<*y3Whz(Rl#Xz>64%nZrfJ<4whCz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;pGibPRCwB?lTS!f0RYCo_s?xUH}}W2`3HUZCkZ55 zRG1O0I^-oV$V-=YjY7ghL=bdIqb@a2=nzCDC=?+cG9i$#ayi{=8M--jo4V zd*dmql^+O}LMF5@t0h4Ej@ZVUzd%m-nUKrYZMO$@OQ7W{E5Sw-FtR$7?_)sA6`*B; z^9gHQ<9<~ufJeJlsH?7q(IA(Aj>opqw>?&pA~8Q7dDu7L82BCFA9p&DLM=2(HIxjA#b^%RStr6HccEk` zu1Ljj46y~1iM7^OnK@5jC6EVn+wFnQt}di2G^jL`BNUgBOyuC6bYNW+ajCf;M-G*N zQLC`JC_ozwp9B!tQDHf>?APleoKuVZ)j1Gl*yBeq}fxJ=P#B`D%>Sy?&4 z;V^>1AR2XTPisnRQCvqscTs`W)dXnwmeG`4dSbCyPPkky9|-`$s5zO=NQ=bYmcHc86z z0QjMy!T7bF&oYd^qMFRbpbaEKb5X1;EY3tSlm7e{{-(Br&l<$d%?2@*LMoL)CX+!t nHyc{W^-W2V6x|c>FZwwEEB72CI_M0000000NkvXXu0mjf4U1eR literal 0 HcmV?d00001 diff --git a/classes/icons/seq_16.png b/classes/icons/seq_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fad4c83fd11d2eed61b68873402386e712ae004c GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hT5^K@|xskn7#(nika1d$f|^zjtpc)w{w&tDVI-rjjJYD@<);T3K0RY4gd;tIe literal 0 HcmV?d00001 diff --git a/classes/icons/tree_16.png b/classes/icons/tree_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6d82492bc24512e3b6301d28bb529642b7c3f626 GIT binary patch literal 1016 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(}6TtKSRv1wTBrPnE5?j978Nlmrn4`h)HE=-T#08`JKkwKc6TO zQumy_<=Uhrx=m9ZvXk$ukS=eE6$xDB8c?FRt3dT=E9*zWm<;U|9o(X4oE*jVv|cUR zJ#EXgi)}OfmR0%~&pdhN&dWR1&;Q@Ou}I+jD;+-h=Q4~3svBIp_-t3MF~2nV)SNRG z{|b4Zu6w7(lbB+%Yn$9vso87S-rrrm$bZ6`k3t-FY%I;Y|K5=nc6OJS*L|bUlg@5r zdveQ*tk!E%!4euvf4+W|x^KtF;+mz!*<4HSy9OA}IHE1aCBOH_h0Dup&8N!C+su(T z^^NL)aw&cuW{MT=+a%o=7nUZ78ZrR*F4j*}Xu=Zx7F#mf?9kJ|GpWBOk zPn6wwusYk`z{M66#8msnR-m`Ygtzwm%=dUi6 z{C9?(<*ivOv+FnCSjDv*Zr+cfLs4=igZe2B;}Ow(V>`FT65 z9`Cl5Y^5oe9!(0rDs4OA?DLi>lUjFH&T^c5duo@U`$zqz_l=?Nw#WWHRPg`a$$K$! z>XR4kiw(a%UHm$i_ra}6i@x7@<#@ZO_I%&s8BuH9cE-eAjj~tX!EmKfWpRcdhjY)5 zjXp9ftNFidd$Ruc_0Ph$wn(M($IjpOYg2m6b;~xY^OtX5rxtxOEZRAz z;;r|SbxNA2{l0rgMoBA*OR4NYAur;fgBzxV`ZGAx~KF6fjHxhx=x^R~dXU)$E1=%1gz zb*||0)l+5{^fV=}+*;=HeEv742l*-m7INat9vlbe6TPaCh?3-@)Wnih-4r0fz)*3^ z*vMeR1=9^zOpSO9jkXyXY&9~vWVT_0kpTmP;}=$utQ&LHU^;X2Q!>*kvFqGqWD3*+ Y*LjCkFy~*#J)lkoPgg&ebxsLQ0MK8{bpQYW literal 0 HcmV?d00001 diff --git a/classes/icons/treenode_16.png b/classes/icons/treenode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..822f6d0f73bde8d8bcc56c27701d0312e8997dd3 GIT binary patch literal 546 zcmV+-0^R+IP)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0tVHn51@7bB99lw$bMeSbJoHbW8 z;g;meN-mTlSqiP>LN4TTO8MDG#plxG>i*_zJ4X{-FCTLxcKN9i*P+o02Kh@ISoXVqsn&q45CD>wyUme zpEG%6y6a#NNrLL5LD%q%jAMAWBwsE~C8W zz>I&1x7;VPL9E5MS~P%&FuS;EZR|SU&4DzZj28s(7U>`y4wn%T>~_1*)ae}M#mfhX z5;5cHbwNP2HFz%CCElOkxY*uH;%R3; k6biYE`b_^R4kgyt0G>8pH)jrTBLDyZ07*qoM6N<$g60$9Z2$lO literal 0 HcmV?d00001 diff --git a/classes/icons/unlock_16.png b/classes/icons/unlock_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf2acc3d9133092b3e496630e35b6f35e3f49dd GIT binary patch literal 594 zcmV-Y0z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-$Vo&&RCwBA{Qv(y10{e3#yF72$j`vQV8Fn@z~C_H z|3P96VEq68Kf{4M#&|(RfeHL_`~rV|{9*X`6$K{z z{qyg^gM$wPE}mwrXXWJ*;}YeXK$H_MOm&aAzefK5{#*wC|Ns9p{Qv)-VPiJmiu-Hi z|HJtBFcUUI*%*I*MhX}FVQ_Urt5*{?)d};1_l8YH{}8z2_A;0XP$j{ zeeHFF!=(Qc@do0SHqQ_-<}=fUWY|SmI9M2-o_==V;~%b{T9yLt0`dY3H@Dup@cr%g z0&KCv2ulZ@Jv}`C|NrOt^5x5ymd3^}uI}z^p^~S9^i==OwMaMOdT{Uo!?Ux`7ySD2 ztH5E>|BrAJ@CDHRTn7K=yVd`n?iT!dezNG-&zFt=UzslYet#}QKHflNU|?Wyb$4gu z6ylt~z`(%p<?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hUm^K@|xskrrK(%!BX2Z5H=(X9WQBn=IPzA&oYUq0VG(v?Lr(M8}&ika2TFAlN+h&PtkDB;KOk@4M@3Cf%zQF&NGs~0Dtj(0#lH0xR^@Z=YZHWzrY>zDtMRixs l+qf>fp66fxr_uw-3{3VpAuqI-Oac0g!PC{xWt~$(69E5ef=~be literal 0 HcmV?d00001 diff --git a/jxl.jar b/jxl.jar new file mode 100644 index 0000000000000000000000000000000000000000..4a1fc64fc0f198b190513226f41db7f1d663aebe GIT binary patch literal 725735 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
(rK!lb{ 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

s&D7c>NNu@oYu96I0A!5 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�A5I82rGePK$Eg3HB^I&G*pU;7MY}= z#5k3dpKhOxdXI%6RvT*{hib}5mrNuwthR7dk}OkGy05Z9dNzp6*9;54tnf-s~qpovr$ zFS3pd7X?;SyHsRcn^d@ORsGDqIJk~96BDbky^(lw^pt+&fo-z*Pi8=Ke4o}YxR^u0 zL*7x*l4vQhG?KMxkWyykcZrOxnT6Pd5N5*ixx2lfp{EBuOe3jE6DbkYo$KI3ZIV%E zX>0VvqhUpF6B_Gnvf01lI1;KEEgZ{#k&P@2*XU~~k~r~%aud$CXp@{;w(HRFy*k@H zoWpp3SpCh42|?amfO}P@(H)~P4{SNLK+cig2$BwM=IL|+)}F@seh#~+s$7GtiK*#L z!6I3fGIXoc^ZHA1F-GOW0EfV`1B2S{#zd#NG*JsQQg&g5w2#U2 z^)WT`MhC*KhD>IGw4Xp#e!5^BmW!e1@GNZ(X zCqhu_2Df-vr;H%gbx{5hn+tnmoXS)`ARrq4S}$^L&)k$4?s6-b6mFE(pMhoiTT#(5 z+^WJLs^dbmLdrG#+zi_~?pR+iJBK;&pwUcQxJopAUBhC3&_lEE`64lld!g@_3eL>) zs{rQ4vW>XQoSZ$6k4?>u8*UK84S5s%`Gy!0Ub~|iZ*5I^tFgPZE31!kjNCAuilLWh3_)6Ub&uXNo(?n9LmSnkvD6PCL)JE zf`2#aEjs7*=IoC)Gmh^^B3`?C&%RuZ&OS5e8J4?bWMw)&Y4n)4A^zw#OZI_+%IG$; z$sO55y1(^y*?1;U>>x(VEA6IqHcLtx%D zt7FLO1Gm7Q#7nZA>VmG%rRDIS&|VWVc5K($$WhY;eHu&%&QghH&wwf?Mb~JoDLY$v zm%c*02K5OlDQy#F6D&{RQIlppG+xr0raHLvbx+Cyu9(g~*qh&zgax*0G6d*m!y0cS ztrtUSKP2dXwMTECKv5BOh0@DO*?U(IM<^xM_oI7P4}*IS&N8{S49M<&2ov%DFf5<;vueqecafc^EYrjhVH&okNBcC-E$lNzdfLw-;ox#+BC}Jc8vr70x$c zAh{OB%t_R05_JN?%p6IZO$LxZ)m$=@lL9|=*1G=2n~=?4Mkr7TC1(c<6nW*Aj4r*# z2=!-TFv^|Z;jt_u|KY6v+N&!i4K`~m57psklzN|Xj8&J6oJmxXrjNrc8%|OZGQX2w zyFG}?TNcYKRn)z>)ij8-K@S>@s@=HI#fE-Ao;|n%BG8guInEYj8?w*IpDFmtCkBw& z$p$a0UQ|H}ohDO0-j=K7^HrNKsH))GiJDJ|uN64B#;z&Gt6Cxj*-PAUw}Nz0SV}MQ z96AAq&O6E8;m$r~SEXbgxJS$O)FoF){$g$$CaqX zth+LO4lr@BHABCdr~GLF@gCSG%Zu?gr)s-S%vG&6PGZv#!dvt(tL5bzPta8-08zhMc09aP4F_DQ=sv&5!<$5EBf%{CUbJ4TBsv|IEqBN$2p-WH$wFV|`dl zw{#G0*0AdOfq4V!??eLaqd67k>=29OLCZ4G@iR)kkGw4pRQ-`!;{pB7&vz<WQU2_l z!P9?LtOXUSXXJxOzvv##bpjRde~FgZz17Co4u_lZx_)=a9{C%NrrC{xHQs7l=}#g(NiR^D_uf@hUh-EJ=^{0d+hWqNqERcC zZsWV5yZ56TyzVwuBwhZu+T`Swv$dn73Z%Pt$c^m~G27n#$PSvJ`c)N{8Fj}4dG^ZF z*pB?1QFVy|7bFKp4AD8j8kGMw#sad|g=HbK4zV^1_I>$EhJ;ftq`4C=oQs`cza2j<3V-pPpfowD ze}P@z6amb?p&j+;K<%K-b26RaWrq}joGK7Yew{6qxnV=rIbh55pXw27y1Q{s0dY+g zexas2qfZsn^Mp_sK`*^xq-P9q{w3M2uV5x~?epbfh|R=%!Gu-#gU8T9B_3Rw7YwV| z4~LcK0Ebl;&2E&)*&BD|5G?CV02VAvjb46)dF$7Mxi~hQ*{V&3Its98MTy zQBGJ=J`bB#T#Vz;maab{#X26lI%XXziiWkvllh`lOGsM2fY{C1ANz+&Pb>`@8(HBn zIJ2xTSV(Ch7FyX{EGgYmtTEkm#Ivy{Hpn85(6nqYct9zNu(5n9wxyiiC``jbEI`9# z#9`5F1bWd(tX{)>WVL)SRwap{P`Z-o0C&-5#KO6X@VM+Au9dHn@j$>iju4|l61G)I z+hjz;xs_10lp3y8Lfd+T^-M#sN^u#-A)swGHe-QP&_<;h)1jhmGIo8@L-0xt2X?je zisgW=aWuAl(M0e{UK4h;ya~&pdd+48-Z_WxxdH;#UG9?Qfbg+~Fs4)#ZnX%X`M|z$ zJ(j1uKUSu3Io9h8O7N+I9L`+=kKw@lF_Lh){210<=d&*sV<95AqtM%YWc&0tScJs4N18tbm@t&-5TlpXFh%VRvYdGQ*~UG%dzmiLD_b653NPv|3mjdj=cRzc{a zNPu~l_ts8GQ09YqSNk>)E4#=G_bTOOGlFrZ8~ma9IUGyB=mYmE;blF-e&!SGS<%IO z0B{Z!zeYgl0<&I-=HpcA(JKvPloRHqaXd9G#r9`FIGX2`)CV@F4V2VF+5j@`&8oq? z3c+;ZgX2bMyun`RZAT1|&BgEXBQ*;tN`->sz)jxeP>U`RAb!&W3(kX@_BXK#OlrZN z8XC_7vkg|+fQ9meT)Tl%3!?A+^Fr3J|6YU58{&8i;E)yL&^77@+jCPRhTajd=hPzk zu&XT%loX=XqEhKI-utCST@^e&cxe~30L>0Uw^FWZ9-yOy9(g42JFzS zJJyW4AYL_nLb0v?4F*{0_M^AMHLWr0Wq4t3SWbsrK9$w3E%j7{oyvV z4as_HyovR~}G6XcD2HO9}g+^Wsw z;^fWuIb0fpGN8;3h(pX!x4>Z6Sx$)%E|^^(wWH{G{IY44hX6N5N5i!or%Zr)2syny z@qiAI*LO3_8@DO~iHge({c(1m`84ZOgUV`dluxtS7Ls|``8WF7y=%b=kh+kSQlb?^ zi5J9*HFK~H(C|!F=iI}G#auo8Rsazt&Kz|G@v3)&s%ySsI=ZLh{9^0QKrf)Ais3{;K`PNR#4j9nQOT@GZ^w31d*2sAU~O+J!1v z3|8^*1c~tBMy8XTeF^7W_}RFGLLBudt|)|wv!0K(vO&|m_#awQ^1)>5>A)&hc40?_ zi`6F@+!`{$?C}ZyUAT)=3H`ZsaibX)Q<*V8++)8%Ba!$tTyx@HorzI<1+G=m36)d} zYA558qY)6zoyLCT^sKfP_L6|r)kxU6QJKp12tjD=roM)Y2CHRs%(xulvZOXQXiJ1i zd!qxFotpCTIXls1z-m<_titRV7S?K28*Q$~rFoKUD!l2MrM*E+uXB(}Q&JoNp#^ek z6MQN%EC`)8W09-(e6?(~YA~qG%g9!Ac_5Dq(8NVm-VMA}5cTobdaYXk+>@{Ib^A2@ z19PaigaP<(NZAd28&!8<`3H3y-?u2n!Lt(*zCYOuFkK+QuEdFd#tG_H802$49KJBb zML((=QkESeX-9zh4RCQkZ!LkRH1kjShUFq=^TK`Y^)fKZM(6Z6{E3jH@0otcG6(Qwv)ADv_aDt zC;ROE|7Y+0%*EWy)yy;BeDjhAVRcc=f;?_Ofd{*Nu|n#^s2P=d&*e6UHzN6pC?|+y ze&8i&!*Kq54^0uX(z8oBB-pVHHd$21ie4Uv@wpM^q)wI=@2 z`y{+SR0X%7Tn*n{M6rny;glB`Ceknr&%#T)FShkps8HjE56x7@5Oxn^l2zQBYYfdP z%8o%FCVKe0K(ap_A=Y2{m>*cGG^&AsC1(i!0}Op7r4#wf=W0uFI{Tn@C#F`tCvSL> zm3T)ovY9dqQ;ikUj-|+DvAt_mLFp! zLV{-~ATO*PDCLfbr1qcYI`YJ$-Xw07EZ@s#XYPFRJ&N6`l-qek1m30f#QQ6_h&n*` z)>W7|YH;fZHb^#Ie)@73PLXQ{BKGwTPb@rO^?#`dW!{lfQCch>7*TEWLB8{5= z{^7r%Uaw0&7OL}mCBnXa?X}CGokE!jHc|ILUhf@g`Tc(hUTBs!$iIIy&BDTe`h@Xc zEW!T;4#m_o{u48d)sS;k1LD3Z8c=t3`jsN1iR+-VDiF{W0Mu&M7DP*x3tCFmmo^Vt zdhNU&Iyye@V!>*R&A7<)!eQT-Y4YvuTroQjBm3kY$vEsK z*0?FbHGI18>`6Y_AXOYcBTk83nT*d+)mj+CHa0dbzod+XzIHh|I~Ns0BF!Y8$eJoP zD(U3idkiEhAJGNn;p znbIfz3D^^(sh%@b{Z$EMlW~}#cFni*L#tb0H!dbm9xl2_iYyTZ-~eF+IP41$xqopY zquUwq0$f6ZqV64aK+g;Jun!6Qy)_6Li<)eMpg#Xu|4{G7BRc=s`7fIFg_}V`gp0FDN7ma<{up% zUJq@O*5PGWy#`XJb$4;@ji(>KxO!`$-Rs7^doYFTCO`5^tj15nen z>iD*H=5>?o4v@e;q9#Wbx?XCkCMPfyNcv2fJf^FIgD`J}-^OAJ)+>?O*)kcI_YU&k zmtkj2yZd$8!dStWGgw50nx=GsCeq1{VXbL|*^;tFi7fDaS0RA}AJKJ^YbY@M)2M)+ za-=qi_NVAKI8J=WgT0(^>ODSBqCeoH6DR@Jd$%iag3srjjM4Rp;2v7oUCNgYtOH&e zR);w^^kvdZ-~*ns^05=;L1$bP7+M{s${AWE77GXqCGK1?UC4AWPC8~RWKoTwUNV9o zCN~z=BXUT$!iV-Z)R((&B*N7IaKqbf2;vL#S_%;e)tC0JacO-D_Fw1;u_IM-b3r*r zwDc7T7$^J2c(WNao|CWN_bMm!mLod3&a2p>&GskRbjVD7bZghxWGq+A4+UAX!qTlK zX?f0OHj+_&gndog6*l!!WvKw*W+^71cZ|6i;xF-9+O=r1zQ{e@tvQ>LQa&Tkp0CN&spSYAQP#z}VK7^rFoyxwjB zQi+3>A^9VRyir?lp^&K}_~|S3pi6X+hG*nk78ECZezUa^`!${nWuuraV<9d@wv3 zE*fiOOkl;Ake`$yd0-+aFlBOPw&@Qx_8ED&7E6+*6M%N!e0J)X~CRc z)N>^$V89A_w*{j6&=z*g;VU)d!TC}h#;$QO*sq-l_CnrmhCuro4xw_qDAzqEMv>@( ze>LO#lZ^(nLnL0pOAHpS)DY`mGQ;w9uk$^%hXTg0`#E1k9*$uvN~ULa+kzdoegCtexXUV`vk9Xa1@#?4ILAap;osMP!JCv!@=Sq~UoT==-7# z3fGt#lDcs+0F7!aO=jXaiGU1iI*4%&Cn-~ZNPJepU@FLKsCCX4X1L!Nh zQ!YnQ`4%LZgRGk>Ok0f^0ad2W#=V5mHI^fCFW^Jq|5 zp~A)xHv=LLEaAeRgh0xEXc=yAFPDvG`Pq?5<|v@|GcQ4+p$~l!I4JpooyHj{VQ=fC zr;Ys^mIlAG5FSnt?-aS~0_Bl#Thlw-b{>flYRZV#JfuqFZ z%{CqgnF&h4-QQ<>@ZQFeo?S=wRHJC?X2e*Z{?uCTVRbcOa)R;*`Rk&xoqiH`is5ED zM*w+K+!vseG>$guBj$3oVpt$bg=vL$9_IYIxryW9F0e^Aa%K+MNu`1@yvA+*|Ak`lzugOU(#;t*vKyJ>7Ypidvu;o zJ-`H+;JY}Q(JGPJ!JEzWZA57+=a@A^n-W}b#%>7Jk3>c)*=fC7GGbdF(M7pR<2Bd% zO)Q9wD*51TH=nZY)TUb}O~mn>VV^@`B11MepwR-GY@a#`XEV%GNC_il#Nk4yD!N7j z&q5$)rvwV(lwm+^ms&fS`SIOhNsM$ww}lk^_tM}n8vjofw@#cP2bciAW}nvcK{7QW(7I%PllmVmO~=C zQ|nd<^7dNs0+1_9hIp_?GEUr(XHQYb@Yr2W@m@p8gJ(>4shxe?g9)~?^tZiVy&>wj zn%b!~!SWn~Xspk{Yy#M*e9uf~U~@Y&HROCmi`94eS+Fs03d-Y#3a*fKrPObrH~;jf z@7+U8c?xA@%Py|#1UW_SZ3q(JWQ@yY2KTJ!nqjl8OfYzs#_HHT$Rj3|mOB-Jmz3&Z zg>v0WfJbJ%fyBp_Bis5h4>`mSB)K}*O4ygD*tgsAl|Y}m{<102e{+rq3A!X1bMktD z@Q#gOy3~uSs@TifPqr4>=_)Xd(RtKQUu9>c<>$`IHtX~@Xnb&Wpq+nL@?XnOps7~S z#pVzpmkv!iwP~4;ZzD@~0?4WNU~Hjq)HqRV<%L>us{I+GPkH5qjMs2aMxq~-3?C3p zjk#7uO|*`!MAgEWCm)7JoXHIB6Y4AJ6}z0Asu3b}Gry)m~^>q>T=NFz^n2pv`PJI7^* zG})>((<`;L%>$(B3`n`Nfc6w^Yy|r{Lv9pGsf{YhTP_1?me4lUMd!&IH}ieUqOx$J2cX znUQ9AkdgE)oVTv}s~A^!b@no4Qq44BwQRd2n(f(~$*;HACU;NmTwv;-Y@b#hDDx=R zdas(bZd{cPZ`L=0WrN^|3 zaGTxb*YtMWK+Vn7A4Ncbo=92y3n%u>Xht#5S5-=+@`Y(L8AWhD>5umaFwWeJm=Rru zB-=!NbGmYJ?9oJvh8v3`3olvzV#?0cfjE{yp@S`c;1PAi63j*EVn>>t+gUcAs<56Z zV$ai_na5p3IkDS!q-k>(PUa+NVyPqJkN5GAN_ZJ%5GCu0dry6D&ffA@91^3Wi)HTj zj~aPLK7&d{+oBdK3GQl-E)seB(1nt%un(=c%b=9nDtd%^S8^Tf+?B@fxn7c7+mEDM zB2DsxYuTitbC2<3v<#WWa&g!a+?(*$z41H0fz+su{J$8}1*C;Pn5g`K>OzAd9dtk_ zdhu6V@rmhA?DR0&n8M|5ez^d*;}gpiEe981!kioUW8>}t)<%_dlRoDUmwUEMnA5ke zjc(m=KT}|pAw?*Hnd9M(XSydXxSAZbh&87ir~8n$wg8N`+7FJw(Yk?#UfLY9etAX^RiLe~$7vpHgCDojz6xSG|R==U? zGuOgRlAjz)icnFzcI>Alqgs*2>piQ0=zIy&L<8tpHW9N-Xbw0w@6seE7!q{;Et*5?slQKfIVtwUnk)L`h+|QsIAUl|@LKayCjoLAHH`3A9N%=J>1_9In-X_* zGOR%;wi5hpPS#s9Ube8*=>$#$?hwTXC$!I7$VB%nqol5TLasN|5@@K-Nq%tMPAO`3 z!sY8yUjLjF8_RiWg@&yD@hVmbA7K46X*)X3p*GwneB`69^SH9|jhKa)_{M!jNg!%Z z{E}bpyd}cf5pC_1aOTLp{nN)1uTR>>DWVNB+4AK+kpxv4%@1otlO{0SQaEm*mq*fY zP_q)pusHmhMlfjKl`!6E$3G`;nA;MK`V=T2ce%&m7vkXL?624e?v|yUp;5c)Vf(^N z)A|s|h9j(sy-z)X&{I+~I-7zmP;EQJoSOU4+C)%Kqta6~e4Vur+&uBQr*12dJ0;jt ztrPY*Wyn*`3#lKN_iJ#DE; zOb-4vYK*`Xf&U_*7aeVk!W8LE))bu6&aoH&%Vj zuph6>?3Eplr;@oZN;{hyF4G7K%RgL`fYH3YgYA;WbmWV_F}?XCo=Ocp z{J6TK{+`r-jBVRRh)k`S&G!&5G*O%~8v89SouiI3pUD20oiV6|Us0A3A19@!+%u&Q zGB@Aznl=u-dj9l6iQ;)SCP^Rc1}QwimSJs?lU-!{5kiNH!xY z9xxAY#`zYhw4kU&M}G}h&sZj6h9@OPvia=RcCA*?)QM2llirblQ~6*a`>sx?^!9mQ z@1?nmE=te+AI9ZcW_tYl0YA(9sVfh{?2tfTO;uNyx9THwO10;Ozywo)ENI{C*vMM> z8W}b_0E#*}H|U0iBr=j{@4QLF0fKMvdrRQwN?G;Hk29If$fVd`*!G|6yzzD6PYr(J zwI3R7<;6RVz6V~90NH1MY|E=WbGTzwx4(b{5kx2Wu|gBm8G+%$Y~WGW-rZfhyXTx9=6OMbN=rEbVJ zE4q^d^&ba`t|h6jtDvh+h^`gupMw`KZbr~+j#z#XAm>>Fg42TEU&!g1yaE>7_=#GX zIr8`Z2J6k(;QM(+V%q}3hGexBY%%|-7upxk-%RM5jsqd`6ZNif#-N8IN!| z&8d!LO%S6mn$n((dk?=AT^_`aR+2$J%>8pS5J^MB;Fmd|oXL?TSIWkE56;)SBRNfV zlyEVz{D1C}Z8ZWQ*86tCL717Y&|;Dfy*22oY_V43*Ai?vMlMP%IB8J4!W|5D(sn~P zZNW;_elT;NYuO?m$!7Rd6{?Y>Ibr_O9tn6C91U{e<~Sr*pO&B5@%htv{4(>H>vKt> zGZ5v_FR%G!$mlL5>tWzce99D&(+Utv#tjBwK6Q z-qK+NS~P1{cel{fwFK$giLj?bN?4~#3)cvP1EvKizQV2zs3XP@&m~D~$$=?-a`_&bNY}HQ-I%Z36eh(FlV^;T#+@$Lp#2+OB z7zS6^3jLxGn`9?jSO+AMLoN5Vu(>W(&-TRvVJf-vSI3clD-kJ_+3-|a72SM-0qJPd zqYXN8xS`D}$KYPZzUBYjdYkfY|5w`PCeyLJm^PU%lEM=!OURbSwCygLdT*B-%H=+?V7kVe;<&f;nHzl;sED@m=ek^KMOs zGwoA$Pdm+~*NR(H+AZ5hFm4f9TS5b8^;=E+m_2o?Ef;8CZ7k5D#6$OnK8XJV zZw+3&0!w7Qzzbt72wkj0o%J(jnjYw@hMhyEDsNA5$rb|6iG<3Rd4 zG_Zq!Px5V%07awVC9dpi{8zFbsMa8p#P86f)j=H7k;)XexL~^$2655EU)VaBv56xH z8+U7omhVhs#J^t-kV{WIL()RtadILa=y|k7j%UC2eDQFK&&!6%A)V89P4Z1vJ&~ek znmhYuAPOajJMu}=5ii{l`O+v$5--LGUBc&$u2C&*A@VvfI=P zmD`b|+4Cpw4Qv-xmZj1sef1H^8#lcAJ)rkzocY*hPh`^DdH%K7Rdfm;Se0QoHPmfO z!IM(Id#iWert3-3eE|qDI_foyk;P60i32*Rv+HLEHTN$Z#9wv`TV4n+9rX@y4^r@b zmFC7-hgqlIB$M{_;}ZMl8o&JeNx9!qqIy%%5c7>aW??P7G2qkxoJwjYzZ&O1d=C+@ z|IhdE-=>ndvyq3Dy@iysgWG?JqEmsonjikRH^q#D5GO38f;bP|YLQ`@UK)7N1dxM5 z>-%ukZweO-n6S)Ky{NZ@zFXAWPCq!C)Yh)2gJ9t**Zi+gq={|X^gc6Y`Mv!g$L!

vDnY15xJbui&SMUA-De%miNf?G1F3Z;ryCnYK}j_d zAbOTTIQoE%5tMOeamPrJtdos{PGR$|{;##U+D@;rN$2(lH|HZtk|WOSAe!4EN7mcW z#?E$Y0!2sg!Cwwkc9s%Dr;!Wg(12N{kec@%~%#f)Jtk6`| zODbd!R^JiB32pEhYHZeiPB&H#1Wr1FafR@_QBP>nRwOblmr#-?=XPn?8DR+oR8I+Y zndK_^f0Dgp(6WzA$?=59F`e+Cf_8&>@6B3IzP!jGH z`Jx`e$FFQZ@8ZtR9TUEJI-B!LHEm51)EWJ>cX%w8EO!?8kXB^9AcfZ1e(PvO=6WIC zaHP`^TV<9mNf|_eRJVt>Cyvqa?^Sm-#hP*n-QsjL!waeeXC3kd#0L`PXf1aV?}nu* zoQ>lvo?YWBa!SNw_4XHWSHHxi)Gf_vioH90Eg_*iiv^n$wnN}F^Kw*Xh`C(>Qq z5yW6`gyg{*_k4R5V+7@rA^w^D)_V#9O{~^Eo0tow?JcX%iAo}&_e~B^(SkWDp(mQe zpa5Z$3B3^f1(cP^sfpXe^o{zuPCV%5E9sz~npaEEA>*BbUBarRr2D-*46c!IdxWJ_ zDeliVv9-$up7;l*KnRw#r1L+l5t3#`u5Qj|F8_(Tr)ubWU;;m;fIW4l zyf-QboN9ucEG=*jik2*h@v9tS3e;iIk@JRP_EdEm$lY~Ld!`eRvTW;hc{=I9M=<*=Ea;(gw1zHh&OoEd-dJswf`M1NfyRJwL986V`g zb~*AnE*K%lGiYB1nox;0;v1aDRbVTIno&v}E{Aq(dV?twH-#jpXd%tUtGukTU& z2|?OyVmd&^nxgI(X_$HolfEdDul_&<-B>dS$DXn0~JO{Z7rzcC{kG*#g*(fWliSknb?V@16dI#ehQ}Zw|!|(+emQ= zl6ovD?KWK}V^qatz4RCg38hur5fT{PqZh>{-l5gF?(W72v@TND_PZ9%o618I?L zOEY6Fteczk3n9&)y9QmYTvgEO0VUOjaLLL(8@ObfZ^ovNk})EgwvOf{+`I&M&Uv~` zD}q+jEjQ~$ViH0J$;YG+i5wLLxhTi>yzw$s$qlS)4MFqaNU!t64C&0Q!sOdkz5K)ISx5z2$@n6Xcl9|x~maC*DC(0$OD-7 z8G!4()pp23Io!SeB|^-beF-IE<20b%OH<_t$YJf$ts7(s3y`DcPHpC}!mF5HM<+lEs2*e|#b7 zL%>Yb8T{oSO47=NkkOG++>AlA!HBF<_m+Zmprba6p0HWH%cBN`%t8(PN;*cri*#9r zq#p)eT{Nke<)PSbjxd^9df|!kZ0DF1Ot!}wx{_S4Ag_|*#4#$j%4VoOHR-@})sH4PBBLfz~zRdxPS_z6&4DXzet{)M~ofZm4CHO_$^q;F_>FMll72Ju_w{o@e z^ufb+ygD~j{aS-#5tUhdS*+0GQ%no$vHcx2o3yjTkLvn^^1l_wwM9pv7z+F49*g(m z-Tee@wP4oXg1(rU>b2T_t+~ct8llrgxs!7Q^72W7FSK`fpftx=5q2;gV}22Rq*3Vm zYl@-d(LeMKTuz9Q({-C8(EeQCYpXvOo4(AkhDL9|g04re7fubd|sYf6-i zH=@^>kDOkMWIQR;Cj5QdIv;4V7MHvh*nCn{?196C`9yRF(R}K9M1FQ6fW;jWITD3c zYfJ?ieW{j6nHGy-6c=tpv!#7nleN@RWMC@Fft1Wg0F-I7!l<@TNwk^3pPzhhR4)j$ zB*;TOUxQ#Hxv4dT(HEB;)$T|tgIceYLxj=DgmI48`E?rN&UC|sE8G4#swy%Q7d{cH zihHJ1g>Y_&x3bwRMR8$d6WWz!{f0{(qV*iDkU)v6C5(4zaj_-m+!0}vf|a5sD8||u zw;Y&h%r${UFI{U#|M9-}vg;T(??J*0M%F6eV?>uYRjnNTwh}{Uwx(c0aQA}vKX*TY zaT5QhkG(JIgJJ!jv);kk&dt{7|C{xi@V^9^db|3;!wmN(tIwI0Ca60cAe|Q&YA_ zA@GY7Wu5A`Yxl@%0G5&X0RNRD)oKSzm`CG<4%O=QjW^Y$I~b;?9PSeIoY9j%4x6zx zb`Xp~lJw93#Vx6IO)f7~wMXSE57|dpVT;Os^hZ1=bb(;jT+190nn<qA z*jNlQ^^lI3?$Zt*{#-HqPz(qB8d>4bUkGyCF27Z`8yYf}#E z5e)AJP7Ib{teY3#bAfz=R2QjRRlaE%F=-7AN(U<7gwiU>+dq_Aq+iB|z%kc2g_5e2A} z)%~OqsofknodU)?@>`v?a;0RiSDb$KEa4*%dVcb;)RYuD-mXYf;ckFPc9z5oJ-tN;O{!Wn*&dt2#hCmiT$ zOYPs+_55F6VgG$fZRP7iyy?be6_a|q+0*Cv)Wri`D zT?tmFyX!^Ybuh%D8&45sQM-10S-AUT!HY{A>Pb0nzu%Z0KUqB3-bi5syIt2q`$CplJ#mwwRu9bL!o_;Bp*hCu0kZGz^X z_!$(`MH}%XRj`tdQ}Ux5I`r^v29M{?z9wI^a8>9_=c-+P(BgT9$ovj1&5o#UaZM6| zsv{B3Gne`}mU{i-Z%6)e6@~=S$jwC2$}4R6dSe?`V5gQUm7`vb2YNrG@zIv(s4V}Fi{vlLy1@0(xr^F%8nR9fNQ%)?#wkOXLdycAYXb_7ly`R+P!q=SByHrqL*c`G%Th5%RsVgaGq~IKQ8YX4E1C$q#FDP9DG>87tndT3(w*Ec^n}R%~ng!4GDjoK3c*Yylm-GYxiQQkoWH{SMI!rNW1MW$I`M zW_h4NpuUU#ON$}=YSAHYTjaTe1RV=;jaRc<#S3Zx+r~Fij<;V5qi3B z(atH*yO1Cybw&^JqbOx6-s(xsPRL^_m4`b&{lrwh^*1@pf5Pi0R-Wi71LY3N zSif%va6U*Sr7wj`P?AD^PVmXW z^Zm;x19UqBR8s%XXo|XwQensFhIZ*W3%wlUX0HL_vsyTcRra7#!Yu0_Oa5=7JcZ*5?V@% zxvmC|)RYzFB}I3OWEpphHuh!(Rpsxx-@l_>iFV5NieE!Xchi2Q_Y_kRei(P~PZl0L zo`2%EXkSN`@jO_kKJH0(*?E4R8GnBFJBRvdb7euaI-tQ?XsjxQD?vn>0(n3p1k|Ab z4p}t5K=G9g1v3|XmyiHC5!E)hwfvCP%fQaT%bkO7+#<)lk2<91>x+60*?Z;`KpRcJ z;zTyYd6q#gAATzc3m<-K2y=*dMMsX0dSyl4#d_Yy&qKTK|0w?ku@!@9iIny?@%xIw z-S~awU_9jV&^`+{f$(EsPXR;%x{-Dkg+XZ`>>|W#OMcVdyFisjD=$@;f!7ZqCP$a9 z8$jK^%A|w9WkFpQZ8gjG_f(}@SsIng$&0UT)BWN{e9%rDbYc>4D5{J-jTl8>6YpGi z4;2{XO!;k@P0lYj97`N#TL9Q zQsiXplLPF2Tm6q{4i1OZt=rGDjJgIa?6%NvL@jzx09xq)9h~gSAHYs09ZNl9?&Xe@ zetWNHKnS9!pLOC^%%X3R!tfYZbP&63egQyMQY4x-XYIIC%}vKZ#MhOop=3Hm7u#Al z>3FMj1z+9o~M6+O*Ew_0h@b||pW~cN2o`2J3$dtwQ32TWoh>$M% zl^nkrE%(>IDONfzwm1{7V2QNi@`jaLYB7o`J!h$Bh{%tr{i0k@8QHyfY#w_0ZQDJ_I?}_X|z(bZM z!0@GhUlV5Mmp0%SNuAYVPhiJ%gKrbLC$twyUW!GnEn=Enu4da}8O^6VELHHFr_peg zWi$&VLLV(-Bafgx+N-D^-BPZbB*S1%NXOMBnWB$8Lbg26Bb2ruFfWg!DNDJSJE0K=HBvgV?o{HoMkHcVlq3~hLdRld-K{5o^Zp7tX^Dtj_y&;h4r6bItfo~lL>61 zEwY&*G;WxM7tUr33K2(9b<8?09|nFkpNhF05?)W5($p7;zdtOb%Kn;6XK*6Ru`B+F zjjXW=^r20cp>;T2i<_v=-D5tSz~wU^$Jj+}18^HE8Yyrj{nqduu)u*AmUwm~9`D0L zvm=+x*Q?YhIODtsRboSfM7Q+?_Woa5^8ZlTK zk1ZW>O6h0;AARZ&OE7WRpvL}*ODkxY?DwUe<(}6Bx?BXzQ6<6 z=#G6|_nW_}=m&r6T1-XV_P@+tM3l0swy@GM?^NB z!sl(#aZ>o-#TP8Ko=|w!5p!u$m6XvmjNWkVm{Id}uobQOr~~J$v7`$e8@O{(43L&D z9Z>Vp6sL55lv!&a1yTG!LRBn4IG}2)t&u&7`RYfEwG{5xh)W5<%30_5gd34n?V3um zPJZ8^BL#~qoIv|J<86Pa#_8k6z9?iU`I56=am{O6I3@qr#l;W?5C;?1=%z~7_xVvM-dExPz8DZR7xR(%~ozV~MQTzQD{0rv&o}mDv zY*F<5_D}9>iHxP1eTSvY)YJC@148`SV`(*0wnvP2R9A^d?l(FYY*N1ve&Ii@G1p+_ zNi7GDqVA~Q<>*QmV>8A!9>x|#3Yd21ioUW%jl<>5WSIg!)Bf|Qt6V{job+%!N&(Va8O{F&UHvs5gRrqbee$9E^y#BS^8Zo8|M4}|bhdK+ucWV9 zUU*M}<#~3cg+Dq5n@wb+DvF2S5-~}f#wx#J@V8+G|Ngouwcz8l2=zYoXCe{6+p>F)__Fh-C)3NN zH`6N{M>yc-+ovhaa$X~5#RR7!%&&?QL4rJ);j{t|SUG3IRy^C0>{nm$EcgZ@F|l$$ z&H3SE2AQ>cgwWBsT0x}-gT(i zU+kIY)iEN}ZN>zsq{JN5>PFoy#)FX~N&_e>MakhTs20}^vEdPz-7FKqOeXC?7W{>g z!$tQQF;3LBED9OQ4dH>k2zRXO?kjcqrSG!XdBKK<fdh(Dlk!ve5l?d%y*RT@@3(+C5GLgX%pu z1cTYltzSd2Y&#USYe`$69Fc+STu0KKLELsa&+M3Xey}VB;tn{Zny2KC>mVl~lgG7h zd(b^iM{xQdvz}Z8e>EL2&)V|~rkrBBhN*(jzwKIprs@1mJMOU%v`1r2H=rkfmt+qt zLfn@diwYjfI^6&Nz@$cgW~BQLV}(%tSz`uex&3V#qiMV`?uXB#3+$TqxTkz zMU%!<^4s{7)F@n@Efkx%!8p>2D)MY>C$ANZwzZx;afNJkH3#($G&LA#V8&U7Bvjv1 zNdAzX9GrKAn1*QkV{&7}xTkPZ8iOrI7feVc&e1RE|0RSaXyU|KBMa)+>eTSA;gd#m zD>@)buE3fY`M3YP6Sv@r+haXIw$k_3F2+W(iwMPJh#x}BkcnT9GGz~y7>lBmL9_Kw z6S++#*g&5xVUok+Lp3V;{M+P$t;~p3)zLW%W1!9M-+;ZC5FYB-1JPHDe|KE9{OBvi zPI&oA*99?3$)EJSX|{IaSwH~-WnteFxk6sBYPx<@V;8=%SX*)7&ott#f^{=lv1O|rPLxxwph}Ph2V-hmNKvs1&{LxVG=H5nEe}&?j}B85Ix5~ z4@+gYU5aF(4d$zU?rznhAT%R4%6PLL|D+pRCNG@oUOrJVPhZAF z#?wi3N(sUKy)vYtDiUeaYdZ7iLE3ncd#Gux_4oGQbrp)~H4Z6ca$f#qcXIP&Zof<; zTG^%|oqQR^uf?>yw()ld+T4krh13`a#h73?lW+{B&h3!DHayMI*4;rwk~uALNK3MO zt|MS@0=;x(b(9vvnjuacfw3}@DS>#bt9WMYLe(Pg?-L5joRJ`~p{xd*5c$4`*$Z(h z*F?EGQDvEmRT5YY4^;(Ra3&oZgCWSOy@K6%6W=Uz8QE%;Q+{HKdK{seCKdYX2q&VT zVE%Q;0=NeIg%0WFibp^sghIwj{StAcC`HV&`m*|g@a_A^G0^w3Vab@>EPJXTSUN&X zpgc`2u|C%m)>jB%I7m|UK<=vz(!2sfdPbxr$K5b8%qU<=OG{HE)CFRMsrF=hyLZ1< zJ>b8IgYqGh!`Z`8|0r8Li(Gv|O1$+!`CtON9;kZNCzWdjo)XBcwvpwLFVXz zxH}t$iWXw!1EOy7k1Z#{x#4Ua$OYTv_qX<`5^W39V86) zVe_wmNIkHA7(BxJD<0tAfFu2t4<0Wm&H*}kYS$z+We4=vi6wMznE6DcdS?SgUs!rw z>mE&Z-pT$Qr74yh{?h}*|LRwN;l2dRQfpodKV(Mb@8hK4v*$`eg^Tt*J$V}nzxq~d z!gh5*U3V~i2hfDj*-owc*^Z=!>H|x9{0-Izi&%}^<<3ga3Y=`e<46WJj+P;R8SM?pI}rxdcd`~@KRqyHPIlQl?D(hi!uHDFvJSb36# z28nu66p>Z}TYMG(>i z{*d|Ef-w^8m`puop+SiqI5Z?mV<`SvyYd{J5tmbB`4Dlu_aKr25yhM}dyWB` z@j;-7Pz`Joo7nG{^5{2|sbi<3d0DT=Cam0PN@`cG(Qx%D)VqzNSYaGTqahJVbC{CK zo1ToK4ij60#~dAk842g6$;wzL#UGp~ZRODtOi8B((mP`7Bf}#5Ey~)viL>xrB*do2 zgLQz0@01to{43;;(0jD@SBX}bwTLdKhjkym=+ZMJ7i_;mBa$G=_q{43+#x{@x42X3 zp7Y#KCk8jx?0d1KZL!R)8uBeB$QQ_fW_nJh_PLo{CUJ+m-c{w%c$aP0{fWP^#rI7B z$bj(~$N-q^aL2b-wA{q(15?l`VyHVIgz3-NapYQmkpoOt)r zk|Uu~=^s}7`6oZyU`34Fnp!s)A3i?6^ES{R>7A^*-xY)4k?v$ziDL!I2w9Dq-6mJ8 zz+xy%AuZwG+9)d`@0#6qF5GA-*V^H%ah&RZG`Zmg4nXnv(SP>FYbkK;?f1`g&&5Po z)TySp+nN?Udf3(KjXFy@R(7TVwNYxrl{wPkaywZo%`I(T%S%&6G6}i7U9xXkf!iCL zLo(s6KQQbkCv{}nnq=`+HAZ7iD@qy6B95q<>!*~bH1M}gMMli$lZ;XfqAS?+EIZU@ zg%Mg&I8uM3FtWZRB{~+T4oPlxjPW=z&Mz%)E0mM=4OsJ4L_BlfD5^GeXLremB*_!T zf7Z^0yVro<{;DGJmn3?u){1ANt~}D3Z*`6}`kw-R#K0u52DUd>i^RQ;}31u+YSkXl<-y>)M1g3-NId_Xqhl5<>yqUGA))pUQAn zxmsC5FRNCR-@Rc~tb($Sc3LH`Ii2`o)1QM1I}kF@gICRq)ma&C)f14yk4HXhCHvwLU8w-=ZpX1IZW2Qh_NV^K_}aMI|!N(|xP zg)y|=nBL?KvLb zAfBW1piExtVy7x+yO#Ae(>s}W7^CRFfm22M!~I75VUIl>QfS(S)TU&6QnHzEw?L{{ z1gU);hWU#7#s!$s8eCwr!StufqZ?Vlg+&Qk9nSQmdT3f$Keq|Dtz+h=CPZEzrtvWO z$z1_B;|tovG0D}u%X&Gx{pt80z95cew)&dKQ<=1c8+lf>sE>krb>h@fo(v*#)Us8C zNqIxL8#SC;xPL(<5+-iIo9uyz($b^C`jWdo^0IqJBmDE(pCh7JNfzwsO1!uTnd2NL z{;X`Y`>Ey!jyZ(nPWPMg5(;D!;EHxWec7$d8~2-R$u_GKqXQL{OuNATDF0D!Inrqc z6qJ6vB`zrRK)mjOe?x-h>&M<|>R>qx8Ai|3B@0)8AW$N_U~Q@YyQJ%wFe zBG@)#ky0Ldl~Q6x&B1j1-c9tu*XRu9rr)%z-D!^~E&XH{g?DE)9`d#D3KKPe@zy-k z!a8;ekLJgwLm97JAd?$H-Al|^W0DxF!o)i+AwKl3R*@S5^_45cL(}3=If~ml$-mVp zSxGbS9zC5vsy_!$6lA=qS#8n*<}EVCl0A4#Ir2%l;Hf2ZkR@@A0p)A1S_(&B z4eo?7qnp%wGJUOV9y&?cAn_XFCoabu3r=s0m%`}`*w}RxxM!n?5$aPr)ZR_Y9UdPv z$GgvHj4m((ZKxL`E{)e0Ylum@JE#+%Oy~DMJGLQ-w&@c6%;CM|{?z$@0DnM$zXOn$ zvfv_M@$kZ9#@+{LoD4FJn`p<);DRkM5zc^Fa3-vPtAUnK==pnah-Q|4h-SvGVF~kTv)NC8eLuMC_hkaU`Rc{>C%%1WQtzA?a+g9>6wGAVQKxVI1gW*|T9T#9;yS!V>6%lVCekLw}0Y zHI~#aSP0L;_es*JZ~{CBKOiZeCwMmCXRttq7i4%5UgCetBC;RCkKkoOcm-ZHl~O-} z92gHE-^6lFB)R6eCk?>ldThXe9Rm&wNX2$(2&UMe;Q;tr_QF(`b1zIAgy{kK0L*Cd z%7bu1z+U3D55Y_U#di4^4M}Z@n(?iD$`fpBllam3rc9eszAQ`!2iX+uy);<#oGK|Rmpj0T>` zh--MBW5MT`ctb!*Dv)Dam|KwR%{jOec6)OQa_5m;B-Ls59Z<>-jjmZcV1_sE05r9@ zn+IXt0Ic5)y#W`+v6phf=>yQR8`_gJlT8}`4)8FIXmM|(Y%>6xc0*+vPSH`E%}Jce zNt^-`r+5cs7kl%DV2gl@b8+_<8;TXzWWy4HT*FhjLvRLC5v;`c+UdIrGNO7C1#^Asfc6nVM(AdH@*Q$}w4ij2C5*jAx0oc}Jcdd0t z2B9mEU+m2{_?plrcQgaE*{!ERS+djJ-Cp}3oE>l%d)+DU7I%y#9)=DdEW4{^2;!vs zm}2jk6oQTJL>hr);cv`{zscQ`zJbdk*p!iAv%7aBf$Yk&2sURV*y8R>-(i+TuqBPa zw$M}HaY;L&urPZl|VtUx4^)@*h5k9V{?;``<(Pm z##@_&GD@YnzdC}zbdKgem!0D&_Igrq+ui4-GuJHU?P<)5DG{76z!LHT=5S$4o(I0> zA#p)7Li|z+@jOMgwpW)$&Uq4=#gzxEwri1r)-SRK>4`>2M9qhwEWE+yJZK zW>^cifChI!H{3}L#655!?0{?GUib#=r2p=NhhP`AXZKSh@c{fB9)@?|5%?G$g(I*B z1w4T&?88DBz-cguv*Agc4+rohIEbs@X>5Y;Vhel^gYX<~gCAfYynyGzi}-bT8E=MH za0k4K--g5ZIQ#^kf}i3G@H!rbH}Mznb9@ip!Vlq>_zC<<*x=W~32%#hcvnn---}uB z2T=m=iv{qJSPmbHQ{gY-H26fE4u2P0;h&-t{w=!UbFm$TxBzY9a+Jh%sE9kzDRyGE z*oQ802n)n>=oZhTN4!SQuVbNjAHCuTPO#=1Vk^gKwk4?8mg6kjDd@Lt#3EZO z&bDpC5?eo(+AhR$+qF2)b}P=e-G>Wo591=+0bFc5giCFQahdH+TyA?0SJ*zrmA22Y z%I?5Z>;-tLeG=B&=U{{VL|kjH!PD#w*ks>~&GrzkxA)=(`+3-6zX~_nZ^F&?-MGd6 zD4uD53b)$7kFEAMu+9E9YW9z?-To(sg*ZbUWT7 zJ%~G`$M9Zh2)`vgi}y({;x6eh-Y>m{4@mFegVG21kn|}&EPalT$ToaT&c(g*SbSWb zgipvbai3g*1M)%~luyR}at#j24fv$I9uLT8;CJM9d`gbuLAeK?me0j!7ya#`v3rC@RF1$~YI$*r~75F23020iXx5A&`Ly}07%itq= zQs7$IL8t9Q$byfh`{2*;7t*azIu|~nr)=Ee_#6Bc{syYJ&S8hY!>5pAJH>tq{DXGO zwQaNq;Ggg>$g^E*cNn_4Y=>=!=;Zzz^6dq-^Wi@vf!khVYk<#)VhqK`5%`=|JroW5 z;S0Lu6p;Tr5$U9lr3hG$He}f+K_5C$f^qUph@y-Nc#R9i^N{xi8Ph3a7F{W1q=#%7 zRT*<+%#|_E{2yqyOJ#J?|3&|SOJvNSKJ7CI$mqr|U>>-RPi+zs5#!4^259i)O`m=Q z#vcL47f7D@?->{fgg;isLIW+EbUs4Ys+X*b>C2$tIJ(}Mm(yv+#Sg$a2KMZS#~ufX zuV`po(IjK776f|vf{Ektw=|Cj8@>%b{0(H`yEOkE6tP$|h$W!@A5cpJ1PTBE00;nK zaacQ|M7USS8{1|WiDfEVRLisymwrb$M!!y^?7Cs zvh0Go*0ocmTd;zF5J3!J)HJigA}FwgVoC44_uhNCNk{~ZDW>;kdUBJSo8Ei5>A!R4 z*?{0!t=Kn;ed}P~vG48d2lk^K0Di*YKN$Rs!7mv6iotIf{El*eVDP8O ziH*I_sh!N=359)#JXP^D#nTnf&^4}m{H1Rc&op_K zovhzz$Z0|mn*&$hK5&QP^tJH zcD{^P*?BczjzJ9uD=^s8

|*~zIe8OW);-sCIo&r`SBOkASa$%cK}#FdI)h3Ts?xJL17VSd6wgq-Vere3f3 z4Vbu5@tg2_v*NcXeyigDu<_gY?Z|S6;=P!-Q}Mg-yG`*v#rttNY*%~-e(zR%r^)Y8 z{9Zfxnf=S;_u0vB{C>>ZrT7DiKdAUaNP1ZDNAUZo;*a6?amAl7`I9#O6o1-I6<=fL z&+umze-1^TSNsM1?#AFn3|_MFm-#DLsaF+$&BkBnZ`k;o{GUj93##^PjaT^Nf; zTM^{=2Iaq1{5!?JH~9~CTEKraIjERf2m)GW7XMlCUljjU@!wG3cVq#`Ka9oh&^iO^ zpO7Vp5>yGM1Xn^RA(b$cFfm6#ONC7dyAlp1oJu4pF+zz%C0v-3q=Z`u53C@O3_T!H zpa;ZAB}QRlG$y=CjKRcMOpH@vJSHY!Vxkg0B_=5`S&1n&F;z@MnCUh#L!@FX%_h=C z2F5at#U#{lNM&I#(^#wqNZA;wV$Lk2%vNF!QsyG12rEBN ziTO$_fPNGUl~|<2VkL?(w*-SF7=T*cDauSyZl@<9@JV7R1{Ek?sl*;iEQ56~s+6c! zV!0AEN~};~PvogJ7S9Y1TTVDKH5^F|jR1dH)S04QiIsMGB_E^2UP`P|Vzm-$l-OH| zeU#W&iT#w=Ux~F!9H4|>iFHaeDAA}yK#3+L)+^DhM2iv|l-Q_5s}gNWv?~!bMTec< z2h%|u2w%|&dyDA8s&^~VV;7smW+k>j4qpR`Mr>8$AgqL`#KB4&qQs#}9HzwKN*tlY zkxCq;#L-F|qr|aF9H+$bN}Qm?iAtQL#L33ux?Q?KN}Qs^sY;xt#OX?$p~RV{ILlZ( zj)Zd0w$t~;Iar5tl{n8>> zXrHc}mF0?Vw7Sv@1pdi-N zPKng@poFI)G}{cUBQC`#j4jVKRxw)wj?6!cN*u*G0Kc|)+35?Tqd&fsQPi71DT=Aezb?><^maXh5xP~md01vst`4CScw+~& zbaV_`1lTFBNOSii2*->?ySA|VpD0PT@9;EfoR2?TpXPgh5vvmww9-R2lbG(lgi zqr?-{$dX{NHQ;ZD_9f`1Ea~a&474|F1v#Cznh*UK=;;iu=nOQqY#Cs24G;(M)%7&R z@>#?%--yOwYpcI=fX8VO!ug&J{tkb8pewK@&_2MF6h#elCO1LTaSG-(wybaIZW>C? z8$?bFlk+th1|?-M#bV5j;mjL`6X*$b-O%~f{tmr9wfeXO3}-Ns!7c_H7mQ1&kM8eM ze|KQes-O*!WhsT8?v~c&INsh-`t#VBsUz%3rF(95dh^~jZIp^VJ&c0XV~H-slInkO-WQ`zlrZGpMs2~n){5Wc(tzLX)9 zFsH2>2BixTp$4IN)8M?ksJwv|MdU)Y4W$RQC?Y?IXHbjWkru6NZ`1>ZL!^mOgwYYM z(qIpCb5vHc&Wa%q;MT#`)*2{oXb9s*5!^#?qqw37BdvNDSnY@|L}v^kjyW{Y%Kw$wZ0RTJgoMuuyf$H>$D;@?Ijv1VIT?Iusv-GbauCZNdkLaM{7^l z+PR=bR9j1XC`w_?IP^NH1rsNr*J1-K|HOu1PiIS@6T2SQ3~oyU6sSg~VWYpRInY?!vc4H}8uc8m z4|YKRHTzpSOM>0q!8RBwe`{-fb4xpR>*inx4hFqB;D=b)II7U8@?fxA8%IWyjzJ-o zbi>A4Y)L|Qu*1T&W{7J*e}`+xTG3oYLxi@V#)k1{4V$zkhGMXj_G$@i)+!c_%T}~2 zThRpCtSvFtisofQ6F58J9>96q)9Mf7x5FZ(O@j@Y5DU(@bv;d5TMx0cOTYlpElboA zm2Lj@fiU9cmiT6{W&#m=9n98-K)K#g?AqL(iTFCsMUeUW0!v0{2E1lvhakZ0vOTUBOv+PlywT8jozQ!r871x0z z?x$fg43Hj+fwVa=-qtAT#iKh5X}X1gcD+;FAZ~Puo5am%Ucx$Q?8GJP6t{?5p%t4z zd4Wj)d*fP7hjN=N6v*iTtLGA@_=mX76t_FY9irFC)-tD)IWSm?!5tXfi@{SEyZ{0H z4f;;pNq+|=`d6mCQ{2TiVqa}@iaycr6x+oP7{wumJ|&|vva@_ET6|f)#z2$5r?uN> z?OrH)w^QsC_uyy@vF|bS-e}ntSh4G&pDkHa+~*Yci(Sa}00s}jw2SaIwFdp&zP!ec zE~j`%?1DKE$pWhz)`%}3@?b}a?^S?BHf83NDN{fV43(RnKNF2FIep5^9MG#1hvuV8 zi(rh4eD!GmZASK)N#Vjd;%up0B3n|RUNP<7WGjQ>fnhLwso-C924OH@49!K07G=X< zN~Zp$NJPLk#TOEBirwNxr+7)c2z$cP>UvYW>=dtvS55JnQ@k$TaEdp@KQY+h6mN;Q zDH$`oiv!E4vC&suUG3Wn|M@B^irU(Wy1Hi8)zvx0zr;JRYGSvWmR7yHjwo(z^`SS_ z<@0w2d`|Ii@vc+6C*F6855$Mi!N}PSdS{@6!xOS8tm{8=ijT41+_4^(lkXuu!)fxl zQ+xr6N_=T)tFN5mYfOHF!M7NEhr#z4{D8ra82p66f3)g~=b*t>pxdpRjrPVsCxCKl zZia4v39P@+9nkxsj`6{&vPHTG&5`DT4Ex>zn6KC)K4|JdBEy#(A*`%l66Q!O?ra02 zsHGtgrg%#H-QBGLU$Dtn;qTJ>EKnWAXleV|EG#y1X~;%9a( z_S!E_ezf={=)gyT2=3pd)PALv>8aoRUj{ViI~H zV)Q$uAq5P%{6SPhA0 zNT}1!g|Dl7Yipp(DQ!@FX%{z|(&3a&nSgB>;gpFo0aoRbU@I6zz~us)0Wy+ciGg|O zlx}e&_8V9PNcK2ovP^-sTODj{X=;HTq5}+|ZWzQY-)4W84}FqMUwd#f?jlY(62Rmr z6i8eO4vKGG#6xk)(Fi;lfuqQoKFdGBg%SvJdXaOAc3A$J6=ve{9$1^L+I$dWi+$kT zZ1uGUp-(j})7J*fzV2pF?0JQSzJ_K$>K!nq?6rXnL7b5_zOH8A>9XU<<{wynMfe@C|;)_!XXfRux&jXMU8 z5Ny7{1R`}kZEawWboF$0bhdN_pd}5#HY_a&)zw&a-TuyYuqwc8=?VnwtFT-@R%|mc zz#{2{0%rPF1z>E0c%F*72IX)R+uOnFxBuU!|KFzn|EuXxSQi)$x=?UvHbNQT9tMEm z1J$?@WI$113Jl>+yD7&wGI9Z zaY`R1RW%-t`0#MV6VZa5pof|R=(RiLBy?sHmY|u|(PiZUQBH=vDsraj>kdLa+5(_H zwdWOmC`!qs=I-u}qU`L=n>Wvd_H5k3mBjN4sdSA{>6zYYU(LYIaPwm zI}zPaUvqT9jlqVVws0fCRhv0;05}^myRz||W6R9u?lyG7_P|5b*5Zy9Uum=;7BU^r zh(oCU_8^Q%r?!qUZwBP;yKgIc$j!m7?tSs_c4qe$^j2glB^#sL*ycYdh%KDivoSlc zCD4!^T-VYV?8+{#t6ZL)Q#d;}r*KZroLSiiwlprt&6zuQPX4UCg1OmUoeOfa^0PYw zO$)j@*XFLx&0U+HotKlBH7h4~cHW%AtlU|7IkRSg+cn{@PlrvJ=9K9&!<3m$nMHqq z5vj(>*r;0ryW&il4HkDbuBEm?8988)%3KWcWWFg2oU%~Pa?06q4h+!}=qvQ5{0*H! zu#}=DO*z*oi{w00&UeZMa-mZ$l8c?P7`HlisBFFZ)@f(oDNE2mfmx-`*kCGyiQ<$? zkm#(}Cu#X4eD(~nEKP5W9C{`wpZj3r#TS~Mi%luPLkPFW!5~eZ2zb?2X)7KTm68xxj zqBDFgUA~?!tz^2oL4QH@EoU%c}6b#5FQ^G(u%NE?THkfjwQ?|-B zr)-x&r|ggiI%OvYT^MxB14Bn+(TBiJ*&{bYJysyTm0`*);J@OaZIuT(<-wRQb@@(t z2>snD4@L4}IQ0`MLdPG$)}A&zdJd)a{OElQ-3mp!QEJYu(y`kH(biy+o zS|d*Y=G?5@y!?W~S+nQhPVLMalysH0;L$Oz_sAhxaj0RInb6Z6>}oj(<_;yZi$gnG z$f82!qs&;}6=wR7 zJhi%bbt-}*QeIl7uQ)foI4{$;qGnZDEf6z(d1=5lrLsJ=IBy}QCqo0*wXBEEn~aIv za00ldYp(eV!fah_Xh(+m!YN?%AY=Y~umT`!{sLca4pK*8J#>Ac-i1IYt5~z5thTCh z`Lfi>|J9hnQU;8i3RLj8LJ(Nyrx#>EM<-8S(TX;%-U>s<cwZbH?D4{~41?V6=e_Z7a{qTL4XiKjnG3*^mN$qqZ3OKMl`1;@*Hz zLTBK#KglUimZv!7sdxy*W=t~WX-;{%JOh?odLC&1Gx1bNF0WaISmxB?sW8o8y3K@Q zm%tF$>yezBS&~~+GB*usF?n)kEFDB$)~IK~Xcy;a>RH76xnOD{y>fYJWo_9K5GpOL zEvu_b&CARKDQmJ#7@oso7^w@yF~;c$7DSveS>#B7w9gA#L4VlGHPXJ7yldAT5wmj@Dg z`8gPXL|y?%}kvN)q!ai*n;Q6@h=r&c7q9|Zxy?;HzORtG=|`2cC@cY z$LB1kJX@XvO9f1P@Wo-LC~n*Y8wME0on5{PP;;5SHNnn}-~$eTwS{>71FVP#%^3V% zFnl$s6-3Rt4PZKjZOxWoc4bY(-JxXk;6?T z`1UmXh%)L*Rr5Hb?_Z&{4PX&<2L=cwse@kv#eWl-_Sa82#|)o~ZyI!wq4v*=)4Ixd z@Zq`8HfvJ}b7HCJSe{1CFTd0&cc?dop zOZki1%JQn3V(6_=ahr)8N%a*qE9<}*s9PJUPIB=QYtLN1bZu=}>DmxTB5YDi%9hs; zFgnUsuc%oLBp4X0$-1+h6_ur>Wy{yr)vu{4!;7k#>J?RGtJjv-)K(YQoANxEtILD! zdxhMl_VwX=q}fqDs#_f0W3_<>@N=fd5rl54`s>O1KLNuQxXWvcm(*9*EME)FTU%PW zv=Z9yi4f~o)mX$jd;k>aE^p~x)zaAAjMGg|E2l-Q2w0D9+ylA@?_Tx}>X%)xR0dM1 z@m_sb#mdbagcg1YYN1uOJD0Qn7gTQIa1iSaso_5O6xr5};oCz@jXia2Q4b*R##rQYybjMrO$&19mmd^b9r9?p#L}G=J z*sMrwb|f|@5}S)}eyrZe8HnZ%MA5I*I+&7a!)f1v2XruzOnD*9E4)gq!}~%?CJ!eS z;elRV`ZuuuJC5#(DdqlO@ILmFzQ0S5X~RDENshUJ2m zHvI3Y)nAmMS7B+*$`Y(hl2xm<1KJ&ER^}j@6S@t&bM29Um;|3^$+FO`c&Hfb8aUKi zN8L);8S0kQR^rAyx+*>&wD+|CIYEwS_sB^)u)t@0zlzs+v`hv7)%DtiHZ%ZJaT#8Mw6q z9k5qfZGGhuT>FCtIEo1dcm$L)NNjBCaLl@bE2>u3S+9euE0>3&cEG3&ZjP8~deNom z&1vvEf4$FwH5R#|qQn=k_XZyQqr{9TqyZy8o@F#Eit~SD1E<6(0_jnnRNdCD?m!z% zx`wgz zye+sXpySS-_Gr-&sZml`)8wc@D{gIB-)>!%7-;>~mW6+)F_aXRVrWQF*CxO8G1Cffbd9J1VHl z+Df#6jr!t>n(AWwL6vswtasvt@hzVJ`sf^2P+jzka=TvXp}VR?ObojBnlhXd5_w{- zeULb{Db?NymRG57o~b(19IqdG?Cjcv$yL-e@}wuc-qKkyY+o zT3c3JUsk)ezM^=!DKCZr9uQv=Y;SC_O3of|bV~ePgBme4jsUI?sEuXR?-h0Jlb>4p zKSaV>j*Mwpt#xbVu=LSVP@UjTdcmY^-CEb|?+i2!W=CgiIESz@;uNgt40c1`;7x|8 zDl4x?d!nKeRj;hATv}0&+jVhW1#U&WzGej^OKR%tYpQ|0qPVhl@X}o22hCR3auB{2 z$5Yoq%QBJ~T9#4FgO}w1BUW*4hwGC~{)zU*!)~GFHA` zn2Dt|tH8sm0RJ)6BO_yxER|q2DI%QUy_dx9d<6*JhUai>-e{#ghT$E8;O zl@EzkEw--Q0_a5jJr6YW>ksVf$WN00@;nY*W$U1FRJew<0exfF5U2>WcHnrp)>~>j zl7U8BWt`e0UTIl*@ye=toCl@wU#uCSV01&L!*PEuZT%bty{}7PANpT912N^LluY`s zE-M&Z|IHLO= zsDbcDNR=Z8{(BAS{e-4xY$NOr&HEFCBM66ZUn0nUAhkdJ52Qv~-1KMqOX%Oc_!ZD8 zp#4UF2RXo`|0X8z6Kd`xd`&;-|BRhPu5lY~v!AFwVoTpi>}%5RBCMY{GPV=vHj)6T z1osHuM-r=b)FmLgTt|~6M2m!uyA6y>9ru_RH*`E%VcgX56qjaFnCK-VlgOVOa7XF9 z(OxNB4&@rrN4%Oa#w$!$vCHNv4pYW@P2tLdKS1yrI|x2vGhKxj*3F(>r zWMX<&Kk=n|Wj~pe?ltUx)JLXSpXmb~+C;n%HWNi!$SAUbq?0yM zNZQF_5+qfmgRCY8l19=Au`Y5b*+Nbs2a`+5A>=kl?IK5z=gCpz6>>CrlN>|dA;*#r z$#LX!ayz#z=mjx!z?1HxSiE_N zXJ|Z$ct$LqM7*JNz%$(Q2jeYR<6hWL78RKYjk9P@k@ZMyCepA2_ic*vICKw8d)K-GZtAP@=$u_8k4(A`$<{! zU@I8b@|eMP89=Ux8EsRz_ZTD}8Jq--1%q1dO^B(E%YclEm<+&^?qxA}Rfso2<4MFD z5eH8q-p~xdGu+iNc*_wlQRBf-)_4=+;6cWoF&Thoy6a-_>JiVS@l33rD-NEC^&6T2 zc*?yp25&FKOVW4>@si@;Da0F^0eCLMy((s^tj4M0)>Fle*dC4TG7#Jo2OM)MVsa4O zbgzj)-y6}BHF`3lr&#E^D^lX2>%JJ8gXqe=PYn9Lh(1!Ik3{rQ7P{`3QSs1q&kW5$ zbens>81(%SeY8d&jp$wr-Ih$&dcCph&}Db~2MyP{HNs_wO{t-1Oon$%6r;o47{ln` zaTuNMz>ozfT+U?D)JvMI`{)>$V?r=#8YT^4(k+-N2$MbthR@1K$#6AZMG9SNR%S}3tMw|P`!FRlB?JE+ zaQvWM;+RZ&{hx0hlL6tAt^f)rIksO#3b+>b{(WII<2ageJe@oV@pFlToKIZjLNMws zB9qC*B!gT6=GEn-gj_)?$yH<(xtgpc*MgCE9qA!Afbn)CIg#89lD7c$R`~xmaxb}^ zJVJWOZgMAioopi?kUsJQ=_kLF9W;U5O;gA{bTYY*rjcE=fIL7Kkq2oFd5EqekI?nx zQ5qzV(?iIU^l0)lJ&im=FC@>>8_9F@4)Owhfb6DEkeBEy2f-PFb3ph^5Q>gM0kWI<_) zP;{j5&{1Ln9WAn{SInkkL?s<7_N3#*S~@{A(TUJx|1N#ayGS)5C!i0kQ8aT}d3 z?xi!t!!%VqN7KX`G+lf~GsJf^Q%ag86KJ*^OLOF8nk%zto}5GTWhE_;d(t^_e>ztN zXp!us^W;Hvfjpirl&8@}@?yGJUQJ8n?R1Ikr={`>w98DQ-R4BP*-WQf&3W`7a|u1fTtN>t zSJA`G06oHNrAL`t=rQJr^jPyudc1i#J;A(=o@DmYQ_P3xspeDkbn|t3hWQRX%lwj_ zYyM2nS9W@Va?^{Hk6x^1&`VVzy+SRfSE)Ve)oKmBPBqXQR6D&%9Z7FiCqn#mpq)!^ zS69+rbu+z7-AA{nMUXd*!YZ10Gfk-XS~BE0?o;eGWKLXh$XPy z24#~VHiA!&!#}k#UGSOY%0W(gh%XR(*VUSCWvipI?z1gK(UU^09vv* zM66<|KuZzN3Bl5UHd4I7e`e`G8zr;&bu0sDqvafaG0Oy+S9Wqg%VIOh7{g>wvuwy6 zYq;41EC+JO8P)7KmJ77;#%gvj%LCd3<7~E=2y;la=ZS{3(kGhy00Uu)^};v&!O% zQ$l`&G5v+i_=U*dKvxf>w7)6{)!ypTu(z7f1m5Z>LTm>N@2$#k#E9`<_1S>zBgaN! z$GMN+PEOcPPF$XqWcHh`iLOLf3Z5jKl;s+c#Lnp>Cqv?tA_3X0TyQ*?z$_llkdV;2~TD-n>_MlY7a< z{p6COlnif56xXE#T*mNRmkn^4$kk6SAIfsY0E-%i<;npTmoW^_RZ%>{6?JtKj~c$x z*F>?|hG)Arip@Se+jUWFj^Wv^k79EU&vru;TS9!c8`rpR>L)ixyJ5+CxFymD4fjQB zjA4ctKyHZ(Vjz7e$S^YiKyHl-Vj_Jgh&e3CKjMNYqz?rdW>^8_wqZbS``aKFtud9? zH4OaiapA$izdaV;HGF^F5g*3Hj3F@K-^Z^FI;yU)cIdUVgB(^n44ukJUKt-;|mF%cjV{sx54n=l;2WPlj)Hz1~XM+^rs4ImQ#2E=r4;&3zA6P|2$S(DB9+cP-X zYYYcEG7P%S0yY0O=qRr_9H=)8+Gl|#{UvDB#tE}2DHb$x1HujR05}8>fWiF`anVPJ zmp)1+)5k~#eVi1~C&@zk6se%kkUigZ@%<+_yKj+y)3?b-^k3vV`VRS-{+k-~UFxLo(b4pMI)Q#b zGw6pjmwrSS(vN8={e;%iPw8s<8EvAU(^mQw-AuoxN78TTb@V&>5BdYWhyFw#2B+i& z`U`!X{ssuY1LY6;CnL~%zpt!xdb!ZU=>WUdS+t{%+5A4C)*58&hcynJ00Aa zi@}k(nYr1WEScR84$N*glDz>=%ZK2u{LIF1%Es{oHlF*~1fI%#yns#OOW9;z!>00m z*fieGrt?iKl^?~@__-{dU&^xh4QwXAlV$T=EQdeN^7tDppTElr`4?;!{|}ojB%31= zSdo~>=7||>fyiSE#R9fS?7+&*%Hyp%EV??E{wpvbSYh(f2Th3?u${MzxT*cPPb?gAy z#{BYNwoV?+8s&K`ATMJr@?o}7KF!+XYph*<#)9%Y)@gWIw=s!rGP2laV=>!eRIr1M zec7Q#BRkyaU`H57vm=d@*)hiD>^S3kc7kyyJJEQQon$=APBq?TryHNLGmRhFS*DGh zZ6>kv%xUZbGmBkh&Se*yRqPV8o?UJ>vn$OGcC~p3yT&}7U2C4tZZL0VH<@>`Tg>~} zt>$j_5AzLn2RM;;nm@8_im^VG!ur*CcDKr9_o%t-K2^r zMeK2PD|+nZ54adwwC=<-_U(* z`5s|+*LFbI-LF$^$4qmm_cq=x3lFC zGs%PMGFAgIMP5>;uoV!qk&o0?wkO2w>)k4fcovNPILCi@fs1lg1%SZyvRoQGM z#759kHID5Cu|&FBDYgn?F4}5-&sIY$iEcJOVQbjl#7(a=@7C_Phkjrltex;=`jgqh z_F?;y6n=x;&h}&blaYhGueD+CEBR>RB*la{w}7`bKl=W!9}I))jLe8W65PFg2uX7H zjv*w2yYC)E+6k)Z9+$J9+`An0R2F!5MZzo4zYASG?ZEronL{P)z2v@raz9=dg3TgP z%m`VVyYNCUM!*>oh+N>M;RT+)OxlI_bn!}f07`yv;9@QfFXprv`4HZ}#Vf*+h+Md( z;f0&N5PAsj)rLqs>;jZ~@e&NU6Oem^rP)pQBX~_Ub5Q>Rb$bjIO|%^`R0F7Y520EG zVn^ex78IC>1-imFHaqa%DYky0PD|1fNhsmAinT$nx#JZOlJIB=4@xA5Z&r4pcNCGp z8|9IqyJa&HQ<0c06boOKJQ`=-;27~<@>oB49B-7M#1t%XB+3B1!~F!BvvG$O#GXX4 zQCe&iijCG{CWt+S7d^v?J&j^sE#^hBF$Zbj*-lk}=1osPgn=)v+a95&x_wc>@ zVlR2Am%Q9hUKzMpNyCd3oRo>~SMgqDxJFyDuc2(@IwcLSQ*aI?x?jiJlp%FVa=-DH zb$PR&{1dNG0Bjn9O}D_3+;8EP$X`_CZ4`{$f~4Us2nxF0|H4a?NOs*ui~qf9jnX)5jy-pAFU3u90*I ziMvL-KOdret@dSmvwO)GedJ4vZH)UXZ+0BE9B)o9`8vcVfbAP^P8_yeZ*DL7HpC`@ z?K^L7OpV96zmKY3hHG3BeP;*xA*>$8yMG*%Jzne}KZP?Vxc`G*Y+i;pFNFB>8uu^# zWdfWJO2&jFHhmwBc zD4J!V`T*7Eo#mmlpR&Qg+%*|8CwnN*;7Q~zkwmujQxVOBU@{79D)3MB&g!Q|G}q6- zWkxk*I{X>Zj_Zl5D6f~=ym@`p-bWo+dF7hop-!znpaGBq@M$|}f+VX3nuBc9J#@sN zRs!>MU{2G_Mfn-7)EzVtJAB3t>VmH~e+Nw(7}^4FK`(XpQI7?e?xD%v0;|*kz;u`0 zm2Qtt4)O-I@vpa2q$LD_RuMM0S;>HY|}M6+*mAVu7^(5gS3-QThmXc7cKBE z@X#53G}W8uUC>91-H>7&brvX!O*vBM=eL}{u&qyl!9OS+v^VnCUgndJnvv0{t_B~n0eju&vN7BiD zB1f?QkmK1eJ<$+Vh}r2Ftuw26lQCPoP)wiS!0OiT3l!^gce7KFz1mSNU}M zA)i6N;A!*^p22K9i;dL(c@TeE z9>t%LXYyy|1^jt=HGe_g$al*-_=|EEe_1}pUzIQM*W{c04fzp&Q+~8#Kr${umiX`JW;Wkbc9^(R$Vq7am z8n=j1#x^m|cu0&lo)Qy{SA@^_SWGg$7E?_wrkM^g!yGMAO`k|NGew43EV9f>kz)o# zf!QWznOntd^JFo{JX_2&FBc2U+r>h2yI5lG6pPJ!MTz;iC^ughOU;i&h541(!~8=m zQ--KgDWY197t7T&QKPa%t(qn3)Iw3OYQ##lO6;WqVzp`)Yt&Y;w>nbnqs|ihs*A*a z>UzvD5C0ELi4RI_f*$+_gvR+_kh#z*|(n>TY8@G>|!&+!!KFwLcJnd7I@V(t*22`R*u8UFO2rg-|g)py%JlNynS1y zwg{`5UBa*~z{0UEMMBdr$imVuO~N!TRYH7LY~Y*MuMu5Vu2DLlh6gjBjt8`!RD`lW z1!rx(=i@7u;0VLa3c2zM4DY!>_S`@ z?Ebn=*cG{M*!j8k*|oaP*>$=O%~EB#aN}#+auaAfUZB!(Y$4NeZJ|}OcfnV4dLvhJ zd?8nJCA!Y1Qh%Ld({0&Hqu6jU4RmL`?%^B*-d5FXb{uQcZn<2M@!GP6!DUwNAsrjv zVq}5W4v)(36WsapDvUB|6I|B;rDPvq;l&@XaxVRbl$36&6%Ij3OFckF)s-?#a-*}W zd8|l1*i{pMVIFN2>OLtV9$f8F2Z)Y!nu@gqS{G$EbK+E^azNszwe9F%^CcZ!j7nDH z;?2UBVYfEm&q+NX8D^;f!jp;7!3nMd@-xm4%8z$C8%9!#GOBx@ahiHp7 z;6DGQ4rpcHvP$a7&7a-0-Ny<<6We9p9cR@$jPwBa&TmOI6PGfHYY6sha?<_+1|7w6@%`x<=41sn5ERXAl->P4ubl(%zYUM!5Fb>bQo;mo=^3a`Hkn$L&>h z-TQ((CvsQ9s`bJ&C-Shd>GT5Kle-sAp}WSwk2Nd1q)UHzcORllif14SZ0%2%gp~=| z&OU@*iL^7}3~4BFV^(HBG})ifv_WamHDpySj0ZUSjGKD}Zq#`#N0N9{gZ zzYV~~NWKADke^c<;Wj48zpRqpLb69`!PYDvY51bFel>8g!ok&0tu`7~O%AKnpW`== zB=wfBKE`lOEBDW@z`&>5vZ^i6)Zo+AXF2=wbW#eo zAoj}$AokPoBMJ_St~HiST@;pkoMPHiS13rpZF-y-NId)wP*$KpR=)fY z$M$|A=MKz&WXjzYd1_U>TmI>-1`{q^wOHZ@cDe_qkH&`( z{Q`$U<_((o05yu(9k;s2CQs^3rnDzhCy!|FTR=>Xu}TcWp($=3$2<}^N30@>)hf3( zsx`-t8z+5NfX%O+5PD#BN~kkJeAoF9vu(tv#2Dy)Aj&Bem3L|nok=x3H)s!78HaRg zewrU?k9Zjqe@b9a$-^(5e>|e-UMiW-Hsa`BJW=pGLj9JKA(kD#`T&zEvYq()prH1< zJ2CJ9jU$+WBf9m#lU1D7aQ=WWi2|)&K&=mTjHE(5sm{v~LxU{2F0$^gRbt|WYbzL+ z46Q-(7^PRGeMF;uKNbNw&$&7Y6l;yPSEc;W(g{thKY`BZ)dJS;t|ei+L^oka>{n0I zY2=O28}hk-ikNq?N}cy-*p0mSs&f+%YoCX%M;Dg9b5jg2UT zTp_WW7#`0cRo&Z3DaHns^UVBjp}<7cY!Zb6i(aJy`F0VC8c!LKXHgx?5M+$D>&F?U zw-FACy6CJ`ktsn?CLkZ+VjfxrpXk_!H@x;nSSPiz2Bx zi+#lv+@ak2xyPm~pzB)T(p-Bpe8=jJ9_ZThQgAS6xOqXs085+^6R#L!=QBKbZZy*F zVx$ChQ7c9~7!)dq*&9%-Z;OUinu4ffUL*3YcxnXCWaWqIb=};)70KRn1Xv^djK8H5 zqz*`1vmVBb?b&9WN1g9FpyON&!CuvIMZbt1`IulV>ViqfCu>NXXXIN^miG7?a7{hN z`%ggK*m-1e`Qeg8=7V!aK>8_go9iI@RBf6Mvh*1kOI=ck%HA}td zpLDGd`M#h)!`p><1?gqMlzSPdszz53~(>%QUQyYRy9~CqRMa8vVea$4F7<9a`xUj~c>%+1E{fo(9xis59(z6X;ye(D zQ^y7KS_)~hCVOys5lea@6Df!0cN*h)QA?-hM(`Kz5i!2G@}<^qAU?UDAgO&mjONyf zM$fk~;Jztl#4&Ruc~k`R;{4OdVYd^epN6>EV$FPET<1;?{rYw1VE5bi!xQ@o0{2be zpB81EydiT}Q|D5!%oQ8_x#{m{scpN0*^ zxGAU;{m*Mm+z*leJd=5rYx7Sh?}2@E(vu{=F{}_wLzv;bxL^ZFhf!0ma=-sAP7K^P z>3PvaL1HCs zamYg>!>*3Mieps0l3i&PvCHt?9ZAgN=c4HyxEm{2BYJnjHxkx_#bX+y7{>IEa^^@UE9U5orjr0mf8EIbie5GrW?CL)|Xy57U8fG1N?hX9(#i8KS zHyMdu1-V0V?)*sDB;_-C9;I8!zms^X`v~hK>DJ30w^@C@PU(Fq1wB5-jMFhd|3K|O;DQ;%W4!Qe-rcc5 zm;MTk?dfJf1Yyt=z!1|<*hNK(G-Q|;MW~O6&6_|cDeGO>SVkwpjI7NYM<;`2B@Ky> z2;HOZC#zy64aJJ2&~Il@`bl#edK_`Or$nUGVNeh%6XAH99!pRdOR*`Ogl#dAkSg3n zO>b|Q8cS6k>DjtQ9y2MNdqHnJ+8?=k=W0;JJxv~$jB$TZIpok~nLoKQ&puGX z62)*9Ss$4=G#KL$UpscfvV;zY?tvwP{*GRa@s4?o{*I-CVG)@f0VLUflTH)?>d-N3 zD$N9F>^EyT#g;Z{Bpj}0VoAS@fi(#uoZh+!o+g3`mS%#Uc?2Sy?AAGJwPkF{c+JF` z9*wCnksMihq%qWcbUZ|G^gNUsh80W^Y!`rOfL%(8B~q%nZ_2XFu1v!cr7#}3zvw*# zL8+Tj(iR!NKrlpcX1K5D)MS^|HpZ^CX_!&!jBZj27E!-=Kg4myvd{e(YuEKQ*7EyP zPt%ksBHU_ph@`1@sIbX#pHU;ruC;QdrBB&xqja-XecU0mgLRYWAdX}OwWb*3tDe{U zQEY@{y+9kX)zGA*eU<4#&31H3`E%`*aezx7$RmnJW`bXP4oZ(Mw1XefS6sCCskZmk zmG12k&dX;q#Lzv*8|lXH5&baVd+($eZ@(7xli1S+*7&qo@StJBX!L=}wuE|=4paj6 zLxOAmR;QcciWFid#2EQMbCYIp#g`K^R1rbnt4&^EVzP5FqlGfQn~@nP#8#vXF^$o*ikVa7}11#&k6 z$#VkQsCo|C3~p=a%73Pp8DfQGg#2N#=KLW7!TkTEm*F=sFmm`W+AuFA4UHcvYpr-m zbo8PI5P4AxhNUtB%{(OyEK~I=D|Ks#p64roA~Qv7QeJ8?Fdu!MTFRU92`n}%&RlgULF_& zPIZQ@AY924Y|=sx@wK8uTb*H`gY_Hu=rwx(Rpp7(l;OY3d`q<||krF0H0ok-sbO)%E zu~N&!T*=ayuPNAt0#RSBQo?aaPbod(FggtTPMbq87UakqqSW4`VLG7*r%d-7#Z(?@ ztr9a5$cs9yG9HQX-LS2KPgxqOP=iUFtC2JYslL+C=S(>0W5^9U^afJ-eRE~}f&7q> z8@Ta^N|BKy;I54P@ae-fQbGqqY`fY69|YqWSPa@V#0J_GD7FSFUc;OK1FpzifvM_W zscSp>pd~*}8lR-%GA6bR6^F7;LzX?-7H6!gItQm&lXLJxL0V(R!vOVg z`K@9jOFb)D(_i{POB6QEhoZM>b80Ik;K9qXnC4mpwMJ`#gDrW^QEWjSVi>d=1E;fXg9p2jN%iiTxC?;;rfC)vTftA~Ev4}}mCHUI$P z|I{F=Qj-5Bmn~F*a>Z6c`I^4En7S}dYe+A$5*KWyNFbIS{46Bq3@l$$%WnEQn`Yw3muW*hAl17_O%#V-iY{3SN%n0PJv@P}TG z?{UZEr4=pwHUw>Y9}Ux+g0y??#sa2$_C^5LJA7L#WZS}3t{?BuS3a6gp9H2h>h84m zhfsjZpOaZI&gs-aIM(z(mMsKaH?}ZyWx9;5C?K|Gm-Gq+qhdn-hNA&6iL-ib#D8MC{-$=N&6C>{?xdbNYERrryY_jnRSUDBXmT1ctolaB1b}(I(AJk z;)oud~;}LVN`py>k+f3FyS8Bx}{I{f)ZgLF)YWB7j6kwq{r6- zYax59M^7#Gq%_J4i~Z=6V+hMKhD7hXj`!wl=sy7rw|G^kJ|`oLTZZvCaCk+s9R z{?*6qKr1!-qD$Y4dQ`CSStOcbR%9t=e1sY$NclMn4pdYKl;&C@TnME|xu4c361?9j ztRR}iZ_pf0!iVEwR~`i%)4Xcp z?A#H=F8k>Hvir9VJ;Fi5!tcaS7NWwsi%*ZeUR9dw6DUXXTqpS&BJXg^3k9_`vgRB;G`4I^QGaeWebyX9N$t695iA~ zlcIfe5;S6WU#anz)Tl5*i0eTD%jkO+;mmz4zC5$G+f6*ern(*izcoOZX>Vo!GF_v5 zDm6seN;i44_kCg;^tz5zuOg?lVpNCskDz=9i`_yc{W63WqkTD{k5 zQ>>jSGls)?Sx_VH&nZMM&dyee$>WI%H;|tpP6@AP?F`UPZ*MzDB;TAO-A-P0kB}j2 zruuQU^jdNp+j+MlavSjo`|xL$wXC*>W6b@@8 z4_CxiK;(&d?A?Q=iD^)-llX0D?4K$tDJxB02Kf$Q^084E$w{?@9 z4z9s8d(!PdBNGoW_$C@`!F6QveA@VtI{gB*QUrr&P0W@WAmP3?&W5LS2Mk8Hj8_eV zNS^kOy2e8c>MPhGec^z2Pq`|9{h$knEEpw-VXX9W9adbj!YEHdX(O0_xM=7^I zq>fF#%2^m}P&BVrZs#j#`y&eDV+!aPrL|l{6b`SL8f%^P=8ixpuF5Y-J#m8y-^ zCXlC$7y%j-%neJ#P!`jUq@lSywKCRDB&obiix-`)0wj3E#ww$uv|OwXp_6(|*{s$x zl#=bO08RN7eFdj=knws-l@`f86&jz<(F44BxR(^Nj!Cj}}x>ew3&V^C)WC3yMZvb|ck+F8;vo||N-nsj@7|h1vQ5*u?%`T}hWXHfK7?*}Ds7P) zl%lj&zNKw)IOMQ{Do1g?vt~Ws=3kP;k-143LJJ$Qb8UB%K6;3{g`3`=X-C8DPe>Bi z`2vTe6rpdNW21RB66e*hUrMY=bN~)?i6zw`AxhD%RD27IyV*~f^@3*dsuz~ktccKO z_3QRLzA*rHutZjB&q!_w-vA^h*a&P_a6V?N8R7Zc%Igy(Rx5viJID<-phzPhu0?kB zSMGvRo(>yi+xKel1ISdWl|yEuM9n&G?4E>e+}>Y4^3`XSfONn^Zm?fMxaJ{*nshtVqh`fA)}Q>?gs({77mXpH zb;a*>Wi(%px(~lu6nGp#2*%~kXao4X)rZX<$a43qGb(*QbEBQDwiwP~9(y-7e}i#* zXUH{feebx!4Twzv;MWi;ndn051+?9{F2geBscL>Z5tJ#i5 zYA{&!{NT~*@PfCGiLQv$6B*Cnzti20>x#Y{p?3Wf)B(s6+AH z**#*VsKit2TqcdkVm6*(0tp=v_nD`gWQnthHNdp%cVbt# zy(NguRi&*RV`+o!ZNepq{&>25D|*#UCkc}@qLNjYR-{#fVxFKZ8ow~V5E6gg8&Vyd1j6} znONl{s5V88skZxzmUK?yB z*WOy_ZYRgR=P2urlNMATN6lzH4&Lx&Y_JO&sI zii={zL)x@*Y|?IfzDWgX+0r}u%xZ37sD$DYO}8YwK&!_AajuZWKvMJMWqxx^4u#qq=y9oDfm<7~oxRdLLSU6=~P zqA$>EI}A37MWzUKVbkU8KPc41ai+bd8>AMM%)NSuWuA!n3jzTEB!T?556Jk3GG5P-j^EPE#M;Wp+VS6(oRh-3{Jbo(RMS4QVD?|ajd7_ZOw46rTwGU7@^yqzig;IJ8QkO8{b4)hc$c*g#S8%{nn z?FqU8cNNhvYqi1O%L3T&OCg-(6;%Be>YUBSP9u@us(`b?JME2SzG|v9*K2CiRZ8_F z7+9#HKaQ448qUTXf|^5Nz1^(j%`k zp2U2dqKZ&4$P%~m-%hpR%M$a--a(AQ8);Y>h00>*+llf*6j@)0vVwUZa+ty$joA^RWfrn5Cz4GM5ACKBe){Nu4zH6 zJ4t5}B^!~3aynSt0eQrz9{G;?P*imwFUB&*pX6H-c;#;e(wLLkNyHzGy7vyWx-M0z z@b+dwo%d7xtSuR8Po4D*#0$F`2xFvCzp5~r)&eRNQ%TJq4uS0cq%gW67)!DC4jjVV#x>D3a0#yCt!d@r z#3=iZEfCZs&lrUIS-PVTZoZ?&KKM1uYV*?=r=3;G%xDWv(knAgK8M7`n-xjW9TNIG z!v0S7DG4KD-XrI<#U_=WkteH#E2a;aH}rF~fR3|=c#{7kB1$I}K&aRV^d1@~Am?6f z+e@uBH8*Di@7Bf2O6k8}*ElNw)%5PMVY|57X zSL%A#CB(|(Z_9%YH}c+UG+lL$gNu;!b&+)sG|vpoolP7fQ$ZX}vD0|gXMsxidye9- z0vx`QI~au7`@}OR`8(B?VWLuOS!MO=TZFYA0w0xFSC~vc^Q!nB-JH~Ok`rBc7A}&N z9(-f#gdW43^mO7AcM6jI&Ug5HCLt3Pt(%j2H9`s?=zUz$Ti?1U2@shN;QyX_dOuT- zX`n=4@fQF9_|NqFzwX!nntB2@mWB$BZkGSW6=@}RX+AHD?kyeHWEOFW>BL$5W5!r1 zqunIe5O5Cb%B$4KuS_$Kn~NujronbX(GB3i;sBx0^@Jm4J7AKULS#JebK_lm+?_u+ zX9M8o8}#;VQbKRU537SbOL5nv@FqBo|IrX`{_Es77m6n%_^XyoHtRqwAp$t#YK8B% zb45m2Tj!D0t$o|$^UO^}x0cHr&qKt_`QmuX858g69?niQpmy{83cdw}MD8o0XKCwO z;PRIr-JGENQo9`Dl}vQ7-qR4?P%g7H5FhS~8u59a*?~=dsPB{*2N{zC@{#}QihKEF zuZ87BKsY{mUWPMAo-Mh_tu6%%F^m0ap(PNnQBq8#RZ zx+<+Dx3HUveYe27BZ0Q^B$>FaFfGboz-C(yShepDxYt$ex==1t)B`CNzL^i${Tu>b z&O(QT?wmaF%V2}DI`=Z}!U`cb-Q*wI6BD7;%CBGlJsAF_hll+ClKuh&0O0u<3~2x5 zN&A0;!T$fza9hb)$RP0}^UNPNRRp4vH}J}ZTOpv12}VYS;w!~9vdqQ2*l7gSO*$uA z77t|?$_eI$^7-N!b-1+6!oBDnXE1pjZ#bA#d4IovW!MXOa~ zt>`vDTQXW>n9^Hgt>|sA)C|86M-~H?)O#25`Cz1ODyW_+6%AzX7)ibqLzk zBhdKNjSykH9nLsVzQN#uE!o#)*=otolxge_m(~&*77BO-a<>dxbmYAwLEC1e|1139 z*flFOuZXgRzIK3l5h?*vm^4X^gxjr1G9iUb(8X3dZ$ke{XGz+I{2h|&f!xh~gIOQ@ zuWIPKDYbA5@~(YAA^14vzNjrX_y*}BVK%y6lQ)E%&U@4fnmofsE{jNGk6>9fzQ582 ziBg90e%6zIlK{m@lN}x$p^StDzS?)t%5k?dMQ3Z3)r1+pp@D3?xT9-cI-m$2!ndrb zCgCdz#pHY%R+T!T5vgC8Y}v^Wu!kuB$`_5h2;YkH(K4P zUG8s5`qy&xRb`t~d7Fv%*XO$z0MSb1KJ``-5wxHH~rfF}5;g7b<1J92VNk-R9)}XNZK{LOt?^PDIcq;j&K1WtI9eg4#y$MN^)s)P110qSTB5SJQ55p|R zAY)Q{7hv^{m_mPm(IG@3hz1<>JMJ~VQ@!C>n5^c_5gFvu2|>G9hIZrjeZWw|tL#lt z8d(;FM@E*aNIE4;Wff|ZDa}&VjZXK`3hI=o$qO#Qt2U`lDEao%Rl~uv#5;bG!?Z(M zR|jxX1?Es?d&5fM(b{Isc5S2+$)c!q2(Yps$PDo#`R`3TJ%wxNWoj$b37T$d4&|~J zw8HpPWxM<>NAV?^bQP{>VvIdR=7_u;J%D3o;@G*EAq&9GZ*NEBbxhuYs37VhmW*Ni z#(d>!wG6Wf3n{67_;(_ua!a;yOvbP=V}ngf3-qUwt2Rlrls;sowS|-WyQDNnJQy^k zJEwVPW=;L}L5UTgm{UeB5(U1(dE3C&%Nf#Xuf$FDC6j5FNH3hg<7Rh>Ww+AJoLyPJ z;JFRiuWm55_By@9jbqIr>;A^F2i}w@gR7)7jds9O!!Oeb(<^ip+D6~`2a4>%?9_Ph z8_5yK8&%PLZj3ov>()5}9i}eWclX|91Rc6J_tE9?F74aLvg&2e&Z~2nLcIXj8hF>t z6Q;r6q@7@~S8hSS-#(atvuCCUcDzkrMFO%3nMbg(H@;yJ7(t)shYXxz?cB5c4s694 zBhVAq#1Bsu)#(zQqQo)t?6-1o%&yTl6oqP7_|FB@;um57gdX+6)Dem4I>WsEFyyyT zq<#E*mVI!rniAb(S^CIkx^Le`gj;{Jsdi<^X1^V($A8a7ro6UZCVeg5Uwt_MF)Q}By|Xi$u|fZq`Ok_K`Efbgu)MeMFl~9_M_QrHFn#yvJZ&MnPMO*9FzJ(G{m^^KsBrKRvchQq(jg+RG+>Av5{ zo&KV~_+@bkyKKR*ur`0f27i8%^l2?v>$T9(3QWlP-A8?JH~A6G^YZGdD?&0?oyQri z(b?P8HUKSt5{JjoH+Y9>OkVX*)R~O) zuhBngmX7=Is)hr=qkLEjfATnoJ|m()Bz)FUlsHbzjwh&T2LbpYzvxgzUJGCX*r73E z!i<>z#2W15A~U1v=@>waVZsS;2ZRlomz48s?ISQV;|eP5i>dNGB5<+y`#?^8|HsNO zJc?;q1O))_`a?zjANvVG8%rA}`+xsSUddpdibA-<-}N>wOlr6>++jh4xoH82sv!?` zVo5c1hW$mlmUi`S0f9zrmaKj!ZfBV;?oU;!wfbm(eZvS@|NN=V%IbV}K0_HF{rvuB zqf^s=xEDKOyZ5@MyU%uuPwwpIu0aCmAiVUO-?_JpxdCC(G455twe4GGehEtRG45@~ zeSz&F`=B%blA844e!1vo-UWl;o7*9S;G2K(LG&iz!3W8Kym#Ux}+0=HLF4fJq4fujf0KTr#~f-#}-c`8-$WJ6K4o*NJ$%Akjx#T8dRJ!TS$;~0A`sl zO(htVoKstvNYaNr)ucFzol4gKRVouEKgUQhCiW>$O94# zG>metP(DDcys(6zGBGd8F%?-Pc1gmH`IJE(Tf#j9c{rX`)DF-rAWfJeuRuyZrC_|! zlvImfDk3d$p<)ct?pM{5XvZWnJ|JL&qC>uK#?F}2?cU+&!kK6ryQUnchHpDdW*A8t z2zqZ~?31V+cbqA0m2r?vecq^R9nB)8?hZq0lTn13fYssN*i4=HFCcfXD@vHRG1Poo z4djyB{R;bU0UfKFqFiJj3TAPNnMcOo&d+`t>HIY%lbd>nD$+l#PPn|j+ z?l%%CF9wybBZmX2W#rZLIpSic$lT1DkYcHa zCO7}}8aW$$9CP``9o4h$oj5yMdhLINL9L@okXp~X$lQfjVLvIqS4n#BZxLhRZMat@ zHIK6~tAry#R~5()lZ|PbP4kneuE_bU=UO!s+&#Y(ml-c}hlxIG826OV^bIsIy*S*a4yQr=V_Ca#_u$QCT+R+KCVN(Aa_*#X@X24#HCg3ev+P z_WiEoFt*8+(~?zga3U!IBeKA3ru$t_Xp9-DNrSWyn`XW%4;hVL&wY!em7O9+G`;i> zvGpbZASfCzq(>*lALvfyVxn0k2|}7ONaR5@m8MEV&6W2?qT@gN=5RHzs#Y>Aydh~& z1_wpaEH;RX{K3V$NH|}>K1;jRwxG0^I}Nw3s+IkxH)uFh0o}WV-Y9eu#E!AZG;OLt z)n|l4QdF!rkSr#>t1W_7p-Q0#YrsP5!NFAwQRj2J*zQN_?Sx6JPVC8`!tqK2AHo?k z8RAVOX^!l0Q%k#^=CnB+>SKRg37j5>6f4|>IJ;Augo49EII!$Q99vS}u3(vPWvUi; z5xwUSC3F`gO0zSqB`VD%hScrOjDQUlh#M)hwREP;D6&;fjNktFU`4l!F_C?JT)7v@O-@gj!g5zXOcQ74fQIHMX99Ijn;+ULA<f+)JU98#XWHDQM_8wJ#nr)Q9J)Zy>OXgGv~p*kd3@k?o>+LM%g`l zE>he^$vu5;J#j1dLAua|qEq9PN1Tmfv!X%a6t(b~aOlIN{2u(5Lq18UWlCRK%kfM$OSWtjV7o zvke7X2&w6>asyDtV?P)NSZkBN1yu_dfkhJ6bmzQVpCEqoZ{;iv!2*I-xH>Mgj`|XJ zrtBt@TAbkTtX~toq7JoeaBsby?9iU{nBsbf2|uR}i;Z@IKiMr}QSh?%FG`-dvvhhp z(QXbnTb>CSBR%N!rbj!IYmWu8iFU7D>o!gOeeM_9!sJGS%TKgzH&zo<()B`s&X<5u zRD1Y#8nq)DrFbIFJy^VPh`3f($|FcH+nfE0O>CL^wJG1(Tn_=aK4|E?+}+jgxwN<5 zXz1K!=*YgKlACukwa0d^)S{T&DMVO1psp$Qk?dHlcG<0_WVy+?YyjeNx2$GdMnHMF z1Uu8E(e(HIp1E@I+?H3~bss=o4_$B4Fd|gO=`W)Ds0{h|h_YXAx;V-AUq%2tdxkaM zF|Y}*MH;4q;C6`;hv~B*b_PPyUHvvKS|HHA89enT9c2!HAgZ`0InTL%FCAyyCC=*1 zH(bWlgS@F7_{Lfw`HM<7G2o-Ys`5pEAudJmgU$C^!nV8L39f`P+h>lQ=R$J}<4(z% zg6H!N$ws2*>qR&kv=pso!5SS0NZE_KeU&Qe2frgrURG4-uWDvH9)(Hqa-{7_g0zt58eWH4O5Pq)^2^53WtV zB^Xk)DC6YjXrRSZv+2vk0qo_v^#^BmC;i56g$X27}%Z~-S9uWx2huvz2 z49brbN?k|RWeW*>(N|rm|DzNU9#P2J zw1jKSy;ah5-jQVovkxImbFGkk%{hb=X|$xcJ}MVMhVjVVXkid-tZ9jDFj((}H|||*u{)eU+)l#2*lD=|+x+Oy|bT$HB2DBb! zB8pz0W4v9aM?7dgQmNH8^|7CQ$~CA~{hTuyLYOI%_^?&G7d5Cpf`xrLEKZ+s-Bd_0 za4zBq-O6)K^#eht5 z9kAH(uM1R0+iDkYAP}mq52JQU^WF2J>qimg;B`s<&3Y+Fcd~T9O|HZZmno4q(B<%T zHr&nnF_^3D4pre35yvlW^xf3iWinqj}} z^{CmJWd@uqXT?5V5#TJlhW`4fdcAG~AnxN8$Z4*p9;hg`U7=yNo4BLD$&Gq9VXP?H zi%|i~4d5MBmHuoE_q$S;sIC(0zicd~`?=OcZmOP;I*up&;4%z$1dk}tTCax(!_H#5KrTKdFhWP=DQ2^^ zi&1;*naKSP*hw&@w0@5<+`I0U%@%$Arq?$>OAmXGm@fjsNI^FWl^D8I5u3yV+{%V1mLjos!^E5fs;hLwW|`toWwBa@eL+(M~~PGHtjFHiKT zbDvgeM(N)OOyj)pzq)o5ACsqX7B*eFf>*-G3H-Of(_y@lrRX1YgG;Y z)}=fT5;(de5T5W~SnOZ_0d$EXEG&BdNGtWH{D(pGKh0LIN1J6{P*6}JP-$mSXJ=4Y zVbHIK1;pl$yp4glow&S-4o6{71Q@C8ih;U6pBV!kj$R=pEJQ#mw%%rP_GKEz(v(C% zY=6RWMRADyb(MvpyfIb(;1TwY;QP||@ljB*v<5`R`o;Q%{sKlL z6G~HrQG}H+i$(GWC_^^l=SaeY8VR(OjT;5i5B3uH$Nw7addRhSto6x#98BhYQEOjY z{P6vP`4&=9x#VyWu4V0-;C;_o5Ezm zAUx(^D%Xn|?FfRJpfgw1WoGdlaupLywUZMJtS#GR+&`vF0+wHIYCZ%9SI8+x0kw9J z>LIUQUw0m@Pq!eEI3fjc!vCVT_I+y$O;SL#_*e&L!XXD33KK zTuVb*BC1c&%(^%$8pxP82fiXbM>v^0Ihy!bmqMuO(WYv^Vne%}bY-$C z+Z|LtwMI;;{iw{@)wFG0yI=EF=#}p#)M1dF>FO$nH zP$zFm*8K)lIxLEsN;UXYeUg{6LaPdQDB$*n8zjDsfN77p$qoc$(6Garu5etuCIWa`?zZ>B7sXGq)g1q>tdo7BL|Jhxtt)k`V3+| z4lEVi7JJ9cu5DTqUO3!#;T7<14Pzq7=%t75NYoeL<4m;Z_)D*gz=qH52Lf|e)ySzA zGfd4%Y!b!S-;A0Qj;gWsw}T1(JJLB`YAt}*f#|Z2$bggY@F|OfwN=;X>;i|LAjHmr zYf-OK^iz`&?w}zFY_O@=4&B^;D&^mpRR*ulJ79Y!KbZ<`Jxv+HsGYw@*b zSkObCo@OK7zi!-I8Ohbn0THZM)NhWOeN2)%GDF#-^`gw$Su^1&$Zv>eh9XH zuH)-yZ@p@RuGD_PT-_(myqoAcMA|JNip@ey1A2e?*OLY zes{atOpXS94wE8@CVykp(O1N?-$kEmvYMMPe zq~*LZYhX~g$Q6ue@D=T$a26AL<)i^8Wyqr)khgNH%JP^EeW0Joo5fZ~&=$S_$CCFi z2`k$Ho>2Wrx9+Fl|8HIRZwddWK9rUE*Xrl>6K#%|U->DEz%P@>gI*>QE?f2&K5ZuH z@358Tc@VQ-N|=uXH!||auP<^t)+EBe$*F8MTOF&J)78yz0L3e{vI3nEK_DW#0 zf%*Fk{#z1Pz=DH`wI|aiNU>2b#Dqmhq`#tvxD(5?Iwx#5kV0}A?Q*1zYmh|_q4z<8AZCK=wa#V zmL}~=`sx*HoB#WU@%zuGL!z$s>rv9p4R2#(V`pO{tH=9CJ*rr8?Z}!XLN|&G@}tS# zvL%mQVeXs_2g3)NC;qYnkRYf(LKd(;@CS+~sweC#`Yp$;%^v=q-X3S4Lr`PiP2eu* z4e$+U0FVIC7nCoQFW3k4E9))uE#@BTUTt4#pGDtpU@z!tU;xk`FagLOpf7M==nvdi zm{*)vh*v~Mg4fi1D8)eFpF&_r&|<*zLU2g1Yk|N*cu0t3K%hZlM9`8D5Wv)ZhD7LC zAaLLdfv!ZLV_@OHgN4gb;-Gq|tEaUs75MD_wT(OZlHBOSY0b?H=WtE#E8yB4!4$oF z?a@=$LNO#dK6(6W`*zyMx&@YFYBeWj^j;5}JQ$EX4;4P~vWMSl+|qbyvh2UL7c9lF zM>})-3Ve$zX#4)!t(H1jOtoRLu18?e-b9rfhVg@8lr9Ew*xN64R_WOB_Zq$no>{Yi z1^#Zc5js#Pxk%bG52#wW?KA z#8qUa66>&^@{9!2`b(t4#OF4bk6H}=aZ%mqY6PunD(>LD*E&S)qFS_}0MiCp_$f=&nf|Bq8kTMq6f`h>>SLRh1#4pfMtE;&VXS1uw_F zu?MPu%0W-C5u?P75xY{cT(w;G;v4L=^NPjl-KoY32V>-Lc{%&pwe}X$uUl{&?KX<_ z*&t#x8lhNZ%mOj=A0mmPhB8k4|ULMfkr}{&2ER#)(^j3_5gjg})nz7b0asgaUa8 z0`C*agSLdg0H*IV&O^5Z-3YP?LNJ7$gLVbp?o&3zuEWy=)`iqX+ydHy+5+2x+XATq zvj?{awTDy(_5kt#@c^z2>J0J;^a*0`^XvQU1MSn^6W$}ax59X!q@_I?5-f1%ruPej+ zdU>OaMe9s4PujU|jZ4_frK^7J14K6GMVHj+G>^l4yYgu@kHex@=ZqT9&74>1Os8wj zidXB5kLymQOWe$F*PYr2;A|T=fwBkUY{X05(g)=1gbUqTmynrJSNo;6wi!7d&P!jB zQ;cjKH-U1O%$X}5kF%|Em$aEu*Xxz`Z>N9)g3GPa2kh+MsDdfYK7X-aC2^;FLivfGrEPXy@s&xGW8*1!m zvS>-FQ>WK(lyug&T;nscZoH1LF*s}m76poxht0#)FqwPwLPRCN&|)?W9BS(ji713X ziI@>#6S2emsC*3QgM5m6rl@?5sDt_gsRNEX(>vgUkfFmNm7&97$Qa7V(r839LXsRR z0aZRJJ~=)uK0V*>p5dO+o+Yn_cSZ;02ZO^AkqJnIGy=+ea=yu)9j}&maCgiH=?7_% zh^U0L0=m9guTXa~!{4GUq7qPMF$n2%NChN(yI#o;P=`jNPooo1bE*8xJ##!$U&-!l z@5T?f58e(Ahhc{(BQXJgV@4^UF=EW3=91(v`lovac}98WzpCDm+*utA9~2*`3^8K% z%KCPAM!mw_l^?JUmqzIT9=qR74o?o1#-zo}B6&p4qSYd`4p~HP4%Z?vqIyK9#b`wH z4%GsldPEse>yuxjc*JN#`3!9zEFTcutpo1t2aUtsfV+TGt!MQs-W|_f`@wF%NJ*VQ z8BE5sK&s%QH_lMyfa4eTk7+@Cm^X_7xGyQi@y!5yhbQ>1>ehRjrr_2~wJ!GBV>?e& zhxSe{AN~QIbD1u?o*A7Z-Y$IqF`ZrRos*eGZ?nQUniP)8`6e~FqAP2fs{@;BCH5u- zJvm5KR($nsSJmnw6Ki;U4cs&F<`DUc5LfB!JdI^5Z@F%9hq9OR*!SceRfG9W3AAn- zvPCTuu5OE?IY?hZmp9;CS_>aX-q<(f)B@ZJ!#j({i18b!PaV8Vy zS;}`K*eRA-Y9X-+Y87{3(yZ_)RupB(<{db8@hT?MzA0w%8tvxA8Kx`cAdSN4nbj3T zy7|)6YS!WH>g&^T6GqqSfa*E5;lejkt$Bq{%zqhHe`U_SKAt5a08E`BC?FuL|FmFT zUCo^T>B-wAZ~o=UkMv4GaYqdfmm8zo&8x$gBS8@nMUoJeh}VTKc$f2p0z-(R3s`?}_?_GQ39k79_Pe>TyP2M6nwa$6b(n4c)%cSB_Owf= z0ZewMg$At~Nfa9MQTN7-EI|=1#ibNX9WP5e#ncAVIF*LhP~`%{z0xHT^wc2o!%e^6 zL{CxEw7Z~gsH4g;<%v8jP0K*ZGvz5`z^1B}wyXcWWWa5u6>Z1d@7uoK$_v_##i!7| z=nAfpuPITJr3EG)sKkWOTbG8b%OXTozLw9tyy?}JD+zr)189YzPmapeH13+WyQMpI z=FbVtQ(HzSYkGOWkg9LtkZ`u^uXa@YEXfy~NCbFS{C@e>=Q%bGou`RMOXWND^+EId zCy8>Ywld=_slPg`AZ1#*O?jnT7KM&>Fyt<3n%x8cw-&F;#oT1s*)Ocmwvq#a}Ysck;invoUW#R~S65^mfAM(_-m;dzq-On;diRIZ>j0uxPVAtN>q|x0zsJqqte;(x{qWJHe8_qFLjTx!O9Az7J;5YfvZDPD$lzowoa(Md)>2RS@@D-8<;S zI9t`oV(U>K<#{_~bPj!!BrS>St@OrF0qITA;dN;t#{zSNm6)#`ZmcBAFL|YPIH%c# z51{FdFePnbNu_r%*I;O60`%yBh`!dBR{FHPKsvh`_&FI|PlQ8US%e*5!}~FaBvMZT z#YY9Ih zpoyk8OZAyTX`zFpz#Xfn2(gQxm>l+cgkiR-m#}Z;SYZ(o|7~=AczHJ;Pj~Rx~`r4u@7$d*`>!nO{=pgNmds z6Dcf2)w3UvE~bc+*=6MEc#1ph9)M(x7I909JkFM#%g_IKf>{7vK^AxJyLN$Ei$ zH2$O_1(VCdp6c2ZbEDgCMKQEwNu{#l-$nQ~(ze7U2jAL}>4ISe`v59XR$Q^;r_XFw z`)SssuYY#{(AtPLffe1+_kjW$GqqF}%^5@SzF0FAAy1HUbvmnKlBlF zs>CdffQ#|c<^!JAVJWYGpL&A7{(k&qTqhBJtLl*0d;WY7&WD&{mr9Un_h-J9Iam!B z+tltzb)1w|@ilYAm;F-0zw}ri(r#VSRTW?7Bb2RoG&G+t63(p9N8bZB7@6ae$^qFc zru(Q%mWjT$-Fkm51HG z@6d+EMZ^hUcYyypSgc~=Y~|?sZzNDR<#px1IKiUxN#RTq27hxLPb;*c4e+J4lpt$%NQX)1cA zZvk$n!47*^E!?mq&(2y(g|>!5?FTMut4@i&Ih5cOT2A^nCAp1WW0Lg_3x{pWu9DK> z)US_6v6Ffp_S_sDLrcM)CSkp-PSya;GYw2iL_dcKDjbd=SnFo>>-XaVkwb{r;O>e5w=Ha+cPU{-wT+P^P^B& zpBnnClcV9P=Qa8HJqz~+kfKUVMp4Zm&I>lQzs{Rl_JtBvycUV2bfT1m=+&ya{8#r{ z=>y=;4lB`J^E8BE<*A?!iU8T+AAC<5?~W?{^s-cKfiW;5T;hosUg_hfVrTP{De&9M zb2GI?&g7*;Q`@P6Y!)uy{0@JTlv^iSdgL#xQj6`5WpH)i?krC%XEi(IY49ftas~8Q z{d5_1v!J~gN5{$QE4a zf5FWXY(W#qL|s67j!UT?Uc_szNu7F)xgsolCw^s)rHDoPu7o2HJ}H@xc*rG+ez$>> zg-+DADqfd?q(3@1!EL=brbp<4wc&wK5%GgPvH_AQr2u>o z{#}Bp*#p@1wtweI`~AOKr*rb^A2Ld4Fp*_*>Ne;%$_`si+A$_U*bz=lp^^RHnXD=f z8Uywaxq4m?LOk&Ce*=Go2kdiQ>`*E}iW|)A*zC^eUy|kabUT1xNsxyj;7O5$7y9BI z9(saMDsx5sKnp_oCST4qy%!tZ7&}{zWyV`#oOKl%E!A?0+D3%bS-1(WB9sh%;I`YC zMIPj8rqx@BX}7IKvtnv1X1;3M$S}vMq19u7>CmwgeT`|6CBE25KU(FKanW?K^dal! zdthCxn~gN~(aNPyt1+ulMkgS^&N?CQgOo1F$-%*{l1(90Pt?wU!Kf8~oQrWbmHJ1Y zlam$+-vu*D%O>o)l0zLs)r-Q%J2jh?l>&Zb&OrDru68=81ru#Lip~LjO zF-TFGE*3(i=Rmt7Q8F7YqPMHXQOrD^lKIQsGDrI-_nFu1sUb@s`g13tj36I^Kr2k z2AuGdAg_)rC@DDd31)^cw?{w<^(C%^YYaHyTK8YU*dE8l6k8bTLs0E{*)y~?Ip72I z%39Q4rqL7iU-_ACb;~LvV72 znfASE*EPh<25mxd{27iXjPh+h_)zi?jNS=F6szAqxh|9DzMp-KG|kZAyCu{)Jn|1H zwg*QB0zY7zshpU+>YI!Q{qze4_9 zA&ERob;AMxrw9NX$=?B|ZszQ2WnyIeAN7S{Dx31CN`U&p#mOcFOj`B)z&-E{X=+uW zEW#D@k6cahWhIq^Q0c*14hd?T3d35}%`}x=SvrSAv_O1uDCW#2HnF^C_xE+tcQJ`5kD~d+c7z8R6H`SHgc21%}ti;v7ZOm zO^~c`HSo=f%UGI;{d)DX-N_cWr7O$u?COd#Z<^Xe6j;92!n0}7+T#^Wx}I6u0ZNh8 z*yc*j##+-&k6GG3-!p~JmCeruL|>$=uG8Cxr$V@$OVU`ahr^;x-<7k;I71i0@;;-@+y-QF%qR5gA@4F<7 z)XGQsjL+c72Pvb>c|=tq zmm1{c<&R)mbTbq-e60$tPnx{41K{y&SjWn#&O~H`2rbZ>_N#({W|&>S9J(MIVNRH8 z^AJB_f-OsfQk71sJJ7RE*Rl)6R8;1O=c0|YB!2A5HXEPYu!Cpw?RdAv7N@w;TYREQ zuhOJSi0d!2Eo;wEtzwbnFU@B}nT9B`WQjBK&o4f1@jE*D9dWmbH3-xsR;4AOw+yxj zZ@R-=1}E8obgPThfcc+Pj9wA!my>TIkaCFX z=Xcc)l|4mb$1Xv3VlxSij9aKsuM^slozJfx_;imnu@@jWP!?BWt$V_G3YMkMsGk@}{60*EHaDm` zKm`XN#kr1k&xERsi#x^~32OD+M8sFSBbaTeq{U_}{d0J&r2x}zw%0tw$-0)84!(OJChQ<=PUL1+OAhjR+sewKp zOk{v8XgkKC@!+}@r)K#t%EXs$+L z!XSk(_IoA4EF+0z4pBzBL-wQ0`FjX7B+79niNxlb)v4yJk1Oi>IK?H+E#~RP8E~oC z1?YZOR>?urOs*RAi%#w542~wEu%OJIuo9ADQboDi&(?zt>ZS0N{qPY3kt}55Yg#L8 z8era*DsJhU%5Y3nja^ncPlC0SSO=LIS7)hG)Y)<2hZ{HsnE}l;O3fx6<(-Fc5iSk7 z-i?~pir~eR+KUaClW*YRlFQmf&F2~R)`*-dI2ru2xDet9OH~w{7;V+CSKy@A4cADH zn6)gN$HeEi45IEgzD)r?InzJp3{Z`5UOBr_zI@O;D8-p|w> zhR#xT!c=jRt!#@(=en-+49ti&k*wrm2%l^lm?Jcl!fT`%{4uro^CL8`a(U5e@;i;XuJZDHwzpAC^%^gU4FCGq;tI|NjCLzDD8BQNqsZ6|8N5Xplf?|vkB zQU`J&iTQR4A|IUih~3eWM7h@v3%cV}#Ce~JlJlv847Ocd3DWNZNi(8sO8SSBXeYiw zSy**Zl&=PW{!4oq10d&|7~j4JfE)@S6-xWxkTY^IQ?WF1HZ%Q;Ipk(*^zQ&HR@+s< zRm0-vTsJl9)Eq*CiECEfq>zz83s9A-h5?TWPev(Hx4x8f2GvR3ZqvdWIR)5`uNRHA zer2o>=B^_e762sn`ZP)rtt);byx;D8@jvzLow5IV|J^DGG!=x4H9R`V73XDzQPfU8 zT@X*+?r;3P-Odm@7v~iY98{`GQYHB$KD73ttCd3 z*UbL4dW~DE#hgtGsd_gAsE)ZL#7?~9IdKcO0+_KNQqN@eLJJb`VA#N+AEic%O|!0K zwhrHguc{-6(srwhiYnx@gG#I}AGu+FErm{52;u`zswS zLVmaSA|N&!ZkDL)o$qIz!Ygf@^pr6)C&I!OAgCaY7FHI=ulj~RN~t9!d@pp0qFAZJ zrhrr*M5>)k$I&5yYBZEIYfyrTT)y~G2=7$6X2KTeGLW%>enS?|Cac z-VMi36znqJ7bSh#Ykh9N`Z_&zTv{n^VgA5LPcJ!&UqOpvKU&YJIKlY+m>jhAeZ-N& zHO{i*Lg6=fq(#Fc3>LY=Y%P?Rv=RiIi~94t7*1{`SBw;@3YP^*7%RodEz00qQm2(M z9x4TgqrxaA#r2^KekKLM9_{$s+z_d+-2qKa`q&}FU~xb(Q+U*&KkNYUG>?y}%Vefvs_?S&{iE5ZxRbJQN(f!%ERyKwIjJr`x~tB3&qd1Z z)>mnfl({pQlB?w&;+$_}wr-R@zXN(j{XQCaqdKOf%AG_rOAx=Pu=K@1n5pUC3nQhn z%TvUP)RptJr9zt!egxn!Ch;pM2#SQrUnaA=xUo1vnd{k*n9Etq4OO#_Q#2W%J)<`q zqJdMP4C2QcrW9TUw`u6?>L4 ziF#2&iw;l(q;I1dr;J^$)JlFtt?&NmQqb8ZK`k`c;^~_M4o5V^J5V(`0V)wUFNz8k z<0G~Fki0;Qye1|eq&7|eQVNsy%M#HIkJ36)9atSC(bur#h~Ts=oL|PPb~vc6bK!)h zaFNkwl{?#Jz`kgb2kt$eOVTK1mAaS$b1J&!*nw_0HN@67uNJ&iBwyb5h#s-!4rQaB zxZj3ytit>tL-`=sNdOx4=@%3WO#e7~3_`pUVSFtGWF`gjdY-uRxy{k(EET>PGJURVFu-Syl!`0?PX0G}C@M zGkLkl8c1rZ#Z;#)Mqop6L9qgTA~sTwB_q;&8pFE}CX$ftk3!8aK!GNotUgYizw)|m zj{qe>iO15urJ}7rO;HnTABt=0oKG1X6sejKfEIV8J{-D`juXcq2)T)=Jz0ht$(6cg z`~2axC#DRCpJpT<&7bSzoKdED<8RWypMg~6&lSVBuC~5Jc;;@s9v%gc3rqELjqKN_ zO19#g_Upz|aT?Nnoa^b8AX(jDug$GPW4o(4Mi4#Sz0Oft3?5;hHGi=7Z^W@}m(-Bq z7Z#Tw&=W$ImN*oPCl5B;UKHVVSSl-9-Xb-1*R+9O3>GxIsm)J)^&E|mbrQJk2PHH zhdD%t)WELgZkzEO?3WwSL9l1Vz}qtFy4)i;{Df0yrGkM&`;<70iZ@wa0=X_^TAJ6+ zJJ1{jDa>YC$gv9l^3k&}Qu|i#AQCh@vAGRk2&v7kQstZuFVvK7LetM)O?v4VD&Dj- zr=7if8(Pyu+6^rVuOmK|FpKw6Gkx$j7$r8Ghq?us{H_$NPWDvWv&>RlUm;v~%-p*E zS@uQ85>+kAJS(PDnthwv5T#9n%%yuPD%eiz=)d20f>{aTXHz2Y21)B*#>rEi5znC( zmwiMtq9Uv&F3?-r-*XhFK$-P!0DTc<3C#u0C`tds;8^?%b}@=?o8RKPmL7Ar!tU4@ z9#MCyfQ%`ij}$7_;mW4aw0Y|~etwvX0xVqm+}E^`mk5)RTR?$7l?JNFYV0U3)m^MX z_`1k~2l#j)5x?!H>Dv*7)kod7R7VCr`s8;OHcwfG5>3`_bmvS{<0A)!LxUZqf{yuZ*&Jxpd4~3X=o38g)GcyCK#f?j^nt_K2NE+J{1F|2499Ac!uzw^l zD^+bm1#J8Jv1UWouwHf#Oruq(3PbLqtBr5&Z8R>zy_MdB!9Q3N_AwAdkOk-el6|Ee^INsfkp5eFq&jdZ9pN=CjFi#*28_-(0z zMg&PpUr*ot@OVCaxWez_;BYf#$`ociah);|&Jf3DkaEx(g;8g(vKnJ8vbL9DicQY& zpr=J@F;Uyno~BWDPb0>UtRUoqYp;25Nl8QZsW}b*4QKMUixkEZ$MuMh!>sAd@8s;F zhumMR_XALOVbH8&#_MQ?N2y{oXvaF`F^@1NCOS(^34$|i4W~V5pBvfvoj9FQSE;o$ z_|A7OOnhF>pPJ{lbCkrwHwJW4`V6t(0`5w7kp#wV-K{bZ|uxbHzT-@sCzh+MNN4=Jpd7`Rh)f5Zfn$KM{2xA~t&zRW zUj^L%5R!gMdI<}FR1RiGQ{6VA6S&3;Y%Y*l<}J*fa6{%#B4!cEXQ#j*e7dU=IEgtEy%1}&E&=ds!l3e)Gb!IO?Hch(eL9g3G~Ej;`S7brEW9m${} z?a;?&j5)q5DZu$k++R6Tee^^ozsU>9>{f8^dk)^GFb2QSpZ|sju@c$8A%-q@661O^ z&^(!1ehwGRhwelz*D=a7%j2F@YG25SMjSYVL#?eO(^M8(uCK2vGVB@jl=Oqve0v24ZHe-UeAAL*TwYB7pE*H_K4M+h;W8 zehcKaBjg!bXet_4X;l1BK1=%`3%6`y;=wH+3!R`SS(FyF^d9|K($ZeitiEA9<^6&C z_dPZL!Lu?2P<+mCKtNRgjcW%7TQej3|K*{m|8_xDL;JE%d~TUcO$8|iKdLUFMgr?M zMzY$Fpg9jIL4&d0rr@;OFy*vwX&&Z`E+FbLAPQ!kd5xJNGEo`fc`ao9l9`D-wQrHy zpkO*fZ13cL*}BQO@jcDy4ETK5#0To8F?58_l$fAS)GBUW>ZsHs2C#|PhXyMLaCv{uQsC+ilmI*#x>GD z#cCUB=DavEXk)+r&mtrFSgaAT*1C~c&2T&$ywFH9ibtjJ_uDp(;fs5Jov2oNz zy10HfiZMkms(i|-K{(7VjvDGFO@uB3F?d!Cs$Uo+meUPTq?{?xTa35&KN!|0-EX9e zlY&l!qieS#k>@uYMKJl3%8`wDmM#Y+RAmsX%|*UEVhL>Mei*IQgRxj*N#&pC>lz|p zqXeStC}vQbk=e7@c43;_BR8eXP-1CN^v|iLLPsIjH=T*KrnZna+Z>q1Tg79?H{#WP z56ib!)eLDraP-M6=TrZlzdc8vuhX=Mu1jH0Q|d%G9DS zt!9$E1C=u>0p~lIP;Xv&#C;AZ!YyF%wXb;yTA7;O|37ZJC8-S$F;4F3tq!|STs)DDR`p91?PWz2>9wY%x@@MG(RV8WPTP= z$jnNAhp^0dqU_`1GX;)+({|@jn+ke!pB^~2xt|)ia+w`Cd@xh`A%0BPcB66IG2w^4 z+RraIaM%+^lWSMGaoWDWW;x6Vb~?g<)0!VWqL1@iG2~D)&Y#UVZ~%7*IBTHs@u@kJ z58+fKkkAL{_Z9QIzsd8a0H1vRWb0?sj9o82kukyVE9fSarx1?tQwI8qBhN(AKBve- z>i9uC1<-Grf}=k=6MdtsFsJ92BRRlar1H6bcKd+WKYW;;+NULP3#}1Xazj#@hP%6R z#ULtwcdl_KSQbSwM3BaywPy&D!t7rv*=E*H-YqV&#(7cfRtv zPvW*Azp`%7Oc%dGugdxc08dqh=qI6aGp}1p{chy|x022lY{{nPwliz3A*fQaC%fx5 z#{mhoV^l-H`c5x#YeeH8_xFpd0uYlHoaA7MM2+xo@In5rGCcjCaQ2f_9{LZI8!ot< zM;T~Tww8f>F#ON-#$ z*sDl=@QH6e(sPLJdpcvSITO^j5x99`?uDZisP1EUP0eNji-{o6m}(76`G|yzD#V*+ z4gO%q27lKG?}<|7qyQ_A6%Z-@AMVgUG{V0JtNc{8Q~*64zw9%gTga;#96;>tv?{6^ zRHT)f(9j{!au+y+nCyPCF&!xEk8>LM3VrLJ#|F4V(tMobM9BlLCr2l~7H=~i_V1@R zv%5eLcPybaaF9w-$VL*PrXwPru})4IP(~;!c#FhfOr%q`NG_2vMa=PD@nEAMAqwnr zgQkX=t^$gWekuKe#prA{;l%jzS3RpHB^5`;*mgFw&(hO4=JpHE8}Z_UQ?#kY=q>nV zTw00s9fcJu%Ki$uu~n>+(4^nsD^#?F)HKdpmr~?#jQDcV=AodXoZY43kZrUL zP92;DF5JENXZhC0gftDd0;{Ut4qV4sVI>GW7~-d-=DQ@nh>rLBxPo_*9grqE+3Q#* z*45ReAb5;-?;vR`r#HwsSPwMy2Fda*@i}SRBXnY1K*%W+Jjks9SeHRrB4(Va&lxGC zL?1H@w#kwgUiBm6T!a;z5r)*zycqJJya!t$c%4GEC8_J+pDCdBITonJq=5lp)u#+=#wy?7QcbJ7K&P#&;7&oixt=%s}o2tuRiam`e1P3z^#J}sozq*{x{MPw=3UR+08+$%4=^j7Vj8ESd%V3hd+8uSeU zzqCoMH4mmoBVNsa99lZBnDPzI^LPT|_mDhHi9<|&oS+&fJoss5rS#%r8%TxHtx?s% z8L_8R|7WGwYt~qADPUm_0oVUpU^jbH7fUlU*MBT88S_6qmRNq60U@NYT}w6`(31KT zv=s(#F!6p7F#dju^pE;qA{@xG=KH{W$!*3K`+O(-1XI4VtDnGzadQzjq(oqti|o`l zw8Nq6Bd$D+o){l}~R6+YzrXB6wl^j}=Nuvxjql97t~jdw`pB560Hr8wzf zaoAu*G}Vq=vPE|hSt6<8+GAU+nXI=N$F_&Jr!U|=I9>{vvh+D6 z);c4@B*hNpeCb-~uoa`+JP%R@6m@T!WRF9OZzBo=(3<7XBpP6T$d$kNP@i0jP(%6+?8I@ z6>xA9|C+XdJ~3g7*YhfDsA|p~t7p^~0~b$*vqjDL11(d>l7=7YXt~SVFS$TU4c^%4@SDq2~6b&{J-G**A@h<7qWQ*SlQfwJkS3KjX3;$ z3;wbA*=n;IfLT~y`Yhw2MuCz#WH9Ko)#FXXb}H5Mk~SjL^&e$mmMS0YQu>KOMg!?^ zc#XGbJ@$HQDV_GZYlUd>Pp^<|cY?|{nb;zE`JPh;-JCDmzqfDvUuKSGdjo!h_No1Z zk>76#_V+C!3aJXF-a0QBwW{AjpN!RXh7lOy2XFj|n(%PYM0D5_OyEmmq9jase_$>( z(h!S|jfmBkcS0Alsioq;<{3hq%uJJV3AgWEys(D=I>{`SbwZKL@kGOKj^*7N7p}x6 zJ80!SQa4^*pBtw!x%JO6d|b_1P^QBft{Ef3f5oUX#OmD5MLw1~~r2o@NY1GrXwwTGw!X!s)kMQRo$mQRlFsQol=@2PqRi{XmbQ}Z7tBni2cy=6qc zt7@@(cHxb+2!>qbcpITP&b(~SB002V_N5$eCxz7(k@$=1`L-HQfiroQTBqYEeot#s zccDMmf-s)4j&EsNE!x`0?Yx7=l4Q|PX6G1x@X}c}?%%>oS8lfK&@FRj!fAKeDPlz1 zbRET>^89oTzDZZtujTx0C61pHW<=MMF@7BHrNj$wmK>Z$Unq8SBQTN|Ge6HOrV%{x zR@l(9MVIsBkC?+uY~cKyG!(v%8!i_idbyr zrYWY=aKi;Ghm@<9JmkD6Sw4JW+|e6x0YOBYC2>bsQ)Z%RT$=@_gg-HM;+%4>$pHC{ z-&sXkf|Qw>D(88wc$mxyMt>uuA>_I=N2knvjak*kWjjPVXEss+>C`H_h>`z0dAQ2s zRj(+z?4jP)FqZkPz^9aNBzMD%2{P=Q6QLPh{{TzR2n@j?F+&@c(LHuS8y8sz{UA{N*HyquG4koOX$8R;0RQDh;|C=>f!eg9Lf)A%QH4;b6*M#nek5GWY~aB+{x&e<$jVuz<)&w?A7XDDH8a_9)9Pw@FOCfw=yTBZ$}e zhHsE#3o4TRx!Q8iLOph%=Xb&koq<8unuKcmgPo|B<0~0~jLqip~yzl3iCXmH($M|EWEcC*?Q)Vrr+M znn)9)K_w{f$X6Ig$zcl9ff%E!p$o6qWpITsJM)dDs~*=z(#%)H_yZA!dGm813X>4q z6tSM}0Kz>!eja~b2m|@oDBx6OkLoOqp(i2KWqpUNqkbwttYEIs~~Ozf*e&wah^J0{Lb@1=svQ8OCLzU&-+CZ+yDH zG*yXoAs;VbubTkw9m#(g3!+B0CUOp@X8&$<`YFq)pb7&9P1~{{8bEpcSUBsgqD_m&ADCsTkhqB z(4ZGsbJP!&T9>sx_>$tDN|q?7Kx}-7#$IeDBb5I8V~G0X6-?13q=WA!^u|@5$tt@h z@=wK2Cd7qB6ha0hRE#wr-PBR7ETl=GS0+-=S6ke{Yb zY2UW6o~2~bLBu=0si?tx6P<%H@a7NtCFrX&;em66ec#|q#l+b|C6z&=3Q~{BzG0`Q zZwo7X6*}RytQgUOu`IKd{Iisp>HLY{0~vD`lZvtV{8cmvjB0ob`dx3-??^nmarASP!S!0WewTZ}p@Z1lIiNPR`(_lkkwh z5PvI+;NILQ}C2u3qHcBxucB_(BAB0^n42*C71EMLVpBsa!20Xfeo#unbD;c`mp=5Xqtmjqt33lpLhs)!i6Zhz!?c zU^Lc_iM+IWfy{BDOvnUw8}&b-|868%gx}|70*>4T;QH@4^Z)gIH8XN` zb2fAN$H-8Jf98<>)k??S{jY9141iWT2TLfYOIdiWOGAkZ1xv;f5K8d5Rnd5UrouMU zOnDQot|=rq89$}5vD<!Q#5^{jOrl_8Ckti7D5I)8 zCb29oJl2<+nj!&}FV9L%$*jI8Oi0Ty7?~Ivni?7d0aIW|K$t^dKtK>pPXHwYP1J=9 zVRQXQf=r|n*Tn!3NGAmJOa1TU$X_q0Ze;8B&!oMd+NJ}V8rGj_eV$FDyhr)=C2+LX z&4CI}a52mJ7EK{)46t@t3yV$a#dIEC8QPuU-{8b|fZQB2^GFeMo;x`OPOc{r#XBVO z;Z0WhcH%ZY<0PRo$Uf>f{;BvFn(;YBNVFP8Etr%!c7<>UMP#~Mx zJl5$sxr{VxRMWB>VIuZz&#BMq>oxdm;U)%6_f0;D?xLjVK*|q8j%C7OrcN6To|~i& zev@MnB!>r{uI@AWvK5Bd!sD%HJ#x|TfNpYl*>^ow3AY^@{rj?UDPz;!OtojN4kE(F zW0N{C+9S5BJh~a#O&=yBMJCXAIaXY#;SR6@JhEVm?)3s_LGA;N(ir(PaLtv>lHm0q zmuR#bP05@fA-`2ZV(lkj;-dkT(0)}atn2w@syHu{;f2=K7?>o?Nnh}U zXjIH8)`qj%QH&zqe1!kQS8iS>x;Z#I-J4r!=%*G@Ab$y}8#L)rImdO1?;=i%_=ime z`v$X#E|V*qq5dd{zKWC5=%uIVa3;^rz$TBkQ*L~dCPxf;hycD$o!aQ9r_eAj&(5$9 zPs_eAdYWrj0^&~)d_v>2_=Gxx(b3mX?D@NLt~c2%)A?ExQVwb?CYc_GcHs@OEZ5@8 z#Tv|_Z4`x;(r(yP!JEy3AT{5bLs(t)xo(l(^H&rNF3;s_#29CxXZ4CiT5z3H>Exd6GrS@Zw6G%Q9R| z-$MyH3wgc(<7m$zNJ>^NsuRo42?vl|W^PS%M!od;p6~>X7Z^W0`2UZvcWkdT>Xt^k zW83W5wr$(CZQHi9Vxwc*wr!i8q)(o`-}l=4!8zx{`T^@24V8QEf0Op>1pHQmV3|$n(OLz79N`@r+~|F6FC|1eIDBRIHO6_A+Jr%7f^bKhtQkQ zfr056j!>=?E=CTc41p$I)Hxfs2^bF1gomYFH3{qEyu~1lWh3BBK*aX39tLtDkp*W# z7SZ@!LNYQjMVOf4bZQX}f+8$r?2#+^s=zh8qs074!)K4cSSlhFQ8!h>mBgUiGcgjE z9btVi@fz`3NxThVWui<-RpwTAu(GQ@3XlN zZ|@)deT}bSaDzPpNgk~J-hq!x0yi#?lF=cVxGFmv-5xzh|FnDIK%LCFpS=x&jQl@I#GkTj};iI*ZN73C+sR1 zeda;br8O(YZJYEH;A@Oe<5x}Nek{s(0|4K5W>Q79Z>zos(#^5a>Mziow&Kha=6_nd z$%)wC{}>BXOFe;ZkZlsqeQBz@}EtZ!d1nZ>lPLnx>PA0&=Aue&G$D2@Q3wta))k zAR|8w*mgD`+h%T)pY6P~pt^c3qJJrq;boSF)pn42pt*ntPCAQrnb+ZxI4q;*=X6KI zqo{o?Se?{_RHT|=^lUWWcUt<|VW?E&7u$D{*q8Qh$JgS|rrTT3V|E-8m zs~~PVOe&??^0KD(paYMoE!z#BM_d-2ZCuWLUT3>>GyenJ{1kFe2GEcmcM|m#oGz9Y zdN0|`L7j&F&75i&2_3Jt(4TT7ZO4u9T2j+ilp$ns9LMzJCol0!gAZDp zmK1i(lN>yc!f!IjxIx+RR`>cQ7BZwqyC&P^iS3`Uh+(=$`0aN?Nd9LS{0)Kazt`*j z83yZoFT|tpY?R1gt06+6qSX5v&Z`nu+lk<7jwEF41JifjHp-+Skji||IljpCaC$KC z{{ewVIyOfAUA@=3yq-6mX0|%`{CxiY%nwNoK~kmW7M$v*TplOa-x@T6ma7B6$;qt3 z4ADRPWY80HjOQ6@_#Nhp*66}qXAcK*(IwPl~%f_tyK{@g#w^Yd_FJ#GeBt{XBrW_&6zt8`z` zesdTX8BPor7Fj0NZ1u1ebh_??uY*)O_GERRe1OnqsLS-ViIt158XYX@QVt^Ys?4`S zZH-HT(t_E}#J!|Mm6%ij2DD>C1$X+3NhFjp;cF0^nb~pzR^+gwOFnu8*KGVyp%7oO zATBwm7;6@hMaBzHx(l+J$r-En7l?WlTXz6UH(`sG-SLJ@p-;pIItISWv5w|RIHYxg zZPep>YZ!VuNfGN<=^v>4LJ#Wrb`h3}!EuGo@ZzdmDXzjU`M)p+11atbL3B;O@(>vN zkgg8|QaelRepCkblSJm}Q+i!y_H$NGXg=-zi=UO{`qmrzcdrB9h^NaEIq);_aH_Wn${TUQg_imQVxisiIt>^X#$66peev zSf%!wqJ>D);_Os=*})G;wBoI!48sb>v(f`h7={Z*FxAkxbB~cVUF=fe871+>FBr~la}6|N%7ck@5*ltc8|KsyN$1n*u}3*ZrxU7p zv>PEM^ppM3EL>Wx1n0I3I8$2%0+BTo7@U-iVlEE8qRgeym|5x5ky>n*TA~Yy9{iTu z*-gFl80#~6O_!7HebdZYBeU3Bsndt7+!HS5rOlaUi}*TBSQP<|CrAWBe}MOvSl^Lm zjz=+bPVe}RizvF3pgzv>jqmB$j9u>H2pT~-Qi<=IZ;T`RBYG#Dr*y2BMaB|OE+O+y zXN8Q$b}?2I`b}^@)AI#fk{v|Ez!`DWT$Jr)Mo68{PZMW}09t}{tQV_$Ne3oC`P3^27;AW%9{MXKI&g^snHSbM;B+7TZZi z|0w4cmEvpl(f_C;WFCz0$oc!@8MFT5OD?=tVB&;NFbZC3F|;S&1Qt@HiJWpzNn1f% zK_X9*k}^qNJM@pSB#A_xl*F~QFTa)#WKCBwt(Eu*IIBaIX(E-Cc`v z%y3oalDyHS>eqCAm=WEl63(AxlN~+bXb4u^v3XOCLvJAk|H%L}PV4=gdmY(a`J!^t z`OiRo!cgy`^sph>B6q(cc2qPvu}FB~NUeeW(uDn>M~*Ml3xm4{aR-9mPK?yPh!ngy zYaF;}JrOAQ3MyiLK>u?P|6>p)m#QT)hw$Tv>$jTrKitfAHunD@&qXc%Z-iOOcMiPr zQq$K<29p!%z|X{9kWgYq?!|br8Gc|8*mxxIUZBW0%M9Wqdio4ZQ&OO(pVf=Y>(A@& z=6$Nrni zvr`WsV#bc!ONWL5yMv4XYv;u8DPYQu2aOm%;cED(h5DuKIq-F(_rBZ-|B&0KXnO!h z%Z1bD{wnkzfCqj>%uQH|`*dIKmjhzQ-+4UX$jD3EEA{;-o#aCXpnts5@%hrOe+h1X z6l>oVe0WP-`)Y*hjon7V^rY_f9CfLgyvD%vpzf`N?zw!#!Sp;Fz$%=-++V``e$2)3 zMGWTAbW&LU9qQMD>URI#!Ii0svDEJC)LBEcwvZ&f*mOSC24!kSjIBUl^9>aw9-ofUEkNn)VWL(suf_B*|w|&Mc$5(?fxqd(xfG?<55qW%BCQ z3JY_W5^d2^YH8Q;qw0ELXAe6$FXk@JdAt)@2dm#iNIlevv14{_N<(ET9ib-QbOiJK zSoIS(aR;p^=)@z7g)Nunv6XlXN^y)#@-++>V*VOH!;j`luJMyRW^IL7}A!@CUKEdskk*bqo$!pk=THH zEW%Q?`COtZ<-$JYwg~hzq(7*T&Ruswue3SMGQ7j=ANCWU?KN3UthIVtw9<(wWlqm( z^Zp_dJmFg$E}rs9=a4xMkEO(z5+ZMEeU~vEm^`Yp?%Zv6*3?9Vx5|(nM5}go+^cZo z!sIfNsvD^VLdpevxlh~bN_W2AaCGS4iA{c2pB{0hoR+N!X1g#D%pB^uBaI-U`>~^nc$rE-+qqOPhXZE-lPQKw=but$xQg91fVcx@U3wjS+hcq0Z z%EYd-*fI<;_IsOZRI}AqFbixNb;|=sZG(dwbxBdo^kW$uM+?h?zxI;4URlp@eMzje z16a_dHl0CCtf_z{(JYt=6Lo?C5=QMv6|{HjcAd3Va!F&8)sVQg*Z8sq5#O3YO6*FL z*I%jR!A22QM0e_D>d0Q|1Nhe{NDySq{HcuAM+zmyoz3?Y6RN)1is|>cJhBtY0Wos= z*hI6cKR2x^4a`a6sm?m;E^--ylB&zo%73LeX#e%ti+0jiM`GSgkq)ylsoZ0X-u=0! zPKt9Sp-@A5nVMqHDv^;;F{>)#Xf(zlX3|nrU=RZ3!I2=n$PO-yl(Xl8xCYq}Pt0YQ zNd2yqe|pZ%&$h303M?A=<#a&m9_$MJGDRJrXW`S*Y+{9~3=f zZx9~FHuU>KThA3DYK2m{MgG^+;7q6l3Qv8oeTXQ-&Vwv%C}^!0xrYHYq>NL!%9ebypAGK_9-fJgM2dhW-``M z#w!Ubo<)hjLz_kq3Y;`~96w9MGYR`XDjEuWc(#h|X25NreWa17!yyFd_0xG$ggTcQ z2UVl8RfrvCv&Nx9r^cM+g4@IXf`-g=RY>SQ3>8M$G7Kjd?cIn|qNY$PF*%Rna^^vL zXVh@qyszfTJdX^WMmm8OYfAPaFN&L;bo?4_SHsv^#f~u3Y)2k*b_USa_5o0e%SyG# zdD-P@UdYdhhS*atO-|p9+D@s@)NJgpn#6G?T((Rp+8pa(+myswapf2{E*C9R`x>^| znPol`90a!-YR^4>QeW>`J##~*rf+bA=Fgo5t3t> zR=$vSVTv_aHCT-u zN7UH2Zf0LlG}Al|M~MvgA+*O338{|xUBkwKcI~gSs$}PR-X&l+yBP#!iw4@Ia>P_I zKGlTN$@scFPC?b|HF>4me;bIFw(_zoDoZrgBm%a4W)x&7zgy!;G>ux&Enb=Gl^ny*p#_mDq>$$bvnx)f5hxo;{&wiz$SH>>9v5dK4@!T z%aZt7f#6cLp-yaSuN_fONvd8>C(^DAZnKni-}gy_yUh0Bofbz~uTSXwg1ri_aP#FZ z{QYNaCH|hmlT)@b-5x`uQUmR=5CN?)xY1@|q(Zft?oteA*Khaxu(`1mIi2XM#Uwcr z-#1gXowOy+013R-kCu5WHT+{=&6=haq7_-V#JqfpMl8CcTkVVSmxL;1TXP_hyKV=ltA1Mia!mQZC7<^FyA`?M{CB3N0pb48K(7UE}$wwux`0n7@5qs*^{QP33u z!C>+hyNueHSiOenX7U9fRSY0yd&$GWxV1vG=eCB13fBrTV+1gERgVyO07oOX%ODIj zZBGyraBf@wIG#3itqJIv%YL*kC>D3n;aLfwM%5nFdr#v5b#blJ zw|B`;rzBZY`aGFV!*|(Cc&<4L{z9#)TsA=6(K2li_~1L3*`?X$zTgiu)~+AMad-&B zT8;+Z$bMPg_nl_BmQ*A-B-B9QkT;NiSs#?u&&ts6BMe`WgV;=V` z9`{Wg3YLhwN$o6-g*Xf@;2$Y0VGLJZ8y17jK0XuVj8_sUQm-J~V)UO}7&9YgxNV7T zKYjBtE!m~#SM8hE3&mLvmdK?QjAr>YtrUwtSg8g?SpxE92#-|ak4tucs)%4!_6<~| z%4S85EID(Rnp&QyAhlDp!s46MNPKbUIjzar=Un{8xAJtnF9liVQuaS|!fK$_*7Gws zMfngI-{OB?;t(ExI&CmjR*ldQV<@bCmq1Zg#T}Y#wlq{#4(F+>)Fy@+q-c1aQ19V0 zqd)KmqvPkN>4#W~o~r;wuTWhqlWN>IIEnOyJF=u|R*3mAg=mE10(_f2Y<{khEf-jD zIihW1lA1(GDHUh6CnaUA;|PcVpxgeqa) zi-Y3kYrFzW%>ulZlo5Ur_O`P6@mvOG=Suo93sE(1nAnA?Lc_zXa>jt5(ypN$nWn0j zYAMaWX*~cVf}_UOA_yB-$q~#yrX^HfhykyFX=2wkc6>K@Hhhzz@bd zU;*MgrwV2y;(9RcO<)=ww25?D5!#c4B2M2nt2Cjr7OQg!-YB;pZqb23FQ9FG7y8YS z9c*H1t8UUqU&=HyhCnaKO>c)uzzKZ(zN{eOQ9h+G{66Osrkful`xdtU%6I?yhl5vq zc@KWb`47Q!0%_GSdKFv%r`TLsYyuEopP>to)RKgA*-e2KPi&(n;mAVL*lQjERG_{c zT%Rtw0AEKXoU1HYkU4PM-<`5Pd(yu)+8K+46$dKFq2`M_K=#a5YMI21Q>8V=?nt4o^@%OCy)3OKj6Mt-Z5Se5$-0 z_l<&j!m3!jNH6pi^Xm$bTEe$)dne*t$||~UsT296Iibr;VtVI{;qAFsf9o!@I(1(@ zqf5x-c^o#07Aps!R&{Z?glP<|>eX8PeyxNlY2@~ihLiep=}F+Qtf4<`p6kLE;H;UC z{YKkUTc;K|$6PQ}(mBP1!I5X{{7iVvKc~B(A5xVRf?i#$KYG9D{u*0$AUr=OPu{_40sv=6aCFK=E)#@q?P zP&@&{XBlmfZnqYm~f4OB7v;mDC8ViWFK7 z@;ni&u3gV|64_NlWzD%y)y|5>*nKlsLv8@XQ3H`+zig$JoRH3Xq^$tg5T{jx?TmlJ zzHc+w3EYvb^XVd4?L6=&b^fggfcyp4@E2ItbJl8n5Hc-HnxG&FX03@3@!mtQBn(@) z>+S>){D~o#*>S1TaG#HQ0$JG}HqhNQYWT4+Sy;`=n1= zoe^D4528E(PPbv!4`4v2ihgVDSNE4aFtpB}6g5Ju`99VEnzZG^8)3R4OA(Z7Ii~OQ zA1{o($ys{C20lWb5Jgbb$B=kYxLKz@%V0g=%r}!#6gzi93smnJ%JY?<&U@)-W=?BV zMC<@QLw4}QC5A1l%dSRS&ndiV#H?UxtKXc(7{X_xn>>P#CooT(AgAJLUtXFn(UO&B z#SG>csC^+0;7+p~%@|f-T@M_;*hWF-6TTlA2b8>@;MMPBK!4%?hYtD2pu%27JecTv zNHP1(H4^;$pyHbgad!0hCz4T7%5H%l;fwW-h~b)vq&Qg+zwuB678XT-5>6td%-GXh zfi9bMY`N9Z`j8#s3pp)PZ72Z0H%@S}rW%M~pRqRQ&9pn`?e1a2?FZLtll)-j_j-$Z zYs?fOjJ1Tri13ggD$CiT3^PXbuX}DprsT~Aw}6Exupn}0ZB%Op6d*iLqH9Pn*Is&T z=$SY{Je(-vJ0UyqA6~wvWOA6Plu!g{oj1;(3rZ*Aj|Hte6}j~0Ic0JPOf~qC19SOQ z`)Qrn^2XaSp4{wv^>m-qWhAveg1VRk7s7?~5j$pe%<}#6xtmG!@7#MZZE7}_7ZHO~ z?nOa|R4RrI;&+7%f@fX^wdlr;o4fddH1WUg9O!XKv(uI@zh~X>(Rm&xRA5EMG(IYkv zoe;Vcp&7d^XsJ7JO7pZWn|gv54jRFF?N9uU5#iBUQ~Ypq|~{GxH+; zq9Ti+;;C)~BmEn8h~pu2|4_tc^;E0>L^s-1#&SOuy4=bC#nh-NWXBr4I5&ej$vwvC zoY+B(uaGsOK8VbDjV6hrBlEM~ztaEr_@k`V0Ar0o1Oi4)QV!g1ylK(XI+-~>Ej9*a zYweFKW&&X2R)%_Yd^+B2dF@^(ThpP7bI>|TdRl#7;XUoXzoM(ZJfr|MU;je5!SHhO zK76mLenI{CLGo`MCT!qr@*kysR{t;~@nwb7P)|hw9I2WIsKN#$YE~C4stSr@OG6;# zYb$FfBCA7mI5g;&H8*W{ziN!!@v&Qq1sdUgoJRYNVUE09+6uOA+zD+vO?!E4UvOmg ze7)Jg_quqK7{Dk%R<|mJp=}-!4|^PVzqsP=i;FjA#m5g81-sFc5UPZEN=pfwwk}r% zd!-{Y%($QtQ}63Q`gV?t{mG_|c;yc!G}I8*6c*(dQvEihbCMiqR<;r0SMruwQxxP7 z(Sls-G*C1YNy5xbl&WSlg*uI`MRfw0uw=n<90TetVHwL8l3`h^sZY}VV||{y+UvWk zE-oNVYtA!(C_EV>%OUJ(LP6c_Dl#p%k#22z85z#s;z*-|qQn{s688*Pn4zhi;* z7-XQ9(NIHYpl%Pt(cnCqAC0izHtlz)MYt-=$P0&CD;T&)$wo?Ab5$K1A_4ae1CQyI zmIC}U1f$`Gzk|vl5X!33{tC@2msb(wKQtange7RDnK~wt+=8y7DF3`7BPHX5aIf*Zc3zk(ztn|p`$G6iH8dsjbfF!voqPx0)WFK*e zjZIxyT)})f9Y2o4r3TkmWPqCd6{HE2qvDtqd;|9=QieXbTAM7$;g+nE!Q29{{8n}p z+hJLtsdxm_h-os6!ivyiYE+H3Myp`zw2~hnwVQN?5@7P2q5{U%2il`?ScT0QoexF4 z$p?Pey-H{(OHvOACk)t4wED{;zL+5XLlp1BK&X5(+u z;WU~CX~bP3k20p+huO9`UkUhG+1TDzb!2aIl*V>kNs?xo-fB*6!Md`3)t1`ixX zR+I|8lcTC6(3L zB&N;~tD>hO>IoFPSVvvS{WGU@%%&5ifi!G<{&+W~X&k9v1ByD7%IJ=d7jxv`VbSuQ zo3ygpx&67SSd`6YQEN{WdwuRFy!J(=Z?8(;D;=ND-s>j zOHEAZkM|!|=)!y+haEq)NkF=>i$*t>X@%=Os$QzWJK=;p}_wUxVafI}d-DdR81` zS8i_HUT!`khf8l~Uce)cO7ceFuG^3@UFWhf$oI74N8fN?*(ZJ7(W@ox5NQe^Hx`fn z9KQXuJs`N=tw*(GJ7ZONvQ<<8O&oVeZmGf>tW+!uxMj;wCUd~H;{e6~<&xVl@p1rg z^wUv6R4d*jf>5KrQf&(!hL_dN3uW!9YrguVR@420+BiAwuPeWw4Mk{Yem^nit0=vu^cM z*_i+U%P1|aCfmj)62od0fU0tHaO0w-O|fQmpwvZ8E1gTr*HYel4woJ2fN}p}T1U25 z^Pilft&_ih29pkvc z#Qw1dA{&~e;J|n=z$x`f?>+eK*&oK_t{6%;cBaJHeL0|Z+i2ZgaexV*`vid0d)Tc4 zpLx4=@fI3+;Os6x(8AiRKitjFn5SLe zgAJuJ3MEk6<;8a#2r=Bd7nqVWWiysnYt~adu*RGmsrHYn1JYfxFaawGAGpa+A6xI# z6-;#9fZl|ICz8YnJSOHv#Pw1@0Z)dwnP9}^vb^=GGyUVrZAsAGWUO)Ek7bnnEje7l z;_k>jX?G{)Ojai4#1iFKAceN@)`Fvo6zbn3-X_Nz7c5pV6w0j717K6hI*Y4rlvA#f5YI7HQ*kfGe&~0vs^E;J zReY@Q3?LsyoJbqkV(PUGVKdXTp}I+0MT%c$QxaIDp$C+Fbk7OkL<&+u8p-84so{>| zP8S3%{n_r$^yFjQj)QsPrfPUK)-{pc(&U|`Y|KU4h8Ab;0wXOh-eCx^nHe;SAhEqj zsR3ylt{q5^0&|opO1SEbO|IjpR)j{RjLd3DMiC)MK~p{%D0|jZ=chYt#7kr_uBK2S zVYXCTwUIH+8n&p-UE0k{C(5$bTn09DSwf6NDLlCVylFSF(QD`?G`RX znPXtZR7n{c_I_igQ})sWZk2_YZflq6dLD9}yszw@H^yoT|H6Fv&ojf}^VZ>QgEgHrlln1CwbDpkAR8-vK;*D+2Z@^0#*P+y}BCJ2`X7ID+OEp z;5AIMAx)Erz;3%8U^RW5z&iskE+4(UQSM{CPpjtns8+Df6P8Td`3GTOzQOp|uaLeK zfcyPm#0@^CI;cvKjTx7Z{$4r@Qn=65WaMtnMC$2%?1V43q6)pO1*BzrRX!bgcI8 zSS$>0R%bVA5AwjiLj0J5$R4~NdTp7c9fZ6Qe30;9p`(y0f0^3s)n&+%DFIE2sL;a6 zZbZB)WRR9KPxd&Y$staa)+S56G!~O^*u21&D2vg?pRacTCTSCefSo5XPvaLd6)nT5 z9@tl&&Lr{|NBHlTQY7J|UeIi?P1ea5sep#AN{pQtp#DIHaIL@B7WNF;lvM1>%ziUN z6z?b7RwY%Zy!EX@)RIgc^-N)MIsIhlDL6bUZuk6Ft=uE-W446xwhe@VIdmJg4f9T= zl5)=&x^xp8CYnJVAc|BnTlKT@n%#RUN_d=W$2nSba45f)@t}(rs-+}(V=aM|0I0$h zrJ~f(3x~Awl8wqmbE9UPP|0^X?^uiXZKM5%V(rrF0hw!&i=D%{YwC-W-G!#lpe!wG zC)P@qrlpEZ*nycH$(z<^5|-WDxnAU@0JS^o{oE_bIXm)vyS?sO{hgUl?0S}-o#D^t zKp&nLE~sZaL6Q|VBeD^#S78rCTIJhA?_1_Z{e=Va1$wZss_fs6peM0?xZ12>Jgd7{ zL1d>GL2MY@L!T6_BYW6F92u~%G}oRlAe0~Qc!Iz)<9R`J?m#Kr@SG#Ne1Yu}=P&@p zq@HDtiq_A^6gfDTG;gOt*3or^ZBx*@Hb zYJsa<$jJ(UuBLWwcd&+*m6W{UY=%i5+FI|BMcd_r;0tm%Pu+uX`9|9&mE-Tjxl?6gPS1~ zhE^zn2`K8S^Zd#w1xuozpd61+DPQ`P)DKYYFkdQHMMEAG`GenUtLd!thj5U54-n%K zo^)KCBT0-g>PSrCg!%Y)PC{oSKDNc2Q}H7$tU`A$TgQopO0GM14Wlrlp>>b2AhwVa z76iS8ush$I?Ke#Gjmmu=4Z$TPns0e_O_A~=P$U+mJlzSJuHVW zYUdL~c3k9E>E@C9^0TC(S<1Z?Q)-cJ1?RZ#rPc3fP|#XLE*@eGmH8Oh zBX#_dQxjK#5=={pX6rbo>)eYL4-8^j^7=LPz1c#m%$-#5{RW=oXX}zNcoG2))Rz{V z(1jK_X>t8W+?M$4!ww=h^9|{3&NxwU{Ua840vu|XX-`JH&hK-Bru8rlji$`zYDNjo zNR>@0=5w0KaxofC&2nIcx3-;O)6{~v-$OlTv5&`rJ4!6)%}>hXGk3b4TX+0zJwp53 zf-k?LHM|)qvx81p+AGmw0PRGI9ja|} z3GCvYffuL##d?wdk3c5G^xniIeJ`tZ-L6OG)SN+>Cf%Cll%*-;)^lQ0JhkmZ;OXIG zla6u|B@KUOxoefL%@@Ca<|S&sW|88*_vI45xe4lj$3G^f1}@gl|GfsKW?}4X{=d;s zOoEhL|36fwvx3E{3d*-M-Qpe)5!TYow6hozvmsdOtyrh|Bq^Ee6@23{5w)$i;ID}N35V+fi} zo~7Ng3?ysa?5ckgwJO+VH`PO@Me;%*?oM6|CVhi!{Uv6FS0D3EEiY;0QE zk38-eD7nr|QHAFDb`%WoOl;ND+!U-lLiU3IIbbUGj3njs=}aSVR5QY4L$<7ir9I;8 zRgN^DG!EsSfzN!RDxBY2)eyj`2#5|4rlL?=srOZYfda#<{RJ>azxCUBcl_LVwL67@ zntKNQo%?X7q_@zNOEn$bKvyNTH;X1NL8BR?TYYRfI@@m8DE{6IFWv&N6_GbB;Mw#` zsDLwrjyni77lC6Gy;xGArjy?@*c)Hk+?iAY@^Gw{f5A$;Fqq)n`27Jx6bQnW2!q5e zg;OFL)Z-u>;$d7FbIJVc=lxci2er8^NT{YB0@l19u*y5~KUWsgurJR|x)y=f)?66wDj}Kq4U0xt?)*6o1SXgkj zS?Ym)nE;spnm`_vIpa*kvXQAmb2O7UNGsjHhc-ARlCk{)%y?m8mgz->VP6b=-igsD z22J==i+vwQ{KYeezm6rE@?cE7sTas^q5v5(g=)b$ez(ty>eC08^d1XKAE3Mw`V=uo zhcK*(8N|uCZV*&r893dmX{DLs8*6A~h~vm9F3?J$Ck-?w)pVuZUW9s5 z=qBvZ2m5HQAhsR1yB!GZVyj>Hz`>f`&uQm8)veu=2m*DBLxE>+ZRNvxD_t5Tq?A_` zugb;VnA?YlefONWJz=Cfv&R?rBcn$SD*KsBPTVtFTRseXcujj*>x(^LnL}DMD8hb~uBNYlv4GNht&J-A z{;YSufB%6Lvam6+b^5lR{O{`jk62y?s-ON_EdPpL4ccK()oyPyOZ5s&D?E!_bX7*d z5Fk3#(02O+Pg2_9q~BxGi#z>I_htmS7pC4HAsk|ETW2C#ZJi#_Gi%nY%hho(netX7 z&n9w8V`G}V^4z*NF?Ix`(_hz$t?_%@qyirN?SUf~i9dX0*^z^7-0L~GXkVi6Qo(j1 zumRfO7Ck8%s3`PiF$h5ucq$&YG0?4FbT70bweepT!5xS{fjPgsUHZG*DgON&`jk(^WyTV&R)$yEBbOW_PN**~8r`IYZ!7s%p&(h%em}N%WFhU99 zi9b1C?9N6MKr2SQU5dcv$f##tXJQWWGukxJ7a$1dF_`WRDPYXQBf(o4l;qHPLP{5r$pD@ zKIjkadb3P2wTz<5-u+9bSuYh}dw!GKi{Fd1ME`#U_&+*R6&)oU5fq*-{DqEzAK2pb z5rhh>tz1IC39w_@!%h1j90;HgsZzjkUBPh}xso)&_;kM)uc3Cl??NIaDOHcYuakmO zui+3vY)U$x4!a$%nKpc$hna`cnIGCCp%Dt5R{K1g%nE~lEZ=$u!^~0IveYKT&Rc)o z)knzLOIc(hMUhfdmk*R8wUF>4`};Q`h3eWd*uOk?@&tG<>}+>a=!48n$F3k_*j;^L zEUqiGV23oNsbTUXlseG+ev`5!LcNt-f+=>D=aVqslj}LT%d8U$}ZZ&!%*` zbK}jB&YAXKB}7Zdh#n`$Wpf2(gwF&Tz^>o$Z9V6mhp4Lf4wl!@-y$!{Qg)!uUHaii&sWlK*BLEWt1)nD#Mos{&p1%#+TBfC%ado(rHk{nLrI>*oh6Q9Yts$xYYN~#hFluNq-MBfyt&qoWJ^o5PqzE%`NCQPX_~kQGalR_ zeZ|iBcb>8ipdy`0*LA#7XaL8ge8y_3TTl?3lSsr^dS{0yp%%kCY0a-1ay3FP zkDr1h-?ah=QxiK=GSv&tHqt%M7js-M&Z+YMa0q3&hbBv4$j=ZT>}5gG)sh8P=L1c2M8iAppc{WSt0^Rh9ui(VYPZWWlC(; ziIK^a%(p}ov=PvS`(QypP*5mkD&231PF~mk4m&OW*_KXag$?%|^`U#&a=ZE5x|+K2 z`*g(Sr}0gdkLc#E>hl$a6BmY)bO-yqylFr}fvMB+Psj&B4e}5UUA0vg78m3d-NZ1l zN>6|wn&UPPXV96Em_LJ__CV5EoPq>Q+a_E{IvWUip zyXy>M6UIimD-CJ^-7D*?Jc`nkK_O&<9#$TNR*0q8pVU=g0a1Ps9qeTW%<(G&J z_e;jmDHY@@f2TvO7sCWg4E=6=<(0w5oo$>$Tf$flbU>PHVRpvyB}Ih zx7=?_6)J!>Rp|cNrGGrkGJ=L~7dzPhq{0(C9DOP1M_$n!D*~px^=(tE2Ti_*Cjwvp z7j3}+CTt&Qc~W6aK+~UwJegWj_U?n7!ZQe^>Aqu+1T#f?t)OTa4IYwwA|eQB#ezIw z4vl2^^N__^dT@hq8}Y6t`~_rGsA5k_Epbapq^Z$AJw|g;z7Q-!bH99ix+VMoNI3B# zGkmT~kW|Q)xnht0ApQ!7v$5`GKV|P$xqclX5Quokoj(SXfJXAYxbfFgARwk9+6p^* zN^3CHxT9c1C1+ARXFVNHK1+}qo@5PiXH+|_9`k0REKp69WqE=<0G=F$k#|rRlVz27 zp9mBGpeP!AFX0ZsQpB6E5VO?SJ5m!fuTSp$BotskjRIG}spOaG{o>->=%PHz9yEjb zCODjS8}%wVyuwa(fYS{~pJ0!JCZrvIMN0#znqDIqLl|p~uACfXLF5~KMO-nl?iKw> zb%Te4$wp7HPln0HFmz33EPc=zO&eOguUkC6JB?(}cBRm7gmU8TYM2VkP%dnWYE5|{ zrD%x8CFE&)w*WD&^YmcwG?nXC-1g25Emk2=W_?1c%zxpRBhW@FftTWjWLUmL`ryoa zLBeDil`hO5CERE}HO)?vINJtS?rClx$fAI+l-Xf9-_<$2p#4;PT)Vo}UfN`%SGm^E zvFOeZe>Z;c;9u32tS%js_!padE$NpRySk1*=0qDbN8DCuDojT<2TxgV<~pZl`zO~Q z52*wrr_!h_?k2__ZmO~jqIdyGRpB63_B?kXEhS1=5{_7MNq{?W{kgmR`>BPwxvgcz z#m%Lyo!!Oh{S^{}&~nvnbJ<-hqcH#BvAOaR_5c(~qGUa*n_%Kqw`()hy+zc?mtB3M ziRz2+raX~ybYu+`@=qGk;=?Iv(~aJ6Ec)}T69X0|9cadW@c|;L(6NR^ZQ7oVw(?q~ zBOMgE7ZF8D4?)j&o;}ek;XN`~ z7}3G%oz?GAO<8r%D-Ec5>YKX=Iz_W(~b6;2M>K$i??rzb8X0=Q*fOf28 z`4jy-LDAmMvPW%a<(d(6)(#xt1)iJmxSmq7-}wdVYE9CPL^wy=Iw!OP_)~`=hg=&c zjo-_PGf3pzzQr8Q$qjY8WmHDywrY$0Y3<#T)4Te14H%!1JBNcMKoJq}#I1O-e#$&)DabAsrn*KP}KkMR5^ zQ+u`>I4De`7uY3>G^4iwB(kQoU#XYi422k2 zggx7U8xsy}8rExW-xiU^c|MYLA|(b5ZiE<3FAw-YJd{)nN|ft45v9W`c?D8l3{xku zcOE2iCVv-A(vwVqGv@b>I;|agdtgudr)fpymBcbks!Ay$ic-4&LGmUtd2w8tWH#{^ zg>BDjqrqD3prW(<5hP9$t{??xn-}xVsn`y1s?!QN4mI`U{XLgCGc0Xk)7Z}LT&z+welu4eAjEPYJ|I5_#fONzkku=*ImF} z1$+bj`R{S}{|#&VpTL{{y0HHDd)7zEN^U_O!*}|0x!ReLjFDDJq0>328p7QuydT41 zEO6`>@vvM-PE2Brj-=Tw-8?0=iOzvedYW2C|Jq@8r}+&nygd_5eX`-3W@5CbUW z6O`gdtOI487@?pF$cF(@KDyL#L%-vD2~&-^6Yi9UnLd@ht^Bsk^jNgAnN#>&k(H61f-GIOpKwS5JnMf;rdl(`2X(I%)QRb?0gkpxWY zW?fdAu-B3PY0M*%U0=<-)rP3GgZG+4Sf<8RmE=Z2ncd223GdM|_FF7fv~yBWQu#jv z9$(~*{uT@mEYo5Por<{snh33}EjkMBC#Lu$XDD3QV_kz@_h6X0z9pwt z6fU~P2OL^Phc?jE(9p-+RZI*~N=Im1icU6{Au4zQ+m5@yBl*YJ*R{qTDD{S5eqi=@ za$dY*{m@N(cRWj=g66^@Gzx)HE+dV8VD7$*U}_)?h7j1T+<~#tmj#j%3XQDBW>{~RP$S;fb94pZusVnVp2^@ot3w*=jJ)t}E&*zq7X zmmK~h4#Jw_AG)Z2YGH*5*?xHho`Eby5&pZF{9y=E)h&v_m|9o|KxjyZRGYpGK%#s& z&e3SmT>JH>Z?c1Dc^tU|lbh*vhLf!6_O_nxPiq4WAs8l!U`)Js4?}`jLIP8+ zoLFbbw)dkLn{?Thi^u48OI66sPKM&Ht!8V9e5c`+s@$V1q!P6ye=3m)bIq$}2SS+< z8SkjpXYL^LLoFb|a_`0_};~Ak)E)y7%CHx^CcN@6qv}OxU*& zZ+pLk6Jj5`%^>!c82`vDN^{vy!akSeaH`c%fTu_75MHG1Yo3Y=tRw`Bl7HAy#wNy! zP@jbp^+`R>@mXI%%ONoOu}X>m-k9+YQ5*XmO5=%ZG=ui(+r)i{MSj0z=sl0XtS4(? zow!3k`ZDPdTuF2t_9~;YoXejwN+jq8#Xatj+~*%a&g$-rY*BL$%sw3dQ#n;6b`0X1 zRTGC*0iGKN7HrXTW?0%(V1ECBFiV{7%7~$>%;%pf^op6_CF~>g7z7w}kgS*e*Yjwl z*Tz@)`|S(&4Wdc^?d>b#{*Ux-18Z3Wn}4cli1NmF%qjwp5G$8~4l~ftPC&jP5=@k6 zp`%jZuQ`Mia#f3zc48}ab=UH#f)A*VA9TFp9);gd`X8iHR~f{S2oqtKkB`oIyiV<8 zJHFm;P`iwgSkBt>vyl^6^Q{GYl#JDlT_t;*wh&gr>V-H)Si=ki+-w}S3}vxu&43gXD6(?98XE-ME+D=P`<}-9zwK4+?TagMd-W%1k8d(~&Cz}~AEhwwG6TP`e zo9S2UeIP-IY3|)7sWBpdmZ*%jDLs5Wls)s@zs3trs!^(c{i-@QHw=)J@i3uuA-3yK zHSlqnyT{Lnilx3zkv8jlw5hMGy4@<=_=+r{Fb0Ac%zDMx0pb%Jz)7B`H z{WQG~H&z3eV{^#?(XKYpZ7DTk-?t!L~6?kB8gEj3+qd=e;k+pc}r_pd02|my5sii-x*RO6et8s=( zq?2AD5quu=oG)m>Sz)(POT_9Fs;4Z~5MSI=5FKp&E{LF{6BEZI{gtVxI~xPJ?)W8=_7ox=0RZ16GNRaUg!fjr1yA_6$YWX{~yZU zF}l)i+ZwLeso1t{+qP}HV%xTDJE_>N*tS(kDoG{Z+V||+?%8{v^R@Q=n15GWpu3)@%@@S)tfMbIc)$TU~soN1*kU842@?7Ha=D>P3((p2KPXJO(Y$nA*DQkL}CF*B>(gl`cL8h1^4Wi z12k_$Z>U3zL~AI*JAZ^DYG}9`!;XZAAR`w>U_31_jm58%2{XQ@QX`}L`s15=)6z&@ z$}rg<&+sN?0gQU}cfQco+Y^UH!Xcx=aHClT541q5dJB)SX8HuKMSv&P|4=RP&hGJ0 z>V>2?DA|nhMtlrW8}}g0ypxcH{H4u`qlYB*)sVuK93d&fq+<wM8Q`9MD;fhWc=eM|&g^S8MY)EW#op=JAk?4-)rN^4*II|j zzqin+q4RA3)4&CohJPyU{ikWrP?7u-0acU*bkGodU?d7u1Vu!Ez={yP>Lb)+(D%ht zEQp5Ow_3F+YilTnZ`*hfkiUL>@k@5p;>b z#p?Os#zI886@@EeUk1CKSJ zc;eC5k~C)n8;G@tkn8q)lLu-(Eopj$uw=^oayLF(lqn*n<}c=$ z5HA9a8HxHEPNr@)ejb~-_~$WfhWfs;29Z9g>TWg@y~H%hH4=5ZP=dzqGCWeF_i}do~LbtE2aq=?&mGoZcYuAt0=jYKcPlM9= z_`g7vUI+rdGUoJ2W-B>z$<2!2yNM01ftoR7`3E{<&5Zu)Ca_08vXvVq{q@itISKW+ zXPn_II!sQ521*b=wb6Pew+uVW%o{K^yw>f{WSBAu0cONnro^ZlAiE$v*`o8KVg;9* z9hYMiL(L)t4!pOsRB=L5{`#fSzOz*^OOr+Rvs%+-bAIMa0_S?8J+7{`+t;j(=2KXF+SX2NO{8>G$|RpW<8Un7@1uT1-rk39L%5yZx_EsaaWOHMQh zgjkpl(gS=GB~K~H6oFIrCrM%}D99E23;Swa zr*)9(_I{G+jj#m}C&@Lb&D)NyVAm?M@XE6f(rhJJZr9h!bJ~3$*DYR&x$x{?>`=$h zY2#^PsUDCrf>M=?VrKPz&#>8ot2{RyT`IYM?axnMv0=ekVV9O%WQ-4{wTA}>ZLRAF zB*AK@s`tvNN$uVw(d)0;JYzB+Mrm1ZFt#OuH~O?P#^~feQ82iG8BuHH)bog(q%-H5 zO?&cP-z3Xw^GOPuhiY1mKT(bT<>L6xgpBM2`1Yu65&U`6#?P54i z^9mHEL6$cwO?<}7ysE{CV?1L$4M{8cLV4XM)wgSci>>qXeaeNZzOt4i=!&Q1?U!IU z0ik)KnoeufEFEXLw^g^x2vm2!@o#VyF<^d^XCD8tZSfT!5ji+fvCu-|uZXxY@Vs*3 zUdB-q1G10i#C`(5;2QJ`>=v(yeaW+8TX`nRkuYOQjL%MGvoWQpiMtD7fC8nIHREG7 zCJTP3fP^hO4K+RYZHg-#&s%9pkK#K#`&JC~L`P`L`}QDLn?c+tztaFcyld!+vDX^F zpw%OTU5X;w_YVQl7-esqP*lDHFFQtP7fj^bVurnA>kPMfzv1CI`!lKgK!w%AfT-k0 z!n!TYW4s|<0ad!eo-jyIlPw9NdHMIPM-f_)*BBm_Te0_yWUY$FYC8ns?*oa98^9Ac zquc|##_gv8_NdlPF&x2F6!UR^j|4f+NgJCAjMB67+b{cTW7*?Xd#ui`Url>k4^o)D{JE0qTg z)EhNfvNdp!$;lA9Q%Rg;gku|qaa2=wSz4mr_U(qyqigy**pu#;)(+IADy>Ei z{Vg4qOcHgLLIHpoq%U7E{&BMYpWsJ~y0weS66(jbiP^P@Q<8ul0+LX^e^LMfDyYnU z5GZg_fC9h=q1lAV8JSGxSng&MpD~8+ZS^+8=p(<=SG4y6bT0ZPN7Gcjhod^& z=Yr}Y?+6R_t?_th9({BrdKAO$_Yn#Ch)i~nJbP;PxrOd^>CyJfBgKdJ8BycB8bI4T zZi6xMP~vVpZj&)ayI=Tx31WG#hM76k!twXp-QUNg*Pu|zhXa(Ua#eR@v4Vm+EAqRY zPYs$WO<=!bHYALe%5~k6yEZoePju+Os1;Cx4;G`cbcwEM|mAjTG(X(8ldl zRh!RYk=ZYtC2PE>XT6BUE@outC?Z(XY;xZ3pzLR2kYB-Tokn&NjdlFtJGi=2qpe25 zCV{MaKSImtl&JJ02%AE$|%wut2ywD$y*G42JBQm{?PIwua zZA=M)YgETXuV)t<`4WnX@`T^`I0Ub!rhtGR;1&#yv0+DzvEIvykv5htg<7T>UDY0X zNVJCH&MbjMl?biVvt>JfknTID#IUmx4`LmL$27%YOKrxr=)sobsJkPNr19#YbG((Y ziXY*83l{8_7Cc!(iP+^6AP__lv-8A^6%EHW4he2#_}gG5e2I0AEHQU1HjBG*6uidA zWp$C3DJM~ID{&bb@PN!EVo|BUw621jW^i%gO+=B&24~JIIyO9`ejPS+5;M{A=@ARm=ooxIkb?{ z$g?X3k-2yS9cH**3RGkeF5I#meudcsYsNrgutlTHP-rT%A=YvUVL%gg)-rvF6OMm` zLUy)(WM0;pMD8@8Rt8p8#uCua*gt=Ow&Dve#nS7W1&h|F(75g24o9Y+FLF_|a)+X~ z)(Eo3(9yn?j<$M14OQtb+#~X>DFCa%(nH!=cYZ+$)d&suQiDH+&km~~1&_+Z|La@b>q1UMIiVK`co`M3c%=&F0l#g3m#rgGGz3o9L zF7~tC&W{$Kh1lHf?^{`(os#ieX+#F=7ADSb(Tbx6;b3(8IXAW>-A)h(j=IewBi?kn zL{dvwvP+FW{l;2HnQRp4hM6=@^zO$6_Y)n#M<;l^ku0j13Xm=jQ)oR|=;%64O*H~v zZ4+OIGm?12_F+u~wbjGi4`z{&LoNguxC%GcWQ#O%ZFQ0AN(gTt=26qe>1dA2R#e}M zA8+5{WuuwHP79q($deCV7u{{GY~*4t%bX4`0*xtATBor)wgvW<92CiK^*=EwK2i=G zUVfMDNdPFCGmDF?@a*O@&bhYKSV;;iT+}(%y2!UAiZ76nWP4YmL!huHka^_-!1ulq!1p4 zSTL!kjqO@a;Ac=Pc_y?`N3@d{4_$w@kv+M^hcys#w?c%rd|>=hqRRoNOEKan1_+;M zYyR2u)j&ZP!|<**M6u*53^9XU2ELH4gudSx!@}(;JBML+puMAU%5R#R($?P$p`UM6 z-SKxIzV7Psg!|ne_TDjk1Ql732l6)ezznaB;dFU)LT1eYshU7%SzR6m4?-22Z{{Ye(FF~CemK^6sR7cd`wcPgz&BaaP zQ(G%z{%|LC+nc2m+gSEsc8pR!O43-J+>Cf!R{SiSK_zFJ_eb@FBo@8Sp*#IZRFRBFv^Ynh=JtXnTj_;Jwv(fE zv5_MLgf#}NrMj8%B`c?_-W^F=Ljj*sJ9DTplO#1ww_lQ$T=FH+qTDUlo<~qs&Mk!L zEb5CAxyKV$NuBZs+qZ24-0pF{2Q;rqZlq1D%$h!?My0d_%ke&&1RLc;8-Heq=M~1y zz?8smDGoAG4vG4KYP^AJZ>bML!6hbMOC;Y-I7GQ(O@R+n2mB=8GJOb4RSm&PjlGp4 zLr4p~mSP6!l`|%Xp4WbsDpnIvFOp*7OKD8Im4|6Av~IgHr5R8c=zW%CD0kmdh-&Ua zE1%=oKv|N?Ghz(9zXqzc=CfK()X2$a`&5zF?{}^%Yj|MA#0?zS;2QHz593N!V`cSF z*sM!x5v{i>frlxNXM!;5jOrwiRsk=d{jAP0Uy(fq> zG1v%3?&N(jHpukV%VWKY)G16axyTY&oiA#bob((s_qF0?LFvNK&0w!?AXhOkZ{Y23 zwOz0%lVCBRrdt6FqJP$Q_Vxgz`>$L=*J#E+kTuay3l~=K=o$?TjjmJFA^#9a&p=tG z2&hRqn?iRsn6JA9L#Wu;C(NG@hR3}6&k+8sL_mZHNCQdV+oO}Dm<M7&k zrHCT!L;hRh>$9@t=l~f|@YWO0wIq3i*;FhP_k#!M8(*fC{*%gn-D{H%3mSc4AdwVW zX7IA#F{E6f0|+8tXWO>ME2E*;_CxUTj%~C16Ir6^tr_;aeH3*X@mHYXL3WHf%dRPN zO0W%$-KIoD17j$M#HsP&6Py?wncgUDOhV)`P1F{Z*3A2r7f%MG`d)CfjJ7F6xnFG( z$Y>eSAtR}eq76k9J3S^v&tKwmj$LQEE(C7&0`!~H$4qLrHaQv_Cw=1JyEoU{73Yce zmHsD>AJi_5op!zB%)l4Erh5MeG`>-EG`jr7+0{ZUU6uwD!VqaHr?nweWK-lxV1#<= znpAWe_AR;53rGx8Kj(*T0jH)d`0oM+&98I6w`p0nmemT-z9$@xm0~#jGGYL z?TYe=LQub3Ojor9ja1KwI5_>V|FxGWKYr4yBx5@)2c@HEHiEKwG(nW-VVLK~aVCQSj?>2jc zeQ-E-7bq?Ig}_%3b^;9*(5bCd{S}#EpMZX?)8#h%&Nvp@t0z_D6`3i>%~yT2?hRej z#2>3$Yri5$(N1^n2U6M{Mw{g7=1b5nrrYr%s?dJry{5%0aU_W_ zjXD~S8V7}w_yojS)*#@K-O0J+f53fPfsWSj<@`%OEyME7QbJMmh>q zR-oI=s7P8t&w8IZPKZY2Cskd-8_4*M%Mt2$F}!DHG%k=46Q#G*XVGxerXKGTOmPqD z?A#|e4XKLDkwf}j^^Eoq!keNlTqkF?Q7sVc;OpO7FI+2R8xepln*$iw|6%Jo*}B>o z{%hC%#r6UIf1MwC9v6|?-U~P9vqjQ|5=F$o(cq>n$i={Gci-m=4^`TxvQ@;u@yemU zR}V4eBmDq)Li{dV976eBJk`wNQ%*u0^hH98pPZ3icZZ*nnzbW1ApoR!k&~4?EG8i! zApj~oBS6l;1ZaJ*588;a9!Qc5-0g3q5?4zlyAr@ZUk8kT5}5x&fc!tAyx<>1c|dYw z)q+85BWnMHC?5`nPIL-2&sIar7*LEldprQ*PQkc85%ZAo`HSHpw+>+7g@p)W3<a7`7MG)P_r97hAxjA`k;}nW$sJ4UBrgX?t6B+pVPOAor zP?)nkZCY4{X>MolWU6do=wxd0XZ(MjyNa^Xz=|lm-*9lVs>x*E;wcJ4 zS}YoKFl<2u;{#!z?agwz201|F;Xc)>@q9JXxDo$&4~VzcfrIiSe> zu-#4nG9YS9+_EMYY(1$xu!b)X$Qh14k)q4*vrzXTOQ0tT<$(g5jd1BVL8>wSg&XC^ zs;?99*$h+}_D_U!>{pJH+4%&V82XESU5xCtOAp2|{a#@&=?&4=kml6^w2gV_FUZ{f zDI#iOb`2{`Of}>yYW}F4F;9wemMJKHeFy!hF+Z2;r`vU(>LdC8+QjQg$Swv0JV4h* z{ZGO$e_3|_`uNit_6|C#sGnQY*V|hwX@B$p4qat(iqM-2GTA)o^y9PPG)bi-}JVB&t9klZ3efYE*gvUixs0r6Csn0D=>t< zams)RnhZyxl3D8T;2m+48i0{;kfA2;1A%?rpTzk}NijM&FhdL-dqBN^rx-hmqCz-% zrwV3$%P|TChR8#QcD82?y&Msi^x_HGz|a#w&e2n`E18WH#y5P|9LU8(jMp=KXB&IN z;4dg^!qmBzyWFVBJE@R?F@aHpOV9d}U-;JFvUR;R(1bkD45e)+}*fA%|+Q{iMU zlc9?{MN-oXqqGRj0()7@f;naRs$~-~)3k(1xYd)*ein*)o73>jOiY?Q%ynyGqj!Np z{1w*Nq}L7(o6hNjq#_psS9$}x)=epG)KuFz4DHO?jJg=ZFN^nmBbN+Ufu^r4kF zQe6)ysi2Nb1e(GldWdb4w+Wl*MNd-5XlwjTdfCV(1#E}!XhxlJc8)lv?|4QrW6?R_ znY?cuiTA?V=3MJjODwV(sxjtk+=z|OFr$<@xuiB1Vy*6)Q!yjSX_FR*9SBOU#~BO7 zJr>EzFrbY>*ihG}TtDG{2;CpY#VJr_xqwSZvWO9rGAtls{YHa>s)$2N&p4wG!9vi*u0U`AyUh z!)#GvwL*I55}ucAnPFJ!PNJNBMjx1>*6p4|y`28o26hu1roW~7p)xEgQ`H{4g29G{ zK>;6E;8rkWWT#u2s#~s!WA`Hfug7VsJbf5vlwP$vmRcl)RATBbG*W-BGO}iM1VNu{ zC*;7s(nXt{v05|Ojs-cbu`_Axdg*AWbDyouvBf=)d9&T6h`Cy~dLe3a*0uIP&+vi? zN5hJXmNlY#B*>zJ;b$H8+j`;Cv@VhnxXW0_dECg5NzDvydj6fDJ!0F%8RK0bBFS`c z`dxs9wsv$aM~m}k|8=fc(pDG}#FJyUsB)RJ%T#8w$7KEFL(hYOt1e!&&g<_{TLtu~ zts^m#N=G+LM$(U2LE4qx?YO?)N}TFJjIyk4Qqu|oQ*-mO?@}Z&c$U&bT&d^^qv8nh z?Rq!sS!1xL$oGlGzEnjezYwc6_t#}P(A!GnHSXSJ&yyN$8a|BH_s5b}xQ#xZf7DI9 zsddEg*~>WbxvQ`%2PGLH{Dj73{R{~%jm>6*rH0X0xwm!Y#1}St>9|j|*zSsZ&$Np1 z@TFctJ1*O`O2}o`9R=+Je{HNPyHVgrab!+BM6RQ_Pt$WgWhb)ZeLZ^I61Qh~Y{R7B zgu1(e($^I}Xq9k4t2PAh!Ax!r#*(5N#D_|$vnk{^m34+>39A}7DhSIn$Hsbp(yKp% zZC$8aKg=31Ly`)quib+Vyc+D${`3hR}UaDaA1ZyFx1)(_7Rb4QB= zm6cX7fbPmP|8EQaJo047{=vJ9zp6T*s>rB@| zM<$%g%pKXxuqHJan2um4NQ5X)@b|Gh{tl$-;g3y{pQ*NTR8xzdfaoQ4EBWdbxC)LV z1i7UVGFUG5m8~ev{TqA3C7z35P%IG6D8h^ZXc}WEy957+Kh1Vnh@Zb05}76|o(Uq) zfR$r5>w)5O?5GAX`6@sm25uL{E1Zu-?ts$`sBDd!WAY;!eXaK{u@2|NJIettkBDB* zkaVqfgw`TJNUiFJl(+hr8LwoQq?H&cUktAT*z6tVCbYyETeBiMWCbqnBDv7{kY1#s z#G3=RYf?N?I|vY^Pbv|NlqEmB0(s57>b^6FgvaVs?cT$oV0t6b2eyi53{t)W31=r~ zPoHD@fn01ChbM<8XY5=*d)wm9gw=k#tFxUc!O* z)W}D=n389TmR{n_?l_2Bah@ptJ=1qE^}7I?%lsVRHUkn)Fye7a3`x0u2`6Z=L}iA= z9tmQ43Q|QbI#R_>1P@2S)EPPrkoOhHW6gRmCsvS4p{*$TwU9((755?OV+Z45a=nxX zHPC8_=MORX-@4#M>sE3M(XU0bj6W{ZA)$~LRuwD`@=Ol&J=la|W1Jq9&uy?BN5%5@ zSc8w@K!=GQjsie9>*apYg1_lgeo6E67hYT%gm*8K;ZsnJh;c6e9xSV_urg@Y@C&I` zC%IrI45`SbEj~FhY*Snl!fH%FB|7OI;rz5M!NpG|>=Tsr6YQ@wL^B*j0we&g$OGJ+ z3I9>li37YIO`V+oLMQ#>g)e|k%I-@#Vkxv9nyO^svE;T@JS-~VuR(%Js`RBI-%f+` z&K6L&CR{Xo!|e2dLqQw$L)+=#vkHtscyW_h7&vgH7S!^5c~oFc|83j}C)v@kNQ1 z7fTB|Uob!+nZ-z*zP<~q$8?^xe+n!rItIECZ}=SIGKt?vn5{5PbFUjA=f&&&=}9PR zwN-u-5~ha(>4%h@Wauza&$VFhmrcUMm(yHgYaHtNA#=Xx6)~#dzEVgCl8ZAHnIIFj zNT*bpQzYew9CN_uhgU4Em$}LDG{Xa;s>8Z#AT2y7fV_d_2HW}FdKVfN#1zOGn2G^I z?SnYPP|xIZ-H(3jJIQjc3QfjxZ!+ECFeZzUxsS;Ll6tv(n2Q(`{_P9c*B$510;v>~ zLVJT&Ej5UXM^=|t2_|SEnD5X+a#kl~t%+JtGMfSQV%y?I5+=`=)Aj~WV9@CCdh4-= zT#awI_v#d_MeVVfoRwD=waQaC({7cO7b-1Nw7zm>Q^?!FViv*$#%T>97ZwIV@I6ts z%?&|d6Sbz!4dGnzJpe_yR;mNU)Ck4=RcJezC!0i56Vx}DX88p{D=hDHHkQUf%fTfb zC&$!xj<6|-fb!0tf3uK`hs*x_@93U{siDb#NB01>+9PT-G}XF~(1jL+fw=}v8AHLQ zAYF<)Ss@U&3j2{UfC~^N-}~qPT!4@q!x=+ch#j9Dmb zf7+ZI_;f2t9{e71{VWezazUX~iaSA~2z%oKexQIs>NQ{<*uF25!Hqgp+Lk4$1-}eM zV8d?i7^hXiYV9qtnmJ9}{(LtEdahLVF~Pq90rHDTdaP(SU(Vv)Ja)GP8gb%Oaq|@f z6&5P1DVKcl)2^t$sV#vnihX0(k6Q;SmIw6kdB@OzF(W|ab76REm4RulCcq;P;wEkBynkV%^o(D9}0czjBxtVK&BS8!U4k!nR{{-&+ z`olELJVn;O}adR8818&XrXH z!1jJG+WXcRtCr5ZfV?`tu2t|pUx!K(o~CD9@;+~#N+PKP=*@CU9)I>(nk?lt1_|cDf;tO%=1C1Kb(o3%x zwH&n;DTKr5^$SE6V&06vb(f9WPQ9yYDH35?HZ3^62*MzFIucwcTGoLZ8cEE(rR|7PHMJwhh~S#UE8xu>>YATAmSb~M?aGd z%snf2HF<_3kd|xqi00Suq~v$ndVrdVf;Vhfsh}#ijx%UH)tt}3T{IMm@*=g*qiCAS(Up=7r*d0ngCqK@4dOuWT; zeCP%OwaHK)nng0$_pP1OVM74(8|XEb#wag{V>I>)9yTm_oEc5Mr2)({T=X8t;Nx5K z_z*t^M*tL85z?k=9qLlp__yHnGT_Hbms36stI#3DoCMND(<__2c+)E%chG)dGakzc zW~LtbuGM>6&j#q$2aP8(DG4XVo5Ww;lH?RUaj;lRKzPKvTe}WmFo}I?JsOv5+T%?i zS<3aqdNq1k;_$j4f_|T^Ja8sI$Av|V zdu=#kvOl1*i{CC#G(QD|lSh=!-=*spVIIE=n9%-yWxp*ulVF=}^4f*rsWJU^gYXXJ zZXy_E-D^aW68mt9*L)Jr*I%DGeJwcmSTVsbIg8TpWvc%NKzl6t~6H|L5tH0JMvVVx+`edy(9AHUhA!$ijQYc)KEV6Kt?Z*=>N>M^YdhRv1wp9?1 zip55~7I_MKtKz%>y;BTbj;MeU(RDT1?{s@KHSzoUzQN}Q#eyL})7lgo?g6z{&fU%R z5yQka(0-MN*l>@;#fGWJT>dm(^fy1ibhA}4{E;Pf&RRvEJe}g9%Yb3x zEjEXv?xxf`!6)G)_^^t8$IV#@%?M>Qm(wrs)b==gicu-@ifg~nTux1YJU+G&^~+`5 z`6L<}?iG#fcPe z;U6WfguRocr@ftvp^XB-%})sM_Rspy`u2aJ*_dcqcpyQP;EP|_p+lSgAt4&44xmCB zkb9uE$C%7qTawQRjw~<`4irC(Xz!@%s8UpVPA)#aFo;nLAP|rQb33;(&N2@N&kU?y znz;}ziIws+(8$|OHZ+Vgq@hb%%(_%ZPr7vO?^`5(ksToDrP^zYSTzp|dVxEOfh1^7 z)oRM2I>X@>dK82qb){N<%RUI4`%J@d<*f_8N%_934W^ohy4cPB9_A~Yhqkoy*VqdV zDOZI7ac2NZdY1o}*#E6!N%@mm{y!Cq;_XE~#8(MeQTh=J9swg3LaRlGom4P%>nxin z!VhYBvj6e)K4^AW1a(XLqaP`2X4dP+*ZT#>cvK7?6`PC-jg7_z3HpReWgLu9o%+G=~dAki1`=RMho3OHc2MEmjbLAcY4Z|x zG@z>Fv;z-$vr3|>jY3AmfgHSXIO60*?=|82${cKl#s*Qq!Mce$Zf3qU#xco(BQDZ_ zUxfH-QaVMh@r}QO5v8s$mm*?Cc47|hi^;NB7_Ahy&mYP0oj2!$_X_)LYXtVeKwjej>K zQv`@&eVtUNCR-p|K!TN!3Pxf0F)sx@9EV+Yh5%8@th?Y(SNA5}eW#X2MC1Akd7?!WLdG=ev!!C_kz$t*m!2ZGI--Qoz3 zKXK#%KH#G`Y|F_PiVk0xY0HXovt{40anpB_MUS?RF_p< zL)ySz$94fMYKK@N@fwpOHK_V<)b?D>!b_3<${m6R9L{7M{8k{kXKpk04Jb!T zu$fLd^YIYPUb110ra^W4>EYHdrT&6rM!PGFU6)wnzBDB%ob#)sUbgGDsayPkVC_f9 zIDP%89AB`5c)Sn4~Rhm??JV;OBI z(6I1UR;6*NEk%V9Zr~u&Og6M_aM0h!Ft3!9F)iyqpi#zdY|dNUOF&JxYN|@+1PPOo z&$Xo1yah!ai+g~$*AEZFcm-=MCeRz-V=OAWmpibX8EnSkTTL^s#rd^5`)`-OKavW^ zRsmWWVDIh%#y{1tBs?5Uoop=atp99(G5%}o`b77`_bVWX-Y7`1{s^h5uYVe#hcqNa z>e+3{QM))&)sucRx_jWvKoq!T*J{$F&`i}q z3d|%=UaVLR;S@(Td_hN!rY#P*VW~053QCoQu)Waj%Kcu@36}G3b_0Jzii}W5&kaZ+ zs(=*oPg%deM=ApdS_KgOzXFa)n3fv+L)K4rp>(9O;SWWu0tr{c#T=DQ6p;c7i!-J4 z;sq{NGA7v)zEtY|kgvPK5$u**;Tq-!*HaxknDET_dG(aA-lnT~Xeu^_q!?Pwz?fE#_XbH{Kec0t!B788zgMu#AR>+)!2w z^g)Jep`TSjYI_V?y@?`M6hPyIu@27pG$rMTn1vHrb*=+QVi^w{CsPE+@I%?$&8AC) z_9qeF8UG=Pbw5ea^$dMLYJ1`_U9wMW=1v<8w3-f*ZE_+rHL4R6k>Sg(KGL_EeT}9l zV=GOmzkksm+5d|w-PA6ZI{W?Kdg6af0{wNP&kW3$FB||GJn=tM#$T7)pWj{s#z1)q z^JC__j&Y2c zy{JlKx%y_!2sArSNAT&eyWq^C;Cv*$;USy?JeX-`q!wzL+uO z!IT~7k((JK>v!rjZ=MYNcJB+xGiL661JlPloTUGCA0J3d*WQo<^3}Q8&Ubwz4X@|1 zvmUosseUlT=<<*~j^c%N2VeCz9j55EJ(B$8qd2nc<)ay9c9$L6_hJAvXSHLQd&=}vb68)cdw-znr3%LDHZyXC zbAesu^5}TGY*#k6TfSeLPUXNB?1thcEASg;U;Yw#l4mI!;<(vQnxJ(A`BplejAcxm zh{gLO&(MN)Ls9cWqD(7mX;NyeAyZaEwoztHW8cc4fF)*%q5j~_{Q|ZW3wvp%_7@-c z_zh+#aQnf?v7>~@VmlR@%pHMho9VmYZ9jZ@)kVZ9Q4%G`x$k;F-AG>i;) zC(iF1%%Dhy5)`W__I9-zbA=Zp-oCm!sdA8bzrj)W@Q!QBqN_jQ1W}Fio;gk(0IUc}Pt-YQ7F!iL`Z*Ud(eWGZK{@ruducQIF%b(mLiZp(!35`4n@nvh7%u*sTZ zu#y0?UQJIEp+XvtB+#I>nkeDwD0;dk(#rxHp_8+>mSI0m{uHsTlH_e#m0}TVwkL3pf9RSBf>N}(*7s+)O~SR)LFJi^{}Ag@O5IGN>TEF-#^7qLUk-X zX$YRj&Oq7y&KBPbRoZcd96k>OOr4-g<0u(loDFZPCTomHexRj(IUAo=J!8)&A>SVZ zR+o<=tDYyCEEm&(QM$?~w>wu&OoKVf4hoIB{RSspFEHrcW7BtaXaV=xCl38&&EX%% znjOOhcXDe=r+=Ko97i0NXMmA8MO6$*5+!l=QcQgUQg?WpD$Wp3DZBVOvY3X+ zR5RM3gu1GVi;GLLcw$3J4Q+x6=X7`^Dwm^-$oyTTJ5%Ym)HV#;2x5|_XK<>)0b0?1 zbS(IyI769U&%IbQUQ9XVs@(}la|KeSd&s00BIUenk#jnvo7BpqLlCot^c+r#povL( zLkw=rXsG)uDDPs&_{KDO?s8+Tlqw-AnGiQh{F6+guv@TqSUp53eiFABfMJIolsF zfZ}=h^5XFziNtHV#eo)$ZF6V6E(7gUq6=9YDk?XWd?Cj zL25?bh6pGb|K=X;~(B{1Et{^$DsK#gq01R2J1hpRJu=ItzOy>-mD{g!k z*9C@-Zhs$12d4@bn=zK>fOrL-KbjhN643qVx-6@ zyU6x$U4#o8WM~Ge*Q}ABr_h!z%a>5vH02bNt;7mPWNm2dp_|_+)<5TF^a@-mUGUGadMJ-e;hj*vCG9j^7GH6A#P>Lr(4WF|-Uum< zVW-cqY91Kt`n(Bm$A<}*nzvVSp17!WKybQ-9xZ0@rVs0SP54`Ln(ij!tYwr!iDoIt zVd5TJ@+QzHy*OoO81MjXwWj+qfjMJSb@dIRbEKr(t^q?_7<{*Z5Uc0C{PG5xv`RQm zkBThwJWqi`Pg9ozbrq;}N#g-&lsb~UWU9fJJ;WOG1ebK<={CT7T!4G4P` zWwW2^^ue6%+RWL3o*P2Xdo-^M;DSYU8zsTl_~lXK)$`W)~^H9-*{;YT&AT>UDzHf$JGZH=*pHo+aCM z@_D^{W>{M>#&&9=yS`RP+!!*xl=_~(3oT#j@_xPx3}4Fi(8+uf2hEk4jAzXFeAg7+ zRoQO>;^N>9O7< z#@P4beI=`5x%=qI$JYTWeKszRdF<(C|sF) zgk5MxoH^YlmdtxC0!0+uh-IzUsZUC<>ImleYYS4J2`r80IwZl(TPy z?P~p4U@Hl$oRlcq&&>DEfA@yPL3NsXP zXIGn1lAM@+$>mHuV;0y~4D9X2&m^{C{z_Em776*;>q34zRcwXcu9obPyGH17f?&PL zgd@G?8!ktH(HB3JJC9etMu0h)ygH(&q$ei!4 zJ8+1fN}~E0nH`O!r-q<`I*&su-W}Ih$DiXx0nbreaR29vB+!1uuOVEp2=?74!lCak zQhawyU=e;&%*N#=@_cvefS(u~0Uk>EHFN=uP}Pq7O>-zs(d{m8!f0wcwleHja;;r4 zq4WCSEga5okkP_`qGr+Zfsz=4YaLYbpGQdNQ^@7!X^JbU7GzE_*ZmpI5T}o-=PkEY z<)z=jYd`<30rtmrVD*|Pq6lyeSOg5he_RJ-42?`}{(AFtjs6$C)UO!}pu>#HPN#zn z=&lk_1m+URmbH+Q#H-x>OO-@m& zF~jy3VEfs1{)A~;8ekQ zX`k_goxix%0jaeB$jbJb|KV0SUSA&GzwUt9;F7TdQon1i)YM3oW}Zn}U*D{+xT!CRhdc?2T-aPm*%c(`uC~Zc<2y-I>{=+8rOI>07o$E2VU|PhZ?|QH z7R&#o=qig;b+77L^2UjMi5{LEgz+^{-UZ>IB?Xs-Tq5wImDS&iFb35??_?wMuD}Cp z1XD`{8y!~X(~&%~mJ>5nQ9NdE2{thYdChT)yy5*kzdy&8*Z{)ru?JP>FKU&44APEK zKf*a_TKX#t?X^}0%3os>w-ae$)0{XgOn>NY<)Kv^;wtm?N0wmTxj(5@xX0xI;=5$7 zzMp@mR{vUAvmuEf7oXT<$ES|;pMH3MtNXv2%trMKXB9ED%>;6nczc~X>iY<4)w1HR zIE<9i0*PSK1(s^c+EzFFwi+96l`qJ{0f_?u9q-b856ae(yXn5&^0InXYpauA+=5sp@tpJwJuvq_V@ZdHI2Bfunu%VAIFdG~- zzu9cl@7KTr^gS+R*}A=FgedkpkUwJER9CcI9>KmR7ZfNiq~RzuC{%uSA0OP^H5YBj zabxe7mwti(nU_Jsba}Fpw#j+u^k1iJ28*6cLbnY+YKAXK8@NOc63?vQ+e1{D$FHT<{$Mk5+R=Uw{WLvyL2i^WCAicT4QU~yMVWoBK3m2UV7>>GT z7!c4bP>-tm{ON`ywmz<|IZ)3Og?vOJz9i2Z5%+Jc!}p#J&8`B$EV{#Pzwwc+e2W%> zB2oxM3JHkrp}dw!e$GnvjoHVgkpvPF3p1s^AoO=g{_&S2X2;?8e?YqRfNKIugep5q z_V9O1JfKTfIqDw8?JS%76J}8TDs7Ddx$S_olLg@%zc(s`?ijmoa3V+`%`IBK=4NWV zhlqzlwTYIbD)#YPa|nDd?2B)qbdWOECZ==H+Jli58hYNfMtS!m;4YDcG@@a%vg}jO zVEi1kZVEU`qHO}gS9QN$@ zvqQVubKl{y)~^|G@SD8cj&LzLzyfnZJgn*$@A>khYS-}t=_lcxbsP8LZQn&iQ?uCu;S{U4KKz?H^^y77=d8iEkq9gN%-3 zMV5;#cOh^|r!2CfDLpgWmqMw`f0om+j3Ej7ovPQM=Icn}ovcWwfaA?jPsKg40Q+t{ zYQ|!VeAZ(M$=Z|O8xKE~gUpj$C?@uuT}t^nVLRLt{m&l>>jWqVNB8VAfk=#Z@9|Bv=7v zziYa31`K~cstJAkQ_O_^NFuybOX<^|vhIfwpN(uK>*ShPx($EXxi*GzqRSu#^AlJu);zO8eVz&zkfJt#-&RL0=`wIkrgoe?9Qf@%X(XqQaTPhe zQzBE}kdCK0Ho42!i~*@#aJwy2Zv3ZfbR@B?aH{DgO`+q+>dU#s2xe%G$O~2>0U6KN zv~v^`&Ek8SdsHp-5-^irn*ck12Vo*CIpc83P$e7=$^fj*0oLFCvvd*fVIYvN1l_x1P0uAhF3lny8!Qi_=77Kfc_9PR%SbAiF*T5Gx( z=35!{_mSth78hGN%YScqKejx#q!PBv%^x`%HLB>J58&_Z2o;ekeYT=*zZ(@i6@(j# zRQ=;hIpme67SAB)=v+boHJO>sP@pAotiz^9i7JVD+8sm2$#J8LXr@D!-st&sBgqQ` z+lX?yLY?Pp(|7p+3eB_XPpc(Af`*uV&iBIajVJ*c-JOO*W8Pu z2w8!ltZU}9VzRAiMl=xm)LQFvGSy5pC!l!XUG*Q9zN?HpOH-Q`1Tv2!sn2JR{nx0F z&T|BF#%EcZKhKMA|2QlDSyrI(zdTAYsgtx-6>oyBG$Ii5bs}NG3ZUB*_k$O~=@tDK z7L4!9Bmc?*`mE~yeG`$i{rp6x$Kga;nzxsaC&)^`Pa=P8_O}n3M|fmGc}#TZ+c4AMw6qJXG9=u;3b3tE@$?`!pu~}3;_5K$#9UWjsmI>7GJ-9v0nJM zmQan3+y*tlpH-Mh=#jM$QeYza9W^s~^z=6Mv{uG@31L^{I6160gBo%jVg&*{Illtj zotsdq9TKuK`B?6}j(E10z2ASoqxu>}^4Qz=2w_0t!x_%>A|XiOO~qp;Q*y;}5<95& zq1KRetE-iRd{P_->$@{fw_L*Btfk;Lse%UjcX78gBCx%4b2AOv6%t9vlT*4H)C5!$ zFsY~y;V9p8;H<2yY|MnjG~R+@Wsgj~W)Us^P)c@X6hb{GyU}zJFg{&wE9)vNsi~2x zVpXx%-?-Aw{Bfb$FpXWxL1X$c7~|!a-0I*5u(2^~(<+`Vb)2LHpS9xE>n8gq(jBJ! zBcFg>Dr(K#*ym=5tUE8sdO2DOFJ)z@<#RSGw4KP{c~Q`!xC?`>>`qA8?uif`p8l2N z58j$RaYzD|(E^^hgS0Vi$UJBN&ROq|?_%5-vz$o|fjyb4=Zx-P0A0~N%%kI93 zTqXEx_Z%`ACqQC9x(_VB!mG7_!>nx2T?6=d-sD3TOEizUPWocq2sJe^Ow|=dWXKo_ zDQL}?n;Q^|LY5B|lW|X&`jtr~XU=ngy)l9k>^3{#+r0d5^7=}Twa~5K(24WlbvU7cvXT-z=AC2QQ@^m+!w^SGecZ%X?nzdtl;>!0b` zc<=Hkbwsp9&>XGl%9cdB`47tI70R?I;M!kL#DZ+uGiqv92PYxs+^c^d)|23S0r5(r zi`b8!XC#JBBHzXEhqt-fq0{W$xQ@=by02Wi?q0hbA8&ko_(1FtwgYFQUCw61-L`12 z&Eq((Zp_0tG(=j|W6oNThhCq3r#-QTnAQ7Qpo3zRjY=i&#P`dww@gJe;YEhi1A$w( zC_hkSp)o{eYU;Em&A(@B(cnNYjvdglFp-cCW4$#s4)(;Om1>Iz$MNw%i2eX}#+nhxg>8>oY ze8q(WzNpC+!1I93EG0HX=W=Or*o;r)|iT(Tjz!Gi3YKk|dM}Se1cwzpiutX#PD4U=IVQqGUm(n!@*|8i=~mdo zu=k&6)SG@xG-Re~<)+1@HvU}IX_|_n-i5_B*h3IGn(d0eLGL0zc=B@KYApU)=v1mp z7~F-^TNciqSEkKx7pL1fTrPdpgZzVeWU;uw!_)F{Y!4WW+Gu{x`znfi6ew95I zZ=<{O;H4InmU?-q-aUw||KvxwNhJ>Pf*RjNMZC;L#BqK*V*V4ntc0^k2^(Mg>Gd$J zLMyx($uwd8h@VCBRw&&dyWaMaB$?;9ofp@=EO4SQ@7L&BNXJI#Z2L9>VYV>jDe@sk zflp-2tLA;Dz5+Y?AF8X2NILhr#^cfbe2N@pLWqJhM$rpKuRoG^LZ`3$KE8wP($|CS zGS|Z%(oh3DAY==JJg3r7Lx0F5d59;W8oi*D+9SWHhpx$G`udv}hL%b@%{4RzD}}f0 zkV}9}gBaiA#hDsAMT_$@xo3-eGr9YfLJk~@5$lCO>G!$CSoyn0S40Q|Ug-x(E6S!D z^Q^*OH%06mi1fZ|+utBD_S3j7g2uQS`mj26L%5f~oK_1CGhPZw@O|I;dTL#}t!@O0 zer~PGirFrV{h}SoDdRFrP?CLzcuuS-q~a#>7EkDznFwXq~)=kei+T_LZSg*%-SKsdqZkTj8c__p@ zY-E2j5bje)-U2Y*Xi%D4cf#v+m_(K%k|NecF-f3^JqwF3lbr}kxF06NTeZ8}H}^t%DHF+J4ex!t%9=7IW^NgB1A<$GO%xLbJ<1aB0# z6VKRsFw8+FIgH=dS4*`2`seaG+Mf&)ca$=1uQE7R0{iM^3J>xv$InVF=B!CrH42f0!%Xhf}bUH(M))|YS{lPh(Q9c&>X)O+kPJG~nH_OZbV_r)H;mw6HJQH6@rrO~C@O^g^=VDuvEBLP zl^~Gwev9i%quD$Yf=G97JlBU-6_(a?ja+4s`l>k*nX1L)Xlxt$Q+inLX9kDTr?Zck z)Uq5aE0%Xn=S48i?=zQ}w;wDk>#%DFZPM~qpRzCxoQCvZCzk7Seb<>;L*@z|6zq%s zPWvZ85%LYQmXqK})HB*?Je$Qey6O{VBUv|_YL?1fV|_i8Hu>_76C0bPludJ_CURJ7 zocq<>11nCIr?pEuHmk+e`!p^M#PsOy!@%s!{lcx)8&0?5&)Dm{?hY(OG5|5&u{Q}t zLuNFIp@k?|bLZwN5etm*t zRd~3m5>Gj7rZNCz8i{%4w_Uw;vE#);#ZLS5EXe@6ySZF?3;- zn8q~aW3D2w`@Zw5PrH5pHg2l@y=#Or!%&)?gN4LD{a$I|X=6OvV(7+;6ntSwM7%n z7p(3XI6y**8@F5%QDj_wW~<`VF~FJQJac>>VOj2c#xrHCgp3mmcFEU&}UtJRxpX zB>Wk!u&E`0v#~dUXb3GK*)v8}o6F1e#JjJh+FIcKuKik)nxG&NO*FlSJLL}D!8-~X z5E~Gnb!cV!ZDpIxADX_pbf${_)A}_wHZ7~{V50|xLvvHMo)3e(8jz=$pr6i;KV$Bmgsl_dR5!!7a z|8(a0!HiS9z|KT|^|8miJq|D}ZWk3E* z3Jiex?f+?=m7FT5Joss#`;}ih()IcmLi;!z%bn*Y;TH@^PELslB*Ke9Ds7E)tY99u zVo<8HTP?b3W=fiZhKD4o=7mha6q6y=G6x;rsIIA+QmDaqZi_D>bxgq<$}(4@EQLAL zc|}x%{N++?a0Nc_C#1i0p5=MI_=z0{66WFB3IOnU&->@L{>!E8=y(4P>(|eOiBAaS zpOE9cDQY+eweq}2%SRDuME3+Gh z_lV?R1Ss;OSpJ;**VB0oHX3BVKo6Oc}{olLcf;8Lab1yDLfbaO~K7>eF>w@!agON(g7R>Yc-;jUk+Chf1nd*>>wwLbyU*_VkMI|2` ze981#aj#F%it=+|S-Aoj{x|dMZ&m-FpGLM8|5h^xDgSGP?2OZSk5i5kO!@>fHhCbZ z4a_!IpO{)KJbWR43*Ta$`v+ju;k$yT0T;=q6cdw_mK5Rbi#M9F^F9VLS6>K+o%!R% z1pmwO6`{b_hU=P85FCi`?=a@jD`@r_J$zqvxSN0*7L=`d0t684`mEvDnjv{eK_!+} zvgvvfq}+=X6%*6O1mMv=_I+Fj+Mat+r|WPLo4sjv5*sJ$d{@UKTaLk=IqgOZKB6TA z9)6ftj2l)H{7c9Ncd{$P4J0gLFjY%b*rb)k$3A-ROxrO!K5@uhI;osjZu-=2!;|i6;)A4 zY8bTc?gO!4cTar1WWak3*PbI8@mmh2`A>%g?*!sM3OHy?IjO|zv9*~)t*q*z73zaS z%3rl#nX#&nUM0P<_JSMJe6_aoG{>QTsLRRaYBzfNcc{&yd|y%q`BUCeE#5+`#_&BP zh4l!1^8qKqHGr*Skb7&F8tC$?0$#TOfwWyHgEF2Dd0eVVRyGL`q^V!0W{hLgB7T*5 zZmD95cDKawt4p^cZ*_O-mXX7`-Kjtkhsj=bDe0o;!ZomaqPC+^ZayC3l`XInaI)n&Ge8czpF2H7j1 zhG_gVN|DyOSpL?7``kAxxx4Q8&KuvzIZoeNq=qL~O7}4~%J$g-D7Zdz4m_7g3+Ct$ zxhAle3-&3|fDO8V4_eJDWVk1*wz04 zd$oG~R`4;f!Se8W+`&d6ij6A$^zaHuf{a$eL_VfJW-z0E7l19p8ANn1VOrgyo-g{5 z$qb?3eY%b(2ndg4Ep;$!E+N@kLWhhMj}B7%(+v;@W?D{m9dy-w8&6&wB=%E8y=pyM z2kF(6`yOn1LUC}WWv%tF3pB5X6pngN0xKipERgy0u36~=Ed(nHe#g0$IxPE8%oU_8 zGjL_i`WdM32Yy#_AIXyOj3qFtOL5=HK!jBGS{5NBpUHrdeH{~USMF&JLDMXYIxl=^ zc?}uxrtUL9Xcfzw)N#DOe6MMGko{ffPhwIfvJWc`l+2AWdlj9jTpgz&GO}QF@p7b; z4lNRG23pwjS_ybQllm?v7ZS|C5UM<_w8M~7p>)+0v_$e^NdNfhTP;=yi?*5yZ$>{K z*TzWgL?#B*i$z1@!YfI==Yx>jmt6=0`z8hyBuDF6`T{9Ml3jGLP9i*jHMHE5SV}GO zVPL?x1W(~ruCqlTqiz|llp^uo?6;pv{(B*O#)t5=@;U_!hx-pNi?nFAQ4aQ^#4jRp zwM76q>(qh*D6y@=hP1}SN;Kz)if}r3Mg^f9XC}l!6s|=Y-wH1=*4lNNSin~cJVG#tEpH}x(q&FSUAa=SD8j&@?+S2l9?UyIuc6fq$ zl!jVfLk4?7F-uoo0=nxS{J?lin+7_DfjawRU0ws)fgJ8n)P%gZSd>7{bd{hewW9y@!5wz^xR)rKHUZr7tG{ga22ulc(37U0KBjF1 z>$3uE=*AQ;K!_6GK{RxJcv}2hK1d8aZf~sRsxv`(nS68@QY{zj6E4U<-KO zkR!GZ!(4m@9LnME@E-6Tfhq8j1C;Qua2@^{(8GV+V+VBfS+2Ra7;8Xi;1hR6g+CSw z&?%NFcOH&MyA&z$XwbA_!AmjHIh9*T@u*m92<_@Pf=FNr%&X9c`hwn*mo(e`nroE% zzk>So_6GLz!G^~sm1QQ_N!wgZXbU@^s{izBc8K$Hxu& zSR^>LaS34KnqZ|oR{7d5qTe=GpR8gXlO-EPN7Nm2ioQx(J}{R`Svg8+sO?%ovJCt z!->?!3JIXVq*VY#bB=z@HrxKaWub>u$U5p7S+=Y?&SalX+I@85x4Dlv}%hQ5WA# zISJw-QZRo7nv7oK=b|*CN{=#SDart{YLd=_y)F?rx$}~odRM_Uis-hBlaJN`2RwNi zD|a^0w=fb?U3BB45nA-MV>lg;6@81%#1a70+w^u+amYHiQ=q9?b`5H_yeVTsuWXZz zv5iB}P=>af`T+(lW}=NlE7p0$K}4p%bE-^w>o1gsdEK!esn%^8)8d}Mp!M=2)2c4` z^h!{6AVr-siHB|2@(IvGZ_f_$2X$2ZaNYr~-bmJbUImMRej_+xDY|@PUy=H;Rgg|4 z;{pt#nz`$08=s5O(+41ph$6l5_zm5WEMeSu$%EM=`d7xVHPkk9p&fQ#b7Oit34d$A zB^w{@mhgPcuifuwXzT?8Fr(&ZJLj$ zbVR4z-*fB7UUO#;>bnd)AS~2XMRv{%&JaP$mvl%UnOt9r3(#l2b4dV+1ae?01WJ4f z^{{4w3X0Uqo{=G13x(*@LPjbZYVD_LC)DCuVk1m(Q)~#<7RMdn)PJUoDGkEC19Sqp zbVnF&IJUroGgDeapO}u$utu5#i91FO?=bquzS7?Zqz-y@e7)M|^&Ck_kEwwn+&A_N ze|Uzx?6Fu0_SqBjoSHLW98P)0?CMi^djmH}K;4eV-ByC=DgnF+x;=9|3=>iJ#5lou z7w0_(4H3z!yx6+XQ+X0;oPhk8QTtWMGb;9!AkF%rGFB8r8N*-VeGmRn zQhiMMJNWj*gF07))z`bYfJz=T=_{)ywzNpnu2TndaCnjft8kj6nKXV@DQ#Zd7&Wy< zRnhF2I8M3KjMP|y>dy|r5=ux*|66Q1)vjWz1D^DJbCoD=-{P_W&YO^VSs>}+&jQOP z?xe%gNmdP;61UT$g;ITa*hQdfwY~)W>Ey3r*=Pr<=!0k40WG+~H?_%YH+B{JXf<%F z7lotHr2J?q4hfkf&JVwCnoYciRbhXVrW}PZGR_~>X()KzUYrt=_GnMW^ePa;w{8`88lDX0!vLQ6(qen`g7{s0&rvEl*9t(rjSGgoF*+GY;v`&)`xO=FpTo#9C6*{3a>NRMG}x-Oj$j9}h(nxKmm)r? zZ)ITksB8wbVo;lZQugTD1mrl+@?UITBw)5sn3Mh{P1qp7E<5+Q{N+5FVV=V)p{Qj$ zB+P^ZJ%gSgYt2OSwcR+rv!z2=K`?(RwlpJah7Ngz4mp(eVFQ|@_#V3KUK01RuWb9n znCmb#!j@|keMyo!hKgjBzW)rv*{x8I0JW?W|E3W?(OP?0Z(>mcvwoc3{OZ#9@si$L z;l%hcTTd3s_G2>p8i`>YmgU-mwQ%j*>{|;4rcsg0` zd)aqv=UHYL740FAq9C0?;UcYQ^YM{g9pYo&dNW0^G&C`S${s=OFk&kSs>(hvZo>H! z;fZ`UO~DjHBE4YpHW17iZa^+gZP=0tjb4zR6I*tnbxlfDKmVHV^0E7Q39h}b?ZCPd z>Q+J2bExgXkOS^XLm0%|g{rKJB9~3xd@EC?oXb33Tgc&T=Yr&u5-LZyxx26Sv5-|! z2&FXQ{15lQHA~!0(X56vXT~S`HR<*fCinF0TnkG9K8c)}J2*cEYU&F$-upV{&_{=H zS2e04jzpFdU*-q|>bqn7qPQ)U^b?h$p!edy6B9FVuY6repA^Qco%UOBPX%@(Z_s81 z)I$!Y#|5d>Z7aX_jNVrq)MV_L<&2t%Z{70#wNpJlX<#NCK70nmy_%lH)p0#%Mucjx za~aqI#wc?-*MvXCO4Q%J3%R2SXvTKoZEMGFO~H!`bB8BdL2o-JQd8*U^2wZ7_&1?6 z39i%IQ+{2O)ykbr1YeU)%cU!2@1kBI_1p$=$y|K$?LENo{|FRwfD;tI>g;#L89u%5 z>x|=+YQT-)0fSiguqXTM0DTl?3lA7*QMP*MtMp^W5b@;g5dxn>9#i%dxvt}TVZPpU zTBzX|k*GZ@YVY203CQkhAF2;5r&I3I!@0w(&VzAvzz*{T^uBp$7SQhl0(5F+D*wnz z$&_dCb;cHuZ8bn(7BR_tm6kY2n``gW%hOa8!eADncY&p7_wCb7Ga1jv zVo4eB!ZwVpD&M9^Z$4OLmMO=PN)}I*^D81H>jqbC#?f^pI`M0ZxS822Ni>{cHFWy& zeJI1KzvhX`DKk?^g$*m$$x^FspoT^LCP``jX;(;z@_ut@JR%RbNpJhqe>jJL*Nrc> z{%gE_KM-XofF-R>8pn%GK9-{D_BYbE@h|{^M9lyrflS`Ve@(EaU-^X8d_o;FpN%*9 zKf51GTQes!Gh1;x;J;n}|J4Nr#r==FTyVEZJJ$eb18EUvE?Htm7RX`KE-?l;Fv(d+ z3G?Fg)0HnJ_S>>p2egheVC9=ooaXfxUNkdL98qwwk-6ub+02jpm-qcMjvWjs$)MI) zrbCgb*$No$YONVvMbQ9&A*?mzc>ktu9y?kRUR@`1`3+w$=C)F9eG_SLal-U+M;Xwk=>WG#xErY^& zsodI{q3*?uFm{eoN;)*MPlMrZ2co*U5$VBSMq@8FIz0BH`(jYTKCxxtWqOOEw3BYL zYP*bO@_cD5hp=&BG>0HgVMp27w;XG+0$ncChuV5BH&qz1hcr6x-89Y@4RtzeNM4~# z0R3!YyV|dOl-Rg#_-^~Fo$2)v}A89)UfM-$V zGcaXTBfY{QwnNE-m}5>1c}4^TIeTSRE9Em*QQ%zX-DBF|a^{?@WwBCv+MoD8Pa_F& zx~h-zF|x&pe36a($e#At(hTSv9Y^;C0YPzHdy(thuYbex{{mWgEPLIbKRGxk#Q!T9 zQ66YxZ1&^-uq7^1ck{rN!1rEG=AAQl-+FPlnKv&ZsTcHpQpIu9TV$(%A$9|r$*@I#*d2)IHyVy1);9gV_IZ()Xy-olMx z&lIQ-_zBrceMsTw^pyZTA#%`NIU}>4GpBZu@niOwMxWgLhRG%|ojj2hj*t6OeqEb! zd5Z0nb7v2z#9v$bRR>)I@m=w@u5TE%#>9bmvquoTKC zjo^DDiaQN0XNDxx9ml}u7m=i<(=aDntm)cr!h-rD)#S@i=j^7mxg2|)6ZkC+P)|~m zMlogEg=h}wRt_6&12F=fIQKpvb^ZhU)B$!PNJDY zV@~=5=Q3-Iiql6~XGW zT%MSS$shwyw4}P$^Roc!qOh0RdBqW~Pxe@oX_z|xrecH2A)b|QjjmU=ijA+Eg99Qk z^G(v_$4}8NoA_WPak}+no`v?HkgiP=>KVV|T)4*M#as#u7WL6d9o*9XPrF$V-hmb;5}*P@*q~Q^$e`1^6i(%SA=fIPPdl-GoR{d&X?{8Tm=MAC ziaTzg-2>HN-gH#n1z$lJuw0QDuwAiJu;D;8?A3PC{mwL(>?L^a&fZxR2We0?;r%q= z-w-(9JK#gu&No*aA@uvNz~2pbfNx5-AEP}vLOg^6iPbLsq!`Z;emc+PenJDR=T`F; zD}4|M@NjUF@IDEq&7(=HdlXw3ZhI$j?GtV5x82#IeDK^p-C>?KOiY+-8cH;nWVTn% zan4aDS!55N@l6$#=3y=l)5DOv@3oy!v~sf7O{4f?Wzp-G@}=JrgWtbf z1#qAI6v1`GSmC&AK9BDxVOLS4j+1n4uUI~AjY~YomNQ?T@_!i%V0rmvp$KgW>^v7JN&2|kswb1 z3S3$_iXtA-kZf@0XG-HXM;FGAk{p#NWN|Wa0hyV|uOS*=(ztEas1IrBn3O+_Q8(CW z&{u~Mn=gJmFn6ChBM&$k+)p}=E?CM>7lm7+r^=bP0_e>$=i-Ak8>mncSRB=d@Z}p< zq@}bn(l)q?O>StRi?ADac6fH@eqsp9xxsK9+4?7>-PaoVba}9=4#&b1Z zoAndrU2AWG_1&tXA&@%!2k!Z2D!SBdPm|)vuP^x>xLKUO&BWnIPOJVeP?xbTk-zUA zcYT^Wd>7I&{eR#6R`%I4Je~H4_&{QHK6=3&X@zz<$eMq$P;pLm&NjMy)FeT0?{p$z2xHb18t&j(ZRq_BN z(!ih0Cy`f7mL4!fHrc&EJNwMN!sBlaxC}Jik{xBXp7O;T~t2?jhVEwkU(}_gVPyRExdU^Yx}K=znNdSiEb( zn+G`0^~6QPEx&BZoba`y@mo0ug)6R$$J5|;* z)uo2gmTi4#7B6`F0CCIFo#s=~0y>^rm_L7mi~l0RGwl?PIzNeU!2fA-`LB=Xe=y-{ z){ZC|Sl;p=c$yr+qNu2iL&@rxkuz&$m4$1;GK29A@W_oPHlVPprhae$=96lxMVu_> zq3WsUf;D~%mwrXzu@FZ$hUwRi6uyo>uhYw4Y+R(U4xF%NsB7%Vy1n*{E^t?> zmt;|S^i>GDZaY2FevK=!ESR@RtLo8pTi@VdsRHhpt3PRHs5c*5eiu+`#yQO1#{ivw z`8waBRMm8Ia{mIAbr zb*wJ9S54KvC7vxvxz_=j>2h}3T2B<2^)44=ORSu2fQW%aF5{Qbx_JKg_@LAkU+UBF zCshn9X8Axk{TOWAn>1ojT@xfWo#fVRXzQcVmn$wRQrih6*p>3BZzT6>MWw&3HEfh^ zr#X;}Ze`|wTefUhUpJ$+h$=L283u5$pf}49!+o=Cct4}h+8gr~{gJ#+37wRniomY2 z^M*WDDlU;?B|pQ@Y&h8{ZBeaLAKpZLvS4^K2O~Nx)={tz-DN?}&3+v)5X0@=H_dJC zAV18&n3fy8zOuj+;)Z|ZAe3KB4}_MH0F{g9Zk0mO;RXQCI3uwA94TZ8Lb&7PNm0UQ zqnTe3bIT+ZKc|HEAr+OAfvQiS(go|@a9!JWeps;HU`&|zCIjDp79Vu>LSaj>;jsL% zf0-f(+3z|yFGF@@Z!%{KX&&0I;o`Cb$)~_%s;Hmf&2XB8m{`^w|^RKP1ZUg}So0s%b z*Re-c!+K|zs=shPiPD$UsZow29TZo(nG2swUi%KaCfpjj=Ui{u3`mFvrVWiHM5W2$zP?nQ>DsAj4mO_(WAE5^h0nJ;Ojj#HL$8*##7aD=p^ zO&uP>Y4irqYV8Nc*;k5j)LIzXj*Y>OC-8%(TXId+*e$bjw;z-8sv6h03f7-Cn69MO~{uo zEdKS(q9ub7y>GmxjwI>G5_?p}Z`WFcUeJ83J%|RD#EQzYi*s1ZWU^I)oZYnHK$K|6 zD*kif+F?dRhHW_^+t5{VbYZMN(%MXy*)DphV;ql!B`ek5aUy||J?b$louX6->)8s4 zC!e-YB&?XYOG->_^#z$HsgC*9eTnb;T4YB#tr5YxDS6gIxTxv36rD;0h!fmWSFJ&= zV!Jk8uZwXaHLKv?W|v~M94TO$#4bw7AGl4T8tY;HV6y6kZQD+sUzz1Etx#8kGA-fP z^ZDV){EyK$oHn9JxVdYUhRK;Wg6Z))C68P1Gk^ee52XPoK))XM-m%h6IH!l&pf$Jt zFfR4h!VSjO(rgruYUc6{!j_q`Q%A^G{HuM?Vu|69y))xC1}amLW@7XnCFXPqE8Iqx*kR|CE4u2N@rf7Aax^*9bxj$zbYF#~& z&MJ!WofV;&cb~5cu-ABGPK-Bhc0GFZTW1CIi=oV#0uI>fJGPs{U2gvDxyUoggKv)0 z+pa?A2O+LdxdfNp;%thzREbyLLz+ASBxpU{hd#4Fc)fUrJoP*Lb@I#S(K19a1;mlT zW}*=meiRG7Aj3gLjioUsv4~MySSd`QrDQh$c22Cyq|)V58O&tMv!6Q4RkV1r-ege{GhSOBrw>ji0`nS1KQ+rNkR z28yHxJzp>N_PTp}tj7`U)2>b?^gC>&^?Nno`B4j8KAAv%(?E=ECDuUvfgW2P5(+=I z*uPO8U(PR%kzDRQRG9xY#;}BNRDTal`K(nan~#(p3xcel`{V=;JDaTEF3*r_LF){{NNKgRTfW#EUX-BtlHbd@|o#Ld#~zKEBli4%OOl)OfF>q|*!TH@y3E zrVQS=0^)K0ggw1SvcL6py(M`);wJs(NqPzS_3Na5`lzs8)uU86$hp!LMj;`3M=NGW zPE<8=dq5l=l{oFSrrV#j?_l*$y)lr&As3{j74J<$>{zrr#ngsry#ZaoGBI7vsMG z5?(b&5c*G04D=He!~X{;rYNiO_X{2{cKR>j&rr9}_dIn)!S_;3R4Gbw*4?t*+#wZ{ zNG$qn3{5BKxk8M6lM`@MM1EgHvrJnWCWuGI_PfdRtBlR+s~CkZ_;{Klxu!%>bwPTn zvZ`_mP(we{f7Zy9a&(T4FTfXKwSuw{v~&D8hAcoWQIO1eC6S_ZwIZ)Ri~+^o2=7fy z%0EIJY+wLEKL|@jAY4EN{kW;>)b}S<6fCWHBuRZ@?m)^jRGx3;A<^XXA%Ht53O{}! zE8#<)?hF1pFOKg){%C_%BUf6*M4p&GM%cVUJ{;VQ-&kC4TXjo~AM#d&ElL9(9=w}+ zP%-Wn?ot4JLvWvez>|1k zNK`p(+3$U7{X$U`#*sMm*~!kcWJ%;eCjMl7#+x0`XT_llfx+vze4^fcTE~b3_QyGQ-{kwesue~E2Z<;W zJ&Y$5D4IdDb?bx*6QvmtG#4zwB=2M=#&I1aR(=oim>{RbTWEqv`Lk>%80tH^O^~Xv zF1K@&YGU4yLO+MiGzn;4Ah%nv!=B z)_C#PPd#8IHRNsBkf6lSfofGrOIs|*QrjsDmX<(?hx0Nl`?@Z%m2_i6=<#r&6Axx} zi6g;UHZj}qpkapeyoV<8)%x^EQO!lQr2m=~xIt>%Gr&p0(H7*ZY2$f54n~ z&8oUbjT!?4i5Zorlz?{~Dr}&)m4|u7R1-4zQE54LBZmTWg-B!ys%v)U2c-3D&DF31 zraB!I67*K9_vL7$FKrg#IR}j%cro5R700%d?~M=ZdE_-(+M-N$@2-AYxc#0&ko4Pd zEasB=wZ5Z)ETdIwdOqt9BA|P(2`uGW9oB2X!I62|IrUIaRLYH<{KQp{E+{PNg8JCB zK1$a?6%MaSgZpj%!>hJPUiyS<>VQvjP5BljyG6{+_oP7`SnG7t;MeQnf!g;#$K zTTp7wv0q3T#+oz8S3R>Xtck_@ofM))tOXEhPdmVG_KKkK6kUG96pKn73D6ui6VxXA zS{k}btzIV$309TBhu=#+DOtJ5peT^TF=JXs2Q=x_4_X&s;}Q+Ps0z7;uyjXarEWTW zfMST7SdMcOq@L=jLf{fP$gH3L5>{MvA0^-)Mgv6FKP6!lja*zj9Gp$XJWb3T zU9BAK|2;tXe+r~UR`VsZYZYovL}-2Lg8?ucQ83X#h{buX0#YU1WaeX}i#@6KpcsIx zNwzgePaWhAKDFU}#FO^?{N&>e;TRDM4XxQ^RA6p2Dx96~N^Fvm!;HF?%^$p~mTy?* z#f-kZ4`Fbub19)}O30%f{^-oT)804|z!Hk6xw1dXFSZJ{+4vF8^Q=IMehHMsCspX&0=M4W#Rr_-RS=J|Zn*@C7 zSHPzx{x9kB-=F$F@}=^+{JJ0_UlOO&UZxC)TziW0*G7>jwOh!F1ymy9VnifR1YWy6 zGR$`QgLM6ma)vx~MS>Tg_p*xpSRAB~8EKwQi|HJeMjro*ybWklmiS z0oty6zoDXA@3A923dSFh@;zIrqT7g(Ll%@$e0i9yV@z{eY^OFY-KYCoHg1iV%az_2 z+kEgCQsDO0*aXd%!PB%%#aq_L)vpFiIRELW^TLO9JHnJiBs^T9eu4cc zoXP_tdGnK~R$VtQ>g^75-z&?5p0$W;DurH9L$X?z_`P0LUSmxA5PMC*bZRjhDhFl) z40p+Q9NH#b3@j;z77q0~9!s&3N|q+giC0*Oi+@;l@7R$vE@KYCvCe5w% z?6L6gn-E5R>xFE@a>_6GPFau`T0?!ZL=`J#sdFRp_Qk_~1G2E6_ATI<^0zwKPH+G! z>SIpNBX8Nq=j|0%ufm%oVOTxrFw-nNMiR1BB$coR-@>9L%YvVfMz9Mo9^&43M@1o; zFtrM2d&R+k;PZ1LKlj)b_@Vak=M*~BrS>EOs}RV$ZLhF5vf*Lidu1*u-yy! zvA92LoAmKUwCb~~%wlzXEE`?ILC}mht|*Ve zZKP}}3i*RIh7s4w%&<;HO7swlTRCr2el`@}gyE71ZX)BmFR*Yf){EiSP3%jDlyJgT zbCcdlQv{8KUl36@l}^GWqbUPyJi9!7n{1#2hO8WqpqbtwjVa$TWG>-~ykRtW1vl<2 z0^xg-WWh}{7)QqMF#CXc#pmFlT?=69)HuFY2{Po8$~>&{9iasyBEKVpB+4XWeq}qq ziXTAy^!Mdh1E7q5#5Vi<%dAn$65B)4a!U%m_TQ*=2+ucz?8zVM%YXv0dD&o;VuFf*=zmY7krN+NPS zju^8NaxIFIO+JWF6dIP7wfNLwWlJe>>>GFp)noFYU0zyo0Fi-nqH?__5;W!h#aKIl zFctqa%`LKk_iXH;qmB1L0|i16+zmvRLT^VbRJ&JLT3}m4s0O`w5d1*swybCcbR+wK zMf(a`96wr4vj*4Z4kPCq@>OAk`o-!SB33+kKdj!A5peVjl+-;XV*eMyN=ESFUc_oh zDe*(T;%KEZ+yPvYEa_pUCAU=pqENyY226#`k&cc0ie);>)Y6QF=Ivp-K zhk9trid(_NPBk2{n^$V(p^ag)P8)r*?|ElzEQ=ZoArL?y?Zd+g3iov-W4r5l@|C4g zz~A>1XouatJzmo}VWc72rtNYMTpe1sMtURp8Z66+SsHB6CGf4=6SGtY80|;*qx+0x zQxtY~+p-Ps;-(T{9_GI4?~iH~nBmU5@C`xV!}V6y4P4ZGy|4!Ryn=LU31vpgVE7ey z@yAn+qKd~n6y4%Uo=*!o7jX(T(3zNuA+^goP8t7n6KE7q`DxFZx(SH|F&Hu#I`I6> zhp4y&a0>xrekTjJWXFq46tLOAyl=@K7n-L4TdSm4m-0b=^N zyF!M)VNBZ87@6YnSyC{J-*xSMqTL8@9D%8ZB0rK9oXY0%C;G53sI|30|6L0ubaIP2Ui>@H=bGS7;>se(sQNy;hF1sb3tNI!23L5GP&XCjLT~ zC_HwkT&W5Bn9fyB-Cl(T)jkMxNH=3va45}IKo z^@K_ZZG#>un!I~URujbJ5qjco#yx#pBF?)O2mI-_8La>c9VWw;)4*VKFWS7@@4u+D z{7C{D2O+EzfG`OKBmvxigo(0@q?s*1*8bmpm7UU`T?o{y-x9L2!m?CkP617Pd2M2B z$I5^qd&9b05@57$p-lC#VB0vPb+=Rzd8lM*lOI9`ez5bf) z!4mNQeE*FTphlZX*-PJKKxjaI+Ge{G6<7%zs*VVD5*D!L>JHizepADscmk2|Y5O*I zmt=PmDr)|6BN)cR4AtNRZGAGn(=6C5@D-&alEFidVP)NgBbWDK07RgjLJ{}HiUMC@ zWwK^I-x#qtoEa5S4=B5o$tDOa*n&ZFRq-A)+0-DfD`l+jL&b{`jkR^piTRoUOiP)6 zQ44ESL@Owe1st1f!bHgM@-r2*D&{DU`MFJCsvUM@gdgq=n+^-;^nqATrf&0EuE4Fn9WIQScvmLd_qbN`cA;BcVSzkRen}6qQebF>G$dPvTPIZ*XYepJ>I`Q(aM2ed6q% zwUcF}hTwZ5c4d6X>M9Fj_^f(p6eIU+&`{ba91V7Gz>wChSSMP7%J+67vun5~OXj69 z_)Nrwo)U~a%tQp)c{{OezpF_3vkHR} zxEDKr`|C!YXy%}&Ig*EG?qUz}{ZzhtP^w%%CB zYBK6T`yo>JHIc7FSY*no-F)0kis3}cz<=G6ZO*J!PMKF0vFUN1DVUrzpvbwzP6j4> z-xZ!+tuIzT)d=oejoL+Ctf}C|V#BlM?yNHM9QgHJ_g$8a94E;>xn3 zm|X9IqJ+qR+k_=&zz{K8)t=%2t-U2cf)QBab_m_l+Op3`CX7RNM|0qtrA@lHZr^Vi z@_1nibd<;t)5U~3j6^9hV6$53Zw4(*%1cH`g4y&0fiNep-5Q96JKd-(LIPni8MfM6 zIEnE&$tK8G03q5R&+YaZ5A|<}B%*VJh#D#ts`*-Z6yVdlu}!Kn}&44HK?h*y>JMz0+KF&4&|B7 zFOp|+j+$MZv9%;_m=OC(MxC~DizQ66yWsi+yK50qgbs;b8o@6@`uq|{?2}3DEEpnx6`Yjl0d6tZ(&{3}2Mv56- zLKwxH6-$0X!$L!_D~LWCUV|4_tvXr9D4HKx<2R0k;Y-suK>V=Iw6|2g`4lr#Blz%x zVK4QSKkr9rd~fUT`ZkFU3N;IL{jQNm#|?a-O)T18Q1^eB?0pseSu?O(q$8sL)^jNpoocM0e45_27WqQNja|4Q zA6=pZM|5ea3!`%DqE54l{L7#4W{%|RllnHy78vFep5gJ)ipMd_Lc8bv-?}HCX!;@! zKw0DmltqgFpSS$Wo@S`h_#f{RJ`TC>*pZYn8~EOtX7NTSGFZruLf*kdgEnJFA{nky z9^NgsAP2uw5`7B_)$89C4hE%2YRiuZyG+866d*gFbQ3I_%-9e3(JR^lyLBGo;NW!R z{Hs*(;~ZqT6CZ;Mopq%bd1Nm63l2>{lG>E4&*W-)4B)|90qls4*0z=zV~~tu!$OO;DvtS=LQ?X_geKktjnj% zSFsyWhlc^%n`k{V=gf*{n%KlDG|()1a6K9fees| zBsW-nl9bph!M9+i5LAAVJ(HxsF^Myn#F!EgKrx7Kl?kv&LAae#CO4^YGIs6^AJlRy8Tw9v_r+?g_XAnKno;~s=735zr00b*}vg< z)l;`CB!ae2Q$X+&yJo%KB694wh_pre<*w7YkPdQ$7}V)m<~sfgUihpAPyv9-c_JE{ z*b^58Gb2I>KccYn-~aNX83KBLh|}F3MgZkN0qV;az<%oAcB22<^Vz8al*rsrKT_oy z5L1=ug{*|U>(fJIwClqA@E*%Y-Yo5kp48l*6UgQUueF)HP|W73??8+%-b%UNC& ztMX$ohADXV3#UKG_?!HW($HWIjHa*NrgF|adNu_J-n+o_aIRivV~_;IohqQ+Fj1Ve z2eAZ(nTYnPbSd6B!>c9TY1>s)!YYp9T?XvFO+BxsWUcov!o} z*|#LOu$Co!*5<$Ll=y+d$NDa7MGjtrC$q6ajDMqLN&&fPf?*5K>l4V)n;5#-w=P{I zo2J)Fj3kuDc9fkko)U%8mODqThwz3glA9ngA&w3vcQ0J*4U#JPVYi3HYqQ67&XORq zC5n^7G0UJ2Mw`fX$jvevjRB|2egj_<50Kh5HipuG(`9kOXH&@h$gNvPbxae@0er`LZ74Ievh8?LCQ@a|_ZA;RT zLVzzdoM*^d@iVV9L<8usqkQ@UuKOFqAXCMEvi7Q};CmpL_S5=8SD1O#x!q9HcN2eQyTOOShwPh4YSFU>?sRp+b1J@7`RaprwYygea5@l=76mZlbKr{ne_Y=8@;9oi2x+Emk zK7(%gjO*Z6kg#FdKON!G?tJay`QB|a57O#-ak>AasCRAZ#DGRZY@Wx>Oj9hF+neue zEyvDZ^q9TuOcTFM`NM^CAbS2tvryDh*B zPy+in*T{`t>3t*3S0uKt?LYbH)htX48=f7bQPIAqE&eb(RPWyy$^_vYY@XP~1V1Tl zGzYD{uAV7At~q4P?Y_S73<)sbiFiPG5a`DTX~te`8M!a^lDu$eJHP!sIsVx(aVyl1 z?-C4gLYI6Wy3V1vRa@nOb(cLhqk5}7y))qC*P#5QMyxVs=0bgAjl|A7*mBKa$@}>w zkl1=~t|zF(W&G^5LL-U6#o)2L_B#A}CsLa3EJd5s5Q7F+JwcoA#|Nc+2iap;--6%%rij%``Ge=X1)L4n#q*yITUt4Bl(Bf`A@|UWixYUGZ#xC+y86d@b8|+ zS6L5$#sOefd!CDqh#6(kVq!}7^)cZyizrfb6H+SvfL)>7l65Ps4fj!ZrVre0pWUG+ zv44$72YKd=v8_Ba+H(OtrH9|=^D~Sfn1XDP-)aCkZ5$7!?KB<~H{4GLpXM z%_k6vlsH}Yd2HmZ!+n((fv|x!r(DlJzY@6f1%C)TUGC1ouw$G+a}}W!8@Kv;(b7n= zNoc!x&IfM7Vks3i8n&EN8`mL+)q^gVOFSRji}sNN$#;klEZ%hW8w-7EH(L&$7$q=* zh{KPzuSt{?)7at6)PoJEWr(pJ2kLRNg>zy47>HAy%X~CXS3;bJ1b83pJ88+1o`Zp34MKPWv)LnxanX9fD@eqg9f9p){@*`BB6E)u?uX3$4Vc;HL)L#L!}<3>4-^{G?+0#bTN zTJ+*H#>Ibw-o);8-5_l|fs%Z{4O?vbgihfGf>gTJAi08Rsn$y>@QBUseSx3<`DJa) zI4mq9y|72CAfdQVV>Egn`%oq#n;0Q@pL+x@&g+E$_gO_ccGwuT5Y|4i0mubn3<7zm zmNBkbaEPuvSb+`0Mv?I#v7gSE%Tj*x~yd*A|;hM33mY+GBVaS zOU3|kYva8?b{aABV_*wyqX4BDjyrP?e*Wz(psWIGLo^$5=dxqX<$58?tZ_+ljF5_b zIeZZfFyoyUXHHihAp!N^#sPdH4=e;=;ngIinVhYcz*A@e)1tj0U!;eSL@Ry}mr>0v zln0F82bNh)A=smqOUXEl{1GF{I}c z8WTyy$rIO?^LPk!?wPS?_LW;!tm`L_N0xs1`?P}o)rj7jd)1}kE4P$&%Ul&KHT4{E z`hp|1GdWzd0DbEWBnaGPLq}783}*d_5LivhdRQZ}GpfJ-)qh6Q)s571PyjWVuaN(Z z$D{1v@z(|_MO6;~nqm5}8^DZ*g&+jZm9(hYBo2#5Z~I6>73Trb&P3dg128kYG+Xjj z#bFrNtl13x3Jv#RtgEl{IO64a**5_4!{E_5Jyh&?XwvAb+tgjpk?)qv!7X;CJ0#?p3Kj=ym7yA^4YR#; zM7nx$!7>@_!PQmfYC&_iom!(81t)!er#+vpwY@_W-dxbx^qIKXc!^$WHhxL1jX9jguU=CXYZ8oJtzC+AC!NTul~&)y)uzvQI;e!o7pl$e z7MD&p*bc~Clt3}XCR;qCET<~iZL6&@SR2bBMyH56(-|wm_{eru=d22AY>LlIl;|xq z?hDiyVoRZsg}Ew=WFii=<}R${)>*Mmrgg+7X)WDEp7a?_9kAfY&nGPS?v)#?oa8^h z4yLi{Bq6r34Ww3Q+Fh^k@~zYGYc5#Jqs57c3yFt;BbY;0tjWnhlB*oJ6-^e(IDD6B zE?B3zfN~PBKs9lE1~V^=(G?J{f#4aNGhubUP@>k=&Ak&x-JV->+pKq&LzVkxw?tAq zRLd6NFw(JS^%vN>iXeHiBX2@|DW6&A(`$3u-Y#0|Yv zH3rg2J3@(Q%22ZZ8pUV>L_V`VsrsG(N=9*<3tExWv7>=d+8x^&`PI0VB=FOs-mc^p|Y) zET+P9mt@w__{CAN#*@iN6L65E1cG|Wjs#iVVvNHdX`h&d zx2oJoX^-$TVtCuHP|n9t!hImF^8y|d8pjG(eD=?LC!z#B{4GLq6fcF|H&1C0$D2px zL7tP(ycNkdyjDO;Tg^&UB%yG!x5jz{cpHOy$8F){3}YTM*L>_w2@y@}So#vkj#a28 zKJ-uMY4JojNrOE??m=x6zwuo0_P~Xi8<@9}Z_ovRm}{>0UxaCU)0^&pV5BN&8`{D; zblw>X07XdhzT*)4a=s1i|FVjXjcEMnJyCRf{E8Qa-w$~&f4AXTn!*e-x{7W-mQy-K zXL)3WKaTQnD+!=UKL-qC@6`JAUA+c%a`%1n=_7c;@9ac*D`a>Q*&a)fzn<>daoQe} zrg(~E@a%7OcA)Uw#^62C(YgTrJOR1vN9Dim#mGYQ;|53cj(e&-UiX-5Wr>gwxG?R0 z`CEprLH;OP0A%MoKzHy@E})8t>|b+;8=xgv0Dw!4@6Mf#0WkD?5PKL+#ma7M{Dz*I zuue&f5JbGk^XKjXiS{zq%g6q=V0#+>=1jHDn}dKdk4|)3{K|2;oOpYGd_@Q-_0%1a z+h}kCYqg`@i;E@Os2=F=HtulP4Gay3{cXydnDKKyCh#{VcE0SKQgU*{GqZGoPq0zn z34vc+uxu0~rl_}f9}kyoqvPhL*$l_LBD3scp=b}@H*n^4q~P>;bpgC6PYqM01dY5L z0#SmE`TA2*5a?0B3ji1KDZum39f1Gmtnxp&>i-yg z{lQhE-6<}0+t`oMMEgP^mtczQ{@|)o|AVWFIUd0R48DH7|FM>?6Cdow6c$cTube!n zQBGu(PrQ>dAO1D2y#Z>}u$aMIGj}M&j*-L?1KIde)0RSfWTl4sHbScoidfLSG-sde zD9!Iv!*5q5Am{OmZ>@-b{%1b>Q1IW#Tp#$|Qj&mZ zmj^^U%|Gyl|9w4S2M1d-BYQ~)Thsp;J;o;d3s?>NOe&F!?GCA^Zlu(EloFc> zqC^GL>2TzbD#>IfkJmr8X-C$5`of>=nTRe_M+|cG@JZkj_HRa45FHAYs_bzYW*PPh zVG)IJELk8vWCn}CwZu_~s>u(D8J+wQ>G}(ZTlcr~pJg<-LrKa!uA!%qKfk>`D-!TM ziwJ)(!=|A2xs~x^Avtph5f-K*59FJA)$*lN^Cb2+;{Die<;lM6b{+Ux`MHw`ZVigq zf&&w{Z{AhJ&PTlP!H6^=&l#udbvR;!-qSn~m>z)(YYJzJ?Ecw|*%!s66S*_n;{ra1 zhg1RMK%t6mxw2b3gY+Xo00^swmA?z_QD$Q`61WIKKfjx_VU#HemZ5HfiG#(F9vB^y zesWi3Y7Mt!d-ryNF*wN@tP-jv^=X{ak=`k#pZj(~C(Fp}$6pw-f8uSXQvy*2a3Ftd zzUltI4#dmVOvu^U$m>6kWLgGT3322{V@-`+YIKUZx+~-yyqz0lKcsR5FqP!Z+)4Fo zRf-)(j?HoIBGvH>!3+V~WX&8A^IqTE$Haumzgk6HlW|dKG8ArU@G)?9NGl8EQ6iyE z2SjEI0HF(TCe2G^$CEQDAwJ_U2b0I62^A!`xg??LD=2;%lnf6RLVREE+mw3x;24sT zlPYICiirUt1FUoAGM5Th}k9vd=@uHs6Jo;8Y+!dvV0}>taHc?JQoYO-FOa} z%ffYkBIe#RxTT9XlGz^t(8hanvP}c-KWLiLNbMRXNc&J|8z$snG>?E_U@^?Esch`P z=dT={v>8KDZ2omB3mEki9lh$%XPU-a#&9&RVE>r~5J9=l2wG*};oXB?931*{AGXtM$3XH8%dwqC1Z5Ay*d+jDD*Bu;R6;)5yarFsC z93*NUWb~salrMo*k4nB;g-bg*!jhDU+`poeXP>DvQ3(wjgoi9amKFa8IhNc|+0Gz* zV0N5@w=)Z9@z!uvT8vjcl9&heCdMog{gnn-h9Ur=(KTMRu%&%K-PGAPySv=%m(6y; zUz=hAvTF|UVyvL0Ju(f;lKNd*IGCd#F>J|vMm!p057RMUeAzMAN1r*tP@$;*%g~*B zM(0Q34}(!7e_{kdEg6Zz_BT*YA-hU${$FMd98?T4XfMrocCt6a!c{U|_UdestuR|1 zYCRtvAVq^d>1a=`OU-#2PDjrj?tiYN;id z=TaxW+H~C;Gt|p>|9WeZMw?u2x>a~Ss~p`d&B8h?i#bvB#UYOLTb$KvzjTy{IZ)K7 zn=LEzlJ7pQdS2O4%}*SVdVFo>et4pk8eXsC{HDym7dmyRkPfZz$P6 zXB&H-n_t5r?$GqTDT3~iV+qunSL#Go@v2Dg2Z@a&Uer&HQVl=h;gQ~64eomN94?ap zsbxt<_5&?{_ttwiia=tIt(*SMhPw{3%!Z@8eXgOnfW;2s!_4}YV6)T>Oj7DJSr}-Z zi}Y}$T7q*-Tsk~@zD`xB5@&dEz@Wg0%9*{$KToqH(}o*tZrX?rje+v>4E6S zvGbDlOHEe*G4G=FwCyu1e)?c~B-eimNi!TVZ*9*c;D_^%4$byJLp%@Y9(Zi}Us<=k zF$0e9jEW$!U0Z=tUGx^r_F`Y~%6hF!YJ2V7HGW71|~yfzM@&qq=go=+y#b%&bKf4NMeF@{@BIPBt} zYtz!!%}{SVfL4UnBlagSG=>ir zgU1mGp8`3@@G#eO)4d_5(-ChwvDJuUwly4becU1bD6#@0qTbgtX3-xVg7O_V{2B&# zNT^Hhq*iou`&z~)X8DGotIzpU`;C*{?5SFIP=^`IVSLC_!n#fb`^F-6l#lj`eKD_jy0d`p~JY5-OrE(77Vd=r)XZ)k_#d}=DQJp! zHbIj^W4OH6wY!b*G-~}rNv7iTx2VW8IoRpz$6JLXp};A4g-MjA7YxK5{Hi^pEkdB& zp-kO;klSxK`}jet4*umhJn=FWwv7)YSNaiAeSw{M0nKfM$bfI73b}j8Z_$hI9Cx2w zD%W7o4w(2!i7CXk&MYdMVz1Yo zZY#uL$U@tR>8N5bwL7wpS(=kYasxToe!aat(zp*Wt6Sn|JC&MGWycgGDaX@dj_Iga zmW%F?3KRDYqdN&xC^6g`JUtN=#aXo{Vnej?$Y>W;9%jZGy))km&;bap&R`RZrF%XP zZa+&=e7w7DCRamKo~g{wu^cB6sW;!)%`FOThGf;vojHGwnwL_mH{+O=dtPKsduYv^ zpR1N^7}A~};l!Y_k#4T_(~G8r3RU5o1ty=IVF{;nybGxNK-rBbx;s)klyYE5oo^5; zb; zSbwCB&}{a=)=MUh6pg-oNxWJlX%pxl=i#xy z_okhW!eVd4be}-pl=e7U7ZC~VFZr$jPIX!T-cgGwC1-9kF-G!`Lsgt04owtY6$N`V zHk0Z{mwXj!JqrVFAHMY7b`R2LI9`XdtAdINtts?5>eWbiZP->0uLD&Tjh}8mHbAXa?Re;A#!}Rw z+c&VC<@a8W9GtOc#uwti(dhLCSqU*|!W;8gX9W<%@4zJ0l3Z6U3ptm=T#_4U=>>%G zR~<@sywj%nk|h~xBLvRHfmIXgj)>fsEDYd$PUu^6HQcJ`;*J?`w7k6yqKo|^Rhn&} zGKLSI_oVn*o-q{Y4UFw6oG++-aB}qiNFG2^_`zQa6=R+iKE}7sCFnT-PN$E1W~EqC zNrDx1E$RoJ!&7tygyVTXZi$y=jazD8^t?AUUSFH{z#xLT@YTZ}(*m$iW{|D!6ody= zc6p>PB0Bo~^Ho3Kl|I4-)ycG~F&9lp&x*13L5gmW#BXV06u6(Ex24b_Br^BBzLybC z*H4*%nKY$>A2P<_<`wgjuS^WG-jzU-Ob=_6lR3qHFe6i>hY~sI?S&1(PKz2pgw)Kp zfZE;fkY~WfuSd8Ms=Wa3OQOWo7dO|})N2L@5T(M}BOMZY>3e@+3148E%Ox^#-%||* z>w)Pwz4+TUP35>!Pd{K(Fbgn#`!BeTnX8-QUn4I?P0kia4E1BFzWc!(k4Hf6b1sq9 z&YGtfT=-c=o6rdW>?93aK|_JDKMb!f++_a#g;6#J&;jK@+=GT7O%^5;E|Y+F+>KF< z1c88$U_nMcoSYbTN*fIf-v0jl%hzG6%fbA8UtoI^=o+%6pe;rUE}W@&7rLa-Qbc|L zwx(g0mSs8JDuSNO8*Nb_xCisM#|rg_Rk<5;Q< z78!M(;Psd9`UO=|TR`Ds)3ln=(HT}O4m_bB3$)EfKj{^lZ=5P^_4W0%7_+fV@Gc!_Db8xuQ4)&B{@hMyq~>KQFE!4n z0-mgp_p+w6lq~tRQeQD&C7|VI^p$T1}bAsBLtAc$bnscH$;?W zGRM-&$>HivJlvlcdK1vjGHK`VNfuMm!FvhU6Azy@N5LM* zHF0WHC!SxjxjWLiB2l=x(@%z=I`|=?s*UwVz}ek!`;@+l)7Hsf()t_OHGCJu$V2CC z)XHZGa~@#PC|!~3atN%Em6?O62Y}T=2?FV|^&A`e(O5K{=WK{d!dQJ z!RO$(6=LQWY8^h_flTO}yu7rE#N@OccPL@?htk8_3ZKdum{&ROl;E#Ga6m0DR7tbs?S2u53(-eHUw?1ok-MkK2 zen;1Ys96xn21ueH&%^h2l-tDdm+#x1|%ypBer!882NZ1T&R1Bnu65fs_@t;&=F=UxE=| z=WoG&pq^(L!TbF@TM!G-C=CLlYF}0OP?he9kYRJq6OZ#hA@Qdt6QCobcsp2EzGd-L zS9V`9cz9I4%}cI&85NKm6;XB`RQS-6o{}C_5_ra-^3s%EdOO%IIzXaopH=u!k@l09 zUV1WO~6uAiyrO^^u;>wyWhp8>4?`- zqY0NM89Ayr$V)Z<=oQH}rs;Suw4{!A0$Iu=cn zJhn%w-BClT&6nui#XS&4w>m*X+&!Q)K<&AA8umj1iHQ6;LTC{7RN!o_8v>p!0@c$+ z-!G^fKm{<^eS0DS76*%g;-uce6ltk=e53&%D7fA!)5e+Ichakb)A`9AR)wU6r;e$K zQE&gvipd3H0Pe?-4W)Ba3&+y3#(IUQD~UD-2u@77v|d_h(_;rxnjA~X@AbFQ4k~Se z*)X;C7NZ4KSUL4|aMYoRJc5PTe0@CvYt;!LJ~A%1~qpHB{?r;UDaLGk(HiQg+ zDv6UsjdfdS@@mLR`i1l@N+>ZHQ1T8I#+%W6P{|IKCJ4#=Lcnk$HGws|3ybYruT95u zZ`k~RmiC}0I(3^=Wlf6FJgUQ?jF(t7=Gl)x=S^G^SR(PkUJA=}^P)8}E|D8%A4Er!7 zMU2|<6a`2KygslXm(hef?biNVnfz>`iYm78cYa$@R35JJqiH9&N3~uY?>$al3l(mG)MXV*OjR{Xa4YcbeX3w80|eW zunG*g_)r8yguBc&l24c#WIjPQ!2BtWc)3n+xiW2m=1>NXHQzbucTz(bZc;*O+eNk= zCt8tv2JFB;e^mPbZOc3X2}pZ_S7I&6rosG_8cNM37mfY-jO*LQTb5a(=G(y^#e#_! zG-<%v8EuKLV90lrIw8`4!)WFyc=cUIDUT~1UzhAIzHHKD^hMF{6VE=$wnzCL10JaqRw*8yuYI;r;{`IbX-{aWrOY1V^o^%4QUJ_?9Xge zs)Wf1r15;IYEVP(@1HtBP8yzThj?WK5X{ws)=e=?3?~jo5A2pJ2%I_==P(LdK{qiT zD6NUj{9lnacQM}bF9j)6GQR5J#o4e%K=Gr(S}B<&&n4fOW65MnXL*_p#E%evHIC7r z{D{#|aJkAuW;zpg$*U59w$L*<4_3KelQmNhT~eFy`mOa@v>2Y^+N}-Gp^n%DO&{SS zJBKziWPo=+0bV$IUfLYwP9PkRmP3|uHpXkFWwvT2yvVr%s+%(I7yOz-rYU8^Uk>_E zfcUBy!?-kCvxqK+RsjT4Aw);@YvwDjL?Z5*;7AAEv6pSpI(azzE|{s-jJYjQ5@!?I z`cKR-Zd;F-{f@SlsxgDzo+Ng%bz%Gl*?3#<5zsJ<`T?XZ>2PQ5J`qpu_8=(JSd!OE zShfUMHZUtT2BXr#lHvM37lMA-RnM?03c5}hpgm$O_pG;F{jF-;a1UIreZ*RlPaFf-h9<1&;d;v;d%LsY8`Sq`oJw-vp>P7P?-9Dn7k&ZCz+)AS zwuVy8f`ZKq>+|{-cg_lYt%RQT1N%Lqn4@AcIhEaGdKWY`nLYuCA-7Kqyu0f7U5X)9oBSMLO5P(iJ3~D@Vih}reb~W$m@h7fzJx)_Dpd%C z;gkk*1ICCvW4@@_q27eF-^2DR!2$ZVD9(c~U&WsE>+5+*`h_Sk9HjEbLwrselyj0U z(M1sIYW#1oeR^NnZ8CfyZ?JO|#1aDCrn(W{xA__SICIOUTj9ch(RTnZ+9K{vn(bQ(ABYr2(@Ci?h@as9J74)zj-<)%a(MyeXcth9{>vEh zU*$;D$kpt>)S_aIXAcxL)Q=J^a=a46)Kqk6;D#bHB2A%qV(B$e;7wbR{A%rz(WW9f z^F7l!F)>gjbTl+4Ahbs?F|CkPlB}0b|KyQZb8;fNB<=hAiAnFPtti0H+F@kWNNSwP67jVww~>iT}I?)knXE);IeV$8?KL zGUC-WwGRrgD&E?0iV8+da&1?MtI&=ah)UhP2{A}2PWLC|=R9_py20k+6fYJP|JBRp z@_#6M$LP$WXkD`^w)4fd?WAJcwr!(=$`{+VZQHi(RBR`8bMEOL-RJf>KYEOf-+S-1 z_FQwW`9811RWyyGFJee($&YzgmH9&rZE`L`Ya&%?GnDwEJ|tF?)%L=3N7GT0A{=jX z%Q#cMOc^rl0oN_u3t6j3S_Z2yn))(sVt7&uQ^^SIB$Taqfcdw9O*KJO36~A^85XQ% zu|BTNc9zGbdXD?u0urmDo!649jNEGs-zw zi#$nH7tJ|IleCb`L@~18LQ237-F7hu=$Qls6Jk-qmXXMONjcJ07$yvq1*aUN6iUAA z_U<3BL_>yCK}Zm?SUqGLM3$DCBtC7)O2lWOm9d}95RD^nY`9q|;qb^v)M+;wr8Qevym$?9sprolOGs`Du_(#P`s3MI#`3r$=8hb<{`m__?2kK-6g!soay&mi)2c1vR=7OO@ z;P1;rHJyG^(Ph+wI}s-sd$?_%dQ6vwYzAnjC)KOT?#bR)vU3Nxu+|?~$s48}Tg}TF z^*QP;qfr^EV1&3PKSa{b#1dsnw6asBUE(*rrV5v{Gv}6*RMq>bu$8~r7!G8JyT5Y~ zNNr?v(7_zO?kQ-5jU9+#DT1!qx0@fwk+m~@?7Y!0FdVm_q_bZ~fxQb~W>rCIKPeeg zU9eVqYKG}^S!dk6Z{4BLHfWkUBPl>eP{A~YIB9oxf<>gu^Wx8i*x(VtAZdrPAp&A7}C5wBxyxX-$* zg}p-&xb#$e(A2BuTbUl>cyt{b&MqNPkyoRhAmaPX?iR2U{&yXgRg@F_SAr=gGHBfv zKe_kMbo`~sV^y?c>9{5QLKFw7_4}a+HIAr>Ow*yKd@BRev{|*JtVujf$T)7R=9B`N zd0l1aK%W64q+N6GRcD3^an*$6JcVUCE3&FGD()Gdr@HNXZ!PYUCf$@4vx}|oYSf69 z*SG&Ne8#RI-uP)uHIA2Ja@_>bPj|O;>pje_Xw5X8XU)68@1B&CA&&XYhV4me1nuJS zdG~Zp23GF69Qz&Zg~x%Z?~Vt_4x5{Rq#evHUr=TLho((llbTl#h_}p?2kyoX<3>FB zSY7t@fUG}e1r&7=ou&n17woKTyHx$$67g3O6Y~6$EQJMM?0?R=7UYcUHW(?=L6W(m zbt?d^0e)CBq6RCZfKAF?g0X=Prx$Wo?H4-0wjZn!ksBwX^^9QUDw0z zim275UmLoW`F&P71Gv2V2W$RL2hKd#Mo}xr&gz~e*G5(D>nD0*ygT2`Vjb7(rW66# z9aE_&9mCTg^;kbI`-t-kN_#oW9V4Gk!7j%n*MpQ-Ll#`Nas(Ns=YM0K#1@`RVoo1$ zc4`pk$=5D=FFeAXFCum$>>JgsKsK{Gk0Gaw1VDC;R`7mEWa){vCyo{@Es&EtqNxQQ3lmdoDM! z!V^L%2}oEH&ZhX@lxsDQHOqF40jB_3NIQh3p_Jjg=tp~?N#@~b5pP4z9|gSATU(8m z3xv2cx58%T*I8*i_Z=(^2|ZtajNhogFQi%=Z?MDy62yobW|A5x5A-Zgktb%k{W-GU zuvk>Xr$ns3W`z`pU7=8g^Ax!R;r^6Hyo|VzHTVhKRzgT`jd?NzE<8Vkwqg7bQJ|T6VaLWwmDSu&(L3-- zb6u%4TCQbLBV=FDkO+KXy@aCLvPI$$6*?UjOEx6M!}Q%&OEabUM~TXjMEOM%d~J@> z2`w2VEpJmz`Hh`2t54nX^&P_VE-NYL4@zNP%qSW*bRJ3(mi51najBb}NSE}Aq< zN&Q}Iq*Oel-$ITm(T;5#NrzNiW$T*4F+&nRSXdgVK*bXUUN$he>%Q2^+Ep$z*bcO z3uAG_@}j;ujrw;~N|hrk<<^HZmd7n;N~Jx5;W!?5FaDtNUbe!H^#?}WE*4dlls3VK zuoeqKE)8+vZt~#L!x+I|V)TxN2ts&2@mENwwH>Nqsnn8{ zpb}w)D!6llP40gkn{_N&0We|^MKgN=aa#T2#O1r_b#N1&nP|wpBgArsZK3i4y@@iz zef&s@{q@5te-*@arKOc8e2{bYSxIufEe{3p%|(0y8i=R&cw=CR>Gx4$7({)7CvX8K zRedTx#NESeZiB7}_xLdhq4sm6`#j$iMaWI0TN1zh+lJ7L)*;$WfFmT2$fl{%b8WD= z(jeni#7pqc8~>`vP>)c3u0(!K!y8QWTd1C}(m^EzX>zOAqCYlPatiqmhE8V3iqQ(m zvZbMQq*U0b4au^WD~A!e#50v#?Z{H?W=SZAF9%*L|5l0vX*n8pUOb4By#vwZ7qecU zhA*RJd2pscHfSk?v<649Vf4aBjxY@`A58!bX0qCCGVBwP0}XaOu594#sd|SlWdX&> zz^6CaEHR>3>4Xgb1RvJfUB(eBWaa0gcv@|yf^|ZpK{^kp*@84OOz7pBRZ}0%GigWj5KIQy9>m8 zSyvss?o+Gpf?kD<3f7Q<)ta~28_ZQLUWV?$2|qXKNHQ>R1| zGT8*6kd;rUu&I|RyX)f^QC5^3mh>hOdUey*ZbS z2LNBC7a@Sn8#~{5^<>^dZNQxO?}Vg0WGU+n?p)G?8w#)Nq=4j+Qp;A>xm)XNIcclm zp~`d@* zpva9-*-PK>5XwTT35pTQE612W9o^Tj zJB7U8NLK56=T!qOb2HG|dy{VX8IeN&Q#xH1hU1h56jvZSKzI{tDd z61p`qMqVh@q-L4IeNZs&JHwNPXnfdxm0OMKI+BHd{ECWmdBWBPQk8pH!)S|p} zMP-~8kD&Nns+$tRH|$vSEH`WkAZ>8^z;H!>Mdu{~TbEcXmu4%QkxTw2Pw$d_8{X~G z3USK+UZFQ2n9_T9gbs1Q61S-24ya(w*BwAl&%hL+k;SA9RU?TutM7~J!j}>u=xajH z606>ju!krrkNL4>_A-#9w9M>d3CQEI8bLTW17Np;_RG+=#|*jG9wrC;d-+sJ*vlHu zx+D&fh*#?&qERRO_&=B=c-JT$_}@H|rSCND|0}^){@-cZf0Lp`soOf}n4X|c%6?q0O0}RV~B;} zusFzM$f*|=hI!TZ{O7~>Cx2;wSL@6mqOnF00rc?~CVnq8Dk98r9%l8(Ks^tY6F$>z zX&6C7Xiln!Oi-LVBxF`T@Mvpb6eN1wBP7tMcY)};il z9w~jXfOP55fIza9MZ?)KEdHLgkKe&BKUr_bVSMtuHk6quY_do&&ZLKP97db+Gb&C~ zbNjo4&Yw+bPvQplP`jb__3*|?C9BC7ATT&>#zrb_+@`RI0%<7@OxtG*!C>Q3c6QCN zHy87|sGF@54T|1j(`L-`Ak(aEzCM8o3XrIIG}w>5iWaN zIjv}x`Bix;5u~C}IfKVwmRX%S=;)dztv$#L+p-%PT=kM3MnU_5CZGP27F=@U3=2(4 z#|pDbn+q)&9m7m#y(j%rA515qi5oRV?q|4{;<4V(!fCpv`Lku83wGuJ?J_egEm+oK z_YjJ<02-#Y|k~5 z`4$+=;ixtsdvtZx86TXMVIPLmvTF<5Gn4=zzn$*vfF%_lXrKAU#+=+#1F_M!I(0E+ zF0TmOnCHum&O^Y}tAn_TG$nXcrNwYinEBPGmz~>pd2pXwxL%n&q2Zj0i^d*-PfsFm z)R(@f_^5e#zLIU15MwEZ^^~+x_mVR^rr2|n)0ND@Ct+|_*d6{fB=gJd)Q;bw_Dl4 z8yYos39=5`FKy!%17wciN&@0h+)bmJj%8~uZc?k zB{cq7yEUsqGNyeDLlE&Vd87PXe%MAwEsx9vf0-JZKA@twj@IiCly+w*=#j~4+Hk0T z-Lf(giGzw$a*S2Yl5RhOEo$im={I_%t}Y#9!9ff&x*B3yhy8`vltuI`Mv8bo!B2fHDq6S%U@rrb~n^RSTrEdc7u}p zao{dA0sR|rN2CaMR8;%C|LAlEgFFx^ZhvJDlXWNdP&|?Vh6teehxKnMKJb1I_elKX z_{vvuPyLO@y{6<|E8*%?t~8!cAobnm*(wY9))~4Jt0XqPzFFi}C<4k7JM5{R zjxu+jeXZG&V=dJt_puxO8WsHZ*G;nUI_OPI5q&%YYv^anvO>hJA({qk|m@M&Q`%A(1jlY*^Ub;!B@avx~!12JZA+rKZIFLSIeEF=-O;&z4Lis58u!fYG3^ zygUPw?xbScXlr3BISvwbFJojcjR>;%ay|c=?RW{Y$tt*-H!uq^Z$T3aLZ&)aVCn`RhaPHlm z8#Yd#PB7O{i$+QB$?0PfdB2*qIBNPW4*FVTF_e__moUag=t2)%D>SOo3~(N7m{b#= z$Qfo6x;STFUROuYW~+RJzdWg%OkUyRr*uS&ZNZ^boXkuWXZourxU`~d&!8tQugWgr zhBrvW4;0lh{p3+oq{X^@TAZ?;%%l+up`uudXaD{h-Vr!&I#%cFy(FWCiz-i^^^Hzw zL<`>CMa^>jIj|4s1ZgX_E`zzL!NQvpnDiPtfk*M2oN7mtT~8);=tq(gX1TmvT}Bxj zg{#;P3!^tk1dee)2L4@vbwFmPvKSJBW}xAWBtg;J>xp3&=&yj$8#ssg263TmE8Vbf z$K6y1K08Dj>XM95!2n$oucBsY3V+ zP26Tz1I^-G3&Z@vN>hU~5BwzmY^O|Utw$79RYe1v^R*@?`VYXyAt{7IVR7j*dW#$>Y ztx^YtKE31VOhj2M?fcIUup@|AljO#Auk<^b9&>p^gw{i!vU9#{>;t`}-9zs0R$XbR zO?fMs%!zGqc!w8JNAOAwbel2)JiFdDjXhDOZ+BN-pvTvF9A)2$N&7r6xpaIUbb>uO zf2Z&8Pd}tP55@Mr)3GMug@xA_NCeF0p2LVMc+q>F1-sKWlkh8$vmMN^;{EkjU3sv0 z*W)_@ADnzVJUsBi+9(wr3-bEnWKsvV1VsuXF|RD zd7pnDMvO#%*}okpj-B-X{yl-!d9gQ*bbUD6@~6&>f!z&)Wv+R8P;kHTR`B@?K-(dt zFRYoY5qoRzE8W!>x-5D)huR9qf2)ROU_7*jl-%A@^Ll7*@1<=B<@!~8Jf*7y8o$e7`s-`bMr2B`jodeRXz1wN4k+y*fzV3 zc++X{tlZp<9wy$O6H&00RmUeJkdfGo-+?@{HX|xzMq0#--!n>aTomJWQF}Ys!{maH z9W&nuaIf&JrDGlhIhGc32ICW5J_FOH7SWg4t4s@t6O)Ik`*ip#T6{;<=Z>{JCO6p& z#0q7esr77g1U64A_8CpEx}M0>00kF*gUlr%53-B>S4=t&w|u{|kDd)=gnwr6YIR8} zt`EI6k;L@fUN7mPByIX1Cot)0gWIbF4d&qVnwj2?44bB(R%fU7Wk;-U3qm_@$!V6AmT8uc^d#En zkuBVQ%f3YkxY${$`xI$7Sq+mmqVP=&^ZcONq3>?BjX2i>th2;$l3PBBLM#3U4Ijx%sK!icL6a|HO~>O0B3X1R z;3B_*vfXoL<(sYR+{$f%!{y6}kA%BJkTt1d-tjD=#jxI#*g%&>kT zjJc@;zl}=f%veN2jf0GKLS@i2IV>mgHT_5bOD@|+RlMsI8_`E>a6C6gN$Y+g5$zWk zkR{}Nmq(YP^*HZjUU=tq)^^wLbfLcw=f4)b&rGPP{zLp(_}zxf_5b6^MQt5iJpc2R z{3jVDOYuJe71}UEfm(_ROt&V)7D9>#eFmLKk}{#>My>W6;K_;0v_re*p3JwqkS~hE zmJ@wJ7p6K_9k&G3Z|UzBN}jOI)hK1jE&csbq*xJxA`t+T>3H5gkM_XKCJDF zESK}SqvX;NqEDyj>(cSl3mMYA0JT%PVz5*V@XFN&z&>pKy3nK_KwU|QTCNj55oOJ+ ze<%NrP^93Cnld+>t-kh7|G$1703Vpn-ZuwK0sVho3jQ|(^FKeyl)9&njwotY;K z1H+h0TB9;?V{mfOxBw3KE+G!X&hpNbAY1x510 za~lP)EvZ`b2t#+PDZ?wNBXV2)6R*3U%`!<7*3Yg_X84b%Jx{Woueo+KueuOB9asE* zOo+6FKkxfeC-3PIPK~KL z7s_{MEYr7wwpnCQ6X*+b1@QL=NESufNDIvzMP>?kS~D9*yJW0+SPArINFc&tY6f6k zYP*wS7yLD0&a$#;Nu>ej-FO(RC1ULIt>~7umpLs95YtXd(6Sy`&xX(F@NOs0DuKqe zuZm@R&@k5T?CGiVR+zzN(r%~Al0~3+peIS69*(A}_n+`kA5wO_HwoC8ix9->+Uv~w$N_L6-q1rT}EOz2hKQsDt>I)59@1i1KxzOPFddVm%lWU{Q zvNYMp8Kmf4nu<(e2&0lBCedqu5sD2B9o0Lj#PGRh(G8{K8KjKxE|&Obirf`^M?d-xwdVet__!?4Drz1?W?I z$PConScAt{OYC!CtL;@``$bT&ejvzGdq@o|c!&)&ctm@a>^;8(1@c>Y;4?r?X23Lq zFk|ZtPRtLgL-qFwF5j429_!zf1AF%EvA?2!Q+mh_oWGRl?7_oBIy4U-5SKs;){3M# zSoYIVAzqC45?pKwRGVa`&Y*!pp6%SlIX``PDi!%Q_d+RxdbH4>O$_d;yf$ zBo`~pnZ?4Htf1uWToSx+bOAO86j6-RfEB{`ExjZ$mRBiKt!U z!CIYaeDP0i(`~C1mDV$ynV0aI;g-V@akAOmGC5kR{+^xM@&`wTmBh(s+q!|{F;SI- zGZ5abj(g8$UNMkucNSO01~(L^8sQ$anbpfRmPb5Cl^;uJZ-jmS3s$Oi7nT;h%86C3 zj$PsrNKzIcPsi%15Ql|A_{};IqBwu~ylA0_rpdjMs0|wnRix?b7%FeQvYxq~jeV## z7i*Z`eb#hB>28CN3uffdY=T%Ju-n%>*Z3u01IX;6Gt#t!GhggG)W&FfC`fGUS*kn- zSu?-ZleXWNNOLn~%G|yQdHHISqO-U~+T&eLf0vW}Li99rww6ik zOl`+X*5kwYJ_$!skA~|)G9*(+D2|z1YjH>RJiaRK5>MXSWwvcz^hxAxzi511tB0v@ zGq^lCdO&?b>C3e@k(@$!iR?cq2k{ffddPFw-niP;N~??SV!2_S?L6#67&WRl{i(f= z1D)#bdlvxWj@N%SnlQHEy>n%rqxuOB1)A=dER?#8g2jr)(aRgumSim&)S)fk$rx&f z@HS4g6_Mw4@?bF1j8o01+J(_Qk=gm}KnB9oSU8GRi4&D{pMt z@Y74m!Yi{9G82*ib7wvHRL%0hLf{!HGWsmu}fwI zL670=SfmkJ;Xqy02ENexWYm}skIr1m315=HPzJS)V5oR4z>^@Pgm+rV5w8{0k`bS22wuG>pu-G55#}6D71_FIBm@va^bUEIIg@`!rB-ZSMWWn+8Sn}Kyi$X0 zr`Kjf#H4~`R6;N)#O;;f@{e=+L2~p%jJi)M!8O^$!S(?Al|lV}aVsFL1zqM=Yf^Cn zYzp8YgESc?tkm67=mh+0Lc`#gsA=6marR50@SOhCEDdO?q@F3lP-wrh6h+J$&Q-v< zZ>4f2ItASFn83&NoYBK=3UGEl=bSvS@22y3pp0G%0>6w9uZ!&w#d~}QUDAGf{T77S zIYi|pi|7W8kOMeskF9V(^wi~r1!xWw6ql8+t)Ns^CiZJ~c92r3z@H#H>seZBt)II&sBTe;fRGdP(b%FDPx>j}5j5dpb)(KDCAj-RxarQ83f2a_>{&yR2a@9M zHv)!*QHgl(NMq@U=)Rh?EkY?{10qMoQpDe;x{mMgZsY)R9Kjrx=7kO*!*8> zLvBwWm8GSV&1W+`W>4rpqyiEkP*7uk{DGp-ffq19RtklWDH0THmRgrTb z4ZT4VK-mXu>*Yn2@>LGT-&5#z8em)NxjuyvnZ=H>{HsJvtzT7m_t9>&Zj*Yf!yW#GUDZb6k ziK*wdwwWOQUcAVy>pp`07)S(|4j5O*$IysX zs{<28k*=1lE1&}oIY9o$UMQdVjL*%F$c&O!uHJ^6<6|uN9MczPyKG~j-*Le`gF&0P z^EaM|D*LebKFGg^Q2nNIdiG{gJkIRfUb7(NZ&t5g4@?oie(K-uR=i*<|7!<^@G-*w z8=b=0{0Ph7X!DH7Xle5d$#8G;jN$OgsYAqkkFATrd{3?8XL-UH{$+Sk6X`oXwexb% zg6J3h`(%dU<(?q&GokJ`)06%1*T8B@Jy zm~l8H1#}V)28W#;E4Ql2&39u5@1}{R(27VixswDzKB6u8n-?Lq6Wg3TswXK$T#X^B zJl!tVC!a$wX77~17wzI8;ajh^#A<$MM?@Rd-b^3wjr%arV^F~n1`+Nc3V1(`{NYJ$ zO!C^PxS8mrJUoSzePU`g?m2EDtHOv|5LPEMZ#me_sf(I~tydA|h|i=avpa^$<_IL8 z7IAE$ zTu)-#T|2jl1pgjXh5Scoq!9=ldK6Qp+>~)|E{TKgJci&2+X>C%yVso zR?E<55&rq+gj@jkh)#2O%<@;c9^)~%09F|J_aXrdimhy(fVp=q_bN*MSV^TrEz<&i zQ`_wy;d7gQNG^=U5y)5C^fpG^Gsb?!9>D}ynKzz-uin+ad$sn$QT!-Hp1uhdv7b;} z#Q+V=te*r`kBzpuz93(_*l!LTa~6rQk;mUmnlg%(o~@Pfl0(+_{BE*t|D0TtI!2;R zO+KIo+of3Rl0`OFN>ZklJcya{X^x1xYb=-;4Fh|+$iITWXG5{Y9OOz9 zE@~Ohf6eb%GXq?1(p<*NpuMmUf_xy(v&>faom*ZrGT@B}8%U6typ=C)3}u752;Ei9 zS+QZXh<9cUM3BX}F6X((#!}%e-QrsBS!*3RG_o#u2XEol!`KMbV(b1E`|SIEuKS)# ze!_AW6p|MVYgmIx$Shi7E6(`I6D}UYF2?EJj~6S{YGM~M7_9SKZ?0g$$0>`gWx=8_ zXV|&3%sH+IVP5Pu&S7hw!ipbmcHg$avlo0GrHhI4PkhnxQ@K+2^A-K=7pY;|6Y<-$ z{&VVT@EWE`tu2&iXjYmgB%FhdVykQZPEFFe+Cohj1P<#F#&B_BU!fe;{JJp2y6ocW z4G9TVh*Ts(Y{H!%48}lQQK~s2TN_-5kd6{9O+R*hU{+WS(=>~`2Ct~Ukgla4!kcE) zL{4s*FNK=G=9o-gY!Ue9JWY0Q)df~IQ+BRmDYTv@o>^MiSXa{tS9#QLbVa(N!rP@o zHlfgwSuH>D*aPK2MLc$_@g->Lme7u!)|L#89cjUXFXZuMsGiHLpb z??5UgMj(Ekh8ESIx<d`5twE+#jB7k4NcCKgZwdaH=%^)>B?zM^h3cHv zM67ugMCr52lUA}gmYJ-tmCRltx{nGoA14cp!TtJ-^Hhr@wW6Z*Hp9X*EEvN$lE}0r z7@bQ3H&`2oUeE^0#KwcSAloEM_{FDINOpExgiZ-s-X+w*@vUX2r;3SELsvoaA(NM0 zXdh~)bDlW!Fj16u+-9F(D+LzPhoLzQo#W)eh5H`i9Z%XML| zkf08Crr~I&F0OM*OtU41rM_?t1fC=?G!R}$Rj^+AEx&9!lr|Xml`n}UY<8w;;Jn(J zo4=A27E$`vzB3y~Q4KAWn!M)J`WWS-rgisfozPmkRIif3sutetoN2$Qbb`2$zB>YOXTm#nl-c* zWzE#?^8J&OXe90l1s5ZJ9h1=v3K`m5(Z{6Ab>ifUsndrZ5SPX8=^57hWRyZ-4U^L0 zHn=LVg+@vdi$r`rM5Ykt^~o=r@d=YANAmLJo{*%@a|LI3qk;^+y1E7kMT>h_=4{}V z@yiPW90}wDo!}>{O*@#=j@+F=sID(W9}*#u1|6qT7-75t@emyEc{zRua+EzR)TvG`?$LQE)1C!pom}K*$y1 z8cEx_d5gP%z9XPEg^tNroqLq(iGz24%RcSuT`wZqxIg|x2kG8$hA~|I;pT~e=SM?8Mnu~hCH>q`5$_R?Q5-$JagzBnB{n6?decu& z4F)dt5kHwVz15P438ol3p1%zwNe(;24S)Ax>LkULvZ67Fm>i2%DWMCWf&KWRR#i<3Z7%rFGYpGM?j2KMYsL zCM;QYlshpkf?r%1kTS!$IxN3JO>J}*moWR(G#SC79_I!jEa~^}nCS>0>utm6$oX@% z`!2wpU&eC9Id)i=-$1f>e+7+1cn^+y6%0Y)^pP89BcH~)AG$mio@+jJm zp{4J&h%WN`{dL|hZDiLklw)4L*Rx0o%{;?-2?X>=9+Q$Uy=gE?b=Y@_iZ*FdO%Pc&8U|^Eg?P3jW4Sco<}Yw+%5bal9_ilpS}}+(JW{SvE{G{6@jll(atcTqp46{ z7<~TX_Y*C@dSsI5X1Mj&OkWxzNUuV?&*B>JYN)H$@(OzvRWURsG1=2mLyB zY3?yOg_Wsxdn5@fW6xOU0o5ln8V)dRl z|ETmxNeor}>7bQ(Z203{XhqRL(}`GZa{(_0VnBw^HSds2wY%4gL3yh-ixk zD!QP@eOLF*5Ag>-SQ07pO};xrZVN9&KMyxVcndK^d5c0+z=ZZ`c)&&nL8GZR5eY;Z z^kRZQ1L^uo1I7cUiFXp_p~J$6_HMMGzI`4bNT18FBmSwf&=H`K2+(5avrjH zzb7Y5dM#R@27+}R2>r;yt{N_6%YjELEJc5p2l)pQ#eiKV2va7+%pRP_PxApt7qbW| z*%zc=AhD|>CRvnq{0Y7=VV}XYN^z?cCI#h#Us9>kMmh0#tz=Ie^O+DW17I(3ze3Pod0; z0vkCWkSw<8IfLi+$MeVA!-Z#m^TTPYsdQohS2VZK;nBZ^mDnDv*a(8Z(Lr3;Kpny%1xY-9E1& zk|f9Nzuz8J5+Ff`tlP;9sUc-O}H zEi81vSj%c@Yzkvv#V$|Rh9ec;B1{y6u9~cZ{|C->eELeBgJz4TgP&TF!3Rc6y=+`W zJ)q*ykCKw~(+gHd^l%qGLl=#lpH2m}nj`K5>jnz>g$;QXevS0hM-YQ3ua|N!aE=(2 zS`2PzxsPpc?ZPf4Qb zAqgmu1Q<&Il1L+1BmfEDhva`;mF37`$6AB|O22m00Az`+GMbT1aMPk6YMlK|sTn4^ z^ye?#qifSTyh&yaCGA`*>KA8!b&QZ(MSPWd-8bM`sno~)V+JU-!_kC>dCv$TB%`LM&6LAR)? z>Fj&{>oPm2&wW^h8m{>ry}G;YIpJ{F)DG&bHf{-K{3WHuSGoItc$UI}Sz9q4WyNDu z@i-ShvJ4fEjx4B6(Vs!J=R|LlB($ zHh%z)R4+rONN5?PJNKa#SStNLELY);cV(!lIC15Im8fY~x!-!hIe$z@n6;@mc$6*f zS~QOVUdShmx?|($4>%94IJE}C?Ima>*yDbKISnE!IF~3=jJd!?H>voLWDR&nF$H@b zD=TOg$WS$RyY>1zg<-h&k;YpMm0=hat0uaOKO$rbrfD_~+;T&ru|v zu{8ox^WRY6g9G0MT_J>jn3?o`AO}O$q|Vv1ELJfT<Cnv_@3-O zTGtj%1_(1rOsTaAr)n~Z$5@bt44?=Qw+c4`yl9P!aVITTz-Gu@m;MjPtKe&973vC& z*b_jxZf$x7+a_46<#ph$+)diK5TZZFcEHMD$4#>b;xEAUz{x)7i;@qRei(lNQckY)2mE{JjAQEyh&<}QUdR0% zPEDU+mO(`uq>&q5M_g@D4j|f~Yk03VI>&ak$?kK~ub0yJ2&N)}Up0pZ8B#=kV!r>B zAP!Q-XFc#Fun4t*v;pV2P&0!Kl>Wn%qfE#Bc(oD`Q0Oy3JPt5&;NT|%1s=_C?uXdP z|0ah<9I@qE0)ZIy5ClOnY?+FActN<~ZX*WWK$e(*=n;c>U_-Rf4#_SzHEhRPBDd0j zZZe#^AKS#Sp}%Vw}Qw7V3R3Dps!LYe>f=%*>kV%?k?@{D#+ryIb#yA}o5vZ(=0 z+_Qb4m`A%wVpy^{^#CDK=oaIexisb!!D*Y>hCuE*2nxtHXCxYmvwc+;lJuyj`qS^em$o>_w$aLegB(N(I&MoHK)kVUs1NL5N}BP+6W zd7jpY7pHzHhLU+w(En8BUVOtRf2Q56aHIN>&4GmrQdN9Dr%*TB2D2Y^EAblJl?-+j7Z_Zu$S!c0I!xY)^eS1Tz+P) z;$HZ^nQ6JlTiTK=v}edzJrM*r2MXF7}c^$LXhbbl3a$EW`m`= z)%k$4Dg4cL1g$39lAoE+EAi$-SyoEfJTo<yU8MXaUlPZEcRgVV$T`>f5LzGd)5$V(taiSovBaq9^B?k|6I}L5PN5G^ zSypoUiavO&>V&mB>MA^UPqy9BRO>q{hMSER9EW#o`%^pM=ZLZ#fl4q7o^nJCmP!0Y z`x%kY#COLqw(Mq)1btybXXtIke)o06w{&*Eh3f4sqlm+!Bs6FWmjfUrmZt&&f#$B1B8q& zen}EfG$Ky2GVC_vbKCZHnL^uv+j|(-?+!P_+SUJYOCW2^khB1^TZ1@qT-(A<(aj^P z-9V}Ds4CeUj*au@hTA-Y8dVe*;%`EOC^Kc0d7OXj!j)5}F(}r8c0J?ND3+6n--5|V zLSNPn#F<9tCoezTIkkVE z6@jxrza5%VsOgjET*q*^FMUZ-#%=A0Pq#f@L*~8bCPrn&tyi?jmRoiiTjWM+o0jrM z{fO5&x$a$L8Uc#yjWL$#5K>U9$T9zw@_kTfp8n9T0ySap9h40G7XyD@I8q5I*gbE{ z2X$6GSOc$J#@x!1ohUUPL6Z~Q(L9E;t@d^rXdA`M=DXW^RJMY|wju~@2ftHk-z?`C zPuke%)#p5E93r9E zQZu-xoTZbHOFworbvMan4>{&uC{p*O$(4l3I^Nb)KVtW4{BD}mJYS~fyE!$_H&gTX z=wC`|R-YxKc#h)0FM3JM*Wk4>+Fys)r*VlIr%Sw))+KJRT_SmLvom}iPP=$Z+QqA! zi{DSPI0J9A&3Kp`q5PQ#_w0jvpMdYP^f9pm%p$YDiFd`DaWc=O!zV!tRssGGP)h>@ z3IG5A2moSnSUaUO8DZ{0004220018V003%uY%g+UVPr32X=Y|GQ)p#nbW&wuWMy(L zV{Bn_bIrU5U{%HPFg{z(*_(4u3MoKHfKY|d1T$ZNXU&zXm&)b z*elo-6MI2(qsIDFusyra@~qF^dqb4}%%0nF@1^*@-|zo@zQ>+9vomvcXJ=<;XZPlr zzaDrP04A7zi>Hc)1fC*}reYZtjZ`eBqDcv#1pUxv5ufq30hCkX;hr9#2FUkhz3iXDb6Cy z*-C7%V5n$tiF4?AE>)lB66e#)d6u|9Tu2SN$PyQeOO&|Og0aMXvAE0a7ezf2saibDH(eq~uE)i`syuT>%t4sVw z2JpK}Y`0*e_=Ae|RIH<72Ni!(@fVHOP82GE3Z^8tpq(1iE(LyFNgRP<6Z6~)UmD$*^PA$uptKC-WpnHD@KwkX-pf`?_6 zlG$j^vcF3Xu;5WSkfh}(Imm)1<=_M?h7dHA(8DY_T<)Xfhy-|6jB!wBTJm{xV<5$rgM- zd>@dteSp>`r_gg96=-cA%c(?okdg;m@C6ZmA*a!I3kY4PWRV5m>JgL0N|spggPfj# z#SDUGDp^X;LoE13&LXZdA}m+3!h%1D@DEu@&}=FWC4wpQd#YR%|M@n*i@GC2fE+(2wl)ThphoC%pnY^67OL0@;Zynb1>Hv<_0Aj_xAK@4wVt$YicE&ol>+k|^Z$#*SwozwUC2=l&@A6V>0 zYUPcRe5m}8&>t!JvBhp7^eyreLVrr=&y@V!Vs{eyPWc51`I4Zo2qHHszftmATF{Wd zFTW$@eoyEhsQ8g^Kau`^cFA9q{MBNQ$lomayWCEMe^5tukRJbZ%fIAKEDS&wXfPx( z&})u0gv*eGF)ZjZ&|!9oR}$bJ1HI-wh6@W^|FBq3#X6Uf;4&;_xGnY?F39XP!$yx{ zBq}4x&E7PUsYrAgDHw+sy(}ZuNOKwKM3&()dZQAJKFa88u@8+*dO=6J(a54A8@pok zSH=K~eNJ|{(HKZY4i$sQi16{^=v|wX` zGA3Hae#ZWaqq!*~PZ{WcFEA!4<3I*xqi@L)ZwrI8vZGfwj;r-8U+!xfSEiAZ86
}cdy={fQ`dG5U%IP68_bOk@vc*2%GELd5-q*6+)7FOK9SZzNw&r%45nYP{RMU#( zRlZe7$V#2JB3~oE8Q2+m+6xzI0Y&(Vy%w)%Yx6Y)w790) z+s0s@XzPe332~>8t+Y0KYQ2@s)E#X4uyAAN1uJPlNV!N6VokuYE5vWmFz|(FD7G_r zL0sx`&uX-y$`x%mR^Br2N^c{M1|o|zSx>yH)vJxLH8_>3$<(U@$Y4XssH;PSy*1&y zC_K%RAZ<|dVNC?7XM0*&wHX+CPQ{sbgf3m)Oa^XFX=rL_JBUHohkjh^J0ZHJtJz!oGuA*4J?r zjX3khIbN`EMSZ>gf~?gXR;05@tZwtvE-Uvm2b)UG!-k9?S-cJ#GBB#u#SP27O|6lZ zYczTmlhH*RM;W0b9WJk{MPHz)aH4txO%N^1T6DX6FjvhAvn`F&jF~~N6(UP&@~$e6 zbV7VNer`|{Uj#+?15GPqN5>gf^h_(rgRuteCwk15WwDgyD;gtOE6~4V*|3^Mt*Irr zIz$T&f1JE(w8)Z{7GDI(VkGGwZOJ}gqt_E21>THA{h~dar^y?l=pXAgD|~I?dPVE4 zx2Y{CrUzw_Q#U!bA?OF&ytQE;*bA4Hw(7`LhQW{+(~qbQtFDzSzgKgMcV!fRj0g6# zdUqkCiDX27&(V1_E%OE`HBr4&JuX02g26^}U`>kdbF?Jh7-tZ*{YPm(!oZ!`8LE$- zJ+nQnt>}2`!ry3ViS?_vB1D);ZJbC3J;AczOj}MA(e{Yu8%gBCjxDD5*d_%jBL=Lt zF^;bYl^Ukp{7OZ7WBSfX=kr~7ahQ-toRC9E~R zvQ~?uAs-fBTrkFo(Dd?_ShFwkG}e~mdLJT-Hs@;3N~%P%@Yk2baoIC4ZuGWV0_@eYp1+k=K|C9r-wL4Rn& zIMdU*6a&1#aNtT^N_*BM8qjpjYnhBYcV*-&nX2S# zO1`4xdL_?R@*E}JQQ|cv-c;gJC45SJtBlD?Y*ykfCAyV(T!|-@cwUJYmH1JKUzJQ! z#zZBvl^mqx2qniWIa$dPB`cJyQSy8xH!FFIl71zhQSx*8u0)wrluW>$VkBJStB%^# z=0Uahu17#tDLbg!pvMT?gd!)sT@I-f|Ig4$YdYpbtCFMz&A+L8HI(Td_- z-KJ$me-Y=(Dhh#c2`Sd08O1mFQmYJ{%5JoRK+7YoU^F(qv~;f)V!gx0mW-$UsBhJH z=WT-XhL6;xo~F7+Z>9ETLH{*p#O@ZDy;!c|xJ+t@3NXao6$K>d*t*q63sERDfvC3C zzPKx84JtOW@d4kx*jMOV9XCKK3RG&srQX_QyCe)$lAStTDnX<)^3Avoe*%Ln{*E=v~F}Y0>x9wGAZ>F!YP6IB)1S;KVp6HzG z9M>6qbG&9>avbr~Ul~qSOuEc9rM5AUd$Ov1D_Uy3PBJ+qA{8^1%)sV{a4a%-Z=3hw zeQlo2``bK|_p^Bx?}tt#j{mj!K76RnM^G`6id-rVF{avlI6>p7m_Wr4D)#4jHlNOC z*nAitX!DsIy;ZLm$3_AUvUwpdQpUly7-3Aac`+}sjRMif<^zz^C?qI{WDMeiQPJ`9 zKguYwjbfw3=4m_~eS0ibL!;hc8Kn9g+n8?5u#K4pwyJlIr;$9znjDH5JPl2)Ih4;; z#v!&b%P6yra-%{Sm9{b4m`Z(!o<_EDs8NNXf^AeAH5d!n#vJ~HZOj#Y&`lPi$)Mai zZ_csa7GF+1nTBo5qq_0&>T<^9w6(0k2IqKk>Vm1LoEANg#@fbVBzeApt9s5ZxJ#Eb z`KZH4ywErtqq*Itw@Cj-*v65@VuEUIqYkxgc&Vu8PheoWyObBPEV20lzR)(7Qo|aE zrFZ;97ZD$A8_Pr=Wi;Bxas#Js->9~Eg4r4(_Sr@=$&2bhRAP)MkFkvwq8zw~R2b2s z#f{;pn>MizuJfT~SQ#s9W2LdmHdd3Q%w1-{um{GP7=nmonr$3Q+B?ozqm1Ki;{@YG z`s_)zak8=2Hcm0t*~Y2#iGI7zn%TyBqR84!Ld-T!qrr`8Mnqc8HcmIHY~u_PG~d#MoySfxc~A$DdHf^|o;X=`L$G z*}~v7*AAq#sm;5@+hQA=={q+X?SZz%%OB#_KBv~x)Z}Z+sYeCm1hyCI`V z)4rzzz5Up+V;cgK)i!Q2ZnlkEj8faU)wsSV=mpHL|PMddmb0f~HoIv(3r=c~cX$5+~ke^xZYi%P36KJL;3Ub+^7xnob<6i98 z9#fpQ(P{W;l)G%>K5F*;ahlze1BoB7jc#iDgT_M)hV9iR#1_dS#TIEIT^SFP+kHeC zkJ`p##y?`387DIu<0#1Q#5C*ifT-Q3PHD-(E;1a`Cu!`q#&I4IX;PBAjpoAB1U+LL z&yqntXB+=C&W=%3j|3_)y+BMa+Qv(y+Lz;a=bkB5+jxb>?p2x>uZ8ACoYbmq{EPJe zIu&nF@g@~-5%a(4Q*YC3iDC|ARBhv(I4$X!NsV!Kkttc~)VsFvUYr(&60NrJKDFip z>dJqJaKP^Kt+w%D92Xmza;2|+L`waHpiePGicY)Q#%DO9Soyhad|`ZP8(+l{8JUPB zY2OgTx3=*e8N>I)^+Ozsh{(v=#*d`zpNzwm@w09GV*F|wzZt*V#&&}KAoLE~_|y2y zHg=j|n+ze7;~HuTe45fW4b!wuh3>+1nF+RO5#%PwMwOX~s4_E&pk#tl2Hv>sXIgVVkc>v{fTt=-ldt*>(Lhn(6ascbAd2&7tNn+Z-MmXPYB%u9+i4t9so0w#`TJ(G;G?5>Uf)F;+E4+2-gtbEM2$-xiq%SLPVo981UG)Xv^BpejS5rq;THa~z*vdx1rv@)k* z;A|GqpcT@f4ctRU-{uqfegQ|ht9@kT&_^F0*k+MgOsy@6jBt9Uo2Yua&ByV5ZF7cE zfxAE_BT7*R0~=R)+$njRYQ6M2A!qR#z0t{88E9-yV}lb4U~_YH2ou;-gu)baW*jFN zc`#v{rQ|CPAzv|zbW=u9c~7sg>(mH!pn{CJ(l%$)+&+|wDl9~iD8>~z5LY|z+ zybxlW)uATF&y`@$iy|VlKz*>=V{%rs(rYk%9Kc5g1G~zw*rHV6ma*ELYn$`T!)$Xt zDPV!Q&^8Y@(N>PcEw_18$WQGtMP~B@dA@BfinG4*DvCTT7 z_Y!@5oDi+YIgV{Ep$+&n+<==)2`V6{A z#Yf*_C}w9RX1 z;I1XAJ~33zgtN`-u*Jr7^LhrUIRP#CnsW3NubjckyaD~lV6Cl?X`)tq%Nw+-vCYlq z5s@*+?lO!F4#4eRT|+C5Bq=#~^-pgM+m@2iE%%^1^0wso>NO&GDa|%-q|JdVXids& zx6KaoCfmH3dtyV&aH7vPZ!vErGYoBHoh~v+k9Wq(AhE~MD(WQmP>jwUN-1lcG$MRR zq0`7w4yxyEGqjyR1~tz0JJUJX2%Ng;$S^Qw)ZMD!k~P!Y*i4dA0*6VV3Y>}Y&J6CkHZ`J?`>EL!!t zH3BE`E@~H$(tB<&bpF=F)onJNw8OgE&8e7GQ8}-| zp>rz*2c zamoU#*z{8LFsmb@ zqZlb@Yz?iH5OJnD4(uULQydlPQ`^$rwIcf7Y0qXDGs{XVu$TF}>!0IQ;`<8{;w~?# zno&|*R8mIgltcF{ikQgE^(L^jhfl0t)7s`;j@2GI=cx5HuW?S-qvvL69F+EiM){mF z8aL8bsdIKTovwNWJsF+uR?Tv>7biI$bZgYSV&4kqk}8VAV0Q|-wc_3Cdbg?$TYB)8 zNfyd=xQ<1M5oC?5fg= zni*B4#W?mQ)y^S$&m=VBT4Ql?!~*(|t@&q`6cm?KRXhEPOh-E{?}<_KN-K&h=S@)N z?Xj07dt|0Vo@L73P4jrn)JR&Es+am!MKnL9H3mhe=EV)I&5fQl3%o5pePBT7*0^Xl z3Gg!Om{+u59q)n%RfC9))$T3CY<76(!CuqvulYHLXhSmmc zXr%Pu?s$5O*Gtz#dWBZuFkKqbg?HjXN>@>3MNMhN9Q=x`sH`ao1QyX#*13`pyh2f| zLm=u8O^nLGg&nje41jzqQR?t`3u7z_BaV1f z0Sa6~S0plewma0HRNV$A?;g6A6X!m~F0Te(w09P~D*>?=g-cdr*w^G~jPS=jg1d5W z+fv`2+>i=&-xYvxdE2sgO%4BEVs{Skf40rLUUpm!t&ZND)ig9lu@_|mcSH2e`aZj; zLjN!#e3vQ^pV^V`IAI+ZdsIk;Nzn|KMk_MjP4NF64eoxS?~RLB+=$uI_n}%_(P`m? z(qR^Zy8p>=XICSr%sXO#FA;G%6Iu$^|L?bEkFC&CrwU`r(ux^9w;2T(G1IMDbEUVX zp?-}r?~GmIdYm1F`gQvM@BNC`4t@KnqM#ht3)k#|>gsuwRmFi-J#cJ6f&`IoA$F%EsV=Or4Wu&jVW zRI1UJDZKiuiZ%r}2?LdrNA$St^*2K^QC(E#+(%sC^DUq5snuKS#MYkgs;CkJrsrFJRJ!w`){rEvgn$s(B zxvf&>-LajCJc0Y4=}a7n!Olz%{LX?J9fXbQlA1ZQo#3jpsiCdG(@1x?(9vON;A?4X z@ieprc3jR8**J>VDq9-77)v>+A=m86s+y{T(wg8!@c4vuWfDK!gLUAD-7)BPqrnze z7ZuDd(X&CH=@k1`H3g!z9-Mj+8uqTN6TO>S!rWRp|2(r11%Zn<2-poP#IFz4XM$5ye4L zXK*7)dtzv?t1)Qy2IndbOb>+9yCvT0HvJQbpr!(^ZoNwk2AUM-hu>_cF6hDR)*i3f zOCm#Yz3Zv+wqm^Q*h6;fZmat(2?zYKm94v}bdqz;`hqr@e-KV|T3h3z-nBYTEb`r) zS54bP>|}AtbaZI*N{ee|;#8*{Pt0L3dT697m{V4Ro_=PDV<%~0($M*@c8(Rr)5~i@ zcj5PV?CYdhil(DV>H2PvlEJXu3JCLB(@V?H4V70G<5Ws2m{U{fARHfUg%QpL&G6A| zc+WF6;!`m{-q^zrHK+*#M#LkEY-3r;^qTU5su`sfv9~TFj$EAq4Vp6zTKIez$4XDp zpcu04h@)U+t*M+HtR(Xco&Dl#VP#ECWqGicW=`aJFHZBBl~tt+aN}4|HoIU(Nnuq< z!K`X!Zeg%*^rEuMqu-F9FWtLs#2zJ)=2GXDRMnIg^=#HX48}$Y+tq1us8KWau2FlC zqr(J!4_`KWy~_f3&ZBnpsd)6a4AK9?7lp>dNA(f_ZvBq5?mIaejwVNPk14uCB_n z%E1{U78dG(YYlV+$DnWy`h|+wRh6@Gn$5?UiSkDUWkrrR#lVEz8C@W%MK9Otcu)Nr z*vit0H$EJXZB-ZGY%L*vC#U9|Zd1LtvWbqn8PJV@2z2nbQ-xj}Q?ElJXUwUob`meK ze|aL52J49zg_YBFd-c^P=Z`_?pUlwlj3}W>W2LjdS7@Tn4Gt34Om@=5(Gi48fkI2bI{KicGf|1TDao~CwrAE@>NfgR) zkrkfhUMJQKFU{e!xSCyBR5Pav-QQXNyAys7OL6o;S;=8VC1p-R|C0av4U20HCN4MS z^n)pr3n=l~V}8A+r*~`cfFQf)ZXxoA#6+m~KaoF@YhHm&lj0m| z?By|stEjTPu(Gi7Fal?m6wT6LV&K3ccyMnz>npBlH6@4DMBQ|VBR=}HB>Luca7H?R zipN>j(^}&l<0OTJmV5NE$#TzXiUCUXd8kp_==B5+1cMhOdK~dMGsu~B(SHzaNY7Tq zJ=Kr7@gL`eF6L%yOujWnN}SAP%uUwVv{wvCY%&RV6n}4b!eI2@**OI6mhC>CV=(S- z`fS*jr|?t&7z`Hu#10`&zaP}kKD@7fX7YaenH6|u^ZxodfDhEqoWOGsAFQ84_)z^E z7Qhb=yzdiujtD$Q2A;Wr=O{i}KgaN~`ZZ?xqMuXwLHc=c;5jYOo`S%$kQeD^F)z{2>3oKM&g7-|L>hhwp9PGU0k9K6f`!;y za=U=#j_L%SJGv7@?wC%HxtX#PjNDA46U^LhQ1iRM)d>k<&ylwA>8Dq~~TPbV3G_^q!xY&;@-up>J;Py^!XI%ueWcx9&?h zmUAHkdyoQ>^@0SJ3P~&t(pWlVvJ4o=dP6Sj1N*bSFpXuxEY=SWV_8tkvZ0Cfhc#>f zoWusgdX@ucvq5kH8w^*oA#gJr$}3QIy`vRg$!7y-=uosCrlBgdAFiQlv>2hG8nhv) zp*aW{8k&paXliI4j)2n8VK_!E4b8{VNWh*f;0v9xfNxP2NjqcI{g8#B;=Pc4J+$FV zfBiDxdRT&wflloN2R~seOzDOk)a9UZ2jf(az7Ga(fg#;66sv}%4)?=8qx~=fAE_g; z@I$U2M#V@QRo#KZcQ5oB<%iMpNYg@VdN8$_je~w{Jd9%#;Q+QD%wT!2lpP2svZ-)7 zo36E%gY7>6#-lb4*BUw_q`x!x5&TH(=TQhN5P!hZ3>T#EMcm_bzW+p222RVA{aG0+ z7YE5aiS6L{FWnDgSiZsXO_`@yzKi82uzZWr;z)hF~ z5ks5@v_mD!PeqZYAM!UsN;gcNKdK9+0@A7*WY5#3NWKQmP$0%WNUX?cEHZe|)u#R(h`pG#sZbSo;g*bMyFuM1{t zv2KzwdR|A8AhJW-p{^UM9I`H`)+9CCa8eW5oKC3efN6w!Sie8K=pmSkpG1VnOcT1| zKA5NL5D`I$SZo;aCvKt-9o7!lbi;g7?t*;XlZAO{A}?L!W#E5l*TadKsTmo5I6N=C z8;+Py1V>VFR7S=kr)JT8;K@i2YiV(QZ+gi{*D4yORn$8~5YkVd+{`{&KYcPo^tFDd z%gyYK=uVLeaa zjatj?)S3=$AG$X;`Qhdc>vkfzr5)ys-Ug${)!gbhWQ+d!;Wk<4hua^8JIDaGLIN?~ zS>6qI%pWzH*22I)G=jUdWXqYYth~djCdqdPyvCMx_^cc5(Kf{cmJ?!jru)5)jdgB> z38V9MkNuBAS9$K}F1YWY{u{x}Oe^od2~soDwnAdAHn{t>&27-M0Tw?zum!r?VRAsg zgZX-fW#TM)NKXhf;D_gDrbo3QFee@fTXJ50dU$X$)AYJT4_u}0gU4tA`v(me%6&XM zRtZN^XP;=tbw0vNqw=2&&nBn0TghX`R&0T7UGP-M^(G{dyri2Zr81lJP;zMw7PMY4pK!j|x|A71Hj-9QAdwnJezyha57a>nEJ zjW{Xr`36o3dcL^{w5H$MjSNdY(QI-JD3-3}w1nefgg*CE~TZlp7LFWkOy zMErg`ED90#?}iWP>;G}S{-Jid8R_J4C!t?Ob$^tX(G4H#>GTN|pJt>l%E$6n&M}@f-wF+EeNOkSw;}Vy2=_z1 zv;9%;T`Vu(g|v32OWTFfLX;Sh_337li1I)b=^{b-9mZU$n@o!Yn?iL{^AkFZ0zw|7 zkp~lUTE5j`j3#73I~=U104v;N^y_9tR80}sy{u##DxjN9$2~}<)x~CXvJxlsq&oWA z%nqr?zf|}B5aOH_?tPgbeX-m|1QnW~k_cw^AUL!`wi7{>Ca5NYnjQpmI^=pHn5zlq z5y4?S2}EVooq>m_=Z@Qw!;`yQ3H`5-N}~eh?_NHyiE(WcxF@}1oyM$9XmfJj;3~a z(b2bWlenduH52PGj!CreYhiJwu@%ZQ&22Cf)!e#`_K&P>eivKO$y&SF%K4cF;c4;k zvsGPewVsZF)fsmQNWDgz%(0#9xDN0{y&syH9Eb>53q=I%_>H&<^`sdSUVYNo2~KRl zS}-<9V<+NU8apYx?C?*iQzz@uSxa3xB|JLo{Or^YzLf~p?~35G4t^sMoZb#c1=YeY z>SkwX{}WszY2(|)&eT?U+*TM#4-#;e9*?uBprx3dL&dq&lk;#JhuuhH=j&E#`^O+@ zSvR|o8gWs+84Q=8DAU*mgELdMLVwM1F>-V>)DilcOS{-*wDU^I%``KO%%m=Mc|d{a z&o=6iYVLgSiDLzijz*;RgaHGN~0mY<|$cR)^Rk~5y|zP?1m0@0--l+Mczo*_OK#5{OqO zZu7I-JJ@6*xT75o>SlKm!Ce7^zWZuO)K6JQ%X=r=qS5z6qwnp2-$+DfJAB;D{3N2w zvE2J2LIYEw*!ek$cyOZ*p3$lw(xFDO z9*l=|9O{Xk3ZdaE>1L1Mq{uXhCL=BI^+2%KuZumJPYXkGW`+)5ooS;-LPLmVk2#xb z#2C66rpUv-Q2fIlXm{Se+v3Rm2R?dXY$OE7-Xdby9Rm_L3E9Z?9l`4YIbU zGI33OdQ-r}pFthn4b0eL{AJRYb;iQngsU>Ja^S22B&!6I9SRAo2GZF)=)(?!er!Gl zmWM+QI|_!dMKGMz!bnyRqgextW6NO@YlZ^W3dL*%l(JQDC|eEl*s)O0j)x|860Blt z;UsnnoXJju3)oq(k!^r0*}2fp&WC&0#qcP*6rN_6!OQG&_z&9%AG1yHHM^1tb}dU_ z*D;%2&$8KOHkP%ssq7{;pWVWaVz;uz><+e+-Nlx%yICu{hplJ#vh!FcyO7~5WA`ED z{p?QGjsJUuJ%?lWHhY}?z_zj9*wgF}_6!&7IiAQ~;OXo|-iN)!2eDUpE_;pFuy^?) z_C8<3KISK}PxvY9bACSif?tX>SF*49HS8PS!M@}7vmf|V>?i&a`;C9We&=7a9sEc3 z7ypIr{%$i;bK3rN*s%qp^iwWjxBSF`nVq8gKIJjo7s1w^_y?GQIpU^F;oHc`AR>Je_Yf&*M*-7xHJ# z&HOp@A^w8-IDgUH%3m^H;;)%+^4HA|`5Wf9{7v%*{+79&zpW&HPmSgut33XxI*@;+ z3iual7XL~e!M|3u{2Nuzzf(>82eq32q)y?#sx$fT>LUJ!x|08?9u!jj1K*z#rg~Pm z)GNYL?+Ca0T-fR>k*IzW$?7kW;&O>zF1JW^rHOP`Z;|235q(_aMV6~j3~iLnBO=eWO-ypVAo5*r zi-TOBh-t2GM4{^sF+IT$GZWH9X+n-TBw@6el`u(^B@~PDgxR7Z;c!uzuv8qH&?c%9 zP8Kx@r;E7>mx%cZmx~1n*NVdv?i5ERbcsa?j|or0KgHsN7e#Ht8^W9LA5ow1g;<*K zi#R&rcd^W3V!7oOKC8EAwsOQV))3KRjS_9v{$hnSMXa}rRT_-kJw}^AB+r@cSr?|j+L|kY+D=xC07Z+Rq z5|>)B`E;?;6!;$3n?Vz=>@qc=?&>g`b5?y{UGa;w#%i-N*!u? zvNd^}T#ylT=Gm_WJvyxAh8I*;1`FUyn9djTT1aIAOkT&m2+c>Ro-ctkHWu>vQr>{L z^2L;bLtGl~1MB$;gwpv(!LRZA@oOvjDo7P$5w{wprim07!;j_1A?^nl#*gPGK&qSt zO-OelLLNAbpTtjwH2EgjSi2Tdjb7m9r|@+MO+?(O8afF^^7Z^QNHd;+vHWy?2Bez; z#`81zS&(jQ!Isj=K$_78kMe4MHl&(`*pChT9E2`Jx()nXgg(^YI1f^lgbDn7egQ&9 zU`sFL7a?>d4A(u%P!A&RVtxtqRvTc7)D1@(L>zYOWlgo7O&sCQ7_<$NRJ{zC0; z;#WYbt2Y#(p07k`HYD(?_|=f+T7tN0ehuQTL)^6*_XzxpU&k?yNq7vU+`u;@^dHpb zjU1y^%Z*y^;5Q+(KPY}PzXhT7sJ~nJZ3sPr9Jlj35PCldxmgGr9D=5x?icer5n838 zyCBux7y9wL`4&iX{|tV9568&LeiS*5=A8(AfRLY{#4O0;UHm>sP0B^w{rmxhW@)G! zp++2q2l+#gntUka@Q3*$kdbsJyoMv)4{Kk5PW~uqDCrHjjX%c!0qHO=c`|>TKLNdx z|BY7mBXkwJ_j>p9Dj!Afq;aR z(fnD2B=kucz@Ov)1Oxh|Wbx}`l142zSB&G{?Uqo5b>; z8DsR3C5r#D9nyB9l2ZS!6ztp%C|CSfYSIpvruc6J<>U;q$L8_$KVhN5n1FBp9c|3Y znK&%@PbgFvG4PMKqsQ0*Ws2{ZsraA2FiZ(-^=~kl=M30EZ#-o?WNJt_&{!p8LVCh>bW6Q+hVhYE>FGP*040p=;LgGS zNSne$ZMrq22ukZuO&6{S$wRiI*%8q^B~XToADopoIJ0+7&Q2JLllt%KSXjW6aPLHm z{jZoY26nSK|Hl$=NOnMfCG2VJPsl>9k1}(5{Q!KaA1m8h-ZA=%bA-?DpS@5qh7Kv@n20lq1IGl8C=6m7 z<7Y2MoKP6MI-$@9(%JakOnFzn3}=au|0VqQa^&fRj69uSccB{c;T$+OxIKkDbWtGx z11|X?E}$PnzWffR$seIy{tR>FFHk3cgLMXjvkeaC8WPSoT+nUUTKO|k^>b1Aw3He! z4Jz~kiZqC$MU}20JQNy+hxnm-7+laPGH{SMwq%`NXq{om0sa@PV|v!_*ooSf!2#ia z;OyXkLW<}u`UH$@97>`~5Tqn+GtNy6laNMV-8|bN2s9u?^o`3rAewn_T;@#CFAnp- zyP}v!$7RkE*>RYYqM7sJGWUE&NWzG?UVwqV< zH1m;hnFq)Ha&k2D(zwh+;xea1Gq=QL9x8^#Y4&l^%*V%N9xnEY^W~ao=F{Rbj}Rl{ zF!zmSK0hvVt{4@k*^8o?H^pTh9hZ4YH1p=T%wsT4k7XVl&3s2(=5b=*ILynUneU6s zJYGzQ!+b+D^FQJ+bNU<60muF%dNDWRUZwe*Jt1pCzAMwU4GxdYzQ2MlG%MTjt7+`j zkVByd=6A7wF>1VIg!Hu82kxQ4zO76~dJ;vVL2nS@k z9%XOlCuAnv&)!0}jP%0#?SDI@w?V(GwN*y4AR@21egtd#r`4>9rr586$gk(h&veu1#qa} z&`R*CI1v3m(@?%%2?&}jrszv&uZpSSAiZ|HDh?L3z+3Q)n1(BhORp0dAa}r0TqFLZ z7_LBx!r#Fji$hu@ik%_l8G#}FGCR-AFf-&0@L^V-%254pfLED5!W;N-hPhdXApn<_|jRy`#lD?1C|GdcfY+JUM-~q_S@swW~dA^a&%8s z7%`1L)x|C17Mjs5RNf( zpv@cv$D2c7ojDXXn8V=$a|CQMN5T!}Xt>231Gk&|!n-K%Bb57v>8w+yV&qT*{R5+a z1f&N>dL8T&82t?}Ab{%)PdOuqJg@7~S2)(6>d~j5>dTOAd?`u-w(+Hy91 zNYv^34`{xO(nm=DX@~rHr+y#KA3ZAK)K8lP`$)%QDHLgqo)-}CaXb7HM*wV$5rBc= zCr&^|hcE`(0*v3nuDlVF9FXoA4baD62AxrvnUW43K8V=9e-WhqGK!jH zM%*AdkEr4Ne1+7?&%TO7oe`#TAr%_t*JJeYoAk49y5KT;ejDukce~Ku_whRaLmch> z*v``93HT|VfS>oIy--j0Qn$bSE#3Y~#c!KH-u<_f{QF)hd3%g%{%EHw8L_I_5l=OL z{!gpsufL_5oqtCo9QH;doJDJd^LBVO>^TYN$88%&l6`1?`nf^=lbaEDjbqO+S?g#z z4CX4>2ua@vYDC8BD_-potuLvMk|Ph8qh&@aE#@F}H1^=Bz+hi-Bh>wmb}ingI$%`f z9unKg6SP<>@^*GVM7!@s|D6OChTtx!WV7hW%Gd_|JcrMuCokn4`gxPMpPu3Yc`-fZ zC32_c(`yvl3di6YRRq#3fkbl#B$?&V*Q|tr=An>l))$p~shJkr3bDPJpRPzLuWuC}} zn(fncduLKFFKR zhxjV<5q`4yC_mf$2fx&OoL^;b0S zfTchd6oXsL5@onD--&^FIsYe^Y&AlN zYlw`!W00=hk}X=cZQC|h*|u%lTxHv~ZQHhOTdP*ptsT2>bbsA_&pmI%jClWM&Y2jQ z`Q$+AmSsB>7?Ya7%6KN1R`l*Xz<-v?2p9rH9tzu%aPY2ZblwF3!5H#3 zMp#tW3oYkodWLk;VAReq6M)aj!H+O_2R6O&j|Yqi7@K$N6g~Nsj|BbNFaKcgAe=R= zVzqQ4i8{Qkjf?ro2#OygBm=nfnpBc5c%D-JaRKI4U?{y;F_OkOBLi!DI$0%Me!Ds$ z@_Ii+x&E}mf5+BrbQ<~53Y}@-=YXJtHPwSBYQisUjne*_`-?hsEQx4w&g}=rQ&!5M zV&L@(vU4=B3+b*1@stNv*zZ=f0t$1MAfFu=xaLg7X{-v>GGZnisa{4MwYFRU!n{?Yxu@&Rm!~>FY>CQ~9}~Q~ zbbr^w1<0pBK5%+r{3cty4D3V$H*G%#cXX_1P{3!6fKhE0S@^~_t8=G2u^(ClVuc>bjonzR5S*3Y;10j-Fs zMC8CNod@8<9rXvf6CU)+O?(ru+gXN?kfd-NuHVy3+D00Rekr)^5BAe}yD@CxZ! zz$&=E1FTQ-kn;6j_q7iJOB5}|KU147#T;AD()~^&82h47zo8x?_jJ(V;~j;kJa=}m z@#CHGGcQ+f5dVn-hmj?fb8GDKkCI~Nd`x=}?V5bZNxJ#9cGo>OG$yRJ7p%%4;?KINTB{I=laexB)R0rFb;9BHhauX5b z4yofdx7-QmV8X8~gp>VuKK`=#H*5W6Ts?3Ywa4n9@gEiV(rZgfGg+-FH7l9)#7|Sy zT1$6Wb{3xCRaTyGK-k~bA!|5h%u#?;dV^Rnu%mZDA$T||bCV_Tp`aUBk*CHQuwrwy zM5ToAN`ned(7%L&d~Uy8r1BD5FEo=9uFoGX@Se}-_orsq| zdqIHP(w0iF`@%uSgUm1qbj5TG6iClom)Pse(ocoDIU@)HnC4C-V|JOSOObG5;s~WFlLOQn%Vb}-V@R$ z_#)ve)Jx}WXble0C>Z|g+B}T zMTJByRpEioKbQipX$E_TK#GhFr{^X6f}e@B?PmYw_q1~=&d+)MWcd+7j-MCPbb2KCR0G@N?VEHJ}@O=sPAeM9Vm}6WV@4cCr z^+W=WHLmBLp!f3!dtA>Wft+XDlK8!b{5_C|^&S78o@hsRlXd3D3n`%duk7f~juy6N z|Dcfjw@d0)vv5~l#`Lu_ZD(d@Cj=ogCioRsYycJ(Sn`WPP%u!bk$_PB*HGrT43jYv zb9Q>&`hlYLdC7JaO-qYrc(bAgNqAmav$B*{WJ|Matxy1W^DXD=jB)1N2A^Cm z59g0>>bdSZ{oCVo`|g*+2d&SjyI6 z+s}vEYB4tI#p|B?woM=M8o3XQ#TNz-c?}Oeycs->i^Ufh3ssB%xOX^kO3tzsE@#;W z4L)Q)7b(O+gL1QSN9nCO$om!*GJBwl`s%?5ox8}fMNbo3c7{9&Z=M!88@VsQ=q)fT zgcWlTDR^ptI;xDL<{&sM0eWNJ)wn24m9|vpqt?WPb9){>N`+lirx{=sig?Y6io$Nq z?uwDDK)j-{o**k~n5|92;8r|sJQddBoNlTq(C$2sc79fN6-MsmStx3>SS$ z?K(N@$&4e{q86L5B35AfEMMp8$+lq8(Y&Oz{7rXzkBo~dQ4#8iq+mr@xNSILUw-k9 z-JZDN&h5sZPl&{v>FKpGRTM4eAjD%W%#Jl4=H3!4$^G-eL3~o+df{&g^NZ@J>+D5; zaD@bHv;n&ts7!@`(7^F_d7=Sa5~20sxq_H+=Lf^6q|^wCyVyt|RM!%w_b36O0Aj?` z1|-G2VR15QAPw}GSEyS}Nn3|#o{zwkCd3jCIpSgm^&e&P zbQ?I0GyNKjdMNp-VpQY8n8MhKh8`t{+a+-)E+md@pjuA2Zq%7kW+EJxYE6ZLfh$P2 zG9faNrNx}?J>pm5qflA%4xkmzU8qtnJRzgwkho@ui}g6m#-TCfcSSL!cWp7Y-V(!$ zTs=`vP$f|#MJ4P=HtdN57W9u4dMY)C)b64%vlnkvL{u}EZ&*Dwhu8y~P8_9&neK|i zpt!S#pt$V*nV~VHZQ8@F&feI&3ikyu*Kaj3sdv1nyQ}xWpYo%zcSa2=qjGmjsPva_ zn7%a!=v=@ug^s|AycO>c``2~W=U3p8nYwzH~{VUtt_ z(JoMEmHUM^l{MEzv>60{O{TzJ3dvXv)3RtT+mIk#u|uJ$MqOhYX@%>svCvdP=vc2O z#+ZFf4;k2DRVtBCG`ik0B*w>VcTrQZorY20Ob1!GF3QfM#c=NS4IsY<}M7&7j@jnznhKzQoqT zR#jr?2=@|hZI#sDz%YgFtr^~qA5ZJ{in2AO-RzvCYq8zN!_<)JB366LIQgJyEsbgv zUJ+AdMWIbLK85ATCsWqzb=H!)>~NXBWM8UQxMvq_+>|U#m&D8#7KI-+G;LtBj5Dc9 z96sC;S>NF@D}p|878%ZLMWR8HhjWRP7C3c>+(_}DMgV{5?Fl{dZ4?hX#L#eueevq0 zA@bt0b59musyIFUq-lGaCJJ=)^`r>`j+76V+7BVSLGjf;4!>0VdcaHV?V32gWzw37 z%<9#p=<3@UaUczr^`yvqdjDmgzsn0iy62W7sM~kT1u8}`2XDsD;X;2Fs(HMBrg7t< zY~gFi-$kCc4WBEgbUO@UWs+O+)O{b3R5ruMfom4mYXRWtAixjhljAFWCN@t%2IaK+ z;Ejb!|GLpbhAYs0Je=#NI!3m;XYDuDsQr4%{n_z*K;W$?f3em~IqO=m%uM^a+kt9t z_O%k2f^$ZO)1Gwnk}>#@&0Rka!6q%rbxIhV|Fi>9IO*4mJbet;&WRfFcqz)lS^)1_ z_-0)ueumfEwmWgm9rh#4%LDHjS=QjRJ6h`=knJ#)=dKt6{QRb+U==in!f(xAGb?kA zL}t(GlST-Ql?aBehA*yoDM~XnCl2jLRe;evXpB~Z%*v)82rK(oHw0reD~q|Q8oQxr z6D%hksMr|n_|;7sK(E-^Q)=}J!_8DX`G$!R(^M^GZL-6v!HT9zCpyKSxQ!~>-(0^T zMXeh#`sqzeVffe)wD;T~MQM_P>|;oT^V}yWlkif9kSOGmMctT2JHv(nrHSyE?J=C} zTZPSwk69uow`k~`NU=N|$>!|G(tiz7ngPM0ufD6A7nkAeHKtmH;!^*PAr&}H5O}N1 z;yWcYch&rZRe6lhDON>DaOQseP#%+@?acz5E>0Q`zT2 zpzVC@G^JNIce4Fe-gNo!5l7g8;LJ%@k0Go)YCTl&og>VGjREcNhWtc*EVjFUA5WMe zo+)L_Ky0W&h*4VbA;>w&thN6$&zPl8QYMeg+|0vU?!i8v4F0Kpg8imL&XaeHan~=P z9)IpTA_HFuAn$BY3ADYzgs6xtNUY=g+q|Oq-yU1CxvL0!8YFIM%;+vy8W?1;7SxAs z_9aZRoLrob;+E5aU+{0J52iT~_=5YGQyb1esWAF4$W!A!Eo0L+O9Uk%H+jUwhTKqilQ}-&6y~B-iVqAj4#@1N zlPI;)`9n}fr3~rp}!uv2WM_6Vnvk0!gx+Gmox*U8rqXUa0TWm zXZ3GN^!*EXzPKAQ)7kx7SsFA{K{%%PgEev^lW<@-*uWikd@z^SK|M=6z-vMusfPf+LgoBPA zGs565nmD%!;cd%)s+uc)Sb4s~Hu(YmXG-`lS}qDbsD+XrP`dGRi2o-zb+I?Jv$Og) zKK+0Bgngm}pavKaM83_NHKEa3iQ4RK=BUF0p%Jej7g(yR3FAvpXHN!z-6*j6_Ml@&7%yUfH$P>RT;ef<>uLeKsik+5x< z&HNtlKgGlo5Q$^`Arj{PArdD0{}EH!!`|fIiEpsHjuemp3U6agjg6K~$_rt;>gnKK@*6#7$HWNItVY{|v7ghf}W~UoSvb;RR7> z12nb?xE5RsCR8ewLLqgC_TREWefGr~V|8d{qT3Pr{HYD1C`d|B3zCDFv7{TbJYG*l zA<64jK$jhxgt02j$bESvPlP9O#@V8?2l;2uE>^rCi;qu&LY7NBONqgLIN&hN+(}+5 zbE}o3Bm+Od_Lz)EkiMB6h{_{w+eZttl-#Q^1M1C+ms(0!nv7dZbljcKp?5hAm zE;Bf+8@;eTG#$o4e7EwWl#66>{9pdhwj&}DpuoCD;RWoZeZx?DmlL_+^b}gmjDPgB z(~(LHm8uJkjj=;|C1!skM1HE&Nq4DC+(q{OQ}HEoYtnzf0RST50RRa9&x-%I&a2gQ z?3G4Qzf?Oq)Q}nw*_htM`az*uj_~XHWa=FRT9k0G1>*WYIl@gYHy|bxs3(7!FR<(t z5xQiA4B1GY!)2=Ux^IsI&2>wX}3Zid$|czIC32oHX&$j6X>Y(W)9I z%^KZPY4z@p_J+<)oLsz|S+cSCjA9GvZ>pH#Ej3F|!cR>WrkFZU5FBF263j@Md43wZ z>1*riPE09SRxzf`;Y%3T+e!=SSabQG%8bZnaz(v=#Et#%hi?u&=IeVaE6E3rK0JxK zfkx)V?T+REP(8hflE+*jSXQgW*Cv`|EWj7i9nyW4rcB$Xl(qgcj$BBOrk`!}2v0;w z%fV!(f34Xo7U$rFlg17+LB3}xS*|Zal3n{D(ManVgHlD95$SWYC;N3$5!WEZni#Qg zp`uZQn;H=xf*U1Tx~#1CWrERRuZ>nrjBTGbnv$VPK`F0hL-G42$}+Pi#5~5AlVb3s zBh|^3q=zz^n$ikdS66=PMRdo&p~;4dK8m!iE;n9Ty`7{B9V|4p{qnFLI4c{?Be0 zk=h?Z_|_(^5#P$9FLIAt5|;?vtSnE`ZjGi<91jg*bm$DX-L{C`U}Oyi@ka7w)^z~* zv~h`bY?lwE;Ta`#IH{OFP$_6F9zyML#favLRo+tuG$SgvNY@XHPisdc;gqv3rRccvA`tmh}8pZUg# zrN5?0Ix{33SQ7`csE-vC9%Ht;nAuy8PU14QKW_$XcO0v`E^L6xmOH4*nIYRc2-7(;JLXld69mV}) zko^+tp**2HSuRj1hSo_h~a$A;Jt>i-N0jFFd5 zZ9u!NYqb>kZQcZ$ov#|IX1DAeQ@Mr#@!_L6sFSoMP%iff-)#AK2b$!HXq8Gi_yp~# z!qS1A;#JJl1zl@$#!)TJe)M;hRtY@pCPOd(3U1=M8ZNg=;Jq6g1L~s*p?4!LYD-|8 zafpU}eD#NWq!51msUWHlzWi>JmYAupcPm0ec-e5mdW7%@KNSCw+U1CV8 ztp9Q?ie2J-66B3m(KRL6J@c+-5=*ZiK-mw~&;};wU25VB{31bKzX}!CL zu6zOxf@FicLU`|?#>RU3`|ez28VRN%@G7t~G$G$0*QO5$N9wLvxcTk_rV-TBex3*- zo@{JB+_O7`is;Ai#n_a{(g7-dTnY_vKDeLP&g zZ3o=qH_NTf=CC^7Phglvn2Ha6uAdzXzhrDEgsERJD@`Y1#I&$_79cqSb=*1nm7c zs|V~`t4@9K^Wx|2#tNhL%x6FgCAb$IZ|9U_`&Od7G3lTtu*;18XWu-tXG#0u{` zyF*AyWWMkw0RQm#kkmO%`X|#42ELdWVm@hI6T;uWV0K_ZJbTc<5vGCI&wXGI zcu~!vnqKT#XK5?s zTZzX-kj8M)#$2kvN@6Kh_%y+MOR-dWK(QEUccf@QIuAM19TRL#)a}u=fv^N_o}tB_ zu8_n}rSH<1x#nbK`}@CSrvGZ2=-ZSQMgOF1wLd8v(f`OCludrfVhx;4{%h;RM`2PH zNC2VgWV#_D!Vd8s5jd^wLLmx0S~m=w6sHSzGR!JPr;%nP_Q7z;oaYVDH>uuDJskd^ zxU{pRq=M=1*Zl{WKDZSYQkoobL@>z%7McP?NHIx7P|$VD<^u7NrCMu?K}UAXB?c>~ zDkP)%Xz6v2S$pa1&f=_2qcsh-RRh)?c9m=t1}V-xA_Z zGqt|iy>T+IS{ycqeQ4XZ%{<276c05>U1JbUeX=e%@v{^Z;!`d`rA8yf-lkO8vw4zN zknvt3c*k55#(lqVv_74&HF8S+I7b=a$Zvx<(uk%FDN|UMVTP&UA+}?Wk)pI!8b9$7 zCP~y^Nx!*^Yy)V*&7%+DA;1I8vj>~hG)lVMApd6?_^->1$2B8H|GCWFpYuOqhO(W# zjDe$>h3!9XQ@&qv@E3v)^5V$Sie>dYR6$;7nSNg-5sCof0u}31kAzZZF`0>t2)`74 zAUJGX}akDoUXhrr+vl&aL60&|^do-9SqxVY>LBguMGpqacc~9`V)!$R!H=SF7$W<al-P0b!~S5 zcv4Yq=$`#)1_tlh)xUuH5wiXSzr-P4hliWblRqhtmx!Kkn&_Oj@fBH*$^FEc_Q?}`hx%j%}ii6+f!!hiG}g&<`#+!kx#26 z2k!WFmtLEodeoi+?O2z5R_5+@9`HY4eKeQ6{|lh|*MpLUC=LDf^Oz!kyaUt!z2Jft zrl#!w(P)jI{nz^%>6KV48L6n>_<-;KEl#^ph8`aQ4jm}3tn9g4wAsN*Rwq$hdn|Fc z2mB^~Kys}>cr!3F)4FSyp8faZ>kY&{kQN(s$vUk}L%p$1mLj`So)kSu(5P38fm=Zj zDW!udiTw~=?m}!Iv`V=%o<1;Vj%wPhAf2Z?O}5R$V0;M>6`9H{LQVY`{n=`V9=nb?oC^EinVkM#Plajzi-&cMyeW> z&)|#R%8Gbb1XKit#u^FE=P4rydGYqIAfeY4YzclsmWLGawMnyKxbM<%XAGWp<)4xF z^vU?laKlI35iM8kljfvw+NpcZbS!-%K>LMk=HIg%Sj=g@p_fX7C^N2;Wu|MACwj-1 z{Sp1o%Z#%Y@N+H^z~LkRhv&p9$d?h}Oz zO#@&PO(3NeC4gXxAaOAp@6p1Nv9!u4ERaXzMrBjm?szkzDJs%wwDqa z=O=0fH&Vl-cr86^?RI%vYxZ=}+p7!25nRdUYOpmxiEWZ~BLrn;t!%$C!s$(&dP=Ko zQ^ZJ!j!v^g<4q0#XvP)sDNFpMs`gg}un>>O-Cng1=FoNX76N99=abY~>;AzJr=8id zaiUBWr-oMSIp&tvQ28R%B82WmP>L$hE=9ZjknSzpcJ5&STX*vol;yALmIjsr|FH3i zFaqdyMqj{H$y|;RYb!w>`vIw*{;M>?d!yB4r0;1;D~4mKADQU`Xf5)XO9Lek-%^pA zA5@v0)6O-CLev=)j4kc&^OUX{^2uuGClTfNrP}HtoZhrs&uX#NZdB61={g3B{j|Ph zn~M(~`F7BkIFJqB)_X)B-ps_$MdWG*z;Y8(CNDnS%cjrC01~DqotFinTeI1If*vG{ z?Q{a@UGB2NeSP?s261q7hw%Xua5aYGJbYlF;MsDSug|96K4W)%<9+ZHI?7{>+|ulH zb#~M%KwkWuqgR9)wrhpfND^)N=*>DV_!aH6vpvIkITVmN$IV=I@OKc&&d-yBRcu7?n}7j!#z(c%&rs*(f8TjUxJD;~esIb;5`d%`B_>C^GQ zz!35KFFBdZ<;VVoJoFTxMt^#6N@Fc7I1T-3$sJgr5*@+#KoxuN>zlv`j?z6T{HEAG zS#fdNMu^@0`jeSp?{6eA&It}YxEB40!Wb~v=3iJw7%36;sH`mrtkh&?fm`GjoiK9d z2cgFtbHFf!L2-$lG8U3Q0W+$;WnhX?k~`u8N!;X&Q+n!Kw8Io`VX!m+39Ui+cKRH` z*zl=c>usA}cecG%@VQ=~N>}kf-J!tvfXNG}Z#os#BhW`<8pV_g3nXf}O%mY8hMXn^ zu~qa!R+(0spfz^LCVL21*&AuqWOvX*#2}*bv+x&k?1g0)(VPsVh!i{HKwXK3rH7Il zjZ2Lj6?*{Nip5O1gPnaUv^6sDOOBshGq) z2%A4Fa>1@oKxG>S!E~jEy0POHWdD)D4kk_@8$cS23&_=@P8--s#(|? z+qp6QGko|&P5-M97-ZJ0Sq&PghREa2wx)&v3Qu&_@03x}OiB{Blxz0*FUM&(l!)%O zh6(1{dwTf=5Jv=u7!n3C-=9?-cPS|`aHf8~rM=jVGIH{mp~qp+wjhY9cJ4@>nK&*4 z1CjVql9tS4rlErJL%iKW;E!O}l;T?6=CpvA03S_RBh@l#Nr^S^22YaiDGa@9;nm*? zfSU{0vGd25*iR@o>t;w*u8_9zZ651-XzF~As+I|{a4|POcA7J6y#MwMBsC!Ezvg%1YC2m zsZIdEpq4M$dt+(}vk-aU$A{%f7v!xzU;VLLJ5O>33Z^#2X3xwwZFEiH5AJ2jI{+ zmL59IiVjcvLRT9Ns#jN=q_A3#IH`TO*B{dNQ<-A6i)YR{p#P`tRd|0NWd007VL<;On4g9!3@c7B*k7g?w8BLq#d)#; zn;p9BbZj16@2Q#ZZDIALKULGp>+|{Sw_nop42evlNo0%tOm;f=V|Kb1zZ>}1*Xb%h zV3eVh0Qd>{%=;y zOC~mqzC1ehl$)tE&Ef(z3_%SeE2}_4>y6@s8wO{(owpzU>#JBM5Ck+Ou*MH|DJ^NiFN=4dG%XMSF;klw)4af#j@qdnW1_{zoj<{%i6Jo^ob`4Hcjv_ZPqi~ng?DI zRME&0O)=F>jLQZYo|FE3$I_5^#4}KclIoRWOOu4#RTXu&Caz zfOd_|edmUsy3MP=9Iz}i>23GfsNTimH;+Q}-wDa04q}GG76~V$%FFq@f=(`G>pIAAVs{F-sbaELACrcHt#T?4}y_X~pJDDlIGMs(9`L z1p88&EkWBO6lz7lUvc&BVPNPdwH;xM=wB&<&F0U#%=?PKS6uvVtE3v zJwXFWo$sk@VtIw_IaBT6_4UKY6>r7`z7iH6|@t0eD|qSR`|t<*EOiLIyf$=Ncj~0plnWnt}x%4FMf;QmoK=FuY31;B=M3 zi#swWlkjqvPbf`4M%JX9px0l>b}ch2#Livd#g)zr^k^HhLEjv@kh+4FJY3#frNmvL zxW}X40JuJY(iPa4MCc;vzl5K$LdYLIPd67labRb>%hd9nX-_`QDn!s5#a0PJ!9gYr zRpb}?Q1EW!Nj2F2lsuBCrYk!R-^Y#+b6BJ9Ii~iVRKvNC zxP6N#^%k|%_InQ_9y2Tv8O zq$>RlLxEJhHf%!LTUUyiBA=W)UH0{#1w3!Sp9+SvB$|khcT9`hi+?}5bH3g$|G)#N z@G!)U1O|v~vB(D{3m}okGz37|N|=QYnu@<0loAt#SUcTj+jSbWVuQIVfnLHKhU(72 z!RLw?&}^wUVXjG0X+8td>l&reRaA&`*mNFW-)zhVV~bvQG*9Q%hS~@~$j~Fm!FSLi zcH3+6iI8RHU%qY19!dBiEFG@u#v1IS?9B9DgWnAinU2NY$f(O`T3uJK-?QqhnP-~K~bzgh{x1$gkjHtRJv>()yd(1`|w>6!1 zxkyLt^E@-u2U3Ym57}%nI>3<$?eiNuZm~MRzseZv&w-C85a!1wjct`-GT1LH%FRWl zWC?xQJ&Phhe{7Kt?52L_6i7ocl0-&_h!|yXG=jrmN`4s8FXSe2ZMp@uzJ! zbGM0dr;gH{kd1v1UmVd%leWHd>N2pewH5-{*6>I$EZTkZ3 zcme$oQ}GU%;Ryhqbgn^gM&(>$kbBI|GcSh^l`sZ0Iku0_z)UOYpe%?l97!EpWDvSF zA(3SO&pu=tMUBzWM2~4l_QZ-Ir4XfWlbraNvJuA@PvH~dR|Fz$O@iW6)}Hbm@R!0` z4L9j^*X;%nMH@FN;tP;+v4#*ZMM1fU-u=(``mbIt42`oN%1?LGLh*mAn5o%0TK%h; zD{tWFWa9WA%{EU+Z)K4OdzIHrkHqmw86ZNOeJDam$1nncei9IfqdpRUK%FcSWQZW? zED4YzI-i|iB%9>7HF9_kcijVGg^1YkeL-Y?9 zwV$8L&vBWhkLBw`2Pm0P%i;imA2tBPTe%NICV6o>1jmi#>bHHtSp?-ElqFyd+7ool zKOZ;=5)LN5(mvDXXbU?W7#HbEgc3rB6xJfSa3^a`Y$IQXTqhc)R20cjf`Qg(;_sre+v=H@w+p!&5Vj!`3iwlmQgK# zr)ut=ODF3(X!!tVIrn zjm;4u`q_aXxi&rB!E#3$BK`buv4eeL+myucvG(Rrn40~rsjjo3QC3@mm70SCEBb2P zy7nXm$^CQJQjkk*TYwci(_3jr+c+eAf^WG)Bb}|oz~I!u;DIXM2Q%32NJm#Tx(zJ* z?c8v->>AyQy#qQrF-DgNx>j~wBKR$e8}kt!-Oci_kL(#E`kikGPhKQ=_FWa^`pB?Q zhdYNX4-r>(otm@5Jq3C!6_ayRWC?n;$NX`lBZLCn|C_yDXAEZEN>nIQ8K6O5!U&vNkJisB@FJ$5f+d z{-?Qyk$>3hd{28jaqE09rz3y43-N+BTcKi0FR1yR0ZW^R#dEphp-G-hy+;$o@frf= zHraK8#y&t0yzkP9MZV0=&MIR_k#GK-LxvBOLWog4U47%)+Ub&0`dj?KF$iSWGIe!Z zeeuS|R!77<9Z}fQ(z0?J7SE1YA)@xxxryyVwR8JAC|$Q_#HGhdQOwI}vWTd5wYk1) zeN|SSQU>pqOU;XWo>>g(hCyWch^iqqWG#cITAGOyC7NK#uBHIRi&=Pht1=V#nI0g_GAN`wBztAu)NRFl5d3hbK^L zC-%m6bWtFfVsB;pvf94oou@ZVj8-+K3Ny;INs2TpT9!CQv_VyDlqqkL9ah}jua~8p zZF8mo2A;spggM&*H(PUa_^QIcO(!cSFY6Gr^Jj#&oXn&{UQZZ^vSqs{F0$QX;)EhXp#` z;D^Of3=vy>N2tTWU+^Wl=e^f7r@xxgy3d74tw%LFwTXS=L!DSyy?m~V;5W>JG-P`S z&{}3>1r1;$iqy(kl4_Rld400z!-&0Ee8o{z9mJFpnIPwv1TW2B*u6e)*6MJ64~O4* z6vFn72t#7@?59p-aqJxAXrYKGB8cDPClATcq)!V_E}3L_sU+_HGNHSiTA4ezZ&!(I z3H{xr*9RsP75e93khUQ@IyY%u@@xLm_O3G|4+jv?xz=wJPL~lO#++0JCi=`|=QoCo zuFF+W4q`v$hBj@}^tPqMCq|@EMJ!1TD3Ssc0eQv&4Zwm>Yrkio$P@tK&S~5R?t$~7 z#OaUtkw!I$%+$$RA7yr7&tgCOL_=<6E04notbOjD){+_e>%7sZ z-e%^Q{M?wSVjo%<#WXkOHqETYQq!!aWu=?(!MwUcPY8Qjv(O|z-%>T{J{YX>e!3?v zEFKPig6v@38z}w&!OA;Iosl=i+~g!9eE?f^nu|QK3=b}bAaBoOD zK~#7gWrKfmYe2z(X&}g42L?lmyi#LOa5J8<1Qy`QGX~bPHa2aiBU{IDMNZv+0k^L1jl+`BEx3i zqJ2|9sS_jiDF#Pss7^%c{0VH?B!ZZ5Z-7+YNFPv^c^JNZB3%sD0S4X@DF%`R31tz< zF>IVMmZA|(W|NY$l{hXu)&k+-SW65(682lYGZvFBR*1BIO#*SNf54(c2qAJfQBKsN zbGq@Eak}A{vbNC}3mq6?c7VpHLkk3na0iazm^5dS>u1`QM)gs`N^^D2bM-pf>pJ}E6AULNyr@NWT14Nv%^0O4RxHPG+@gnonY|Mf_M9@6cz)@HV+kSj zF^y1;=+N8UvZ?gDlKIXcxf%e0kp^mP#xYRKz4TseGo$f4XBzI&v_8YP6N-#7c zNJmhq#`MtWur06s@(99OR}Yt{XNXxX7!Oz@y~(xJ;XJ(b9*hUik=}rNJL6AA zexh*3BRP*b8J@Ef3}~d335*A{mN>0-L0_~%HDME$s;x~J5ANF-?zKNV;}so|>_+8V zhGW$*otcuJy$WRvU6(9Y#8%TUEGC@|DtJlT z7Z%y-a-(3l3+vuug_D0^-~GMk;x^md!`6M&`3fdwx%5oX@f#*#yixTIADf%8qO=&@5mW$|`lD#2-O&^O zfX*sW<+2&KUd@}(Xa8|*CCrVV)wG27RK&w`rhj9N{eo0H;N<%w2&6sv z^9kH;pj%VhKz7*i#Ne1p+oqZqhq_dBk4+=b!96qdnW0>v8hI%{~l{!6=uOY5IqsqAg?TqIkzk%J{TwgtKYtZzBANJLNP3SXXuX0O% z_GMTz4035!k*5+(Ja@5_{`GEcZMPt%_Tj8d{r%Ttk3)e{XMHr= zJRZ?7Yf!y{grK@HdrCcrFnwheZFLO|Rcz09c(|Qgb94KN;a=o&OOnzzidTZbI!U$u*jZ0#u4FM(k$lk%|FTdr)bjgex` z5%p6XSKY0x%UT-T+%nYtl%*J8SP_B54c`1?Ex_tAJxV2=myND1>c`jhzuoN+QHe_VbNJ!o+UGq=; z*p!@Pzm|r&5AeGUY1x;_oG_eh_^ha%5R-JO{>|#3hAXqrVtM{uSREfc0mLwGNWd zTiA4{xEn`d>=`;xi{oyizO`}jojfgvC}z`($B_nd?_b{3%5fs!g#`0WK(Pwf*jgw? zj5~@be}+}0s7_aCC}^vfkEN2jv-V7w^qrkzMlT>owR~5h^nS>-H-_&8H17%)&|%^Z zrky4Z9*)g#v58k<7(7?}Y8UZ^(n#ZynyJ{iQnhzJ6)#7UNF3rTUn(+ZN%TmBYc(3$ z+A1s&+wC=T6Y9*6eGwE2GHRI1*U??e$FXZWDq51vmMbIB6^#g&CCwqNDlZ{=3rZ|) zUFI7aCf*+_D^qA%ZWITYCaLTmD@+TDR8rBVpTF~nz(OMQ!LE$YAN`(Ysh7%CyNX&` zDiYLnwKa9L)RZKd#uh3(NE}_xyDk+5YSV_^l&e zf=iBi8Dihz8ui5-kA4q_ZhZ0ip@{#CxL3|^PxKE#p$DTorWi>{9)e zi<(X&vF`9Lt&;aAEIY2ShM@Ybc z94bi0@s0@WzcJ_#^bs>;{frx2xa-bMh~8vdr!c6y3hl|xQHG_K`pUxL*}o2ZpKmT| zP8@(0&O%m>o$x5k{=)@tD}GEwTbqXs7JN{0s~km}*MNXjensq>^P6K07_$ytw4W~x zW_IxW4u~cQ-2k!+WOCm`9kTWp@l~j)JL*j6YF(75X{Od~xd_kxjay!4geAz&8ksNDD=bM@eB%|^5uz>6A4d5wv}hE-ICbXNQpj~3$Np8l$V z8Qjuq`d?3d3?DET0sC70J=mg0^$Z}m?>xqCLaMrG^nnA|#UV%%hx!C6*o8;#MMwo6(PO>Q3`nfVgVt}S>~%^SW2P-?2Q`?L8~S97__zXJpH{nd z`k6u6{Lp(M00U*6w#GycstPzcj?o!3<;A79fPR<7|a91H=XA?c$oo z$aX+1MLSm?_$^gvO`6mVl30(Dcpo3#A0t+j)0N|5UEK&+m|dfecio6A@S~wN+KDz7 zFeL#$AW$uk$_!0h%+G)eYlc9Kak4LGN1~R3LDcU8-T#~;yP^O}e#8R@D-=!h9fN~4 z{=~+r9{C#l_wN(VRb(DlxS}6w1g3B^+a1z0Y1XY8h4v^f15jeu=~MBAAMCv3yWq3p z{eYn(31aQyvC)d7RMJ6OJ&p`2@&FPgo{O<8|H-uRcr-W=GZ4oFw$#7p4TarKyi ztOm^}evZB9?FfwaJ7_G7$7ZD=$$3T_|1k{9YpQe^O2#SN<@&|OH}Ta!RcK~2O<<#f z$o4QOO=LgsBw({Nv{Q`2P0CguEK=WR4P(a?x=cTzA*j=bgUXg5TO!d(N%?w{b=*C=x$v#cQN{v)$&9_m7yK9HislJrzSwD?yj+SHOQ=D5!fUa5Mm?{b%LrwZUQN?{3R?DjaX$&pSrtOi7+({g)h*-l zN>xA4X3o8xpY#q>wF{up#XB2!53982X~)_P_uvMvaZPm68>5fp1Gv0fVpQN89R*fHA8DyFtBEQ>_%^2x z`gOGDJ1Z#X2P>%dcs;YRuw!4gGjehHp^V|#EKmiWKB_!UGBI^_`i=I2)!crO_^=VKM3bx$w;UYK8M5AMeKE_3CL$d&f z_ic-S0p7ymMZjTKtpOhYG%Vk=J~-HJ*L8x#nP%ysdXtSBMrC%!NFiP=P3;jinYmU+ zZa0$3oQgSpUer-BVQU9cJ*h@1wM%Z#*-Bp+C4FI>?tRm2A!vx2nz-Hx43 zoom#!*0IQ?(vOpMz*AuHBM(kAoQZaP9z`aG_UNCJ6f;+a@N>L}xjbsN@s~j`T&nQ3 zP^^#rAQp&V39YqfCq4=N!dbDaU}(#SPyHn2yxDJb7aVKmkGjRLbjP343o}`&P6J2P z1*&NusxI+8kB;=MaMic6Zq9UCh71UP+7)`A;?-vXg905!LEE)hHs>53_2RcB2*kFx za6N5kHg#g4dM%WxIR`U@VxM-i#O_#WLZ#WmFAq+f^O7ol+IFIJ8|E4l+L}r{h7Aia zL~ZrP5fWx*x;C2G6v z{bkVCz~JhWTPV!uJ_<$C!Qq@8O7G~2xbopa83at>oSYw?GRR|G1k|Au@Y3<bH_e`&kgRFKSDp}I&eLKXjZe&tt!PY;-WK)H5m{}ZYmvb0z=ooKY$t73Es4wfO z5781eTpx0*A9=JZs)^=3*hOgd8kyYMUw)?W@aZQkW zZ(d{bKXppH7~q|g=+@PsWnTqzLl=I{JoG{_Ak%OBVRgPX2!-W2;kfPmxhqLZMt8?t z<23MDO{8ryQjtYmeXAFB(AOTlVHKdOIB~;K@Wt4Q-Sfwvtv$MuN#3VQZp$dKC4k)a zsn@nWTJ82rB@bIKaT`S5XB)`(goANQ=%qlwJw$#BCjY$*?6c-9)Fi*NL~hG85iWq- z_tO8Db_g%CJkL4T`v}joq&AOcNn0i!h&=D5zid0~lU`6+x@?PFH13hy*BS(9$D^0a z_tj^QtShOezRxPfnXUU}1*P=B-^_t>!dqkE1pp>@@9U^T=T*H@%fL?sT%Um;B?ITB zzx25Tq)Tb}>WQW$Mf`R1m12Yo#-saCY6-3QO0YD?3mE3ZEw_cGH1pdq?$6KHCqIw& zXrI)w8)ZQCT<4hDK+8X{eS(#<_qsihVO(cy%$8`Gm3$pLn&~s;KBgK~eN(;`QAgV1 zdD&%5JG$BAf(Lxfqd^HmxRc08 zyU+{}s9_XxM8*B9dq!%)%$)|HTKFdYqzq6t@FfFN2CP;HjywADz??!1Tx3UmR0cfQ z@W$6+YT!9x!q-)$egpZCEcT>-@xq&_X@5s4?qwDu-DNV5*TU?Yq=M z(7@qzXr~7>g~51;m-b!i0CEtqZZPZ#x`}D~*#?K6lUsqeQBrnA_Z;38tomyPQQX9| z!anvW35HkO?!q9>aV?(FULPNbH3=sjUrq zmu7y7;odBJNVxt~-*1zm{D`b>jYpWWVmj)0es?JGmUgT426#}r%)TT7g}+H3He9Y z-%7%zreIJY1hg}I&J3$)L-9uBonlcZfL-F3ZSk6@Qb%^YWk#w@lje;nb3UE~_!Vn_ z_E|_6Wq|#yHPSjczv@^xb-~HAOlO3JWp6J{Ymx<U?2`}CH}gkNV>Hs>EtG$wk3r_#hv@kD(yfTj(_{>~)3c5EdZ-Z>@& z>p^$C*4Z$Hscw#M%fs$1!#08BMI}y+0r@KK2^|4^u?$VI4JLLK1VXD9H_Dx$ge;LEZ4yRNsJqNwn%ezSe&)|u z<*WKE_BWbbdfNR_fMqUQ)rNNI?F916#vM-YS^#WOO9GVpMQM{MUhx|iQz+q1Up43d#23}V{?`H(p4Y^8ixo-x%v$l{iUA2uDJ~uVfGdyATzGtp7|qTlF{n= z8c`V7R&s9iBKyh^(6rJyk9Od0=omoZ!ZTNq9POBJdXIKa|LjH#kB*wtf#1*&)+z{W zN@QFykrmq?LYR3);@&w#z(UM_9U5)IgsCSZdBN|!(U(=DB|I?(FFyA7&szE~4D3KT0u#vxBU7ju zR;b_zFg-8)Lu}LH%%32CRyk<3Gd4jUr!Ze8T0+1sM7oqMb^WWoVeHq~jCi;E)Gl=C z)!*PUMHtNM9)S`qM)dq)PdaH?u)w|mDP77zU_bftLrcFzr*6Je^9>Z>zd+rt zm;D%libwl)5*71gvZb~WuSeVNX+j?Uc%o{NoSmEnWGuL%L@HjZw1)J2!ToPf*_4`$AjSW<8j)O>h^>AAh2eugqr~g2 zfP=^3E5p}GDc|!ED)pH+VDt-27Q3MR&e@~8E>Ffw1hdt7m$#T9mGc_BWt^Y?Xn%Xi zNYm}<`T9X0GD5H+NEoRj6%r>z8OdxSu+vIc1wBF?G7Zng8m+ZUFC+;zY$<4qKGm-C zh+UyRqv$kbp|M3N$g0laHb0A_zi?mP)KX##Iqzceg0tOa%^9M+&O;3~Qy|2avt}R% z=^{-Jomg4yW`AE!nHer`4Zb?Y8a14}t9H9#4~mtq{`82U7N^kVJz?DHTz1@S=x#8@ z9CYTghO}WA>UuofOXHe_{WIW#9yoea@f@Xpp~1ur)Zb+pgV1<}9xexqCMT0lIe8yo z1YOWq+wC}%9-2&Xvk)rff@lO;mgcASJLH3UT0cXHJ}wmI>vgP$nc5(tsLTKnwIw(~ zB|!{I@Yol4A3ZU`ak1~7EYpT`YV=z@DD$Iw)c87T-R1fgwF>JJWKfiYy3Romebl$} z!C}nuxKOsEEnZ5T!O%3dnRP~}fCO&?A3&FtCP7D>vzI=8Lz@n@V;qCs99!*{MT8u^!OqiNAnFpd?2Qq0pP)1L7PDkV*G7L_CSVm^fEf(A9?+hBht|j!wh4mVnHVZJ1(Zg zSuW~Q(!Rm3eK~3l(67@0Gs2cY9MI^O&!rvzooMqHV>7gU5N^JiDgyB12gcuwb^VK{ zbo^H4rZ(2bHctOxskN-MOoM$gc?VcFa{2Y6PQM$HNHVk6X0ler$}j&F^*sw7cY}HPqLMpEZu*e?7`8s z;@xkITE9KZDF47oz)Ii7@;?|k%UjFN%OU$*E~TsnbaKQ>8~fEJognh+<9pc!8;u!w zsne5sol2mE8>b`^zJ8}^B1->-)ZWjQ2SzNh`I3_3%r~x?pHDLnGuuCOdL8u&`f7)3 zr)%~1%YcwFSevbwK`Oh zX%+m7I5B~XGs*|sD!EB5j!DVnK1O)W{WT~2BO#F7g+)M_ZSZG$9*mDlS?mvp2x1bE zIPeaP5d*;x;7-ZAk4rw$d?BB9=&9+IFfdEmk4(uD7hHO1uKQWXkd^K-ooK{P`L3>&pE0x+me``_)Ul#%R{B)801}U zH+9=QLXP&r$$Vrvq&wBl+!I7XjTF*H)w5Y8Z{#Uyv%R_NBHU4B-r`(dzb@)lxolPb z(bl8qQ@+^6P>r~oXAWa-l6R{^r2#kUj2(e{e=PfqL|ozlE~b3yk1I6DHiRz`|W z?pA*%BU#5x{WT92G$U<*v@gr@;r?T@krukWDwG`De}^>wqY>vU(HwNx+#2t%aVW6s zyul3ey?*t{uBZLXfiAop+p8bbza#A6iF)-ziG@OD+vSoRQUdj2VI*nUOei5Pw3Kgc z+R!CE>4wwA<1@l$i)zcWef4&57m@N(W|ld;o5#oQ*G|lLSv8`;KPAinjRRZhB{}0- z%3UtLEM$%iNWfQyP}>8ic^Lw2r12uP!Jp8cz|?it6=}-VHP|c4SIyM+pn34rcmqb- zXsQWhRVTTte~0DFQgxzTatpnW!0;L@GBmfH`JSa-G5|$`Fp8@7L{1Ac=kc!2@YOJ&ZmooIEnZV`^$L@^-h}g7@RG&Xyp;6IwYK z^VgIdoBeixzc!L5DJCf{IJ)eIKOT;Pyfte_Q?#ECu`IX$P%`hePV}^=&Wei%fVaAh z_%Z~C%*mbSt$Ym6v!H*{(rQVrJ;rO?vKy)K&d*;!0K0RWg`CKvTI>MI+WwGKWiQ>( z-wsv#1CYKtO1Kq2)=1!RM^Ipuit?mVJIhWBJ_AWb8h@7fjNRyEBQ5c4#=K5qQ*QtB z*$569`aN%DW%OVwULPAtf5y6n&pdb0Q3ztfCC#6Z+E**bQnz8lTWOBF2XTVgd84&` z*Yq(oRtf7AsvA|YE88M7S5IF~+ium+vLKKR*0a1BD_yxvc17!9H`1gM|L=pe&xw^0@PYn3PojqKp{uT zgADSoaiN?L@Te-!7#hW+Mh?!y=G>UGrC2JJ1|(Q2g??4AR3=cVtcxwcng^Faci<8+ zmEC7P>yj7syHP4L$_b>gJADc=)vre7$<}w}Tj|V<9hsz0RWWBs|8Zb-VlUoEHlUWe z&52#V#BRw1z_B>rap_+yG?yWH!WkAXvl^lADGUr|+^49Yx>1uzmYh05Yyfm!81Lx$ zR|Lj@a@)@FH?7#ek0a{8=;dJaKPG-{*$J8c@7Y8&i;ALgBKsOnJN*KCFnfSO<$cik zk69givC~w0x$n8eFsSd81i}q~{eJb0yGijQ)4K<%_8hFuMx4ZhObyK- z+vd7f7Z(#n9?FQ)FRKoD*eMWzP7qmNK!MdQxKY{^Psdr0Og*tGW0NZ)$97S?~d$x%h#m#RdXo z^Dw$oB}C237D^Fw6H;Y=1k^8{@EDw0JVaKeNn@N}^_uqY7goZncxN^hrvwEuGumig z1l}SZbU#0ZHmSxk@3IaRepVv}su5XzYKpJiZbj889)6}{eN0TI6gOE6n_pJi3=i=8 z12rCOf5z3qLj_o`MhlVjnbGB<%{I)U5~kJR*AnGvQ$tF28>%6Wm?rm_1fXocK>QQ3 zUuOlKSKm}|$UD>B9)i*1TN*YwfsI{a>gscetgN8`! zKa7}$Arf%Xq!yMXNYuV-RH7Rh0#r%sarPB1?Bw#(2$>&&2L!N;L8IY!SA?Z)=_?8U z!7m;<>{1PWA+Y?%ry-r<3EwnWyrwpZxyXs*Sr`3yZ*m(~!+ZNUXRr zDg6ZA>f+{5p<9e+v&^)F@^q0)IFL5)uE%c{=Hz#K(!K9_V-8v#Ayd7Mk>Zt87y6+) z54n91s4o@Q9!)=hWx^(ltbsHwFa*ICzorY!pnn~pDSQ7_~%}F`T4h3w#v7M z(?+6d$*hTI#giIyEWWB&1B3jPPGXCg7d~!$c{bTr^AwZ9_5;R>J(Yh^WXeBjtv!kb z>nv~;35Cj0qV&Su+n#PiY><1IO=GC*$R|UNOR_y)?na54ZsZr=A4>$GO!b@i=+HHR z3g%A<)Tt~?gg-jIh;48h7^m4#M4Dl^;PVGA`bS0Qx|`rCY{XWFp>at2uNL%?2QiS* zIg!qy%}Q(4j6u-~DiEwk;2B@4_)1@xQMKICV3g23`l|H_C$w})pQ8*cm?C=&A$1Xi zcqy*?l1NZ7y&l;GSjcLA<9)kKCn!ra>-|GWCDiPd6By@=U45SnsO)QF6y*8{qn(Vr z2GVN%j7%>c>OqUL|HQbs08cRK`_9Aw`QNj0|LM>FH^z>{0?y`EPU1HI4SAH}j4TpA z@~4UGM6!YpI5LWoT<&9v62A<(L13&Epod?qS*O&59B2y7r42~rjnz96m-`$Pm^d*h zZlumfM&!-Z`CQ@}khzP=ljoiHRo9iY@7KpCP%rh7f>`b>43uzFqSfRI`FiU_Z0uGt zyOAEOphw5$)r}qZeUYjmy4L1ljoa#>P8GI36tp&6A=!X%a9rk{FIUf)9?fD4u;5qu z{owwvj_@;9=N@E{YK?Mqfw@awVQ0&HTpNx^EMc3AKg@G{T9jHcUs(gU?{f-VMYrMG=k+EU2{w?5AoRTLu zv%YX)eDlNvZ)FZJS9{sx$G9$u#{U3sUK3Ge0e`o~5pgr*V4%wyC zTu>yDyZhN~!d=bnrEP_&}Pic+oAE~H9=%$d^)&?D0BFv-pfqgwOAh~#Tm zfd*JMfd(F+h<&#hUSJ|!PgdXOM5>+7-2vGQZ{OT#R}FTN5SQ$4&?@1?Qb&ezYL^lt zNIZD@n|THpmCcJ)@JPIS$);kDeE3!n%6jtRI;}A@n^zrBTj<4qGPMR$^g~OXwNrDx zfC;kJ!zm-R(6NrX;-oXi&Rb^NAfD*V_F%b^tN+3KC%2V6p`eShkJrzsrCJ9J3&}(rTl6GpCpmNKoar*1nYwJ*#^VJ-7hQ|7nS7?NFqn>^oLtU_ zfz7eL8&NYK(YMxv9O6PD-(;^mbVJ0E5#9R=GKbuHp97kttiO# zI2dsr3i0TWA5GQ+(!|YZ4k?dNCsoD+>Uud+HDyLqo`~V{I7CKvwU`c`&jF2am0797 z3)eM0-)vmLgZFHg1FeCKgMDy{mQPm0V`n(b>h-nqDo^E;Dw7W6h~ ztTZ7rlU{T-*(Xk@4K=3O3yH|0))zMzqFNiI-6z6XF&J{nKGvG0&=8pDp zIv>1zUi8Z|SPogQp+A>c-OqBdvIxJ!!@g zFH%6zI3=joUz(NN`RG^}aiY(e01;mI$=Aq#Q3yi>O1!R&2n^=G?S2@~4~Ey*E^@C` zKse%Y@D9y3O6>er68y!Up^$t6Ebz#Z0&{^+Y`zG zawWMNKD@RL4LG?Gn)5RJti#(|aD(1yQM^1N`s7u2ZM|spDdsATqbb>hd`wjSg%#Y( z&j!G-pN`v3#~>W@ZCXC6ybBFr)#hV6t8py;D*;{7dsFU?+iq^PEynC1-V^y`*6tmp znwIT`w_RWKM?6enoAP}oMFDLi^zwyNqA7yQ&3uyRCNt)nGg0( z4+8%9F;(y|I1w7;4l3;>dVAEh;#UH~MYCfLAbaP2Zl7Z>E~853iueTE5>D#jLb2b%*6eL-X{Fn$);lHO zqC@KI_VIUEm5Q~X+82)UTenCP7YsoYsdp8&`JGqdRv?M zNDZUFCyNwFy*)^Wk?xPxi{=l7dd}5~@OOd7!qu%7vCL}pNbva&cy=8im(S5xig7{%538M4I z35E?ohJ;}A>|g&3S;P+#<%f1e@53x$5sAUzHn|5Of;?N%YwQy}v9#a92PdV#^hF|f#p%*E;=3MGU5X1>e4X=&j3@6Tc#Du?`DzG97~Nt7y+>kaMu zC07`ZXfZ67hB%@b7vY`p({yvx2WC`oROzQWT}7twHOQmv*fY>wvq{%L01Wi#Q0aP7+KY!LpXceD{MU?c=_- zI3HPX^KfzqhXDlFxX(z3$b&N%ah_`<)CGP`QF{q-?&QX-m+KF|(HdfM--9IH zgh9c$wNsomK8)sJ+Z2mS3>6t63ue~Gj3LpwBj~&;APDiS^2xHju{AzvhIn_Tk*xy7 zbMMqMNhqv)t~n`GPlKXd8mcV)Jhtv#uev7+a62O3v@nq5H7k4v!5ptDIQt6b0bPi(4v5Y?+JoHF*U2 z05SW9eEN%=21L)Z`}h9qk-%;nc6sspW4Pe^!vCkh`S+fv|1`5n@tfZQCw$Nhv5i6| zpYJIg#H>QDHL(RmQUxJ!IWh&|UVund>wtZh3l&>LGi*>xK!q6o%?~c*z4Kvovwo0p zF3t{4$8IKlp8)dkMdVaZ&I}_i>5Wx-8Xu% z{!ekcSjdN@*-2&aKf{eiJ72k|-Hd3{114;B2k&<O)nL zv-zTuHC{na#VWSY3=b3`iJ85UU}{)NhklS27`XxMK;SkV)118j(ju4YFs^97KW!?% zFQb1x7fIyuZQfjRn<5P<4=)M8@6+-Vx)X8@M{;8M18I_4kSR;rD!02 zF1VUO3j-8R`Ixa;Y)RTFtSVZ~3KohacU!<5c2Eo_iidR^1zL2y$5wap#Zq zaN#dY#zN&}^)(yKo0v zG)%B{a1$k~U4+yjqrI)N-ow>RFBWXVmgX`<0n(aq9f1E!m>(ckg5(5~JP%{uoUU>| zw$tm45_q!&yR5A@xf4KxNJA4#@Uw_BgethR2Oy3aeJx*7+@wB&q+g{)s|2-{c0oCD zh4F%XGGvs}F1N`EA&-ih{4n_;OLlyNslvWEW19I%T5z`cNg1f>avkBvJWs@3;++N^ z`OE}`d%AkIO7bzNa{`xTSwF3FYYAqCA-VhKa^gz4FxyR_+~GnlJlHLmoX3MFqYE}P~s`r2}&TvDHwcyo57u~8DW8wm`pove@hznund zoN;y3-vqP#CfGmaNf~ErgZ~k`o#X%4gXGAU>*m_3G~cZBid-*PvrHyU zkrWIdx^syV5@Qx^u-B@4WhCkMA3o&!KU=1h!zbn%<~?zJz8pP#KR!Q^dSP9pkn6^Z z`-;bg4dxlIM+2j2fYw3RKyjf?X1eOoF5>4;9v(A*{NHu#_8=$m+zg)%@2yUPy**Fn z$M*PlRz7=SxxZ<3_gmDqzixiU=Z)~5uq6xG88}c-HYQt+kF&-5_7Ow{gLqz)-_1ny zf_wR?WA1{Umn{sqoCy&)8Iv)Qk3AkaDy%6s3LKfthPn2Gg35aIraZ8RGMOkHDOQLE znpW&2m30p|r~4krpCgI+tIS<8xkMJ@C_@jE!)AHkJ25_Zz2vb?TLi+GRhgB_xN;BH zQ&!AE1t4b|rSyXv&!a#d)9ZqR-;Gf2r3ci%ZQ>V{l~(qx1RW;&nG;I*=q{#II~xb^ z1c_(X)+_le9Jxl52h%sHd|(}oq+h|P(arRAJlv-T0BwHEX$~Sf>tB(&|2*9k07)lS zQtbC6{Id}QF%g8`M!k{tt;irXM6U?y*-|HkBBd#A-jO(<-o6-~XDm)f z-a#dvL@XKSv>;c48_<*Wr${{7#(H?v)DuUcMwQ8HqNSzoo`3rN5uOK`s3uZj1M*z$t5z0rJ5)j+g2T zPHWG=2UClzge}{rt%P^TPI?%8@Z(CiKbSs&_RUp~q`2Sij2IDR6Id5)+cb>IPHL3LzyX#o5C>Vy7Iiaak**cNv3Z& zub8KCjRv<7yz00NyQ9+voD-^r=RkL5eOcj9DISTegwXl9&Ew0zakFKNH_y{ z`aiI7@wrBKB?IXkpCNY%V0B5Hq6U^Bws)?j`&-z#q}&1rS|DN^+#;`WV7E!UVg~j@ z4a00nKke|kQdZF`nO&~4>0Rb&p&3;Sk z2H-A<%^L7n?<(=aHb~DC`=6D?+_)<-HuHp;olGa`d2Ri+vIVR^IfVrz9oFB|L0Nqzl-<^ z(z4&OC%3K1c%laRHu{8uxho_ zfB<4x7*v6#Zvw;ClZjdGLf}y6)6s_Obl20y)7#Y(-jAc&SOLHw8+7vV!*qy=L1!d3 zsYwRnKvicK^wg=?YL<5z+++b=H!NtNii~%X7OhKbHH7BTS!Yobn;Z63s@>o?RCAHEpa~;xN_a^32nDVK5Ja=lm15ys~YZ6+ngnCDv4L=ZQ>SDg$Gat$n$ zog1E5)`T5Vmno@CwbKPyr}Xf2uG0bij;MoWs82Y@{E%gpnthYx6GW5JU{NRHmX}Tz z_e5lNy`No^^pyo)HlI1@@jo1a%RP($n|(qd5Ip-425{F%8#_ruxG921fP?_^feyG} zp1LQMB|;u2ax9-2HLun1Dd{gML64&y3W71MPfdzuSZ~tEgomwfL38v> zky;czdDjZhgoZ4$;)8XQMi?#Br}6}iru+n*GMbjaeWtr+^asbYJCcgw#hWYTRNxZ{ zaad;;EfP-b#4{*|eyK1*_?4%hnP*_u*tJ~&kH{Mze~MJvH>A;pVjc@~dY#BH!v=*X zsv@;8b0AO(p%{VijB)Y+4>~UC zO?pQIWXrUDv#-s&r3g-o?e_fv{1ji-X`F|2z7e7nm?GOKT96=(k2Gd2H*)$f;|GgkF z=Num~VqF!3JnwSumirP1(A7IO;^Ew8zA7VnQRvCV=BD%;C+cy{fl?fVEI#)ww1h~0 zS)7Eev>Cw>701H740ZFYOoBl$22-}EMtCF7f>moumL%zi5@8F0Il)0U}s~ zt#aM=h`GuC5vh7T-T>Le-BqC!b-6wHdw`@#*oU;mh5*_{fx>z!m^X-q3$4i0@2)NCD+)G79zj6(%kW$}OCj~Ltaf>jJy=T0 zF7<$ZNSkGs7AeJ;AzPAhYR|OJy$WM#t!*|ljB1Wm^ye70q@3>F38Z7^C09%%_GT1r zVdO9oS9dSLIKgn=5&Us2xoWaWMs+9g47Y9n?!i5h4px@APg|Z>b1jmD_2p6X$!60d zd)U53vDQ5#=X_TMdVY_|ShJq`3>LfcUBv_3z z9^s$C`Mn|=o`E-?Bd52HooKs@r9J$xo>4oVVMCq~@b*mqyrbmov3dFPUc>wDfxSoR zUc>pQHa$zSkmpz^By$wemO5I!7idcpIpocvQYk<)i_GIsde7G@mtzc!o%f0-K;FlcD@vB_z`fr7}Q(1qgzBT%-< z&ez$9v(?*F{r~GHDp9#wL(+V^UtU5!-aWp4*ahf>gRetyK)8TkFd0Vik_r7~wV+E6 zgXajUb7)A78QQ#QRhgqo4?l~~g1Cbm{_NvIaEVxz%%aP>iQle&+B=VpjZP1$I2Z>u zZQc`Q@-f-e9xq4;?~-C1JV9*#BD^=zdy2|v`1z@!Y_*g4G zeM4mO4H3aVO6&hDE%}#Q*IV{4u>RxLZEOnBS%}d2Mhhxi16cll?7Ghq^?%uQ|8nr) z?TCiiE@tfEZcTpg*sQ(6tFiqdaxw&7i;;(vCut_TQp-sI{7YX3d?vk()QOSx)k1xy zu}h^vB2i}vxqLjyxaTW0ujA0O-=^8Ed`@&irlhSon#5hh-rT}^BNbjYqlo4nbJvL-@wXP(Aes4Er#>Kc9{nh6qE>*-vyM%1=Pm{6hH)YYi|MZcp($J%v^P0ZR}Le7W)#0*_p}T`MNKDBJ-!?dmKZ6)L4p5I6$ZxO zyrN`m(1rq%q(p>51O`STvz_^`G60L?kT!^FY4u;Rw6S-s0e6xS@rs*_jtUqUz;Q{Z z#w5ukjEtfBY=Lq7KZt8`5>ivDuW}NT(xIWjVPiF7sj-NFh=7pbnSg*|f`a1wgZxoO ze*}X9ai$*W?EuefL2vM(L_%}%#fSN${p++r$+Kz#e~SiW-<$1;|3Rhy21UeJ-^tm* z`0v;EES0~XOmc{Etbzo>XhOv#!ROG!n>51t5Z4+hnuz&6D5c`D7@gxQlc0Ahy3aa3 z0lckmW1GCL!M=wUvmG6yF6iy6(nGu-H$10#jYR6gI&o_K#$?yQp+%j=Odo->>? zVbgONJ_qbd2G^i>n>>>S9J5F6U=BE9GjJN1FfyejrGEd?lG2n@l~ct{;?p(l;2_ z8ELFNHPffXC7X}A_pTtdR@@c17TkdYR!clH-2K68ENnKmr)*FgIzooPG7b>OOrb!g zM88(&s^yzX@B}PX1{{_^-fxDy{rTF};{eg_R0JmbzC{eUURNfNP|s;O0;KXOY$wK_MYnULE@m3mir^=I=eL`% z9eZ>-*h#&q-dEV)uuB*=0ABbY1}Xy?{qHR$D!VbB6yOQl1!&G4dEYKEym<4Mf@u6< z5~N7`U*l7jo;qt-tF&fVOD+l;AOUM4PhWU82&qQFk$A#Vg}u~CqY}Vui2P#hl_27g z5}x9yVTzi1Io%s<$?F#ar>pA(7&0aG8?K5`(yEX5oeXs~eOecV<~*2%&scx0EOit% zKbWxyvnHrV$bor4wjF#eOPx;A4v3M60cj6QF?@jHRoO&XCqd2o#WKAKws9M}@3p_u z>6rse(8?bTN-g&V)3i1ucmw+DP!_EDGPn*5S!t`FB~H9+oFS50t&E)fi0Hbgetr%K6LS-Pk@PuTSfsG}OZZJlb|JpOQ#-YjIGkv;7F% z1cz!-N}v>nzx#m14?v1I={wLbwySArUF^yuTe;BB47vg*bflf=SB8?mmUM(UU(2GY zeXkJMRy-7sV-U^-`S6OKJ>wIpeS<||k&{4F&if{(a?*K+v9k-dSifFfZ4a|*)$H;Vih1u!{D>yNhU$R~tgNYDvNP)ifaDGi);zQ_%5fImFkU;uyq zZm?`WkWdJ$C3>Fs!neGu7qB}8r!h_5vgv!3AAUaHQa_oPf{bXZj2FjwU$eTWZLc_9 z&wsydefI&o25LseHJ}Z4_evTzrY@Qd7okWgaw8sUK&DdUmfbO|lDtSn<{dJ17&&q{ zjbNe35znU}rz(Ra9*N4>iGpb|v7v(@E~#?X*%lltJNfqLI^NM;lq^%DO{;>F#+V4T|J0$ejnSC1jmYcM(e9PAobIVAENb-+PWTu#z%{V$f z%fCn^H?{?XNM~@YQN`u>s*gKk^nX1dSHU>NcUG;%^hq*bzh*uWK(NV9_`4{Us`L5( zhNU;f$}(fLc;9}ffg`1JKii)q!Ujd2Q?;^AMVYGV_y~Qgg)TBnYdUw{Ky{lz?$g47 zqZ@l|JLYC`rnA$?V=}<|F~9HK<+JGHfAWddP(G7lezB&Dn#_;dBeR|L#$T~ zv97X`lL?u$c8#!5?Jj^otCMVf^s%KGqz9`b0&ZQtuG|2|o3dkuE|_4528C`91w{k4 ztSwX^`D&>yz#2s*suH~~4OnUDE1>s^UrHFOj{??JYXCk_wXX3Es&=n@p^Pe+`ma>2Cx zfG05?0$m_eZh}-kCrpz}ii1+4m(~DFvAunb@?>G|H#f5VD?)XjF8-CDD{E%O;7&%d z_%SmMQHyx&)&k#*Gl;IiM-a60OFU}YA}p~;uumJ2CnhD*YkXVeK0k+R$c?_FlZT2GCD&*5Tw=LKGGr@b6(1e?;Yf-SP1o@A<0W85<9+_=E8N4E^-1tKjDX zLf46sly)MEOyixHI9?%<_(zD^;abRP>DfN>rhzY{nkPizolOkG;fVUKW`H4=;d*q~ zHID7{qfJoNky`AGZtTpZSlntScjRJ;I?{P|id|tj-<~%8axCZ@@;nA2HSl)UH=E1& z-vZ~h+(%o69)kmt)`&{}O5#+&yqKd$-y4nY}*X(i-<%B}_Q{AE(^`k%?QzY3W@I3L9S7{v*W zlL3se0eDt2^CjW4K4mv&ii1KIeST^~fx%|@$N7rWnNG8CmcZtU_onXff0Em$L=nCP zP@hkBF-=cicKwImKG*_+RLP2|-ngx?tY=2sRsjkEgP}RXn0Npc$N~FUYBc;DrI;;l zvRlv*DPlilC?d%>j#N|9703C3`tw$G3gdiU`zPr^VahuFgfN4u7cW{8KyCrzU<<7Q z`GaL61Ln4B{Z$|a9rF$!+%!Q=gb=uV?al`cugI%UM}668R(PTxbzu8P53Ek~bA&0| zhjCU!QIUkuyTp|(D#&VrgjV6NV~%DB%r#QWM6}*K5cWc}y4fkFD6$AxcBfi+m@EWe z*=B+i^4p$@odS>r-P8_7MNgI`GRew2+A2egi+`|?lSOTaDFAVv13Z7twf;-2{|LCO z{$G@~zg(aahXIl1ZMvzC4~T3D_~KmJMgbZmkCxn#Gng+cP8L^mYTFLq7yQQ|#MMAV zKp>>u5$|YysjK@(7chH&4G0nztHp8?AkYT%D7i2pvT4^`m!;Z2-z3tdSh$SKawSM6 z97AkAUESzOZpk|d9GH?MqtJef@2hc3Ryt`+&QnYmx1`E8b|r%e5sfNy)Kqk!NrrnR z-4?(jp9GHyoo*fd5pxNd`R#W)@cTi?Bk2Ya+(`b@s*BuFp^Xw4m^E5e`PRCDx<@(1 zki|#4R0YD_g#5*&-|oIjvxRUOO$wr^l}BFG=4)`?kmZN%2`KnaTcYYU1=nd2h!^2hb&nu$#_1q;kP#Sn8vq~`7J zeVuuP5pGLlcwW~6v1bsow*G~*~`THkMIhf&Y6+U-8lNlLTftNHu+ZAQM}l2>2JdlwwHD1WQgGM(@-NIt)jBnvoAT5nV>zE^c%)* znx+&ouYxY~mxC6!kkIUcAwmo^<)nMlA@9H5g_coq(l7GBbKuWt!i=T}iQk)4UGY!% z&Bzlou(IcgAQ{?QH;M6^0Z$C9NcY4|B8McNXmrP@t_vA?Mn@?u)77w*ylZK0-7*?W$`*yVLX>yxUj3Bn?4+w=rx8+Vh%l*FPKcT~oAwzZQ|vm|HA zKbmWjBcVVCV{A+s=@20VJN$5DDHhtX;^fL?YRyV1tRGM7E&dczG*{zJW-@^$u}p8J z>XZc79=mtbr?D^wx7nw}3T9SG7@PD=%sX-xPb0%}rqFunO_8^Mw@7t&*P-0|?T8#O zQ`Jymn`nGkTyrZ8#@a-qKptgSNTkG&*wF&?veeJipHm7LlQJg3f+{1D1r$8~%}<+0Su1 zBH(gd>8q``-Zlmf4OYx~rImHi?7Z8t4sTM>Hx|nz%An2R{A2$db>Yal*Fzoo{3iH~ zc=@*Jgw{Ib6M?9&gD*ny^=|AXaHPk*Mw3gPFY#-4OOiz2_ujT!6QKvzPw`$e2Mr#q+*1yHMyBZbya5=~CO!Ro! zDbda2Sgs#;#3{Js#9k6;=?M$5bQq`g*)^WQVBX<&No-xs3KF|P$L}5q*A_qKLA~>d z*daHqD}*#9Sp;L=Hh@Z*A9gUHd(cpSrK!?S81rSx2*5c@Rdh#*c49?uAIdT$V$+~p z@eDv6BH+krVvj)(<7wvIJ=RXz!E(E)HiFDxvI5Wjx!s7q3^OabAW>rzIe}jTZh@6v z+3v&8fCsrPCebpGWsu0SY81_?Q7AI3iw+@|LL#tq%`-Kfn?=TD|6L+(#_hvRPv~K zcg_>cD;W?hOiiFB9+tVvU$;l9ea2;uyut4P!m{rWpHdj3=adgHnI=?K z0fvyU5rb>*nmXteyOCzmlS9~)+|~i@>IA=TY_dM+9idl+OQRfBgIbsA-NEdgRzOJt znXj})u}bZN_YcuSh~8Ss)BXjI09BUp1vPJbsb}?)Sw)glu#-vA(3OTyg5Cq8+xL!d41AUhDtqN~&o&6C>1508^A zx_7u%1oWGT36Z9Czc{>@+=G!}OGd|(I#t|ifdatPU`5%_Cb2c~SKb0wKpQq=7}Z^Y z;~26f@;2*TMhmTbOFu-B23c#u*_}9apxVxRPgO&MTbMVEgGLCD?$lY`) z#li_9eANCDisI%H7Nz!_@~Q~svR9{xK6nr@sz(G$>F&7C1B5accm*xGLxZs^&L5*E6i#i&uL#NWPx2fdO{$ zw-@iKi;J2c?MJU;Kc%#Qn|_&%pj}H-LB2nJ#kGFDd0oKYmZmyw>eRYm&$E9KqgjFR z05)+XkG%&C<1xT?A<)}}PgNc6K(KSkU$Nq`@?EV7^-=uX){VqLi!zcz{q9B7Iu0ju#`&W z0wOt%k%M4oU&Qs@-VQIY>od5RkRUACJ;FhIns4Hta*`4j z3cC^V(P_$8&rpZ7+joLf`8)fZM{dkq=)r-FmTt86b-ADl;^_xu`uapVhAY2DPhO^J z(lTcS)^Cb2Z1)@J5DMW+x0#bUDACHO727QaSloVv7`NFBaM=xnEPb)Z9) zTvo+gv#uVKQvgIxe6N>>LmmnOx6o8J&Kjc761p;=7+B0oA_hcJ*pdV$rBRmz27|h-nBl;JvLcGW zs3#R4ky3aIRTHIgka4a;*`ipV9FbiCUm#;%rN*_Rd|$PV)^;~h%B{jkAm@Bjq=Ym3 z0lnn&o>WTN94dG3aJuUVo9H$n=HDrzR=UNDu0gkj|6$WBrQuFNMQ40aJZS+YD)lsO z5p~M0W#j}Ff9Jq*e@o+0e|>^Owu^aL#C4G2oi^F=4E4*`gzeQK*0p-Pm+R@J-9gha7_JwEb zfluX`QjXY(Nr(3k?H{o_1x%zhOWUHjsmTWbo4F6{0g-Zev=1Q$2Q|w`H^y6^WsRvH z*EJtJhc%M2f>LkKq{?cp_YobH(RV)VSxBM)V=SQ@;u7jed;k?V!yN!7E9xP%}RXiy1MG(;JDs8 zE1mulrN{-l6)74D%qvT&HysZleLN zn6~%$Gt;=b zr%VGpc4I70hbipUZ-27^R!fd1{x%aa4QR;Q!}#PrlHY8iY?-B?>_oKLWIm`*0eIso z5Rx3x);J*^86)YJm4(sLcu}uYmtk%RjiY0syypDG!*XcgzKw{;_P!WN;aqY>Z#+%{ zqP0pZlZm%uHvxPYnc0!#?+t1CoMh*T1yJZLrq)qr9i-xPl2V~rlQoBajMnd2r`2la zx~%D1q%%lzZkfw5b{=R^WNn@sGOmjpGQfq|Yb!g;H>kiNEdpZ|IYvZLH|3%1oVqog zM+usuV}`#EOH^E37hgByF?VGu*aHfwP1QqGlI&zfFpgA|mru@zS9FY0O%bzk1=)XeUIkQjP;aoK__~*;5F?pjev}N9zael+3;VLx7F7zyp zt*Hk>HX$md&+)=dnZ|{*0Xkv8tR@ou(Oa|6U%@Qgn~_$ zDw-B(4@~yuL{{HVu|6^pMm!ZCErC{omT&`K76~|&_qYF?&gLAI^2>v13a;Qd4bOSX zlmhdJSVCZ_7NlEbjbeEPwZ{UKC0g`0^?NYL$-ANAK0O5;`-Wg-tbR-XvF7W&l_k)lX%3t zV9$YzZ|xwXZFJ%bFt@36qawcWLol~&)$Vm5;;U%HhhXl<_fbt-q}TyhZ>ro(V>FN4Oy^IZE7k{|l*z0LEf=pi#TfYt80GB>>ckPX zg!B*lyvR%Z1-Ac#34b^+zO3T+Tmpzuvi}!hDplv=zNi5X2a9`f7(vi(>xOM3n4MzE>Z!S0XY|& zTfROYzcA0lI-#j8`;mT~Ky)P@_4 z+NJqIvY|W<)_Jb@7G-_J?GcXg&B01PQF+WcR9qzEhI))Mj?HFlv+T047fDirLrcIZ z=6vI8LXAM{EnbOMjnWXd?62<3 z*!=uajRFwK7M!y}qS4}BvMH#PRbndZjk>rY-}wj4i(BU<+O)`}lQ6A@q>p^lRI|FI zxX1&&kyWS*N+op|3$#j+L+1oXkWMk{eoM+lYRj%zJv5yxC~UlyV7Jy3bT4%j2r16@PiaNCzImmq90bAbe6V3w$#N z8*VJnZLN(c6)Z?c%3()sF?KM)>LqG`Cy}rg?FT|faY3Fx-q|7!vMmtEsIj)N>8Kc6(8pq#1ojUaWl zd=4_M$Ei1y%j~V}_D3A&ycIviqqvjO3k2p=t!|iZbu*DWawS=Q$Y!5|NSS}Prf(y4D&JWzG-#X2UMNLq&Uvd%9 zWxjY&_>CB~s2lpXEusYdPSHW2G&4*RGu=c8p?a&T0i~W}oR)R0w&G$@w1H@svi-J2 zsYq;_+WN-+&cI`ar%Yb&hmyh1g;Q^0yTAxDRKz%!$B8hnb%>f`LAeoOSBkxc;;x3w zK1UQYxXQ5Bu#|n`DFGJ9fKg7)g@1{G*g=a1XK&#|j9a8zV5OKN-`ZVPvMUkZKy(|T zeW^D~jq)U)sHL54WGrIsz*$DwrI<^ad>yG3^S*oe;8tGQwhj_NA1IpN8>T>s0Ja2D zZrh)8S-L4gZM?K`+rg#paQ5&bAk8%e-7YYMoj-D$xdJP#cM z{#_Syv3@8{js;dve!%oeaYzYn`Z_tHmc=X3cI7QQ#1OrR)y6r#{7HA<+fzJ_&m4Ww z9`}pJ02H>Go!c~vh}c29d?E=VREW&Y9vU1OhG*5YOmUuR?Be+@v`Tt_qbFszGJK}6 zeoI=@l2owdyMcmTnP_p2^~~3!Yq!DoBYiI4ry z84$k~o|k*@c{NxPb;M2PDNueWoRL^p#yPe=nN71g)*70{_l1OHkf35$AnrhzO`oKD zz7b+bvWeW#JSoa4vXRa=?z@raeMhl6&rR$3+{9~MR_<+(R{7MGzgm4b4WAN{iI$6+ zDmk+~7im?t@ zsfr2bpd~4>L3#l7J?G9i>=jSBgc*yVyzX;|GU=P0V_7rl8XeN#t1i}FC-B{Dvp{hj{;f93#287nta!2S9w_U8*U1C|L zv{+SC{$T4)>GlVIWpIo#AdF+O%l-GJ)a}R33-~tj1uTqNiCM8a8L>{wxo6N%5SB$b zPP%5C1MjQl7|u`-K`+$}3_+!O7Pa}%eETI2b?A9jm3%ea@!^r1;JoanYBCqc zGjS`(gO_Tu@Mzoxk{RldFBPG|hs8O#eLJq{X3Z7x4sKAL*yf`EE8k7e%v3DqBZ zk5=Ps2iky|iyE+<5dSSy2IeLvbOH_r=1va!4(|VLyY8)I4Um$7_i3T&K64L4hHnak zAa6N1K<;ZLghWpyjV2YO50P6tQ;fxSHR9m^NUjYw+x>PehGF_h>0jW}mcEjHl;iH= z@_1Bh%Lg=R@T;F@y=5ja9J|9_EWN-#A(%EvMw*hZc(N%R<3I<-)qc9S>h=+ClEEmj zYy~+XzqaL_*RI>llniF3zc!DN%2|MUU>`*iGyYzr(X~_6xNDSJX&^(A{&p>oxdsCt~Xm& z?^ObcWKFq_(%=8&YOaS}l@Z8ydWRGERh8h-aBw+)+JPI9+$4$mY|yOC1yNRJBqk|C zKH=&rB0i8+Vlfg!RSZ-903T+p-uh&^5>-en;z*|pidgX2-(BFyz0YWb&R%(-;;rRY zkD6Hs@(Gg79;pHMw5eNsms$xOO6&WLClZ<3xsJ0yi8L47d;n;rvWYX#Ipa;a-456# zO4S?K&9)*h}4xQh!o zttfcS_S;;+zH;kima-@~FPU#^-opM{0djZMV1uwIxX)78e%9OWWS7&{LPFFVvJ1G4 zD0ulFoW9$F$pq#1qRA#^?>15tAyIH}QE=SpuC4{bqpZQ*-30?t@Go%+FC5|SCodlo z8s%doQLu<@((v*?r=|veKqmM`K)34X>i*0yAXstxpa!&gn4<7;D!Hu(O`KQIe=HKckB^@EBqdEs{n?zdlQdM+V~!)zC%1io0Hj22G@ z+$mAmO`=L$?lH>LIBNH=UlT8j(L}okY-KijQNILjtQy?9^DvakOha<{)b?Jet!b=qaI}IIX?P-H(|2jPV6k6^Lu>y!|PmkQHtIYWFsZ9;tK%Gosvz=fL** zemiFPV_e-t*PqDh_kV2@e_-F);%@ODa&B^f*fae9V*gh)EoNnFpl{{)zrRAVf}GR< zJ+}8rhx1~&a|cIh9z<}t*{@7#ZuT_D0snFCQk{|&3lQ_tSIr#IZ$3bLNl%t+UB{qE zPw$>r!KwRuzb|ll85XUKDg9%(Ig)nj%j4Zftz#H>B0`&7qgzQ=4LfA!gk>$K=~!h4Qh!#1aZ*y{q~nw@qsf z_um`U9wDA+K1sT^`c#~us$%rkDP+=eRgi^5&k_v0e5VF~6@_c2%V50W{*1=Cdq$$e zkIV|D9N6T8Wn>RuhI4bfYU%E|HVip+LV`^;$7el}lO~?Xld(D8M0KV$_5d|<{jT3t zWS3(=i(_LLVxTYW7tPTtL1{|Jn{OpOc&&gdg3-Si0^AWiD;X{ znDzD#`BYudUrY{wPr(S7i~9Sn{hzJqe=qhwS3q;pU!$xSE}e?Y&VUI8$X)b)H+gr0 z8!&Xpu>vUOxM8$a>mig5l}>_Noja~FGwH#nFHyO}-}Ja2YiJ8FLeP3Rx{sb+Wo=*Y zM@s2{Q0tP0iEYx31!>`sl(5~AI7^Bh5)FqzZ7CYD!D2XK+`;M9vFSGo+_6?8aGG@938@wQmy-UYq@Eev3HD# z1N8x2l-}Mu?FgXl2 zek1!UjK%`Z#Kmb9%;#lk@|cr*oH|{+GVnXZHK~a!5?>R4emy5bbSL1&iYZx%p;c^2 zWVRv`fkxZ19)a&}AyVAMlAvXm2-GH|38oN9MNXMS+PGaN5)p0Wrpb z6ksGF5}qGtHk&4jlWy864V!^?8NqAxxn*^gW&A&oj=#cXaEqRTYU4&57Lnj69Y~8L z6fR|#&IegIW~T}0Mq{S=(T8magWsB(3HHAILl07z!op@403OwVj3xLN@X$B3bhi6j z)ub>h3lQMrncr|RTZupxDJ~!{$U#rV=6?SHqAnmmh+RPQ%=LiMdP4VmLvx!3RL{R=`7Nl8+8p30zOHI{CBr9DAyu1d>1DUm# zJ^o`kEs>or&4F1PJ+qt%liC(Jwo0u~wQjq^_(2rT(8NEoa-tUC(h`2;vlMNvX(uK?o-R)hW)6Ro1}&e+aAcfa(ca6RlqO$z zeo!JX)t2PRZ!Zw9_uE06C!!?O0tQ}#>9np-=aJRa6(67P7xlr8h|JOAc!8WD>PQaM zRscycE}%w_AbL$*IldnU%oWVTs&$s0$A4%1m99nCHB)A3mTFF&_%Y!?{Ud^(QH}Pf z6%3KYbp-jiRz0S@eXA;6_gC495k^Iu^S~x6cjRL}!_JikjenJq?*sMLg5~06O^*%M zRH&NC#=T2fSlPT z)x~`Ri7))6`E&RLxg&H-oJ9&u17}z{=S58gnJrW4WohiA zDnjr=Ff76*xkMw)Rt+Zojn#*-&uc2HdU8S^KfL0c^dLd+IOC&DlTM^m5wC`(ZG zBOWTy4GbhBLaWn{{9;6{-`~jyJp=ApomS>dkl@0F0|;~ZamA%0k6McY2aDa1PvIiL zvSR9lka^^RnyggoUi6%mHxYS4#an1S8qX!0Tb)uIo7nC>0!LnCzZbQq4yRi@>{eHs z6y4XAI^SyEJ9D~`Z_kPtz$q^>t>E<}8Bz(P61S>6ENB9@bOsgOrB3tjJdr=6R?X|z zxNZaQ>dpkVi`@i*KZN>2KaK zx--ndU_@0{a+#%*!Dv@%CVc-fv7UKTA>RjR)raZ0a77u_s^F2iK^7 znz@mMv)kM-WCA>(t9r5raV9O@)CN3(XT?k$mr&s?f$KA)RR=N&2-M1}4%EOFI83vn z$}I|w=`L-StX+qy*d&+~ov9n!Ejr+OAS8diR?VWat8KhAXuR}WySbEaE-#ZO{Hl4)$#(0o`I zwM>L$cFM^nXDwgV2}3l1YJO7gno{i=DNNtzhsY)_U6F*bU~ls z%U7%jPF{Z5frJ?2s^hf5q>yjURl7v~=k_wl>>GxMq@c;)8YC#+dCdA4$jY^(A#V7D}J?FO=Q;GDJTdn*n4~{IzHg%8gL|~_>xSTM(`7= z!&{Io`9o<~DQwmX0>SWHja*I~rBBM~t3dv5=wKa^XH40-pVvZm(4}7}vimfEjm(pZ z!jc+em$8Z(BaH8Ji*pYQHkF6 z;@2jE@ib0rn-N$bfAde{$2;}B)2+Il$1j(A(I;>Q-*XG*$M7NqY9;5n2l8U(TJblL z<_(;Kc;iiQ#pLX0~6jkfy@Juh(3R{UcQ-TN;P)+t z(fjuxxB9x;8e|R`5yWf~@@*{W_msJ}7^f|yyKl^EcqBLOc#QZlbAris>5$HI+5{AW z)4*mTLqE`$?4o;&x@gbbE`0x9=Pdbxp`ru!gj&G!Z?_b-PENMgGWrgt=6^$hKW{1E zy(iSHX$tc4Zt#Z#kNZeF%HqUi=0cirgWXBQh@ z=kNRX8>nq$F4Dz%{d~U){|tYbkh%6KV~0L@Gw0Y4&{PXzbjq425nEQcpa*w&1SMyc z(L#bH#%SL$K?gcKjIZlsj{Dr^>5yb`d-d}Q5(Oo=ORkK#Ve%)l7$BL6&KOl%Ec5wo z3Fe{0TMLO$xsD)Otfywn#I*#Q1bmfxTO_mnhAi-)(&t5`*$+^pXXj%XB#8OKN{cv4Y0wAIshdQc%IhI zHS48nWKa=>FE@ocNzerb{LEqx>0@WSaR5bfJD9tgETDdupJf`%>z-#PF4c>u!+4r6T_9f)SS1y5|9= zR*-Ht*xA;wP~Pei>|Q7J_c4WQhJJR3-h#77su;`-sHAKX(-@N@cgW`UY}L8y&jXPk z>5@iVT5{*vZFvgjm%(3i9|!YGyC=iYCB*s$t)nuI`_sbbkLm59OTuBLaa^UN_G-eZ zIi1&;?D3Fb-#^WB^W}_2mzgAyx|;~AO_;=HPd{Rg8`O1af2yJ$9##a5|0oa^QLFh$ zk~Z2>8<=wNI}f2fp;83%@mP^c-~W}1y9ii#)nS{XscqM1&>XLujM}xiEv;7HFDFUB zR!&4PPEb|wnvjKoghhdfsZ1e@U`3`><(5o5w~^P+TeKgOH^_h@R6clSb0U(5cv_H% z0}4k8^ffN8Wb84_2O$yu?jCrKQ;q~f18oKk4YL$`M?#a*A8!xy_L4iFFGbyi>J0L1 zcMMXKOE4UMoD82{yZ-=v2Lc(xk>-pj2_R-=!`l2n;|!UNz50c*=q^ds8%9V|GC9e^ zPu70!*J-`dG^t?}TeTrog*ewe7=?aUp=QLneNYN8H`%UQSSA{JKPELhI@ky(YnWIp z>9R1K*8awa;a9et!dxG?aruVKbr6TAzOBC}b%`YUPA&i~BmiXt^}m!1&H%))k$12K z@I;;5mHwXF(Ftn+OAh#u&tS=7RSq{*?npriVg`@m8{lth!cfZ5Hx<1FB;pb}++E3- z-@?&&{k|DzS%-&cWc^c>=pJ=MyhR!V#De# zlsSZmZP}iEUJE95<|*08k*2v&D(#KhTcWrmM6%XWVL!l@YG|H5+2}zhXe`t(6%m9= zEL)UobL{K)qWL9?58#^;=3S_~rc*4Ce4A<(s;Q)gssIMiXESwq1_~qaA+NS_w1wx$lWc@G{OV zeA0>!hVG?TdW2OtUXNPvvg|#P?yxr#8&-p%DDXdF0_maC`CRUO=OJLfKe$0TIzwW&wsOvB>aO@)h zF#t(bDf&-kLpnLpn{>d34gnz8zci49^sNkq00{Os@bXqzqXkhw)+uFT$z zY7U=MBXkm$mKG<+<(4TGi&iehP`ayy7ZmpLi$#2umO2j1GRkeFv#joZe17ushKL&p zh#-I!n+--l(T@_1?@tS`2Sb9buvW3&uwL*2H=!Rjo@hlEECmaxVJSU)IzyJmiX3q| zu}Nndlqns4#7rf*M5$IxCWM+N$uOL74BGlS{?YC@L~pFSuIk8^v-ewjjDu_9WGet- z-KG1MGSCRdxw!wmnqOO%4*K~xf9=|;=K`|D|LgKxu(LHq+5&yBIow9tY#x4rp6USh zAqMG3sOH4X{oCPJ|(~bh3e_6wSd|DY>BjZ1} zCE~yS{quS@TH!x)b>8zOGFXMx)r)kX-w5j=Ku%?D5Xq4%0wk|8ohr3jpseOjw{GzR zAbkD!B(sD)uL&E@&%4qeO-xPsc(*pcU>mOa2fN@HSFIc`FXJm83QiOIzXYAON2s_6 z)OCIA#Kq!c*jF&f*LP*e2$^3BmvPKt635R7=_|+h2B<#dDGJiSb9PV%+3>{_Lp6yj zjbYf*yU%?TDx}{DvEaVK97abWGOd2^Wx6zxw6jS}4>yuK7+U+$E{4Q_Mr&o&QI=<6 z7-@I?<21;G_MtiK>ix`)urNyg;r8+JL*olTYA5nYyz6vw!ssf;x--5m_pVbIYpD3@CVMzhZFqm*A3t3hu!}U5qjN_rK%jmXMyd zAYduM0g8ctIeq^X}XY zfKn3sB7#Dao#n~s^*zF!Vw@7U%xyI9SDPiA`ltm)`-5=I-hlb5Z! zo~Bmr`mN1&P{F!AE9-dZ@?-x);N^LK=V08qy=|{f2r^!fPpr6ANH|gFNvqpPvQ7fZ zh-1Gopsrhisf4}JWL6k<;GV_4<0K4&#Ary7bF97XjsGA=|Hj9;VEJ>5q&`h zq2@XcX^Oh3vZy1zR9vfa`O<7Rje=~J?`8C-TY;1qK{X~p z9z^a&ddLxku5OgxwWpiJXRJ49(6o3|KTH2qntq^YQY@W?GT{i_Bm|};wxPP)n!tBJ zs&dh-^;Qxf2ptoX$RZcK{}PUK`4w{P6!y8$X#-}c1acG7RSOi>&}nwD=KBWBL1Lvz zw@$TKtyx09%u6iz`z|}OJ5B?0yKzw?QFf#gY*dV0xKU0Q=P#FQOt1xeX zW$6Slojk`iDkXJ+?KZUgGXapAJzQ9o1YyaEJ&qF5D(Q}q3hRwlW5jFN1rfmIk-y;X z8Tk=2x=Z%yf#LEzj7ye1*=GNDqcXPsd; z>WTQoph7V%(=2u?1<0{-a*;OX%Rh>JFAL_QgKt1UlYspDmp;rN8Y!y!R?h#!&CXW$ z)Kgk=|MXUCsHOhC2eA#IM@SD(07AO|<%?i1D>xY|U7&v)P=iynh|yTQ5mo}L%p5cG z$|}!1IA({-hGb$rF+6-z(aK_T9q%H~oQ-uWtyHIJYV%2li%w$mYmZ}WjgdwOv+wcx z@0Xt6TwAZlQhcA26F{mng(y#qJ-cFjA6)^NwW2J?FPlJYKKwte^a8Jv(AtKIA`r$F9Ztw|{s))#LH?eL_CVy+3__n~Y_hLW}Y{G zg~j`sB+$(a*U&v%L^>?oXhg5&;aIdp-Q6A)QDdk)r>w{y@;k_(M}me?9sj3bBIoJQW}z^k;KriD-`{AIRj$5*75t-c8s%&g``XH+~xc1 z{vGay#29!uvUaBQ>6l+l9gsol`}$gVbhysN8BvTQG)*~>q_7lO842Mw1w%I|pI(ad%{kiJh}-Y(&07ZN?ZakSae8B0i+d?tI~D zR$4|l^+<@f>*C9b7*m(?U=m^gr>{h>%i6??iCy(#HV)btY;YAZn8BiOjHbDj3B9BhL}dKwy!s_ph^pHX*4keG(Z) z*IJ$0U#SxhP!od3Fp|M;VB#8_|Yu%eG6N&HZ0&y#se!UW9BZPbYUc0_MzhArX%g~ytf9cSS6!X zxZF8;W+0DJrg`TGN7=FxsOt}G3o~KI0}oszw6Mk5Di9bkH9Ho`QQ^z;R!A!xA=o0w z+Z8y+V^8}!ImM_lx!Z;GDTyBxsQ7aLQZF8=qlet&Z=T5{RFFGq$m@S+;2x&nBg6*F zb<7oHo|wai-ueY&72tW%bs@%T18P}Aooa(oU!aZ$q@d>qfbp6f5sue7Yil6PMO!sF zgNP#4=c%!`tat4 z@SquqIJ`*O0$e%c6sb7l@ZdP>Y2uupAZ)j6B`!}I1PwJZh`zFqlXLKr5D{2_H|8Jhml!P!|EVF+9QPZ<_o+nd!-<0xh1pEaX`XN zLw0Xkih6jSCrZmcjI#$S2{TLbPyIZl3uIb?3@xz7in<4v2lX0dBymST^Ez%0uWSG&k9 z5k##AMnZpvS!(z?RXL+Mk_UYRRQk%SR8I3f(#yAb`5`A`;md)o?8xe%^BN^S*^z@3 z_@H#MeQupu)1Ot@a&O24spZIKv-6lOcs|HC_p8e_PNrG~$4_1Q9PF$t7*bIw)?C2U z(aw@hL&qMmJh=_5^e4R4Sca{#?Rb5Ep{}R_jmTNU0D8v3(v?(rv#1n#I>3WA1KYVG z2|uABxT_t^vq#b7lq-{Cqh3TLs);$p{OI;ZQaiw-+q?TpbmT~5!kmYn7%@Y-WSuL= zRv<$On|igoR&NQT8K%qGUw)Lm_(k8RS$K59c$>ttK&2ZF(3JX$7`%{;2gJkmC5L7e z>#OWJI#?c5D9iC;i_d8*ku^yQbWiU5x!5dapGdEuy*0vK8a2IUzF@l5f#>ve2$OB- zU*D$CF-&%}3TAw2Kb_1JBmEqSV=kwM*0{&@R1T`8M;2>nC2NAG6U18M0Z~Hl;B2o< zK!9D3>hm@)jLdVZ=a`D{s;qk0HBp`AqOMYS&g|je&2}9{mKLFBksxn?>6GZP7*UO; z_N(AaSBXr#q0O{fjmIisZbO3E$4&>`=u|j|c&J8``VwO!xgA<5TG`vxiUGa#QtE`#7LUnkap;qmf&(D9y#v}+8`VpfzYJT3z?N$Y1b`NLMQ2MeSB zQ(njuOl*+EsHx?#A`@`Nq^jPCEtxi3nsfsZ1YDN!NbcSi3*4tx$QLBsC#%SxoRt|v zw&{Xwx6EGgQ157jXB_-1HttOu*Sa2YtQJY%5Xl~VvzUYMmx;!pP|e(F@L0y?Sq7+P zYpq<7f6#!L8;>`$v@MkzFM4C~6A<$w2S(V#O=!<)sIl?efekCsKsb-^=!Gau_ID~-`Z>$~%a;zQe6S}FZfvM`&-a05E2 z53CrgJ%u~__;noe8cYZ+)`uqjkfjW6HKV>h0a^XDrulsS26Oa3VRs!%=G#h# z{Iwy-g8;&zTB}JW^PfZ}|57s5u}us7ySZ#x1}2Sc|^;m`P7I5Z=drizC?+ zDOUm>&j?3Ju8}d@{65?TMp&=Vh9LUI4xzEgOQAskx8m6dp_zcax>VN;-MXVja-pd# zsKn-A8%VB881=mg5OJD{Is2|F!_}W}dbf+tfQDR4@5Fh-DsR2_Y?VxhcxmS5i71Vy zv}>H>)6gbwYj0jzcB6>_e7fjpp|8YQf{=17zBo_LI%m$hfUha)Q4rnIrfs{&9vw?f zI>DCUG#tGCa?e9wq=KW|2}*S)+;Mvrm$mdds^p15=LXxLnFiS&=0aVTD|BTP=fU*% zH{2ZoM0>7Kh!c%ioj(L@AB0}rCAcAtQCBcKD&aeJDdEn3@u4P-bJcGNXIaJ}?m|hG;^fvnsIwmCT^2b2>=WJ6mI#o`%QQC^}?d+Q5WiPW2$c)m*7 z98Jv#wuMpH0t)0-1j}Td|3p1|le}ZMhN6_gKIc39WTAr*^zTsklMPMzT4VI?kjDo- z4oJG=ofkYzT;~~h9BVTBept>zRJY`VJTmg>mP|l>2*u2<4>XY~I_&Oa0u{$Z@X^Mv zFDa?L$d@J&*?ZUK_pW^tg$6@I= z!O25$355yGabnj6MkH2QSKQ=PdriQ2TKK*=D!=vQ07XRzM%cQ5W_HuRd$VKY( z+;hb`_jthiFI`m>hm#M4#AK>7ghXz#mcF-$z2`91Iqz01ms{m=l*==Gs?#x9)AbTb zxGG8!eO_VdQu_I%ap9G_S-n(MD!fx;i}98F1o5A1$KlVo6q}gLEuLK$3k<%}opUAd zk|ZrH+qqM*)VwaMb9CB{AiJuxOTJ>nlydxvNq4A*6I5Jzr@KEm-P%{sljiLVM(qrN zGi|_ZBhhJAn^9gS=pZB3RjkVe|JvZYN4PJT?MH=7_(Gx(ilXGIQtbfiC&N-EH2n4# zeJtXH`mFA|S@oCz>nIObd}QJB*c*$%2ziFB_T33hF~G2oD4IuMzR0(m z>qH71zHRQ-39Y=LYn$^#rt?lFcoyXmR5@N&2~*@~`}Bi1DT7wbR&1zEUOAaRivpLx zv{H9Q(PWHqN0;-mdJo)B@Al2`?2CZ=jq3>>!cmU%`n<4U&ic5)EXYfIi(U94(^;rK z{OyHMcX=0c8%g~l{J%A-Cv45M^Pj|%Ai{qeefy6V!W4<)<*Wmfz|81J^3&dQaqKF<9+qRYnbMG-kj$6_PxXQs|J*UHFKU6 za;gS20|aRa(e{YyeO4m}`2kKvLBgm>%mtVT4=klYd!@Q|et_+|EeXZrRd{TcsSIMwi1;X7D-0fUaGHBgD#iVdf7Uo8b4+@5wNkLD>v3~v(ReNnG?bUE%{P{*>^Wsx zQlqY#gsstKwDXTb$@Mc?wo3ugDKu@si2&R_|fkD&5ky zlmig#sB zo#9OCtpWF^GaLud`w1MqC;MGdZWsMgMg{L%b_xI^QUmiowD2JWk@A(5+EwN=g3nHCBA$OKlWGJ#R($ zH}_{(kGk$x2@3o%Y>5yX*p`-S8QluqZ1q`yp4uq)mqBgti;@y$2(r(4+d3lRAAjdR zgCm}lUtDN_ngN&K5|B+%E%H{5LM)v!hv6yRB`%3Ng4Vxrhi&MsOnI|s_5Kt@5WK+k zsapfeM-FKcM*KnMXhx9IPPL+C&hkY_7wSqTaX&f z;d0I4)gbbb9S!&+)n6u7&@oG2m6SbU4GOz_oT0c!yYIT949IhQ%wA+%K;0kaixPZ6 z$+Wv5(rz%t8O}lqCoCJ~pH6pm)keKhK?k8%bn7(0P~;-TVd7Q9)zk z`jDXEP$eyth-*d`izOF#32alN%T4?}kXR_Pz0K&rv*$$dtzBld_+pj+m}wy}?~|Iu zM@?DF-W14nP%CE=t3NPYbL?I{Q3x$ zzr*?nkAbg*J@|KWhEu$>$Zs&gz7pOvz`nQ<9UZ=uw`a7H`=r6`h<9w+9S8AJ48-}i zOVM$0kCnvC%#_RJso9j*ZdijUMrqNk9HYT0a+%H@6Mcr!Xl~wHQ$yw#we} zl)Ug+-+*2U+zr2npMFf9egp@?5YVpt8I~8kBt<9ezus3|*V1P><2R zz4B8jZ^Qy?)oH!{0+^;p?3CMDx}#SBK^~BBhmD#Y!roAZJ~8o^Sx8<8X@5+Z+p-lmt;l z7A*sbYGBa1z^KZHM-9s7(y;a+U+{fHo$QH3b=%V0SuCcxT#oPGFG2etoRNzdaf1We zp-d+$B`g0j{*~Kk#TLf&hTFB<+W$fbOyZ~jL;qJYh*W!%iRNjkvGJ=h5k`emq#z;|{G})m zRSyV00lK0~r|V113XRXL?sRIp|4H1*NWdkdGt;T}j*BCz7r}gREMQ(GOl# zSymq#$=g-7cMl>hUwa19(?|gxu$Iu=qKt-w?JrpDHOCC*u0Xp|wOEioQ+l*8gSDp2 zyJZocyjgx?ab8P(qNfn@gN4Vz@;>Pwp^vp?s;iTy%eB@%=s(3I(4eT zs1q-7&NSjR0d_+{5NekjTz3K%PkM7HWcQ`fT+47#ogUY#CfHtt^HkYWtX6$$FX6X( ze9YVR&xY^eX~h-~m$T6}H1sxxK68bMyx3)6Q6_rCF)I zM*%q72b;WN(B||Cc3WlD{bh$)k0i&HOVj}=6VxPC=#=yx z9BxEF_RJgmVYDRytG?z!HB2a5eU-tiN{YU&v>Y8h?%ElXIuhB@g`LD=NYYAxKGmuy zVk2jzjtyyRvU7Xs#8HHZ4>f`wPjg{5YiHeK%$aj#hf4KC_1X02lXT;t-yvtsg(F^@ zp-6;m>hic2iJh}pXU5pmuh7yxGI)mlgpl`}h!BE{h1pRNyl!fG8vwcl>*fT{`&{iV zkPPHp?OsHP5uQ?g{x0lGK?s+6)@V@(-)iNa3{K4+8~O@sR}2H}MX$`Db=trJj=7`g zuPY2d3|v}VOU%^2GH-4dr(_V7(Gqgz#8axTs|!wIaaZz;mNZoSR;EQF^K~Ng?d;B^ zw)Kvw@a1_mz2;2qnMRimTuoiJl&CwZL2a|Gy3a|k(}SN_-`1k&(S_7nw_Z+D>mx<9 z8zfJw7sTg-kLyAqT0rcCP(rK?jYUOO*0tO6?`he`Eb@&o@P|_E z3nqYRXJ4^-1xuwi*if*5ijqhvg{1>YUyEGRcHYU#h#(hrTn8))-4p|_`)ArL)v<7< zfW;*m$7d}OkhyaPb)fF?)`Sl**58p!m?SLkElVjp5Mh!C673DdVUBM(X|n{C3a(nN z-IZeZgc5>8)0~lfBavKe2i=0YQMTCKr2reVSj$Le3jf4ah5w0X2DL;#;m;x{%lW55 zt&>R~(6m9OQW4e8KWf|{vEP8X?N^&3bk>DHFN-jz4>DKtQ~l2RYFQog8S?KCqVUZK zy@F~cxes za%6xRpOQOOY(&Qk1&LMix7|0w#;>Dk7hE3aia5kr4wD@~wE9vC%+#yNq|k03^KA1> zJ<0{N8JW~7CLJkmJwt(WMwrChI)xqzU2zq^z9IfS8ie47&_fhj9dUC@_B&ZM0FzK9O8GE?n8ToeV;l~Xe zyC%uo#QH#Y?~V5R9@$~2e`jU6XZ&P$N+O|9`X?H}C0)=EF5*KLo-g;n$R`EoP!Jt1 zX?(D85hnAUue&g03g-hfrO#CwdWh>j1D{$bH4Zw2WJUz8#v8?cOKH64+bjc0Mlop-y_Ihq|CR1SiHUqcoW>F}a_o z*+;TR8xwKNL_f_Y8t-19ScaOD{I3}0P3txJi1KacJB)wJHzvRsiSSnMX@EkM;&jHd zfq!!{%1pt0(tDnI-d6XKRsZJ8H}n-7iX-vEOmv8B#$qSxocy@$^!VE3g=f)!9-j}= zsJ&6@o9biQ#gd{cb4O5DOj1{*6ae}@q)}(kwdSbM>oNnKZfZbro%8s0vK{iut#o&Z z5&fEVKlf*=bBtuFr$?rzXJuf;!YmQiM}9r)UEu$Ix3^s}bNnaIBlhz*M)&__^8V*{ z-{n7a1T#}J)Bi$ANRFTQPlHUzx70#O^qh4U0~mV0`m7+PJsO9QP`G_kM-Hhoy5ZdvTN={BgUQc?2(=R-@=HK({x zB`59mMZ==Q2RK30D+!08@vtCjC0ysXkH1l)xIS9HUAo*a z^S_bWpztrh%gwhzE%E9gAaEV@-Ld!T$?08smydH(s{$Lbmy3ga zgQUZUF6y7~X1Liy40s$Tf%344K10wt&z~5Bkz<%8RGGJ1x(iRrFw%MDp}tFaCuGF^ z^T_$KidntMvr%1oCJ~Q$evWN_vb``+97TURR16;Qp}rcs&P|0G_4TiNT`6>27&#I{ zmbcz;w>;Q_GEEbOGj376ziHJD`wmX2Fph>|fqOn|)ZHU|Rkv>N!SW z+kYRjU%19aFVB6W_B|_&YRj1)|4T{J zF-~6R2+q%MHuHZklR5nVlmDMGS+^Io&*D<^_w&b9Hd~@;1DvU3fDs$1(J0!W@hWk> z5i&6py{Tjfk|eW{d4V4WN7eH3Pn-8%fOL8J^71%|P-OG+O2Jaia?kot#n!q;r>0IW zKkUfObbIf%EIHE2{r$Jk*Xx1DRrj&|ah7+Bcj7T*&nKE6_Cp!r#!U_)Qy0U|pAR_x zxOD+=yvIVk(W0k(Ki|_&No!D$7?xj9zkpMK$OJoWG7Wt{4v1Uxc(2ys6>yW9x$5J4ywE2|@A`|smZwRB zCB4=8i+i8K2_(;9Ax1y4H0}d_MW_0snof!eWJ?|LB3;Y4pfE_FPZFznl}SUTUF1{w zPL6s9WKkPt_??27L#0s}rua32slvVl(X#MFPM6>SyZCh7>IzI1zG}H5EJ@q>$JNa$ zL|WG8rYL4hp6d3~p(`>}W>M@Ug5U(5m^F+$GgRNqOPA*`TvXr9S_`B`gU}<@iT7y( zW5Q@s7!v!FYA|=EwdyzY}dBDb-GJQ^x_+PSe~#kt!yF#m1g*%{zTi9?y0`%moKjh!q;+hwxL=_Q;sQrtRbTW*Yz zD)J>F$J(FUM@s0Z<1U6xU&RF5Rl{zWOzB`sbQ(*kn7m21o4837b^orjnLCoyv8d=h zIrvi5;P;?g%ZYL)UpGFz<(ebH61L9>eux9mj?jwlNm)n=c}bG9d+(2=OuG9LH`;|A z2!-bdMiA4{*-35j&F65ZKeUK&8i~@A%#UKqapP70h_SBZ`=_2H^7``x_zeoxJZsDR zZbG~SYjd+HaVnIuq$JsN@qmfhU2yEdRB@EdRIv^~U1qy3whUBf`lv`9z4qU3mksWX zgnMY4@$aS66~tN*bDS0J3#~|Fe7*Xs>69P1_(_(OjiwpKu(qavGwwQf;Y247yZC-| zeDr11m_rzw#QKWpp545AoHKcgE>1yanq>CoCb_gLv6D#4t`VJhV0rc$ioRNxCu;tI zYg4#s)=xdVEFnOosgbQcT?v}&engWwfq$yX)SMr{mmz~YR7e<;S<+>EpO$DLQ&}OWF{hUuqf~ZmGq8F%<%@bWvJUidhdl=2;s%<2 zkW|HheiJiuxxDBYb!I;+qEyDVyfNACC&GS~I0p#wOy5V=cAm7Bf%w#q7ov?}^Y9Sm zNv!PT;U>Ptch{J8g%>izUQ|Ak$f~JL{1?BE(-pW>HB};Ts2S2h>y5u;hFhH9#niHF zzG@{CS$ZQpm09?6UAW1!Y@ViF6>9F@ypZD=>^Q2t!{PoUn_)D;$1?6NCgABNr$TM` zAnvyezr#gNOL3wVJyGM?!;@3SpA!GOjOjllm&Z$UVBuM`0!Mw)TJ*4w;KIXbVZNO% zYvQh#p{&gvGO`AHHs?I-|Ke@@P*l6~5NEJRykf>VSU<_qU)f1(dIj)Y7(w3_c12fu zy6EuKo?S*rFxW)8vFJxyGm;;=9~#aF0d6d=GB!4^+6=zWG(EbwtTV;+ONwQY`4D#8 zeHi?*+lc)xSCRWjUc`ZNlaG!aSv+P_fb0{FEWkbp9Kh;itTmw9l>5xuc>QdOpQwO2 z_Fxe0;Oj;&pmuQjb?FRS{cyp2wEG@GYJM8SId*-*^~}V($D>@wS7#@p44O8=8zgzP zmzUQjePd0~GgY*-Y?@Ri8P=6s!q=$I!!9T{u;^@JhWG#JNg=vHP>SmX#gFK3kYrb@ za5dCfV!Ahqip4u?z(XIK0k4ZY0UHaLVe6-RCk&Zlz@f5hRZxhH0`bS{teQZcFsBge z$!~x*1-jo^Ve!kwJwOrM)p_Gvs1l!py3_Up~z~0>82TL(0QF zWdZI8=f~~K1O)1BT76ji@l$|gIL&|Q@q|2w2eRCDl}$B*^mp~ zpXaxL?9ts`LF{37#I#;90aSjeX0PujUqF0*G^>;vJjeyKW;$l!mJLzEipygG7P!)3 zXH9M?WKmjJQ_!>gcu=z%rv6gj$2(-DbpnD0#gL$jBs(@B1SmIkezh!p25F{VK?J6W zy10=J|F9zM;CE^VMmHLC{B0idR>D0*MVn+R&x7Kanx0wLQSuySIo8H<5}*f87AQ=VC&xS1?hg|r=Q-g-Sjxg*jiFrrM$-qTNof}Q0f&*8RoY!fhZX2Fsa4jxtwxUt zBTH3+nDC=U{Ut5aiM8d&aDVy;MJm$In*A6$osPzTYq4&%ScR7DcqKkd0z6!EUGk-z zOO>)fbA&;)3TiBQ>2a>?WN6;Ql1AXBFu1Ze@uX-ul(H_3KEo@LQ&LN_$Q(+I+^MZl zx*T6`Fv+ox_pp`U&M_IZwlobidQF!U<<|Q96SeNdNPXEFODR<01{FUUDMkKfqW4d6?8^4%n@ls1)+WGgfrR;n`vg%6H7azeN9WEU~Co{RF$ zj^XR+%JM`L&tQwIq!A;I28pw1Ik&SpW5y!1FHZoyKN8Upk!Ou}fjJOn#@a+0UryHQ z%Cy;ASQW5Qg|Y=n+*jj0HO6Wj3KSij+M)fQKeIH39uX{%fC{UZXPCS za2+nmdq%71pC_$w9om<6ZBYqaCUI~cM$5lqmv)U&37jWop=Km3;Hqq$?Ql`Mq$BRR z-bHTqfGURW8pjx_sp5gCB|SJ-H(*u}S0M^%oanbv^P)rU@(0*bz3rU(tIKuYtgo)2 zqwC&!vJ(dMVrse5XxeaqqMsw&flLqa>e8K%Yc&SZEY&1*{d&3`(0w5847DNB$O)d> zEKA#r#7j?~3VYH&fT8O*lxWU$Y8P@q{dT5P5EK+l0n$)urXYQQ$gJo_C%T3Y{u|2| zGca?%`6v3A_+Xjty}m*Ck=V3V$5o}dmiS0O&IjrHMFpjGb-0AuO1Vt>|oILe8!R zHL__qQ3Yl(kx|Pc)CIq+fZyD!#Y2A7#2{AV71GF2?D-%7dp;EU6}6q<&bb=V;;w8| zGZgL06acn>{e^`i;EyOEhTt0`JpD2N2=~?>vHgH>1At@hsJZUIw`2-5kbi|gzS%8L z_BJB)gudVM_e3DxAjRy3iUQ(U^(h#(V;dZkoW}}4#!KRp6bj3dq{|{k6yc*wy{Jo@ zRi)0YVA$qVBj#z(@)T~04cSXK*jy>-io7kEEPUNu{iX{C7X=w+UmtMvBpnupABgm< zsjM5w=fr)&+gHH^k_#XV%wc{TBd!K^9wcYkcr^Y_EdMvyol^d9qNP^Wj^WA#nzTID zvpt~tl&AwD>u6x=LsYZ7)-SZZ11YP0Ao8>8pdAWN0$rEDXDJYJERX=P2V!DSCD!E` z8bAi%E+r%x!fq*Qt`e6nUyX7v`aDW<_Pxz6vsL%wht03WVu+qDaGu2UAB$Q?Olpyz zRwJ=i(9EN&wQ!$!ho{X1U})ONe;!vTcWhJV{gSv$p>~KS}_eNygwP9g45KwD^Cr6e#}Cn&{sjf>8YJ(?$C_sg#O zP?(2#i&47&4OM^)?1LKHpiQuovgm`yI6ctXb}7bE@WP>_O>IbrlKeCWFkNH&fWtjd z|LY=Pc%Ra)pD|pCX9{^`B!53UTG^JijfXd|UzLq&36itZuKmDdrmFkSo(W%{WxiL( zR8h}54909GYfA5|2g(`v`T@m8z$^7x_mbJaq|F@?VdD5`k_5Ru2l2Y7ghup>T^e6H~XL1|m>+FRmwYNAnJ&h_<*C^@~itw&+ z^2!Bj7V$MNSAwY9kN6E)`ec-{FxQZ`+cF5Rj>9Pp-INHkX}URY?vvyFnf!@6n_ zZ0s#$oWhadcJWa6wFpVTL~BWil{VLw=B_GYOgwhYnoL=}6QDnB%Jy2$PYc^lF0eFk z^oxj@;zHf1)zCXefcvDOGJY!aJ44|a-TY83=#(w0a79Vp!4T&Yxbd`CQO4nR`j0u^ zCoJ&;yY`7gNOiI7jjilJZ{|YPFjnG8n`Umq?eAr1j*X21dXht{NB;IFmhYAoJb zpF&%ScsWAmz)!3}X;QeTIt}MAs77wsHCEH(<9VJx^J`qGhx`}pT;xD)yDdI{>p!q{ z4!CvNLjUcB5_&{}Y#D<&Fx`E34d0j3RrTHhdurhzFJo*G&-|^iyieRRgRE0lqYhEv zi@B!>6zhMDPVQH-hal?*4k^Y6oD(7(Y{<)-L4d#|^Dl!_=ZjHGa8ZRgUT>}%H>}o! zRfE9XXf7DvQSMaN#?BgPHXQUxC%6FMRaQ1vq$r{~hd%Hpb|nRE$|V=`+P2Pj>NRal z`F>9+WB0ROqo!WB;J`m!Q*o8QnuD*|5Yn@qW>k^^k{fv?O8T4i@m#W{ToY^BZ=5Hw@}0VOv*lE+48Ehrfm*sT|^E*qLmPpkaJq z@i*1~Z6r5rQj57=CY9YYHL6ex*HTBft{N+AF3FqDh)GswTh?)zHC`%M&4<8mvP-hK%p*RRu4r(dlRc-dXj!+aaigPas3|pDhHr|PfUVBt#D2?Cs>{CU zyBfkCvFTh3#pG=Ez_ySGp>_{rNc$-aYub^RmvOUof8tbcNphYS%OZ$yKB^!6hF&>P zzSogQAD-DBKi!*&Vrb8P_qF#42ZS`n|IUKGNn<_X`Iu1h>mFr_O8Mmo_xgF^|Gw6M zth4esNJKEmwfkw<|vl#J0pEjF!L$u{q9B4+~AlL$uW`mzOT->Hh(V3Vn)us0vKcnK23LE7Og1- z-1+(JGRckBwrI;EU6MAWV~JZ_ay{mKH9zgnQ~NTiWnIq{j3-uQb?L0>Z%m!4QZ1_9 zR0JS1&IPU`<;fw2seC4z^1kWjZ$rHF_1?_Bn))TYMq`C$=w4>Xp6#c3!rS(G2Ld4< zFVtA4gm|jH)P>_`@|k44Wz!+)ci%yc%y#)5UG+n-X>7IfzIGpGNO>OHmlh1_cM-5H$?kKfo2S@+M zi1;zulB$@;euRhx&JIZ+Rod(|@{90V{e4M_An=es%pb>&Kp$Z)P%(au@==J{ATsdFcFEMK%mUTh;ZV;6pb!B~6bD=V+FN%-!t zQy6>R`VEz=o)Wg*_+T$KBGZG8_gBz~JO{hbw!C_ehp=k9(Y$-C9MrZsre6GanB8X2CU=Y;-d>GT&_C&2h{FN8aXZq^h}Ryh z;g*ShZqJ?B00EZ+eU;Z{hUdiWCO9A`cU@6U#EQ_@Vf79)wiY zR^j6XAoC0_&3jy-#nn<)`S23Reodcq`JR}Duhd-$9u5@Vy?m*Jfv}+vp^u2FMV(fl z-7jL7X_(<{kNzqcF;2vZWoJX)SWLI#sj-0n%&y-`zBtuqOURy11&Xga>VY89BFo}V zpxase7Kk<#X&Z{a@C{tq0!E9Vlw)pv5Z&!gkryY}0r!+T!#ZK|Ruo%mJhsVZhh}f~Xw!{OS%dc!sqfi0 z;~1!5<|$P7FIdy{%v>HXiM=FuVAWR2+(0e`36w_zG{l(l*b@!h6!RnIu$IJ+}+%?B?4uyQAZ4Fc6nA&#rLlimMC`~w40*%;{Huk z99r6t1mAkCucVO7&SRu#}b?*NX(-=!NQ+4I#y=FW12lxxw16T2Mg}%_nbke9@?81L{L8L4G4dJ}wvfQw#*$xU+TOZFq`H6b@|uJ}_`Fh(Be{L@e4w=gft=$+vL@Y>uJmFNZ!v5XepfRJ+O$_f-l< zj}0dKe3gi@@U{ zM7aG23wK%VK!GQSd~JLqR8o_mLj2LlWEJ=BA)o8wP_$~e&vLc$txjqKgv^*q zD(QD(HoSJJs!dMSdmYyW-(UHj22w-~mz$R_`&XX8?n4X<84c@+x;5pZq0Ej-y%bN? zW4*H}dL89X&P?0GB963mr*pJrfy(tm)(w{T^-F#Zl>_Fepv@4}^QHs09}2D0S%^3W zYhqcY-W6K-1bjGtASpqA*0+GGJAwj5Xe69+D8X(yMw3gZAa{esQR5Q7+NHv&sXFJx zvedk?iz_n{LJ_Kt!`~H9jlTxjc4bKfM~)RDl?z>qad_kGLELR?!gjw@9R2eHU`=7@ z8C4zK8`&Cbm#!8lU>=jk)B8m!4=U?2@1FCmk0=EW6ikj-)!w}!zC4u)L}&6MD-Fa_ z&V*XtaGaM`n1p|W7N6;)6(JZRP+&HnA(g6yBAe*8z7fAH0vRYt+~j#- zAeJBBhIs+URuJy`y-|5B&D<7wK?|t&4qPuz0Cc*A6?+T)ypn$|2CLF%&QYbnJoO`H zhhX=h)A{vc#g~xYnO=wPC&zE;Zi$uh=Tnw5(6_8NihngRbD$NuJ^2tPzaUdBnhK7a zLiOkM-=d%9aJeJDDqK$S@ryj%`08?_%r zY4T^9+)td(A^65R#5A;9PpQul_=YJ@U7F`R{U7;seTcT4eA>MY54HF}A)mbbcgE_bM;p3?JaP&^Q4FCL%T|L*D0b(rOG zQ#B}WJ=J^T{$1T8cfIU!qHym02v2U_9Z5X7o0*iol)4LY-2Xy5y<_+79U;=U2rD1tFn_R3Vp%%NBf}v79DBP6P`?s8!4pW%`KHjXVk-)7Xdjh7|ZWB=U!M%i%}DEumunJxI#m z+`444bYI1UgO`BVGygb&aU0dkjY~oG+PromTX@4puxGIShwQ*KYpK=fb+BurCN!Lq)G*a*f!Y zsN*8($awkLpDASJV;-Myt71vRzSJIK`jdy5nJV-v>GGZvV-d`z1^SPV$DP;PpHe-= z1O&_8I4~VnNBC3YCYmzk#d2=paOS+0XPBpudDug;MM@mk09Wo7rP9fdU1a`Lr%Bpr z6S93~+W2qgsQ&^h)#W-mmHZil+z(oU_`e&)52fY5fc_Kh98iRQaHX&kh&7?ARf^5k zFFt~F&CS}dx8SODA&Wu8)^BHim!4CeD_Nn*4#gv-KY`2}5p0WRDCB@Cvc|?nmix@? z?Dx;(Q3jy%GEzry4K~ZRl3i|l(zrf3B6};wILv~){4jL%R<$bTA^e5rw~}FO&1|FT zQ8?KGoYz2VI==QuD7}s6H{Vo&mc!%`VU5^HkCKRl z7`DwhCx~-ucGu0}k{GQM?u1#j%>^d|&6c|IJ^vUxBpIFEtWeB0tNC0d0>v9l7@N!rRa zN{nZ&5eIme+@`Vf9f~htPw?@=w=@L?d1&efIPa7sGYPUHMC}mCzIkZuam60eiDZ}~ z`*=sd<=GM;4X|`F+M;(DAzi5r1x{O0J98ECyLQM9nE!jh^rvq^162ae*Sv8o$kbDcwA^oXeVv_QS+ltbJURo2 zts_7h4qV$!3PW?#d|^toZ{`#A6Z}(~52nS7*Y}FyB=)qtn&Wib#=l=her$_5uc+$b5UXJN_=fEkY_Sb6JFD z1tli4bMJjQ=9G09O{8ruoTvv@{vWa@1fQC;#)-;EdPkvO;BxL5sSc@Lq{V z^Jc^$&-}Gt$EqXcOj~>V^mg&iG-9;Gys`_jEllEOVM+-Fh4Y9YsLoY_#d zcJ)h*V+bYqg}2W?jD?iCqLBw_e;}=L>i~U~HuAYL8#c87cW=Cq-JCm_fhW4%*P@a? zLYhmE991FI!ffmlPTA}2JIx;zeCL1Xjl0>hQbh4e{BhG*7(+Zkp-Hi0@a7HM|4jBN zMPa=NLJX_M*(|NN6nE6E*lqX8Z89@P6!~vx?oi^k1xEOb`6wvE(HgDw!T2)XkYK=V zf=8QQ@X1|WQ2WFSoBl|T?#FxI*I;Y~-bGytc?lvzoF*C0Z`T)!GkfKraa}aP8Tfh) zN$m#PA7>?c=qjgX8FCArqDB6y8TQr<-W?16l`R`}Qh`E)*~KlG?m==U`{nb}LV81W z3rp#;#fZ72+jSW(Pc4dCrsEyXA=@L*(g{&+O7)u<;StKqcPXU_dn8@~gAeX*md<6S zR?hZkG9s$mN{5jB2ewxD6b@S1K;kS4eNTC2BRNEIp1{AYC>ug|Sb_*D8%M38RcIZd z@luUuy$OVX2~iSkS>i%a{Tlemqv9W>I23Y>O;shyciyv*gY_xY%n>!pCeR1Q5LQa{ zYLq2hXz$VTF`*cuFY_HRSg>ZIJ0zWlY>Z}2`ph}U?x5wOx0|39|gG0M_x+ZK%s+h&Gs+qP}n zwrw-Rwr$&v$gpkai#q$+eqjhKW0v9;=O4Vk$9zoZCSB3*nE&|w{R@GNkmBFKVa{^el7Qdj!TT5O78NPU z8K@7flm`N|+{oNX;QkMBk@(!v?aN_pbyeOU6%hnsCtwc+`J5G0C=U*%SL}|{ZH~M> z+dKePhJ?|^l}5RS%rG#*K*T`Cpw>SH`r_C)^~A2m!l9orT8&-9I3B=o1-pq!w{IWn zk3p(Wq9Mo|Kf2Lfg?=jYf;HU;=rAg26m--%VvWu^dN{B-VO}1EuRI6#(FEFG1xJ&~ zHdrO6nZGaOUNaXtj1I}36WS9(SEhfHL=gl#BZ;F!AO4xdD36HfRoq*WVl+ufjaGmD zil}EJUt00$W76+?16sqen(ubfAg~sf=5GPsQWR61l5-WJDrivh1oRZnFYYO6&+5>Q z?x5X?jo0(HfXynGM%5(ChfU;gBoR(gLx~^R+g#35wD-8g_`qio7ulJHtHX^<%~uWn zN33t!@`Tg*K7Oh1c>gae{zCdr#v-;3*7|>=Ws8=dkO8De=00Q|@XIfF=>^Lr0n9ht zw2+Dl3I1U?SW7EcYm`QBEay7`LqhYtT{i9pWut^>J-_WJYdhop@VWm8(~HndJy>UC zur?S0f>c4mK(frF#agScmx%8|z>Sf`Pzbez>$?*((N(Pom-Ns+G6X7kuxSewqNMDx zXR&Gv={%81^Zmft+PCy2FMgq6KwKU8;p<*l3rxkHX-$ zR2VZW7%x>wdQt)fc*f9q+VPjcHUC@@JZK4_t8Yi1SIT`uW?mRWesFz3x`xsA44~f- ztz(>A_4wb4o^c%#o{taTm z`kR@RLn@ zZ&^eaAt2x_Tt9g}e?wBepSxG?EB<`EVERqDu|@z((DRJTvy~3k;+7a+@uYJS&NohO z>BfTHW#uyf&Fal86N%!2>^+U~J&4Hkr(_~ucMB^`Vl zL+|!0F?b=!LCrLU=E53Cy)pjbJ>7dR-|6Q_zZq47{!;E=LyqnV7Xz&pQ>6!s0_jr5 zYnwdbqK=wgfOWP*S;|(!O_a zXYOC9GCL+6F%J? zD4>?A3C#*sUapL$WU9M=3O z%#_ld7KZZ#dz#ayy^g*!%8(DGEn0m_lF#aRPPy2y!800Ev*rTioYh)-B4MR7+-&X% zs@H)0$oQt`Y{nhMNLp=n{3*G4mQe`_<$DrT7yTi%ywY4mMk|* zydfHPyBam00J|*;$-HQ`LNy(}Ui)dGuqv^o@<&yqNord(uHHi z8A_m3X|2A>+V=4aDgYGWn&Nd{JJ&R;xw#6P=wLV;&Q(@7q3Nb`m9&fMg8=dxSBqaL z;lb-Zr)S0u?MNsr)c)F(bk;o%_7iQ&JcYIq(1PK*s+P*pO~34U9N5yN!j); z&`W8U33QqtmC(qPRDs?uJ`yyViUc^=*cX{D2Z$^QK&0=D{Db7}pOc1mbKX(}jhTt8 zDoAtBuQAgZu5J?_GLx>q+;Gr07d)-pf`r+6Jb~Kol(sXTG#i=Q7B!B|YO{Z1oxA@Q zflnMSQ6jZ27G){IT}!~W?IkI6@9-6x@lLwVtQ+#}0kJG5YI=NKoaEqqOMfy$CeekdS;!;dtZ_y<t}?{$1e+ab1|CD`7nTl!m0{*~IWKRJ=66X8fn4pB0}g}F5arDch6|Sn?LCQ_Sn4q=7!ZE|xj|U6r&Y||?M;}8 z;goDL?N()vj3-fzU$2oGsTe??pt}}?&*&!Z+m2qeeCR%KGVML91wPM)@X}55-l4xD z6}&@DoYlM#eGMD#UX$(Mxq<&#Y+D5jWPymj2#HueMaJlW|y}o`>1GA8iLfmZdY! zKl{usU70FlItc>v0CNVs&-KU5z0ht7&pj(Tz`uhh5dZ0mKaEw;x^%&~7V)ha=4=TU?(Yk&-|XuUD1xhMr+BChv@9OW# zx(I<0`=_RuYP>J!U!?U(-+A!ArCG)%`p#BP|3SW}nj1Np{coD3AT7J`on~dO(nA#U zy^u6Q98Mhg}Bcac{pISZ>fo0 zu?SThs<=&D2i0Q-XD_&DliS8SrS@^`)#oq4m@1!|ehFo_jy(tEXTJT}UJv)()l6%- z#erh6qFP7iTNeQhL`|`xG7Q%LQuGeVDxX{9Kq>$7y*EJyyS{{eY-p-rv@ou%?@;|x zuJTM?@75RzWr9g`{_~n^ZL(2nPsmy}X5ZEiZ;l4!P85bq z%Z&}0N0=(&E>I60^~qE8Bf{s)bAx*F6QXyGHJbCnYz>v~EVzLcxuc!L@^(zSAd;%5 zsjESn0UbUe9Wz8CB>tiGFh@f#7*;ZOy@m@~?ZDEf7)R`^F+jU-A z{0HvB?Z*-V;J3X|zI#lR|B@O0$L0#Qu42aKre=SyfD*QB5c!cu{tVD)=SphI*GW_< zR|YFf=7;~Lj~CdImP2ZvFMKpn3o)jwH_{&5eudO|L$x5nH2lUpjk}rjl3>zyvgkp%m~ZF23@wEDv!5hqDg^)tka3=eWiA*oZLw_5E% zRx?!oNfjU%<5{YcoKhHnFe+#EbUMR@6<<-P>i*m@AF$?GYdW76+(@Q<7KOXaqWn}& zxX$9GU=LJ#A*dJjB_jxN_ds{WR)I6*r?pJV`Yczp(U0bFi1_*e1JOnx4AE9}*I0T7 zJc77pnDm-tc_6Ea*T+MskMUap$xKBba7!co=PSSVSo{>B_!H<4oB3Q#wwMjIVVt|4 zm6!oYY!IbnvU0`wii^~F6Uef8)+c9`X5IpKIH;rM>ka2`nJqNI?NW)lbfll2O_77g zCy2GeFC0TGD!XJ4$ckBcGo?N$1qS@&y00LAuhOJ`G}iz1e1v|x)6ai%B`YWW|L#;e z%YUmf{H5_`v*x0miyQ%2>W63bt_R}2phu-iSa-`W>AqvW4$EP5nqVApSChm?H~iPA zVwiEGm>-F8tc&q@)AOp!(f5BukU#?fZFZZ%(4au1^yV^%;au%jhPcrt0A*w`$>Y{) zprp(T5Y3%7Z70lffrZHEZnd79)(ni`Ro0z0>|+<56rYzi`s784sn^28k}~X7MXb}! z-f{h7UQ1iMJH}E`e(6}Fd*9Tk|7m;vhfeO9CXEk ziK}+at5mpApWfziCDW*QRql1e;lX*iweAwe21JJP;Oa~3?fy{)L8VUb_l&B&giY56 zN;GVCcA4C3tDUpzYIOV~T>GkU183x0#ud`<#&^0x!J!iFHv{2{87=ZTN%j?q74-g? zErB(m6*ZA;?8YYGvCmazib`T$^0F?R0!F4fgI^t2R;^8-NqyvdK)dTDJy2pUX=nCJ z&LMkDmOfM(IeaqFl)(hu|AA$KK#PfRya16ljq=2_94)EaFYz-Z>rr?3PKTmF_>{G* zl2;0S3^JuIp7qZ^q*#Tdo@rr$>t)=IW))(LnbWXVNW{Y0FfdM2OkrFXi;|;hZA}*F1OKrcN&_JII7l*N) z532PDzOVXe-*5&SZ#-w zd6dV98AuYD81*?#Nr^_RUao&PyMDr1yA%G2Yg8C(OG$Wcp%Z_VACGmriwPyoN@+2_ zC8^Tjm1NgW-+cjdcHUnQauTT=lKh&*9n)zuPcfY;w({WM;bUbiH$Z|#S&);m)ne36 zRyq04KUndZT%|LKzTITt`}>#frttsKB>qn(;VdWlSHtG3Ib0fZL1n+b)>Nu=f$C5k z*g%e;M;POt4nzyypi_^4pr3SC5Fs9#F@s|-9LVCKp$PagoL6^bJK;)?z>5q1oyKbB zaCiiNc;d@$1lO+LM@p&~=e{rccSDnSo-oHjp=0~-N1!uqY+|*U_)?yVSf-%Q2n^M# z+F(L7ITJeOpGRXgWhGD@_?qRhbT6eQJ`+McYxAbr^fntj|J z`!y$&9{Wx?-M5xUq1-6yB-Pe1p$7=C4co;!gZ-Ra!=gqqb zVa`RjlUlWI`RlqvD-%&tFP$o7`ICNHXusY`dGN1plcudOaG=KT$c=S#5U3sV^F9=^ zAVegFJE(GjBMniZ)+G%gr$AW#al)^(5Utd%m7ZZ!3W;_!Y`S$Ck)}SbKWbfi3qLpQ$FAz$;q=99AN6Ys0V}NgucE1JZ?mi^w_Osj1~J?P85TP;xOl^1-BP zkcG7+e^ky)_!{qnd#p&`a!+X))xcOs`3LC##yS1(DZO*j<=okKe6##M^M85z{^!iU zn~?gl&Q5mDPXF<2?O0h!AbR*AT?<#kKc!1gdqek62Dz%X`TYU4!2xKprwJ)kb>tmu z&A+Dp60sznwvrzQ?VtQed)B%8ynhAJ3ke@=8jR*^q_w6~N_-wU&E)&@8kcEZ>!TUTLc#yjR=auH0T#vO}Y6Iip_?Uh?s|P?MCLRcn&o-L z{+x5o`MWK%NB8p)uveIhDa+vSr>#=PcQ>1)ou%@st{>Qt9a z$+4tJVOPWYmZMiFD+s}PCBxoW%q1tBY;mXt_e^3no>FPq|c z>*lfJhlKrcV;Jq0OdOGrly>Tl1{2Si_0Yc3p2OO^#reR%>5J~;7l-CkE2~KrSg*0S zON}aAC-*=Qt+pPo&U7EoLmf-aw}`{yhtycGXfOY&Xxs$@Wsg1x3)TC}<)`mwgeZku z;qc&8QTmdKofFnoykiS?8hr3hnOgAZl7R8n#T`V7V7ty+lU!Ym*0B(Ft2st!d4hxn zywGARXC(nDCO?fGe|{3^JX^=KH;Um}zrPW5O+rm}0-iCC{O{fyT$5A_Nw`ffgPCqSeR6{_wx^zA+XP=2i|0 zM-LXQnNznYQ%3YWoWm>n{j+m&RNufCr1*S$@PagMp~e?51IMA;<1)d)z@f!4UFRzL zb#kJI7VAC2M{T5ML`q!|SXDb*Rry}#dZ0E7U?X~1Gujdi)6olU4}>>twb2uvXN2kk zqBt^RUxD@)&iplz#_UTj{zbR(th`&rH?44-Df28TJKDkUx^wYp#-cAAc=zzA)~S+W z9l@|i=P+h3P~H?|XjQ;Dmz<{!Xua~Vy$V9Q0eq>X{$DF}fOtCtwKpvL<)`AP(f6iC zBUqGL(uc7%$UXar)}47r@HGGxN_V*U76)p)`P)XiUE<|cJ4vZF%vzNMEX-;4aTPkO9<^^G~7)ctACoc2RV zNB`Tj2!HMpdMi~9691VD3cLD*{I#=m`F+#>rE&1rEqD0dSd!7V{(Br!@RnWBga5gFS)&B^g@*&6?wEAZf7>q)uA=^VK(gWLPMw%lqwh|JAcKQJd4mzw` z4;YK7JjYNq9XfTyRH=CHa|w=>Jd2J9;@uvmm{74KSjEZi-yQ*V`@SC2h*(;qlb0)>#{jc~3!KsT9RU6m&j&e&OR zl_Mm;6dbm4DrK%g3vAq|ILVgGYWZ|Xjl|S|yl}T(%P}-h|Fq!+~Q7E=~r9V3Zkq$IJ(Jy0IiLTiT2+o9XKZ zz^e(m%f>l;avRqi8%yc7XRV3ad#6y=cvtfjYIM8T1%}YuAjo;Gw$98-d=W_0TmG}s2{qe7;wAjQX@eP9P9&r>Ne{aFuIH4QlJft9~aR>suPe1tth#;|P{$8e2;iv@w zL?evrV8U=pKVPf@hDNvp@yAFn5;}ekU6k&hcPIj_gp$#CbL9l0Zz<0i1W@?VmJ!(8 z!b&l)+blU0>9xg10?|Lm>;$K05zI%)rC;g%RC8(kLC!1@%()7_ekE2#A*RsBqEO`p zFjwvoi^Fnm04;{%l%yiHO4v!Zis-JJlJA@LeEoxB?-A#ak>cA?%f21;UqqVzkE1I7 zUjacPH6`)?gz)GDU&{qP^pTzwqtB+rD(B@k8xB)VOL!oH7sGmj1^wJiGtu-gvvn=) zb}9^Uj&~cSRV;WF;6FDYFZqMV)#7D8&33N3pSfgnu8$pFU(es+09@@EW0|Ut=t32%hjA#3I#aEtVrDl!@K}{Hp-eurL-c?fZ_ciJycwM+i*9qq6r0-Qi`L~{| zr)y^&xVl-nuI~IGwIh-=d}bUtRd&L>v6Tu0NsZ)SpT_tZxnsdL7P$_Ptr|fIS600TD(WyA0nPVdaLInGY3TvD`f|a$$|*1J@DZOY!Zb99j4e53y|02 zmpIp(WDEeQvz$1eWQCo(FW~}lf7=V$ywb+Ff-aX8>EklPU>GqU3?_-P1ab&|{)xjt z6~-E9>VzAPyz+Y{cms#&YrDOMRV%5GSRkfg3j47)He{(&O~42TTPh znoO_oc7`6&%@XpKyhpB;+a{&$|E~1v*UnwIN~kqRf=X5{yFEf6{BsHMm9C5?UP4@% zggA@Vklh8=oYsN)6I1!2_uQ5$uj^k#{h)0bgxZ_TozMC z-lCO2UPY`zEIFc4r5NCsfnPE3OH^ew(e|xKa(V;sl+3&-M8+qWMs_#MEWrdfgPVAX zZK5+67F+N4z>K?d2z7fZm!+h13S*IJF+hdtn}WF0pP8eymHSPxOcmkv_uo^X5f)0q z&2Iu=b|?S%Z&k{gQc9}G+O9{_TIe+SWZ(fR2=*cT@|NaM5|nI7 z=3rJJC`E8IjA*TN(>vLb0kJ%YiQV%|w*}(T8>?S8^6#@0X3Wxmq%wWd9~yeRi+)+J zr!_idGo~Vtqbx85aUa*stXtM}&9v$Md3;3!Xx=UI61sH*sJICVQ3Jp^f$ojuekB`8 z#LPjY^b9^lEan7&c@G-!(T4?JQ1lCABa*V^as7pQgi&{E1u&B*D+NP;iDtUrPsEgl z35x9I*;uj(|YESJor zXmYx4;Inwk`hm1f0b6n;`oL$Pd2mx(iRvpc?+h9ObBSS;e#2qXH@3fW653JI7cS~# z0vHAO`bTSq#x0+Is^Oq0N0hv{JS6)l0|GhO-2@g>wi$(f4CM_-!5sV;7=vNK=jlUO zvV*jskr#f05O#dMXRL#f^M@80G^FRn+z9 zQcz>QU&+}tMS_{erq~M3+=J<9^sYs6h!MpM#g}Q}RG{~>jBAr{C9x4pe5xLkF`3pW zr4nm^XI7|fX0=YxhC(A8L?~3cx#p!QF#}={sbMkiwJB4MwtMGpz_Dj$2*t{2&SK~2 zLkRTi#RDO;5}|?gIHLAaBWx^ZY4AsE3Yan{Y~hL=IcSu$JHj{}AfYTm$V$}H{QSXo z2^(N1m2cKf!IHyHYa)VB z8X3Fi)%!EldhAZq_)SialR8cJOn=vh)D6un^hItpYKK)Ljo?he4C@GWRU z%aa;V^n}?C+$AqvxX}*LJ-uP6L0y1@ZwI~9b9+R-3mQWsp^FZPS(m(7k>=;MTd$Cs z_VV=C(@|Pb!H-?u6XXm~Ad(*rsS&`0YY^6CvoVdd$rYuBsO&dc)FYHlfD8ct;h+>r z7oMU|c~%=vZgpfq&c(=;Yf-vVD?FeA(mJFazs$l~1s>lTb?CT|A%d^i{<8@lICa#H zRP2T*!d@a_u3^Lh`D)~es!#z6kK3P+V3(ZgR0&hrHgINR=eHAzFy!{|GU9LbMf+x@ zzSLRFC5K1E6y+?zI&@^!9Kr7Ooy@E@_jTE#ZiMY6fyIb%3COil$Q=h|v2>U^Eor6~ z$&X{l2$lqf8wO`@5Rh*ep{B@U9`+e@D$_E*JQGv6 z1iWRWEfBt|UP*-}F1}Yjf|reoDcTvW! zgzhg+8VFSjZ^Qv!c1OYwbD0`Y3zq# zaDFJYI{$Qu;g6o+v+MeFq4GbL1y+MoIZW~Tx$yfP8 zisqu1ZWBRRScMS_)oI~^LLX2^j)nxBV#_2{A7gcE&BRn&g^{wpz9T*5DKFN0lvW#H z?Cw+%?=92AgX1_G0aR%Hc@f-Q^ESUT6IxLj2gM)XuF<7=^~COEw1xLz_XTOZT4x9wJcnEwWV5(yg28LeWT9ynejBB zSEqibkVoKwvhxNQZsvSWRNnVVMAvzO7M4ob+F1HQei#%p2+rXk;9#I%&eWWViT3H8 zEa2gmG^PQ-%p&sa2WP`hJvon;NtooEBTtQvUf2w5>c?q6tEMWdYV0D$WrjHm1;FJX zneb_VJ0f!Iciji+VKy*)OVPJ9B)Tudt?jS`DJ6S4_gl^7kSojirggd6Lsb(Tp? zCj(Tylbuf7j}Mzp5nlH+jd4WAWh)qrj&TMau9EJXLu<-bBV|yk!pc^oxheMC6ow*C zl5VRbp6MiS)d(>r@KtVks%ul=l(=HFDR>5RBUsERcnr#MGJ;Z+Dc+_UFOdT!p7zRv zsLz3QhDRuP^rJm*%OVV;ZWvL1F}|g`y#h8cbSv3M%XTZ+X^CMmNAADX+ur5s_@^AdgwiC|wLnv?7=k8?PC3hI`PkZMX(Few_Q^_mnnLnihDL znCw_eFlT|Pe5%{zhnZk}vkUM-f5XZTg$O+PbCzT(v=E@iBgFd#45U*o5)}Y4gCW!_ z*EgY=?lSOMZh{2mi#A^d5CQ)!l`6Np#~T;sgDVzh+nrFlRZ}3%4a;yoD;MIccq436 zc!6OP{m0=ZlOgEF>ABE=@c0^WfJb`nBw`#T8-Jn;fGWsGDVQnwQ{agJYoARq*Ygft zpGoRC!W$S4L(C#%55eG7uRJ2BNRDStc3!sfQWLd7Ly!;Xc6S&xJ{6ika$Ktno;mAD z#kmOp-xi`D2R5nS!@2;-+pH{WU_ACuznrem!QD|>(VOXn>@c=ho;bXr6}&~^fvpv0 zK6G>tG{5;~X9UfGABz!Wy?78a*#HL45OoqoTeOv>`FR0h#1yakzsG?uE6c*GK7u2D z&1tn*<5KHfzu@c}*TtVmZ2zYBzeRc=-qWS@&^TduJ;I|x__1@C+>Fp`|^>Mty3$Q7mKEf_F5+7+OGD3BPD5kGd z&9i(Xjt#}ZL^VDjdq_bWO3c2QI8YyhvYA=|#$cp8kP$OeOY@s|@un>V#y{;mRl-F% zm$s+j+Jw4C>#5612S*0n3B;vsPj%|7uXBGLaO)N4o|5tWMZN7f&}XN+G_qbOHU$~)tk%9C>wy$C%%{4eWc-fX#%99-2~OBTxq*S%5|%f!vPOh zB+$Bq#7;PVtAfKno0?5i6VfI{D&?HN2zNA#zfHkOEtRLmb}hO0wksoq7MMdB`S`&^ z=IELV8<+*3lf@CxRKlfpZw32R>t_P4I{d7K3tdG-6ulAuuvt#mN+qYlEe7QamB~`Y z)Kos70I|8qBOc0@Q46M$bwg!D?8_tH&c_5Ee1qKY^@P1atqn?$jYUIdx~eVWhWxiY z`~g6!m728(YJ~m76f74_-N$p~2^+{2*G|EGh5~>7P2-=QW79DWhL|icT>XYXpXhWq zMV;L*6vk@}XE}pz20P4J3^$NOBW()^5)0^qRTiMqAa5_;-nTvcfs!Nl~Do z*mceiR>)|4albO73vV<5d9Gz{xQ-sIL-hO_PE2rKaJusta_!_RmnJ^VGn;C5WiLWo zG8Jeanr(90SW9IO8BT&#MvZ1pC!=fceqJ1rPGq>=eG~C~WUN-N7~7Ni#NVO#!#VAr zA`IM~6!u3EXP(NU7>doZ6K~M?s>V)LgjBUx?1){6WGOx(s+;fOdqKP>x4~cSh}8_s zAv=OsbPwa<7xJQV%rORJXDpcwVK`jc73_RkZ(O@#F8VMtUsZKtQ17{xDEsf7SRZI{ zDaVv+B&ot!7P}*|@M@YP_z^EGyL^zWpH4@>H)O*CJ1y*yf;*s5w!T(BMiz&>K`fZ? zf^#qBYz?@A-ZH3@A7Mk~*x7a8iv6nv=N)kOzKlX~<39`^?i?>ikd8dd9Zb>!&8h@K z;+2C(mo!_&gV;D-B8i1!=sm!$L!!F((+AN{qxYU)6pSPg#e#x{F;BMB&R%e}3k>7? zKs|h3o@vFY^21bWbGtIHbTLeX0kq0daS7?5FB4;!oezDjRx8Y0pB)Yj~P<%!g zhCtZwqN{&Z1sOSRj_oB(JrQRryEo3AEXyH%8LtK!g4qf zJOg?28CDM`Ul;10z7~RPnn92K)We;Qz}jV{7}}t^Mz5jJKku;&0x?*b(CW|(#m@Znw|Uz$<|6fRXM#d zC#v5D;8m&U2HGo+Z6k42Hfpxij(Y6e4OgDc3mwvHoXv*s&*%WgM>c!v!Gp*!JkBmDzM+rD^6|IyM-)c9^I;s2y6boX=KA zS(rQ$Mhfik1(%8Ijpur7#vvYo%f}aON3i@m+*?Vp8ZxiyMN9;?-$wX7PG+sI? zsLoNI7e)9@Mq`PDc|MYt+j6*M#;~5Ga~wd5!B5UJM=nr9&k1ITM+Ox#LyNQ*pJbBM z5K#IR-eO!}2@HS0_Wv?+59v-+f~Df?BWR+gD2R|$T6O6!zaHsie#HeRs)J<$Sju1Kgry20B z8Sj$=?Ke6N`kH`b*{l#hzd!0yAl_R6kKZ=t0qM->CXJr{R1GaspDpo%;xt<xsZ-EXJ*%Oieom0DIFlf!x2G_ z6X%xB&ST3(5k!p3!^6=C(_CZ8A;;f&|Cy9wS(7H?+H08ky2tx{`}LdM@z1%dG=Lg8 zV9^V5^^GA4k9I`C4F)dHgy*mQE=u7;HiERH@Sv7R^DJgupzzbS{F?Z1Vzd*MD` z5Uxy{!Q9;9LPOnFD|Yl%?!p4_DBYBLGa1@D9;13Um#H@tVC)N8R>W8v$ETJ654A;# zTX>6{(Mc`RD{17`+J&)ZF%>l0JMy+Bi59km4lnlw5fPIFI1;tBVOR_W8y=G`sO)3B z_2{8WpW5w57aIVHGqFHE>@E|XG=-4^YTCb1j{yGScY63>t{ zUE-5lCdRL=o1<%PI4=+Z8LOh@tG7%oGMZB_Z5N!IY`e!aNwa!J2`#txbSH%HJE$q! z-%2G=W2P!D!E3Ki4r$0cL;95Om_qu{T(kJz*+{EYY8a3k*0+!4aOto%8AUk#LdZb2 zXiLpgKWe!CWxD%>OI<)(c|*>%C8XF~54<(Mk(!`Vnj`%~RHM!>r##GnP;>Bi@EdTF z%@&sq<7xSo9FA!Pt;~w_Xg0$}`%_!f7&MNcH!`rlT=rt`(=JYeib$xm$ok>}$q%+T z2*`6ub_C{Q$tMMW^fS7XGvs$?_fkhcb)ZoDO)+~qtU#imqtC9>6s9G7MOiw`F*6W= zaD2&>!%H~;)5E3(2=B~*kvJ6orreFEvdxpj$UjItV7Aq^4uyaGC54C;y`QxeiYwfUE~ktq2IOH1P{{#;G<&-SxHJfkWP>IZ{pDn6 zD1cy7i}_@QB?rYweSNGIl`O{(5h|1ViW2EC#cD8wnw-1Rc^7f&W2cte=$4#ikFCj@ zlqFeJM}t|-#)pvx_uxX15GLk6lqR_}>xb$1acCxj>WU@L0SeTKb0Mwp;6Z}!#)gK+ zsN6Cb+D4KA)oGO^Pm&`)Kx%jZak&%e8HR+9FP$FbrX7dk=^kgHuK{c;22gCxD@PVg zyP{u7YXo2mgT3*$Z5JBUt1`nnHFSUF6#GS>@~f)ZUIOb_Lo@~&tC!mNdJH_2(&W~) z_kmWW+9i+A&m1bLh5H>n=`QA92QL2iW1 zFge(!U-455S{$L+lWg2a%^r!AFm@5*RxBfGzBQOg$(oxu@cnWCaY!RI8amQy*U=xx zGt%rCJ(pI;1?qvEJ}JhIzbq?y=NFl85+Yb$L^Ny#j1*`fEz9`5aVk^Kqqv{FeP4n7 z-XynQVl}~@O1nUBw#r`_q`|@}QE_m5Y_ERRj7$mSL9)g?Xp3LM@J;7QMvAS{Mx>K- z{S5+1nX0a)yvq(Get2wz1gzK%{`F4eO`Bo|mLhB6bGK$zQ}$zml-bk+m(T0m9x$4^ z@ytKdr`La18y>1+L=G_~rWXa3(C#`(>$;#$VcsbhnKTcZ)R2Z{_p=eH*=;U@g>RZg zk5K$*Eu4umz5xy%HgyrRp(*2L7Os?_DkpdetYc&+Tm3ryLA`u#M33|cpXL$Q+@8~; z0=r8&W}8Bjc4i%d^S2}SZVP;tETWprq5wQjU_Zd-?upF{$<>`QffJ%y zGH@KpK2|9o9_kL&B4MIwQYjG4nO`KwPQK9~3*bl`%UYbvhDaH;9}^_+ZW{(l#b!sY z$~5~bcf?)x;4t1U)F=lHgav&U<&O>XXDz@-dX5f18P{CQU%d`mCu-FhWISPtM3Wj| zCRIQU%l_(-igoFQzeMic$<{>oHX&uu1o}ex1~80;M6RipVFs&!dnF4!$Mmk=5+~VNl9!F! zA&}U`8s5Mpf%hgmomY@ihm4)5A{{n;3qoQ0pNAjQ?6t=u-jM8d!ldrIaIA%E)N-&MSN76-c&Q(6*DOQ>#)3 zckEH!P4jpmbDyjSMR2cxe1KpuC!Ab$x0_rbKLf=|rSPgq17iC)7xY}z zkL+l;4L_CHM14gNHZO(D)Muf#q)LtBW+VStxv2&>EGr#2konHjNvOLtZrFSF7~<+Y z?Pi5Ys%L+I^jzhXKVm=Q&H>{6Sm95?fRlRbn9BW4&9ac(qD6k2i@HsBF>goSUtsnC;k6WP>xBxyl;}U^gRiV) z=C;~~WLjLsyRVJynic7?Tf$qHB4VAWVBK@+?weKReJ_SsROQJSnODV&RW^p(nU*DG z3-^H_i_n0eLDt1)UtF{u;zG5V@&4$sMD5LlxG@KQdH4gi6ZwpE(_#7}i>Ox<{ARfY z;H9$#>LuY5_#;Oh01k1-8rbb58|ue|ZEuivu7>E3r3?M(eHwdk43YJBZhtXEmG@Pk{XD4cduw{nc601#W~5e*-x>?%soZ8RK<@GjinaA zFdv$Ja4@A@&qaMnW6laUXX>B;j{%t^JnPAV6M1&vAxNFo;Ka@*z#Z`LLGcLo+)H|n z4(BFnlf0qis}BJzmu_)*Krm|>od_n`g!n`>V-}sL&}$=XH;)PMv_4j;*`mR{sn^N= z-RO$u(wJG_MtAr&`oC07q7LRpipGDlwD(_t3wh+Mg)JBJHArM3>-g)?W;iPR;WRTb zrKB_^JTpZkuXby+R=IT(^={l3{4XeaL?nUljVm(etF2*Ryh)PdO-54}lc%e#nsZG6 zOSS1ehzNEgxp9JM48F0jgkkHt_@FA7e zE79y!rfp(M-B{)KodV3&RE#Mjh4%E4XUrxuz((@pMmeE6@Xxu+983x&-z9Ss^FSolV^v#6 z_h}H1)*KF~sjB}4A2J>wn)3Ma|MB%s@tG}qw{XX{ZQHhObkwnJr(-7_+qP}nwr!)6 z^m*2P-}5_ruf4wSVqVO7S2e0?R*f3tKM?*C+qkWjA_D-f$pDV#pRjdt25>Y^|4z~b zE9=_L>!bSWQPMesaVst|oqT|2ij+*B!eVUTk_gFxPe%^L0&krvpDK^9A_Fow{xV{H z0DVy&cx-4vAb0J0^PcdX@Xq83`1*dr>qEU5wFUrgl5`@8LM}EBjSrP}=iqG7Tid7% zl!W7i%q?Pu5!b()gsm;-Zo1)and+mBXC%Mz#JV*W&{^G9-lU3am?={IXqfaZ!4cdi zDX`)s3$dr~kxN*qM9&+eM$38Tf!nIKf=l?Nx@2j2+-!=&`y$k5fx{QlcK#Lj9d|XP z00U?E+IDVZXJbAic}vUS*R!+PRuS#teP*L{Z-SC-W6o+tR}Zvsb$^-|JX?c;#kv(< zLfo~S@KO3wOU8T19yO*xQ)>;LC9*A5Ycv@c)us|7n3xbQ6qFm<=0JS_DKfOGZE>7_ z>Sv042rWZLFvep@&S-`E{DDxDuXnFYQqGFi$07-*E=>|nVC#qMH?{Vd?vjm+c8}ga z2UP76KKfPoJlvmX%GLD^(l7nIJ`Bu0x=2B-^bx{3=@$vz8a@J7o=A<@7WE~R+T@vW zvFQ8(KH{f=zwcSUr}5q*BCG$(lf2vBgPo2y;|#^}8`cim(kjap?-2`y#NZdo{lWPG zhICIHOQJ`6r+L3m8LKuY(|;2<#WIMbS)vcW6uE4PTa^+Y?eKWa!SqYYpekmFv!^m4lgs zIWW%=i%Eq-G`y0fY{`p#W39QL$(-^N#npyn+%#|)BpqY|AR!7 z1Y~pl7m4UJ4SGri2fkZ3;X%V~|{-i53)Hk%e`f<1A z=2Gd3J0d~wp%k-2Po-j2GGP4jFBb9WCFe!}XmfB2v)Eo<1op%TQ$%k7Ocv%MKLo%a z?m<_VGpeFu_S^iGUwaV=J4fHLv1v4_%5l}wywtE2qxQl#aiYcrBFlFBUQV5oFw0pm-o>mcRo{jCa6?R|1Mn z3n#vwpA%jW~9)FJE{R`VOp30vI=)Rw=!&8x&3R=g*~__lX=Y5 z2CV-Bt%$n}Yfz6|t_5Azd|kn~Cro}Hf*rlgCe3;gH_=^ycJoC^GllUcI9m^OHC8cn zQ-^2q8B~s$^!`3^LW!?!nd{_4^@%mJGn>1LAw+~ujlDpL`0OMZm+0kS*WI|cLaBHU zJ;TbSw)RM)Kh`8RBcmB%K&d}wyYnQDW-sx;px-AJGIJHOnJS5dor#u+vs?YpZyGMW z?eQyolb0iO-y%uL%@2^VEI2p9ioFNum-|lNA-;Gy;Ya`tcH^`jZ>x3kU5i=yQIMNY z_b2~+K5u-1yf|{l*t6mxp(NxlX#qg^@-O*L!c=%4QN7%voH3sebZ?PUrL9Xco+!jM zHNzhy*)Fj9AX3)(3P-3I??@1d9D-eEvAu*L>v$~G;KK3mc_KLK`toy_RRQd9;Tmcr z0{^-0{JHgLDgs~}1;Ci*zo}wLJ4XvoJ6mT1YY`Jbea8P#n@1~c$)gBi@&R@~8}(pS z`K$Le!_64By@*DPdWu9ksPws1P&#rgk@8f!_4LrB{9$(f!y!S41V2NCXC{$RATf*+ z-i~>8(wwHJb@a0S05Qg5aPf*z#lntr6*5()KtUwH7lU5LL=_2Inn@8JKzwpSgATH1 zyp-4MBN(eTSI{MUuI`x^=Dqj5@A>kCrPptfC|d`0Up5&RI{U$`-Ge&bg_V>ddxsTu<*=nn&)E+PCfCtgn~hfmvq zMIaH-R9Y|gZrQ%5{-DN_?MUsbj3nZ9ixb%n4y^2*@G{A7J;oYFALCYHmfA=CQpgyA zh}y4QPFcyAzAj3_ zMh9$z_8G#dAY#F^{gvhuDDf+X=htr+NtbM~Kj0{kf3JtSyK4wT z2S8dBAlGL2|3h055dJ9aXkuXXAA6!`C0#&8PE@`I80$QJZP7;H=B0ID9HP4+bAiMp zYMd4VAY~Mfvu`TxboItt5l?MBgBU-S%vpyQ-TVT321A!SKrHgZ!`Ch+`OL0I+Frgm zKRtnW*&i9_M@13)n-~L9!}Zafu&b?F`w(5T{P&=JZv%uZQepEKtA>sW!RoT*Je)0loW+~)`}P}_ zti~_kU9Vm2tn*uve3q~s5`kR9X6PFg@Vxi7Str`871g(ehU#pTtS!YAI5Qc*e>GW=#<#EU(a zOzJT7u>%2M)afSH%B~82FP~KTL`8Q%f?5;tDC7{oODTmApW`->QsmGet;r-VGDxrc zp&GVVjw^i5@t-44f2BjM6folU0nb19)+9abO&qN)Y_0z1Z$irSKl(hMC>dzL|3tI` za8d?pu&4Xp>N-mkmJfsU2>Rx{KWIRl@Y<0MgRq-7h~x%{si~km^_^My1k#7z3BKqj zaqqY{M%I%Y3hKLeH7+RRx8|afR~N);xoG&}!Eisxb}Yn*QRRHXy;uc+HjsSEKzZV)H4>Cb8V)VEh}FNoS$H5{x& zn^a0|&Bj{MQM_`+A&DT_s%@gwsZts!Cpxt8hQ2Hc7j1VSnj!VW$Xt>}>1m_6C_B}h zUuN&kpUyMVd#tcUw&3|YDVt?2o&&u;i`2>0CDqlND8{H=J+Z4A}qCSNb;` z{-^tkw4n48m+t;dy=-5%biBn|1LLeBUeg>B1|TyDqY^_R=R1xoNlCIJLP>3s;;L7v zSy!o5JW-eG&jpCtv>_u>s#Um0HZ3(LuXi*zH&uOZc=r1p`|Q}lV>Hq2dp%sI?M!B* zz0l3z3)o}!x_c5yaxF3hnV#FJum&L|(hU7XL_G>NCxnA`bgD%aDYPq990x{oJAy- zCTF(JN);5x`aQxiV;XvHjdiHFj0jaR81;zxArn!q;0%bHBPh}$BC=5KaiMJp>Sy#2fmX+vr*K4e zfh}X1p;2RNOI^mAWp+RL9^!7bk$Kz%nl4rA0nw6V3QnDlv!TI(Bs`yEUi$1#LR4@c zpU%ccCRf)S|K>#PL8H4fiz)NW!I~m_(u_N|s-wNIJUdC#uvIslUW`WOw6PB-M`PUC z+*U@nyh!fNLH>qsw5p3^XC9eEYgbyskk+^5fR%$%VH2|wEg42hv9i>-gjh+Y0@clF zH+``%`OY=Ji`BiHRHunUv~IH!tg}pO7d4ecv}fevq$}bhQW=w{IjLBi=or#h%5)s> z>ZMX8!)29mP?5~RQ6mjsX=$l9!Te6a#>&>1gaZ9AWgyi(!+W-7gkB4aHsvzuN^XZy zVfmwr7d?jp1(YSE#z9D~Q)peU#8!K)*B$N+^_M2K7FEWxagdjX!~14)`npa14&7hxN z#b)#?jDaGrapU8fMZR1xjs9cRJ9{KhF(j0Ak9;l18XyoCxo~!}Q2oMW=lUUX@lg)l zlC3hk(duI{C2q8UW2N4>-kNMDrQHC7l4obwpogJLYHw%e`IU&Ksd(U3#G^Tb>Sbv3q%Ax5qAxAJwlIu{!ZNRuXd zj(|sQH%l)czTZwUdYzqlWo+nf(LyH~c;TNt2d)&80hqt^d7IlkCp&R)#y=JB(;&14sfkC(?sU45wB3eTfj zdtV=&Gl{`2#V{m<_N@!Vi-Qoy+=_MkS|7q~P#|3Ea-YjE znH{+K7a!j9-G|oAK9cztw(EkL11yLiy=w5)BN|YF{9KFmXwGgr@Y%^nEsDvNAA`AO z3svx2;w==ex41DPZlmx&2G!WN&Sp8xNp^aQWboES-MCt%T7BV0tlKy8yv!Q{eI_|= zkj~{k*82W92w4b!g7_WRUe9(t$~`;6+Z6q_Zr{nXn`38h(z9La6Ts46mq*}yv{~Pq z4V(n!6Gh;8#ET=NXgWcX`px;MyM8uH|Gh5bS<9CvW~eV=;2J~5nN&vkNBK+?gq5Dq5-<|melV%(QU|Ib1p^6Pw_nXY~jev<}= zOJ~nQi|pW%)~)=I#JI_g{>z)J)Ii}`8|j*zdA?nu6+`5a`)JiGQ>XJg)(d&+E46-) z4!-1Eilt3ebwS9wOs`xf_5J?73m4UukR{OxFwqxu@ap zZb;E-jc+5Gwly!0tm5g}K8jUSdQ3Cab1aecwS>BlA4jG=9&~rDEMrer{H{r?^#TOX z@kYh$a)Uc(>LyXw-9*=%PF8~iK{A6XEClUrS_}y3MLLV%JWd7GHY9$?z_xq?JHY}} z9JY5qF0wp7-=zHnPN;N8_=)CN<<+;3H~sFAz`_yy97FjP6^0Y)R$RBPfURDElWwdm z{YgRY($kf+?G~KdwnM)~^1$?iWEwZ&zF}bWL&0l1*67NBQal$+kRWJ~gvCV4RR7#X zuWP%4;lVOyzxWu^&N61V_$yz-iCy1Po>O+pBcP1yg^>-ytJ;Z-f$=F?&nH2{Z>qwM z{Rz^1GoU8Wo~ETbc>m8&A+Qdi-}-3$;7v&KLI!jEr&o~J{VkDZl$*mQ@ZLJUVC*?* zeH2dzUEuffElxLxZWNpTJU}8oAUJQhdF*%CFm71Jl_;IEYpol@eC+IjEsdmOj^Fbi z5cSdhZGvNk)zDDg`gfo@K>P#p;Z4If^56@luAB*V&!gatrSYx>)%%2u8K|jOCrG?J zmi4aJA}4)L7yP?vjS4}ycpG-aMO&A0wCfqy{Wq^LXBNM?5zgRXuKEjYAemU+iW@)l zBHHPjLxiA}!o%JKn8Lq1wuKk9;TUWNLSCDgcZbKVMi@>LQ0)5ZghALNx$0x#3-jR* z7roMF4AHB<*{UDtfj1-wZH&+$>}qqG>(klKN%ptXL0zyTs1xKkGW@B5?IkKja43te z`Xu3X{eirKJ*<}466}E2*UHQbE)g=aJMs&Q7mIl~u0lv+l@{LckT{Qr$&x@Ehcm!L z>uLn^dWx^#98c7La`Z}ckH0p;(InC!0AXbak20BC!hRttrD9M)ah~3^1@b60z#Cze zx*2O%%Jhq>&?yRkuhK8oH64Mg}A91Bo$QtJCE5D8OJ$&wQk$M1x34VVy7>40tQXp!iEbx$Rll;X)! ziSUgkvL|wq<>cWTavXBx^Id*do<*^_^CM12k_MfOeqU9sm*I987uRdXInbQGf+V{x zxOS)*Zph4qv_6LjeJ6=@WcmeOJLo|RsNLfZNo|g4xq9=Gn!J@Muv3Tu}qg!+Scz2IS=RGqfervIW$c5+^us+B)j-_cPMt0yI>A zDhodv058nSfK&hR4aXuqeiK|%M%mB2XGS#EMZIF-PL3W;KFZ>|FGuy%;3fiL8)rITh_!2M^CgZ?JKO4xTqdD4EWvQ z2{B!em#_$2sHLc{FkH7;)aIz~I>cSGuHlvawK-+|_Jkkvo&ENVAFwHTw;4Lc!7EN@ zK|2S`eBM7NqHZH~OhX!4VMFb9nQ6S)Qr03O`S`nDrZ`2Z6STwRydq3AN2(F(HcE9GMAwxhmM|X$M za16}i(la$Mr#E85uU*r?z;LH$b{nmDrtRGvJH};KDBVz6E@T&$Mz+S8bQ8FFPvc$x z&~`Y^61nP!uKDv#!(U1rA~%RB-EBVBB?ni;=Rjg$_j|Gbwzo; zBVnJ7ge}l$%GB&bze80Q=j?O8W7+1f*yDWS;+$c!FEH2>bj3iNa;ysV4AH;yJ^XL_~++lYG{#fX_1MdoLIR)vI8@bEY(Vrk5nO_{aU(lx!ET}|` zZo%aq7|$(JSJ!BsfL~?HqoqEAJ<`%^4^-(P8SWeRnHHXXgT!Oc&i9q4OwY<1Q^`IC z9cEji;Z@-q64O*Bnl2!}adsh;lj?MBA0?M)nCQ^QBlTUw{$O&eGdpWkS2A8G zUiKGhHJY@ekz;QcBtKY}%(*D?E9A6tDYY-?<)^FBIC~|fFRIFfGt$J5;|Y3(2MM2e zPSw+P`Aii0wSaCu?&R&r%Tfh0ui`u4t?;vXhimenE$|-FX%m#_bK&h~6qfdT*aTxO zmEDHo{yOSkCRqcT@&n(jxI;8gn6p`wjMbQnG4^S#=uN*rIOH{bgQ*JEG}H~EsU&Od z(+aU!cJy9}AanW!+;D_FW z;2T8X6@G&G$}d_Mts%eboe<7w@zrg4K#>`f8bwO-P9JL4ufT=i`t)~HURlAo@=iS9=F$>6Jx@v~BS$SxIlu@K7~Ga=51C3&XrcHaao!rd|pZ?jui$Dts?0| zBjbZ3A=4E{)(sQ9Y|5Tpm1=y4GP@oUS$WmE>UglKoU&B7I3Wux9@0MD zDG;=NL}m$iD~2P3N}W-R|M|uQH2^2ij+1U<4^3)M{f;Q2lS%sqezW(8X-9e!UI4-5 zG{>JgqA^T>zZL!+28O`@<7@oUT82J(=jv2+ssF0f0mr178cy`;_Ea(#-Bb`n`a>>8OM9BLC|WrZ5K7#U<8dLxJ~7{%SDzS~LZsI#fE#EdEHDk8wX? zJ%xjDJkAv!A!V%Ae9jql^eTJ8b*m_4Xw;zVQe<|0hMTJw-5ru_8HIDpGoJ1iviQ4# zQTG$=dF9EhIbUq+6L58X%)a=A$)@cmQj9GDFn$ zIac>V-M1e7=r!vSr?(}lvpd%A_nyc3g9523e71K|k*j;<+XC^NaYZlQzdk(Pos)cc zem1>;p22()Nn3v$a}s+mg^zD1l_2$4`JHS%?%a>nn`Lb7lHjhd#Sxs~{O(rXSjRVTlM>%g#FyO>G4nfBAc?u;#X@8}Ni_fA;6nTa3#{t7 z!+V7o{%%*W=m~MO+`}~BnF4nKGTFc{TtOUY5;Nh2T*dyZbFYuI7I~Y{&-tb<#LiE>IDgT`Z(C*^~b9XD@0T({jPPV+g_H1nY6|06B+8zhrbJS!% z-U&bK2|w-$Kkx}axl9Gqw;98?8Phi!%`b~mwFQSJ?iw8M6;h_w;*5DbP#xI%>EgW2 zuLVC~k(BKg@<+WDksECk&zg&}mp@1$Z?FTxAqGeTwTT9;sRo+EjI?H$=a?aw1GVu6 ztw9EwLyW9BpdlRcz=32vNuCNx{Ffx0!MTPEa+$jBoSQA}lE}H1JLBh$99K6iv*^Tg z+PeI=in+2F<)!Mup)W>ydwa?`JWk$@da98%S(G+JSLdIp1a~eQ!`0RFPh*O&8V`l@ zOCQ@v{TfpW_(UH|ALkAj4+9cmf^0oLli2uPb4Biq6GiTi;3?4R589)Od6q}W7E2%G z%!vu7(ly5|ae2(;Z$8GQla{_DWQQDl2FKopaYVl(5S6x)xPA<`u`GImE}qOO==Mqf z1|BZ2a428@Id(3SnqO@ctQ#A-sDY%ypS!p{Y?t;@?zHyh^4uW?s z@BPCEWTrIwHEun~=$!sTXe+v>%Wi@irL>p=96ZBU*y3__neqU4`W@&LK+gleO!gvWd}FJo4-amkg1{uzmdd=Go9@IVXgmuUjw8= z_3`4!6RF^HPl#@xTyNj3p@G(BsJj?01``R>Im}O++`OTsTwL%DDUL4nd^5#T$RT5% z-S9ccq;_ufmU7;%+(X|)@+>Y(8DY5~tW|2m{?(z7?=HCrD~MpZzmqMKn;4=d_vc z*?mbj6%`J3tkm92xme%f#gw!W$tU#$+ikLnBPexk(hTcVI1u>kHuS>EF#bGtJuz^5IAzg8JfrngtK}Y@Bh)VcHFkQj=XLg>-RP{j04?G7f$MF%S`loz7)=%SuoON{M$LXtY`A^dc# zvFlnwZlZHfBTlp||4j8ESkO}BsEUMAq3@{ep-EyH!2#|Q^l_<1o$4p<#3ECrVoxvG zd5XDu&#=ik$7-(cNcHPWtJEjZj-uT@{gZ~Zy4_yJ`ORwHmp|Wm&a1yC1VfqMp34(` z$HB{OvM0eGWrE#SZXt_wN)2sRaVzYKPt|f8>XR?0Mv(?*?y0%7#p>U4N8HjJXa3F^ z__7&KitFVPvn@}Qo}#hEB-}Z^jeyr@Mm1hD4x|%o!Mqx`6t>n7huaco_SAhK5aV6btFnmcq($9!R@Lw${MHQPh?$MK4L%0uNNJf zq*^Mxp0J;O>XqOx=4g059i2P)G&o$%+{*x>XM4$A4}dy@>f9mz2#0-KKK`-sh1A!` zvj33vi231zaO1ddT35}(nc6j?&gc(v4)M{yQn};lZI1f~dOB5)qh?KJ5!pMa=Dx!c zf?{^$4G&d6%k%(LMJU}wcNn3p;&qctod!w8V$oJtzrRSN<@lbTnF6 zi|ZMp=uzS75Pvf1wKcTTJW)xI=icnozTksCnR34CO$W8)$95yMP3|jxeuI7tJ=c zkf3iPG|gs@xs#DOrggh*zK5hwSRITr)a>`dg`T8W6${r?$;PF|J{3Q;S!bB~&wm7ok-1Mf?hf#tc zemPRkXU-e86lqS7{v7s1Hu|M|*h=pxiGhWrUMi#X5dgjK_)M?Cc&SnE*!>eKo;v=c z0XmX6%qeRMwz>92h_g2;N{~kQ&)?LV8W&(_e_ft}0MwdC=YUZI72JAtoAaWQb!Z0DYEl-G{ws>XG zuRsCusK{YVzn_2zv1wfuJ!FB$OsAQN2i}wIueaY196v31r}x2akADrgqkrEtbjpwm zo&v?83FS#$bkG<{{CUisNAhd6R0;PL!V9<`{nYBUD&;F1!_!xSaLfGn6oTq}TgH8& z=ebL#eMmrr%?64U>u0}Pkzn_=%i;XjNC>QYmUsqpaQlw)x|RIy9hbD_Ub6(_(fhPP zhbN+YUL|{{dWEH%jz=qPhVL#vlH@gW3Z$fdf!w1ubEb-C(>N#%JKjoFT{B9RmRK3q z`bAT9kUV0xsuRtZ?`$Frz7?ZFoZJ;>4lbS=$cz1sAkYH%JtpJq%&_qS#6T}0xHB)~ zEn+Na$R7s1+(EG(oC5<&mm3|H{mw2 zK(V#$BxeP1-8tYZO&(}60nMT9(z#&$C_R3O9!Y2@y`X&1nqqJMd(%URq!q!I{^8=G1lSgvHY9*cM*=49`uL&|?$#z(goar#T(TfbTXG6MP?e!BpDzBQ_ z$gVfc4%{0i^afgS+GD6l3&fE-t|2vQs9-v$)~^RXW)N_*l_@E_D=xM zKh))vvIVG!O%04p#B7cKeS8Kh$|(F*A3Av%-4baC0-FJw4G7_v`)xjx5+xMW-cL}3 z>}1yp8A~h6yStjj$Z)2wZ+?jm&4~L4yZENA-6NBizTVy4Agcpf@DG}`xdrBibA!l% z4wNEkxJ>3p(m6sk650BcjV6@b1r`2bUfzg^%GMI}2=Bbf<=H`zbqSVMq8e9Zt_0pJ)f9-kby*j4`+d9-{5}C+Z9HP3 zspaxu(XLSQDMKU2^F&!~59U7=By;d>Mk;`QM*}Pj)c>?7{BPg?w^TOzuZ%|}L_Q4- z4I8D7x9xycA+e0cB0^+M!?B)g3EZOdQQkv3@39ph%xTeN|cAGy)1kuY=RL zSj?s;yK;Wm5qx`&izNv>0!6JX)l`c!3BzAA+TbyT#E{ViFFMx@AS&80n#!V^U7Jy+uBS)?c>E*+BlqT53z|V*GISK8g$mWOcdxz z)`|VX>4GkkQgTR35Nw>u=|)~nh25+={Yj;SfA3XoC^x{(&MNxLi1NdXT|{r*yC2Nq z=v|0Rlj2QNLzMjqnUVi8#9u{wlFLkV8b{Pl-3M`$q71mS`5`zGaw_5^)73I3G7|3bo=8 zz8};$vu4Ut!jVCkTa7ynk8uA9O9LfKMGcge0oGvf{2IYHsQB6oiM&zzli?AiS3 z>DHF`!upwcEtYFRYl|pL7G#8W__?od4gBQ=?1-_KLA~ig>ry(D>S_f1fo*Gb^w%k0 zUYpO8oJZ-ad$KVhs!{$~^PX~*E`c>w=74tGmisks! zPo3c#?L=FW@s?l75dRyZepycWNLbIv)9|p}IdZx2dxGXCh;@5yow5*A1$;XEGG=D@ zC^J7g?33@{O&fs|+cSg*_0sFFJa5vZ$qv})XKOFBQT>;A9Ab^%%Hfe`q=;u|2!<^5 zP#(O8Ws6TM1z9`eQGFfqCiK%iNnI*MqU(_!$x!F-pQT}+5O8-OT-a}BV%Cr&VwBg8 zX{A*=-i~ABu-AlX#d(}@S|wZ}Yb)1$oSH9;q4j}qAzglFjElbP_E@6ClUUL=T|vt~ z0%!BHHXb1k)h04v4^6YLp-pr(oxim_z%H-(1UyM5fu$I(>9^Dg*1d%Xgi`C*r=MwS zvcGaCPttISfJE90{7ugk;p`h70hnUFfNjw~Xz2b6ga7SzRjYrc!c0_bwBMI1-|`Xb zd!P#)f|v_qhoxG=B1RFEY*68CZdsVNG(Y{ol9OcpS3rncaRu@$;>*A`i`z*y*9+6{ z&yf_nZ|Ze%Vgja)m_yd!2)d|FjoDL%picD1(Yp3^=9lr2CPp&!>QO$4eU{)>@SPl5 zZ5U$0DIoYG#IB6$8r+9tdZZ|0Aa6p8xQWyhS-Fes21VtSD>4k+{$y)s zulZ?`XmUA6o6d}vk%X%lE_q^yI1zEb+@95V*pc#0c|GnE)n=g!Sf-VJuyxclSwd$y zBZvwIgfx>{cpU3Dz2-0<$Kb*yszt}+mW@hwS_Z4-A$YJ6Ds<<2w)xlfp?! z$m@C{7M%vcZ_)`!ElSf8k zM@gncFHf&@!!mn!%lcm9fnUAX9{9%0=FjFn>7EN#}fi(z-3RoJB6$Xfa-K{*0|SzafuLIj(tDqz{qr4^Q0A#Y;~c!1Lsd z5@P2gVO4}hR;CpfZpC4qfQ62Qml0J+g^r-fl7)x9aOl&R%BzO~IC9#x~b)gHT{Mhfu}579=+ZgxWA9A~=fhROvI&PqN8}N1FGY zV+eVsS11v5Gg?==X|2qL*NCC)Aq_fwc4SS!xJ;P^3-%Z%KbMIdgpRi0iz=q+Tw@J!PP zU!e%z;wUr0scO*N)|)quD&;}YhF-vQibhfSv5O{UrmX|5aY(srY1vC0wKOo8Nv5yZ zncfaBI}5)l)4*x588lsZxluxvg2LTT#f8ENbWRV7*d|8nS&2s5ei%|{?0zIn4GBkN zwAJ+alE_IM+aQEhmgckuS_&JVfpeia1GCZEOEMnWLN2a(eOYn#m&PoaTy?apRvlC& z7x_}5Ean~A_qb3VFl=b(MyLrq`YFb*Va-@oMCLk{U8t9g>M?sGK8l3=eAJk+EbP7t z{4K$*zT9QH{@HWO(6U3O!pN4hsk-we6?03HC(!KAWUFIq+sxV3X(pl~eQdVvK6C}MaUwYor{2N5Rfv`(}cF$*jIDtH)oX)$!G<@z$g z#if&B7Bdl&)H0*(>Q|;QlX$wP5A)e8p-*Q%V<2a;rtU>XAZtHQt0JmYrHz*~yL?hC zE`Eq~Xqn#&dL8-eD;8=p5a4VpGk;^ZJK{{DC{uN&+eS55aF|qXW>ir|WFQD4DNs>g z#*1jVPpYZPEczxlBJ5N{nawcZFolJ%CllTmr*t8l-ac$hm$c-51HT8_ z#OpV)<-QLLDS7{$Y0@OxxJYY?6^&&ZInpp8yJG;mQ5Zk`KL7PFA5Sa6*3Uxx zTmdmYxUAgjIDHq^1iI9`L(Sj{E2n zkeONqDf3v*WMFeVpvIVQTA>JXil35*k>A#c1+N9Kpe5lD-Z=^G9ZW5>LGhpLpXu`H zwR3s`vpKB;^x6_d9J@Z5Z$QuA-rX84S+x2`%@DZfOn`?a&89u`<{A z%_n%Nrr<4R-PH-*-|Dg98=TCeZ=i0&P9FnA8_&BfUHxw{FFqclUenKtI{y`w_PC|W}{=meg7M=lSDyEivrj|mH?iA zNLP|IF?E(Ra5S^{kCOr*b^Nc>vkyq{x|XPr;sFqEIKK71nvt+*l+@l&xR+*Y7b%-5 zEk(a%Jz3s=1=?901nX@YKTmaX5Oh5JmG-lX>IKeTXCf>jBB3(Ep65w#l%|K+xV>vW zZl5*@ns+^_8HIt+typ~`G0B=qdYfNXVvPPLPRo-a2NGiXgRDL$NjCUug0T?~shC7z zYs{TEKy+#vve6g^adN{r511+OyH7=`JM&9&c1&_GyDP0~t<34iLT2rcQB5_gwDgDT z3lapjtcpCIbA@WV;WY^jRbTT4ja+wz)BH*83HUlSMU%y~3l?ot)|efkPy)&>2gQEu z9deRcgC3Z`E?0b<$(oaBSWUofXur6g%AddG1d3kDpOpf7v z2U-4zDX)&#Sx&Y$Tr8ij-aZhuKie4NF~bE1%rS|gpfE9h%`@g1#OJkWxjl4h&Ae}R zZ8qB2veeRrbl-fy*VzA{EVp?>7uiiE7ru~Ry5qnMIJ0I~A$905bqcx8R5|+X(lXc; zpjM8EGO;wSUS#eO!`ULaB;Z7kh1~X#5#e#g#m^x#Jr{n1gF>r&B;s^jm$t|jK$>XX@6x5e2|MMsI#zH*dL5g zA}UfT{5X2sIo0%OU7IF*FQIB^A1eF<2syWiB0r@xV&z8()^`JFU}6LpAS5YuX)+ov zLg`hx5}tI`()3}JRTyCL`);5iOd{3jU2O>vp#voUF^?uq^}! zcDGQT%*275F?!ih;t*lAz>>!>Gl*}OC{dxclw%D!QiKxzypb@qm?pyX;rymZ`9Ot~ z#dCykjo#QIx*nnX;5Vw&U+8Z4v5e4h7^2WGe!S|Zb<&;ao>8uz?f6W~a7IB90a#lc z&wrb#-Rn`P(g5!r93Z{xAJ#uP6B|26kH43s4OZQ7Tu?{Vm8d6?81*OpmAvmrLFy`~ zGcjc0zuBvAWID;n*hxs!PdS<_kqmYH;#|z&GuCL42A_a%iX#A8=|q}|$h-iN<o zvTj9(ch(d8#}=qHsDoTq2Q%0|(y@&+WrDnVw>&(@eyZ06g~MK@cmn(w?t_*QIjAZb z14>qXWgCD>^M=7lb-D3(!iMv~n4izyLWC<3{ZAo(Dkuo4fjv1c>-@HFUhf!y*V3d- zo}qZq2h`LrYu@p040^U6^GD=a^iA`z+vRTu!@WIn$XV`aawsVlZ=XhE`8v*eye(Eb zT`}R3IXkywJ3doY0ZA*}D5S8B=o|IrBGbOzgl0H+c6>ycHt>eAXm8?|tug5rB*Yz%L zg8?7kYp-04f9C_4C*gqf%1)m+-t5FFJWh+QC1~4@VBo@Er~B#*YGDKnGNVG*G zvih67bTBOrBfSB^!02ExpRuvv$+WaaLjl2^y+C5T_S|$G+d2?zad`g6K;nCmKFAFtR!vT3o2 zacjiw5GYySt^NU%Hopu5ZgasQTQMr;cgIhWWAUCzFSAXgok>!$Bj7_h7L@!r_SgVQ zL{?6dPZ4*}E_?RE*%&~4JunRNrDoY07+RXoPpX@XB=NmWid*EJ4cAD%7C5nDkNAZm zEMv9>tEjQE@NQ%_2Pw%LP-?D_5Db+wc)`MnZz)?L5j8Q&CP8j!kgWF{-snNZ)MH4! zbW7Co5=)jv`W9^n9g~LYg|w%KsUGK(%?l)$KS>o~Zp0p)MKn{b-DA-si7_QVB@tB* zr-OBbhcyz_8izR4DM)fLN0p6~8R`Jf(a+FX*eSj5EI+Ub9Ylq?M>XVoRFuWM^NW)C1JSwckn+OY3G2@MOOa!GUL zGk%gof}y6#>cvB_JnT>6KpI|!G&NV7>ncVLSyncws{$j5Rt`1UHZ3o&uWQ*fc~#k< z^*wgD>5+@1y2oTEY`Xm)zTPpqvTbV{t%_~iww+XL+qUggv|`(~ZQD*Nwv7rZ`m*11 z?)}a_@4mOSG25E0jkf;G-bWvu&y(W!+4I@smi=*(=kv`JlJ=*jcHZvzH|^H^Z%+0} zIMvA$RtL332rGMBoZeakzrTan2jbW!4#))m3ePyaK$Ebq$n+7rvPo!ICwX;awNBYy zKfK}P+#n3$CjIe6$(sVW2A2m=zqM-l`VoY9y*=l>ZDIGu*y|Cx?)XwZ`UCNVX8At+ zshfz|#QFnNIw*AK9Ruk4&J*c_g$J37^$P5c!Vf3kXXN-C1_1s(IsD~_`I7^?L&;gW zi%Nc$0n9+X87m3~#GxW>wbyYgqBU<@lS*xsGhBGSX4-K@B?*4Dveok`W;IW#{|+!_ zs;`@qUM0CH=7JqSqfoiPjxV-Rra#88h{B}33uP(Ti@P!_|W$8OEgP5WKI$=m@2xFD)xD&>R=}D;dUJAp$q7+A7?c zasZMCb_VhUQw3I)23JmAW-;7>*9W%>_5oE zU`0_wq8E&jlFAK%G(WNm9PbqIBS@C#1Y-{JCs!cud6+G81<{RS$w&cFkT}VuZhU$qZj`X4y64((RuKW5uQ4 zN9WS*qX!*^3)IIoE6^CB;(UXuVe01cjaqSj1FJcErsZl#xyPD*X-5?~a3)*_q6=v3zQi;QgYf=ohC#D$>L z332@fa}I8rdoSckQ0uv)qVmjX;?H1g7%r#fNf4RZPgzZZ6#=;QYs_ypnBSS5I|KQx zo+F}r_Uy1es`v4qOQQXDbznc2Z}C0`rVFj%A*CTjs)BG0WB_}r^SMmnEl8rJw1#4d zy_kgYGOl;jQIHxq@zG7qsFq0tIem|;AWuvvpG&v=opPCQA?C37Cmf;hpn^jBuEH6U zg=YwG$UNbkaFiK6FqbkF?L3%mhjy1g%`ErGJnn*vtWHQ>#!JERbB<_MLX2aQ} z!XD%+ust&SYD3+?$`TMw_xQVD3k9YhAnw@8Lg$n&n=O^&A4jO>j;VkLhaU&)(dcZH zV(rgq5zo!D=(N%ahQ^xJ0FnGBs<|$f zS28XJ1IABj@G3DSC(S+|Vfvdlfr*ln(^7ABdU?g@y|!>D{Iq6wHLv%6eVo%#d`sk? zyZl`@9<*FMAXrN~!j1_29L}tL%neR(+bf{HaUFytuN}=g=&P(7W!1|dw-7_l1S3Y& zpObj?(Iod6Od)Mb@dm@kHy#30SY^ug%RxiY;hyv2)ZWI4Kc+#Rx1kLUvJHocd{y9*~?jYlq4UX__E_&XUuB{Rv>jpjg3)Mnmw_d4NL4?vi! z=NTNjSF8CzLI37KbB$jwtZrQW}voW&aMcjAu=J~pARj%=#6ibYmiD#B4z~F?GbH^j!1zp?`VVh3*HK=O}>=~?bOGS6Y{buD| ztOsDX=iC}(b(a!3mG;z>;Gj|H@*q>CSahc_!_*q!oV16nGpXl&##m)pzEwVQia=h8 zOT^lTjU6+??F?a570To|H!Eg^4V$D2w5<&wAq`zJsX zzqnQ5oc{OIuDky$<8Qd2KwZ%drTxpkw@i?%-cIE)kR&HX?YOCVJmu=xc-Or0W`S^8 z+LHkmbT+HXgbKD-j$)Om#i!owldULB?!`^VZ*qq13ByS=L^ma&(AP|f*9Jg-m_avu zUYFoBY49Fxc&1pdb%02RT|q_nS=zT&4U|2)y#4RlPjOd>clZcKw}lu{CBl%|sQb#E z9qRV=0v-0>{d)jq(nLdK4G?Tfx-$nkqpn6yM+I9p()QuWGNkS+PDgpLD-Ctkq%b`0 zi)P`rjcp;W? zA9L;iF9t1@Te{3n^<<@~=)V0_vng-4s6n||ZU^pV`w31M&o$TmM68^P??3P-dQ_cO zo&!H}?YPMjE#s+9Apfi&MAi$kzownA7nLgl?Hy?Psg&iEi|=VE?XO-Op4tR1b)+|e zC;)z@1_?4^k{Uvhg_ot$$P!?c7$m3qzvN@V8j_)fC(P2A?&Bx~E*ZkL3)8ZNacL7B z?SlE*p_U**LEG1u_sY&+AV$=e<;*ndM$#*s4{;>38}ce`4?TE`ka{C;J0i}T2Z_h! z-!uCtB$=+RKACzQ>v|`-Ot+9-9VA#WJIzbWYYTF*`_KB8yMZm0YmkGsA=_G{--8?bYHz9Ab|28AcdWvMv5C3}wQ zeEe6}PR_D@H2GK5z4p&_)BkYv|1(b(thB9!to9dYb_VPi7zJ8lfTT?mB%)zmK4=ix zu9zab1v$f?Ug!*a$OtL6293h!oxngj+)sbL$D*30Td_-LF1{zZyS&GajKsPsW}jbP zGcnhhUej*VAGgOfJ;13yir^DQ$zuBt`BGCQ^|9JOs&|}7r!ZR6gZ$|i9caTewADsn zf%ULbkwafxD=4{v29~pZW~OmLqBAC5yM2r~v-Gonf|eYDL;#u1UyB&qLJLQ1HKSnE zW+qqSU91%K7_8`M0%&RsI$CVD6+CA!U|n(f-22vEr>AiL$PzfYn3<8Q#rZ1Pq8FXJ zTGsErtb6m;ZzC|IGpRQNXXKqun))yIqKXIILRH(l=m~JVjSJg^?1Tnb+QitM8l(V? zF%%c0fE6tRcQ~{dwhZ(Oijs+=E7f>``wCTam2bp-F0xj+Gced0erK0~F`N_T2ZNzW zdxr7=21OR3$x!br7uX(4AX}DaQV<>MT_Lk2wCfkt)!+L}MZi#so%IOeP_bKCI3#u1 z+vKpU;G?E)YDzlX3pc5%XnPx&nhu%&WGbV~_MCB-Fdb=|iPYp0G8L1}AFmQ%E7FU% z)r$W^BG%||f*K9fBqiG3sX!p&CR zBPd9~J^gD=U2eH0QB+RRVpw$s-7=7|2v2NpMB#Q}9lxHxfq>T9iqY86{}^dFc0>ck zK6`?5YBN(TOfk*N9onrm6baQ?en`kWLhQji=65Ur37dxLir92EENg(H2!pQIpxcS$ z=jD?)Rxj{T4gsgx+>!KjT>rf};wvQepTy9G(9WWA>{j!gc!ry_Z(I5)gs1jcY5xtm z^3nFkpziCa&3qMh3H~8X>0+%Y^`D2#<^Lt7&zOp#6=tBFm$#})H;z-TQqC*135Xk2 zWGMWZ4>FF;?%2;uv@%41D8DG#AX5!0e!$OJo7HupK+GfpyzE z5n_x+DlU2v7t$CQ0SaGPLqH0OrNmc+Zx9@kM_?!HN(vp3b8M_4(MPOLdZ%?U=b zDI%+X9`l=2^EueiX=?~5tQ1#rUH(3EB?Qc8k2(;#34=X7vykL`l=ILDH!c1Ww`>jX z2C0F|RklV}5-$&G?lf>3Gu^5~FcWkkQ<8NHWA)O;_>7(Py31-hM1hLOdZM)I7KyAB zZOeV`m}_HJjfZw(wJvfhv&`>Pb;|qx)mNb782CySAFqi=Q){=CM-ZgR^2?@x;yRzS zamzZQiMdny2A?0_QeLpYUec9=jEO@9>tXxc^VsX*`#3hRDGBBqiGPaU5K=z)=DdRL zu?IN=gptM)C{M=p4V8(AFA&jiz)YW$pw}3;g_oM8ES5bVtZLmR9;IH}BGZe+zT~F!AJ5 zPm)3*8{|_<`6Wkg$cZk;>k&1oLqwn?+mCQMU_e-1eG8-rR= zKj#Yn6$A+m{mT?E5y`6l>u?e}h@$pG;Uh~CLWSuRa&Dv(2j;G`UyToI)HzA8Tc*(d z3CVnvzv#bbj#hO?zK**V|NFTAUw(R$ z|9LgA{eODFqExKxutiXK_gDTT4SLMaqX}jx@~>e)9WLn;*b2gu6*)i%zW1+jOR!bC zO?WOeiW88KknB+N2f|kceJ31*-x2%%6uly4JuEME?sYZUb)4PC-0(V*)AIqhL#3%9 zZA2SE+L_&lVi~!m|3FsIf>Fg>&fMN-9yn);X18DL?*`LJ9eeIRt+2A$_^wMpfCXf+ z%?-DCpM2ZkZJRFpQ@F`AF`(3vKgbp^jV{{s<0Oe{x9P z+*^!Q>cbqu@uVDtbK+^XIk9+~a`-@-_86FTYy38`@GF>ie$c=VJ7RyEgSmVpZjK1} z+5nxi*N~tec9<&Pjw!I9cxCE?<8P%Y_PxR-;&fD*(2!~NXsFet9p9a_-y)0aC6d-h z^MxW>LgkRw@oujx#+$yIDSKcZTf7M7K?fN^RUw2^JIBcj=9xi~Le61AqpFTMn%2J& z@9_&WDO%2|9^M81EY+6C$i$K3TO>6i$B5sZ$jPhE1}My`b|dRtDB1! z>)SW{|37Q+uYCHHy46=c9ra^6Yb0v~HVuIc2?C*iK!Qe*NSF`<%77q_L>%e+51@oG zQq0uJ!8Aw-$tIKn0zS>grErxpqEZo*xRBC^-HIa1il!w+ttK5Gx49+PDn4zh&DV_# z?gRz}tJi`7&EuKPOw=D{&KV8ny7x9flhcW*B|qyQhi3%TX2J(K`+1&}Y`m0gX~2s`s^Tda z6Fl}a^UR$l4QfbnLTJu*Q#3A9Xi{DfUPEy5AZzSuS>H}gP>ziF7K2%8Z1O6V^ES?^ z?~halz1})UkAZ`{{`g4aC?`8oL}59|F!%u+SG&y#V0>-<5X8!*GfH~8Dq`>fa5b&U zJBMQ#C7HXwEAQ+>ew1u&N|;)^i-VA0S#fY7k?&P z&bTE6Db=7~DKoz;>B3`KCBC+b7u5pDr;?4u1sd|durSle+sgn-;8z~6SDUCU(e5?E zRL-swRV`eJ3|p%%K^sr61D9;GY-Hm_4HrItQ1>bi?2jjy6l0sLfv>KDoYupz*49F| zR^QMjj%Dv*B_PdiI+-u_D07$Mp1b{BHK@I zAi`Z@Xaeht(8AI^Sk5OY1m7S8u#)jWVU2DMO8HE+SLR>YLWu=|a^uTpY>PZ z-saq@1-GZv9|Z$r;4nIaEB-6y!s-}qyO{Yvy@Z;e10(@-IjpHJQI_2_3h#1nBJsSu zjl4UTe(0qF%u>-a zxqNb)lf^k0Z)SPrR6mpRTv*>$Vs>b7KJaF$dIV8e;at=`QJuZu^`a3b54^-;@MPEw zQmwj&%^wXfZ?qXCY({(erb^xLmNGYeKFiwd@2(#ND#5wzmI?$m_oucbjKbq&T_|EGdTD~b>Zu^xCLa-~ zF0+jQhX{K&`olMQ2Pyx;nmsueE>@WrYm~Y;d7f&Y6E`J4PS%F#ic@}iRy8Et6g34B zHF3io9od316qO8Tf4A6A;9Z{s1NgLK+XY;Coi86RWW75Y{Spl9qB*Jy@3`d^*SAEE zH+-X*DPS()(YsvPcmCl`$oF=Z}(}lj?gPVZ!CxyN33g2`!omHYURyXxm}J5na-R;^3#t4mM$Hr)*z7J$D8AC%ljjWA%nP zj1~mZAt0aBBqL2CB-E;d)QU0lLXlrwM^2gEs<6xh1Yjse(OixG03aL-n7?3Tyzbbl2TeFpFM;q-40`bQPjF*=j& zz_|Du5AH=5)JGqApDm~k`V~7pwcQ(T^Qk8ur-^sZ(=4&1+`qd;yxYi>%Pp{QbwSw2L*)kqQ zEc(VxS9>=P#ddP`shn3Miv(A~j3{FDxN^5;aNjkIhK`9lfXHkvnqgP1^~|hO@@nH< z=$DuWgE0t?2=uh2!!&~h8R13pv6O@nm_=ymkX%y9&&t%;b46$hV%hVAv;nQ^{(N;% zT7y{D1x)Ld{jFk+`#-V2?;_RnaE3MP47e+=Hu=LYpw_gLlMcb3_a!#R#F$QKD0j zWQWodv8~H$Pdsn{OBYcQ*pT&rL=U$@6v_-Q7q=EcS75ud>B@`Y(UzL=rYlF-jor!5 zhv|Wq&`{PUg5I6@{5Etj;#C{QJQ|W9*-wL%&dq!T1s#Qo>~v(grFr}PGbQ*Ly}UDF z4DJv2P$^nFRxpjLtm|)u7tx(ujx@?g@e)>{UT0B#WY2nQ*K7Rx7lGxeE)Di|fUPgl z`4Jz~&pHpv?;}~1J=PZn8uX{>oaSX%eY8?Mz#;Bv#6w@m;Qn<}mToUhw$@{&-gFTr zoI;Eqlo2MqDy?f9-r;bEAFcDMtkX0VMR$xW(dE0DUOO8ht0KVnb5CQ{1gC;8;Y_~4gZM?8 zCdL^76NL*KGisW6m4nBm2+}rjK0OkDPTgaeEFMxBug7&iL9JP@8~J0&u3kzOd~LDz zj@uh^IuueLt=U;5_yPIFjiX&R=$l!O9ve6Ik#YldQ>sZXXEZFjS%-xl^qC}t+nGH~ zFdMKTK0SrQO>>uABeu*LJl8aF+_;_hz6WS)QJ{t_zq!SS%IXEVd+eXIPV911SO&Kt z-~EvOTz@Siv_sV-!vV!1|D1Lq3A0 z8xak|KK-$+ayU3ody%avZ`*@9Z3wz1Y@*aj7!}G28|d;IfhbQyC~lt8R8kaIzfqpR z9^x;SB$0=@()PMD_qyZvwxk_;0`|599qfu)LnyDfhPtx$@QPdQ3R~SiQXIA)`9ohH z<(5~-jD>CHZ@y>ocre0Sl(T*`8X%K9?eJR9IUWz zi_D0?J8ip1=3<^92o0N(jPmOO7!jQiBs64JSXdIh47O~Mk26fGnWkfIPw~&7+YS29 zQUQqD@7^d3kD{n4;KpOjd`{j+k?;RAGiBRPZwR@B#4(Mo&V~ zP}!*Hz|ASXQm6`JozaIYL5u0gEd%HeWPtlE1k`ounbTijEZmqzw+REM3!}W25EvRO z$&NW*O206hNuFDg6HJe3x%s}Lu+IS7WC_#%HKcf>wGGQEJwN9ImMvT`DeR#%v3u{r z+01m19PTAqqoGx;#y%{W;p|qrmUr6lT(k4r=S9+S5k%ENL|~`97bP5sRN6@!`9|JM z{iTKxP`>-?3=J`=pfY}yGDq1<%&49yKz8=5N%P0+*aGamyx*e5WcU-hakk4Y$l0Lg zW!Xbr_%M}8YH^!ah{U}(wWs)%i)(t8C;r4kN~SNTSVVC>Cafv3hd|n+lCvjp2!j67 z=eI{l&K^&gkr}@%F2K28&^=ne@XAZ%o7Wy^YMxKnqCfWHE}F&WFwYf&D?01O0F4S7 zlgwlu&@bz39)`@~Os-E7!{~jO0^%sZP*@t6NZ_H&h}&|-scNnM0#!sLgMulCmBz8} zfA!P$J}n18d}&A9*Tek}v8s!Wp^2lYouiGxzZt(sWbJHK4XiDUzb092&HlCX@4hhk zzAwaf1fTWdu&=pBYIiz{QgC#T+gx`_lpy&Zq)#&SRoKlPwGtIQhY~kCUwyWFB)7!` ztBg){`au|7ZCq^{QlPm{`bdJy_Qo_!|;WBcaUlmq(l=b4G>YIkpD#{>kBKg zXxRq|7hHE*w2@4GY17rkp;J#o=DV7spDe;h^GBtjFqU?8#K(R$g!HvG$j>B!_qdrL znv4!$f8{j&n*HSAm&NY$a#o`Etuv;>w^4sEL;-*J&3t&o5i?~%gMZqfKjgmJuDPY< zJ#`Qi6#cz)AT&`so`P`BB&>Rrl(I$1F)jIz8tEV5K30BH1}&+K6;$tXec4#^tFX6vy4hG3X&+D8mO`zSrXm`-fH7~$iD`>u!lxvm zmM+6smOXnP3(RIbJ*N3n_ZQREAxz$+mgKQZ$zy8^GyEC>nRL~76>ZOs-DxTf2clb= znnOo;5ZRsrSpRQ6qok8wicEF+8V|R|O^qrMqbA2tKp{_I(^W+avZR&^0F_31iy_qS zalcmSPgHetxB8s8JAwF;Tk_9)>({>8psKwG^_D&)zOuQZlF55%aoSZ!@hkbcWD2JVsU%X@zc?rGztw-yKeN^xJX_-z>oql4dw%D_r zHgBE0oy06%%$IIIxP=1kw@g^mh58m(^`G zZ+7e!z=2U^Su5*mWk}9vr^?POE1-ZGN?o#P20m6>zG<_;K7k=D+TwPDJu{ycJip>| z509H!LYukk4OQjSp9U8$LFlzu;}2AYArzGGT1De>0J5Kz=oBNPZ^{>Dg>zfMvt{p@f_rjyvkT5R zfn7FrZ_O^b648{5{S753&K0?70^Jcgg(@1>j#vOn|C_WWB2}(^lGgW-7r&|5&|e&K z+?-~1W+v5Yc2l(>x}5>tZuY73k`b*xhH>S{H^9n(PJ;3g-0D~?r*D%DtNLQN6*{IV zn0*)D`7^Tp1-4Wu8%-|q7KbA51I%DlM^Fgz`yLWj0-S^W>^=iHco(5uWl%A>ypS&B z@@^O}yocbH3=WR+frPlj_Q&_Q)VF!d+;d2vjtu1UQlG+5vvt2A?ZbvyC%~~I632+M zzmQCy%%W2vt7B%9V-Rleu;CeoQ2OblzUnl2bP0^A!aTYYp#{7MFIdxQYb*V*gUwV{nNcntyTr%m-#o)@W#?h25EBw5{J~qJ(CyUcIUR_ z8NTxjTFskg_3pN0{_(>tGdLk}V0g~2RHvEWHlLT@@xk`z2gkP?A}quM#-cp*1;mFP z+-BPw`IFub_n0a}5av`9E7^h9XMq78H23>_(E%A$DJ-sALa$`jjeZ+cY6I`WJZ$`m zXW=1S(7spEA_GeKJ1D`T^ez()sA)9z$XC(nIy{cH)#2rG6S;^aM$kFd3S$Bfz< z?M7C+v_sm0y-V1rlnRq$EX*=N!W>;igw)C^L=Ck%?I!IV5u+x->?^}57Ah%#&QY5) zSfa5MR;ML%D2pqLCRs890iZvV+L6kR z6BwN(StCsWk1BluH6y%D6?E1t>RM3W`+@pEzekf-Ud2Cr?%221s!c*JB{I@ zF~$H&+ZOd$GQW6s(|in3C~VbkF6C5%n#nzATM~HFsu8zIDjdFoW(m9ASUfR_Zb#Qk z5m?$(F4eW5hyXU&+@@9C1q2C}^ZOfT023~wU^Y632R!;F@2VeyT?Q&=XgVlajq0iC z>FK{5XwLG|$7`fRe^NwjQ$uv|-QhKL40T;LNmY_OyQUPA|88XOLTMGAF{9@l^L#X=gX#mq}C`to(-OXlCKeNVXEx*?db|cIo@1*L; z4WeUB>E|(vuRle1;fvbArzV4r^Bjp%?6@N;J+fM&^D~qNU%lRtRs1Fz`FF>`g3mzc zv`M^tzXB(C9l6{N*{E@h1ZG(?_**f-S+O#npm4j;9WA5>H{my*g*+#wq!p3KcoK5n z<#>MbyF4Du=i}u0_t_w%2TAs5c9R>{{`~;}lUj6>Dst4HI745{dFfFrD{=7zEm8RH zL9Arj2g)kg4V&?Pa>jn=>#gLt6cIRq2RY~MGuey%N%~M;v@$$@`xbJL-hn?C z?l`e8-}(LPA^P8DPR`I$-qG&w+<^ZcG z#&aY}2QcW7M%YIFhiJ=ewo);obf9*h`Jg=iItQkjhu^YYHzwAb)w-iA85>d~Mu4{) zg&pR6X{Y;mLxkuNSI)UZb_)7T0fXhu6~o09^EntFpHgmMSytd6VomFIIm9FE*?|SZb5H8T*Z;&=a z_RFs?68Y4Tk*NkLGTrEu;s27ion@-)oU*2uJ0v#Io_-U$T9fZY!=dI&Z@m~8LB(e- z{d2=G;jkq36K&w`(}|Gyh%i@9_Ci@7s{gOL$z-o6KQ4ar`+ z7YQChatT}@DYmkih~kSVVOXPAA#~1g?WpFPLm5>f{E3)K)+R_x?vV+Plj%`r+U>`m z_Xb#fSX(&c)JA>7@qQLl$5F%Oey7Q_RQB6|zS7%N=E81kX5($Z6oc;w!~XN{Ygjob z-TU(0-MptU`s)aS_@*kwU{BZlbbXAwf#PR-Uq#frpK91aC~p)yQBWy);T^e%_#tL6 zO6hkQFh;kD2?sHx1IBU+0F4s24y-XAq}%GPL3>F{^a`A;34u=dC5S+YTgxoJLo(ep z_h3+Lv~V&sn@IgdQG7?TWNQuzM(Kxmqf}K&Sl{AK&H9AX6L^xuGel`@ z)J*bNO{2~cP>efE`dwYj{WbpB7izViKU}j8*haSpfwta=HKa)* zNYYl~ANV`sv!neZ^Si_;8n8CzSX@hTr3OM(RiZxsDq46$s#JOXbEie(){{@&N5A9g7`61pu58K3c#SQqvA<**G2jim|=CPQt>S4;Ke5P}? z@tA}kGn@CXnGc{<&--XS0@jP#7p#-1Hc-3ir-cjlS38EVmT+CH`w&_(n>j8w7lYLf zT~df7Di(HZqr7B)g8x|Raka&CRD9fW^1jWX13qUm9(gpKtq$^|2~mX}(!V(IC^=>w z3?p8TDYR>P#$AbJu8r*cj!TWD3QNLhBrpIXWV#^$bNVxR5cCkl@09udqmEF^=R(o0 z%27Y5V#%>K88N(A7VRS_fV6nz4aI{?DF{w{1k#jLj!;i5@q&afqE^tZ-~0RPPs8dS z;s>zb8m3srB?v@Tioe13ehEj)m+J{> zP0gZkd`2Lw2n;M}!r8?^r2Xcse!*3nW+lr{DEQ7l<)ZnF!}vRPM8n)2O(@9tTuw7> zPt#dnB)sQOPdVR?ZYTmQND5|S!wG^g+X@RtcbWm*Sf-c&?UDs54cdzN9T=J!25lFt zOP|+793-gCpvM#!OLoDNcHt;9*u3~&qSSWl{Ggz1lMsxdGOXUmP+X16~$MhtJ` z%q$p!(8)GoB`}s$IXRS!6jHKL#h9QIM^=~bP;L>$ZW+RTW$97zr7nZl2}!V)7NDm&=zsZG=^bH^0j z)J_W5Ol>v$Q)w!_={aKk@NTrIZ1SL=%7pkTP#m2|$njfHSNXAlO#rEv>^p^AYK32E-BYs~nEpF_xr#1TJDO4SMPbrD-c zSG2{DL?-iv6}Mv-X~(;VsJ8MVp{iJal@>rk<6gjG%wA&V3hq!jM0)1zrknM;?7^0j zi(9rL^7m0lVJO=#+&?bk|6QSDK-{q8zOEwDug+lN|Lv*B8#p<+**X3VHq%FGTMk(R zgV&AgGLeZ$Iij-Y=R|cfP;@{(by4dVVpl)~%Fy5-N3T3shYd5X?{h!dpkMEZ&nmc{ z`|S_*i1aDIij4OS{moR5ApS+RmsYw+!j$oq_x4{s!kO1w9^g&>O$*zj5hE5CeBarW1DnR=phu|wwR9%Bs)ZCPTeEiFtkNh2N`38RTgE__ zOTXGpo4Yv!6*O-<_L~`~?qEd<{L1k*=`Nnw-hGXhlYPZk!@iT#EAK@7>@HuY)5@!Q z5<6Ex$05ZhBuONiz5-_rJ;CRKTjjeGe@=Y`b>Wkmc7E4FMTUsgfRoRNrhQ6El~$BW z!!(gt_%anX$;9j9UIAuD{y1fi5!jk|!lXo8MWQ#9nDEso57VsFw#Ja@8t2ZUv?K2 z{BbW%2da$k_pvKywmj`IH>ha#Llo+0^4am|DVs!Wa$^#wr-t$@gFPr=e0q(b7KMGG zeX4vnUzb|GHBQ%W`8gh;Cz5CIp)0eBfgKPqAA!@#H`h0G4+3X$aCQhAeNlaC5K|yb z{*1iE@Rz(oZk80qF~iR9yH*%ReZn-YSswWjS!*GKvsa=_!?{0*OY+ zSU;H=o<~wSMyz2*?7zQbh{Yc#^n=VvRCh#TN19{**|dk-v)nwt*|TrlxzE(>E99lUotXN;&=t5W z8tQv-97#%%-dPYB-v3Ubu>U^J}lD zVQ3g2C}3EI3Sn&#B)fS1JJ^bCgU%q|3;#2!B?*$@+xIt$-_wnRap25j?;KA@8&22S zAKlNO`k1R?3yHixRUcr!OBnBfGi@>iShtjuqGH`TAdRm` z%B8l8HaU~yYAG4$Ld=y?w;fq(X2Yq4Sc{YsmaaF7za-4j8l*!d%$h9y(g)LRg_5Cx2;u! zE~iyK+2(jR2jE>A5owOOi&~+LZRK7t(+K_qy~h3pZ`^r@NkjkYbOF=+gu6_Mb7^yq zvs$xgW)N^eQwPi^<1VQ^kvhoSugVZ}+$xcDN=R;-2a;+Y&ocX)vUtp|lySfzLqW1) zcUnABPS;3-_cmg#yyOt3)igEBU?4PYxB4{w<-bsNF9p$-%fHkj`AaSSp`%;g(ZbeQ z%+bPF`m22U)d67iWwQTOxQS9&mn8myQkjruES*Wxp>eISGC@b;VJ{!&BQM;E6#64R z7S!jAq+s2a4RYVz>qh7;LIvf=ApA|i;sP%b1>a~dr_ULR3hO3(Ov}?Z(;MROA234* zKe)mf04kVu43@jxebx|q2!h-bLBb;mw0;8#Q32L%;2>*c!f3`)em9vW)>=AEN?Pdj8~uCBPW>@p>7yDnLe zAVtk;Btlbs6h1pBxio_kkScjs^p+&1q*YC#lGa0XH+53RO>T(W%6uG1Xd+iJMuMVj zrPo4=IECOT@NI%-EGF>@D4J#7qRoNt8mIS+7RaH|S0Db(a zSlbK}zi{-%=t(>l&?)wyyMg{B8k!m6{YuDA#i*YZ;z9CE z!xMIBrKYKb`8+Qir_Jvpt+ECWLN^iYF@@#%uP||Vya?qlfk%7^{2$8X|0D2!K`Q@E z+`(~LUk)b*V7sQ{a=sn4)IFbSB%&GJdJu!2We^xcnu^dy38^)`85m}{StB_R{R81M z7%TK&$ku&Ud^6t4 zX8v4!VHQfkbH%zRGm&8Hs(am>rk+=Q`?C33$4kKsKeft7e7Vi!9ipRmHVnUG8!n*^ zDpQDd1W#A67-(vZPms4@u_|AP+JrAAcZeQ$;1e7u+V;H`{>hzv+IgdtuA%Km8#b?Y1@0j&0kvZQDl2PQ_NoPCB-2+qSKaZ99Fl&l%(1z4!Un-FaF47LNSnbN7XIj`wkAMN^Sz#=27OMJ02XN z=aPlP81u$EZoftO&tsSw`hD`hT(pt?|H^IW%&Kha`mf{Izpw6K#s7U1Old}~jo1T0 zlVb%yV`pIMTFTxu5wD{vf4>PTJ|Gtsqb~L+7cemme=qAOCm14rbimPcCd={U=65Rj zw_{lFA!#vFLO{qGsp{nE=vk_{A`b5XY~8(2$V>G}n0>4e(>=Wsgztc{WQy1b&#B&0 zXYRPQtuV7`&-4a8LQrLBF1CII{eX6x%SJN*7|Byzjx{40@5ONL_Kp486|d$BA{r0; zvmXYbpszeFr9cI(2V=3zn5e4Wk1d1l&oMVTEG@A)p+6aj!wGD~-x%Z3vFtFu0`a!1 zUsyJb{6-aSE38|!SqoNkT#lE@MZ`US14|BBjug}h{VMLfc=M=0e5^DN?>v+m$9Rk1*zhN0q?EoI>^X+6nG(6VzkV`cY{ zT0i9~qX$)#G>-mj?kebB#?O7%rQ^FU|8zY5hVcGXmw&H`kJ9&U{B3K#u=UhDpt9*eUWO>D=q zHDmNh$^=qg!n3uR0HJKKG=g3IdgHJqfkZ}tZw3l@fmEcR{nCKTGdpX(ikQhw(ZsSdx%{jdgLXiyUK49M>bTxTGP>%diV|PP-?s)&Q z>pb@s`9itJovhc}xe^>i0XWovm$weA>Q(OHAGIqS+sKUocF_(f^Y+ z!2Jvm2|zGQc;$3*J(}G7+0*kE)E>eR&B?+YF|{T?U}Bioy){70zXEs#@(<-qqqK86 z98{y2{kyV^uw{o>DX(N`neV7U?b1cP&cs^;vX?D6d zZ2OzqTXOB}nwLNr{GDn=Y0A}w==snfT#|{$U;g_jP+?n@iGxQLuKJz^{(x1rx45Kz za5<9Ejmf8bQ9h~5S(RwO<(QkY!Pp3M_4|#(zzAqLKd&tG<^xi$RO;Uxbm4(S+g&oJ zsF-}^u+l8m{Q)Ex#B&^my%FoWw$UsDw@n@83=E zO?#2yxm{aU937em$H*VQ$-dk%aBjJmQED`ey+Rrg>@k6o2WE0>D1)PoISpS&2AMW* zU@~KGqTRCWC<&Nm`cOBxuHZ#^ciErYBP}qP=nbi;QgxgR_P^b=1Dec#rZ5D8=5E=Xi>Wl|)2e+_@DMxkF&gMaQ39p57%y4J#sPHAcTQ_GQRc?>lXdxvU&B4eS zmqD}F3qFh!&A>uqL~21O!J1gdN_G;xMxpM0!B~n8bwQdd1T)3h;g%%}{1>F!%U7fN z`@1gxau@iAOp1Ti<=f5A^dE~NBlArf8~MAiENX1!v)r-_F|W>;3xOcb5CK7jugdGb z(X68<1vgmrmdAS{HW%prBof|W>79#2%9xh*I%8*U_H#Qs8>rG~PKbjXcQv(tN?}~D#wiUpV zi94kgzXW)Nklu>~vFZ^n1k0PM9%3@_AGOlP3&rOm3r6MP2Olkj{$X(c^dRrML(q3o zE0sYvG?^t92dd6y^=@;c%;v?RJSzuwJz6}J`nq+-Ao3`mMGKFrt{PYkZU`Zs$_YGE z?QF>l+o8nv6aRf9e3&4jg#(VY4oP%XD`Q2wVUBLP{j!S;|I+@uQxGAN4x(a2>$nKQ`d7sQN#3Q|Cs@3VMQ$!r4)X( z$`Gb3wTMuA1M^Qb(vE-x-Z)^D>lhoJN^TAd*nV;8L$DvFX>$M{N&`M~?!1Yh$#TfN z6(0FX%x~UMR3sNC<#?C<+(gc)FU;E-<6xNJpaDZA=iLN)vO0be40!{%r9~>2paVkkjR*KIImi_R( zDOiVIrzOvI7_^l(<{JM-vkd}29dmM)Dg1b9!0=fG&8$c#Li{;aJ^yzAd86Md0tw-jbA_qPbDG3}SZrTearTJTO8$8p&Rz(T#9C(OL zt=u-Pb(MMbjFyu3w-z>;3Wh9vS(H!YVztSW)FD$a9sC(!x1xPI-MH|sZ(s5Us@10+ z>2r5*9T(jpHni(AcZBQn7s29>yqMUVx`^{{VSkD0Wq7&zi1|xqgc_7Dsl1Shhf6JE zPAD(wfEJ2ZQ9W3{WK6&6j?iOYnc3p+Xu*K7vv+Vd()J)(@eT7Snv07|yNT*>GF3-8CKFxJx6U~*G zG^_0@uQN_^F%Ks<5pxU-!`O4R|8VFUS!B%4K|w#Q6y(_0P2*v38QoaJmK2wprP6dV zp3)AR`D!y$MxAs6^m;jMTIHT&omK0w@OVeE`~_1qb6V-$YM(lPPxCL+!5nf0@|;wl z^-il*fO!oJzwa+aoeTKHYm3*~z^Wt9XQD9pi^3(%@P7IWaNP>9szJqrsslqj=XXK9 z4P0-50Y3yFux;KT*tS3@4EY*RPkW$7V+F9mmBCi*w=X4STQ@{p!tZc1DbRF)NS4S8 zjRhQAc&}XJe4a;)_UWo*=oQylp@^+!0;Ij?CoXaLPOPREId&NMp*cL9TP;0OM95L? z7rDgJhD8+eR~eU0;lOjr`^FZN_PiVmc1%#ffQ?Iz&G{z#rgNa*wqp-glySTrhHpyFL?ZMFg^oln zu~bY<9zK<*LqLBP>6~Q*Qdd*+2)M19srR#lY-=U2ckd+$@JIk^$OfiOBbT6diH`QL1kuweVcfmd~1&XArs|aJMcg3zEheonmS8(fAQjfBLax#rHhJ^gmplO z#AJM6y_43ZQA=S~OR7T-fb)p@NKs1xXT{aj?Uq}aPTVdTOI6fWbh&Cr`rKI=PS>GM z8G!FkFW-$8mma4pIY_C>&+aw_0huelD_ zag4PfaK1hXQ2>VNTrZL%b+TR%`7eU-TBOQjM_V>7UrKd1cL#C3C&PIhQa}jY_5hnC zvDYqpC@+O5IsHCEoN!(jt=r+R?t=C2jUTU3C|-p@&Yofa`?C_rsYg$1$&1 zPNhH)<+?!SXsEK)LR2O)KYW)RrdQsB-u=7RAdrQ-S1pL_#(k$DPN}4#k zW6*e@cvN`sJ*crftC0TAr2I}nCCT-LfjRp-S$}9ZU)Lra&`N6~BE8&3I@~3m5b*X# zca2=0{;c|DO-95u#IVrA_02}|_kJjUt06m1eEBnQjUIf+w9HRWMsx(F&J!fctEB|% z2T9S0eOtH7WpwNnjIa>mcBvj$(ozKSfx1#b|38$9_w6A?R2gKa(*DRkCXCe-$eYkq zKw$A*B$EEa+OROR6U#0nKa1FKjBhWu>Q-I1dkunc*;KSAER;*a)dL4Ir%ec3yZ9JO zf8+{Wp49GRg%JOpGj5!zl{*IM6lucZ!i{}C7tZQ*x1cTpR`Wr2v5DK$si(3b z{Xk7_Xq~PHDOI7AV$zUAvN+4#kZHA|wp2wZcz!o!18G@kVZ$Pu*n(_tsk(y#dG-+2 zv9p9QQ)I{k5>K{ipHU(v?dO}IP3VE9ET{PkPn$G>6oR=)WUqr+>4B8%aa0Xdd>k7q zG5MOb!0RJEU$sOaGc@;Bn@58yY1v4De^}n@qzCog#-qtk+QZRBvy$o^1=bZnoMrN; zj+L1c`IexvLEpIy;gCJC+Oi`lleq$d_@t4kgA4>GkFm&YZZ|z`g}jHnhZd33NKB1| zJN(Zjd-U$&JggGy)c|$4nf-Iu&fHy`7jlr}Q5WTbj@oFfs$HFz=7R@3IP)D@xa}c& ze=pcZp-m{=5MS�TtddBDArLbi=Fz;ha(iFGGm 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 F{{w4+nh^j1 literal 0 HcmV?d00001 diff --git a/plugin.xml b/plugin.xml new file mode 100644 index 0000000..8d825fd --- /dev/null +++ b/plugin.xml @@ -0,0 +1,286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/schema/dsds.exsd b/schema/dsds.exsd new file mode 100644 index 0000000..298620c --- /dev/null +++ b/schema/dsds.exsd @@ -0,0 +1,84 @@ + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + diff --git a/src/cn/com/origin/autocodemanager/Activator.java b/src/cn/com/origin/autocodemanager/Activator.java new file mode 100644 index 0000000..ade7222 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/Activator.java @@ -0,0 +1,52 @@ +package cn.com.origin.autocodemanager; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "cn.com.origin.autocodemanager.AutoCodeManagerPerspective"; + + // The shared instance + private static Activator plugin; + + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } +} diff --git a/src/cn/com/origin/autocodemanager/AutoCodeManagerPerspective.java b/src/cn/com/origin/autocodemanager/AutoCodeManagerPerspective.java new file mode 100644 index 0000000..2257c62 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/AutoCodeManagerPerspective.java @@ -0,0 +1,44 @@ +package cn.com.origin.autocodemanager; + +import org.eclipse.ui.IFolderLayout; +import org.eclipse.ui.IPageLayout; + +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.IsShowAutocodeManagerPerspective; + +import com.teamcenter.rac.aifrcp.perspective.AbstractRACPerspective; +import com.teamcenter.rac.util.MessageBox; + +public class AutoCodeManagerPerspective extends AbstractRACPerspective { + /** The perspective ID */ + + public static final String ID = "cn.com.origin.autocodemanager.AutoCodeManagerPerspective"; + + @Override + public void createInitialLayout(IPageLayout layout) { + layout.setEditorAreaVisible(false); + layout.setFixed(false); + String editorArea = layout.getEditorArea(); + if (new IsShowAutocodeManagerPerspective().getValue()) { + layout.addStandaloneView(AutoCodeManangerConstants.AutoCodeManagerView_ID, true, IPageLayout.LEFT, 0.24f, editorArea); + IFolderLayout middleFolder = layout.createFolder("ͼ", IPageLayout.LEFT, 0.68f, editorArea); + + middleFolder.addView(AutoCodeManangerConstants.AutoCodeManagerTreeCodeView_ID); + middleFolder.addView(AutoCodeManangerConstants.AutoCodeManagerListCodeView_ID); + + middleFolder.addView(AutoCodeManangerConstants.AutoCodeTestView_ID); + + layout.getViewLayout(AutoCodeManangerConstants.AutoCodeManagerView_ID).setCloseable(false); + layout.getViewLayout(AutoCodeManangerConstants.AutoCodeManagerView_ID).setMoveable(false); + + layout.getViewLayout(AutoCodeManangerConstants.AutoCodeManagerTreeCodeView_ID).setCloseable(false); + layout.getViewLayout(AutoCodeManangerConstants.AutoCodeManagerTreeCodeView_ID).setMoveable(false); + +// layout.getViewLayout(AutoCodeManangerConstants.AutoCodeTestView_ID).setCloseable(false); + layout.getViewLayout(AutoCodeManangerConstants.AutoCodeTestView_ID).setMoveable(false); + } else { + MessageBox.post("ûȨ!", "INFO", MessageBox.WARNING); + } + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.java b/src/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.java new file mode 100644 index 0000000..320c867 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/AbstractTreeViewPart.java @@ -0,0 +1,31 @@ +/** + * @author tyl + * @Action ini + * 2011-3-22 + */ +package cn.com.origin.autocodemanager.common; + +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; + +public class AbstractTreeViewPart extends ViewPart { + public AbstractCreateTreeView createView; + + public AbstractTreeViewPart() { + super(); + } + + @Override + public void createPartControl(Composite parent) { + } + + @Override + public void setFocus() { + + } + + public AbstractCreateTreeView getCreateView() { + return createView; + } +} diff --git a/src/cn/com/origin/autocodemanager/common/AutoCodeConstants.java b/src/cn/com/origin/autocodemanager/common/AutoCodeConstants.java new file mode 100644 index 0000000..82e38d3 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/AutoCodeConstants.java @@ -0,0 +1,32 @@ +package cn.com.origin.autocodemanager.common; + +public interface AutoCodeConstants { + // AutoCode + public static final String AutoCode_APPLICATION_ID = "cn.com.origin.autocode"; + + public static final String AutoCodeCodeView_ID = "cn.com.origin.autocode.views.AutoCodeView"; + public static final String AutoCodeCodeView_Name = ""; + + public static final String AutoCodeItemTypeView_ID = "cn.com.origin.autocode.views.AutoCodeItemTypeView"; + public static final String AutoCodeItemTypeView_Name = ""; + + public static final String AutoCodeGroupView_ID = "cn.com.origin.autocode.views.AutoCodeGroupView"; + public static final String AutoCodeGroupView_Name = "Աָ"; + + public static final String AutoCodeSegmentView_ID = "cn.com.origin.autocodemanager.views.AutoCodeSegmentView"; + public static final String AutoCodeSegmentView_Name = ""; + + + + public static final String as1[] = { "Item" ,"Part","Design"};// +// public static final String as2[] = { "Part", "Design", "PSSignal", "PSConnection", "Schedule", "ScheduleTask", "Architecture", "AllocationMap", "CAEItem", "CAEBCItem", "CAEConnItem", "CAELoadItem", "MEOP", "MEProcess", "MEWorkarea", "MEContext", "MEGenericBOP", "MEProductBOP", +// "Vendor", "BidPackage", "SwDesignComp", "PhysicalPart", "ChangeItem", "ParmDef", "ParmDefBCD", "ParmDefBitDef", "ParmDefBool", "ParmDefDate", "ParmDefDbl", "ParmDefHex", "ParmDefInt", "ParmDefSED", "ParmDefStr", "ParmGrpVal", "CalParm", "ParmGrpDef" }; + + // public static final String as1[] = { "Item", "Drawing" };"Part", "Design", + public static final String as2[] = { "EngChange", "PSSignal", "PSConnection", "Schedule", "ScheduleTask", "Architecture", "AllocationMap", "CAEItem", "CAEBCItem", "CAEConnItem", "CAELoadItem", "MEOP", "MEProcess", "MEWorkarea", "MEContext", "MEGenericBOP", "MEProductBOP", + "Vendor", "BidPackage", "SwDesignComp", "PhysicalPart", "ChangeItem", "ParmDef", "ParmDefBCD", "ParmDefBitDef", "ParmDefBool", "ParmDefDate", "ParmDefDbl", "ParmDefHex", "ParmDefInt", "ParmDefSED", "ParmDefStr", "ParmGrpVal", "CalParm", "ParmGrpDef" }; + + // public static final String startWithTypes[]={"SJ3_"}; +// public static final String startWithTypes[] = {}; + +} diff --git a/src/cn/com/origin/autocodemanager/common/AutoCodeManagerImageKey.java b/src/cn/com/origin/autocodemanager/common/AutoCodeManagerImageKey.java new file mode 100644 index 0000000..f1fc696 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/AutoCodeManagerImageKey.java @@ -0,0 +1,43 @@ +package cn.com.origin.autocodemanager.common; + +public interface AutoCodeManagerImageKey { + public static final String ICONSPATH = "icons/"; + public static final String HOME_IMAGE = ICONSPATH + "home_data.png"; + + public static final String CODE_IMAGE = ICONSPATH + "code_16.png"; + public static final String CODEGROUP_IMAGE = ICONSPATH + "folder_16.png"; + + public static final String NODEVALUE_IMAGE = ICONSPATH + "nodevalue_16.png"; + public static final String CODENODE_IMAGE = ICONSPATH + "codenode_16.png"; + + public static final String TREE_IMAGE = ICONSPATH + "tree_16.png"; + public static final String TREENODE_IMAGE = ICONSPATH + "treenode_16.png"; + + public static final String LIST_IMAGE = ICONSPATH + "list_16.png"; + public static final String LISTNODE_IMAGE = ICONSPATH + "listproperty_16.png"; + public static final String LISTVALUE_IMAGE = ICONSPATH + "listvalue_16.png"; + + public static final String OK_IMAGE = ICONSPATH + "ok_16.png"; + public static final String CLOSE_IMAGE = ICONSPATH + "close_16.png"; + + public static final String IMPORT_IMAGE = ICONSPATH + "import_16.png"; + public static final String EXPORT_IMAGE = ICONSPATH + "export_16.png"; + + public static final String ORGANIZATION_IMAGE = ICONSPATH + "organization_16.png"; + public static final String GROUP_IMAGE = ICONSPATH + "group_16.png"; + public static final String ROLE_IMAGE = ICONSPATH + "role_16.png"; + public static final String PERSON_IMAGE = ICONSPATH + "person_16.png"; + + public static final String ITEM_IMAGE = ICONSPATH + "item_16.png"; + + public static final String LOCK_IMAGE = ICONSPATH + "lock_16.png"; + public static final String UNLOCK_IMAGE = ICONSPATH + "unlock_16.png"; + + public static final String EDIT_IMAGE = ICONSPATH + "edit_16.png"; + public static final String REMOVE_IMAGE = ICONSPATH + "remove_16.png"; + public static final String DELETE_IMAGE = ICONSPATH + "delete_16.png"; + + public static final String SEQ_IMAGE = ICONSPATH + "seq_16.png"; + public static final String ADD_IMAGE = ICONSPATH + "add.png"; + +} diff --git a/src/cn/com/origin/autocodemanager/common/AutoCodeManagerPropertyName.java b/src/cn/com/origin/autocodemanager/common/AutoCodeManagerPropertyName.java new file mode 100644 index 0000000..4901ef9 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/AutoCodeManagerPropertyName.java @@ -0,0 +1,152 @@ +package cn.com.origin.autocodemanager.common; + +public interface AutoCodeManagerPropertyName { + // Cd9_TreeAndListCodeNode + public final static String TreeAndListCodeNode_isContainsChildren = "isContainsChildren" ;// Ƿӽڵ + public final static String TreeAndListCodeNode_uid = "uid" ;// uid + public final static String TreeAndListCodeNode_node_index = "cd9_node_index"; // Integer ڵ + public final static String TreeAndListCodeNode_node_type = "cd9_node_type";// String ڵ + public final static String TreeAndListCodeNode_node_name = "cd9_node_name";// String ڵ + public final static String TreeAndListCodeNode_node_value = "cd9_node_value"; // String ڵֵ + public final static String TreeAndListCodeNode_node_desc = "cd9_node_desc"; // String ڵ + public final static String TreeAndListCodeNode_code_style = "cd9_code_style"; // String ʽ + public final static String TreeAndListCodeNode_code_length = "cd9_code_length"; // int 볤 + public final static String TreeAndListCodeNode_is_root = "cd9_is_root";// boolean ǷǸڵ + public final static String TreeAndListCodeNode_rule_node = "cd9_rule_node";// boolean ǷǸڵ + public final static String TreeAndListCodeNode_reference_nodes = "cd9_reference_nodes"; // õĽڵ + + public final static String TreeAndListCodeNode_is_lock = "cd9_is_lock";// boolean Ƿ + public final static String TreeAndListCodeNode_create_date = "cd9_create_date";// Date + public final static String TreeAndListCodeNode_last_revise_date = "cd9_last_revise_date";// Date ޸ + public final static String TreeAndListCodeNode_create_user = "cd9_create_user";// TypeReference + public final static String TreeAndListCodeNode_last_revise_user = "cd9_last_revise_user";// TypeReference ޸ + + public final static String TreeAndListCodeNode_seq_begin_value = "cd9_seq_begin_value"; // Integer ˮʼֵ + public final static String TreeAndListCodeNode_seq_max_value = "cd9_seq_max_value"; // Integer ˮֵ + public final static String TreeAndListCodeNode_seq_length = "cd9_seq_length"; // Integer ˮ볤 + public final static String TreeAndListCodeNode_isDefaultSelected = "cd9_isDefaultSelected"; // boolean ǷΪĬѡУб + + String[] searchTreeAndListCodeNodePropNames = { + AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, + AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, + AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, + AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, + AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, + AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, + + AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, + AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, + AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, + + AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, + AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, + + AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, + AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, + AutoCodeManagerPropertyName.TreeAndListCodeNode_isContainsChildren + }; + + String[] searchSegmentPropNames = { + AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, + AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, + AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, + AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, + AutoCodeManagerPropertyName.TreeAndListCodeNode_isContainsChildren + }; + + // Cd9_CodeRelation + public final static String CodeRelation_parent_node = "cd9_parent_nodes"; // TypeReference ڵ + public final static String CodeRelation_current_node = "cd9_current_node"; // TypeReference ǰڵ + public final static String CodeRelation_children_nodes = "cd9_children_nodes"; // TypeReference ӽڵ + + public final static String CodeRelation_create_date = "cd9_create_date";// Date + public final static String CodeRelation_create_user = "cd9_create_user";// TypeReference + + // Cd9_ClassificationCodeNode + public final static String ClassificationCodeNode_node_index = "cd9_node_index"; // Integer ڵ + public final static String ClassificationCodeNode_node_name = "cd9_node_name";// String ڵ + public final static String ClassificationCodeNode_segment = "cd9_segment";// String + public final static String ClassificationCodeNode_create_date = "cd9_create_date";// Date + public final static String ClassificationCodeNode_last_revise_date = "cd9_last_revise_date";// Date ޸ + public final static String ClassificationCodeNode_create_user = "cd9_create_user";// TypeReference + public final static String ClassificationCodeNode_last_revise_user = "cd9_last_revise_user";// TypeReference ޸ + public final static String ClassificationCodeNode_grant_users = "cd9_grant_users";// TypeReference Ȩû + public final static String ClassificationCodeNode_grant_roles = "cd9_grant_roles";// TypeReference Ȩɫ + public final static String ClassificationCodeNode_grant_groups = "cd9_grant_groups";// TypeReference Ȩ + + // type + public final static String ItemName = "item"; + public final static String RootNodeName = "root"; + public final static String TreeName = "tree"; + public final static String ListName = "list"; + public final static String CodeGroupName = "codeGroup"; + public final static String TreeNodeName = "treeNode"; + public final static String ListPropertyNodeName = "listPropertyNode"; + public final static String ListPropertyValueNodeName = "listPropertyValueNode"; + + public final static String ComponentName = "component"; + public final static String OrganizationName = "organization"; + public final static String SegmentName = "segment"; + public final static String GroupName = "group"; + public final static String RoleName = "role"; + public final static String UserName = "user"; + public final static String LockName = "lock"; + public final static String AddChildrenTreeNodeName = "AddChildrenTreeNode"; + public final static String AddTreeNodeName = "AddTreeNode"; + public final static String AddRuleRootNodeName = "AddRuleRootNode"; + public final static String AddRuleGroupNodeName = "AddRuleGroupNode"; + + // Item + public final static String Item_Desc = "object_desc"; + public final static String Item_generateID = "cd9_generateID"; + public final static String Item_codeDesc = "cd9_codeDesc"; + public final static String Item_isLock = "cd9_isLock"; + public final static String Item_codePattern = "cd9_codePattern"; + public final static String Item_codeRuleName = "cd9_codeRuleName"; + public final static String Item_codeID = "cd9_codeID"; + public final static String Item_codeStyle = "cd9_codeStyle"; + public final static String Item_uom_tag = "uom_tag"; + + + + // Item Revision + public final static String ItemRevision_isLock = "cd9_isLock"; + + // codeStyle + public final static String Code_seq = "[L]"; + public final static String Code_pattern = "[T]"; + public final static String Code_year2 = "[YY]"; + public final static String Code_year4 = "[YYYY]"; + public final static String Code_mouth2 = "[MM]"; + public final static String Code_mouth1 = "[M]"; + public final static String Code_date2 = "[DD]"; + public final static String Code_date1 = "[D]"; + public final static String Code_class = "[C]"; + + // Cd9_CodeCounter + public final static String CodeCounter_index = "cd9_index"; + public final static String CodeCounter_name = "cd9_name"; + public final static String CodeCounter_recycleID = "cd9_recycleID"; + public final static String CodeCounter_isUsed = "cd9_isUsed"; + public final static String CodeCounter_createDate = "cd9_createDate"; + public final static String CodeCounter_createUser = "cd9_createUser"; + public final static String CodeCounter_last_revise_date = "cd9_last_revise_date";// Date ޸ + public final static String CodeCounter_last_revise_user = "cd9_last_revise_user"; + + // Cd9_CodeNextID + public final static String Counter_name = "cd9_name"; + public final static String Counter_nextID = "cd9_nextID"; + + // йص뵼 + public final static String CodeClassfication = "CodeClassfication"; + public final static String CodeTree = "CodeTree"; + public final static String CodeListName = "CodeListName"; + public final static String CodeListValue = "CodeListValue"; + +// public final static String[] TreeAndListCodeNode_Titles = { "", "", "", "ֵ", "ע", "ʽ", "볤", "ˮʼֵ", "ˮֵ", "ǷΪڵ", "Ƿ", "", "޸", "", "޸" }; + + public final static String[] TreeAndListCodeNode_Titles = { "", "", "", "ֵ", "ע", "ǷΪĬֵ", "ʽ", "볤", "ˮʼֵ", "ˮֵ", "ǷΪڵ", "Ƿ", "", "޸", "", "޸" }; + public final static String[] ClassificationCodeNode_Titles = { "", "", "", "ֵ", "ע", "ʽ", "ǷΪڵ", "Ƿ", "", "޸", "", "޸" }; + public final static String[] CodeSequence_Titles = { "", "", "ʼֵ", "ֵ", "", "", "", "Ƿ", "", "޸", "", "޸" }; + +} diff --git a/src/cn/com/origin/autocodemanager/common/AutoCodeManangerConstants.java b/src/cn/com/origin/autocodemanager/common/AutoCodeManangerConstants.java new file mode 100644 index 0000000..b8ca404 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/AutoCodeManangerConstants.java @@ -0,0 +1,34 @@ +package cn.com.origin.autocodemanager.common; + +/** + * @author river + * + */ +public interface AutoCodeManangerConstants { + // autocodemannager + public static final String AutoCodeMananger_APPLICATION_ID = "cn.com.origin.autocodemanager"; + public static final String AutoCodeManagerView_ID = "cn.com.origin.autocodemanager.views.AutoCodeSegmentView"; + public static final String AutoCodeManagerView_Name = ""; + public static final String AutoCodeManagerTreeCodeView_ID = "cn.com.origin.autocodemanager.views.AutoCodeTreeCodeView"; + public static final String AutoCodeManagerTreeCodeView_Name = ""; + public static final String AutoCodeManagerListCodeView_ID = "cn.com.origin.autocodemanager.views.AutoCodeListCodeView"; + public static final String AutoCodeManagerListCodeView_Name = "б"; + +// public static final String AutoCodeTreeCodeView_ID = "cn.com.origin.autocodemanager.views.AutoCodeTreeCodeView"; +// public static final String AutoCodeTreeCodeView_Name = ""; + +// public static final String AutoCodeListCodeView_ID = "cn.com.origin.autocodemanager.views.AutoCodeListCodeView"; +// public static final String AutoCodeListCodeView_Name = "б"; + + + public static final String AutoCodeManangerShowNoneView_Name = ""; + public static final String AutoCodeManangerShowNoneView_ID = "cn.com.origin.autocodemanager.views.ShowNoneView"; + + public static final String AutoCodeStyleView_ID = "cn.com.origin.autocodemanager.views.AutoCodeStyleView"; + public static final String AutoCodeStyleView_Name = "ʽ"; + + public static final String AutoCodeManagerGroupView_ID = "cn.com.origin.autocodemanager.views.AutoCodeGroupView"; + public static final String AutoCodeTestView_ID = "cn.com.origin.autocodemanager.views.AutoCodeTestView"; + public static final String AutoCodeTestView_Name = "֤"; + +} \ No newline at end of file diff --git a/src/cn/com/origin/autocodemanager/common/BusinessType.java b/src/cn/com/origin/autocodemanager/common/BusinessType.java new file mode 100644 index 0000000..7a531b1 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/BusinessType.java @@ -0,0 +1,218 @@ +package cn.com.origin.autocodemanager.common; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import javax.swing.ImageIcon; +import com.teamcenter.rac.common.TCUtilities; +import com.teamcenter.rac.common.create.DisplayTypeInfo; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentGroup; +import com.teamcenter.rac.kernel.TCComponentGroupMember; +import com.teamcenter.rac.kernel.TCComponentGroupMemberType; +import com.teamcenter.rac.kernel.TCComponentGroupType; +import com.teamcenter.rac.kernel.TCComponentRole; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCSession; + +public class BusinessType { + private TCSession session; + protected Map typeToIcon; + private String origin_codeNeedLoadItemStartWords = "origin_codeNeedLoadItemStartWords"; + private String origin_codeNeedLoadItemTypes = "origin_codeNeedLoadItemTypes"; + + public BusinessType(TCSession session) { + this.session = session; + } + + public void getItemTypes(String rootType) { + com.teamcenter.services.rac.core._2007_06.DataManagement.BaseClassInput abaseclassinput[] = new com.teamcenter.services.rac.core._2007_06.DataManagement.BaseClassInput[1]; + abaseclassinput[0] = new com.teamcenter.services.rac.core._2007_06.DataManagement.BaseClassInput(); + abaseclassinput[0].baseClass = rootType; + try { + HashMap hashmap = (HashMap) TCUtilities.getDisplayableTypeNamesWithDisplayInfo(session, abaseclassinput); + } catch (TCException e) { + e.printStackTrace(); + } + } + + public Map getTypes(String rootType, String exclusionTypes[]) { + HashMap hashmap = new HashMap(); + com.teamcenter.services.rac.core._2007_06.DataManagement.BaseClassInput abaseclassinput[] = new com.teamcenter.services.rac.core._2007_06.DataManagement.BaseClassInput[1]; + abaseclassinput[0] = new com.teamcenter.services.rac.core._2007_06.DataManagement.BaseClassInput(); + abaseclassinput[0].baseClass = rootType; + // abaseclassinput[0].exclusionTypes = exclusionTypes; + // TCUtilities.getDisplayTypeInfoFromTypeNames(tcsession, as) + try { + hashmap = (HashMap) TCUtilities.getDisplayableTypeNamesWithDisplayInfo(session, abaseclassinput); + + Set key = hashmap.keySet(); + Iterator it = key.iterator(); + Set value = hashmap.entrySet(); + Iterator it2 = value.iterator(); + } catch (TCException e) { + e.printStackTrace(); + } + return hashmap; + } + + /** + * + * ȡϵͳû + * + * @return + * @throws TCException + */ + public TCComponent[] getGroup() throws TCException { + return ((TCComponentGroupType) session.getTypeComponent("Group")).extent(); + } + + /** + * ȡṹ + * + * @return + * @throws TCException + */ + public TCComponent[] getRootGroups() throws TCException { + return ((TCComponentGroupType) session.getTypeComponent("Group")).getRootGroups(); + } + + /** + * ȡϵͳԱ + * + * @return + * @throws TCException + */ + public TCComponent[] getGroupaArrayList() throws TCException { + + TCComponent[] tccomponentGroups = null; + TCComponentGroupMemberType groupMember = (TCComponentGroupMemberType) session.getTypeComponent("GroupMember"); + tccomponentGroups = groupMember.extent(); + if (tccomponentGroups != null && tccomponentGroups.length > 0) { + for (int i = 0; i < tccomponentGroups.length; i++) { + TCComponentGroupMember tccomponentGroupMembers = (TCComponentGroupMember) tccomponentGroups[i]; + TCComponentGroup group = tccomponentGroupMembers.getGroup(); + } + } + return tccomponentGroups; + } + + public TCComponent[] getGroupRoles(TCComponentGroup componentGroup) { + if (componentGroup == null) { + return null; + } + TCComponent[] components = null; + try { + components = componentGroup.getRolesAndGroups(); + } catch (TCException e) { + e.printStackTrace(); + } + return components; + } + + public TCComponent[] getRoleUsers(TCComponentGroup componentGroup, TCComponentRole role) { + if ((componentGroup == null) || (role == null)) { + return null; + } + + TCComponent[] components = null; + try { + components = role.getUsers(componentGroup); + } catch (TCException e) { + e.printStackTrace(); + } + return components; + } + + public ImageIcon getSelectedTypeIcon(String s) { + ImageIcon imageicon = null; + if (typeToIcon == null) + typeToIcon = new HashMap(0); + imageicon = (ImageIcon) typeToIcon.get(s); + return imageicon; + } + + public Map loadTypes(String s1[], String s2[]) { + Map map = buildInput(s1, s2); + Map newHashMap = new HashMap(); + long time11 = System.nanoTime(); + //Map hashMap = TCUtilities.loadSubClassesTypesAndIcons(session, map); +// 20130913 mod + Map hashMap = TCUtilities.loadSubTypesAndIcons(session, map); + long time12 = System.nanoTime(); + System.out.println("ʱ(ms) " + (time12 - time11) / 1000000); + if (hashMap != null && hashMap.size() > 0) { + Set entry = hashMap.entrySet(); + Object entryValue[] = entry.toArray(); + Set key = hashMap.keySet(); + Object keyValue[] = key.toArray(); + for (int m = 0; m < keyValue.length; m++) { + DisplayTypeInfo displaytypeinfo = (DisplayTypeInfo) keyValue[m]; + String typeName = displaytypeinfo.getTypeName(); + // String[] startWithTypes = AutoCodeConstants.startWithTypes; + String[] needLoadItemTypes = TCPreferenceUitl.getPreference(session, TCPreferenceService.TC_preference_site, origin_codeNeedLoadItemTypes); + String[] startWithTypes = TCPreferenceUitl.getPreference(session, TCPreferenceService.TC_preference_site, origin_codeNeedLoadItemStartWords); + if (needLoadItemTypes.length > 0) { + for (int i = 0; i < needLoadItemTypes.length; i++) { + if (typeName.equals(needLoadItemTypes[i].trim())) { + if (!newHashMap.containsKey(keyValue[m])) { + newHashMap.put(keyValue[m], hashMap.get(keyValue[m])); + } + } else { + continue; + } + } + } else { + if (startWithTypes.length > 0) { + for (int i = 0; i < startWithTypes.length; i++) { + // System.out.println("startWithTypes[i].trim()=================" + startWithTypes[i].trim()); + if (startWithTypes[i].trim().length() > 0) { + if (typeName.startsWith(startWithTypes[i].trim())) { + if (!newHashMap.containsKey(keyValue[m])) { + newHashMap.put(keyValue[m], hashMap.get(keyValue[m])); + } + } else { + continue; + } + } + } + } else { + newHashMap.put(keyValue[m], hashMap.get(keyValue[m])); + } + } + } + } + return newHashMap; + } + + private Map buildInput(String s[], String ss[]) { + HashMap hashmap = null; + String as[] = s; + if (as != null && as.length > 0) { + hashmap = new HashMap(as.length); + String as1[] = as; + int i = as1.length; + for (int j = 0; j < i; j++) { + String s1 = as1[j]; + if (s1 == null || s1.trim().length() <= 0) + continue; + String as2[] = ss; + ArrayList arraylist = new ArrayList(0); + if (as2 != null && as2.length > 0) { + String as3[] = as2; + int k = as3.length; + for (int l = 0; l < k; l++) { + String s3 = as3[l]; + if (s3 != null && s3.trim().length() > 0) + arraylist.add(s3.trim()); + } + } + hashmap.put(s1, arraylist); + } + } + return hashmap; + } +} diff --git a/src/cn/com/origin/autocodemanager/common/CacheImage.java b/src/cn/com/origin/autocodemanager/common/CacheImage.java new file mode 100644 index 0000000..637dc0d --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/CacheImage.java @@ -0,0 +1,120 @@ +package cn.com.origin.autocodemanager.common; + +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import java.awt.image.DirectColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.WritableRaster; +import java.net.URL; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import javax.swing.ImageIcon; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.PaletteData; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +public class CacheImage { + private final Map imageMap = new HashMap(); + + private static CacheImage INSTANCE; + + private CacheImage() { + } + + // ģʽCacheImageʵ + public static CacheImage getINSTANCE() { + if (INSTANCE == null) + INSTANCE = new CacheImage(); + return INSTANCE; + } + + // ͼ + public Image getImage(String applicationID,String imageName) { + if (imageName == null) + return null; + Image image = (Image) imageMap.get(imageName); + if (image == null) { + image =AbstractUIPlugin.imageDescriptorFromPlugin( + applicationID,imageName).createImage(); + imageMap.put(imageName, image); + } + + return image; + } + + // ͼ + public Image getImageIco(URL url,String imageName) { + if (imageName == null) + return null; + Image image = (Image) imageMap.get(imageName); + if (image == null) { + ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url); + image =imageDescriptor.createImage(); + imageMap.put(imageName, image); + } + + return image; + } + + // ͷͼԴ + public void dispose() { + Iterator iterator = imageMap.values().iterator(); + while (iterator.hasNext()) + ((Image) iterator.next()).dispose(); + imageMap.clear(); + } + + /** + * change ImageIcon to BufferedImage + * @param icon + * @return + */ + public static BufferedImage getBufferedImage(ImageIcon icon){ + int width = icon.getIconWidth(); + int height = icon.getIconHeight(); + ImageObserver observer = icon.getImageObserver(); + BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + Graphics gc = bufferedImage.createGraphics(); + gc.drawImage(icon.getImage(), 0, 0, observer); + return bufferedImage; + } + + /** + * change BufferedImage to ImageData + * @param bufferedImage + * @return + */ + public static ImageData getImageData(BufferedImage bufferedImage){ + DirectColorModel colorModel = (DirectColorModel) bufferedImage.getColorModel(); + PaletteData palette = new PaletteData(colorModel.getRedMask(), colorModel.getGreenMask(), colorModel + .getBlueMask()); + ImageData data = new ImageData(bufferedImage.getWidth(), bufferedImage.getHeight(), colorModel + .getPixelSize(), palette); + WritableRaster raster = bufferedImage.getRaster(); + int[] pixelArray = new int[3]; + for (int y = 0; y < data.height; y++) { + for (int x = 0; x < data.width; x++) { + raster.getPixel(x, y, pixelArray); + int pixel = palette.getPixel(new RGB(pixelArray[0], pixelArray[1], pixelArray[2])); + data.setPixel(x, y, pixel); + } + } + return data; + } + + + public void testSwingToSwtImage() + { + ImageIcon icon = new ImageIcon("C:\\temp\\freshwind.jpg"); + BufferedImage bufferedImage = getBufferedImage(icon); + ImageData data = getImageData(bufferedImage); + Image image = new Image(null, data); + + } +} \ No newline at end of file diff --git a/src/cn/com/origin/autocodemanager/common/CreateCompositeUtil.java b/src/cn/com/origin/autocodemanager/common/CreateCompositeUtil.java new file mode 100644 index 0000000..4ae46ec --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/CreateCompositeUtil.java @@ -0,0 +1,279 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.common; + +import java.util.Date; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.DateTime; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.Text; + +public class CreateCompositeUtil { + + public static Group createCompositeGroup(Composite parent, String title) { + GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 1; + GridData gridData = new GridData(); + gridData.verticalAlignment = GridData.FILL; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = true; + gridData.verticalSpan = 1; + gridData.horizontalAlignment = GridData.FILL; + Group codeTreeGroup = new Group(parent, SWT.NONE); + codeTreeGroup.setText(title); + codeTreeGroup.setLayout(gridLayout); + codeTreeGroup.setLayoutData(gridData); + return codeTreeGroup; + } + + public static Label createLabel(Composite composite, String text, + int heightLength, int widthLength) { + Label newLabel = new Label(composite, SWT.NONE); + // Label newLabel = toolkit.createLabel(composite, text); + newLabel.setText(text); + GridData gridData = new GridData(); + gridData.heightHint = heightLength; + gridData.widthHint = widthLength; + newLabel.setLayoutData(gridData); + newLabel.setVisible(true); + return newLabel; + } + + public static Label createSeparator(Composite composite, String text, + int heightLength, int widthLength) { + // Label separator = toolkit.createLabel(composite, ""); + Label separator = new Label(composite, SWT.NONE); + separator.setText(""); + GridData gridData1 = new GridData(); + gridData1.heightHint = heightLength; + gridData1.widthHint = widthLength; + separator.setLayoutData(gridData1); + separator.setVisible(true); + return separator; + } + + public static Combo createNotFillNewCombo(Composite parent, String[] items) { + Combo newCombo = new Combo(parent, SWT.BORDER|SWT.READ_ONLY); + newCombo.setLayoutData(getNotFillNewGridData()); + newCombo.setItems(items); + + + return newCombo; + } + + // public static Combo createNotFillNewCombo(Table parent, String[] items) { + // Combo newCombo = new Combo(parent, SWT.BORDER); + // newCombo.setLayoutData(getNotFillNewGridData()); + // newCombo.setItems(items); + // return newCombo; + // } + + public static GridData getNotFillNewGridData() { + GridData gridData = new GridData(); + gridData.verticalAlignment = GridData.FILL; + return gridData; + } + + public static Text createText(Composite composite, String text, + int heightLength, int widthLength) { + // Text newText = toolkit.createText(composite, ""); + Text newText = new Text(composite, SWT.BORDER); + newText.setText(text); + + GridData gridData1 = new GridData(); + gridData1.heightHint = heightLength; + gridData1.widthHint = widthLength; + newText.setLayoutData(gridData1); + newText.setVisible(true); + return newText; + } + + public static Combo createCombo(Composite composite, String[] items, + int heightLength, int widthLength) { + Combo newCombo = new Combo(composite, 8); + GridData gridData = new GridData(); + gridData.heightHint = heightLength; + gridData.widthHint = widthLength; + newCombo.setLayoutData(gridData); + if ((items != null) && (items.length > 0)) { + newCombo.setItems(items); + } + newCombo.setVisible(true); + return newCombo; + } + + public static Combo createNewCombo(Composite composite, int heightLength, + int widthLength) { + Combo newCombo = new Combo(composite, 8); + GridData gridData = new GridData(); + gridData.heightHint = heightLength; + gridData.widthHint = widthLength; + newCombo.setLayoutData(gridData); + newCombo.setVisible(true); + return newCombo; + } + + public static Button createButton(Composite composite, String text, + int heightLength, int widthLength) { + // Button newButton = toolkit.createButton(composite, text, 8); + Button newButton = new Button(composite, SWT.NONE); + GridData gridData1 = new GridData(); + gridData1.heightHint = heightLength; + gridData1.widthHint = widthLength; + newButton.setLayoutData(gridData1); + newButton.setVisible(true); + return newButton; + } + + public static Text createTextArea(Composite composite, String text, + int heightLength, int widthLength) { + Text newTextArea = new Text(composite, SWT.MULTI | SWT.WRAP + | SWT.V_SCROLL | SWT.BORDER); + GridData gridData1 = new GridData(); + gridData1.heightHint = heightLength; + gridData1.widthHint = widthLength; + newTextArea.setLayoutData(gridData1); + newTextArea.setVisible(true); + return newTextArea; + } + + public static Text createNewTextArea(Composite parent, String initValue) { + Text newText = new Text(parent, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL + | SWT.BORDER); + newText.setLayoutData(getNewGridData()); + newText.setText(initValue); + return newText; + } + + public static DateTime createDateButton(Composite composite, Date date, + int heightLength, int widthLength) { + DateTime newCombo = new DateTime(composite, SWT.MULTI | SWT.WRAP + | SWT.V_SCROLL | SWT.BORDER); + GridData gridData = new GridData(); + gridData.heightHint = heightLength; + gridData.widthHint = widthLength; + newCombo.setLayoutData(gridData); + if (date != null) { + newCombo.setData(date); + } + newCombo.setVisible(true); + return newCombo; + } + + public static GridData getNewGridData() { + GridData gridData = new GridData(); + gridData.horizontalAlignment = GridData.FILL; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = false; + gridData.verticalAlignment = GridData.FILL; + return gridData; + } + + + + public static Text createNewText(Composite parent, String initValue) { + Text newText = new Text(parent, SWT.BORDER); + newText.setLayoutData(getNewGridData()); + newText.setText(initValue); + return newText; + } + + + + public static Button createNewCheckBox(Composite parent, String title) { + Button newButton = new Button(parent, SWT.CHECK); + newButton.setLayoutData(getNewGridData()); + newButton.setText(title); + return newButton; + } + + public static Combo createNewCombo(Composite parent, String[] items) { + Combo newCombo = new Combo(parent, SWT.BORDER); + newCombo.setLayoutData(getNewGridData()); + newCombo.setItems(items); + return newCombo; + } + + public static Combo createNewCombo(Composite parent) { + Combo newCombo = new Combo(parent, SWT.BORDER); + newCombo.setLayoutData(getNewGridData()); + return newCombo; + } + + public static Button createNewButton(Composite composite, String text) { + // Button newButton = toolkit.createButton(composite, text, 8); + Button newButton = new Button(composite, SWT.BUTTON1 | SWT.BORDER + | SWT.COLOR_BLUE); + GridData gridData1 = new GridData(); + gridData1.heightHint = 40; + gridData1.widthHint = 100; + newButton.setLayoutData(gridData1); + newButton.setText(text); + newButton.setVisible(true); + return newButton; + } + + public static Label createNewLabel(Composite parent, String title) { + Label label = new Label(parent, SWT.NONE); + label.setText(title + ""); + return label; + } + + public static Label createNewWhiteLabel(Composite parent, String title) { + Label label = new Label(parent, SWT.NONE); + label.setText(title + ""); + label.setBackground(Display.getCurrent() + .getSystemColor(SWT.COLOR_WHITE)); + return label; + } + + /*** + * ̷Ҫչ + * + * @param composite + * @param text + * @param heightLength + * @param widthLength + * @return + */ + public static Table createNewTable(Composite composite, String text, + int heightLength, int widthLength) { + final Table table = new Table(composite, SWT.MULTI | SWT.FULL_SELECTION); + + // Text newTextArea = new Text(composite, SWT.MULTI | SWT.WRAP | + // SWT.V_SCROLL | SWT.BORDER); + GridData gridData1 = new GridData(); + // gridData1.heightHint = heightLength; + // gridData1.widthHint = widthLength; + // gridData1.horizontalAlignment = SWT.FILL; + // gridData1.grabExcessHorizontalSpace = true; + gridData1.grabExcessVerticalSpace = true; + gridData1.verticalAlignment = SWT.FILL; + table.addListener(SWT.MeasureItem, new Listener() { // һSWT.MeasureItemÿҪԪݵĴСʱͻᱻá + public void handleEvent(Event event) { + event.width = table.getGridLineWidth(); // ÿ + event.height = (int) Math.floor(event.gc + .getFontMetrics().getHeight() * 2); // ø߶Ϊ߶ȵ1.5 + } + }); + table.setLayoutData(gridData1); + table.setLinesVisible(true); + table.setVisible(true); + return table; + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/GetChoosePath.java b/src/cn/com/origin/autocodemanager/common/GetChoosePath.java new file mode 100644 index 0000000..c2ec942 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/GetChoosePath.java @@ -0,0 +1,106 @@ +/* +#============================================================================= +# +# copyright (c) 2009 Origin Enterprise Solution LTD. +# +#============================================================================= +# File name: GetChoosePath.java +# File description: +#============================================================================= +# Date Name Action Description of Change +# 2009-11-23 tyl õûѡ· +#============================================================================= + */ + +package cn.com.origin.autocodemanager.common; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStreamReader; + +import javax.swing.JFileChooser; + +public class GetChoosePath { + private String title; + + public GetChoosePath(String title) { + this.title = title; + } + + /** + * getChoosePath:õûѡ· + * @param @return 趨ļ + * @return String + * @throws + * @since CodingExampleVer 1.1 + */ + public File getChooseFile() { +// List choosePath = new ArrayList(); + String tempPath = System.getProperty("java.io.tmpdir"); + File tempFile = new File(tempPath + "\\importjobshop.txt"); + JFileChooser jfc = null; + if (!tempFile.exists()) { + try { + tempFile.createNewFile(); + jfc = new JFileChooser(); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + if (tempFile.exists()) { + BufferedReader in; + try { + in = new BufferedReader(new InputStreamReader(new FileInputStream(tempFile))); + String line; + try { + line = in.readLine(); + if ((line != null) && (line.length() > 0)) { + File file = new File(line); + if (file.exists()) { + jfc = new JFileChooser(file); + } else { + jfc = new JFileChooser(); + } + } else { + jfc = new JFileChooser(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } catch (FileNotFoundException e1) { + e1.printStackTrace(); + } + } + } + jfc.setFileSelectionMode(JFileChooser.CUSTOM_DIALOG); + jfc.setInheritsPopupMenu(true); + jfc.setDialogTitle(title); + jfc.setMultiSelectionEnabled(true); + + int openOrCancel = jfc.showSaveDialog(null); + File file = null; + if (openOrCancel == 0) { + try { + BufferedWriter output; + output = new BufferedWriter(new FileWriter(tempFile)); + output.write(jfc.getSelectedFile().getAbsolutePath()); + output.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + + // File[] files = jfc.getSelectedFiles(); + // for (int i = 0; i < files.length; i++) { + // choosePath.add(files[i].getAbsolutePath()); + // } + file = jfc.getSelectedFile(); + } + // return choosePath; + return file; + } +} diff --git a/src/cn/com/origin/autocodemanager/common/IsShowAutocodeManagerPerspective.java b/src/cn/com/origin/autocodemanager/common/IsShowAutocodeManagerPerspective.java new file mode 100644 index 0000000..9d79683 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/IsShowAutocodeManagerPerspective.java @@ -0,0 +1,61 @@ +package cn.com.origin.autocodemanager.common; + +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCSession; + +public class IsShowAutocodeManagerPerspective { + + //ֻڴѡõûȨ + private String showAutocodeManagerUserOptionName = "origin_showAutocodeManagerUsers"; + + public IsShowAutocodeManagerPerspective() { + + } + /** + * ͨ鵱ǰûǷȨ޲ + * @return + */ + public boolean getValue() { + boolean flag = false; + try { + TCSession session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + String userID = session.getUser().getUserId(); + flag = isExist(userID, showAutocodeManagerUserOptionName); + } catch (TCException e) { + e.printStackTrace(); + } + return flag; + } + /** + * ûǷѡƥ + * @param value + * @param optionName + * @return + */ + public boolean isExist(String value, String optionName) { + boolean flag = false; + try { + TCSession session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + TCPreferenceService preferenceService = session.getPreferenceService(); + String preferenceValues[] = preferenceService.getStringArray(TCPreferenceService.TC_preference_site, optionName); + if (preferenceValues != null && preferenceValues.length > 0) { + for (int i = 0; i < preferenceValues.length; i++) { + // System.out.println("preferenceValues===========" + + // preferenceValues[i]); + if (preferenceValues[i].trim().equalsIgnoreCase(value)) { + flag = true; + return flag; + } + } + } else { + flag = true; + return flag; + } + } catch (Exception e) { + e.printStackTrace(); + } + return flag; + } +} diff --git a/src/cn/com/origin/autocodemanager/common/PackCodeDescInfos.java b/src/cn/com/origin/autocodemanager/common/PackCodeDescInfos.java new file mode 100644 index 0000000..487a5c2 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/PackCodeDescInfos.java @@ -0,0 +1,125 @@ +package cn.com.origin.autocodemanager.common; + +import javax.swing.JTextField; + +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +import com.teamcenter.rac.util.iTextField; + +public class PackCodeDescInfos { + + private String generateID; + private String idDesc; + private String idjl; + private String codetz; + private AbstractTreeData selectedSegmentNode; + private String codeStyle; + + private iTextField idValueIText; + private iTextField revValueIText; + private iTextField nameValueIText; + + private JTextField idValueJText; + private JTextField revValueJText; + private JTextField nameValueJText; + + public PackCodeDescInfos() { + } + + public String getGenerateID() { + return generateID; + } + + public void setGenerateID(String generateID) { + this.generateID = generateID; + } + + public String getIdDesc() { + return idDesc; + } + + public void setIdDesc(String idDesc) { + this.idDesc = idDesc; + } + + public String getIdjl() { + return idjl; + } + + public void setIdjl(String idjl) { + this.idjl = idjl; + } + + public String getCodetz() { + return codetz; + } + + public void setCodetz(String codetz) { + this.codetz = codetz; + } + + public AbstractTreeData getSelectedSegmentNode() { + return selectedSegmentNode; + } + + public void setSelectedSegmentNode(AbstractTreeData selectedSegmentNode) { + this.selectedSegmentNode = selectedSegmentNode; + } + + public String getCodeStyle() { + return codeStyle; + } + + public void setCodeStyle(String codeStyle) { + this.codeStyle = codeStyle; + } + + public iTextField getIdValueIText() { + return idValueIText; + } + + public void setIdValueIText(iTextField idValueIText) { + this.idValueIText = idValueIText; + } + + public iTextField getRevValueIText() { + return revValueIText; + } + + public void setRevValueIText(iTextField revValueIText) { + this.revValueIText = revValueIText; + } + + public iTextField getNameValueIText() { + return nameValueIText; + } + + public void setNameValueIText(iTextField nameValueIText) { + this.nameValueIText = nameValueIText; + } + + public JTextField getIdValueJText() { + return idValueJText; + } + + public void setIdValueJText(JTextField idValueJText) { + this.idValueJText = idValueJText; + } + + public JTextField getRevValueJText() { + return revValueJText; + } + + public void setRevValueJText(JTextField revValueJText) { + this.revValueJText = revValueJText; + } + + public JTextField getNameValueJText() { + return nameValueJText; + } + + public void setNameValueJText(JTextField nameValueJText) { + this.nameValueJText = nameValueJText; + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/TCLOVUtil.java b/src/cn/com/origin/autocodemanager/common/TCLOVUtil.java new file mode 100644 index 0000000..9750c10 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/TCLOVUtil.java @@ -0,0 +1,26 @@ +package cn.com.origin.autocodemanager.common; + +import com.teamcenter.rac.kernel.TCComponentListOfValues; +import com.teamcenter.rac.kernel.TCComponentListOfValuesType; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; + +public class TCLOVUtil { + + + public static TCComponentListOfValues findLOVByName(TCSession tcsession, String s) { + TCComponentListOfValues tccomponentlistofvalues = null; + try { + TCComponentListOfValuesType tccomponentlistofvaluestype = (TCComponentListOfValuesType) tcsession.getTypeComponent("ListOfValues"); + TCComponentListOfValues atccomponentlistofvalues[] = tccomponentlistofvaluestype.find(s); + if (atccomponentlistofvalues != null && atccomponentlistofvalues.length > 0) + tccomponentlistofvalues = atccomponentlistofvalues[0]; + else + tccomponentlistofvalues = null; + } catch (TCException tcexception) { + tccomponentlistofvalues = null; + } + return tccomponentlistofvalues; + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/TCPreferenceUitl.java b/src/cn/com/origin/autocodemanager/common/TCPreferenceUitl.java new file mode 100644 index 0000000..e539570 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/TCPreferenceUitl.java @@ -0,0 +1,134 @@ +package cn.com.origin.autocodemanager.common; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Vector; + +import cn.com.origin.autocodemanager.common.encrypt.EncryptOperations; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; + +import com.teamcenter.rac.kernel.TCPreferenceService; +import com.teamcenter.rac.kernel.TCSession; + +public class TCPreferenceUitl { + + public String getEnv(String name) { + String str = ""; + Iterator it = System.getenv().entrySet().iterator(); + while (it.hasNext()) { + Map.Entry entry = (Map.Entry) it.next(); + // logger.info("entry-" + entry.getKey() + ":" + entry.getValue()); + if (entry.getKey().toString().equals(name)) { + str = entry.getValue() + ""; + if (!str.endsWith("\\")) { + str = str + "\\"; + } + break; + } + } + return str; + } + + /** + * @param tcsession + * @param preferenceName + * @param isSelectName + * @return + */ + public static boolean isSelectExsitToTCPreferenceValues(TCSession tcsession, String preferenceName, String isSelectName) { + boolean flag = false; + TCPreferenceService preferenceService = tcsession.getPreferenceService(); + String preferenceValues[] = preferenceService.getStringArray(TCPreferenceService.TC_preference_site, preferenceName); + if (preferenceValues == null) { + return false; + } + if (preferenceValues != null && preferenceValues.length > 0) { + for (int i = 0; i < preferenceValues.length; i++) { + // System.out.println(preferenceValues[i]); + if (preferenceValues[i].trim().equals(isSelectName)) { + flag = true; + return flag; + } + } + } + return flag; + } + + private static boolean isWriteExpire = false; + + public static synchronized boolean isWriteExpire() { + return isWriteExpire; + } + + public static synchronized void setWriteExpire(boolean isWriteExpire) { + TCPreferenceUitl.isWriteExpire = isWriteExpire; + } + + public static boolean isTrueTCPreferenceValue(TCSession tcsession, String preferenceName) { + boolean flag = false; + TCPreferenceService preferenceService = tcsession.getPreferenceService(); + String value = preferenceService.getString(TCPreferenceService.TC_preference_site, preferenceName); + if (value == null) { + return false; + } + if (value.equalsIgnoreCase("true")) { + flag = true; + } + return flag; + } + + public static String getTCPreferenceValue(TCSession tcsession, String preferenceName) { + TCPreferenceService preferenceService = tcsession.getPreferenceService(); + String value = preferenceService.getString(TCPreferenceService.TC_preference_all, preferenceName); + return value; + } + + public static String[] getListPreference(TCSession session, int scope, String pid) { + try { + String options[] = session.getPreferenceService().getStringArray(scope, pid); + return options; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static HashMap getPreferenceHashMap(TCSession pSession, int pScope, String pid) { + HashMap hm = new HashMap(); + Vector preferencekeyNames = new Vector(); + try { + String options[] = getPreference(pSession, pScope, pid); + if (options == null) { + return hm; + } + if (options == null || options.length == 0) + return null; + String key = ""; + String value = ""; + for (int i = 0; i < options.length; i++) + if (options[i].indexOf("=") > 0) { + key = options[i].substring(0, options[i].indexOf("=")); + value = options[i].substring(options[i].indexOf("=") + 1); + hm.put(key, value); + preferencekeyNames.add(key); + } else { + hm.put((new StringBuilder()).append(i).toString(), options[i]); + } + } catch (Exception e) { + e.printStackTrace(); + return null; + } + return hm; + } + + public static String[] getPreference(TCSession session, int scope, String pid) { + try { + String options[] = session.getPreferenceService().getStringArray(scope, pid); + return options; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/src/cn/com/origin/autocodemanager/common/TCQueryUtil.java b/src/cn/com/origin/autocodemanager/common/TCQueryUtil.java new file mode 100644 index 0000000..aed0165 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/TCQueryUtil.java @@ -0,0 +1,50 @@ +package cn.com.origin.autocodemanager.common; + +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.kernel.TCComponentContextList; +import com.teamcenter.rac.kernel.TCComponentQuery; +import com.teamcenter.rac.kernel.TCComponentQueryType; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCTextService; + +public class TCQueryUtil { + + public static InterfaceAIFComponent[] searchComponentsCollection(TCSession session, String searchName, String[] keys, String[] values) { + // Ϣ + InterfaceAIFComponent[] result = new InterfaceAIFComponent[0]; + try { + TCTextService textService = session.getTextService(); + TCComponentQueryType querytype = (TCComponentQueryType) session.getTypeComponent("ImanQuery"); + TCComponentQuery query = (TCComponentQuery) querytype.find(searchName); + if (query == null) { + // MessageBox.post("뽨ѯ" + searchName + "!", "INFO", MessageBox.INFORMATION); + return result; + } + querytype.clearCache(); + String[] as = new String[keys.length]; + for (int i = 0; i < keys.length; i++) { + as[i] = textService.getTextValue(keys[i]); + } + + String[] as1 = new String[values.length]; + for (int i = 0; i < values.length; i++) { + as1[i] = textService.getTextValue(values[i]); + } + query.clearCache(); + TCComponentContextList list = query.getExecuteResultsList(as, as1); + if (list != null) { + int count = list.getListCount(); + result = new InterfaceAIFComponent[count]; + for (int i = 0; i < count; i++) { + result[i] = list.get(i).getComponent(); + } + } + } catch (TCException e) { + // MessageBox.post("ͨѯ" + searchName + "ѯ.", "INFO", MessageBox.ERROR); + e.printStackTrace(); + } + return result; + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeDialog.java b/src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeDialog.java new file mode 100644 index 0000000..1272f37 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeDialog.java @@ -0,0 +1,375 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.common.dialog; + +import java.util.HashMap; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import cn.com.origin.autocodemanager.common.AutoCodeConstants; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.views.AutoCodeListCodeView; +import cn.com.origin.autocodemanager.views.AutoCodeSegmentView; +import cn.com.origin.autocodemanager.views.AutoCodeTreeCodeView; + +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class AbstractCodeDialog extends Dialog { + public AbstractCreateTreeView createView; + public AbstractTreeData selectedTreeData; + public TCComponent selectedComponent; + public String title; + public boolean isEdit; + public TreeAndListCodeOperation treeAndListCodeOperation; + public TreeViewOperation treeViewOperation; + public Text nodeDescriptionText; + public Text nodeNameText; + public Text nodeValueText; + public Text codeStyleText; + public Text codeLengthText; + public Combo typeCombo; + public TCSession session; + public AutoCodeListCodeView codeListView; + public AutoCodeSegmentView codeSegmentView; + public AutoCodeTreeCodeView codeTreeView; + public Text seqBeginText; + public Text seqMaxText; + public Text seqStepText; + public Text seqExcludeStrText; + + public AbstractCodeDialog(Shell parentShell, AbstractCreateTreeView createView, String title, boolean isEdit) { + super(parentShell); + this.createView = createView; + this.title = title; + this.isEdit = isEdit; + initParams(); + this.selectedTreeData = treeViewOperation.getSelectedTreeNode(createView.treeViewer); + if (selectedTreeData != null) { + this.selectedComponent = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + } + } + + public void initParams() { + this.treeAndListCodeOperation = new TreeAndListCodeOperation(); + session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + this.treeViewOperation = new TreeViewOperation(); + codeListView = (AutoCodeListCodeView) createView.viewPart.getSite().getPage().findView(AutoCodeManangerConstants.AutoCodeManagerListCodeView_ID); + codeSegmentView = (AutoCodeSegmentView) createView.viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + codeTreeView = (AutoCodeTreeCodeView) createView.viewPart.getSite().getPage().findView(AutoCodeManangerConstants.AutoCodeManagerTreeCodeView_ID); + } + + public AbstractCodeDialog(Shell parentShell, AbstractCreateTreeView createView, String title) { + super(parentShell); + this.title = title; + this.createView = createView; + this.treeAndListCodeOperation = new TreeAndListCodeOperation(); + session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite container = (Composite) super.createDialogArea(parent); + + return container; + } + + public void initNewCodeComposite(Composite composite) { + + } + + public String getSeqLength() { + String maxValue = getTextValue(seqMaxText); + if ((!maxValue.equalsIgnoreCase("0")) && (maxValue.trim().length() > 0)) { + return String.valueOf(maxValue.trim().length()); + } else { + return "0"; + } + } + + public void saveNewCodeNode(AbstractTreeData parentTreeData, TCComponent updateComponent, TreeViewer treeViewer, String type, boolean isRoot) { + HashMap hashMap = new HashMap(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + try { + if (isEdit) { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, getTextValue(nodeNameText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, getTextValue(nodeValueText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, getTextValue(codeStyleText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, getTextValue(codeLengthText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, getTextValue(nodeDescriptionText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, ""); + + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, getTextValue(seqBeginText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, getSeqLength()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value, getTextValue(seqMaxText)); + if (updateComponent != null) { + treeAndListCodeOperation.updateTreeORListNode(updateComponent, hashMap); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + treeViewer.refresh(selectedTreeData); + } + } else { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_index, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, getTextValue(nodeNameText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, getTextValue(nodeValueText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, type); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, getTextValue(codeStyleText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, getTextValue(codeLengthText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, ""); + + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, getTextValue(nodeDescriptionText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, String.valueOf(isRoot)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, "false"); + + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, getTextValue(seqBeginText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, getSeqLength()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value, getTextValue(seqMaxText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes, ""); + + TCComponent ruleComponent = null; + if (!isRoot) { + AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + if (segmentTreeData != null) { + ruleComponent = segmentTreeData.getPackCodeNodeInfo().getNodeComponent(); + } + } + TCComponent newComponent = new TreeAndListCodeOperation().createNewTreeORListNode(ruleComponent, parentTreeData, hashMap); + if (newComponent == null) { + return; + } + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(newComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + AbstractTreeData treeData = new AbstractTreeData(parentTreeData, packCodeNodeInfo); + treeViewOperation.addExistCodeNode(treeViewer, parentTreeData, treeData); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + } + + public String getTextValue(Text text) { + if (text != null) { + return text.getText().trim(); + } else { + return ""; + } + } + + public void createSeqComposite(Composite parent) { + Composite composite = new Composite(parent, 0); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + GridData gridData1 = new GridData(); + gridData1.horizontalAlignment = GridData.FILL; + gridData1.grabExcessHorizontalSpace = true; + gridData1.verticalSpan = 20; + gridData1.grabExcessVerticalSpace = true; + gridData1.verticalAlignment = GridData.FILL; + composite.setLayoutData(gridData1); + composite.setLayout(gridLayout1); + initSeqPropertyComposite(composite); + try { + if (selectedTreeData != null) { + TCComponent selectedComp = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + selectedComp.refresh(); + if (selectedComp != null) { + selectedComp.refresh(); + String seqProperty[] = { AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value }; + String[] seqValues = selectedComp.getProperties(seqProperty); + setTextValue(seqBeginText, seqValues[0]); + setTextValue(seqMaxText, seqValues[1]); + } + } + } catch (TCException e) { + e.printStackTrace(); + } + } + + public void initSeqPropertyComposite(Composite parent) { + Composite seqComposite = new Composite(parent, SWT.NONE); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + GridData gridData1 = new GridData(); + gridData1.horizontalAlignment = GridData.FILL; + gridData1.grabExcessHorizontalSpace = true; + gridData1.verticalSpan = 20; + gridData1.grabExcessVerticalSpace = true; + gridData1.verticalAlignment = GridData.FILL; + + seqComposite.setLayoutData(gridData1); + seqComposite.setLayout(gridLayout1); + createNewLabel(seqComposite, "ʼֵ"); + seqBeginText = createNewText(seqComposite, "1"); + createNewLabel(seqComposite, "ֵ"); + seqMaxText = createNewText(seqComposite, "9"); + } + + public void createNodeComposite(Composite parent) { + Composite composite = new Composite(parent, 0); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + GridData gridData1 = new GridData(); + gridData1.horizontalAlignment = GridData.FILL; + gridData1.grabExcessHorizontalSpace = true; + gridData1.verticalSpan = 20; + gridData1.grabExcessVerticalSpace = true; + gridData1.verticalAlignment = GridData.FILL; + composite.setLayoutData(gridData1); + composite.setLayout(gridLayout1); + initNewCodeComposite(composite); + try { + if (selectedTreeData != null) { + TCComponent selectedComp = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(selectedComp, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + if (selectedComp != null) { + selectedComp.refresh(); + String seqProperty[] = { AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value }; + + String[] seqValues = selectedComp.getProperties(seqProperty); + setTextValue(codeStyleText, packCodeNodeInfo.getCode_style()); + setTextValue(codeLengthText, seqValues[0]); + + setTextValue(nodeNameText, packCodeNodeInfo.getNode_name()); + setTextValue(nodeValueText, packCodeNodeInfo.getNode_value()); + setTextValue(nodeDescriptionText, packCodeNodeInfo.getNode_desc()); + + setTextValue(seqBeginText, seqValues[1]); + setTextValue(seqMaxText, seqValues[2]); + if (typeCombo != null) { + if (packCodeNodeInfo.getNode_type().equals(AutoCodeManagerPropertyName.ListName)) { + typeCombo.setText("б"); + } else { + typeCombo.setText(""); + } + if (isEdit) { + typeCombo.setEnabled(false); + } + } + } + } + } catch (TCException e) { + e.printStackTrace(); + } catch (ServiceException e) { + e.printStackTrace(); + } + } + + public void setTextValue(Text text, String value) { + if (text != null) { + text.setText(value); + } + } + + public GridData getNewGridData() { + GridData gridData = new GridData(); + gridData.horizontalAlignment = GridData.FILL; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = false; + gridData.verticalAlignment = GridData.FILL; + return gridData; + } + + public Group createCompositeGroup(Composite parent, String title) { + GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 1; + GridData gridData = new GridData(); + gridData.verticalAlignment = GridData.FILL; + gridData.grabExcessHorizontalSpace = true; + gridData.grabExcessVerticalSpace = true; + gridData.verticalSpan = 1; + gridData.horizontalAlignment = GridData.FILL; + Group codeTreeGroup = new Group(parent, SWT.NONE); + codeTreeGroup.setText(title); + codeTreeGroup.setLayout(gridLayout); + codeTreeGroup.setLayoutData(gridData); + return codeTreeGroup; + } + + public Text createNewText(Composite parent, String initValue) { + Text newText = new Text(parent, SWT.BORDER); + newText.setLayoutData(getNewGridData()); + newText.setText(initValue); + return newText; + } + + public Button createNewCheckBox(Composite parent, String title) { + Button newButton = new Button(parent, SWT.CHECK); + newButton.setLayoutData(getNewGridData()); + newButton.setText(title); + return newButton; + } + + public Combo createNewCombo(Composite parent, String[] items) { + Combo newCombo = new Combo(parent, SWT.BORDER); + newCombo.setLayoutData(getNewGridData()); + newCombo.setItems(items); + return newCombo; + } + + public Label createNewLabel(Composite parent, String title) { + Label label = new Label(parent, SWT.NONE); + label.setText(title + ""); + return label; + } + + public void postMesssageBox(String info) { + MessageBox mb = new MessageBox(getShell(), SWT.ICON_ERROR | SWT.OK); + mb.setText("INFO"); + mb.setMessage(info); + mb.open(); + } + + // Իť + @Override + protected void createButtonsForButtonBar(final Composite parent) { + createButton(parent, IDialogConstants.OK_ID, "ȷ", true); + createButton(parent, IDialogConstants.CANCEL_ID, "ر", false); + getButton(IDialogConstants.OK_ID).setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.OK_IMAGE)); + getButton(IDialogConstants.CANCEL_ID).setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.CLOSE_IMAGE)); + } + + @Override + public boolean close() { + return super.close(); + } + + @Override + protected Point getInitialSize() { + return new Point(230, 150); + } +} diff --git a/src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog.java b/src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog.java new file mode 100644 index 0000000..47769e6 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/dialog/AbstractCodeSegmentDialog.java @@ -0,0 +1,184 @@ +/** + * @author tyl + * @Action ini + * 2011-4-1 + */ +package cn.com.origin.autocodemanager.common.dialog; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.TreeEvent; +import org.eclipse.swt.events.TreeListener; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Tree; +import cn.com.origin.autocodemanager.common.AutoCodeConstants; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.progress.ExpandProgressBar; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.ORTreeContentProvider; +import cn.com.origin.autocodemanager.common.tree.ORTreeLabelProvider; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.views.AutoCodeSegmentView; + +public class AbstractCodeSegmentDialog extends Dialog { + public TreeViewer treeViewer; + public Tree tree; + public AbstractCreateTreeView abstractTreeView; + public AbstractCreateTreeView createView; + public String title; + public TreeViewOperation treeViewOperation; + public int selected = 0; + public String action; + public AutoCodeSegmentView codeSegmentView; + public TreeAndListCodeOperation treeAndListCodeOperation; + + public AbstractCodeSegmentDialog(Shell parentShell, AbstractCreateTreeView createView, String title) { + super(parentShell); + this.createView = createView; + this.title = title; + initParams(); + codeSegmentView = (AutoCodeSegmentView) createView.viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + } + + public AbstractCodeSegmentDialog(Shell parentShell, AbstractCreateTreeView createView, String title, String action) { + super(parentShell); + this.createView = createView; + this.title = title; + initParams(); + this.action = action; + codeSegmentView = (AutoCodeSegmentView) createView.viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + } + + public AbstractCodeSegmentDialog(Shell parentShell, String title) { + super(parentShell); + this.title = title; + initParams(); + } + +private void initParams() +{ + this.treeViewOperation = new TreeViewOperation(); + this.treeAndListCodeOperation=new TreeAndListCodeOperation(); + +} + + public void createBottomComposite(Composite parent) { + } + + public void createTreeComposite(Composite parent) { + Composite composite = new Composite(parent, SWT.NONE); + FillLayout gridLayout1 = new FillLayout(); + GridData gridData1 = new GridData(); + gridData1.horizontalAlignment = GridData.FILL; + gridData1.grabExcessHorizontalSpace = true; + gridData1.verticalSpan = 20; + gridData1.grabExcessVerticalSpace = true; + gridData1.verticalAlignment = GridData.FILL; + composite.setLayoutData(gridData1); + composite.setLayout(gridLayout1); + createTree(composite, ""); + } + + public void initTree(String rootName) { + treeViewer.setLabelProvider(new ORTreeLabelProvider()); + treeViewer.setContentProvider(new ORTreeContentProvider()); + AbstractTreeData treeData = new AbstractTreeData(null, null, rootName, AutoCodeManagerPropertyName.SegmentName, false); + treeViewer.setInput((new Object[] { treeData })); + addRightKeyAction(); + } + + public void createTree(Composite parent, String rootName) { + Composite composite = parent; + treeViewer = new TreeViewer(composite, SWT.BORDER); + tree = treeViewer.getTree(); + initTree(rootName); + + treeViewer.expandToLevel(1); + tree.addTreeListener(new TreeListener() { + public void treeCollapsed(TreeEvent treeEvent) { + } + public void treeExpanded(TreeEvent treeEvent) { + if (selected <= 1) { + selected++; + } + AbstractTreeData codeData = (AbstractTreeData) treeEvent.item.getData(); + if (codeData == null) { + return; + } + try { + expandNode(codeData); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + + tree.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + if (selected <= 1) { + selected++; + } + AbstractTreeData selectedData = (AbstractTreeData) e.item.getData(); + if (selectedData == null) { + return; + } + if (selectedData.getParentTreeData() == null) { + expandNode(selectedData); + } + } + }); + } + + /* + * (non-Javadoc) + * + * @see cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView#addRightKeyAction() + */ + public void addRightKeyAction() {} + public void expandNode(AbstractTreeData codeData) { + if (selected == 1) { + return; + } + AbstractTreeData[] codeDatas = new AbstractTreeData[] { codeData }; + if (codeData == null) { + return; + } + if (codeData.isChildrenLoader()) { + codeDatas = codeData.getChildrenDatas(); + } + ExpandProgressBar expandProgressBar = new ExpandProgressBar(Display.getDefault().getActiveShell(), "ڴ", this, codeDatas); + try { + expandProgressBar.expand(); + } catch (Exception e) { + e.printStackTrace(); + } + } + /* + * (non-Javadoc) + * + * @see cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView#createOrgAutoCodeNodeChildren(cn.com.origin.autocodemanager.common.tree.AbstractTreeData[]) + */ +// + public void createOrgAutoCodeNodeChildren(AbstractTreeData[] codeDatas) throws Exception {} + + // öԻ򴰿ڱͼ + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + newShell.setText(title); + newShell.setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.CODENODE_IMAGE)); + } +} diff --git a/src/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.java b/src/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.java new file mode 100644 index 0000000..aea04f0 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/encrypt/EncryptOperations.java @@ -0,0 +1,18 @@ +package cn.com.origin.autocodemanager.common.encrypt; + +public class EncryptOperations { + + private static boolean isLicenseExpire = true; + + public static synchronized boolean isLicenseExpire() { + return isLicenseExpire; + } + + public static synchronized void setLicenseExpire(boolean isLicenseExpire) { + EncryptOperations.isLicenseExpire = isLicenseExpire; + } + + public EncryptOperations() { + // TCSession session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + } +} diff --git a/src/cn/com/origin/autocodemanager/common/operations/ExcelOperation.java b/src/cn/com/origin/autocodemanager/common/operations/ExcelOperation.java new file mode 100644 index 0000000..8913fd6 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/operations/ExcelOperation.java @@ -0,0 +1,145 @@ +package cn.com.origin.autocodemanager.common.operations; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import jxl.Cell; +import jxl.Sheet; +import jxl.Workbook; +import jxl.format.Alignment; +import jxl.format.Colour; +import jxl.format.Pattern; +import jxl.format.UnderlineStyle; +import jxl.read.biff.BiffException; +import jxl.write.Label; +import jxl.write.WritableCellFormat; +import jxl.write.WritableFont; +import jxl.write.WritableSheet; +import jxl.write.WritableWorkbook; +import jxl.write.WriteException; + +/** + * @author wangjj Excelȡ + * + */ +public class ExcelOperation { + + public ExcelOperation() { + + } + + public static ArrayList> readExcel(File fileExcel, int startRow, String headTiles[]) throws BiffException, IOException { + ArrayList> arrayList = new ArrayList>(); + if (fileExcel != null) { + Workbook workBook = Workbook.getWorkbook(fileExcel); + Sheet sheet = workBook.getSheet(0); + if (headTiles != null && headTiles.length > 0) { + for (int i = startRow; i < sheet.getRows(); i++) { + HashMap hashMap = new HashMap(); + for (int k = 0; k < headTiles.length; k++) { +// System.out.println(headTiles + "[" + k + "]=" + headTiles[k]); + if (sheet.findCell(headTiles[k]) != null) { + Cell cell = sheet.getCell(sheet.findCell(headTiles[k]).getColumn(), i); +// System.out.println("cell================" + cell); + if (cell != null) { + hashMap.put(headTiles[k], cell.getContents()); + } + } + } + // System.out.println(hashMap); + arrayList.add(hashMap); + } + } + workBook.close(); + } else { + // System.out.println("EXCELļΪ"); + } + return arrayList; + } + + public static void writeExcel(String sheettile, File fileExcel, Object[] cloumnNames, ArrayList arrayList) throws IOException { + WritableWorkbook wbook = Workbook.createWorkbook(fileExcel); + wbook.createSheet(sheettile, 0); + WritableSheet writableSheet = wbook.getSheet(0); + Object[] titles = cloumnNames; + WritableFont font = new WritableFont(WritableFont.COURIER, 9, WritableFont.BOLD, false, UnderlineStyle.SINGLE_ACCOUNTING, jxl.format.Colour.BLUE); + WritableCellFormat wcfFC = new WritableCellFormat(font); // õԪʽ,ɫ. + try { + // wcfFC.setBackground(Colour.CORAL, Pattern.SOLID); // õԪɫ + wcfFC.setBackground(Colour.WHITE, Pattern.SOLID); // + wcfFC.setAlignment(Alignment.CENTRE); + for (int i = 0; i < titles.length; i++) { + Label l = new Label(i, 0, (String) titles[i]); + l.setCellFormat(wcfFC); // õԪʽ/ʽ + writableSheet.setColumnView(i, 12); + writableSheet.addCell(l); + } + if (arrayList != null && arrayList.size() > 0) { + for (int n = 0; n < arrayList.size(); n++) { + HashMap hashMap = (HashMap) arrayList.get(n); + if (cloumnNames != null && cloumnNames.length > 0) { + for (int k = 0; k < titles.length; k++) { + String str = (String) hashMap.get(titles[k]); + Label labelValue = new Label(k, n + 1, str); + writableSheet.addCell(labelValue); + } + } + } + } + wbook.write(); // дexcelļ. + wbook.close(); + } catch (WriteException e) { + e.printStackTrace(); + } + + if (fileExcel.exists()) { + openFile(fileExcel.getAbsolutePath()); + } + } + + public static void openFile(String targetFile) { + File file = new File(targetFile); + if (file.exists()) { + Boolean value = false; + value = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "INFO", "ļѾɣǷ򿪣"); + if (value) { + try { + Runtime runtime = Runtime.getRuntime(); + runtime.exec("cmd /c start exit &&\"" + targetFile + "\" "); + // String as1[] = { "cmd.exe", "/c", "start", targetFile }; + // runtime.exec(as1); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + public static boolean isInteger(String value) { + try { + Integer.parseInt(value); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + public static boolean isDouble(String value) { + try { + Double.parseDouble(value); + if (value.contains(".")) + return true; + return false; + } catch (NumberFormatException e) { + return false; + } + } + + public static boolean isNumber(String value) { + return isInteger(value) || isDouble(value); + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.java b/src/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.java new file mode 100644 index 0000000..321617b --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/operations/GetCodeNumber.java @@ -0,0 +1,78 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.common.operations; + +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCUserService; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class GetCodeNumber { + + private TCUserService userService; + + public GetCodeNumber() { + try { + userService = (TCUserService) ((TCSession) AIFUtility.getCurrentApplication().getSession()).getUserService(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + + public void delete_recycleID(String itemID) { + // Object[] params = { counterName, itemID }; + if ((itemID == null) || (itemID.length() == 0)) { + return; + } + itemID = itemID.replace(" ", "").trim(); + Object[] params = { itemID }; + try { + userService.call("delete_recycleID", params); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * @param patternCode + * @param codeLength + * @param startIndex + * @param endIndex + * @param increaseStep + * @return + * @throws ServiceException + */ + public String getCodeNumber(String patternCode, int codeLength, int startIndex, int maxValue, int increaseStep, String excludeStr) throws ServiceException { + if (maxValue == startIndex) { + return String.valueOf(maxValue); + } + if (startIndex < 1) { + startIndex = 1; + } + if (maxValue < startIndex) { + return String.valueOf(startIndex); + } + codeLength = String.valueOf(maxValue).length(); + Object[] params = { patternCode.replace(" ", "").trim(), codeLength, startIndex, maxValue, increaseStep, excludeStr }; +// System.out.println("patternCode===========" + patternCode); +// System.out.println("codeLength===========" + codeLength); +// System.out.println("startIndex===========" + startIndex); +// System.out.println("endIndex===========" + maxValue); +// System.out.println("increaseStep===========" + increaseStep); +// System.out.println("excludeStr===========" + excludeStr); + try { + String str = ""; + str = (String) userService.call("queryPartNo", params); + return str; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/operations/PackCodeNodeInfo.java b/src/cn/com/origin/autocodemanager/common/operations/PackCodeNodeInfo.java new file mode 100644 index 0000000..cec59eb --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/operations/PackCodeNodeInfo.java @@ -0,0 +1,124 @@ +package cn.com.origin.autocodemanager.common.operations; + + +import com.teamcenter.rac.kernel.TCComponent; + +public class PackCodeNodeInfo { + private TCComponent nodeComponent; + private String realTypeName; + + private String node_name = ""; + private String node_type = ""; + public String node_value = ""; + public String node_desc = ""; + public String code_style = ""; + public String rule_node = ""; + // boolean + public boolean is_root=false; + public boolean is_lock=false; + public boolean isDefaultSelected=false; + public boolean isContainsChildren=false; + // date + public String create_date = ""; + public String last_revise_date = ""; + // user + public String create_user = ""; + public String last_revise_user = ""; + public TCComponent getNodeComponent() { + return nodeComponent; + } + public void setNodeComponent(TCComponent nodeComponent) { + this.nodeComponent = nodeComponent; + } + public String getRealTypeName() { + return realTypeName; + } + public void setRealTypeName(String realTypeName) { + this.realTypeName = realTypeName; + } + public String getNode_name() { + return node_name; + } + public void setNode_name(String node_name) { + this.node_name = node_name; + } + public String getNode_type() { + return node_type; + } + public void setNode_type(String node_type) { + this.node_type = node_type; + } + public String getNode_value() { + return node_value; + } + public void setNode_value(String node_value) { + this.node_value = node_value; + } + public String getNode_desc() { + return node_desc; + } + public void setNode_desc(String node_desc) { + this.node_desc = node_desc; + } + public String getCode_style() { + return code_style; + } + public void setCode_style(String code_style) { + this.code_style = code_style; + } + public String getRule_node() { + return rule_node; + } + public void setRule_node(String rule_node) { + this.rule_node = rule_node; + } + public boolean isIs_root() { + return is_root; + } + public void setIs_root(boolean is_root) { + this.is_root = is_root; + } + public boolean isIs_lock() { + return is_lock; + } + public void setIs_lock(boolean is_lock) { + this.is_lock = is_lock; + } + public boolean isDefaultSelected() { + return isDefaultSelected; + } + public void setDefaultSelected(boolean isDefaultSelected) { + this.isDefaultSelected = isDefaultSelected; + } + public boolean isContainsChildren() { + return isContainsChildren; + } + public void setContainsChildren(boolean isContainsChildren) { + this.isContainsChildren = isContainsChildren; + } + public String getCreate_date() { + return create_date; + } + public void setCreate_date(String create_date) { + this.create_date = create_date; + } + public String getLast_revise_date() { + return last_revise_date; + } + public void setLast_revise_date(String last_revise_date) { + this.last_revise_date = last_revise_date; + } + public String getCreate_user() { + return create_user; + } + public void setCreate_user(String create_user) { + this.create_user = create_user; + } + public String getLast_revise_user() { + return last_revise_user; + } + public void setLast_revise_user(String last_revise_user) { + this.last_revise_user = last_revise_user; + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/operations/TreeAndListCodeOperation.java b/src/cn/com/origin/autocodemanager/common/operations/TreeAndListCodeOperation.java new file mode 100644 index 0000000..f20b643 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/operations/TreeAndListCodeOperation.java @@ -0,0 +1,780 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.common.operations; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCUserService; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class TreeAndListCodeOperation { + private TCUserService userService; + private TCSession session = null; + + public TreeAndListCodeOperation() { + session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + try { + userService = (TCUserService) session.getUserService(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public int isDateExpire() { + int isDateExpire = 1; + Object[] params = {}; + try { + isDateExpire = (Integer) userService.call("isExpire", params); +// System.out.println("isDateExpire=-=========" + isDateExpire); + } catch (TCException e) { + e.printStackTrace(); + } + return isDateExpire; + } + + public void addNodeReferenceComponents(TCComponent component, TCComponent referenceComponent) { + if ((component == null) || (referenceComponent == null)) { + return; + } + try { + TCComponent[] components = getNodeReferenceComponents(component); + if (components != null) { + for (int i = 0; i < components.length; i++) { + if (components[i].equals(referenceComponent)) { + return; + } + } + } + component.add(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes, referenceComponent); + } catch (TCException e) { + e.printStackTrace(); + } + } + + public void removeNodeReferenceComponents(TCComponent component, TCComponent referenceComponent) { + if ((component == null) || (referenceComponent == null)) { + return; + } + TCComponent[] components = getNodeReferenceComponents(component); + try { + if (components != null) { + for (int i = 0; i < components.length; i++) { + if (components[i].equals(referenceComponent)) { + component.remove(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes, referenceComponent); + } + } + } + } catch (TCException e) { + e.printStackTrace(); + } + } + + public TCComponent[] getNodeReferenceComponents(TCComponent component) { + if ((component == null)) { + return null; + } + TCComponent[] components = null; + try { + components = component.getTCProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes).getReferenceValueArray(); + } catch (TCException e) { + e.printStackTrace(); + } + return components; + } + + public TCComponent createNewTreeORListNode(TCComponent ruleNode, AbstractTreeData parentData, HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + System.out.println("i am in createNewTreeORListNode propNames[i]="+propNames[i]+" propValues[i]="+propValues[i]); + } + Object[] params = { propNames, propValues }; + try { + TCComponent newTCcomponent = (TCComponent) userService.call("createNewTreeOrListNode", params); + if (newTCcomponent == null) { + return null; + } + if (!newTCcomponent.getProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type).equals(AutoCodeManagerPropertyName.CodeGroupName)) { + if (ruleNode == null) { + newTCcomponent.setReferenceProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, newTCcomponent); + } else { + newTCcomponent.setReferenceProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, ruleNode); + newTCcomponent.getTCProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes).setReferenceValueArray(new TCComponent[] { ruleNode }); + } + } + return newTCcomponent; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public TCComponent updateTreeORListNode(TCComponent component, HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + } + Object[] params = { component, propNames, propValues }; + try { + TCComponent updateTCcomponent = (TCComponent) userService.call("updateTreeORListNode", params); + return updateTCcomponent; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + + public boolean deleteTreeORListNode(AbstractTreeData segmentTreeData, AbstractTreeData deleteTreeData) throws ServiceException, TCException { + return deleteTreeRelations(segmentTreeData, deleteTreeData); + } + + public boolean deleteTreeRelations(AbstractTreeData segmentTreeData, AbstractTreeData deleteTreeData) { + TCComponent segmentComponent = null; + TCComponent deleteComponent = null; + boolean isContinueDelete = true; + if ((deleteTreeData != null) && (deleteTreeData.getPackCodeNodeInfo().getNodeComponent() != null)) { + deleteComponent = deleteTreeData.getPackCodeNodeInfo().getNodeComponent(); + } else { + isContinueDelete = false; + return isContinueDelete; + } + if ((segmentTreeData != null) && (segmentTreeData.getPackCodeNodeInfo().getNodeComponent() != null)) { + segmentComponent = segmentTreeData.getPackCodeNodeInfo().getNodeComponent(); + } + TCComponent[] referenceNode = getNodeReferenceComponents(deleteComponent); + if (referenceNode != null) { + if (referenceNode.length > 1) { + MessageBox.post(deleteTreeData.getPackCodeNodeInfo().getNode_name() + "Ѿʹòɾ", "INFO", MessageBox.WARNING); + isContinueDelete = false; + return isContinueDelete; + } + } + String parentStr = ""; + isContinueDelete = deleteChildrenRelations(getParentStr(deleteTreeData, parentStr), deleteTreeData.getPackCodeNodeInfo().getNodeComponent().getUid(), null, isContinueDelete); + if (isContinueDelete) { + if (segmentComponent != null) { + removeNodeReferenceComponents(deleteComponent, segmentComponent); + } + try { + TCComponent ruleComponent = deleteComponent.getReferenceProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node); + if ((deleteTreeData.getPackCodeNodeInfo().is_root) || (deleteTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.CodeGroupName))) { + updateClassificationAfterDeleteSegment(deleteComponent); + updateTreeRelationAfterDelete(deleteComponent); + deleteTreeData(deleteComponent); + } else { + if ((segmentComponent != null) && (ruleComponent != null) && (ruleComponent.equals(segmentComponent))) { + updateTreeRelationAfterDelete(deleteComponent); + deleteTreeData(deleteComponent); + } + } + } catch (TCException e) { + e.printStackTrace(); + } + } + if (isContinueDelete) { + MessageBox.post("ɾɹ", "INFO", MessageBox.WARNING); + } + return isContinueDelete; + } + + public void removeTreeORListNode(AbstractTreeData segmentTreeData, AbstractTreeData deleteTreeData) throws ServiceException, TCException { + removeTreeRelations(segmentTreeData, deleteTreeData); + updateTreeRelation(deleteTreeData); + removeNodeReferenceComponents(deleteTreeData.getPackCodeNodeInfo().getNodeComponent(), segmentTreeData.getPackCodeNodeInfo().getNodeComponent()); + } + + public void updateTreeRelation(AbstractTreeData deleteTreeData) { + if ((deleteTreeData != null) && (deleteTreeData.getPackCodeNodeInfo().getNodeComponent() != null)) { + String currentStr = ""; + String parentStr = ""; + parentStr = getParentStr(deleteTreeData.getParentTreeData(), parentStr); + String childrenStr = deleteTreeData.getPackCodeNodeInfo().getNodeComponent().getUid(); + if ((deleteTreeData.getParentTreeData() != null) && (deleteTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent() != null)) { + currentStr = deleteTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent().getUid(); + } else { + currentStr = ""; + } + Object[] params = { parentStr, currentStr, childrenStr }; + try { + userService.call("removeTreeRelation", params); + } catch (TCException e) { + e.printStackTrace(); + return; + } + } + } + + public void removeTreeRelations(AbstractTreeData segmentTreeData, AbstractTreeData deleteTreeData) { + String parentStr = ""; + removeChildrenRelations(getParentStr(deleteTreeData, parentStr), deleteTreeData.getPackCodeNodeInfo().getNodeComponent().getUid(), segmentTreeData.getPackCodeNodeInfo().getNodeComponent()); + } + + private void removeChildrenRelations(String parentStr, String currentStr, TCComponent segmentComponent) { + try { + TCComponent[] tccomponents = null; + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr.trim()); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, currentStr.trim()); + tccomponents = searchTreeORListNodes(hashMap); + if (tccomponents == null) { + return; + } + for (int i = 0; i < tccomponents.length; i++) { + String parentStr2 = parentStr + "," + currentStr; + if (parentStr2.trim().startsWith(",")) { + parentStr2 = parentStr2.substring(1); + } + if (isRuleRootNode(tccomponents[i])) { + segmentComponent = tccomponents[i]; + updateClassificationAfterDeleteSegment(segmentComponent); + } + removeChildrenRelations(parentStr2, tccomponents[i].getUid().trim(), segmentComponent); + deleteCodeRelations(hashMap); + removeNodeReferenceComponents(tccomponents[i], segmentComponent); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + } + + public void updateClassificationAfterDeleteSegment(TCComponent deleteComponent) { + if (deleteComponent != null) { + Object[] params = { deleteComponent.getUid() }; + try { + userService.call("updateClassificationAfterDeleteSegment", params); + } catch (TCException e) { + e.printStackTrace(); + return; + } + } + } + + public boolean isRuleRootNode(TCComponent component) { + if (component == null) { + return false; + } + try { + if ((component.getLogicalProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root))) { + return true; + } + } catch (TCException e) { + e.printStackTrace(); + } + return false; + } + + public void deleteTreeData(TCComponent deleteComponent) { + if (deleteComponent == null) { + return; + } + try { + deleteComponent.getTCProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes).setReferenceValueArray(null); + deleteComponent.getTCProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node).setReferenceValue(null); + deleteComponent.delete(); + } catch (TCException e) { + e.printStackTrace(); + } + } + + private boolean deleteChildrenRelations(String parentStr, String currentStr, TCComponent segmentComponent, boolean isContinueDelete) { + try { + if (!isContinueDelete) { + return false; + } + TCComponent[] tccomponents = null; + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr.trim()); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, currentStr.trim()); + tccomponents = searchTreeORListNodes(hashMap); + if (tccomponents == null) { + return false; + } + for (int i = 0; i < tccomponents.length; i++) { + TCComponent[] referenceNode = getNodeReferenceComponents(tccomponents[i]); + if (referenceNode != null) { + if (referenceNode.length > 1) { + tccomponents[i].refresh(); + MessageBox.post(tccomponents[i].getProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name) + "Ѿɾ", "INFO", MessageBox.WARNING); + return false; + } + } + } + for (int i = 0; i < tccomponents.length; i++) { + String parentStr2 = parentStr + "," + currentStr; + if (parentStr2.trim().startsWith(",")) { + parentStr2 = parentStr2.substring(1); + } + if (isRuleRootNode(tccomponents[i])) { + segmentComponent = tccomponents[i]; + } + isContinueDelete = deleteChildrenRelations(parentStr2, tccomponents[i].getUid().trim(), segmentComponent, isContinueDelete); + if (isContinueDelete) { + removeNodeReferenceComponents(tccomponents[i], segmentComponent); + try { + TCComponent ruleComponent = tccomponents[i].getReferenceProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node); + tccomponents[i].refresh(); + if ((isRuleRootNode(tccomponents[i])) || (tccomponents[i].getProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type).equals(AutoCodeManagerPropertyName.CodeGroupName))) { + updateClassificationAfterDeleteSegment(tccomponents[i]); + updateTreeRelationAfterDelete(tccomponents[i]); + deleteTreeData(tccomponents[i]); + } else { + if ((segmentComponent != null) && (ruleComponent != null) && (ruleComponent.equals(segmentComponent))) { + updateTreeRelationAfterDelete(tccomponents[i]); + deleteTreeData(tccomponents[i]); + } + } + } catch (TCException e) { + e.printStackTrace(); + } + } + } + if (isContinueDelete) { + deleteCodeRelations(hashMap); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + return isContinueDelete; + } + + private void updateTreeRelationAfterDelete(TCComponent deleteComponent) { + Object[] params = { deleteComponent.getUid() }; + try { + System.out.println("removeTreeRelationAfterDelete hashMap=== "+deleteComponent); + userService.call("removeTreeRelationAfterDelete", params); + } catch (TCException e) { + e.printStackTrace(); + return; + } + } + + public void deleteCodeRelations(HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + System.out.println("deleteCodeRelations hashMap=== "+hashMap); + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + } + Object[] params = { propNames, propValues }; + try { + userService.call("deleteCodeRelations", params); + return; + } catch (TCException e) { + e.printStackTrace(); + return; + } + } + + public TCComponent[] searchParentTreeOrListNodes(HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + } + Object[] params = { propNames, propValues }; + try { + TCComponent[] searchTCcomponents = (TCComponent[]) userService.call("searchParentTreeOrListNodes", params); + return searchTCcomponents; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + + public boolean isContainsChildrenNodes(HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + } + Object[] params = { propNames, propValues }; + try { + String value = (String) userService.call("isContainsChildrenNodes", params); + if (value.trim().equals("true")) { + return true; + } + } catch (TCException e) { + e.printStackTrace(); + return false; + } + return false; + } + + public TCComponent updateCodeRelation(TCComponent component, HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + } + Object[] params = { component, propNames, propValues }; + try { + TCComponent updateTCcomponent = (TCComponent) userService.call("updateCodeRelation", params); + return updateTCcomponent; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + + public TCComponent updateChildrenCodeRelation(String parentStr, String currentStr, String childrenStr) { + try { + String[] propNames1 = new String[] { AutoCodeManagerPropertyName.CodeRelation_parent_node, AutoCodeManagerPropertyName.CodeRelation_current_node }; + String[] propValues1 = new String[] { parentStr, currentStr }; + Object[] params1 = { propNames1, propValues1 }; + + TCComponent[] existComponent = (TCComponent[]) userService.call("searchCodeRelation", params1); + if (existComponent.length > 0) { + for (int i = 0; i < existComponent.length; i++) { + try { + String[] propNames2 = new String[] { AutoCodeManagerPropertyName.CodeRelation_parent_node, AutoCodeManagerPropertyName.CodeRelation_current_node, AutoCodeManagerPropertyName.CodeRelation_children_nodes, AutoCodeManagerPropertyName.CodeRelation_create_date, + AutoCodeManagerPropertyName.CodeRelation_create_user }; + String[] propValues2 = new String[] { parentStr, currentStr, childrenStr, "", "" }; + + Object[] params2 = { existComponent[i], propNames2, propValues2 }; + TCComponent updateTCcomponent = (TCComponent) userService.call("updateCodeRelation", params2); + return updateTCcomponent; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + } + } catch (TCException e) { + e.printStackTrace(); + return null; + } + return null; + } + + public TCComponent createNewCodeRelation(AbstractTreeData currentData, TCComponent childrenComponent) { + try { + String currentDatas = ""; + String childrenDatas = ""; + childrenDatas = getChildrenData(currentData, childrenDatas, childrenComponent); + String parentStr = ""; + parentStr = getParentStr(currentData, parentStr); + if (currentData != null) { + if (currentData.getPackCodeNodeInfo().getNodeComponent() != null) { + currentDatas = currentData.getPackCodeNodeInfo().getNodeComponent().getUid(); + } else { + currentDatas = ""; + } + } else { + currentDatas = ""; + } + System.out.println("createNewCodeRelation::existComponent::parentStr===="+parentStr); + System.out.println("createNewCodeRelation::existComponent::currentDatas===="+currentDatas); + + String[] propNames1 = new String[] { AutoCodeManagerPropertyName.CodeRelation_parent_node, AutoCodeManagerPropertyName.CodeRelation_current_node }; + String[] propValues1 = new String[] { parentStr, currentDatas }; + Object[] params1 = { propNames1, propValues1 }; + TCComponent[] existComponent = (TCComponent[]) userService.call("searchCodeRelation", params1); + System.out.println("createNewCodeRelation::::existComponent===="+existComponent); + if (existComponent.length > 0) { + for (int i = 0; i < existComponent.length; i++) { + try { + System.out.println("createNewCodeRelation::::existComponent.length===="+existComponent.length); + + String[] propNames2 = new String[] { AutoCodeManagerPropertyName.CodeRelation_parent_node, AutoCodeManagerPropertyName.CodeRelation_current_node, AutoCodeManagerPropertyName.CodeRelation_children_nodes, AutoCodeManagerPropertyName.CodeRelation_create_date, + AutoCodeManagerPropertyName.CodeRelation_create_user }; + String[] propValues2 = new String[] { parentStr, currentDatas, childrenDatas, "", "" }; + Object[] params2 = { existComponent[i], propNames2, propValues2 }; + + TCComponent updateTCcomponent = (TCComponent) userService.call("updateCodeRelation", params2); + return updateTCcomponent; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + } else { + System.out.println("createNewCodeRelation::::createNewCodeRelation===="); + String[] propNames3 = new String[] { AutoCodeManagerPropertyName.CodeRelation_parent_node, AutoCodeManagerPropertyName.CodeRelation_current_node, AutoCodeManagerPropertyName.CodeRelation_children_nodes, AutoCodeManagerPropertyName.CodeRelation_create_date, + AutoCodeManagerPropertyName.CodeRelation_create_user }; + String[] propValues3 = new String[] { parentStr, currentDatas, childrenDatas, "", "" }; + System.out.println("parentStr===="+parentStr); + System.out.println("currentDatas===="+currentDatas); + System.out.println("childrenDatas===="+childrenDatas); + Object[] params3 = { propNames3, propValues3 }; + TCComponent newTCcomponent = (TCComponent) userService.call("createNewCodeRelation", params3); + return newTCcomponent; + } + } catch (TCException e) { + e.printStackTrace(); + return null; + } + return null; + } + + public String getParentStr(AbstractTreeData treeData, String parentStr) { + System.out.println("i am in getParentStr == "+parentStr); + + if (treeData != null) { + AbstractTreeData parentData = treeData.getParentTreeData(); + if ((parentData != null) && ((parentData.getPackCodeNodeInfo().getNodeComponent() != null))) { + System.out.println("parentData.getPackCodeNodeInfo() "+parentData.getPackCodeNodeInfo().getNode_name()); + if(parentData.getPackCodeNodeInfo().getNodeComponent()!=null){ + System.out.println("i am not null"); + } + if (parentStr.length() > 0) { + parentStr = parentData.getPackCodeNodeInfo().getNodeComponent().getUid() + "," + parentStr; + } else { + parentStr = parentData.getPackCodeNodeInfo().getNodeComponent().getUid(); + } + parentStr = getParentStr(parentData, parentStr); + System.out.println("parentStr AAA === "+parentStr); + } + }else{ + System.out.println(" treeDtae =null"); + } + if (parentStr.toString().endsWith(",")) { + parentStr = parentStr.substring(0, parentStr.length() - 1).toString(); + } + return parentStr; + } + + private String getChildrenData(AbstractTreeData treeData, String str, TCComponent childrenComponent) { + boolean isLoader = false; + if (treeData != null) { + AbstractTreeData[] childrenData = treeData.getChildrenDatas(); + if ((childrenData != null) && (childrenData.length > 0)) { + for (int i = 0; i < childrenData.length; i++) { + if (childrenData[i].getPackCodeNodeInfo().getNodeComponent() != null) { + if (childrenComponent.equals(childrenData[i].getPackCodeNodeInfo().getNodeComponent())) { + isLoader = true; + } + str = str + childrenData[i].getPackCodeNodeInfo().getNodeComponent().getUid(); + str = str + ","; + } + } + } + } + if (!isLoader) { + if (childrenComponent != null) { + str = str + childrenComponent.getUid(); + } + } + if (str.endsWith(",")) { + str = str.substring(0, str.length() - 1).toString(); + } + return str; + } + + public TCComponent[] searchTreeORListNodes(HashMap hashMap) throws ServiceException, TCException { + String[] propNames = new String[hashMap.size()]; + String[] propValues = new String[hashMap.size()]; + Set set = hashMap.keySet(); + Iterator it = set.iterator(); + for (int i = 0; i < hashMap.size(); i++) { + propNames[i] = (String) it.next(); + propValues[i] = (String) hashMap.get(propNames[i]); + } + Object[] params = { propNames, propValues }; + try { + TCComponent[] searchTCcomponents = (TCComponent[]) userService.call("searchTreeORListNodes", params); + // System.out.println("��ѯ���Ϊ�? + searchTCcomponents.length + "��"); + return searchTCcomponents; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + public PackCodeNodeInfo getTreeAndListStringValue(TCComponent component, String[] returnPropertyNames) throws ServiceException, TCException { + PackCodeNodeInfo packCodeNodeInfo = new PackCodeNodeInfo(); + try { + Object[] params = { component, returnPropertyNames }; + System.out.println("=================="); + String returnValues = (String) userService.call("getTreeAndListStringValue", params); + System.out.println("1111111111111111111111111"); + String[] values = returnValues.split("&&"); + if ((values != null) && (values.length > 0)) { + if (returnPropertyNames.equals(AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames)) { + packCodeNodeInfo.setNodeComponent(component); + packCodeNodeInfo.setNode_name(getStringValue(values[0])); + packCodeNodeInfo.setNode_type(getStringValue(values[1])); + packCodeNodeInfo.setNode_value(getStringValue(values[2])); + packCodeNodeInfo.setNode_desc(getStringValue(values[3])); + packCodeNodeInfo.setCode_style(getStringValue(values[4])); + packCodeNodeInfo.setRule_node(getStringValue(values[5])); + if (values[6].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_root(true); + } + if (values[7].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_lock(true); + } + if (values[8].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setDefaultSelected(true); + } + packCodeNodeInfo.setCreate_date(getStringValue(values[9])); + packCodeNodeInfo.setLast_revise_date(getStringValue(values[10])); + packCodeNodeInfo.setCreate_user(getStringValue(values[11])); + packCodeNodeInfo.setLast_revise_user(getStringValue(values[12])); + if (values[13].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setContainsChildren(true); + } + } else { + packCodeNodeInfo.setNodeComponent(component); + packCodeNodeInfo.setNode_name(getStringValue(values[0])); + packCodeNodeInfo.setNode_type(getStringValue(values[1])); + if (values[2].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_root(true); + } + if (values[3].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_lock(true); + } + if (values[4].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setContainsChildren(true); + } + } + } + } catch (TCException e) { + e.printStackTrace(); + } + return packCodeNodeInfo; + } + + private List getTreeORListNodeInfos(TCComponent[] searchTCcomponents, String parentString, String[] returnPropertyNames) { + List packCodeNodeInfos = new ArrayList(); + try { + if (searchTCcomponents != null && searchTCcomponents.length > 0) { + String[] stringValues = getTreeAndListStringValues(searchTCcomponents, returnPropertyNames, parentString); + System.out.println("stringPropNames====1111=========== "+stringValues); +// System.out.println("stringPropNames====1111=========== "+stringValues.length); + + if (stringValues == null) { + return null; + } + for (int i = 0; i < stringValues.length; i++) { + String[] values = stringValues[i].split("&&"); + PackCodeNodeInfo packCodeNodeInfo = new PackCodeNodeInfo(); + if ((values != null) && (values.length > 0)) { + if (returnPropertyNames.equals(AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames)) { + packCodeNodeInfo.setNodeComponent(searchTCcomponents[i]); + packCodeNodeInfo.setNode_name(getStringValue(values[0])); + packCodeNodeInfo.setNode_type(getStringValue(values[1])); + packCodeNodeInfo.setNode_value(getStringValue(values[2])); + packCodeNodeInfo.setNode_desc(getStringValue(values[3])); + packCodeNodeInfo.setCode_style(getStringValue(values[4])); + packCodeNodeInfo.setRule_node(getStringValue(values[5])); + if (values[6].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_root(true); + } + if (values[7].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_lock(true); + } + if (values[8].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setDefaultSelected(true); + } + packCodeNodeInfo.setCreate_date(getStringValue(values[9])); + packCodeNodeInfo.setLast_revise_date(getStringValue(values[10])); + packCodeNodeInfo.setCreate_user(getStringValue(values[11])); + packCodeNodeInfo.setLast_revise_user(getStringValue(values[12])); + if (values[13].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setContainsChildren(true); + } + } else { + packCodeNodeInfo.setNodeComponent(searchTCcomponents[i]); + packCodeNodeInfo.setNode_name(getStringValue(values[0])); + packCodeNodeInfo.setNode_type(getStringValue(values[1])); + if (values[2].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_root(true); + } + if (values[3].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setIs_lock(true); + } + if (values[4].equalsIgnoreCase("yes")) { + packCodeNodeInfo.setContainsChildren(true); + } + } + packCodeNodeInfos.add(packCodeNodeInfo); + } + } + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + return packCodeNodeInfos; + } + + public List searchTreeORListNodeInfos(HashMap hashMap, String parentString, String[] returnPropertyNames) throws ServiceException, TCException { + List packCodeNodeInfos = new ArrayList(); + try { + TCComponent[] searchTCcomponents = searchTreeORListNodes(hashMap); + System.out.println("parentString ========================>"+parentString); + packCodeNodeInfos = getTreeORListNodeInfos(searchTCcomponents, parentString, returnPropertyNames); + return packCodeNodeInfos; + } catch (TCException e) { + e.printStackTrace(); + return null; + } + } + + private String getStringValue(String value) { + if ((value == null) || (value.equalsIgnoreCase("null"))) { + return ""; + } else { + return value; + } + } + + public String[] getTreeAndListStringValues(TCComponent[] components, String[] stringPropNames, String parentString) throws ServiceException, TCException { + Object[] params = { components, stringPropNames, parentString }; + try { +// for(int i=0;i(); + if (childrenAutoCodeNodeData != null && childrenAutoCodeNodeData.length > 0) { + for (int i = 0; i < childrenAutoCodeNodeData.length; i++) { + // vectorChildren.add(childrenAutoCodeNodeData[i]); + } + } + } + + public void addChildrenNode(AbstractTreeData childrenNode) { + if (childrenNode == null) { + return; + } + AbstractTreeData[] childrenNodes = this.childrenTreeData; + int childrenLength = 1; + if (childrenNodes != null) { + childrenLength = childrenLength + childrenNodes.length; + } + AbstractTreeData[] childrenNodes2 = new AbstractTreeData[childrenLength]; + for (int i = 0; i < childrenLength - 1; i++) { + childrenNodes2[i] = childrenNodes[i]; + } + childrenNodes2[childrenLength - 1] = childrenNode; + this.setTreeAutoCodeNodeChildren(childrenNodes2); + } + + public Image getImage() { + return image; + } + + /** + * @return the childrenDatas + */ + public AbstractTreeData[] getChildrenDatas() { + return childrenDatas; + } + + /** + * @param childrenDatas + * the childrenDatas to set + */ + public void setChildrenDatas(AbstractTreeData[] childrenDatas) { + this.childrenDatas = childrenDatas; + } + + /** + * @return the childrenTreeData + */ + public AbstractTreeData[] getChildrenTreeData() { + return childrenTreeData; + } + + /** + * @param image + * the image to set + */ + public void setImage(Image image) { + this.image = image; + } + + /** + * @return the parentTreeData + */ + public AbstractTreeData getParentTreeData() { + return parentTreeData; + } + + /** + * @param parentTreeData + * the parentTreeData to set + */ + public void setParentTreeData(AbstractTreeData parentTreeData) { + this.parentTreeData = parentTreeData; + } + + /** + * @return the isChildrenLoader + */ + public boolean isChildrenLoader() { + return isChildrenLoader; + } + + /** + * @param isChildrenLoader + * the isChildrenLoader to set + */ + public void setChildrenLoader(boolean isChildrenLoader) { + this.isChildrenLoader = isChildrenLoader; + } + + public PackCodeNodeInfo getPackCodeNodeInfo() { + return packCodeNodeInfo; + } + + public void setPackCodeNodeInfo(PackCodeNodeInfo packCodeNodeInfo) { + this.packCodeNodeInfo = packCodeNodeInfo; + if (packCodeNodeInfo.is_lock) { + this.image = getImageByType(AutoCodeManagerPropertyName.LockName); + } else { + this.image = getImageByType(packCodeNodeInfo.getNode_type()); + } + } + + public void setChildrenTreeData(AbstractTreeData[] childrenTreeData) { + this.childrenTreeData = childrenTreeData; + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction.java b/src/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction.java new file mode 100644 index 0000000..668ae15 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/tree/AbstractTreeViewRightKeyAction.java @@ -0,0 +1,352 @@ +/** + * @author tyl + * @Action ini + * 2011-3-16 + */ +package cn.com.origin.autocodemanager.common.tree; + +import java.util.HashMap; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.actions.ActionGroup; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import cn.com.origin.autocodemanager.common.AutoCodeConstants; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.views.AutoCodeListCodeView; +import cn.com.origin.autocodemanager.views.AutoCodeSegmentView; +import cn.com.origin.autocodemanager.views.AutoCodeTreeCodeView; +import cn.com.origin.autocodemanager.views.codeview.CodeSegmentDialog; +import cn.com.origin.autocodemanager.views.codeview.CopyCodeNodeDialog; +import cn.com.origin.autocodemanager.views.codeview.NewCodeNodeDialog; +import cn.com.origin.autocodemanager.views.listcodeview.CreateListCodeView; +import cn.com.origin.autocodemanager.views.listcodeview.NewListPropertyNodeDialog; +import cn.com.origin.autocodemanager.views.listcodeview.NewListPropertyValueNodeDialog; +import cn.com.origin.autocodemanager.views.treecodeview.CreateTreeCodeView; +import cn.com.origin.autocodemanager.views.treecodeview.NewTreeCodeNodeDialog; + +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class AbstractTreeViewRightKeyAction extends ActionGroup { + public TreeViewer treeViewer; + public MenuManager menuManager; + public AbstractCreateTreeView createView; + public AbstractTreeData selectedTreeData; + public TCSession session; + public AutoCodeListCodeView codeListView; + public AutoCodeSegmentView codeSegmentView; + public AutoCodeTreeCodeView codeTreeView; + public TreeAndListCodeOperation treeAndListCodeOperation; + public TreeViewOperation treeViewOperation; + + public AbstractTreeViewRightKeyAction(AbstractCreateTreeView createTreeView) { + this.createView = createTreeView; + this.treeViewer = createTreeView.treeViewer; + initParams(); + this.selectedTreeData = treeViewOperation.getSelectedTreeNode(createTreeView.treeViewer); + } + + public void initParams() { + this.treeAndListCodeOperation = new TreeAndListCodeOperation(); + this.treeViewOperation = new TreeViewOperation(); + session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + if (createView == null) { + return; + } + if (createView.viewPart == null) { + return; + } + codeListView = (AutoCodeListCodeView) createView.viewPart.getSite().getPage().findView(AutoCodeManangerConstants.AutoCodeManagerListCodeView_ID); + codeSegmentView = (AutoCodeSegmentView) createView.viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + codeTreeView = (AutoCodeTreeCodeView) createView.viewPart.getSite().getPage().findView(AutoCodeManangerConstants.AutoCodeManagerTreeCodeView_ID); + } + + public void fillContextMenu() { + if (menuManager == null) { + // һεø÷ʱ + menuManager = new MenuManager(); + menuManager.add(new LockCodeNodeAction()); + menuManager.add(new UnLockCodeNodeAction()); + menuManager.add(new RemoveCodeNodeAction()); + } + Tree tree = treeViewer.getTree(); + Menu menu = menuManager.createContextMenu(tree); + tree.setMenu(menu); + } + + public class EidtCodeNodeAction extends Action { + public EidtCodeNodeAction() { + setText("༭"); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.EDIT_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + try { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪ޸Ľڵ!", "INFO", MessageBox.WARNING); + return; + } + AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + TCComponent segmentComponent = segmentTreeData.getPackCodeNodeInfo().getNodeComponent(); + TCComponent selectedComponent = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + if (selectedComponent != null) { + TCComponent[] components = treeAndListCodeOperation.getNodeReferenceComponents(selectedComponent); + String segmentNames = ""; + if (components != null) { + for (int i = 0; i < components.length; i++) { + if (!components[i].equals(segmentComponent)) { + components[i].refresh(); + segmentNames = segmentNames + components[i].getProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name); + segmentNames = segmentNames + "\n"; + } + } + if (segmentNames.trim().length() > 0) { + Boolean value = false; + value = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "INFO", "õ˽ڵ㣺\n" + segmentNames + "ȷ޸ģ"); + if (!value) { + return; + } + } + } + } + Image nodeImage = selectedTreeData.getImage(); + HashMap hashMap = new HashMap(); + if (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() != null) { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "true"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, session.getUser().getUid()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, session.getUser().getUid()); + try { + TCComponent updateComponent = new TreeAndListCodeOperation().updateTreeORListNode(selectedComponent, hashMap); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + } catch (ServiceException e) { + e.printStackTrace(); + } + } + selectedTreeData.setImage(new AbstractTreeData().getImageByType(AutoCodeManagerPropertyName.LockName)); + treeViewer.refresh(selectedTreeData); + + if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyNodeName)) { + new NewListPropertyNodeDialog(treeViewer.getControl().getShell(), (CreateListCodeView) createView, "༭б", true).open(); + } else { + if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyValueNodeName)) { + new NewListPropertyValueNodeDialog(treeViewer.getControl().getShell(), (CreateListCodeView) createView, "༭б", true).open(); + } else if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.TreeNodeName)) { + new NewTreeCodeNodeDialog(treeViewer.getControl().getShell(), (CreateTreeCodeView) createView, "༭ڵ", true, true).open(); + } else { + if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.CodeGroupName)) { + NewCodeNodeDialog codeNodeDialog = new NewCodeNodeDialog(null, createView, AutoCodeManagerPropertyName.AddRuleGroupNodeName, "༭", true); + codeNodeDialog.open(); + } else { + NewCodeNodeDialog codeNodeDialog = new NewCodeNodeDialog(null, createView, AutoCodeManagerPropertyName.AddRuleRootNodeName, "༭", true); + codeNodeDialog.open(); + } + } + } + HashMap hashMap2 = new HashMap(); + if (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() != null) { + hashMap2.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "false"); + hashMap2.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + hashMap2.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap2.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, session.getUser().getUid()); + hashMap2.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, session.getUser().getUid()); + TCComponent updateComponent = new TreeAndListCodeOperation().updateTreeORListNode(selectedComponent, hashMap2); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + } + selectedTreeData.setImage(nodeImage); + treeViewer.refresh(selectedTreeData); + } catch (TCException e) { + e.printStackTrace(); + } catch (ServiceException e) { + e.printStackTrace(); + } + } + } + + public class AddChildrenNodeAction extends Action { + String text = ""; + String type = ""; + + public AddChildrenNodeAction(String text, String type) { + setText(text); + this.text = text; + this.type = type; + ImageDescriptor imageDesc = new AbstractTreeData().getImageDescriptorByType(type); + this.setImageDescriptor(imageDesc); + } + + public void run() { + try { + AbstractTreeData rootNode = treeViewOperation.getSelectedTreeNode(codeSegmentView.getCreateView().treeViewer); + if (!treeViewOperation.isRuleRootNode(rootNode)) { + MessageBox.post("ѡҪ޸Ĺ!", "INFO", MessageBox.WARNING); + return; + } + new CodeSegmentDialog(treeViewer.getControl().getShell(), createView, text, type).open(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public class LockCodeNodeAction extends Action { + public LockCodeNodeAction() { + setText(""); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.LOCK_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + try { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪڵ!", "INFO", MessageBox.WARNING); + return; + } + + AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + TCComponent segmentComponent = segmentTreeData.getPackCodeNodeInfo().getNodeComponent(); + TCComponent selectedComponent = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + if (selectedComponent != null) { + TCComponent[] components = treeAndListCodeOperation.getNodeReferenceComponents(selectedComponent); + String segmentNames = ""; + if (components != null) { + for (int i = 0; i < components.length; i++) { + if (!components[i].equals(segmentComponent)) { + components[i].refresh(); + segmentNames = segmentNames + components[i].getProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name); + segmentNames = segmentNames + "\n"; + } + } + if (segmentNames.trim().length() > 0) { + Boolean value = false; + value = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "INFO", "õ˽ڵ㣺\n" + segmentNames + "ȷ"); + if (!value) { + return; + } + } + } + } + HashMap hashMap = new HashMap(); + if (selectedComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "true"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, session.getUser().getUid()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, session.getUser().getUid()); + TCComponent updateComponent = new TreeAndListCodeOperation().updateTreeORListNode(selectedComponent, hashMap); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + createView.treeViewer.refresh(selectedTreeData); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public class UnLockCodeNodeAction extends Action { + public UnLockCodeNodeAction() { + setText(""); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.UNLOCK_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + try { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪڵ!", "INFO", MessageBox.WARNING); + return; + } + TCComponent selectedComponent = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + HashMap hashMap = new HashMap(); + if (selectedComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, session.getUser().getUid()); + TCComponent updateComponent = new TreeAndListCodeOperation().updateTreeORListNode(selectedComponent, hashMap); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + createView.treeViewer.refresh(selectedTreeData); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public class CopyCodeNodeAction extends Action { + public CopyCodeNodeAction() { + setText(""); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.EDIT_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪƽڵ!", "INFO", MessageBox.WARNING); + return; + } + + try { + if (treeViewOperation.isRuleRootNode(selectedTreeData)) { + CopyCodeNodeDialog codeNodeDialog = new CopyCodeNodeDialog(null, createView, "ƹ", true, AutoCodeManagerPropertyName.AddRuleRootNodeName); + codeNodeDialog.open(); + } else { + CopyCodeNodeDialog codeNodeDialog = new CopyCodeNodeDialog(null, createView, "", true, AutoCodeManagerPropertyName.AddRuleGroupNodeName); + codeNodeDialog.open(); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + } + } + + public class RemoveCodeNodeAction extends Action { + public RemoveCodeNodeAction() { + setText("Ƴ"); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.REMOVE_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪƳڵ!", "INFO", MessageBox.WARNING); + return; + } + try { + boolean value = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "INFO", "ȷƳ"); + AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + if (value) { + treeViewOperation.removeTreeNode(createView.treeViewer, selectedTreeData); + treeAndListCodeOperation.removeTreeORListNode(segmentTreeData, selectedTreeData); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/cn/com/origin/autocodemanager/common/tree/ORTreeContentProvider.java b/src/cn/com/origin/autocodemanager/common/tree/ORTreeContentProvider.java new file mode 100644 index 0000000..060b449 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/tree/ORTreeContentProvider.java @@ -0,0 +1,41 @@ +package cn.com.origin.autocodemanager.common.tree; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; + +public class ORTreeContentProvider implements ITreeContentProvider { + + public Object[] getChildren(Object parentObj) { + return ((AbstractTreeData) parentObj).getChildrenTreeData(); + + } + + public Object getParent(Object element) { + return ((AbstractTreeData) element).getParentTreeData(); + + } + + public boolean hasChildren(Object element) { + boolean flag = false; + if (((AbstractTreeData) element) != null && ((AbstractTreeData) element).getChildrenTreeData() != null && ((AbstractTreeData) element).getChildrenTreeData().length > 0) { + flag = true; + } + return flag; + } + + public Object[] getElements(Object inputElement) { + // TODO Auto-generated method stub + return (Object[]) inputElement; + } + + public void dispose() { + // TODO Auto-generated method stub + + } + + public void inputChanged(Viewer arg0, Object obj1, Object obj2) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/tree/ORTreeLabelProvider.java b/src/cn/com/origin/autocodemanager/common/tree/ORTreeLabelProvider.java new file mode 100644 index 0000000..1bd7941 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/tree/ORTreeLabelProvider.java @@ -0,0 +1,48 @@ +package cn.com.origin.autocodemanager.common.tree; + +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.swt.graphics.Image; + +public class ORTreeLabelProvider implements ILabelProvider { + + public Image getImage(Object obj) { + if (obj instanceof AbstractTreeData) { + AbstractTreeData codeTreeData = (AbstractTreeData) obj; + return codeTreeData.getImage(); + } else { + return null; + } + } + + public String getText(Object obj) { + String nodeName = ""; + if (obj instanceof AbstractTreeData) { + AbstractTreeData treeData = ((AbstractTreeData) obj); + if (treeData.getPackCodeNodeInfo() != null) { + nodeName = treeData.getPackCodeNodeInfo().getNode_name(); + } + } + return nodeName; + } + + public void addListener(ILabelProviderListener listener) { + + } + + public void dispose() { + // TODO Auto-generated method stub + + } + + public boolean isLabelProperty(Object obj, String s) { + // TODO Auto-generated method stub + return false; + } + + public void removeListener(ILabelProviderListener label) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.java b/src/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.java new file mode 100644 index 0000000..af00aba --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/tree/TreeViewOperation.java @@ -0,0 +1,330 @@ +/** + * @author tyl + * @Action ini + * 2011-3-29 + */ +package cn.com.origin.autocodemanager.common.tree; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.widgets.TreeItem; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.views.AutoCodeListCodeView; +import cn.com.origin.autocodemanager.views.AutoCodeSegmentView; +import cn.com.origin.autocodemanager.views.AutoCodeTreeCodeView; +import com.teamcenter.rac.util.MessageBox; + +public class TreeViewOperation { + public TreeAndListCodeOperation treeAndListCodeOperation; + public AutoCodeListCodeView codeListView; + public AutoCodeSegmentView codeSegmentView; + public AutoCodeTreeCodeView codeTreeView; + + public TreeViewOperation() { + this.treeAndListCodeOperation = new TreeAndListCodeOperation(); + } + + public void addChildrenTreeNodeRelations(TreeViewer treeViewer, AbstractTreeData parentNode, AbstractTreeData[] childrenNodes) { + for (int i = 0; i < childrenNodes.length; i++) { + AbstractTreeData childrenNode = childrenNodes[i]; + if (childrenNode.getPackCodeNodeInfo().getNodeComponent() != null) { + treeAndListCodeOperation.createNewCodeRelation(parentNode, childrenNode.getPackCodeNodeInfo().getNodeComponent()); + addChildrenTreeNodeRelations(treeViewer, childrenNode, childrenNode.getChildrenDatas()); + } + } + } + + public boolean isRuleRootNode(AbstractTreeData treeData) { + if (treeData == null) { + return false; + } + if (treeData.getPackCodeNodeInfo().getNodeComponent() == null) { + return false; + } + if (treeData.getPackCodeNodeInfo().is_root) { + return true; + } + return false; + } + + public void addExistCodeNode(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + try { + if (isRuleRootNode(parentData)) { + addNewTreeOrListInput(treeViewer, parentData, childrenData); + } else { + addChildrenData(treeViewer, parentData, childrenData); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void appendChildrenNode(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + AbstractTreeData[] childrenDatas = parentData.getChildrenDatas(); + int childrenLength = 1; + + if (childrenDatas != null) { + childrenLength = childrenLength + childrenDatas.length; + } + AbstractTreeData[] treeDatas = new AbstractTreeData[childrenLength]; + boolean isContain = true; + for (int i = 0; i < childrenLength - 1; i++) { + if ((childrenData.getPackCodeNodeInfo().getNodeComponent()).equals(childrenDatas[i].getPackCodeNodeInfo().getNodeComponent())) { + isContain = false; + break; + } + treeDatas[i] = childrenDatas[i]; + } + if (!isContain) { + return; + } else { + treeDatas[childrenLength - 1] = childrenData; + parentData.setTreeAutoCodeNodeChildren(treeDatas); + childrenData.setParentTreeData(parentData); + parentData.setChildrenLoader(true); + treeViewer.refresh(parentData); + } + } + + public void addChildrenRelations(AbstractTreeData parentData, AbstractTreeData childrenData) { + treeAndListCodeOperation.createNewCodeRelation(parentData, childrenData.getPackCodeNodeInfo().getNodeComponent()); + AbstractTreeData[] childrenDatas = parentData.getChildrenDatas(); + int childrenLength = 1; + + if (childrenDatas != null) { + childrenLength = childrenLength + childrenDatas.length; + } + AbstractTreeData[] treeDatas = new AbstractTreeData[childrenLength]; + for (int i = 0; i < childrenLength - 1; i++) { + treeDatas[i] = childrenDatas[i]; + } + treeDatas[childrenLength - 1] = childrenData; + + if (isRuleRootNode(parentData)) { + parentData.setChildrenDatas(treeDatas); + } else { + parentData.setTreeAutoCodeNodeChildren(treeDatas); + } + childrenData.setParentTreeData(parentData); + parentData.setChildrenLoader(true); + } + + public void addTreeNodes(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + treeAndListCodeOperation.createNewCodeRelation(parentData, childrenData.getPackCodeNodeInfo().getNodeComponent()); + AbstractTreeData[] childrenDatas = parentData.getChildrenDatas(); + int childrenLength = 1; + + if (childrenDatas != null) { + childrenLength = childrenLength + childrenDatas.length; + } + AbstractTreeData[] treeDatas = new AbstractTreeData[childrenLength]; + for (int i = 0; i < childrenLength - 1; i++) { + treeDatas[i] = childrenDatas[i]; + } + treeDatas[childrenLength - 1] = childrenData; + + parentData.setTreeAutoCodeNodeChildren(treeDatas); + childrenData.setParentTreeData(parentData); + parentData.setChildrenLoader(true); + treeViewer.refresh(parentData); + } + + public void addChildrenData(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + if (parentData == null) { + return; + } + if (childrenData == null) { + return; + } + treeAndListCodeOperation.createNewCodeRelation(parentData, childrenData.getPackCodeNodeInfo().getNodeComponent()); + AbstractTreeData[] childrenDatas = parentData.getChildrenDatas(); + int childrenLength = 1; + + if (childrenDatas != null) { + childrenLength = childrenLength + childrenDatas.length; + } + AbstractTreeData[] treeDatas = new AbstractTreeData[childrenLength]; + for (int i = 0; i < childrenLength - 1; i++) { + treeDatas[i] = childrenDatas[i]; + } + treeDatas[childrenLength - 1] = childrenData; + + if (isRuleRootNode(parentData)) { + parentData.setChildrenDatas(treeDatas); + } else { + parentData.setTreeAutoCodeNodeChildren(treeDatas); + } + childrenData.setParentTreeData(parentData); + parentData.setChildrenLoader(true); + treeViewer.refresh(parentData); + } + + public boolean appendChildrenData(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + AbstractTreeData[] childrenDatas = parentData.getChildrenDatas(); + int childrenLength = 1; + + if (childrenDatas != null) { + childrenLength = childrenLength + childrenDatas.length; + } + AbstractTreeData[] treeDatas = new AbstractTreeData[childrenLength]; + boolean isContain = false; + for (int i = 0; i < childrenLength - 1; i++) { + if ((childrenData.getPackCodeNodeInfo().getNodeComponent()).equals(childrenDatas[i].getPackCodeNodeInfo().getNodeComponent())) { + isContain = true; + break; + } + treeDatas[i] = childrenDatas[i]; + } + if (isContain) { + MessageBox.post("ӡ" + childrenData.getPackCodeNodeInfo().getNode_name() + "!", "INFO", MessageBox.WARNING); + } else { + treeDatas[childrenLength - 1] = childrenData; + parentData.setTreeAutoCodeNodeChildren(treeDatas); + childrenData.setParentTreeData(parentData); + parentData.setChildrenLoader(true); + treeViewer.refresh(parentData); + } + return isContain; + } + + public void addNewTreeOrListInput(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + // treeAndListCodeOperation.createNewCodeRelation(parentData, childrenData.getPackCodeNodeInfo().getNodeComponent()); + int length = 1; + if (treeViewer.getInput() != null) { + Object[] existDatas = (Object[]) treeViewer.getInput(); + if (existDatas != null) { + length = length + existDatas.length; + } + AbstractTreeData[] childrenDatas = new AbstractTreeData[length]; + if (existDatas != null) { + for (int i = 0; i < existDatas.length; i++) { + childrenDatas[i] = (AbstractTreeData) existDatas[i]; + } + } + childrenData.setParentTreeData(parentData); + childrenDatas[length - 1] = childrenData; + treeViewer.setInput(childrenDatas); + parentData.setChildrenDatas(childrenDatas); + } else { + treeViewer.setInput(new AbstractTreeData[] { childrenData }); + parentData.setChildrenDatas(new AbstractTreeData[] { childrenData }); + childrenData.setParentTreeData(parentData); + } + parentData.setChildrenLoader(true); + treeViewer.refresh(parentData); + treeAndListCodeOperation.createNewCodeRelation(parentData, childrenData.getPackCodeNodeInfo().getNodeComponent()); + } + + public AbstractTreeData getSelectedTreeNode(TreeViewer treeViewer) { + TreeItem[] treeItems = treeViewer.getTree().getSelection(); + if ((treeItems != null) && (treeItems.length > 0)) { + return (AbstractTreeData) treeItems[0].getData(); + } else { + return null; + } + } + + public void removeTreeNode(TreeViewer treeViewer, AbstractTreeData treeData) { + try { + AbstractTreeData parentTreeData = treeData.getParentTreeData(); + if (parentTreeData != null) { + if (isRuleRootNode(parentTreeData)) { + updateTreeOrListInput(treeViewer, parentTreeData, treeData); + } else { + List treeDatas = new ArrayList(); + AbstractTreeData[] parentChildrenData = parentTreeData.getChildrenDatas(); + if (parentChildrenData != null) { + for (int i = 0; i < parentChildrenData.length; i++) { + if (!treeData.equals(parentChildrenData[i])) { + treeDatas.add(parentChildrenData[i]); + } + } + if (treeDatas.size() > 0) { + AbstractTreeData[] treeDatas2 = new AbstractTreeData[treeDatas.size()]; + for (int i = 0; i < treeDatas.size(); i++) { + treeDatas2[i] = treeDatas.get(i); + } + parentTreeData.setTreeAutoCodeNodeChildren(treeDatas2); + } else { + parentTreeData.setTreeAutoCodeNodeChildren(null); + } + } + } + } else { + treeViewer.setInput(null); + } + treeViewer.remove(treeData); + } catch (Exception e) { + e.printStackTrace(); + } + // treeViewer.refresh(parentTreeData); + } + + public void removeNodeFromParent(AbstractTreeData parentTreeData, AbstractTreeData childrenData) { + if ((parentTreeData == null) || (childrenData == null)) { + return; + } + List treeDatas = new ArrayList(); + AbstractTreeData[] parentChildrenData = parentTreeData.getChildrenDatas(); + if (parentChildrenData != null) { + for (int i = 0; i < parentChildrenData.length; i++) { + if (!childrenData.equals(parentChildrenData[i])) { + treeDatas.add(parentChildrenData[i]); + } + } + if (treeDatas.size() > 0) { + AbstractTreeData[] treeDatas2 = new AbstractTreeData[treeDatas.size()]; + for (int i = 0; i < treeDatas.size(); i++) { + treeDatas2[i] = treeDatas.get(i); + } + parentTreeData.setTreeAutoCodeNodeChildren(treeDatas2); + } else { + parentTreeData.setTreeAutoCodeNodeChildren(null); + } + } + + } + + public void updateTreeOrListInput(TreeViewer treeViewer, AbstractTreeData parentData, AbstractTreeData childrenData) { + int length = -1; + if (treeViewer.getInput() != null) { + AbstractTreeData[] existDatas = (AbstractTreeData[]) treeViewer.getInput(); + if (existDatas != null) { + length = length + existDatas.length; + } + if (length >= 1) { + List treeDatas = new ArrayList(); + for (int i = 0; i < existDatas.length; i++) { + if (!childrenData.equals(existDatas[i])) { + treeDatas.add(existDatas[i]); + } + } + AbstractTreeData[] childrenDatas = new AbstractTreeData[treeDatas.size()]; + for (int i = 0; i < treeDatas.size(); i++) { + childrenDatas[i] = treeDatas.get(i); + } + treeViewer.setInput(childrenDatas); + parentData.setTreeAutoCodeNodeChildren(childrenDatas); + } else { + treeViewer.setInput(null); + parentData.setTreeAutoCodeNodeChildren(null); + } + } else { + treeViewer.setInput(null); + parentData.setTreeAutoCodeNodeChildren(null); + } + treeViewer.refresh(parentData); + } + + public void addExistSegmentRelation(TreeViewer treeViewer, AbstractTreeData parentTreeData, AbstractTreeData[] childrenTreeDatas) { + for (int i = 0; i < childrenTreeDatas.length; i++) { + AbstractTreeData childrenData = childrenTreeDatas[i]; + if (childrenData.getPackCodeNodeInfo().getNodeComponent() != null) { + treeAndListCodeOperation.createNewCodeRelation(parentTreeData, childrenData.getPackCodeNodeInfo().getNodeComponent()); + addExistSegmentRelation(treeViewer, childrenData, childrenData.getChildrenDatas()); + } + } + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/treetable/AbstractTreeTable.java b/src/cn/com/origin/autocodemanager/common/treetable/AbstractTreeTable.java new file mode 100644 index 0000000..51fcdad --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/treetable/AbstractTreeTable.java @@ -0,0 +1,157 @@ +/** + * @author tyl + * @Action ini + * 2011-3-16 + */ +package cn.com.origin.autocodemanager.common.treetable; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.TreeColumn; +import org.eclipse.ui.part.ViewPart; + +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.views.listcodeview.NewItemListCodeView; +import cn.com.origin.autocodemanager.views.treecodeview.NewItemTreeCodeView; +import org.eclipse.swt.graphics.Color; +import com.teamcenter.rac.kernel.TCComponent; + +public class AbstractTreeTable extends AbstractCreateTreeView { + + public AbstractTreeTable(Composite composite, String rootName, ViewPart viewPart) { + super(composite, rootName, viewPart); + // createTree(composite); + } + + public AbstractTreeTable() { + + } + + public AbstractTreeTable(Composite composite, String rootName) { + super(composite, rootName); + + } + + public TreeColumn createColumn(Composite parent, String treeColumnName, int width) { + TreeColumn treeColumn = new TreeColumn(tree, SWT.LEFT); + treeColumn.setText(treeColumnName); + treeColumn.setWidth(width); + return treeColumn; + } + + public void initTree(String rootName) { + tree.setHeaderVisible(true); // ñͷɼ + tree.setLinesVisible(true); // ߿ɼ + + tree.setBackground(new Color(Display.getCurrent(),255,255,255)); + tree.setVisible(true); + tree.setFocus(); // ý + treeViewer.setLabelProvider(new ORTreeTableLabelProvider()); + treeViewer.setContentProvider(new ORTreeTableContentProvider()); + createTreeColumn(); + } + + public void createTreeColumn() { + createColumn(tree, "", 150); + createColumn(tree, "ֵ", 100); + createColumn(tree, "ע", 100); + createColumn(tree, "ǷΪĬֵ", 100); + createColumn(tree, "", 100); + createColumn(tree, "Ƿ", 100); + createColumn(tree, "", 100); + createColumn(tree, "", 100); + createColumn(tree, "޸", 100); + createColumn(tree, "޸", 100); + } + + @Override + public void addMouseAction() { + + } + + @Override + public void addRightKeyAction() { + } + + @Override + public void createOrgAutoCodeNodeChildren(AbstractTreeData[] codeDatas) throws Exception { + if (codeDatas != null && codeDatas.length > 0) { + for (int i = 0; i < codeDatas.length; i++) { + AbstractTreeData autoCodeData = (AbstractTreeData) codeDatas[i]; + if (autoCodeData == null) { + return; + } + List newItemViewNames = new ArrayList(); + newItemViewNames.add(NewItemTreeCodeView.class.getSimpleName()); + newItemViewNames.add(NewItemListCodeView.class.getSimpleName()); + + String thisClassName = this.getClass().getSimpleName(); + if (newItemViewNames.contains(thisClassName)) { + TCComponent component = autoCodeData.getPackCodeNodeInfo().getNodeComponent(); + if ((component != null) &&(autoCodeData.getPackCodeNodeInfo().is_lock)) { + autoCodeData.setTreeAutoCodeNodeChildren(null); + autoCodeData.setChildrenLoader(false); + return; + } + } + TCComponent autoCodeDataComponent = autoCodeData.getPackCodeNodeInfo().getNodeComponent(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + HashMap hashMap = new HashMap(); + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(autoCodeData, parentStr); + if (autoCodeDataComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, autoCodeDataComponent.getUid()); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr); + } else { + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, ""); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, ""); + } + String parentStr2 = ""; + if (autoCodeDataComponent != null) { + if (parentStr.trim().length() == 0) { + parentStr2 = autoCodeDataComponent.getUid(); + } else { + parentStr2 = parentStr + "," + autoCodeDataComponent.getUid(); + } + } else { + parentStr2 = parentStr; + } + + List packCodeNodeInfos = treeAndListCodeOperation.searchTreeORListNodeInfos(hashMap, parentStr2,AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + + if (packCodeNodeInfos != null && packCodeNodeInfos.size() > 0) { + AbstractTreeData autoCodeDataTCComs[] = new AbstractTreeData[packCodeNodeInfos.size()]; + for (int k = 0; k < packCodeNodeInfos.size(); k++) { + if (packCodeNodeInfos.get(k).getNodeComponent() == null) { + continue; + } + PackCodeNodeInfo packCodeNodeInfo = packCodeNodeInfos.get(k); + autoCodeDataTCComs[k] = new AbstractTreeData(autoCodeData, packCodeNodeInfo); + if (packCodeNodeInfo.isContainsChildren()) { + autoCodeDataTCComs[k].setTreeAutoCodeNodeChildren(new AbstractTreeData[] { new AbstractTreeData() }); + } + } + autoCodeData.setTreeAutoCodeNodeChildren(autoCodeDataTCComs); + autoCodeData.setChildrenLoader(true); + treeViewer.refresh(autoCodeData); + treeViewer.expandToLevel(autoCodeData, 1); + } else { + autoCodeData.setTreeAutoCodeNodeChildren(null); + autoCodeData.setChildrenLoader(true); + treeViewer.refresh(autoCodeData); + treeViewer.expandToLevel(autoCodeData, 1); + } + } + } + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.java b/src/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.java new file mode 100644 index 0000000..ea3831e --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/treetable/ORNewItemTreeTableLabelProvider.java @@ -0,0 +1,67 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.common.treetable; + +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.swt.graphics.Image; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import com.teamcenter.rac.kernel.TCComponent; + +public class ORNewItemTreeTableLabelProvider implements ITableLabelProvider { + public Image getColumnImage(Object element, int columnIndex) { + if (element instanceof AbstractTreeData) { + AbstractTreeData codeTreeData = (AbstractTreeData) element; + if (columnIndex == 0) { + return codeTreeData.getImage(); + } + } + return null; + } + + public String getColumnText(Object element, int coumnIndex) { + if (element instanceof AbstractTreeData) { + AbstractTreeData codeTreeData = (AbstractTreeData) element; + if (codeTreeData == null) { + return ""; + } + if (codeTreeData.getPackCodeNodeInfo() == null) { + return ""; + } + + TCComponent component = codeTreeData.getPackCodeNodeInfo().getNodeComponent(); + if (component == null) { + return ""; + } + switch (coumnIndex) { + case 0: + return codeTreeData.getPackCodeNodeInfo().getNode_name(); + case 1: + return codeTreeData.getPackCodeNodeInfo().getNode_value(); + case 2: + return codeTreeData.getPackCodeNodeInfo().getNode_desc(); + } + } + return ""; + } + + public void addListener(ILabelProviderListener arg0) { + + } + + public void dispose() { + + } + + public boolean isLabelProperty(Object obj, String obj1) { + return false; + } + + public void removeListener(ILabelProviderListener arg0) { + + } + +} diff --git a/src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.java b/src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.java new file mode 100644 index 0000000..4c6d21e --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableContentProvider.java @@ -0,0 +1,46 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.common.treetable; + +import org.eclipse.jface.viewers.ITreeContentProvider; +import org.eclipse.jface.viewers.Viewer; + +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +public class ORTreeTableContentProvider implements ITreeContentProvider { + + public Object[] getChildren(Object parentObj) { + // TODO Auto-generated method stub + return ((AbstractTreeData) parentObj).getChildrenTreeData(); + + } + + public Object getParent(Object element) { + // TODO Auto-generated method stub + return ((AbstractTreeData) element).getParentTreeData(); + + } + + public boolean hasChildren(Object element) { + boolean flag = false; + if (((AbstractTreeData) element) != null && ((AbstractTreeData) element).getChildrenTreeData() != null && ((AbstractTreeData) element).getChildrenTreeData().length > 0) { + flag = true; + } + return flag; + } + + public Object[] getElements(Object inputElement) { + return (Object[]) inputElement; + } + + public void dispose() { + + } + + public void inputChanged(Viewer arg0, Object obj1, Object obj2) { + + } +} diff --git a/src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.java b/src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.java new file mode 100644 index 0000000..3326588 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/common/treetable/ORTreeTableLabelProvider.java @@ -0,0 +1,84 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.common.treetable; + +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.swt.graphics.Image; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +public class ORTreeTableLabelProvider implements ITableLabelProvider { + public Image getColumnImage(Object element, int columnIndex) { + if (element instanceof AbstractTreeData) { + AbstractTreeData codeTreeData = (AbstractTreeData) element; + if (columnIndex == 0) { + return codeTreeData.getImage(); + } + } + return null; + } + + public String getColumnText(Object element, int coumnIndex) { + if (element instanceof AbstractTreeData) { + try { + AbstractTreeData codeTreeData = (AbstractTreeData) element; + if ((codeTreeData == null) || (codeTreeData.getPackCodeNodeInfo() == null)) { + return ""; + } + switch (coumnIndex) { + case 0: + return codeTreeData.getPackCodeNodeInfo().getNode_name(); + case 1: + return codeTreeData.getPackCodeNodeInfo().getNode_value(); + case 2: + return codeTreeData.getPackCodeNodeInfo().getNode_desc(); + case 3: + if (codeTreeData.getPackCodeNodeInfo().isDefaultSelected) { + return ""; + } else { + return ""; + } + case 4: + return codeTreeData.getPackCodeNodeInfo().getRule_node(); + case 5: + if (codeTreeData.getPackCodeNodeInfo().is_lock) { + return ""; + } else { + return ""; + } + case 6: + return codeTreeData.getPackCodeNodeInfo().getCreate_date(); + case 7: + return codeTreeData.getPackCodeNodeInfo().getCreate_user(); + case 8: + return codeTreeData.getPackCodeNodeInfo().getLast_revise_date(); + case 9: + return codeTreeData.getPackCodeNodeInfo().getLast_revise_user(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + return ""; + } + + public void addListener(ILabelProviderListener arg0) { + + } + + public void dispose() { + + } + + public boolean isLabelProperty(Object obj, String obj1) { + return false; + } + + public void removeListener(ILabelProviderListener arg0) { + + } + +} diff --git a/src/cn/com/origin/autocodemanager/export/ExportNodeOperation.java b/src/cn/com/origin/autocodemanager/export/ExportNodeOperation.java new file mode 100644 index 0000000..d69d108 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/export/ExportNodeOperation.java @@ -0,0 +1,127 @@ +/** + * @author tyl + * @Action ini + * 2011-3-22 + */ +package cn.com.origin.autocodemanager.export; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.operations.ExcelOperation; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class ExportNodeOperation { + private TreeAndListCodeOperation treeAndListCodeOperation; + // private TCSession session; + private AbstractTreeData treeData; + private String filePath; + + public ExportNodeOperation(AbstractTreeViewPart viewPart, AbstractTreeData treeData, String filePath) { + // this.viewPart = viewPart; + this.treeData = treeData; + this.filePath = filePath; + initParams(); + } + + public void exportNode() { + ArrayList> arrayList = new ArrayList>(); + File excelFile = new File(filePath); + String sheetTitle = treeData.getPackCodeNodeInfo().getNode_name(); + Object[] cloumnNames = AutoCodeManagerPropertyName.TreeAndListCodeNode_Titles; + + exportTreeNode(treeData.getPackCodeNodeInfo().getNodeComponent(), arrayList, 0); + String parentStr = ""; + exportTreeNodes(treeAndListCodeOperation.getParentStr(treeData, parentStr), treeData.getPackCodeNodeInfo().getNodeComponent().getUid(), arrayList, 0); + + try { + ExcelOperation.writeExcel(sheetTitle, excelFile, cloumnNames, arrayList); + } catch (IOException e) { + } + } + + public void initParams() { + this.treeAndListCodeOperation = new TreeAndListCodeOperation(); + // session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + } + + private void exportTreeNodes(String parentStr, String currentStr, ArrayList> arrayList, int level) { + try { + TCComponent[] tccomponents = null; + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, currentStr); + tccomponents = treeAndListCodeOperation.searchTreeORListNodes(hashMap); + if (tccomponents == null) { + return; + } + + level = level + 1; + for (int i = 0; i < tccomponents.length; i++) { + exportTreeNode(tccomponents[i], arrayList, level); + String parentStr2 = parentStr + "," + currentStr; + if (parentStr2.trim().startsWith(",")) { + parentStr2 = parentStr2.substring(1); + } + exportTreeNodes(parentStr2, tccomponents[i].getUid().trim(), arrayList, level); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + } + + public void exportTreeNode(TCComponent tccomponent, ArrayList> arrayList, int level) { + if (tccomponent == null) { + return; + } + HashMap hashMap = new HashMap(); + try { + tccomponent.refresh(); + String[] propertyNames = { AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, + AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value, + AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, + AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user }; + String[] propertyValues = tccomponent.getProperties(propertyNames); + hashMap.put("", Integer.toString(level)); + hashMap.put("", propertyValues[0]); + hashMap.put("", propertyValues[1]); + hashMap.put("ֵ", propertyValues[2]); + hashMap.put("ע", propertyValues[3]); + hashMap.put("ʽ", propertyValues[4]); + hashMap.put("볤", propertyValues[5]); + hashMap.put("ˮʼֵ", propertyValues[6]); + hashMap.put("ˮֵ", propertyValues[7]); + if (propertyValues[8].equalsIgnoreCase("Y")) { + hashMap.put("ǷΪڵ", "true"); + } else { + hashMap.put("ǷΪڵ", "false"); + } + if (propertyValues[9].equalsIgnoreCase("Y")) { + hashMap.put("ǷΪĬֵ", "true"); + } else { + hashMap.put("ǷΪĬֵ", "false"); + } + if (propertyValues[10].equalsIgnoreCase("Y")) { + hashMap.put("Ƿ", "true"); + } else { + hashMap.put("Ƿ", "false"); + } + hashMap.put("", propertyValues[11]); + hashMap.put("޸", propertyValues[12]); + hashMap.put("", propertyValues[13]); + hashMap.put("޸", propertyValues[14]); + } catch (TCException e) { + e.printStackTrace(); + } + arrayList.add(hashMap); + } +} diff --git a/src/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.java b/src/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.java new file mode 100644 index 0000000..afb8f15 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/CodeCopyHandler.java @@ -0,0 +1,47 @@ +package cn.com.origin.autocodemanager.handlers; + +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aif.kernel.InterfaceAIFComponent; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponentBOMLine; +import com.teamcenter.rac.kernel.TCComponentCfgAttachmentLine; + +public class CodeCopyHandler extends AbstractHandler { + + + public Object execute(ExecutionEvent execut){ + try { + AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication(); + String id=""; + InterfaceAIFComponent target=abstractAIFUIApplication.getTargetComponent(); + if(target.getClass().toString().indexOf("TCComponentItem")>=0){ + id=target.getProperty("item_id"); + }else if(target.getClass().toString().indexOf("TCComponentItemRevision")>=0){ + id=target.getProperty("item_id"); + }else if(target.getClass().toString().indexOf("TCComponentBOMLine")>=0){ + TCComponentBOMLine targetLine=(TCComponentBOMLine) target; + id=targetLine.getItem().getProperty("item_id"); + }else if(target.getClass().toString().indexOf("TCComponentCfgAttachmentLine")>=0){ + TCComponentCfgAttachmentLine cfgLine=(TCComponentCfgAttachmentLine) target; + id=cfgLine.getRelatedComponent("me_cl_source").getProperty("item_id"); + }else if(target.getClass().toString().indexOf("TCComponentMfgBvrProcess")>=0){ + id=target.getProperty("bl_item_item_id"); + } + if(!"".equals(id)){ + setClipboard(id); + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + public void setClipboard(String str) { + StringSelection ss = new StringSelection(str); + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); + } + +} diff --git a/src/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.java b/src/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.java new file mode 100644 index 0000000..da7af0c --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/DeleteNodeHandler.java @@ -0,0 +1,100 @@ +/** + * @author tyl + * @Action ini + * 2011-3-22 + */ +package cn.com.origin.autocodemanager.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.ISources; + +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeConstants; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.views.AutoCodeSegmentView; + +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; + +public class DeleteNodeHandler extends AbstractHandler { + + /** + * + */ + public DeleteNodeHandler() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) + */ + public Object execute(ExecutionEvent e) throws ExecutionException { + Object obj = e.getApplicationContext(); +// AutoCodeListCodeView codeListView; +// AutoCodeTreeCodeView codeTreeView; + AutoCodeSegmentView codeSegmentView; + if (obj instanceof IEvaluationContext) { + AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication(); + TCSession session = (TCSession) abstractAIFUIApplication.getSession(); + IEvaluationContext appContext = (IEvaluationContext) obj; + Object view = appContext.getVariable(ISources.ACTIVE_PART_NAME); + if (view instanceof AbstractTreeViewPart) { + try { + session.setStatus("ɾ......"); + Boolean value = false; + AbstractTreeViewPart viewPart = (AbstractTreeViewPart) view; +// codeListView = (AutoCodeListCodeView) viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeListCodeView_ID); +// codeTreeView = (AutoCodeTreeCodeView) viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeTreeCodeView_ID); + codeSegmentView = (AutoCodeSegmentView) viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + + AbstractCreateTreeView autocodeView = viewPart.getCreateView(); + TreeViewOperation treeViewOperation = new TreeViewOperation(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + AbstractTreeData selectedTreeData = treeViewOperation.getSelectedTreeNode(autocodeView.treeViewer); + AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + + if ((selectedTreeData == null)) { + MessageBox.post("ѡҪɾڵ!", "INFO", MessageBox.WARNING); + return null; + } + if ((selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪɾڵ!", "INFO", MessageBox.WARNING); + return null; + } + if ((segmentTreeData == null)) { + MessageBox.post("ѡҪɾ!", "INFO", MessageBox.WARNING); + return null; + } + if ((segmentTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.CodeGroupName))) { + segmentTreeData = null; + } + if (!value) { + value = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "INFO", "ȷɾ"); + } + if (value) { + boolean isContinueDelete = treeAndListCodeOperation.deleteTreeORListNode(segmentTreeData, selectedTreeData); + if (isContinueDelete) { + treeViewOperation.removeTreeNode(autocodeView.treeViewer, selectedTreeData); + } + } + } catch (Exception e1) { + e1.printStackTrace(); + } + session.setReadyStatus(); + } + } + return null; + } +} diff --git a/src/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.java b/src/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.java new file mode 100644 index 0000000..1c7521a --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/DownListNodeHandler.java @@ -0,0 +1,108 @@ +/** + * @author tyl + * @Action ini + * 2011-5-6 + */ +package cn.com.origin.autocodemanager.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.ui.ISources; +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.views.AutoCodeListCodeView; + +import com.teamcenter.rac.kernel.TCComponent; + +public class DownListNodeHandler extends AbstractHandler { + public DownListNodeHandler() { + } + + public Object execute(ExecutionEvent e) throws ExecutionException { + Object obj = e.getApplicationContext(); + if (obj instanceof IEvaluationContext) { +// AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication(); +// TCSession session = (TCSession) abstractAIFUIApplication.getSession(); + IEvaluationContext appContext = (IEvaluationContext) obj; + Object view = appContext.getVariable(ISources.ACTIVE_PART_NAME); + if (view instanceof AbstractTreeViewPart) { + TreeViewOperation treeViewOperation = new TreeViewOperation(); + AbstractTreeViewPart viewPart = (AbstractTreeViewPart) view; + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + + AutoCodeListCodeView codeListView = (AutoCodeListCodeView) viewPart.getSite().getPage().findView(AutoCodeManangerConstants.AutoCodeManagerListCodeView_ID); +// AutoCodeSegmentView codeSegmentView = (AutoCodeSegmentView) viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + AbstractTreeData selectedTreeData = treeViewOperation.getSelectedTreeNode(codeListView.createView.treeViewer); +// AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + if (selectedTreeData == null) { + return null; + } + if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyNodeName)) { + AbstractTreeData[] listPropertyTreeDatas = (AbstractTreeData[]) codeListView.createView.treeViewer.getInput(); + for (int i = 0; i < listPropertyTreeDatas.length; i++) { + if (selectedTreeData.equals(listPropertyTreeDatas[i])) { + AbstractTreeData tempTreeData = listPropertyTreeDatas[i]; + if (i < listPropertyTreeDatas.length - 1) { + listPropertyTreeDatas[i] = listPropertyTreeDatas[i + 1]; + listPropertyTreeDatas[i + 1] = tempTreeData; + codeListView.createView.treeViewer.refresh(); + break; + } + } + } + + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(selectedTreeData.getParentTreeData(), parentStr); + String childrenStr = ""; + for (int i = 0; i < listPropertyTreeDatas.length; i++) { + TCComponent component = listPropertyTreeDatas[i].getPackCodeNodeInfo().getNodeComponent(); + if (component != null) { + childrenStr = childrenStr + component.getUid() + ","; + + } + } + if (childrenStr.toString().endsWith(",")) { + childrenStr = childrenStr.substring(0, childrenStr.length() - 1).toString(); + } + treeAndListCodeOperation.updateChildrenCodeRelation(parentStr, selectedTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent().getUid(), childrenStr); + } else { + AbstractTreeData listPropertyTreeNode = selectedTreeData.getParentTreeData(); + AbstractTreeData[] listPropertyValueTreeDatas = listPropertyTreeNode.getChildrenTreeData(); + for (int i = 0; i < listPropertyValueTreeDatas.length; i++) { + if (selectedTreeData.equals(listPropertyValueTreeDatas[i])) { + AbstractTreeData tempTreeData = listPropertyValueTreeDatas[i]; + if (i < listPropertyValueTreeDatas.length - 1) { + listPropertyValueTreeDatas[i] = listPropertyValueTreeDatas[i + 1]; + listPropertyValueTreeDatas[i + 1] = tempTreeData; + listPropertyTreeNode.setTreeAutoCodeNodeChildren(listPropertyValueTreeDatas); + codeListView.createView.treeViewer.refresh(listPropertyTreeNode); + break; + } + } + } + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(selectedTreeData.getParentTreeData(), parentStr); + String childrenStr = ""; + for (int i = 0; i < listPropertyValueTreeDatas.length; i++) { + TCComponent component = listPropertyValueTreeDatas[i].getPackCodeNodeInfo().getNodeComponent(); + if (component != null) { + childrenStr = childrenStr + component.getUid() + ","; + + } + } + if (childrenStr.toString().endsWith(",")) { + childrenStr = childrenStr.substring(0, childrenStr.length() - 1).toString(); + } + treeAndListCodeOperation.updateChildrenCodeRelation(parentStr, selectedTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent().getUid(), childrenStr); + } + } + } + return null; + } +} diff --git a/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java b/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java new file mode 100644 index 0000000..d1af1ab --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/ExportNodeHandler.java @@ -0,0 +1,63 @@ +/** + * @author tyl + * @Action ini + * 2011-3-22 + */ +package cn.com.origin.autocodemanager.handlers; + +import javax.swing.JFileChooser; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.swt.widgets.DirectoryDialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.ISources; +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.export.ExportNodeOperation; + +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; + +public class ExportNodeHandler extends AbstractHandler { + public Object execute(ExecutionEvent e) throws ExecutionException { + AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication(); + TCSession session = (TCSession) abstractAIFUIApplication.getSession(); + Object obj = e.getApplicationContext(); + if (obj instanceof IEvaluationContext) { + IEvaluationContext appContext = (IEvaluationContext) obj; + Object view = appContext.getVariable(ISources.ACTIVE_PART_NAME); + if (view instanceof AbstractTreeViewPart) { + AbstractTreeViewPart treeViewPart = (AbstractTreeViewPart) view; + AbstractCreateTreeView treeView = treeViewPart.getCreateView(); + AbstractTreeData selectedNode = new TreeViewOperation().getSelectedTreeNode(treeView.treeViewer); + // TreeViewOperation treeViewOperation=new TreeViewOperation(); + JFileChooser jfc = new JFileChooser(); + jfc.setFileSelectionMode(JFileChooser.CUSTOM_DIALOG); + String filePath = jfc.getFileSystemView().getHomeDirectory().getPath(); + //DirectoryDialog directoryDialog = new DirectoryDialog(Display.getDefault().getActiveShell()); + //directoryDialog.setText(""); + //directoryDialog.open(); + //String filePath = directoryDialog.getFilterPath(); + System.out.println("ѡļ·:" + filePath); + if (filePath != null && !"".equals(filePath)) { + filePath = filePath + "\\" + selectedNode.getPackCodeNodeInfo().getNode_name() + ".xls"; + } else { + MessageBox.post("ѡ·", "INFO", MessageBox.WARNING); + return null; + } + session.setStatus("ڵ......"); + new ExportNodeOperation(treeViewPart, selectedNode, filePath).exportNode(); + session.setReadyStatus(); + } + } + return null; + } + +} diff --git a/src/cn/com/origin/autocodemanager/handlers/ImportCodeNextIdHandler.java b/src/cn/com/origin/autocodemanager/handlers/ImportCodeNextIdHandler.java new file mode 100644 index 0000000..a46e132 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/ImportCodeNextIdHandler.java @@ -0,0 +1,43 @@ +/** + * @author tyl + * @Action ini + * 2011-5-17 + */ +package cn.com.origin.autocodemanager.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.kernel.TCUserService; + +public class ImportCodeNextIdHandler extends AbstractHandler { + + private TCUserService userService; + private TCSession session = null; + + public ImportCodeNextIdHandler() { + } + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands. + * ExecutionEvent) + */ + public Object execute(ExecutionEvent e) throws ExecutionException { + try { + session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + userService = (TCUserService) session.getUserService(); + Object[] params = {}; + userService.call("importHistoryNextID", params); + } catch (TCException e1) { + e1.printStackTrace(); + } + return null; + } + +} diff --git a/src/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.java b/src/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.java new file mode 100644 index 0000000..1731081 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/ImportNodeHandler.java @@ -0,0 +1,60 @@ +/** + * @author tyl + * @Action ini + * 2011-3-22 + */ +package cn.com.origin.autocodemanager.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.ui.ISources; +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.imports.ImportNodeOperation; +import com.teamcenter.rac.aif.AbstractAIFUIApplication; +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.rac.util.MessageBox; + +public class ImportNodeHandler extends AbstractHandler { + + public Object execute(ExecutionEvent e) throws ExecutionException { + AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication(); + TCSession session = (TCSession) abstractAIFUIApplication.getSession(); + Object obj = e.getApplicationContext(); + if (obj instanceof IEvaluationContext) { + IEvaluationContext appContext = (IEvaluationContext) obj; + Object view = appContext.getVariable(ISources.ACTIVE_PART_NAME); + if (view instanceof AbstractTreeViewPart) { + AbstractTreeViewPart treeViewPart = (AbstractTreeViewPart) view; + AbstractCreateTreeView treeView = treeViewPart.getCreateView(); + AbstractTreeData selectedNode = new TreeViewOperation().getSelectedTreeNode(treeView.treeViewer); + FileDialog fileDialog = new FileDialog(Display.getDefault().getActiveShell()); + fileDialog.setText(""); + fileDialog.setFilterNames(new String[] { "*.xls" }); + fileDialog.setFilterExtensions(new String[] { "*.xls" }); + fileDialog.open(); + String filePath = fileDialog.getFilterPath(); + String fileName = fileDialog.getFileName(); + // System.out.println("ѡļ·:" + filePath); + if (filePath != null && !"".equals(filePath) && fileName != null && !"".equals(fileName)) { + filePath = filePath + "/" + fileName; + } else { + MessageBox.post("ѡļ", "INFO", MessageBox.WARNING); + return null; + } + session.setStatus("ڵ......"); + new ImportNodeOperation(treeViewPart, selectedNode, filePath).importNode(); + session.setReadyStatus(); + MessageBox.post("ɹ!", "INFO", MessageBox.WARNING); + } + } + return null; + } +} diff --git a/src/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.java b/src/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.java new file mode 100644 index 0000000..efb0fb4 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/handlers/UpListNodeHandler.java @@ -0,0 +1,107 @@ +/** + * @author tyl + * @Action ini + * 2011-5-6 + */ +package cn.com.origin.autocodemanager.handlers; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.expressions.IEvaluationContext; +import org.eclipse.ui.ISources; +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.views.AutoCodeListCodeView; +import com.teamcenter.rac.kernel.TCComponent; + +public class UpListNodeHandler extends AbstractHandler { + public UpListNodeHandler() { + } + + public Object execute(ExecutionEvent e) throws ExecutionException { + Object obj = e.getApplicationContext(); + if (obj instanceof IEvaluationContext) { +// AbstractAIFUIApplication abstractAIFUIApplication = AIFUtility.getCurrentApplication(); +// TCSession session = (TCSession) abstractAIFUIApplication.getSession(); + IEvaluationContext appContext = (IEvaluationContext) obj; + Object view = appContext.getVariable(ISources.ACTIVE_PART_NAME); + if (view instanceof AbstractTreeViewPart) { + TreeViewOperation treeViewOperation = new TreeViewOperation(); + AbstractTreeViewPart viewPart = (AbstractTreeViewPart) view; + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + + AutoCodeListCodeView codeListView = (AutoCodeListCodeView) viewPart.getSite().getPage().findView(AutoCodeManangerConstants.AutoCodeManagerListCodeView_ID); +// AutoCodeSegmentView codeSegmentView = (AutoCodeSegmentView) viewPart.getSite().getPage().findView(AutoCodeConstants.AutoCodeSegmentView_ID); + AbstractTreeData selectedTreeData = treeViewOperation.getSelectedTreeNode(codeListView.createView.treeViewer); +// AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + if (selectedTreeData == null) { + return null; + } + if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyNodeName)) { + AbstractTreeData[] listPropertyTreeDatas = (AbstractTreeData[]) codeListView.createView.treeViewer.getInput(); + for (int i = 0; i < listPropertyTreeDatas.length; i++) { + if (selectedTreeData.equals(listPropertyTreeDatas[i])) { + AbstractTreeData tempTreeData = listPropertyTreeDatas[i]; + if (i > 0) { + listPropertyTreeDatas[i] = listPropertyTreeDatas[i - 1]; + listPropertyTreeDatas[i -1] = tempTreeData; + codeListView.createView.treeViewer.refresh(); + break; + } + } + } + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(selectedTreeData.getParentTreeData(), parentStr); + String childrenStr = ""; + for (int i = 0; i < listPropertyTreeDatas.length; i++) { + TCComponent component = listPropertyTreeDatas[i].getPackCodeNodeInfo().getNodeComponent(); + if (component != null) { + childrenStr = childrenStr + component.getUid() + ","; + + } + } + if (childrenStr.toString().endsWith(",")) { + childrenStr = childrenStr.substring(0, childrenStr.length() - 1).toString(); + } + treeAndListCodeOperation.updateChildrenCodeRelation(parentStr, selectedTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent().getUid(), childrenStr); + } else { + AbstractTreeData listPropertyTreeNode = selectedTreeData.getParentTreeData(); + AbstractTreeData[] listPropertyValueTreeDatas = listPropertyTreeNode.getChildrenTreeData(); + for (int i = 0; i < listPropertyValueTreeDatas.length; i++) { + if (selectedTreeData.equals(listPropertyValueTreeDatas[i])) { + AbstractTreeData tempTreeData = listPropertyValueTreeDatas[i]; + if (i > 0) { + listPropertyValueTreeDatas[i] = listPropertyValueTreeDatas[i - 1]; + listPropertyValueTreeDatas[i - 1] = tempTreeData; + listPropertyTreeNode.setTreeAutoCodeNodeChildren(listPropertyValueTreeDatas); + codeListView.createView.treeViewer.refresh(listPropertyTreeNode); + break; + } + } + } + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(selectedTreeData.getParentTreeData(), parentStr); + String childrenStr = ""; + for (int i = 0; i < listPropertyValueTreeDatas.length; i++) { + TCComponent component = listPropertyValueTreeDatas[i].getPackCodeNodeInfo().getNodeComponent(); + if (component != null) { + childrenStr = childrenStr + component.getUid() + ","; + + } + } + if (childrenStr.toString().endsWith(",")) { + childrenStr = childrenStr.substring(0, childrenStr.length() - 1).toString(); + } + treeAndListCodeOperation.updateChildrenCodeRelation(parentStr, selectedTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent().getUid(), childrenStr); + } + } + } + return null; + } + +} diff --git a/src/cn/com/origin/autocodemanager/imports/ImportNodeOperation.java b/src/cn/com/origin/autocodemanager/imports/ImportNodeOperation.java new file mode 100644 index 0000000..37a629e --- /dev/null +++ b/src/cn/com/origin/autocodemanager/imports/ImportNodeOperation.java @@ -0,0 +1,159 @@ +/** + * @author tyl + * @Action ini + * 2011-3-22 + */ +package cn.com.origin.autocodemanager.imports; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import jxl.read.biff.BiffException; +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.operations.ExcelOperation; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.util.MessageBox; + +public class ImportNodeOperation { + + private TreeViewOperation treeViewOperation; + // private TCSession session; + private AbstractTreeViewPart viewPart; + private AbstractTreeData treeData; + private String filePath; + TCComponent ruleComponent = null; + + public ImportNodeOperation(AbstractTreeViewPart viewPart, AbstractTreeData treeData, String filePath) { + this.viewPart = viewPart; + this.treeData = treeData; + this.filePath = filePath; + initParams(); + } + + public void initParams() { + // this.treeAndListCodeOperation = new TreeAndListCodeOperation(); + this.treeViewOperation = new TreeViewOperation(); + // session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + } + + public void importNode() { + try { + importTreeNode(treeData, filePath); + } catch (BiffException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private ArrayList> getImportFromExcel(String filePath) throws BiffException, IOException { + return ExcelOperation.readExcel(new File(filePath), 1, AutoCodeManagerPropertyName.TreeAndListCodeNode_Titles); + } + + public void importTreeNode(AbstractTreeData parentTreeData, String filePath) throws TCException, BiffException, IOException { + HashMap levelMap = new HashMap(); + ArrayList> arrayList = getImportFromExcel(filePath); + // System.out.println("arrayList:" + arrayList); + if (arrayList != null && arrayList.size() > 0) { + HashMap hashMap = (HashMap) arrayList.get(0); + int levelIndex = 0; + String level = (String) hashMap.get(""); + String name = (String) hashMap.get(""); + try { + levelIndex = Integer.parseInt(level); + } catch (NumberFormatException e) { + MessageBox.post(name + "д!", "INFO", MessageBox.WARNING); + e.printStackTrace(); + return; + } + String parentLevel = String.valueOf(levelIndex - 1); + levelMap.put(parentLevel, parentTreeData); + + for (int i = 0; i < arrayList.size(); i++) { + hashMap = (HashMap) arrayList.get(i); + level = (String) hashMap.get(""); + name = (String) hashMap.get(""); + String type = (String) hashMap.get(""); + try { + levelIndex = Integer.parseInt(level); + } catch (NumberFormatException e) { + MessageBox.post(name + "д!", "INFO", MessageBox.WARNING); + e.printStackTrace(); + return; + } + parentLevel = String.valueOf(levelIndex - 1); + parentTreeData = (AbstractTreeData) levelMap.get(parentLevel); + if (parentTreeData == null) { + MessageBox.post("" + name + "дǷ!", "INFO", MessageBox.WARNING); + return; + } + HashMap newHashMap = new HashMap(); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_index, ""); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, name); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, (String) hashMap.get("ֵ")); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, type); + if ((type.equalsIgnoreCase("tree")) || (type.equalsIgnoreCase("list"))) { + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, "true"); + } else { + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, "false"); + } + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, (String) hashMap.get("ʽ")); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, (String) hashMap.get("볤")); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, ""); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes, ""); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, (String) hashMap.get("ע")); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, ""); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, ""); + String isDefault = (String) hashMap.get("ǷΪĬֵ"); + if ((isDefault != null) && ((isDefault.equalsIgnoreCase("false")) || (isDefault.equalsIgnoreCase("true")))) { + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, (String) hashMap.get("ǷΪĬֵ")); + } else { + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, "false"); + } + + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "false"); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, (String) hashMap.get("ˮʼֵ")); + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value, (String) hashMap.get("ˮֵ")); + String maxValue = (String) hashMap.get("ˮֵ"); + if ((maxValue != null) && (!maxValue.equalsIgnoreCase("0")) && (maxValue.trim().length() > 0)) { + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, String.valueOf(maxValue.trim().length())); + } else { + newHashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, "0"); + } + if (newHashMap.get(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root).equalsIgnoreCase("true")) { + ruleComponent = null; + } + if (newHashMap.get(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type).equalsIgnoreCase(AutoCodeManagerPropertyName.CodeGroupName)) { + ruleComponent = null; + } + + TCComponent newComponent = new TreeAndListCodeOperation().createNewTreeORListNode(ruleComponent, parentTreeData, newHashMap); + if (newComponent == null) { + return; + } + if ((newHashMap.get(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root) != null) && (newHashMap.get(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root)).equalsIgnoreCase("true")) { + ruleComponent = newComponent; + } + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(newComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + AbstractTreeData treeData = new AbstractTreeData(parentTreeData, packCodeNodeInfo); + + treeViewOperation.addChildrenRelations(parentTreeData, treeData); + viewPart.createView.treeViewer.refresh(parentTreeData); + levelMap.put(level, treeData); + } + } + } +} diff --git a/src/cn/com/origin/autocodemanager/views/AutoCodeListCodeView.java b/src/cn/com/origin/autocodemanager/views/AutoCodeListCodeView.java new file mode 100644 index 0000000..57c2669 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/AutoCodeListCodeView.java @@ -0,0 +1,33 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.views; + +import org.eclipse.swt.widgets.Composite; + +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.views.listcodeview.CreateListCodeView; + +public class AutoCodeListCodeView extends AbstractTreeViewPart { + + public AutoCodeListCodeView() { + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) + */ + @Override + public void createPartControl(Composite arg0) { + super.createPartControl(arg0); + createView = new CreateListCodeView(arg0, "б", this); + } + + @Override + public void setFocus() { + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/AutoCodeSegmentView.java b/src/cn/com/origin/autocodemanager/views/AutoCodeSegmentView.java new file mode 100644 index 0000000..ac8153e --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/AutoCodeSegmentView.java @@ -0,0 +1,23 @@ +package cn.com.origin.autocodemanager.views; + +import org.eclipse.swt.widgets.Composite; + +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.views.codeview.CreateCodeSegmentView; + +public class AutoCodeSegmentView extends AbstractTreeViewPart { + public AutoCodeSegmentView() { + super(); + } + + @Override + public void createPartControl(Composite parent) { + super.createPartControl(parent); + createView=new CreateCodeSegmentView(parent,"",AutoCodeSegmentView.this); + } + + @Override + public void setFocus() { + + } +} diff --git a/src/cn/com/origin/autocodemanager/views/AutoCodeTestView.java b/src/cn/com/origin/autocodemanager/views/AutoCodeTestView.java new file mode 100644 index 0000000..e90b2ad --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/AutoCodeTestView.java @@ -0,0 +1,40 @@ +/** + * @author tyl + * @Action ini + * 2011-3-17 + */ +package cn.com.origin.autocodemanager.views; + +import org.eclipse.swt.widgets.Composite; + +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.views.testview.CreateCodeTestView; + +public class AutoCodeTestView extends AbstractTreeViewPart { + + public AutoCodeTestView() { + super(); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) + */ + @Override + public void createPartControl(Composite parentComposite) { + super.createPartControl(parentComposite); + new CreateCodeTestView(parentComposite, "", this); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#setFocus() + */ + @Override + public void setFocus() { + + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.java b/src/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.java new file mode 100644 index 0000000..e1f6be4 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/AutoCodeTreeCodeView.java @@ -0,0 +1,44 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.views; + +import org.eclipse.swt.widgets.Composite; + +import cn.com.origin.autocodemanager.common.AbstractTreeViewPart; +import cn.com.origin.autocodemanager.views.treecodeview.CreateTreeCodeView; + +public class AutoCodeTreeCodeView extends AbstractTreeViewPart { + + /** + * + */ +// private CreateTreeCodeView createTreeCodeView; + + public AutoCodeTreeCodeView() { + super(); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) + */ + @Override + public void createPartControl(Composite arg0) { + super.createPartControl(arg0); + createView = new CreateTreeCodeView(arg0, "", this); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.part.WorkbenchPart#setFocus() + */ + @Override + public void setFocus() { + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.java b/src/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.java new file mode 100644 index 0000000..de68c8c --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codestyleview/CreateCodeStyleView.java @@ -0,0 +1,119 @@ +/** + * @author tyl + * @Action ini + * 2011-4-7 + */ +package cn.com.origin.autocodemanager.views.codestyleview; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.part.ViewPart; + +import cn.com.origin.autocodemanager.common.CreateCompositeUtil; + +public class CreateCodeStyleView { + public ViewPart viewPart; + public Text seqBeginText; + public Text seqMaxText; + public Text seqLengthtext; + public Text seqStepText; + public Text seqExcludeStrText; + public Text codeStyleText; + public Text patternMinLengthText; + public Text coverText; + + public CreateCodeStyleView(Composite composite, ViewPart viewPart) { + this.viewPart = viewPart; + createNewComposite(composite); + } + + public void createNewComposite(Composite parent) { + GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 1; + parent.setLayout(gridLayout); + parent.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + Group nodeGroup = CreateCompositeUtil.createCompositeGroup(parent, "ˮ"); + nodeGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + createSeqPropertyComposite(nodeGroup); + + Group coverGroup = CreateCompositeUtil.createCompositeGroup(parent, "λ"); + coverGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + createCoverComposite(coverGroup); + + Group styleGroup = CreateCompositeUtil.createCompositeGroup(parent, "ʽ"); + styleGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + createCodeStyleComposite(styleGroup); + + Group buttonGroup = CreateCompositeUtil.createCompositeGroup(parent, "dsdsds"); + buttonGroup.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + createButtonComposite(buttonGroup); + } + + + private void createCodeStyleComposite(Composite composite) { + Composite styleComposite = new Composite(composite, SWT.NONE); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + styleComposite.setLayoutData(CreateCompositeUtil.getNewGridData()); + styleComposite.setLayout(gridLayout1); + styleComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + CreateCompositeUtil.createNewWhiteLabel(styleComposite, "ʽ"); + codeStyleText = CreateCompositeUtil.createNewText(styleComposite, "@"); + } + + private void createButtonComposite(Composite composite) { + Composite buttonComposite = new Composite(composite, SWT.NONE); + buttonComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + Button button1 = CreateCompositeUtil.createNewButton(buttonComposite, ""); + button1.setVisible(true); + Button button2 = CreateCompositeUtil.createButton(buttonComposite, "", 30, 100); + button2.setVisible(true); + } + + private void createCoverComposite(Composite composite) { + Composite coverComposite = new Composite(composite, SWT.NONE); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + coverComposite.setLayoutData(CreateCompositeUtil.getNewGridData()); + coverComposite.setLayout(gridLayout1); + coverComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + + CreateCompositeUtil.createNewWhiteLabel(coverComposite, "С"); + patternMinLengthText = CreateCompositeUtil.createNewText(coverComposite, ""); + CreateCompositeUtil.createNewWhiteLabel(coverComposite, "λ"); + coverText = CreateCompositeUtil.createNewText(coverComposite, ""); + } + + /** + * This method initializes createSeqPropertyComposite + * + */ + public void createSeqPropertyComposite(Composite parent) { + Composite seqComposite = new Composite(parent, SWT.NONE); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + seqComposite.setLayoutData(CreateCompositeUtil.getNewGridData()); + seqComposite.setLayout(gridLayout1); + seqComposite.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); + + CreateCompositeUtil.createNewWhiteLabel(seqComposite, "ʼֵ"); + seqBeginText = CreateCompositeUtil.createNewText(seqComposite, "0"); + + CreateCompositeUtil.createNewWhiteLabel(seqComposite, "ֵ"); + seqMaxText = CreateCompositeUtil.createNewText(seqComposite, "0"); + + CreateCompositeUtil.createNewWhiteLabel(seqComposite, ""); + seqLengthtext = CreateCompositeUtil.createNewText(seqComposite, "0"); + + CreateCompositeUtil.createNewWhiteLabel(seqComposite, ""); + seqStepText = CreateCompositeUtil.createNewText(seqComposite, "0"); + + CreateCompositeUtil.createNewWhiteLabel(seqComposite, ""); + seqExcludeStrText = CreateCompositeUtil.createNewText(seqComposite, ""); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog.java b/src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog.java new file mode 100644 index 0000000..b5aa25d --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentDialog.java @@ -0,0 +1,230 @@ +/** + * @author tyl + * @Action ini + * 2011-3-23 + */ +package cn.com.origin.autocodemanager.views.codeview; + +import java.util.HashMap; +import java.util.List; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Tree; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.CreateCompositeUtil; +import cn.com.origin.autocodemanager.common.dialog.AbstractCodeSegmentDialog; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.util.MessageBox; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class CodeSegmentDialog extends AbstractCodeSegmentDialog { + + public CodeSegmentDialog(Shell parentShell, AbstractCreateTreeView createView, String title, String action) { + super(parentShell, createView, title, action); + } + + // Ի + @Override + protected Control createDialogArea(Composite parent) { + Composite container = (Composite) super.createDialogArea(parent); + Group nodeGroup = CreateCompositeUtil.createCompositeGroup(container, ""); + createTreeComposite(nodeGroup); + return container; + } + + /* + * (non-Javadoc) + * + * @see cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView#addRightKeyAction() + */ + public void addRightKeyAction() { + final Tree tree = treeViewer.getTree(); + tree.addMouseListener(new MouseAdapter() { + public void mouseDoubleClick(MouseEvent mouseevent) { + addChildrenDataToParent(); + } + }); + } + + private void addChildrenDataToParent() { + AbstractTreeData parentTreeData = null; + AbstractTreeData childrenTreeData = treeViewOperation.getSelectedTreeNode(treeViewer); + + AbstractTreeData segmentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + + if ((childrenTreeData == null) || (childrenTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪҪӽڵ!", "INFO", MessageBox.WARNING); + return; + } + if ((segmentTreeData == null) || (segmentTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡ޸ĵĹ!", "INFO", MessageBox.WARNING); + return; + } + + parentTreeData = treeViewOperation.getSelectedTreeNode(createView.treeViewer); + if (parentTreeData == null) { + parentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + } + if (action.equals(AutoCodeManagerPropertyName.ListPropertyNodeName)) { + if (!childrenTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyNodeName)) { + MessageBox.post("ѡҪҪӵԽڵ!", "INFO", MessageBox.WARNING); + return; + } + parentTreeData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + AbstractTreeData targetAddNode = addNewChildrenNode(codeSegmentView.createView.treeViewer, parentTreeData, childrenTreeData.getPackCodeNodeInfo().getNodeComponent(), segmentTreeData.getPackCodeNodeInfo().getNodeComponent()); + String parentStr = ""; + addNewChildrenNodes(createView.treeViewer, treeAndListCodeOperation.getParentStr(childrenTreeData, parentStr), childrenTreeData.getPackCodeNodeInfo().getNodeComponent().getUid(), targetAddNode, segmentTreeData.getPackCodeNodeInfo().getNodeComponent()); + treeViewOperation.addExistCodeNode(createView.treeViewer, parentTreeData, targetAddNode); + createView.treeViewer.refresh(); + } else if (action.equals(AutoCodeManagerPropertyName.TreeNodeName)) { + if ((!childrenTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.TreeNodeName))) { + MessageBox.post("ѡҪҪӵڵ!", "INFO", MessageBox.WARNING); + return; + } + AbstractTreeData targetAddNode = addNewChildrenNode(treeViewer, parentTreeData, childrenTreeData.getPackCodeNodeInfo().getNodeComponent(), segmentTreeData.getPackCodeNodeInfo().getNodeComponent()); + String parentStr = ""; + addNewChildrenNodes(createView.treeViewer, treeAndListCodeOperation.getParentStr(childrenTreeData, parentStr), childrenTreeData.getPackCodeNodeInfo().getNodeComponent().getUid(), targetAddNode, segmentTreeData.getPackCodeNodeInfo().getNodeComponent()); + treeViewOperation.appendChildrenNode(createView.treeViewer, parentTreeData, targetAddNode); + createView.treeViewer.refresh(); + } + } + + private AbstractTreeData addNewChildrenNode(TreeViewer treeView, AbstractTreeData parentNode, TCComponent component, TCComponent segmentComponent) { + AbstractTreeData treeNode = null; + try { + if (component == null) { + return null; + } + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(component, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + treeNode = new AbstractTreeData(parentNode, packCodeNodeInfo); + + treeViewOperation.addChildrenRelations(parentNode, treeNode); + treeAndListCodeOperation.addNodeReferenceComponents(component, segmentComponent); + treeView.refresh(parentNode); + } catch (TCException e) { + e.printStackTrace(); + } catch (ServiceException e) { + e.printStackTrace(); + } + return treeNode; + } + + private void addNewChildrenNodes(TreeViewer treeView, String parentStr, String currentStr, AbstractTreeData parentNode, TCComponent segmentComponent) { + try { + TCComponent[] tccomponents = null; + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, currentStr); + tccomponents = treeAndListCodeOperation.searchTreeORListNodes(hashMap); + for (int i = 0; i < tccomponents.length; i++) { + AbstractTreeData copyNode = addNewChildrenNode(treeView, parentNode, tccomponents[i], segmentComponent); + String parentStr2 = parentStr + "," + currentStr; + if (parentStr2.trim().startsWith(",")) { + parentStr2 = parentStr2.substring(1); + } + addNewChildrenNodes(treeView, parentStr2, tccomponents[i].getUid().trim(), copyNode, segmentComponent); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + + } + + /* + * (non-Javadoc) + * + * @see cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView#createOrgAutoCodeNodeChildren(cn.com.origin.autocodemanager.common.tree.AbstractTreeData[]) + */ + + public void createOrgAutoCodeNodeChildren(AbstractTreeData[] codeDatas) throws Exception { + if (codeDatas != null && codeDatas.length > 0) { + for (int i = 0; i < codeDatas.length; i++) { + AbstractTreeData autoCodeData = (AbstractTreeData) codeDatas[i]; + if (autoCodeData == null) { + continue; + } + TCComponent autoCodeDataComponent = autoCodeData.getPackCodeNodeInfo().getNodeComponent(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + HashMap hashMap = new HashMap(); + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(autoCodeData, parentStr); + + if (autoCodeDataComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, autoCodeDataComponent.getUid()); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr); + } else { + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, ""); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, ""); + } + String parentStr2 = ""; + if (autoCodeDataComponent != null) { + if (parentStr.trim().length() == 0) { + parentStr2 = autoCodeDataComponent.getUid(); + } else { + parentStr2 = parentStr + "," + autoCodeDataComponent.getUid(); + } + } else { + parentStr2 = parentStr; + } + + List packCodeNodeInfos = treeAndListCodeOperation.searchTreeORListNodeInfos(hashMap, parentStr2, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + if (packCodeNodeInfos != null && packCodeNodeInfos.size() > 0) { + AbstractTreeData autoCodeDataTCComs[] = new AbstractTreeData[packCodeNodeInfos.size()]; + for (int k = 0; k < packCodeNodeInfos.size(); k++) { + if (packCodeNodeInfos.get(k).getNodeComponent() == null) { + continue; + } + PackCodeNodeInfo packCodeNodeInfo = packCodeNodeInfos.get(k); + autoCodeDataTCComs[k] = new AbstractTreeData(autoCodeData, packCodeNodeInfo); + if (packCodeNodeInfo.isContainsChildren()) { + autoCodeDataTCComs[k].setTreeAutoCodeNodeChildren(new AbstractTreeData[] { new AbstractTreeData() }); + } + } + autoCodeData.setTreeAutoCodeNodeChildren(autoCodeDataTCComs); + autoCodeData.setChildrenLoader(true); + treeViewer.refresh(autoCodeData); + } + } + } + } + + // öԻʼС + @Override + protected Point getInitialSize() { + return new Point(370, 500); + } + + // Իť + @Override + protected void createButtonsForButtonBar(final Composite parent) { + createButton(parent, IDialogConstants.OK_ID, "", true); + createButton(parent, IDialogConstants.CANCEL_ID, "ر", false); + getButton(IDialogConstants.OK_ID).setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.OK_IMAGE)); + getButton(IDialogConstants.CANCEL_ID).setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.CLOSE_IMAGE)); + } + + // ڵǷΪ + @Override + protected void okPressed() { + addChildrenDataToParent(); + this.close(); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction.java b/src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction.java new file mode 100644 index 0000000..c64fc34 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codeview/CodeSegmentViewRightKeyAction.java @@ -0,0 +1,79 @@ +/** + * @author tyl + * @Action ini + * 2011-3-17 + */ +package cn.com.origin.autocodemanager.views.codeview; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import com.teamcenter.rac.util.MessageBox; + +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeViewRightKeyAction; + +public class CodeSegmentViewRightKeyAction extends AbstractTreeViewRightKeyAction { + /** + * @param treeViewer + */ + public CodeSegmentViewRightKeyAction(AbstractCreateTreeView createCodeSegmentView) { + super(createCodeSegmentView); + } + + public void fillContextMenu() { + if (menuManager == null) { + // һεø÷ʱ + menuManager = new MenuManager(); + menuManager.add(new NewCodeNodeAction(AutoCodeManagerPropertyName.AddRuleGroupNodeName)); + menuManager.add(new NewCodeNodeAction(AutoCodeManagerPropertyName.AddRuleRootNodeName)); + menuManager.add(new CopyCodeNodeAction()); + menuManager.add(new EidtCodeNodeAction()); + menuManager.add(new LockCodeNodeAction()); + menuManager.add(new UnLockCodeNodeAction()); + } + Tree tree = treeViewer.getTree(); + Menu menu = menuManager.createContextMenu(tree); + tree.setMenu(menu); + } + + private class NewCodeNodeAction extends Action { + String actionType = ""; + String title = ""; + + public NewCodeNodeAction(String actionType) { + this.actionType = actionType; + if (actionType.equals(AutoCodeManagerPropertyName.AddRuleRootNodeName)) { + title = "½"; + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.CODE_IMAGE); + this.setImageDescriptor(imageDesc); + } else { + title = "½"; + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.CODEGROUP_IMAGE); + this.setImageDescriptor(imageDesc); + } + this.setText(title); + + } + + public void run() { + AbstractTreeData selectedTreeData= treeViewOperation.getSelectedTreeNode(createView.treeViewer); + if((treeViewOperation.isRuleRootNode(selectedTreeData))&&(actionType.equals(AutoCodeManagerPropertyName.AddRuleGroupNodeName))) + { + MessageBox.post("˽ڵ²ܽ!", "INFO", MessageBox.WARNING); + return; + } + NewCodeNodeDialog codeNodeDialog = new NewCodeNodeDialog(null, createView, actionType,title, false); + codeNodeDialog.open(); + } + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/codeview/CopyCodeNodeDialog.java b/src/cn/com/origin/autocodemanager/views/codeview/CopyCodeNodeDialog.java new file mode 100644 index 0000000..96a27a9 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codeview/CopyCodeNodeDialog.java @@ -0,0 +1,167 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.views.codeview; + +import java.util.HashMap; + +import org.eclipse.swt.widgets.Shell; + +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class CopyCodeNodeDialog extends NewCodeNodeDialog { + + TCComponent ruleComponent = null; + + public CopyCodeNodeDialog(Shell parentShell, AbstractCreateTreeView codeTreeView, String title, boolean isEdit, String actionType) { + super(parentShell, codeTreeView, actionType, title, isEdit); + } + + // ڵǷΪ + @Override + protected void okPressed() { + String nodename = nodeNameText.getText().trim(); + if (nodename == null || nodename.trim().length() == 0) { + postMesssageBox("ƲΪգ"); + nodeNameText.setFocus(); + return; + } + AbstractTreeData targetCopyNode = saveNewCodeNode(selectedTreeData.getParentTreeData(), selectedTreeData); + String parentStr = ""; + copyCodeNodes(treeAndListCodeOperation.getParentStr(selectedTreeData, parentStr), selectedTreeData.getPackCodeNodeInfo().getNodeComponent().getUid(), targetCopyNode); + try { + codeSegmentView.createView.createOrgAutoCodeNodeChildren(new AbstractTreeData[] { targetCopyNode }); + } catch (Exception e) { + e.printStackTrace(); + } + close(); + } + + private AbstractTreeData saveNewCodeNode(AbstractTreeData parentTreeData, AbstractTreeData selectedTreeData) { + AbstractTreeData treeData = null; + try { + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_index, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, getTextValue(nodeNameText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, getTextValue(nodeValueText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, selectedTreeData.getPackCodeNodeInfo().getNode_type()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, getTextValue(nodeDescriptionText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, String.valueOf(selectedTreeData.getPackCodeNodeInfo().is_root)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, getTextValue(codeStyleText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, getTextValue(codeLengthText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, getTextValue(seqBeginText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, getSeqLength()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value, getTextValue(seqMaxText)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes, ""); + if (selectedTreeData.getParentTreeData().getPackCodeNodeInfo().getNodeComponent() == null) { + ruleComponent = null; + } + TCComponent newComponent = new TreeAndListCodeOperation().createNewTreeORListNode(ruleComponent, parentTreeData, hashMap); + if (newComponent == null) { + return null; + } + if (selectedTreeData.getPackCodeNodeInfo().is_root) { + ruleComponent = newComponent; + } + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(newComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + packCodeNodeInfo.setNodeComponent(newComponent); + treeData = new AbstractTreeData(parentTreeData, packCodeNodeInfo); + treeViewOperation.addExistCodeNode(createView.treeViewer, parentTreeData, treeData); + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + return treeData; + } + + private void copyCodeNodes(String parentStr, String currentStr, AbstractTreeData parentNode) { + try { + TCComponent[] tccomponents = null; + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, currentStr); + tccomponents = treeAndListCodeOperation.searchTreeORListNodes(hashMap); + if (tccomponents == null) { + return; + } + for (int i = 0; i < tccomponents.length; i++) { + AbstractTreeData copyNode = copyTreeData(parentNode, tccomponents[i]); + String parentStr2 = parentStr + "," + currentStr; + if (parentStr2.trim().startsWith(",")) { + parentStr2 = parentStr2.substring(1); + } + copyCodeNodes(parentStr2, tccomponents[i].getUid().trim(), copyNode); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + } + + private AbstractTreeData copyTreeData(AbstractTreeData parentTreeData, TCComponent sourceComponent) { + AbstractTreeData treeData = null; + + try { + sourceComponent.refresh(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(sourceComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + String[] propertyNames = { AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value }; + String[] propertyValues = sourceComponent.getProperties(propertyNames); + HashMap hashMap = new HashMap(); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_index, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_name, packCodeNodeInfo.getNode_name()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_value, packCodeNodeInfo.getNode_value()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_type, packCodeNodeInfo.getNode_type()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_node_desc, packCodeNodeInfo.getNode_desc()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_root, String.valueOf(packCodeNodeInfo.is_root)); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_create_user, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, packCodeNodeInfo.getCode_style()); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, propertyValues[0]); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, propertyValues[1]); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, propertyValues[2]); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value, propertyValues[3]); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_reference_nodes, ""); + if (packCodeNodeInfo.is_root) { + ruleComponent = null; + } + TCComponent newComponent = new TreeAndListCodeOperation().createNewTreeORListNode(ruleComponent, parentTreeData, hashMap); + if (packCodeNodeInfo.is_root) { + ruleComponent = newComponent; + } + packCodeNodeInfo.setNodeComponent(newComponent); + treeData = new AbstractTreeData(parentTreeData, packCodeNodeInfo); + treeViewOperation.addChildrenRelations(parentTreeData, treeData); + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + return treeData; + } +} diff --git a/src/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.java b/src/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.java new file mode 100644 index 0000000..40be0e4 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codeview/CreateCodeSegmentView.java @@ -0,0 +1,247 @@ +/** + * @author tyl + * @Action ini + * 2011-3-15 + */ +package cn.com.origin.autocodemanager.views.codeview; + +import java.util.HashMap; +import java.util.List; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.TreeEvent; +import org.eclipse.swt.events.TreeListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.ORTreeContentProvider; +import cn.com.origin.autocodemanager.common.tree.ORTreeLabelProvider; +import cn.com.origin.autocodemanager.views.AutoCodeListCodeView; +import cn.com.origin.autocodemanager.views.AutoCodeTreeCodeView; +import com.teamcenter.rac.kernel.TCComponent; + +public class CreateCodeSegmentView extends AbstractCreateTreeView { + private boolean isSelectedAction = false; + + public CreateCodeSegmentView(Composite composite, String rootName, + ViewPart viewPart) { + super(composite, rootName, viewPart); + } + + public CreateCodeSegmentView(Composite composite, String rootName) { + super(composite, rootName); + } + + public void initTree(String rootName) { + tree.setFocus(); // ý + treeViewer.setLabelProvider(new ORTreeLabelProvider()); + treeViewer.setContentProvider(new ORTreeContentProvider()); + rootTreeData = new AbstractTreeData(null, null, rootName, + AutoCodeManagerPropertyName.SegmentName, false); + treeViewer.setInput((new Object[] { rootTreeData })); + if (viewPart != null) { + codeListView = (AutoCodeListCodeView) viewPart + .getSite() + .getPage() + .findView( + AutoCodeManangerConstants.AutoCodeManagerListCodeView_ID); + codeTreeView = (AutoCodeTreeCodeView) viewPart + .getSite() + .getPage() + .findView( + AutoCodeManangerConstants.AutoCodeManagerTreeCodeView_ID); + } + } + + public void addRightKeyAction() { + final Tree tree = treeViewer.getTree(); + tree.addMouseListener(new MouseAdapter() { + public void mouseDown(MouseEvent e) { + if (e.button == 3) { + CodeSegmentViewRightKeyAction rightAction = new CodeSegmentViewRightKeyAction( + CreateCodeSegmentView.this); + rightAction.fillContextMenu(); + } + } + }); + } + + public void createTree(Composite parent, String rootName) { + Composite composite = new Composite(parent, 0); + FillLayout fillLayout = new FillLayout(); + composite.setLayout(fillLayout); + + treeViewer = new TreeViewer(composite, SWT.BORDER); + tree = treeViewer.getTree(); + tree.setBackground(new Color(Display.getCurrent(), 255, 255, 255)); + initTree(rootName); + + treeViewer.expandToLevel(1); + tree.addTreeListener(new TreeListener() { + public void treeCollapsed(TreeEvent treeEvent) { + } + + public void treeExpanded(TreeEvent treeEvent) { + isSelectedAction = false; + AbstractTreeData codeData = (AbstractTreeData) treeEvent.item + .getData(); + if (codeData == null) { + return; + } + try { + expandNode(codeData); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + + tree.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + AbstractTreeData selectedData = (AbstractTreeData) e.item + .getData(); + if (selectedData == null) { + return; + } + isSelectedAction = true; + if (selectedData.getParentTreeData() == null) { + if (!selectedData.isChildrenLoader()) { + expandNode(selectedData); + } + return; + } + if ((selectedData.getPackCodeNodeInfo().getNodeComponent() != null) + && (selectedData.getPackCodeNodeInfo().is_root)) { + expandNode(selectedData); + } else { + if ((codeListView != null) && ((codeTreeView != null))) { + codeListView.createView.treeViewer.setInput(null); + codeTreeView.createView.treeViewer.setInput(null); + } + } + } + }); + } + + public void createOrgAutoCodeNodeChildren(AbstractTreeData[] codeDatas) + throws Exception { + if ((codeListView != null) && ((codeTreeView != null))) { + codeListView.createView.treeViewer.setInput(null); + codeTreeView.createView.treeViewer.setInput(null); + } + if (codeDatas != null && codeDatas.length > 0) { + for (int i = 0; i < codeDatas.length; i++) { + AbstractTreeData autoCodeData = (AbstractTreeData) codeDatas[i]; + if (autoCodeData == null) { + continue; + } + TCComponent autoCodeDataComponent = autoCodeData + .getPackCodeNodeInfo().getNodeComponent(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + HashMap hashMap = new HashMap(); + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(autoCodeData, + parentStr); + + if (autoCodeDataComponent != null) { + hashMap + .put( + AutoCodeManagerPropertyName.CodeRelation_current_node, + autoCodeDataComponent.getUid()); + hashMap + .put( + AutoCodeManagerPropertyName.CodeRelation_parent_node, + parentStr); + } else { + hashMap + .put( + AutoCodeManagerPropertyName.CodeRelation_parent_node, + ""); + hashMap + .put( + AutoCodeManagerPropertyName.CodeRelation_current_node, + ""); + } + String parentStr2 = ""; + if (autoCodeDataComponent != null) { + if (parentStr.trim().length() == 0) { + parentStr2 = autoCodeDataComponent.getUid(); + } else { + parentStr2 = parentStr + "," + + autoCodeDataComponent.getUid(); + } + } else { + parentStr2 = parentStr; + } + String[] propertyNames = AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames; + if (isSelectedAction) { + propertyNames = AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames; + } + List packCodeNodeInfos = treeAndListCodeOperation + .searchTreeORListNodeInfos(hashMap, parentStr2, + propertyNames); + if (packCodeNodeInfos != null && packCodeNodeInfos.size() > 0) { + AbstractTreeData autoCodeDataTCComs[] = new AbstractTreeData[packCodeNodeInfos + .size()]; + for (int k = 0; k < packCodeNodeInfos.size(); k++) { + if (packCodeNodeInfos.get(k).getNodeComponent() == null) { + continue; + } + PackCodeNodeInfo packCodeNodeInfo = packCodeNodeInfos + .get(k); + autoCodeDataTCComs[k] = new AbstractTreeData( + autoCodeData, packCodeNodeInfo); + + if (!packCodeNodeInfo.is_root) { + if (packCodeNodeInfo.isContainsChildren()) { + autoCodeDataTCComs[k] + .setTreeAutoCodeNodeChildren(new AbstractTreeData[] { new AbstractTreeData() }); + } + } + } + if (autoCodeData.getPackCodeNodeInfo().is_root) { + String type = autoCodeData.getPackCodeNodeInfo() + .getNode_type(); + if ((codeListView != null) && ((codeTreeView != null))) { + if (type + .equals(AutoCodeManagerPropertyName.ListName)) { + codeListView.createView.treeViewer + .setInput(autoCodeDataTCComs); + } else if (type + .equals(AutoCodeManagerPropertyName.TreeName)) { + codeTreeView.createView.treeViewer + .setInput(autoCodeDataTCComs); + } + } + } else { + autoCodeData + .setTreeAutoCodeNodeChildren(autoCodeDataTCComs); + autoCodeData.setChildrenLoader(true); + treeViewer.refresh(autoCodeData); + treeViewer.expandToLevel(autoCodeData, 1); + } + } else { + autoCodeData.setTreeAutoCodeNodeChildren(null); + autoCodeData.setChildrenLoader(true); + treeViewer.refresh(autoCodeData); + treeViewer.expandToLevel(autoCodeData, 1); + continue; + } + } + } + } +} diff --git a/src/cn/com/origin/autocodemanager/views/codeview/NewCodeNodeDialog.java b/src/cn/com/origin/autocodemanager/views/codeview/NewCodeNodeDialog.java new file mode 100644 index 0000000..717ca1c --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codeview/NewCodeNodeDialog.java @@ -0,0 +1,146 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.views.codeview; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Shell; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.dialog.AbstractCodeDialog; +import cn.com.origin.autocodemanager.common.tree.AbstractCreateTreeView; + +public class NewCodeNodeDialog extends AbstractCodeDialog { + + String actionType; + + public NewCodeNodeDialog(Shell parentShell, AbstractCreateTreeView codeTreeView, String actionType, String title, boolean isEdit) { + super(parentShell, codeTreeView, title, isEdit); + this.actionType = actionType; + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite container = (Composite) super.createDialogArea(parent); + if (actionType.equals(AutoCodeManagerPropertyName.AddRuleGroupNodeName)) { + Group nodeGroup = createCompositeGroup(container, ""); + createGroupComposite(nodeGroup); + } else { + Group nodeGroup = createCompositeGroup(container, ""); + createNodeComposite(nodeGroup); + Group seqGroup = createCompositeGroup(container, "ˮ"); + createSeqComposite(seqGroup); + } + return container; + } + + public void createGroupComposite(Composite parent) { + Composite composite = new Composite(parent, 0); + GridLayout gridLayout1 = new GridLayout(); + gridLayout1.numColumns = 2; + GridData gridData1 = new GridData(); + gridData1.horizontalAlignment = GridData.FILL; + gridData1.grabExcessHorizontalSpace = true; + gridData1.verticalSpan = 20; + gridData1.grabExcessVerticalSpace = true; + gridData1.verticalAlignment = GridData.FILL; + composite.setLayoutData(gridData1); + composite.setLayout(gridLayout1); + initNewGroupComposite(composite); + if (selectedTreeData != null) { + if (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() != null) { + setTextValue(nodeNameText, selectedTreeData.getPackCodeNodeInfo().getNode_name()); + setTextValue(nodeDescriptionText, selectedTreeData.getPackCodeNodeInfo().getNode_desc()); + } + } + } + + public void initNewGroupComposite(Composite composite) { + createNewLabel(composite, ""); + nodeNameText = createNewText(composite, ""); + createNewLabel(composite, "ע"); + nodeDescriptionText = createNewText(composite, ""); + } + + public void initNewCodeComposite(Composite composite) { + createNewLabel(composite, ""); + nodeNameText = createNewText(composite, ""); + + createNewLabel(composite, "λ"); + nodeValueText = createNewText(composite, ""); + + createNewLabel(composite, "ע"); + nodeDescriptionText = createNewText(composite, ""); + + createNewLabel(composite, "ʽ"); + codeStyleText = createNewText(composite, "[T][L]"); + + createNewLabel(composite, "볤"); + codeLengthText = createNewText(composite, "14"); + + createNewLabel(composite, ""); + String[] items = new String[] { "", "б" }; + typeCombo = createNewCombo(composite, items); + + } + + // ڵǷΪ + @Override + protected void okPressed() { + String nodename = nodeNameText.getText().trim(); + if (nodename == null || nodename.trim().length() == 0) { + postMesssageBox("ƲΪգ"); + nodeNameText.setFocus(); + return; + } + String type = ""; + if (typeCombo != null) { + if (typeCombo.getText().equals("")) { + type = AutoCodeManagerPropertyName.TreeName; + } else { + type = AutoCodeManagerPropertyName.ListName; + } + } + if (actionType.equals(AutoCodeManagerPropertyName.AddRuleGroupNodeName)) { + type = AutoCodeManagerPropertyName.CodeGroupName; + } + if (actionType.equals(AutoCodeManagerPropertyName.AddRuleGroupNodeName)) { + saveNewCodeNode(selectedTreeData, selectedComponent, createView.treeViewer, type, false); + } else { + if ((treeViewOperation.isRuleRootNode(selectedTreeData))) { + saveNewCodeNode(selectedTreeData.getParentTreeData(), selectedComponent, createView.treeViewer, type, true); + } else { + saveNewCodeNode(selectedTreeData, selectedComponent, createView.treeViewer, type, true); + } + } + close(); + } + + // öԻʼС + @Override + protected Point getInitialSize() { + if (actionType.equals(AutoCodeManagerPropertyName.AddRuleGroupNodeName)) { + return new Point(250, 200); + } else { + return new Point(270, 440); + } + + } + + // öԻ򴰿ڱͼ + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + newShell.setText(title); + newShell.setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.CODENODE_IMAGE)); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.java b/src/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.java new file mode 100644 index 0000000..6ff3fd2 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/codeview/NewCodeTestView.java @@ -0,0 +1,15 @@ +package cn.com.origin.autocodemanager.views.codeview; + +import org.eclipse.swt.widgets.Composite; + +public class NewCodeTestView extends CreateCodeSegmentView{ + + public NewCodeTestView(Composite composite, String rootName) { + super(composite, rootName); + } + public void addRightKeyAction() { + + } + + +} diff --git a/src/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction.java b/src/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction.java new file mode 100644 index 0000000..4dea4a8 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/listcodeview/CodeListViewRightKeyAction.java @@ -0,0 +1,160 @@ +/** + * @author tyl + * @Action ini + * 2011-3-17 + */ +package cn.com.origin.autocodemanager.views.listcodeview; + +import java.util.HashMap; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.util.MessageBox; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeViewRightKeyAction; + +public class CodeListViewRightKeyAction extends AbstractTreeViewRightKeyAction { + public CodeListViewRightKeyAction(CreateListCodeView createListCodeView) { + super(createListCodeView); + } + + public void fillContextMenu() { + if (menuManager == null) { + // һεø÷ʱ + menuManager = new MenuManager(); + menuManager.add(new NewCodeNodeAction()); + menuManager.add(new NewCodeNodeValueAction()); + menuManager.add(new AddChildrenNodeAction("", AutoCodeManagerPropertyName.ListPropertyNodeName)); + menuManager.add(new SetDefaultSelectedAction()); + menuManager.add(new CancelDefaultSelectedAction()); + menuManager.add(new EidtCodeNodeAction()); + menuManager.add(new RemoveCodeNodeAction()); + menuManager.add(new LockCodeNodeAction()); + menuManager.add(new UnLockCodeNodeAction()); + } + Tree tree = treeViewer.getTree(); + Menu menu = menuManager.createContextMenu(tree); + tree.setMenu(menu); + } + + public class SetDefaultSelectedAction extends Action { + public SetDefaultSelectedAction() { + setText("Ĭֵ"); +// ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.UNLOCK_IMAGE); +// this.setImageDescriptor(imageDesc); + } + + public void run() { + try { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪýڵ!", "INFO", MessageBox.WARNING); + return; + } + + TCComponent selectedComponent = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + if (!selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyValueNodeName)) { + MessageBox.post("ѡбֵ!", "INFO", MessageBox.WARNING); + return; + } + HashMap hashMap = new HashMap(); + if (selectedComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, "true"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, session.getUser().getUid()); + TCComponent updateComponent = new TreeAndListCodeOperation().updateTreeORListNode(selectedComponent, hashMap); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + createView.treeViewer.refresh(selectedTreeData); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public class CancelDefaultSelectedAction extends Action { + public CancelDefaultSelectedAction() { + setText("ȡĬֵ"); +// ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.UNLOCK_IMAGE); +// this.setImageDescriptor(imageDesc); + } + + public void run() { + try { + if ((selectedTreeData == null) || (selectedTreeData.getPackCodeNodeInfo().getNodeComponent() == null)) { + MessageBox.post("ѡҪýڵ!", "INFO", MessageBox.WARNING); + return; + } + + TCComponent selectedComponent = selectedTreeData.getPackCodeNodeInfo().getNodeComponent(); + if (!selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyValueNodeName)) { + MessageBox.post("ѡбֵ!", "INFO", MessageBox.WARNING); + return; + } + + HashMap hashMap = new HashMap(); + if (selectedComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_isDefaultSelected, "false"); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_date, ""); + hashMap.put(AutoCodeManagerPropertyName.TreeAndListCodeNode_last_revise_user, session.getUser().getUid()); + TCComponent updateComponent = new TreeAndListCodeOperation().updateTreeORListNode(selectedComponent, hashMap); + PackCodeNodeInfo packCodeNodeInfo = treeAndListCodeOperation.getTreeAndListStringValue(updateComponent, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + selectedTreeData.setPackCodeNodeInfo(packCodeNodeInfo); + createView.treeViewer.refresh(selectedTreeData); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + private class NewCodeNodeAction extends Action { + public NewCodeNodeAction() { + setText("½"); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.LISTNODE_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + AbstractTreeData rootNode = treeViewOperation.getSelectedTreeNode(codeSegmentView.getCreateView().treeViewer); + if (rootNode == null) { + MessageBox.post("ѡҪ޸Ľڵ!", "INFO", MessageBox.WARNING); + return; + } + String type = rootNode.getPackCodeNodeInfo().getNode_type(); + if (!type.equals(AutoCodeManagerPropertyName.ListName)) { + MessageBox.post("ѡҪ޸бڵ!", "INFO", MessageBox.WARNING); + return; + } + new NewListPropertyNodeDialog(treeViewer.getControl().getShell(), (CreateListCodeView) createView, "½", false).open(); + } + } + + private class NewCodeNodeValueAction extends Action { + public NewCodeNodeValueAction() { + setText("½ֵ"); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.LISTVALUE_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + AbstractTreeData rootNode = treeViewOperation.getSelectedTreeNode(createView.treeViewer); + if (rootNode == null) { + MessageBox.post("ѡҪ޸Ľڵ!", "INFO", MessageBox.WARNING); + return; + } + new NewListPropertyValueNodeDialog(treeViewer.getControl().getShell(), (CreateListCodeView) createView, "½ֵ", false).open(); + } + } +} diff --git a/src/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView.java b/src/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView.java new file mode 100644 index 0000000..80b83cc --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/listcodeview/CreateListCodeView.java @@ -0,0 +1,82 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.views.listcodeview; + +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.TreeEvent; +import org.eclipse.swt.events.TreeListener; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.treetable.AbstractTreeTable; + +public class CreateListCodeView extends AbstractTreeTable { + public CreateListCodeView(Composite composite, String rootName, ViewPart viewPart) { + super(composite, rootName, viewPart); + + } + + public CreateListCodeView() { + + } + + public void addRightKeyAction() { + tree.addMouseListener(new MouseAdapter() { + public void mouseDown(MouseEvent e) { + if (e.button == 3) { + CodeListViewRightKeyAction rightAction = new CodeListViewRightKeyAction(CreateListCodeView.this); + rightAction.fillContextMenu(); + } + } + }); + } + + public void createTree(Composite parent, String rootName) { + Composite composite = parent; + treeViewer = new TreeViewer(composite, SWT.BORDER); + tree = treeViewer.getTree(); + initTree(rootName); + + treeViewer.expandToLevel(1); + tree.addTreeListener(new TreeListener() { + public void treeCollapsed(TreeEvent treeEvent) { + } + public void treeExpanded(TreeEvent treeEvent) { + AbstractTreeData codeData = (AbstractTreeData) treeEvent.item.getData(); + if (codeData == null) { + return; + } + try { + expandNode(codeData); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + + tree.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + AbstractTreeData selectedData = (AbstractTreeData) e.item.getData(); + if (selectedData == null) { + return; + } + if (selectedData.getParentTreeData() == null) { + expandNode(selectedData); + } + } + }); + } + + public void createOrgAutoCodeNodeChildren(AbstractTreeData[] codeDatas) throws Exception { + super.createOrgAutoCodeNodeChildren(codeDatas); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView.java b/src/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView.java new file mode 100644 index 0000000..deb3ecf --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/listcodeview/NewItemListCodeView.java @@ -0,0 +1,456 @@ +/** + * @author tyl + * @Action ini + * 2011-4-13 + */ +package cn.com.origin.autocodemanager.views.listcodeview; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.TreeEvent; +import org.eclipse.swt.events.TreeListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class NewItemListCodeView extends CreateListCodeView { + + public Label[] propertyLabel; + public Combo[] propertyComb; + boolean isSetName = true; + private String icoName = ""; + public String codeName = ""; + public StringBuffer pattern = new StringBuffer(); + public StringBuffer codeDesc = new StringBuffer(); + private Map icoPropertyMap; + private String splitString = "<---->"; + + public NewItemListCodeView(Composite composite, String rootName, ViewPart viewPart) { + super(composite, rootName, viewPart); + } + + public void createTree(Composite parent, String rootName) { + Composite composite = parent; + treeViewer = new TreeViewer(composite, SWT.BORDER); + tree = treeViewer.getTree(); + initTree(rootName); + treeViewer.expandToLevel(1); + tree.addTreeListener(new TreeListener() { + public void treeCollapsed(TreeEvent treeEvent) { + } + + public void treeExpanded(TreeEvent treeEvent) { + AbstractTreeData codeData = (AbstractTreeData) treeEvent.item.getData(); + if (codeData == null) { + return; + } + if (codeData.getPackCodeNodeInfo().is_lock) { + codeData.setTreeAutoCodeNodeChildren(null); + return; + } + expandNode(codeData); + } + }); + + tree.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + AbstractTreeData selectedData = (AbstractTreeData) e.item.getData(); + if (selectedData == null) { + return; + } + if (selectedData.getParentTreeData() == null) { + expandNode(selectedData); + } + } + }); + } + + public void getListPropertyValue(AbstractTreeData segmentNode) { + initPropertyValue(); + try { + if ((segmentNode != null) && (segmentNode.getPackCodeNodeInfo().getNodeComponent() != null)) { + String firstNodeName = segmentNode.getPackCodeNodeInfo().getNode_name(); + String firstNodeValue = segmentNode.getPackCodeNodeInfo().getNode_value(); + if (firstNodeValue.trim().length() > 0) { + codeDesc.append(firstNodeValue + "::" + firstNodeName); + codeDesc.append("\n"); + pattern.append(firstNodeValue); + pattern.append(" "); + } + } + if (propertyComb != null && propertyComb.length > 0) { + for (int i = 0; i < propertyComb.length; i++) { + if (propertyComb[i] == null) { + continue; + } + if (propertyComb[i].getText().length() == 0) { + return; + } + String codeListValue = propertyComb[i].getText(); + String name = propertyLabel[i].getText().trim(); + codeName = name.substring(0, name.length() - 1).toString(); + if (codeListValue != null && !"".equals(codeListValue)) { + if (codeListValue.contains(splitString)) { + String temp[] = codeListValue.split(splitString); + if (temp.length > 0) { + icoPropertyMap.put(codeName.trim(), temp[1].trim()); + codeDesc.append(replaceSpecialValue(temp[0].trim()) + "::" + temp[1].trim()); + codeDesc.append("\n"); + pattern.append(replaceSpecialValue(temp[0].trim())); + pattern.append(" "); + } + } else { + icoPropertyMap.put(codeName.trim(), codeListValue); + codeDesc.append(replaceSpecialValue(codeListValue) + "::" + "д"); + codeDesc.append("\n"); + pattern.append(replaceSpecialValue(codeListValue)); + pattern.append(" "); + } + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public String replaceSpecialValue(String value) { + Date date = new Date(System.currentTimeMillis()); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateStr = formatter.format(date); + // System.out.println("dateStr:::::" + dateStr); + String temps[] = dateStr.split("-"); + if (value.contains(AutoCodeManagerPropertyName.Code_year4)) { + value = value.replace(AutoCodeManagerPropertyName.Code_year4, temps[0]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_year2)) { + value = value.replace(AutoCodeManagerPropertyName.Code_year2, temps[0].substring(2)); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_mouth1)) { + value = value.replace(AutoCodeManagerPropertyName.Code_mouth1, temps[1]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_mouth2)) { + value = value.replace(AutoCodeManagerPropertyName.Code_mouth2, temps[1]); + value = value + " "; + } + + if (value.contains(AutoCodeManagerPropertyName.Code_date1)) { + value = value.replace(AutoCodeManagerPropertyName.Code_date1, temps[2]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_date2)) { + value = value.replace(AutoCodeManagerPropertyName.Code_date2, temps[2]); + value = value + " "; + } + return value; + } + + /** + * @return the icoPropertyMap + */ + public Map getIcoPropertyMap() { + return icoPropertyMap; + } + + /** + * @param icoPropertyMap + * the icoPropertyMap to set + */ + public void setIcoPropertyMap(Map icoPropertyMap) { + this.icoPropertyMap = icoPropertyMap; + } + + private void initPropertyValue() { + icoName = ""; + codeName = ""; + icoPropertyMap = new HashMap(); + pattern = new StringBuffer(); + codeDesc = new StringBuffer(); + } + + public String getFirstComboName() { + String value = ""; + if (isSetName) { + if (propertyComb != null && propertyComb.length > 0) { + for (int i = 0; i < propertyComb.length; i++) { + if (propertyComb[i] == null) { + continue; + } + String codeListValue = propertyComb[i].getText(); + if (codeListValue != null && !"".equals(codeListValue)) { + if (codeListValue.contains(splitString)) { + String temp[] = codeListValue.split(splitString); + if (temp.length > 0) { + // value = temp[0].trim(); + value = temp[1].trim(); + } + } else { + value = ""; + } + } + break; + } + } + } + return value; + } + + public void createCombox(Composite composite, AbstractTreeData segmentTreeData) { + try { + TCComponent segmentComponent = segmentTreeData.getPackCodeNodeInfo().getNodeComponent(); + composite.setLayout(new GridLayout(2, false)); + initPropertyValue(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + HashMap hashMap11 = new HashMap(); + String parentStr11 = ""; + parentStr11 = treeAndListCodeOperation.getParentStr(segmentTreeData, parentStr11); + if (segmentTreeData.getPackCodeNodeInfo().getNodeComponent() != null) { + hashMap11.put(AutoCodeManagerPropertyName.CodeRelation_current_node, segmentComponent.getUid()); + hashMap11.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr11); + } else { + hashMap11.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, ""); + hashMap11.put(AutoCodeManagerPropertyName.CodeRelation_current_node, ""); + } + String parentStr12 = ""; + if (segmentComponent != null) { + if (parentStr11.trim().length() == 0) { + parentStr12 = segmentComponent.getUid(); + } else { + parentStr12 = parentStr11 + "," + segmentComponent.getUid(); + } + } else { + parentStr12 = parentStr11; + } + List packCodeNodeInfos = treeAndListCodeOperation.searchTreeORListNodeInfos(hashMap11, parentStr12, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + if ((packCodeNodeInfos == null) || (packCodeNodeInfos.size() == 0)) { + return; + } + + propertyLabel = new Label[packCodeNodeInfos.size()]; + propertyComb = new Combo[packCodeNodeInfos.size()]; + for (int i = 0; i < packCodeNodeInfos.size(); i++) { + if (packCodeNodeInfos.get(i).getNodeComponent() == null) { + continue; + } + PackCodeNodeInfo packCodeNodeInfo = packCodeNodeInfos.get(i); + GridData gridDataLabel = new GridData(); + gridDataLabel.horizontalSpan = 1; + GridData gridDataLabeCombo = new GridData(); + gridDataLabeCombo.horizontalSpan = 1; + + String labelText = packCodeNodeInfo.getNode_name(); + propertyLabel[i] = new Label(composite, SWT.NONE); + propertyLabel[i].setText(labelText + ":"); + propertyLabel[i].setLayoutData(gridDataLabel); + if (packCodeNodeInfo.is_lock) { + propertyComb[i].setItems(new String[] { "<---->" }); + continue; + } + HashMap hashMap21 = new HashMap(); + String parentStr21 = ""; + String parentStr22 = ""; + parentStr21 = treeAndListCodeOperation.getParentStr(segmentTreeData, parentStr21); + if (parentStr21.trim().length() > 0) { + parentStr21 = parentStr21 + "," + segmentComponent.getUid(); + } else { + parentStr21 = segmentComponent.getUid(); + } + hashMap21.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr21); + hashMap21.put(AutoCodeManagerPropertyName.CodeRelation_current_node, packCodeNodeInfo.getNodeComponent().getUid()); + + List packCodeNodeInfos2 = treeAndListCodeOperation.searchTreeORListNodeInfos(hashMap21, parentStr22, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + if ((packCodeNodeInfos2 != null) && (packCodeNodeInfos2.size() > 0)) { + propertyComb[i] = new Combo(composite, SWT.NONE | SWT.READ_ONLY); + propertyComb[i].setLayoutData(gridDataLabeCombo); + String items[] = new String[packCodeNodeInfos2.size()]; + String selectValue = ""; + for (int k = 0; k < packCodeNodeInfos2.size(); k++) { + PackCodeNodeInfo packCodeNodeInfo2 = packCodeNodeInfos2.get(k); + if (packCodeNodeInfo2.is_lock) { + items[k] = "<---->"; + continue; + } + String key = packCodeNodeInfo2.getNode_name(); + String value = packCodeNodeInfo2.getNode_value(); + items[k] = value + "<---->" + key; + boolean isSelected = packCodeNodeInfo2.isDefaultSelected; + if (isSelected) { + selectValue = items[k]; + } + } + propertyComb[i].setItems(items); + if (selectValue.length() > 0) { + propertyComb[i].setText(selectValue); + } + int itemCount = propertyComb[i].getItemCount(); + if (itemCount < 15) { + propertyComb[i].setVisibleItemCount(itemCount); + } else { + propertyComb[i].setVisibleItemCount(15); + } + } else { + if (isSetName) { + isSetName = false; + } + propertyComb[i] = new Combo(composite, SWT.NONE); + propertyComb[i].setLayoutData(gridDataLabeCombo); + } + composite.redraw(); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } + composite.redraw(); + } + + /** + * @return the propertyLabel + */ + public Label[] getPropertyLabel() { + return propertyLabel; + } + + /** + * @param propertyLabel + * the propertyLabel to set + */ + public void setPropertyLabel(Label[] propertyLabel) { + this.propertyLabel = propertyLabel; + } + + /** + * @return the propertyComb + */ + public Combo[] getPropertyComb() { + return propertyComb; + } + + /** + * @param propertyComb + * the propertyComb to set + */ + public void setPropertyComb(Combo[] propertyComb) { + this.propertyComb = propertyComb; + } + + /** + * + */ + public NewItemListCodeView() { + // TODO Auto-generated constructor stub + } + + /** + * @return the newSeq + */ + // public String getNewSeq() { + // return newSeq; + // } + // + // /** + // * @param newSeq + // * the newSeq to set + // */ + // public void setNewSeq(String newSeq) { + // this.newSeq = newSeq; + // } + /** + * @return the icoName + */ + public String getIcoName() { + return icoName; + } + + /** + * @param icoName + * the icoName to set + */ + public void setIcoName(String icoName) { + this.icoName = icoName; + } + + /** + * @return the codeStyle + */ + // public String getCodeStyle() { + // return codeStyle; + // } + // + // /** + // * @param codeStyle + // * the codeStyle to set + // */ + // public void setCodeStyle(String codeStyle) { + // this.codeStyle = codeStyle; + // } + /** + * @return the pattern + */ + public StringBuffer getPattern() { + return pattern; + } + + /** + * @param pattern + * the pattern to set + */ + public void setPattern(StringBuffer pattern) { + this.pattern = pattern; + } + + /** + * @return the codeDesc + */ + public StringBuffer getCodeDesc() { + return codeDesc; + } + + /** + * @param codeDesc + * the codeDesc to set + */ + public void setCodeDesc(StringBuffer codeDesc) { + this.codeDesc = codeDesc; + } + + /** + * @return the codeName + */ + public String getCodeName() { + return codeName; + } + + /** + * @param codeName + * the codeName to set + */ + public void setCodeName(String codeName) { + this.codeName = codeName; + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyNodeDialog.java b/src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyNodeDialog.java new file mode 100644 index 0000000..6793a1c --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyNodeDialog.java @@ -0,0 +1,67 @@ +package cn.com.origin.autocodemanager.views.listcodeview; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Shell; + +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.dialog.AbstractCodeDialog; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +public class NewListPropertyNodeDialog extends AbstractCodeDialog { + + public NewListPropertyNodeDialog(Shell parentShell, CreateListCodeView codeListViewTree, String title, boolean isEdit) { + super(parentShell, codeListViewTree, title, isEdit); + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite container = (Composite) super.createDialogArea(parent); + Group nodeGroup = createCompositeGroup(container, "б"); + createNodeComposite(nodeGroup); + return container; + } + + public void initNewCodeComposite(Composite composite) { + createNewLabel(composite, ""); + nodeNameText = createNewText(composite, ""); + + createNewLabel(composite, "ע"); + nodeDescriptionText = createNewText(composite, ""); + + } + + // ڵǷΪF + @Override + protected void okPressed() { + String nodename = nodeNameText.getText().trim(); + if (nodename == null || nodename.trim().length() == 0) { + postMesssageBox("ƲΪգ"); + nodeNameText.setFocus(); + return; + } + AbstractTreeData rootData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + saveNewCodeNode(rootData, selectedComponent, createView.treeViewer, AutoCodeManagerPropertyName.ListPropertyNodeName, false); + close(); + } + + // öԻʼС + // @Override + protected Point getInitialSize() { + return new Point(250, 220); + } + + // öԻ򴰿ڱͼ + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + newShell.setText(title); + newShell.setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.LISTNODE_IMAGE)); + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.java b/src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.java new file mode 100644 index 0000000..3c70550 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/listcodeview/NewListPropertyValueNodeDialog.java @@ -0,0 +1,79 @@ +package cn.com.origin.autocodemanager.views.listcodeview; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Shell; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.dialog.AbstractCodeDialog; + +public class NewListPropertyValueNodeDialog extends AbstractCodeDialog { + + public NewListPropertyValueNodeDialog(Shell parentShell, CreateListCodeView codeListViewTree, String title, boolean isEdit) { + super(parentShell, codeListViewTree, title, isEdit); + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite container = (Composite) super.createDialogArea(parent); + Group nodeGroup = createCompositeGroup(container, "бֵ"); + createNodeComposite(nodeGroup); + return container; + } + + public void initNewCodeComposite(Composite composite) { + createNewLabel(composite, ""); + nodeNameText = createNewText(composite, ""); + + createNewLabel(composite, "ֵ"); + nodeValueText = createNewText(composite, ""); + + createNewLabel(composite, "ע"); + nodeDescriptionText = createNewText(composite, ""); + } + + // ڵǷΪ + @Override + protected void okPressed() { + String nodename = nodeNameText.getText().trim(); + String nodevalue = nodeValueText.getText().trim(); + if (nodename == null || nodename.trim().length() == 0) { + postMesssageBox("ƲΪգ"); + nodeNameText.setFocus(); + return; + } + if (nodevalue == null || nodevalue.trim().length() == 0) { + postMesssageBox("ֵΪգ"); + nodeValueText.setFocus(); + return; + } + if (selectedTreeData == null) { + postMesssageBox("ѡԣ"); + } else { + if (selectedTreeData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListPropertyValueNodeName)) { + saveNewCodeNode(selectedTreeData.getParentTreeData(), selectedComponent, createView.treeViewer, AutoCodeManagerPropertyName.ListPropertyValueNodeName, false); + } else { + saveNewCodeNode(selectedTreeData, selectedComponent, createView.treeViewer, AutoCodeManagerPropertyName.ListPropertyValueNodeName, false); + } + } + close(); + } + + // öԻʼС + @Override + protected Point getInitialSize() { + return new Point(250, 230); + } + + // öԻ򴰿ڱͼ + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + newShell.setText(title); + newShell.setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.LISTVALUE_IMAGE)); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.java b/src/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.java new file mode 100644 index 0000000..ae4b392 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/testview/CreateCodeTestView.java @@ -0,0 +1,704 @@ +/** + * @author tyl + * @Action ini + * 2011-3-17 + */ +package cn.com.origin.autocodemanager.views.testview; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.custom.ScrolledComposite; +import org.eclipse.swt.events.FocusEvent; +import org.eclipse.swt.events.FocusListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.CreateCompositeUtil; +import cn.com.origin.autocodemanager.common.TCPreferenceUitl; +import cn.com.origin.autocodemanager.common.operations.PackCodeNodeInfo; +import cn.com.origin.autocodemanager.common.operations.TreeAndListCodeOperation; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.TreeViewOperation; +import cn.com.origin.autocodemanager.views.codeview.NewCodeTestView; +import cn.com.origin.autocodemanager.views.listcodeview.NewItemListCodeView; +import cn.com.origin.autocodemanager.views.treecodeview.NewItemTreeCodeView; + +import com.teamcenter.rac.aifrcp.AIFUtility; +import com.teamcenter.rac.kernel.TCComponent; +import com.teamcenter.rac.kernel.TCComponentItemType; +import com.teamcenter.rac.kernel.TCException; +import com.teamcenter.rac.kernel.TCSession; +import com.teamcenter.schemas.soa._2006_03.exceptions.ServiceException; + +public class CreateCodeTestView { + private SashForm sashFormCodeView; + private CTabItem codeTreeCTab; + private CTabItem codeListCTab; + private Composite compositCodeTree; + private Composite compositCodeList; + private CTabFolder ctabFolder; + private Text idLengthText; + private Text DescText; + private Text idText; + private Text revText; + private Text nameText; + private Combo unitCombo; + private NewCodeTestView classificationView; + private NewItemListCodeView listView; + private NewItemTreeCodeView treeView; + private TreeViewer classificationTreeViewer; + private TreeViewOperation treeViewOperation; + public TreeAndListCodeOperation treeAndListCodeOperation; + private TCSession session; + private TCComponentItemType tccomponentitemtype; + private AbstractTreeData selectedSegmentNode = null; + private TCComponent selectedSegmentTCComponent = null; + private String pattern = ""; + private String codeDesc = ""; + private String codeStyle = ""; + private String newSeq = ""; + private int codeLength; + private String firstListICOName = ""; + private Map segmentItemType; + private String origin_isCodePatternCanEditTypes = "origin_isCodePatternCanEditTypes"; + private String origin_showUnit_excludeTypes = "origin_showUnit_excludeTypes"; + private String origin_isItemNameTextDefaultNull = "origin_isItemNameTextDefaultNull"; + private SashForm itemInfoComposite; + private SashForm sashFormClassfication; + + public Text getIdLengthText() { + return idLengthText; + } + + public void setIdLengthText(Text idLengthText) { + this.idLengthText = idLengthText; + } + + public Combo getUnitCombo() { + return unitCombo; + } + + public void setUnitCombo(Combo unitCombo) { + this.unitCombo = unitCombo; + } + + public Text getDescText() { + return DescText; + } + + public void setDescText(Text descText) { + DescText = descText; + } + + public Text getIdText() { + return idText; + } + + public void setIdText(Text idText) { + this.idText = idText; + } + + public Text getRevText() { + return revText; + } + + public void setRevText(Text revText) { + this.revText = revText; + } + + public Text getNameText() { + return nameText; + } + + public void setNameText(Text nameText) { + this.nameText = nameText; + } + + public CreateCodeTestView(Composite composite, String rootName, ViewPart viewPart) { + treeViewOperation = new TreeViewOperation(); + treeAndListCodeOperation = new TreeAndListCodeOperation(); + session = (TCSession) AIFUtility.getCurrentApplication().getSession(); + try { + tccomponentitemtype = (TCComponentItemType) (session.getTypeComponent("Item")); + } catch (TCException e) { + e.printStackTrace(); + } + createDialogArea(composite); + } + + protected Control createDialogArea(Composite parent) { + Composite container = parent; + FillLayout fillLayout = new FillLayout(SWT.HORIZONTAL); + container.setLayout(fillLayout); + sashFormClassfication = new SashForm(container, SWT.NONE); + // SashForm sashFormClassfication = new SashForm(container, SWT.BORDER | SWT.H_SCROLL); + // sashFormClassfication.setOrientation(SWT.HORIZONTAL); + classificationView = new NewCodeTestView(sashFormClassfication, ""); + + classificationTreeViewer = classificationView.treeViewer; + addMouseAction(); + sashFormCodeView = new SashForm(container, SWT.NONE); + GridData gridData9 = new GridData(); + gridData9.heightHint = 70; + gridData9.horizontalAlignment = GridData.FILL; + gridData9.verticalAlignment = GridData.CENTER; + gridData9.grabExcessHorizontalSpace = true; + + ctabFolder = new CTabFolder(sashFormCodeView, SWT.BORDER); + ctabFolder.setBorderVisible(true); + ctabFolder.setSimple(false); + ctabFolder.setLayoutData(gridData9); + + codeTreeCTab = new CTabItem(ctabFolder, SWT.NONE); + codeTreeCTab.setText(""); + compositCodeTree = new Composite(ctabFolder, SWT.NONE); + compositCodeTree.setBackground(new Color(Display.getCurrent(), 255, 255, 255)); + + compositCodeTree.setLayout(new FillLayout()); + codeTreeCTab.setControl(compositCodeTree); + treeView = new NewItemTreeCodeView(compositCodeTree, "root"); + + codeListCTab = new CTabItem(ctabFolder, SWT.NONE); + codeListCTab.setText("б"); + ctabFolder.setSelection(0); + compositCodeList = new Composite(ctabFolder, SWT.NONE); + compositCodeList.setLayout(new FillLayout()); + codeListCTab.setControl(compositCodeList); + + listView = new NewItemListCodeView(); + ctabFolder.setSelection(1); + + itemInfoComposite = new SashForm(container, SWT.NONE); + createNewItemInfo(itemInfoComposite); + return container; + } + + private void createNewItemInfo(Composite parent) { + Composite composite = new Composite(parent, SWT.BORDER); + GridLayout gridLayout = new GridLayout(); + gridLayout.numColumns = 1; + composite.setLayout(gridLayout); + CreateCompositeUtil.createNewLabel(composite, ""); + idText = CreateCompositeUtil.createNewText(composite, ""); + + CreateCompositeUtil.createNewLabel(composite, "볤"); + idLengthText = CreateCompositeUtil.createNewText(composite, ""); + + CreateCompositeUtil.createNewLabel(composite, "ϰ汾"); + revText = CreateCompositeUtil.createNewText(composite, ""); + + CreateCompositeUtil.createNewLabel(composite, ""); + nameText = CreateCompositeUtil.createNewText(composite, ""); + CreateCompositeUtil.createNewLabel(composite, ""); + DescText = CreateCompositeUtil.createTextArea(composite, "", 90, 300); + idText.setEnabled(false); + idLengthText.setEnabled(false); + revText.setEnabled(false); + DescText.setEnabled(false); + } + + private TCComponent[] getParentGroupNode(AbstractTreeData segmentNode) { + TCComponent[] tccomponents = null; + classificationTreeViewer.refresh(); + if (segmentNode == null) { + return null; + } + if ((segmentNode.getPackCodeNodeInfo().getNodeComponent() != null) && (segmentNode.getPackCodeNodeInfo().is_root)) { + } else { + return null; + } + getRealItemType(segmentNode, segmentNode.getParentTreeData()); + return tccomponents; + } + + private void getRealItemType(AbstractTreeData segmentNode, AbstractTreeData parentNode) { + if ((parentNode != null) && (parentNode.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ItemName))) { + String realItemType = parentNode.getPackCodeNodeInfo().getRealTypeName().trim(); + if (!segmentItemType.containsKey(segmentNode)) { + segmentItemType.put(segmentNode, realItemType); + } + } else { + if (parentNode != null) { + parentNode = parentNode.getParentTreeData(); + getRealItemType(segmentNode, parentNode); + } + } + } + + public void setTreeNodes(AbstractTreeData segmentNode) { + try { + classificationTreeViewer.refresh(); + if (segmentNode == null) { + return; + } + getRealItemType(segmentNode, segmentNode.getParentTreeData()); + TCComponent autoCodeDataComponent = segmentNode.getPackCodeNodeInfo().getNodeComponent(); + TreeAndListCodeOperation treeAndListCodeOperation = new TreeAndListCodeOperation(); + HashMap hashMap = new HashMap(); + + String parentStr = ""; + parentStr = treeAndListCodeOperation.getParentStr(segmentNode, parentStr); + if (autoCodeDataComponent != null) { + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, autoCodeDataComponent.getUid()); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, parentStr); + } else { + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_parent_node, ""); + hashMap.put(AutoCodeManagerPropertyName.CodeRelation_current_node, ""); + } + String parentStr2 = ""; + if (autoCodeDataComponent != null) { + if (parentStr.trim().length() == 0) { + parentStr2 = autoCodeDataComponent.getUid(); + } else { + parentStr2 = parentStr + "," + autoCodeDataComponent.getUid(); + } + } else { + parentStr2 = parentStr; + } + List packCodeNodeInfos = treeAndListCodeOperation.searchTreeORListNodeInfos(hashMap, parentStr2, AutoCodeManagerPropertyName.searchTreeAndListCodeNodePropNames); + if (packCodeNodeInfos != null && packCodeNodeInfos.size() > 0) { + AbstractTreeData autoCodeDataTCComs[] = new AbstractTreeData[packCodeNodeInfos.size()]; + for (int k = 0; k < packCodeNodeInfos.size(); k++) { + if (packCodeNodeInfos.get(k).getNodeComponent() == null) { + continue; + } + PackCodeNodeInfo packCodeNodeInfo = packCodeNodeInfos.get(k); + autoCodeDataTCComs[k] = new AbstractTreeData(segmentNode, packCodeNodeInfo); + if (packCodeNodeInfo.isContainsChildren()) { + autoCodeDataTCComs[k].setTreeAutoCodeNodeChildren(new AbstractTreeData[] { new AbstractTreeData() }); + } + } + treeView.treeViewer.setInput(autoCodeDataTCComs); + treeView.treeViewer.refresh(); + } + } catch (ServiceException e) { + e.printStackTrace(); + } catch (TCException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void addMouseAction() { + classificationTreeViewer.getTree().addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + try { + initClassificationMouseClick(); + selectedSegmentNode = treeViewOperation.getSelectedTreeNode(classificationTreeViewer); + if (selectedSegmentNode == null) { + return; + } + selectedSegmentTCComponent = selectedSegmentNode.getPackCodeNodeInfo().getNodeComponent(); + if (selectedSegmentTCComponent == null) { + return; + } + if (selectedSegmentTCComponent.getLogicalProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_is_lock)) { + ScrolledComposite scrolledComposite = new ScrolledComposite(ctabFolder, SWT.H_SCROLL | SWT.V_SCROLL); + codeListCTab.setControl(scrolledComposite); + treeView.treeViewer.setInput(null); + return; + } + if ((selectedSegmentNode.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.TreeName)) || (selectedSegmentNode.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListName))) { + String realType = selectedSegmentNode.getPackCodeNodeInfo().getRealTypeName(); + if (TCPreferenceUitl.isSelectExsitToTCPreferenceValues(session, origin_showUnit_excludeTypes, realType)) { + unitCombo.setEnabled(false); + } + } + if (selectedSegmentNode.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.TreeName)) { + classificationView.treeViewer.refresh(); + listView.setPropertyComb(null); + treeView.treeViewer.setInput(null); + Composite compositTemp = new Composite(ctabFolder, SWT.NONE); + codeListCTab.setControl(compositTemp); + setTreeNodes(treeViewOperation.getSelectedTreeNode(classificationView.treeViewer)); + ctabFolder.setSelection(0); + ctabFolder.redraw(); + + treeView.treeViewer.getTree().addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + initTreeOrListMouseClick(); + AbstractTreeData selectedData = treeViewOperation.getSelectedTreeNode(treeView.treeViewer); + if (selectedData == null) { + return; + } + if (selectedData.getPackCodeNodeInfo().getNodeComponent() == null) { + return; + } + if ((selectedData.getPackCodeNodeInfo().is_lock)) { + return; + } + String currentNodeDesc = ""; + String currentNodeValue = ""; + String name = ""; + // õϢ + getCodeInfo(selectedData); + name = selectedData.getPackCodeNodeInfo().getNode_name(); + currentNodeValue = replaceSpecialValue(selectedData.getPackCodeNodeInfo().node_value); + if (currentNodeValue.length() > 0) { + currentNodeDesc = currentNodeValue + "::" + selectedData.getPackCodeNodeInfo().getNode_name(); + } + if (currentNodeValue.trim().length() > 0) { + pattern = pattern + " " + currentNodeValue + " "; + } + if (currentNodeDesc.trim().length() > 0) { + codeDesc = codeDesc + currentNodeDesc; + } + if (!TCPreferenceUitl.isTrueTCPreferenceValue(session, origin_isItemNameTextDefaultNull)) { + nameText.setText(name); + } else { + nameText.setText(""); + } + getFinalPattern(selectedSegmentNode.getPackCodeNodeInfo().getNodeComponent()); + getSequenceNo(pattern, selectedData.getPackCodeNodeInfo().getNodeComponent()); + idText.setText(getID(codeStyle)); + setIDPatternTextIsCanEdit(); + idLengthText.setText(String.valueOf(idText.getText().replace(" ", "").trim().length())); + DescText.setText(codeDesc); + } + }); + } else if (selectedSegmentNode.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ListName)) { + treeView.treeViewer.setInput(null); + ctabFolder.setLayout(new FillLayout()); + ScrolledComposite scrolledComposite = new ScrolledComposite(ctabFolder, SWT.H_SCROLL | SWT.V_SCROLL); + Composite compositTemp = new Composite(scrolledComposite, SWT.NONE); + compositTemp.setLayout(new FillLayout()); + scrolledComposite.setContent(compositTemp); + getParentGroupNode(selectedSegmentNode); + + listView.createCombox(compositTemp, selectedSegmentNode); + codeListCTab.setControl(scrolledComposite); + scrolledComposite.setExpandHorizontal(true); + scrolledComposite.setExpandVertical(true); + scrolledComposite.setMinWidth(250); + scrolledComposite.setMinHeight(1000); + ctabFolder.setSelection(1); + ctabFolder.redraw(); + + Combo[] coms = listView.getPropertyComb(); + if (coms == null) { + return; + } + for (int i = 0; i < coms.length; i++) { + if (coms[i] == null) { + continue; + } + int comboStyle = coms[i].getStyle(); + if (comboStyle == 33554692) { + coms[i].addFocusListener(new FocusListener() { + public void focusGained(FocusEvent event) { + } + + public void focusLost(FocusEvent event) { + initTreeOrListMouseClick(); + try { + firstListICOName = listView.getFirstComboName(); + listView.getListPropertyValue(selectedSegmentNode); + codeDesc = listView.getCodeDesc().toString(); + pattern = listView.getPattern().toString(); + revText.setText(tccomponentitemtype.getNewRev(null)); + + if (!TCPreferenceUitl.isTrueTCPreferenceValue(session, origin_isItemNameTextDefaultNull)) { + nameText.setText(firstListICOName); + } else { + nameText.setText(""); + } + getFinalPattern(selectedSegmentNode.getPackCodeNodeInfo().getNodeComponent()); + getSequenceNo(pattern, selectedSegmentNode.getPackCodeNodeInfo().getNodeComponent()); + idText.setText(getID(codeStyle)); + setIDPatternTextIsCanEdit(); + idLengthText.setText(String.valueOf(idText.getText().replace(" ", "").trim().length())); + DescText.setText(codeDesc); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + }); + } else { + coms[i].addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent selectionevent) { + initTreeOrListMouseClick(); + try { + firstListICOName = listView.getFirstComboName(); + listView.getListPropertyValue(selectedSegmentNode); + codeDesc = listView.getCodeDesc().toString(); + pattern = listView.getPattern().toString(); + revText.setText(tccomponentitemtype.getNewRev(null)); + + if (!TCPreferenceUitl.isTrueTCPreferenceValue(session, origin_isItemNameTextDefaultNull)) { + nameText.setText(firstListICOName); + } else { + nameText.setText(""); + } + getFinalPattern(selectedSegmentNode.getPackCodeNodeInfo().getNodeComponent()); + getSequenceNo(pattern, selectedSegmentNode.getPackCodeNodeInfo().getNodeComponent()); + idText.setText(getID(codeStyle)); + setIDPatternTextIsCanEdit(); + idLengthText.setText(String.valueOf(idText.getText().replace(" ", "").trim().length())); + DescText.setText(codeDesc); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + }); + } + } + } + } catch (Exception e1) { + e1.printStackTrace(); + } + } + }); + } + + private void setIDPatternTextIsCanEdit() { + String realItemType = "Item"; + if (segmentItemType != null) { + realItemType = (String) segmentItemType.get(selectedSegmentNode); + } + if (TCPreferenceUitl.isSelectExsitToTCPreferenceValues(session, origin_isCodePatternCanEditTypes, realItemType)) { + idText.setEnabled(true); + } + } + + public String replaceSpecialValue(String value) { + Date date = new Date(System.currentTimeMillis()); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String dateStr = formatter.format(date); + String temps[] = dateStr.split("-"); + if (value.contains(AutoCodeManagerPropertyName.Code_year4)) { + value = value.replace(AutoCodeManagerPropertyName.Code_year4, temps[0]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_year2)) { + value = value.replace(AutoCodeManagerPropertyName.Code_year2, temps[0].substring(2)); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_mouth1)) { + value = value.replace(AutoCodeManagerPropertyName.Code_mouth1, temps[1]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_mouth2)) { + value = value.replace(AutoCodeManagerPropertyName.Code_mouth2, temps[1]); + value = value + " "; + } + + if (value.contains(AutoCodeManagerPropertyName.Code_date1)) { + value = value.replace(AutoCodeManagerPropertyName.Code_date1, temps[2]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_date2)) { + value = value.replace(AutoCodeManagerPropertyName.Code_date2, temps[2]); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_seq)) { + value = value.replace(AutoCodeManagerPropertyName.Code_seq, newSeq); + value = value + " "; + } + if (value.contains(AutoCodeManagerPropertyName.Code_pattern)) { + value = value.replace(AutoCodeManagerPropertyName.Code_pattern, pattern); + value = value + " "; + } + return value; + } + + public void getCodeInfo(AbstractTreeData treeData) { + if (treeData != null) { + AbstractTreeData parentData = treeData.getParentTreeData(); + if ((parentData != null) && (parentData.getPackCodeNodeInfo().getNodeComponent() != null)) { + getCodeInfo(parentData); + String nodeValue = ""; + String nodeName = ""; + if (!parentData.getPackCodeNodeInfo().getNode_type().equals(AutoCodeManagerPropertyName.ItemName)) { + nodeValue = replaceSpecialValue(parentData.getPackCodeNodeInfo().getNode_value()); + nodeName = parentData.getPackCodeNodeInfo().getNode_name(); + } + if (nodeValue.trim().length() > 0) { + pattern = pattern + nodeValue; + pattern = pattern + " "; + codeDesc = codeDesc + nodeValue; + codeDesc = codeDesc + "::"; + codeDesc = codeDesc + nodeName; + codeDesc = codeDesc + "\n"; + } + } + } + } + + private void initTreeOrListMouseClick() { + try { + if (treeViewOperation.getSelectedTreeNode(classificationTreeViewer) == null) { + return; + } + pattern = ""; + codeDesc = ""; + newSeq = ""; + DescText.setText(""); + idText.setText(""); + if (unitCombo != null) { + unitCombo.setText(""); + } + idText.setEnabled(false); + revText.setText(tccomponentitemtype.getNewRev(null)); + idLengthText.setText(""); + nameText.setText(""); + } catch (TCException e) { + e.printStackTrace(); + } + } + + private void initClassificationMouseClick() { + try { + if (treeViewOperation.getSelectedTreeNode(classificationTreeViewer) == null) { + return; + } + pattern = ""; + codeDesc = ""; + pattern = ""; + newSeq = ""; + DescText.setText(""); + idText.setText(""); + if (unitCombo != null) { + unitCombo.setText(""); + } + idText.setEnabled(false); + idLengthText.setText(""); + revText.setText(tccomponentitemtype.getNewRev(null)); + nameText.setText(""); + } catch (TCException e) { + e.printStackTrace(); + } + } + + public String getParentCodeData(AbstractTreeData treeData, String str) { + if (treeData != null) { + AbstractTreeData parentData = treeData.getParentTreeData(); + if ((parentData != null) && (parentData.getPackCodeNodeInfo().getNodeComponent() != null)) { + str = getParentCodeData(parentData, str); + String nodeValue = parentData.getPackCodeNodeInfo().getNode_value(); + if (nodeValue.trim().length() > 0) { + str = str + nodeValue; + str = str + " "; + } + } + } + return str; + } + + public String getParentDescData(AbstractTreeData treeData, String str) { + if (treeData != null) { + AbstractTreeData parentData = treeData.getParentTreeData(); + if ((parentData != null) && (parentData.getPackCodeNodeInfo().getNodeComponent() != null)) { + str = getParentDescData(parentData, str); + String nodeValue = parentData.getPackCodeNodeInfo().getNode_value(); + String nodeDesc = parentData.getPackCodeNodeInfo().getNode_name(); + if (nodeValue.trim().length() > 0) { + str = str + nodeValue; + str = str + "::"; + str = str + nodeDesc; + str = str + "\n"; + } + } + } + return str; + } + + public String getID(String value) { + String id = replaceSpecialValue(value); +// return id.replace(" ", "").trim(); + return id; + } + + private String getFinalPattern(TCComponent seqComponent) { + newSeq = ""; + int codeSeqLength = 0; + try { + if (seqComponent != null) { + String[] propNames = { AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length }; + String[] propValues = seqComponent.getProperties(propNames); + codeStyle = propValues[0]; + codeLength = Integer.valueOf(propValues[1]); + codeSeqLength = Integer.valueOf(propValues[2]); + } + } catch (TCException e) { + e.printStackTrace(); + } + String finalPattern = replaceSpecialValue(codeStyle); + int coverNum = codeLength - finalPattern.replace(" ", "").trim().length() - codeSeqLength; + String coverStr = ""; + if (coverNum > 0) { + for (int i = 0; i < coverNum; i++) { + coverStr = coverStr + "0"; + } + if (coverStr.trim().length() > 0) { + pattern = pattern + coverStr + " "; + } + } + return pattern; + } + + private String getSequenceNo(String codeCounterName, TCComponent selectedComponent) { + try { + codeCounterName = codeCounterName.replace(" ", "").trim(); + TCComponent seqComponent = selectedComponent.getReferenceProperty(AutoCodeManagerPropertyName.TreeAndListCodeNode_rule_node); + if (seqComponent != null) { + String[] propNames = { AutoCodeManagerPropertyName.TreeAndListCodeNode_code_style, AutoCodeManagerPropertyName.TreeAndListCodeNode_code_length, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_begin_value, AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_length, + AutoCodeManagerPropertyName.TreeAndListCodeNode_seq_max_value }; + String[] propValues = seqComponent.getProperties(propNames); + codeStyle = propValues[0]; + codeLength = Integer.valueOf(propValues[1]); + int startValue = Integer.valueOf(propValues[2]); + int codeSeqLength = Integer.valueOf(propValues[3]); + int endValue = Integer.valueOf(propValues[4]); + int increaseStep = 1; + String excludeStr = ""; + int seqValue = startValue + increaseStep; + if (seqValue > endValue) { + seqValue = startValue; + } + String seqStr = String.valueOf(seqValue); + if (excludeStr.length() > 0) { + int exclude = Integer.valueOf(excludeStr); + + if (seqStr.contains(excludeStr)) { + seqStr.replace(excludeStr, String.valueOf(exclude++)); + } + } + int length1 = seqStr.length(); + if (codeSeqLength > 0) { + if (length1 > codeSeqLength) { + newSeq = seqStr.substring(0, codeSeqLength - 1); + } else { + newSeq = seqStr; + for (int i = 0; i < (codeSeqLength - length1); i++) { + newSeq = "0" + newSeq; + } + } + } + } + } catch (TCException e) { + e.printStackTrace(); + return newSeq; + } + return newSeq; + } +} diff --git a/src/cn/com/origin/autocodemanager/views/treecodeview/CodeTreeViewRightKeyAction.java b/src/cn/com/origin/autocodemanager/views/treecodeview/CodeTreeViewRightKeyAction.java new file mode 100644 index 0000000..517e1ab --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/treecodeview/CodeTreeViewRightKeyAction.java @@ -0,0 +1,87 @@ +/** + * @author tyl + * @Action ini + * 2011-3-17 + */ +package cn.com.origin.autocodemanager.views.treecodeview; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.MenuManager; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeViewRightKeyAction; +import com.teamcenter.rac.util.MessageBox; + +public class CodeTreeViewRightKeyAction extends AbstractTreeViewRightKeyAction { + + /** + * @param treeViewer + */ + public CodeTreeViewRightKeyAction(CreateTreeCodeView createTreeCodeView) { + super(createTreeCodeView); + } + + public void fillContextMenu() { + if (menuManager == null) { + // һεø÷ʱ + menuManager = new MenuManager(); + menuManager.add(new NewCodeNodeAction(AutoCodeManagerPropertyName.AddTreeNodeName)); + menuManager.add(new NewCodeNodeAction(AutoCodeManagerPropertyName.AddChildrenTreeNodeName)); + menuManager.add(new AddChildrenNodeAction("ӽڵ", AutoCodeManagerPropertyName.TreeNodeName)); + menuManager.add(new EidtCodeNodeAction()); + menuManager.add(new RemoveCodeNodeAction()); + menuManager.add(new LockCodeNodeAction()); + menuManager.add(new UnLockCodeNodeAction()); + } + Tree tree = treeViewer.getTree(); + Menu menu = menuManager.createContextMenu(tree); + tree.setMenu(menu); + } + + public class NewCodeNodeAction extends Action { + private String actionType; + private String title; + + public NewCodeNodeAction(String type) { + this.actionType = type; + if (type.equals(AutoCodeManagerPropertyName.AddChildrenTreeNodeName)) { + title = "½ڵ"; + } else { + title = "½ƽڵ"; + } + setText(title); + ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.TREENODE_IMAGE); + this.setImageDescriptor(imageDesc); + } + + public void run() { + AbstractTreeData rootNode = treeViewOperation.getSelectedTreeNode(codeSegmentView.getCreateView().treeViewer); + if (rootNode == null) { + MessageBox.post("ѡҪ޸Ĺ!", "INFO", MessageBox.WARNING); + return; + } + String type = rootNode.getPackCodeNodeInfo().getNode_type(); + if (!type.equals(AutoCodeManagerPropertyName.TreeName)) { + MessageBox.post("ѡҪ޸ ı!", "INFO", MessageBox.WARNING); + return; + } + if (type.equals(AutoCodeManagerPropertyName.AddChildrenTreeNodeName)) { + setText("½ڵ"); + } else { + setText("½ƽڵ"); + } + if (actionType.equals(AutoCodeManagerPropertyName.AddChildrenTreeNodeName)) { + new NewTreeCodeNodeDialog(treeViewer.getControl().getShell(), (CreateTreeCodeView) createView, title, false, true).open(); + } else { + new NewTreeCodeNodeDialog(treeViewer.getControl().getShell(), (CreateTreeCodeView) createView, title, false, false).open(); + } + } + } + +} diff --git a/src/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.java b/src/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.java new file mode 100644 index 0000000..60c2f07 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/treecodeview/CreateTreeCodeView.java @@ -0,0 +1,38 @@ +/** + * @author tyl + * @Action ini + * 2011-3-21 + */ +package cn.com.origin.autocodemanager.views.treecodeview; + +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.treetable.AbstractTreeTable; + +public class CreateTreeCodeView extends AbstractTreeTable { + boolean isNewItem = false; + public CreateTreeCodeView(Composite composite, String rootName, ViewPart viewPart) { + super(composite, rootName, viewPart); + } + public CreateTreeCodeView(Composite composite, String rootName) { + super(composite, rootName); + isNewItem = true; + } + public void addRightKeyAction() { + tree.addMouseListener(new MouseAdapter() { + public void mouseDown(MouseEvent e) { + if (e.button == 3) { + CodeTreeViewRightKeyAction rightAction = new CodeTreeViewRightKeyAction(CreateTreeCodeView.this); + rightAction.fillContextMenu(); + } + } + }); + } + + public void createOrgAutoCodeNodeChildren(AbstractTreeData[] codeDatas) throws Exception { + super.createOrgAutoCodeNodeChildren(codeDatas); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView.java b/src/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView.java new file mode 100644 index 0000000..7073a87 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/treecodeview/NewItemTreeCodeView.java @@ -0,0 +1,84 @@ +/** + * @author tyl + * @Action ini + * 2011-4-13 + */ +package cn.com.origin.autocodemanager.views.treecodeview; + +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.TreeEvent; +import org.eclipse.swt.events.TreeListener; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.part.ViewPart; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; +import cn.com.origin.autocodemanager.common.treetable.ORNewItemTreeTableLabelProvider; +import cn.com.origin.autocodemanager.common.treetable.ORTreeTableContentProvider; +import com.teamcenter.rac.kernel.TCComponent; + +public class NewItemTreeCodeView extends CreateTreeCodeView { + + public NewItemTreeCodeView(Composite composite, String rootName, ViewPart viewPart) { + super(composite, rootName, viewPart); + } + + public NewItemTreeCodeView(Composite composite, String rootName) { + super(composite, rootName); + } + + public void initTree(String rootName) { + tree.setHeaderVisible(true); // ñͷɼ + tree.setLinesVisible(true); // ߿ɼ + tree.setFocus(); // ý + treeViewer.setLabelProvider(new ORNewItemTreeTableLabelProvider()); + treeViewer.setContentProvider(new ORTreeTableContentProvider()); + createTreeColumn(); + } + + public void createTreeColumn() { + createColumn(tree, "", 250); + createColumn(tree, "ֵ", 100); + createColumn(tree, "ע", 50); + } + + public void createTree(Composite parent, String rootName) { + Composite composite = parent; + treeViewer = new TreeViewer(composite, SWT.BORDER); + tree = treeViewer.getTree(); + initTree(rootName); + treeViewer.expandToLevel(1); + tree.addTreeListener(new TreeListener() { + public void treeCollapsed(TreeEvent treeEvent) { + } + public void treeExpanded(TreeEvent treeEvent) { + AbstractTreeData codeData = (AbstractTreeData) treeEvent.item.getData(); + if (codeData == null) { + return; + } + TCComponent component = codeData.getPackCodeNodeInfo().getNodeComponent(); + if ((component != null) && (codeData.getPackCodeNodeInfo().is_lock)) { + codeData.setTreeAutoCodeNodeChildren(null); + codeData.setChildrenLoader(false); + return; + } else { + expandNode(codeData); + } + } + }); + + tree.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + AbstractTreeData selectedData = (AbstractTreeData) e.item.getData(); + if (selectedData == null) { + return; + } + if (selectedData.getParentTreeData() == null) { + expandNode(selectedData); + } + } + }); + } +} diff --git a/src/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.java b/src/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.java new file mode 100644 index 0000000..40d8906 --- /dev/null +++ b/src/cn/com/origin/autocodemanager/views/treecodeview/NewTreeCodeNodeDialog.java @@ -0,0 +1,80 @@ +package cn.com.origin.autocodemanager.views.treecodeview; + +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.Shell; +import cn.com.origin.autocodemanager.common.AutoCodeManagerImageKey; +import cn.com.origin.autocodemanager.common.AutoCodeManagerPropertyName; +import cn.com.origin.autocodemanager.common.AutoCodeManangerConstants; +import cn.com.origin.autocodemanager.common.CacheImage; +import cn.com.origin.autocodemanager.common.dialog.AbstractCodeDialog; +import cn.com.origin.autocodemanager.common.tree.AbstractTreeData; + +public class NewTreeCodeNodeDialog extends AbstractCodeDialog { + boolean isNewChildren = false; + + public NewTreeCodeNodeDialog(Shell parentShell, CreateTreeCodeView codeTreeView, String title, boolean isEdit, boolean isNewChildren) { + super(parentShell, codeTreeView, title, isEdit); + this.isNewChildren = isNewChildren; + + } + + @Override + protected Control createDialogArea(Composite parent) { + Composite container = (Composite) super.createDialogArea(parent); + Group nodeGroup = createCompositeGroup(container, ""); + createNodeComposite(nodeGroup); + return container; + } + + public void initNewCodeComposite(Composite composite) { + createNewLabel(composite, "ڵ"); + nodeNameText = createNewText(composite, ""); + + createNewLabel(composite, "ֵ"); + nodeValueText = createNewText(composite, ""); + + createNewLabel(composite, "ע"); + nodeDescriptionText = createNewText(composite, ""); + } + + // ڵǷΪ + @Override + protected void okPressed() { + String nodename = nodeNameText.getText().trim(); + if (nodename == null || nodename.trim().length() == 0) { + postMesssageBox("ڵƲΪգ"); + nodeNameText.setFocus(); + return; + } + if (selectedTreeData == null) { + AbstractTreeData rootData = treeViewOperation.getSelectedTreeNode(codeSegmentView.createView.treeViewer); + saveNewCodeNode(rootData, selectedComponent, codeTreeView.createView.treeViewer, AutoCodeManagerPropertyName.TreeNodeName, false); + } else { + if (isNewChildren) { + saveNewCodeNode(selectedTreeData, selectedComponent, createView.treeViewer, AutoCodeManagerPropertyName.TreeNodeName, false); + } else { + saveNewCodeNode(selectedTreeData.getParentTreeData(), selectedComponent, createView.treeViewer, AutoCodeManagerPropertyName.TreeNodeName, false); + } + } + close(); + } + + // öԻʼС + @Override + protected Point getInitialSize() { + return new Point(250, 230); + } + + // öԻ򴰿ڱͼ + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + newShell.setText(title); + newShell.setImage(CacheImage.getINSTANCE().getImage(AutoCodeManangerConstants.AutoCodeMananger_APPLICATION_ID, AutoCodeManagerImageKey.TREENODE_IMAGE)); + + } + +} diff --git a/src/icons/add.png b/src/icons/add.png new file mode 100644 index 0000000000000000000000000000000000000000..bc58bd77b083d526805084fd527f730ebc930e36 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hT5@^oYHyN+ zC%Y_Z`68u~YqD~_naa6}_dC^}|La^eiDl)AmKi2TU5+l1^geL>QkIHv$L&MsSzJN| zC(B*YcMv@3+)zl(SVzu=6pvEa7@m6I2_r z_>$bFEmk_a%5F5R@?&QIen6{)-EGF7`s_Q!mS+mKAD^Dxzopr07jj9vj6}9 literal 0 HcmV?d00001 diff --git a/src/icons/addgroup_16.png b/src/icons/addgroup_16.png new file mode 100644 index 0000000000000000000000000000000000000000..71b9d4769f793d9d994fc09ecd615aa66664a966 GIT binary patch literal 699 zcmV;s0!00ZP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;F-b&0RCwB?lTAp|aTv!x|84D`o5Q~;Q`y{<5_^%_ zu!-11sqJq3shpq(?LYF!jbx0-XkPt!AMM}h8mS_`Am}z3^ayF-%FaNzb z`E^lAv@rZ0A09r>^L%-}k`RLJNW(Uz12})WtVvOf9-~1f8jbaJbq!SweGf+eY?Ryx z)WChwYPqp)gJOH`p=GV`9LzUx_Glg#YOIc8t5Ub=xcIM(%{EY`=jJIdEM=d?3>xrf zb%$4`x`BeVZlld9xw!?5i56N`0b|iwHS)aEuiVbD5DJW|zKQ500LzI>Xyqeo06EJE zIEe+nNK#F)J0`SBo95I4U}ntD9n7G&B#956&;H8))@*L!+;P69Rn>V%)^PfvMW zes=|@0_b+_Gch>rFIGxTDucyr1wXLYzrs=FJT-dO6A;i!+6ZM)M zN_c*bMKzABF)*_55IJpx{rPf*JzICJ%(3S(05iTPguI_Om{@slxM5u<-{?{9QmMu-BUjg1CPZk=S6UC{Db=X`XmrsEmW6U8nsFJsuakM^GX zpHEDkF?WxrrU(vvrTJYiFG>qCYin!uTLNU?aaJlty5?4!O55=&I$gP>m!vlgOM$&x z0@%$Ex{WpIKOy8a6*0jH_yi-)++HRbG4*>2E(4hl0->U!s002ovPDHLkV1j;Ao literal 0 HcmV?d00001 diff --git a/src/icons/addnode_16.png b/src/icons/addnode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d84fdfdafa05b6f4e7f8000ba4359f417057f5e6 GIT binary patch literal 3556 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 Nn(Df0bt<+m{s)FRoooOA literal 0 HcmV?d00001 diff --git a/src/icons/adduser_16.png b/src/icons/adduser_16.png new file mode 100644 index 0000000000000000000000000000000000000000..b184734eb72569cbcfabbb11e9ec5d9f28b94849 GIT binary patch literal 681 zcmV;a0#^NrP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;A4x<(RCwC7lTS#KaTv!x@4I(yZgcNmow|@xDbl2a zQirgM*}))6gKizHPFK^T3!Nuh?$z%NpLa|f%`4-P9hP;OiK$da zY=8V3j_pE{Rb=-;3b{FC&k~LqXGp!Q0OU6Eb@Pd3ZeBV{Q1jsp`C0m~!tFPS(=l83 zVsH3xdHj@UAc`)mj7om722d4%wGHD-MDq~|RDdnPs>3dSIY$mu7P%X21ALsCYNbRQ z;oZP3US7HX-9c6X5W4wbc0S#;n9NfXE(1wm7c5>(CzC>mJdl^V$$g96Z3`h*f4Rc= zOzPp_iH6>=wPCB&-ZH#&ojRlVojGj(V8q*<5N zxH{8FTCaS)d*w;T*x1;@cDGe3TCUgnk2UoL_GzI}GlY_VOF{GCI#f?-Ry4jEj9dhI zwgpIKrEPMx8UpZD2Z)y+#_a-cxylVw@!|Kyqe8{q2zMF-|a>V;W( P00000NkvXXu0mjf3H>Zb literal 0 HcmV?d00001 diff --git a/src/icons/addvalue_16.png b/src/icons/addvalue_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf9bd364b374a633d5c8ef33816a2b8217ff828 GIT binary patch literal 454 zcmV;%0XhDOP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-JV``BRCwB?lD|traTLWr-{;GuvWTE96q=&RmWKX; zj9QBpacPVQf`*3Hf|^@ukXphagNB;y2d(j-!dhxjOb`oRWIpYATl!)8lFS1a?mci1 zmwOH(LS+#WAJg}~YW}yZngdk~InrHZC)Iu+@x>4MDH_pzz=#umaE~ z?u3n8TB+hdgcGjT z_de$`vH_6NpMpTQ8$H`=cN%qbAR=bPc;`Yp%eu@lkF+fG*c~_f?H6W4L9!|D*Z=?k literal 0 HcmV?d00001 diff --git a/src/icons/autocode_16.png b/src/icons/autocode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..44938f5d76688b54225a5f832eb34dc6193590a7 GIT binary patch literal 726 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 I&MBb@038aBp8x;= literal 0 HcmV?d00001 diff --git a/src/icons/code2_16.png b/src/icons/code2_16.png new file mode 100644 index 0000000000000000000000000000000000000000..242a122d199f04a7d89582106b450a28498844b5 GIT binary patch literal 672 zcmV;R0$=@!P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;7D+@wRCwBqQ%h(QQ4~G*&6~+o7Y%e{7oxF37r{2* zCqWY@=)#TIpmZVVMky{Vb)#;?9~FgC#1Ae+5L{HjMJpAo5|pNXpf#y!q}EC$DQF{w zLW>`g%!KPAAI8uOJ~%wyyO;CcJ@;Hd1h{(`& zz3W2%y_N%=M*@lhR3HQ}@n#fmDr}NYujg{Pb7P~4GvBhswL$=jUu%p_yWM12M`#{j^;+c>+L1^}kykM#Jh?{n`OEz5#w zny@Sj`FwsWfFuzanx@^j^YDew9}Gjc#AEG!hZDpFV#vQZJsGOuTg>*cIM)u;b9NOFLAFYW>nS4-anl zJ#reR#@05&=ihUK_w4}vJQ%1j6J(wpWuJj-vI!d;S8x*OQS0Q0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-FG)l}RCwC7lfO$sQ545NFQgyhAXv~4_~s^;=8WLd z68IN{xU@w^i&MA1phajCTB2}mIuKrI$t84XGkTIkHN65cO1LdAkbKe;>5S*x`{8@O z=N!jc%QWFk3y1+Yx{wCkAlJ0I@-`8mkloCevfDaMg4E$oPATP&dGCoxX9V!h7hQTR z5F`FENCKHL00WEyTHd2MHKJ3@@v;~ zQB9l)k&C{)vL)}@u9z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ--bqA3RCwBA`2YVu0}K}%->I*ZJZ+CGMhG+h|Nox> z20Fc0{r~<{i{UE++Xd#&KPGhC)mz9w05BnQta?~IoVuo`gk^jU^0 zSFbZLFfcIuV`O2F(syCd2quNcMhlV>IU^T$l$bjMTlcx+v zkDo$um4Jc)gR*BX!zX@ChMpNqQRG-qILyopp6)ITA3uI#_=P3JIV3b06eTnn&Yw7p zJrM6dc*yYe>sJO+09qKFGsr2dSa9<6S%$A4UXyOXhSiHN&Yv|o@&1EH3OlD1HJsZz z@56@|5Ahnnf=zJ4>ctNk7#JD@LSrX9IKMwZTv@L`&B{kXR9=%f1CR{*$iTobk%56> zVnAqYJddzsfx4BC0nVgM3Vj+ce!tlq_U!58#~0-MdM=&aaORJd`G$tF-%oS2B@e3I zO|JP-m-s8>;n}=p=M3b{p8b-Gd%L@6_Iax__V?qSGH@+B_bhFF$(H`CkN&DvOC$7- zPWG}{bM$G{9PKk=KC*X|rZ*Qn$w|!HrX0q#(dW_H~W4o_o`0LTV?FV z*KH~izCLoDXKQ?G)i>j?XO3B+jg^W*ogD}Q;(frB|NY~80F<~L#| z25l;PJ1Z?S^E#*5`@5HyEa?}WwcJK;e$ivK?)QchuU*qQduGDl^I}RaUQ%}w3wz^> z?)>jt|9+9vX^rpZGd%zI$V*SYy+#wZ{0sOJ-LcT~-vRMIB~xb# zR=LWrzdZZ#^HjC?#~&IOI&D_elo#9MT66M^c}>lP+uFBTx3j-4>HmB&bJ_hzy@9X9 z{BP_ynr~n9lW%@`#0{g%dACm$?no=Lzk5Jye?HHfJv%O+`_D8%_|vu}ny;n<(~oM2 zYeY$MQEFmIs%{F9U@$T;u+TL$&^5FOF|@EUF|{%^);6%PGB9X=5Eu{Bkei>9nN~?a U!;L`oY@h}PPgg&ebxsLQ0Mx@((*OVf literal 0 HcmV?d00001 diff --git a/src/icons/down_16.png b/src/icons/down_16.png new file mode 100644 index 0000000000000000000000000000000000000000..35ef44fbdb1e4c2e3d358275800cc8cc415119e6 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hVx^>lFzskrrKl3`YxgFtKgW~~#OZoQnQ6c)vzt;o)CW9cW3d57<*sc-nml&SMY zY^NjFZP%Qbf{UJ01%&^bh-H3ya8M-QZpK4Fmlo|^&E3DM8$KEeIK9(7U6s_sn9SpI znPsVn#?pjHu?tc4cdH$bTxVtwygx~$GUEEzi=S;aE((P4u(tpc_4p1)fw^K)%yYUD02&5YY+ j`=%=X58cOCAbP0l+XkK0793L literal 0 HcmV?d00001 diff --git a/src/icons/edit_16.png b/src/icons/edit_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d1333066f3179b8658cc0620cf6b1f7040b839db GIT binary patch literal 662 zcmV;H0%`q;P)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;3`s;mRCwBA{Qv(y10{fo7)4Kwxbt3Ev%j4z&ryjX z`Tzfaym;{x-L_?VtpARvvHv})#{REgl53}!m>364p1Gl+0jJH|rfY}3`2Bbymtz3q zy{m5--`)JlAn=z-SyoR?=)qsc<3>hCKX7_sYC5~Drp?!d;qhUNEPO%?GT~1cE(-l- zJR>Z0N--woqk)0Jcf4M>uwVK8pZ~7^fBxJ2|KBb4|MNl^{`Vy5zHe@BUUvHQX(^aG ztS&gSL+7@x1GB&%hB^k;=gABYR{msAl2iEehF5>BiHS+SiHXTGoPl^`jmhjUABFz^ z_;IqsSN{L=E%5)>^$h*Yu3{1bzG5kNXp5f9~28LV0HdiDK!}c2+ z8!y9~kk(%K=X>c+AmfL3q6`dIdKhl5XJB~DZ}94ye8^@yJG*7->gqqR8Ndij%8D{9 z+rR$e@vznY$S~QBf#Lj1)t~2tW2d{ix=yjMu(*pWx>;b1cc1er_EyJf7#ehG57|#Fx!}N!hP4MndK`RDFujo_G&d#R^41-qkAqOg!iE6@0C>G$cM+nW0ssI207*qoM6N<$g8tb-nE(I) literal 0 HcmV?d00001 diff --git a/src/icons/exceltemplate_16.png b/src/icons/exceltemplate_16.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f4a2604b61f39fb5c7741c09eed7d98a5220d7 GIT binary patch literal 642 zcmV-|0)737P)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb09`}1z>owla7E>g`! zP_8b;x>SUe1s#Ge9>P;39qK$JBIpp=Ijmbjut`W_C!-D-ky~J6X@9KrP%UuIch0%D z!(49CH0lcv4?OVuJf9!W?-8bH@;?z(fdBrXczL<(`S#{#0vCtT@Zcb3o}V21D}cBg z>W=y&iLvpQV8D)MW$I=rdb?5KvZ=*SUb*^N)V2_~6CG^U^q%Bsn)lbc*sePo-aK+6 z+jso(z<~T)*@ zGJrWeIRp#=#QM2-;Rv^~-{%*?K4xYFK(fAtniNama_byD zb^=8L$pTKN9hcLAKwz#nSf4@>jC_vN>sLq;$QE$BHNqVse7X*%*cf0e!9u>sm#?$P zs|F5-9Z8ZXn`~~dSOAx2D`(F3VpGAYfFgk`SBh(=|Brx$0*KXTtFFqhRJQVFfcZS+ zbD&zlro!~Q31nf?)Z|0=>a@1lHw45-9;CeKw{gQTvPSiAcX%J2od;PmB!(Z81SaY} c)4%4|01ru|KeAPA^8f$<07*qoM6N<$f&!}<+yDRo literal 0 HcmV?d00001 diff --git a/src/icons/exceltemplate_32.png b/src/icons/exceltemplate_32.png new file mode 100644 index 0000000000000000000000000000000000000000..f961043777ac226d4c85d3275a97582a1ed0e3ff GIT binary patch literal 1279 zcmVz^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0#lHuP!a+myQb>$FXec$kcrYb;GSQT9&`1pR;KATwF>!4K zWC^s}7AtGm*0#GdpNE<5ZvU69&@Y+f+ixcGKJW89@B8j3Qc70xQdr?7q?FSSx+6Ps zKW+p4B;?2O>*8c2h>s==zyx$s^0oM-+uu!L;_EShOOn1*jtah96Egd1Gol^ z0(B5DY);56?HiryWU)c_z1!KjAOH_Ub94PuJz=Ys(-*#gt3Uw0YTd;CDy!&>)A1OU zdt+iD54bEx<7dSuk=|4Lj_=&@@HT$@`y#<%AM1lPm~~}E0~o)VSkwb91FuHj;R-vC zec#T}#|{##4)BjJL(7LhkxEbAyD|h2t&uJ0#4vzT2sQ@j+5IWII-~F>G(TFyse`RW zOVIdi$NUnA7a~D4x^o8(+_^TEK6mM- z3!l%Idsp|D5Iw}=ePEU~9I&1I-jSYu!lPV(kYJi7mStfW2AZlN3bG#@1WjFh7|prt z0syL}Q(awy5TJe&YyELSMr%E0#sEY z9B!bYp@FK33M{`LUDsU+#=$g-1dw$g;{kANkPbMC+bO4f=14Gg1IzMb7$&ObLlH{O zq&a4mGK^+1V7m-tZ5NC!JrL6Mhx8heRccXEQi`D)sH*B#fpqVWkI#yK7Yx{t$-4X1 zIk%Em`80s9`L_goOZR8G7arDv-t@-!JA+VCeudS(wav z!NlyLBbc#Q+-M#a6d;v?V6a#KHcV#7_xysWVv)bS9u`&w{|5$ym>zLf<}=ptE$F`q zL&LD`akzYW82~0SGtM&b*B!UNkB`CFC}cA*I5>i;W)MJKoxwvJOq!ZXP!#y1NC3&f z1gS({QXfhtw1FFOCqLf@oOF7?0T>zSvnwmB<)+9JG=w)(RkfDUw88IvDi?nthJcX~ p*t7dC$MJprHoV_!#lMdK8vqxK;Es*Xj@SSI002ovPDHLkV1he_OU3{I literal 0 HcmV?d00001 diff --git a/src/icons/export_16.png b/src/icons/export_16.png new file mode 100644 index 0000000000000000000000000000000000000000..baa7c0f2238c1cc7e0d1e78c0d4826b81055fa0d GIT binary patch literal 713 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 Ef`AWR>Hq)$ literal 0 HcmV?d00001 diff --git a/src/icons/exporttoexcel_24.png b/src/icons/exporttoexcel_24.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec0c154c6d9eda326ea2e969ee0724419fd81ff GIT binary patch literal 3713 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 literal 0 HcmV?d00001 diff --git a/src/icons/folder_16.png b/src/icons/folder_16.png new file mode 100644 index 0000000000000000000000000000000000000000..e7499ce829f9029749514b20873ddd94f4361876 GIT binary patch literal 3182 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 T>x{Dw00000NkvXXu0mjfXf8|-?ZMTLzk zmt`)iH1RS%nWEM|Q>9qG_`T)#9TS><+^wG$-}GP9lapyf+jWT>y5aF<{BuiOQe)3c zEzR-IJN!KE!eK6j76yhJ+!{-diHfXjY`Y};h;wzJdz&!au5A(U3``8h+puG z_*WTsyA^IZYi#SfRpK$b`(3n;7pL4OvsEh%|4!lh?b~%Fm3i%f=F+PTf!iD;8}Hw3 z`8AU(sBb|`zv8yE2Kf%T)?z-zBNHbYH*Gk!@%LrBZQ|MmOPbq)*1)Hd_niFS#eeMdw}P4*b2cmPpZ?*!dxp(QHq=ZtRH- zw>%XyxtDYwkTRLCxp(j08GkZ1iM@JQ@@y6F`Mf5*l`sA*ls>vV*&y$>fN$fAok#x7 zb$&C`^hdr);{I&5Z<5)w`uh7{&z?QoZJ&0$e$UhRexHfo(w$cL@n}gzG&S8;JmJgx z#P0C7JA5bD1%IjUPVe=5TYT&Kb#ZSMp_#4i+-J6&dHki~6OXLIvg!v1?LRzBk7enW z`FEf3&Kl;|wZd=1gI50v$kEDRRb7=Cl@U2Dp-0twsgPxcjLb>7iIbl@SyxS+{9;PO zo4y8arc+xz@Y1bMXa4eIUJ{|RXzyOxdCv{KGTQ|nEy=xov@hm(gxYL5 zkENG#3$^70n!NVjn-L!$`TyNJ^YZE3txb1s-TGC&Ox)MU$01PU(XMr;EX_+}%|k;| z6D8Vi-@bi(s@G9Qh5yjhJTtwsh63{GmS($xpcptHh#{!_Z`tkz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;A4x<(RCwB)lTS#KaTv!xzu)`5(@p2zWwxbRtHUxW zCM2Dt>>_oDgpPXf)TvW+2_Zdn)rd~*n4Sa)p%6OcN)kc~8w6QdE1j5Y({1ga+umP? zFodl@ANaz<_wa%5m*BPE6M`bZS$8jvdLP-t5jHlqqVMCOmRqTJ6#yag zkPJVQkM0ZqP`f@eZht;@Bbv)42@3z_ zl|fUZ2^|kLOApYzPbf#76ibfE2wmSE&nJ_~`EWFv-7y`UN5g|uwFsM^@+T+xxTNr_ zN{O?xv)OPsoZW5Olo#FFKw5LC>@xYdB)Ga!^w|G(9s zxXQU}-89Hvno7POD>1CMOQn@n`~AhQO~ZS8--iU&rw$HH5Bj@yyx#)=Y>pV>-Vxbk P00000NkvXXu0mjfE1xNs literal 0 HcmV?d00001 diff --git a/src/icons/importhistory_16.png b/src/icons/importhistory_16.png new file mode 100644 index 0000000000000000000000000000000000000000..57a85f8e5a134ed42fbf77a72a17c4eebec29c20 GIT binary patch literal 742 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;TuDShRCwB?lTApIaU91#|GmHHHnrwUE={q5N`(p{ zf)w&rpqDx%B;JFdL*AU7Iz&*nf?yCGdyyo(WEONV#3Y?9N}VnDzi4vCU(Kq*T0`}VbougTIH zM1_q&6&$JryVrx7??BN{qUc_d7CYu6iJ<7XSLgCqj0#Uh+d80tqjRp{C25l^nIUe1 zq*JowE@8HkMXquTfQHI&b--P zYb)CAn_4LRdTuOfEPpEyi5Z0B2J=dRWIRv$`x?gLDz0NUG4GkrRlIq4RXEgnsmV;v(7VIR6Bh z)iKYNtM1vB;o6mvf${P2$c`!l3=R%DR8>7Z^uADc!2MZEBoaSDp-|+Xe&K&&Vwd?n Y0PVIC#bZY9od5s;07*qoM6N<$g8Ft$X#fBK literal 0 HcmV?d00001 diff --git a/src/icons/item_16.png b/src/icons/item_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6ff9793c98ed3b47a57c41be04c98ac07cdacc02 GIT binary patch literal 3565 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 FV1kM0K+ymI literal 0 HcmV?d00001 diff --git a/src/icons/list_16.png b/src/icons/list_16.png new file mode 100644 index 0000000000000000000000000000000000000000..8c83db0c66c62b71ef665002d6bb9e30a93bc852 GIT binary patch literal 495 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Wl2OqRCwCNle!oGgTrneP1xjZ5o6-1W z+Uzk%QaC(5LP;pE8cxsaJ;QVqs2I~nq>~ipXXnrg!f=TBnK`5cDf%gf?WxgL#x#+L{T(lt!+E!UUjPt##9-OA&#KD zRwWJ~3?Rr!IxChEns2uY&bb}$eGNcgoP9K2p0Bg!d|;#?#uED(3LMU*c$ehrcz?4` lK+Svq3LyUdGYxF;H2_PSbz&iAGvWXM002ovPDHLkV1gKJ#vT9w literal 0 HcmV?d00001 diff --git a/src/icons/listproperty_16.png b/src/icons/listproperty_16.png new file mode 100644 index 0000000000000000000000000000000000000000..eccc1f17a4e03167d51aae51dcca3d6d78af76bc GIT binary patch literal 582 zcmV-M0=fN(P)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0H?71ur2KlDkp6+$&Brf#Z0D?AU4#}XIrxT^nU)M zM1<=!#il$5%zy5GrU7&BX=Yr0jw>v_u=rw(cVoP}B)AE|PYFIFggFv&L<;QbBSvSB zyBgrht|s^!1fNvn9AA}lIfcu~^MYAkkj)D&Gsl;~Hls7p0DHR$kRWV4P!gv z`?s$I5kdg(g`&0zbXpIt0Mi)^_EX}xwAkqzE=HE&AT1+RmO%s`zUDHJCMuf=}Zr(O@+R$#7 zXHpxi02U_0Bee_|9;UQ3v=X>;*YNw7<>Nt0^B$U@C^7X@{_yTSW^)}j7S$z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-=1D|BRCwBylRs!vQ5431@9`39v40Y@4hm6=VqO#r z{y`9=lxA=!Mo@6kn=Il`P{GM5YeckDp`G3&#q2>yhJrXbB!f?IYX!wXFNPOd} zbs~8_IGmjP>1;&yxdPNQrXM1Lh=6jHlRFojdYHc1?G5MH(&;~_`K)G`1 z>8*u-k-OQ%1?4701V;;?(3=@c(+OYU*m)q=^&oRB zc4S37zXHtaUPCJ9-Kz^r(F1;>5{WO^Q;Trp*$+_ILrsJ}0u+_fQ$h{)h67_qMF zZKGC30d3<5r;L3UwdDI&HWdRFb?+~%4KO`EQR(fe9|c|4My#Hp6PEf4gmoZqP6mpG z{NdGC2->RvR`)7TJ-A%n{S_Pn=Ed`WXmA;biRWK5$eT1fpXK$Z8v`CJxz}>>1CzVv zbrsJ~8)OC4tX8g8 zw?+==xmPG0EN;I&`>px?c&pta(hRp|w&X*#THPDQjvVkm@n-;yY7LYMtfR{S0000< KMNUMnLSTY8F%l5~ literal 0 HcmV?d00001 diff --git a/src/icons/lock_16.png b/src/icons/lock_16.png new file mode 100644 index 0000000000000000000000000000000000000000..197232ee54584d72ad2caec4de5102ae95a73a47 GIT binary patch literal 682 zcmV;b0#*HqP)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0OLJC5L12w! zK{?|>bTg|Uf(oO+T7*Ql2p6dkv}l`zMo_khpp_E+BdidlFtox(5phPH8r0;?sN?9o zcTWqGbeyn0IB+KZpVo9e(w zXUk3!TFz^FB>MAPSD&FEiOT*50znzLR#v9^p7jDG^xE!><)pPlRTmuEb8S8xaP0M; zt{d)XsME9KZ_VNUpb|%6_GW`0243LiD%;Cv?74NgA>ZR`Od2~8WssrbF#jDD4>2{^ z&rlfV#zIV+R^!z!XoU-~U-+`R(4O7qt~Zx3B74eRZX8X}S%f5z%N3 z*1SgIm}$?r60If5nN#F0&UL$ddASw~GXdYwh#ma=RUR~ck$3A7{11K&0Ew+0+!&R- Q1poj507*qoM6N<$g5stu-~a#s literal 0 HcmV?d00001 diff --git a/src/icons/newclassfication_16.png b/src/icons/newclassfication_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3c91d1c6bd0b35b5273db899776cf5d993f645dc GIT binary patch literal 447 zcmV;w0YLtVP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-HAzH4RCwCNld(%eQ5eO4-$PK}3k_@t8hntuMC9V| zbjhuTwx<3CX$-QZr6q{=3JO|+8k!B7+M3)V3)`LEGYC#Y&oHzMB>LcTFWkd-&bjBi zCW%SPVZ!=V12fB;Sz!_dK2ZD<3yCq>v#)S=35h94hh_^N>_~e1#7O#fg>YDh8V~?$ zg5ncw4`LD{9xMPV04K1t4_#mma1C1Lu%0)w7```>8OQ;-4qO4VzzVQYhxt3W?%xCH zA1w$1!OaRFcVL zJBlJ)*Y(3NJdWpJM$*L)gCso9Yn01n0S({xRVtO5nM|fxtyUE$@R7m@n|%fOn57-> p-MIfWa37zulAecB`}g1YJ^<(fvV!Wc!XN+u002ovPDHLkV1k6auIB&% literal 0 HcmV?d00001 diff --git a/src/icons/newcodetreenode_16.png b/src/icons/newcodetreenode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..92353fcead153d87ed93fd5fb7fa8a4fcb3a58b9 GIT binary patch literal 3198 zcmV-^41x2BP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C0h>ugK~#9!q?12rQ&AL$zx#SK#V9Q`i8=_OXu-{;qs6g9 zL0mGpxpWd76v06UEl!0oXplA-OK^w}Y#zp<@8$aLIUP#+N7}v? ze{hC#hL6L?IYw3apICrv^Vi=^R4$LJDWIGJ@~nPq)|c)qj)h?uX96w_4siGCFk&vC z<~%}~>dHqS$ML|iHt57%=9a(myB89>&$!egDkMn~91HNhQ<{9+4)Pyf55CA>T)N#; z=Qh_mK21}}l%T3R1+N|f!+U30WsicdTRTQ!ckTF*GzAhM_wWQ1QOhOQs*I zIfs}sN)a_@>E=h?IOkphKMnvqeP+x|0#FM^$8YKiLI*>H5TX3Ui;yJAuEhO$_&`-R z0GjsxV({eGm4MT1-$(%{AR;*D4g>6FBu#JBYPE8`UZ=6vpw(*8Zm$yMa)@)?Ou)Le zQ&sOv)q^A!i?fFSp5HTO{ttlSIibW`)4-X2w-AiJKaoUL{R?dL`=+&DvLu?UcixfM k=u2!9MG?-qNJQM$00Uz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-Wl2OqRCwCNle!oGgTrneP1xjZ5o6-1W z+Uzk%QaC(5LP;pE8cxsaJ;QVqs2I~nq>~ipXXnrg!f=TBnK`5cDf%gf?WxgL#x#+L{T(lt!+E!UUjPt##9-OA&#KD zRwWJ~3?Rr!IxChEns2uY&bb}$eGNcgoP9K2p0Bg!d|;#?#uED(3LMU*c$ehrcz?4` lK+Svq3LyUdGYxF;H2_PSbz&iAGvWXM002ovPDHLkV1gKJ#vT9w literal 0 HcmV?d00001 diff --git a/src/icons/newlistvalue_16.png b/src/icons/newlistvalue_16.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd33d01b588d5083ad5437695ac6e892dade3af GIT binary patch literal 724 zcmV;_0xSKAP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;N=ZaPRCwB?kxNLFVHAd+@1K9h=AsTw>WpA&g_9C0 zqM1bKB19~TXi*ke6a>}AT1B<6%Oa4VWgtNpiWXgnTGXaYBSfXbz)8Uw>7vcpWgK;G z|IGij7?lZ4iVnQ+9S+}f&Up_~O8!+=UKGy1RsJ%Xnwsl_KU#|F8k^g9A8`pGM6Hz4 zzbxS1)e{f(SiC6TnO%AR@_r_RE4kgHVYaTuz5ZGU(5fucu`nysQCU&ys@znO13-3` zpt`_EUtceggjOwtC{RTv^*}@V=PRc=>^Cm$Ya8{AVz)%mW$r@Fy*9!(--tIh^W~-x zVnziTwj2((Yf(R1EP#zMYBsFkOy_$nYM4V?EeJJ;HPgmyB+8w~&!3J@Tt6Q02fT10 zWn%l$40PRzOgc#F>-d?}*nU7G9*;6O`~bUcnrEIVI`10#10Nq94EO{7`H573i1{5h z{T8|?VdS%wUDd55l9G5r5_X@Ye`pwE*(xFi$Lt5s9)J3}DnPC|pYh2Oyk2nS_Oj4rN)M3d;;Y>zlX+UT?mAvZm zVe0nKczS@OsDhp-wTB%SjaZag=ngTeX$zhR!SaA@duz!HIhlO&m1J^^#CHv2xrzW#1VYF~ z0D(>Jtk_7KNd==3jA}~ioYI@VeM8r$Ap5`% literal 0 HcmV?d00001 diff --git a/src/icons/ok_16.png b/src/icons/ok_16.png new file mode 100644 index 0000000000000000000000000000000000000000..380ce66a06aa59801fa4811987cdf227cd157be9 GIT binary patch literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87?^52T^vI!PS2ej>k(WiacutP&l`=?FYlbS z%kr*{_+^oc6I4Al8k^K6-pvRo4@`6AU~|+6bc~fKx!lT8wv^M=B_zB`FsZ3kW#=WA z?5&pBuXWC!yLry?_I~cA9FxP&zdil_Z-rbO*Z<`_=MKg{hzN4~FYFe`kYF}d@|Tyj z&)pKGOwZY=6jOl!Gw#l{@myEmmRpUVujtI-uX3I>Tkct9*H{n zojKuhR>CPK=gXR9+tM#NS}i|y^4+#Ko(!y3X?yqaIy@88$=$km?_;Ca@2lS`-7Pj< z@@>*v?c^o1eAaz^xaIQcUW@Oq{8l(=sdfKgaJbu0IeWI%^@?i+hwnby(zQi2fBB&& zR~`4gvxxV{h;^;tO~cdF0(gP)gmTT92zOgh!$ z;Be&2f#(~iiU;v8b>>M)KH4(HD7?}(EUuywsjT2>VT#*6 z9rtyDX9eNuo8vWwAaUc(?=90bFBd!Gh%(-{z@CN-aJ}(yW?qayeaVhBG zMwu6DeWJ^@7WUjeC|CMj?9bGnj59Z~dOmyb(Gr*_RZCnWN|K9G6H8KcQ-B16k%57Q zuAzahp+$(Hg_Vh!m63_IfrXWU!Q!oVPs23i=BH$)RT9wfhh_DDpaup{S3j3^P6z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;8c9S!RCwB?l08UUQ5462_vQJ>hoYe=L6B;xAQch= z-2yEnV5ZLPAcYhsm2A4UbghF_$W$sWfesB1J7x&BgOrqx21XLkF0jpI4Dcg~Fz3nh6~s9*=WxEegXU;0=Hf zpn>KQ^z{jRK0zShVPF7)LAZPg#@bCrN8fujO$+PptL10o7`gzu|1^cqtMT~NU+Vx| zzv{o3CRy;Wm+vetF0LjL z2{M^X*|zPwQp&?>wc4)N>o|@>qtQT0DaA>P#pL=5Pz4zFypBb$IPo`MqWK?Pe?zJv zN1-WIPCx2d=R|x|<@D;WW15A91uY!<5Of^pFrUwN#pL?KQ#Cm&ve|4G_;wZ}rl+S@ zqS0u~Ez}yu$e>?-1+Xj&(=-#QRO%0N_}v%_2IMD~w=4@i7K`0@D>64XD9~w8gb*7KhH153ffdlADPiNq?{UvzblbKAFU{xl_xF=b zCOJ4bV0(L;TCGN@RC+o$H^+I5Xt&#gmSqhsEiJ{Trly`4hGCedd3%3<->y_DG@H%O zolfUW=GZ@(nVGq@ySv*0-W7{Qd72ZaGD@jqIXgS6pRAq7{2Ty^pg5IJf3FGv0000< KMNUMnLSTZI3?WYd literal 0 HcmV?d00001 diff --git a/src/icons/person_16.png b/src/icons/person_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fa412c80f78072826c82e6fa9ae54a1dff734089 GIT binary patch literal 729 zcmV;~0w(>5P)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0e#Tbc zsCpTBS;du;2f)!BSj!1or{E&naO%V%9P6S>Ex%x>rG#a-A~~@HLMQ%N0*Fmp&@{bC zVgrFvFz*?Pp?=P;0S4Ld%2EmGm5ue51Q~vne|PQh`S7{XDH!Ay0bn7O`k8*cASYT9 z0KmmhmkT#vR#Lwf*HBeWXnzVw&(C2p(ZL=)J$WP=jncakbVcr5^qiI^R1A9@KWtMYu1Z6=(jkWD_`)jNXMs8g&%2jRo9hmSvR7Wl2#KqvbXJPyHPL`Oo+yFtkpQ00000 LNkvXXu0mjfNFXiJ literal 0 HcmV?d00001 diff --git a/src/icons/remove_16.png b/src/icons/remove_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff8845379914bb2b580609f62fd8b701fdf6d4b GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiI;l}H)G9s&he1&9>AYTTC>?8(;5;F#d&np=idgd`O6ad+GfF|lI0hQEzVtM!! zs5Zva#WAGfR?@Hk|LvJoXLL3?8DudqGjlToL9$J=?MkWt`Y9G1<_(RF4;dt<884Fh z@VAx2bC;y*+W-Im*H8HfBm)@T>V;xIupMo<*y3Whz(Rl#Xz>64%nZrfJ<4whCz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;pGibPRCwB?lTS!f0RYCo_s?xUH}}W2`3HUZCkZ55 zRG1O0I^-oV$V-=YjY7ghL=bdIqb@a2=nzCDC=?+cG9i$#ayi{=8M--jo4V zd*dmql^+O}LMF5@t0h4Ej@ZVUzd%m-nUKrYZMO$@OQ7W{E5Sw-FtR$7?_)sA6`*B; z^9gHQ<9<~ufJeJlsH?7q(IA(Aj>opqw>?&pA~8Q7dDu7L82BCFA9p&DLM=2(HIxjA#b^%RStr6HccEk` zu1Ljj46y~1iM7^OnK@5jC6EVn+wFnQt}di2G^jL`BNUgBOyuC6bYNW+ajCf;M-G*N zQLC`JC_ozwp9B!tQDHf>?APleoKuVZ)j1Gl*yBeq}fxJ=P#B`D%>Sy?&4 z;V^>1AR2XTPisnRQCvqscTs`W)dXnwmeG`4dSbCyPPkky9|-`$s5zO=NQ=bYmcHc86z z0QjMy!T7bF&oYd^qMFRbpbaEKb5X1;EY3tSlm7e{{-(Br&l<$d%?2@*LMoL)CX+!t nHyc{W^-W2V6x|c>FZwwEEB72CI_M0000000NkvXXu0mjf4U1eR literal 0 HcmV?d00001 diff --git a/src/icons/seq_16.png b/src/icons/seq_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fad4c83fd11d2eed61b68873402386e712ae004c GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hT5^K@|xskn7#(nika1d$f|^zjtpc)w{w&tDVI-rjjJYD@<);T3K0RY4gd;tIe literal 0 HcmV?d00001 diff --git a/src/icons/tree_16.png b/src/icons/tree_16.png new file mode 100644 index 0000000000000000000000000000000000000000..6d82492bc24512e3b6301d28bb529642b7c3f626 GIT binary patch literal 1016 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(}6TtKSRv1wTBrPnE5?j978Nlmrn4`h)HE=-T#08`JKkwKc6TO zQumy_<=Uhrx=m9ZvXk$ukS=eE6$xDB8c?FRt3dT=E9*zWm<;U|9o(X4oE*jVv|cUR zJ#EXgi)}OfmR0%~&pdhN&dWR1&;Q@Ou}I+jD;+-h=Q4~3svBIp_-t3MF~2nV)SNRG z{|b4Zu6w7(lbB+%Yn$9vso87S-rrrm$bZ6`k3t-FY%I;Y|K5=nc6OJS*L|bUlg@5r zdveQ*tk!E%!4euvf4+W|x^KtF;+mz!*<4HSy9OA}IHE1aCBOH_h0Dup&8N!C+su(T z^^NL)aw&cuW{MT=+a%o=7nUZ78ZrR*F4j*}Xu=Zx7F#mf?9kJ|GpWBOk zPn6wwusYk`z{M66#8msnR-m`Ygtzwm%=dUi6 z{C9?(<*ivOv+FnCSjDv*Zr+cfLs4=igZe2B;}Ow(V>`FT65 z9`Cl5Y^5oe9!(0rDs4OA?DLi>lUjFH&T^c5duo@U`$zqz_l=?Nw#WWHRPg`a$$K$! z>XR4kiw(a%UHm$i_ra}6i@x7@<#@ZO_I%&s8BuH9cE-eAjj~tX!EmKfWpRcdhjY)5 zjXp9ftNFidd$Ruc_0Ph$wn(M($IjpOYg2m6b;~xY^OtX5rxtxOEZRAz z;;r|SbxNA2{l0rgMoBA*OR4NYAur;fgBzxV`ZGAx~KF6fjHxhx=x^R~dXU)$E1=%1gz zb*||0)l+5{^fV=}+*;=HeEv742l*-m7INat9vlbe6TPaCh?3-@)Wnih-4r0fz)*3^ z*vMeR1=9^zOpSO9jkXyXY&9~vWVT_0kpTmP;}=$utQ&LHU^;X2Q!>*kvFqGqWD3*+ Y*LjCkFy~*#J)lkoPgg&ebxsLQ0MK8{bpQYW literal 0 HcmV?d00001 diff --git a/src/icons/treenode_16.png b/src/icons/treenode_16.png new file mode 100644 index 0000000000000000000000000000000000000000..822f6d0f73bde8d8bcc56c27701d0312e8997dd3 GIT binary patch literal 546 zcmV+-0^R+IP)z^Q>-8KIssI20AY({UO#lFEVgLYiHUI$gsQ>_so&W%F zHUI$J5C8x#A^-p&eDVb0tVHn51@7bB99lw$bMeSbJoHbW8 z;g;meN-mTlSqiP>LN4TTO8MDG#plxG>i*_zJ4X{-FCTLxcKN9i*P+o02Kh@ISoXVqsn&q45CD>wyUme zpEG%6y6a#NNrLL5LD%q%jAMAWBwsE~C8W zz>I&1x7;VPL9E5MS~P%&FuS;EZR|SU&4DzZj28s(7U>`y4wn%T>~_1*)ae}M#mfhX z5;5cHbwNP2HFz%CCElOkxY*uH;%R3; k6biYE`b_^R4kgyt0G>8pH)jrTBLDyZ07*qoM6N<$g60$9Z2$lO literal 0 HcmV?d00001 diff --git a/src/icons/unlock_16.png b/src/icons/unlock_16.png new file mode 100644 index 0000000000000000000000000000000000000000..fbf2acc3d9133092b3e496630e35b6f35e3f49dd GIT binary patch literal 594 zcmV-Y0z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-$Vo&&RCwBA{Qv(y10{e3#yF72$j`vQV8Fn@z~C_H z|3P96VEq68Kf{4M#&|(RfeHL_`~rV|{9*X`6$K{z z{qyg^gM$wPE}mwrXXWJ*;}YeXK$H_MOm&aAzefK5{#*wC|Ns9p{Qv)-VPiJmiu-Hi z|HJtBFcUUI*%*I*MhX}FVQ_Urt5*{?)d};1_l8YH{}8z2_A;0XP$j{ zeeHFF!=(Qc@do0SHqQ_-<}=fUWY|SmI9M2-o_==V;~%b{T9yLt0`dY3H@Dup@cr%g z0&KCv2ulZ@Jv}`C|NrOt^5x5ymd3^}uI}z^p^~S9^i==OwMaMOdT{Uo!?Ux`7ySD2 ztH5E>|BrAJ@CDHRTn7K=yVd`n?iT!dezNG-&zFt=UzslYet#}QKHflNU|?Wyb$4gu z6ylt~z`(%p<?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hUm^K@|xskrrK(%!BX2Z5H=(X9WQBn=IPzA&oYUq0VG(v?Lr(M8}&ika2TFAlN+h&PtkDB;KOk@4M@3Cf%zQF&NGs~0Dtj(0#lH0xR^@Z=YZHWzrY>zDtMRixs l+qf>fp66fxr_uw-3{3VpAuqI-Oac0g!PC{xWt~$(69E5ef=~be literal 0 HcmV?d00001