Browse Source

After adding portfolio to ERP Mobile, the favorite icon is displayed incorrectly on the interface -- ERP Mobile 添加portfolio后,界面错误显示收藏图标(resolve: #14822)
ERP Mobile detail interface plus wishlist / portfolio animation stuck -- ERP Mobile detail 界面加wishlist / portfolio 动画卡死(resolve: #14823)

Contrast Mobile 1.97,211229

Ray Zhang 4 years ago
parent
commit
75f494c092
38 changed files with 655 additions and 454 deletions
  1. 5 4
      RedAnt ERP Mobile/common/Functions/MainViewController.m
  2. 78 28
      RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m
  3. 4 2
      RedAnt ERP Mobile/common/Functions/category/CategoryViewController.m
  4. 91 39
      RedAnt ERP Mobile/common/Functions/modelDetail/DetailTopicCell.m
  5. 3 1
      RedAnt ERP Mobile/common/Functions/modelDetail/DetailViewController.h
  6. 28 28
      RedAnt ERP Mobile/common/Functions/modelDetail/DetailViewController.m
  7. 1 0
      RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.h
  8. 76 8
      RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m
  9. 3 3
      RedAnt ERP Mobile/common/Functions/search+itemsearch/ItemSearchViewController.m
  10. 3 2
      RedAnt ERP Mobile/common/Functions/search+itemsearch/SearchViewController.m
  11. 4 2
      RedAnt ERP Mobile/common/data_provider/RANetwork.h
  12. 33 15
      RedAnt ERP Mobile/common/data_provider/RANetwork.m
  13. 1 1
      RedAnt ERP Mobile/common/data_provider/iSalesDB.m
  14. 4 2
      RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/project.pbxproj
  15. 1 1
      RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcschemes/xcschememanagement.plist
  16. 3 3
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/Contents.json
  17. 6 6
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/Contents.json
  18. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/appicon-1.png
  19. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/appicon-2.png
  20. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/appicon.png
  21. 6 6
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/Contents.json
  22. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/appicon-1.png
  23. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/appicon-2.png
  24. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/appicon.png
  25. 6 6
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/Contents.json
  26. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/appicon-1.png
  27. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/appicon-2.png
  28. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/appicon.png
  29. 86 86
      RedAnt ERP Mobile/iSales-CONTRAST/config.h
  30. 2 2
      RedAnt ERP Mobile/iSales-CONTRAST/iSales-CONTRAST-Info.plist
  31. 4 4
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_cover_logo.imageset/Contents.json
  32. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_cover_logo.imageset/logo2048.png
  33. 3 4
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_cover_title.imageset/Contents.json
  34. 4 4
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_logo_s.imageset/Contents.json
  35. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_logo_s.imageset/logo235.png
  36. 4 4
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/salesorder_logo.imageset/Contents.json
  37. BIN
      RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/salesorder_logo.imageset/logo500.png
  38. 196 193
      RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard

+ 5 - 4
RedAnt ERP Mobile/common/Functions/MainViewController.m

@@ -2099,11 +2099,12 @@
     //    [map setValue:@"rect_search_history" forKey:@"img"];
     //    [self.sideMenuItems addObject:map.copy];
     //
-#if defined(BUILD_NPD) || defined(BUILD_USAI) || defined (BUILD_CONTRAST)
+#if defined(BUILD_NPD)
     [map setValue:@"Scanner Setting" forKey:@"title"];
     [map setValue:@"rect_change_password" forKey:@"img"];
     [self.sideMenuItems addObject:map.copy];
-
+# endif
+    
 #if defined(BUILD_NPD)|| defined (BUILD_CONTRAST)
     if(appDelegate.user_type==USER_ROLE_EMPLOYEE)
     {
@@ -2129,7 +2130,7 @@
         [self.sideMenuItems addObject:map.copy];
     }
     
-# endif
+
     
 #if defined(BUILD_HOMER) || defined(BUILD_GATIT)
 /*    
@@ -2191,7 +2192,7 @@
     [self.sideMenuItems addObject:map.copy];
 #endif
     
-#if defined(BUILD_NPD) || defined (BUILD_CONTRAST)
+#if defined(BUILD_NPD) 
     [map setValue:@"BLOG" forKey:@"title"];
     [map setValue:@"rect_change_password" forKey:@"img"];
     [self.sideMenuItems addObject:map.copy];

+ 78 - 28
RedAnt ERP Mobile/common/Functions/camscan/ScannerViewController.m

@@ -390,6 +390,7 @@
     
 #ifdef BUILD_CONTRAST
     self.typeButton.hidden = false;
+    [self.typeButton setTitle:@"Type: UPC Code" forState:UIControlStateNormal];
     self.type = SCANNER_TYPE_UPCCODE;
 #else
     self.typeButton.hidden = true;
@@ -480,7 +481,13 @@
             action = @"Open A Model";
             [ERPUtils googleAnalyticsSendRequestString:nil WithScreen:ScreenCodeCamScan Action:action Extra:nil];
             
-            dvc.use_model_name = true;
+            if(self.type== SCANNER_TYPE_MODELNAME)
+                dvc.use_model_name = true;
+            else
+            {
+                dvc.use_upc_code = true;
+                dvc.upc_code =[transformed stringValue];
+            }
             dvc.model_name=[transformed stringValue];
             dvc.category_id=nil;
             dvc.ispush = true;
@@ -767,42 +774,85 @@
 }
 -(void) addtocart
 {
-
-    [RANetwork request_addto_cart_byname:self.scan_val withScreen:ScreenCodeCamScan completionHandler:^(NSMutableDictionary *result) {
-        NSDictionary* return_json = result;
-        
-        
-        
-        
-        if([[return_json valueForKey:@"result"] intValue]==2)
-        {
+    
+    if(self.type == SCANNER_TYPE_UPCCODE)
+    {
+        [RANetwork request_addto_cart_byupc:self.scan_val withScreen:ScreenCodeCamScan completionHandler:^(NSMutableDictionary *result) {
+            NSDictionary* return_json = result;
             
             
             
             
+            if([[return_json valueForKey:@"result"] intValue]==2)
+            {
+                
+                
+                
+                
+                
+    #ifdef RA_NOTIFICATION
+                [ActiveViewController Notify:@"CartViewController,OrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+    #else
+                
+                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
+                [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+    #endif
+                
+                
+            }
+            else
+            {
+                
+                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add To Cart" controller:self] ;
+            }
             
-#ifdef RA_NOTIFICATION
-            [ActiveViewController Notify:@"CartViewController,OrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
-#else
             
-            AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-            [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
-            [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
-#endif
             
             
-        }
-        else
-        {
             
-            [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add To Cart" controller:self] ;
-        }
-        
-        
-        
-        
-        
-    }];
+        }];
+    }
+    else
+    {
+        [RANetwork request_addto_cart_byname:self.scan_val withScreen:ScreenCodeCamScan completionHandler:^(NSMutableDictionary *result) {
+            NSDictionary* return_json = result;
+            
+            
+            
+            
+            if([[return_json valueForKey:@"result"] intValue]==2)
+            {
+                
+                
+                
+                
+                
+    #ifdef RA_NOTIFICATION
+                [ActiveViewController Notify:@"CartViewController,OrderListViewController" Message:RA_NOTIFICATION_RELOAD_DATA];
+    #else
+                
+                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+                [((MainViewController*)appDelegate.main_vc) reloadOrder:true immediately:false];
+                [((MainViewController*)appDelegate.main_vc) reloadCart:true immediately:false];
+    #endif
+                
+                
+            }
+            else
+            {
+                
+                [RAUtils message_alert:[return_json valueForKey:@"err_msg"] title:@"Add To Cart" controller:self] ;
+            }
+            
+            
+            
+            
+            
+        }];
+    }
+
+
     
 //        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 //

+ 4 - 2
RedAnt ERP Mobile/common/Functions/category/CategoryViewController.m

@@ -40,6 +40,8 @@
 #define  CELL_MARGIN 0
 #define  LABEL_MARGIN 5
 
+#define END_SELECT_PORTFOLIO 5
+
 
 @interface CategoryViewController ()
 
@@ -1149,7 +1151,7 @@
                                     [RAUtils message_alert:nil title:msg controller:self] ;
                                     
                                     
-                                    [self end_select:3 ];
+                                    [self end_select:END_SELECT_PORTFOLIO ];
                                     
                                 }
                                 else
@@ -1211,7 +1213,7 @@
                                     [RAUtils message_alert:nil title:msg controller:self] ;
                                     
                                     
-                                    [self end_select:3 ];
+                                    [self end_select:END_SELECT_PORTFOLIO ];
                                     
                                 }
                                 else

+ 91 - 39
RedAnt ERP Mobile/common/Functions/modelDetail/DetailTopicCell.m

@@ -94,54 +94,106 @@
         cell.cellDescription.text = description;
 //        cell.oldPrice.text = old_price;
 //        cell.Price.text = price;
-    if (![cell.imageName isEqualToString:img_url]) {
-        cell.imageName = img_url;
-        cell.cellImageView.image = [UIImage imageNamed:@"loading_s"];
-        NSString* file_name=[img_url lastPathComponent];
-        NSData* img_data=[iSalesDB load_cached_img:file_name loadFrom:img_url];
-        if(img_data!=nil)
-        {
+    NSString *loading = @"loading_s";
+    NSString * notFound = @"notfound_s";
+    
+    cell.imageName = img_url;
+    cell.cellImageView.image = [UIImage imageNamed:loading];
+    
+    NSString* file_name=[img_url lastPathComponent];
+    NSData* img_data=[iSalesDB load_cached_img:file_name loadFrom:img_url];
+    if(img_data!=nil)
+    {
+        
+        UIImage * img =[UIImage imageWithData:img_data];
+        cell.cellImageView.image = img;
+    }
+    else
+    {
+//            BOOL offline = NO;
+//#ifdef OFFLINE_MODE
+//            AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
+//            offline = appDelegate.offline_mode;
+//#endif
+        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+            
+            NSData*  downloadimg_data = nil;
             
-            UIImage * img =[UIImage imageWithData:img_data];
-            cell.cellImageView.image = img;
-        }
-        else
-        {
             
+            //离线模式不会主动下载图片,避免同名图片覆盖离线图片。
+//                if (!offline) {
+                downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url]];
+//                }
             
-            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+            dispatch_async(dispatch_get_main_queue(), ^{
                 
-                NSData*  downloadimg_data = nil;
-                BOOL offline = NO;
-#ifdef OFFLINE_MODE
-                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
-                offline = appDelegate.offline_mode;
-#endif
-                if (!offline) {
-                    downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url]];
-                }
-                dispatch_async(dispatch_get_main_queue(), ^{
-                    
-                    
+                
+                
+                if(downloadimg_data!=nil)
+                {
                     
-                    if(downloadimg_data!=nil)
-                    {
-                        
-                        [iSalesDB cache_img:downloadimg_data filename:file_name saveTo:img_url];
-                        
-                        UIImage * img =[UIImage imageWithData:downloadimg_data];
-                        cell.cellImageView.image = img;
-                    }
-                    else
-                        cell.cellImageView.image = [UIImage imageNamed:@"notfound_s"];
+                    [iSalesDB cache_img:downloadimg_data filename:file_name saveTo:img_url];
                     
-                });
+                    UIImage * img =[UIImage imageWithData:downloadimg_data];
+                    cell.cellImageView.image = img;
+                }
+                else
+                    cell.cellImageView.image = [UIImage imageNamed:notFound];
+                
             });
-            
-            
-        }
+        });
+        
+        
     }
     
+//    if (![cell.imageName isEqualToString:img_url]) {
+//        cell.imageName = img_url;
+//        cell.cellImageView.image = [UIImage imageNamed:@"loading_s"];
+//        NSString* file_name=[img_url lastPathComponent];
+//        NSData* img_data=[iSalesDB load_cached_img:file_name loadFrom:img_url];
+//        if(img_data!=nil)
+//        {
+//
+//            UIImage * img =[UIImage imageWithData:img_data];
+//            cell.cellImageView.image = img;
+//        }
+//        else
+//        {
+//
+//
+//            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+//
+//                NSData*  downloadimg_data = nil;
+//                BOOL offline = NO;
+//#ifdef OFFLINE_MODE
+//                AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
+//                offline = appDelegate.offline_mode;
+//#endif
+//                if (!offline) {
+//                    downloadimg_data = [NSData dataWithContentsOfURL:[NSURL URLWithString:img_url]];
+//                }
+//                dispatch_async(dispatch_get_main_queue(), ^{
+//
+//
+//
+//                    if(downloadimg_data!=nil)
+//                    {
+//
+//                        [iSalesDB cache_img:downloadimg_data filename:file_name saveTo:img_url];
+//
+//                        UIImage * img =[UIImage imageWithData:downloadimg_data];
+//                        cell.cellImageView.image = img;
+//                    }
+//                    else
+//                        cell.cellImageView.image = [UIImage imageNamed:@"notfound_s"];
+//
+//                });
+//            });
+//
+//
+//        }
+//    }
+    
     
     cell.layer.borderColor = UIColorFromRGB(color).CGColor;
     cell.layer.borderWidth = 0.5;

+ 3 - 1
RedAnt ERP Mobile/common/Functions/modelDetail/DetailViewController.h

@@ -12,14 +12,16 @@
 //#import "SelectorViewController.h"
 #import "ActiveViewController.h"
 #import "NIDropDown.h"
-@interface DetailViewController : ActiveViewController<UITableViewDataSource,UITableViewDelegate,DetailRelatedCellDelegate,DetailHeaderCellDelegate/*,SelectorDelegate,*//*NIDropDownDelegate*/>
+@interface DetailViewController : ActiveViewController<CAAnimationDelegate,UITableViewDataSource,UITableViewDelegate,DetailRelatedCellDelegate,DetailHeaderCellDelegate/*,SelectorDelegate,*//*NIDropDownDelegate*/>
 @property (strong,nonatomic) NSMutableDictionary* detail_data;
 @property (strong,nonatomic) NSString* product_id;
 @property (strong,nonatomic) NSString* model_name;
+@property (strong,nonatomic) NSString* upc_code;
 @property (strong,nonatomic) NSString* category_id;
 @property (strong,nonatomic) NSDictionary* selector;
 @property bool ispush;
 @property bool use_model_name;
+@property bool use_upc_code;
 @property (strong, nonatomic) IBOutlet UITableView *detailTable;
 //@property (strong, nonatomic) IBOutlet UIButton *anchor_button;
 @property int quantity;

+ 28 - 28
RedAnt ERP Mobile/common/Functions/modelDetail/DetailViewController.m

@@ -124,7 +124,7 @@ dispatch_async(dispatch_get_main_queue(), ^{
     //self.detailTable.hidden=true;
     
     
-    [RANetwork request_modeldetail:self.product_id model_name:self.model_name category_id:self.category_id use_name:self.use_model_name groupName:self.groupName completionHandler:^(NSMutableDictionary *result) {
+    [RANetwork request_modeldetail:self.product_id model_name:self.model_name upc_code:self.upc_code category_id:self.category_id use_name:self.use_model_name use_upc:self.use_upc_code groupName:self.groupName completionHandler:^(NSMutableDictionary *result) {
         NSMutableDictionary* detail_json=result;
         
         [self.mum stopAnimating];
@@ -2516,36 +2516,36 @@ dispatch_async(dispatch_get_main_queue(), ^{
     groups.duration = 1.0f;
     groups.removedOnCompletion=NO;
     groups.fillMode=kCAFillModeForwards;
-//    groups.delegate = self;
+    groups.delegate = self;
     [_layer addAnimation:groups forKey:@"group"];
 }
 
-//-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
-//{
-//    //    [anim def];
-//    if (anim == [_layer animationForKey:@"group"]) {
-//        self.detailTable.userInteractionEnabled = YES;
-//        //        _btn.enabled = YES;
-//        [_layer removeFromSuperlayer];
-//        _layer = nil;
-//        
-//        
-////        _cnt++;
-////        if (_cnt) {
-////            _cntLabel.hidden = NO;
-////        }
-////        CATransition *animation = [CATransition animation];
-////        animation.duration = 0.25f;
-////        _cntLabel.text = [NSString stringWithFormat:@"%d",_cnt];
-////        [_cntLabel.layer addAnimation:animation forKey:nil];
-////        CABasicAnimation *shakeAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
-////        shakeAnimation.duration = 0.25f;
-////        shakeAnimation.fromValue = [NSNumber numberWithFloat:-5];
-////        shakeAnimation.toValue = [NSNumber numberWithFloat:5];
-////        shakeAnimation.autoreverses = YES;
-////        [_btn.layer addAnimation:shakeAnimation forKey:nil];
-//    }
-//}
+-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
+{
+    //    [anim def];
+    if (anim == [_layer animationForKey:@"group"]) {
+        self.detailTable.userInteractionEnabled = YES;
+        //        _btn.enabled = YES;
+        [_layer removeFromSuperlayer];
+        _layer = nil;
+        
+        
+//        _cnt++;
+//        if (_cnt) {
+//            _cntLabel.hidden = NO;
+//        }
+//        CATransition *animation = [CATransition animation];
+//        animation.duration = 0.25f;
+//        _cntLabel.text = [NSString stringWithFormat:@"%d",_cnt];
+//        [_cntLabel.layer addAnimation:animation forKey:nil];
+//        CABasicAnimation *shakeAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
+//        shakeAnimation.duration = 0.25f;
+//        shakeAnimation.fromValue = [NSNumber numberWithFloat:-5];
+//        shakeAnimation.toValue = [NSNumber numberWithFloat:5];
+//        shakeAnimation.autoreverses = YES;
+//        [_btn.layer addAnimation:shakeAnimation forKey:nil];
+    }
+}
 #pragma mark - hide section button clicked
 - (void)RefreshSection:(UIButton *)sender {
     

+ 1 - 0
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.h

@@ -68,6 +68,7 @@
 + (NSData*)offline_movewish2cart:(NSMutableDictionary *)params;
 +(NSData*) offline_add2cart :(NSMutableDictionary *) params;
 +(NSData*) offline_add2cartbyname :(NSMutableDictionary *) params;
++(NSData*) offline_add2cartbyupc :(NSMutableDictionary *) params;
 //+(NSData*) offline_requestcart :(NSMutableDictionary *) params;
 +(NSData*) offline_updategnotes :(NSMutableDictionary *) params;
 +(NSData*) offline_movecart2wish :(NSMutableDictionary *) params;

+ 76 - 8
RedAnt ERP Mobile/common/Functions/offline/OLDataProvider.m

@@ -1611,7 +1611,24 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
 {
     
 //    assert(params[@"contact_id"]!=nil);
-    assert(params[@"user"]!=nil);
+//    assert(params[@"user"]!=nil);
+    
+    
+    
+    if(params[@"user"]==nil)
+    {
+        AppDelegate *appDelegate = nil;
+        
+        
+        //some UI methods ej
+        appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+        
+        
+        
+        if(appDelegate.user!=nil)
+            [params setValue:appDelegate.user forKey:@"user"];
+    }
+
     
     NSString* template_file=nil;
     switch([params[@"pdf_style"] intValue])
@@ -3045,7 +3062,7 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
     
     return ret;
 }
-+(NSString*) model_default_category :(NSString *) product_id model_name:(NSString *) model_name
++(NSString*) model_default_category :(NSString *) product_id model_name:(NSString *) model_name upc_code:(NSString *) upc_code
 {
     
     
@@ -3058,7 +3075,10 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
     NSString *sqlQuery = nil;
     
     if(product_id==nil)
+        if(upc_code==nil)
         sqlQuery = [NSString stringWithFormat:@"select default_category from product where name='%@';",model_name];// select default_category from model where name='%@';
+        else
+            sqlQuery = [NSString stringWithFormat:@"select default_category from product  where upc_code = '%@' or upc_code like '%@;%%' or upc_code like '%%;%@;%%' or upc_code like '%%;%@';",upc_code,upc_code,upc_code,upc_code];// select default_category from model where name='%@';
     else
         sqlQuery = [NSString stringWithFormat:@"select default_category from product where product_id=%@;",product_id]; // select default_category from model where product_id=%@;
     
@@ -5129,9 +5149,15 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
     
     
 
-    NSString *sqlQuery = [NSString stringWithFormat:@"select m.name,m.product_id,i.url,random() as aa from product m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and m.category like'%%#005#%%' and i.default_img = %d order by aa limit 10 ;",category,OFFLINE_IMG_TYPE_CATEGORY]; // select m.name,m.product_id,i.url,random() as aa from model m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and m.category like'%%#005#%%' and i.default_img = %d order by aa limit 10 ;
-
-    sqlite3_stmt * statement;
+    NSString *sqlQuery =nil;
+    
+#ifdef BUILD_NPD
+    sqlQuery=[NSString stringWithFormat:@"select m.name,m.product_id,i.url,random() as aa from product m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and m.category like'%%#005#%%' and i.default_img = %d order by aa limit 10 ;",category,OFFLINE_IMG_TYPE_CATEGORY]; // select m.name,m.product_id,i.url,random() as aa from model m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and m.category like'%%#005#%%' and i.default_img = %d order by aa limit 10 ;
+#else
+    sqlQuery=[NSString stringWithFormat:@"select m.name,m.product_id,i.url,random() as aa from product m LEFT join model_image i on m.product_id = i.product_id where m.category like'%%#%@#%%' and i.default_img = %d order by aa limit 10 ;",category,OFFLINE_IMG_TYPE_CATEGORY];
+    
+#endif
+              sqlite3_stmt * statement;
     int count = 0;
     [ret setValue:[NSString stringWithFormat:@"%d",count] forKey:@"count"];
     
@@ -11643,7 +11669,41 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
 }
 
 #pragma mark add to cart by name
++(NSData*) offline_add2cartbyupc :(NSMutableDictionary *) params
+{
 
+    NSString *orderCode = [params objectForKey:@"orderCode"];
+    NSString *upccode = [params objectForKey:@"upc_code"];
+//    product_name = [self translateSingleQuote:product_name];
+//    NSArray *product_name_array = [product_name componentsSeparatedByString:@","];
+//    bool search_upc = [params[@"search_upc"] boolValue];
+    sqlite3 *db = [iSalesDB get_db];
+    __block NSMutableString *product_id_string = [NSMutableString string];
+//    NSString *name = [product_name_array objectAtIndex:i];
+    NSString *sql =nil;
+        sql= [NSString stringWithFormat:@"select product_id from product where upc_code = '%@' or upc_code like '%@;%%' or upc_code like '%%;%@;%%' or upc_code like '%%;%@';",upccode,upccode,upccode,upccode];
+    [iSalesDB jk_query:sql db:db close:NO completion:^(sqlite3_stmt *stmt, NSMutableDictionary *container, long *count) {
+        
+        int product_id = sqlite3_column_int(stmt, 0);
+        [product_id_string appendFormat:@"%d",product_id];
+    }];
+
+ 
+    if (!orderCode) {
+        orderCode = @"";
+    }
+    NSDictionary *newParams = @{
+                                @"product_id" : product_id_string,
+                                @"orderCode"  : orderCode,
+                                @"can_create_backorder":params[@"can_create_backorder"]
+                                };
+    
+    [iSalesDB close_db:db];
+    
+    
+    
+    return [self offline_add2cart:[newParams mutableCopy]];
+}
 +(NSData*) offline_add2cartbyname :(NSMutableDictionary *) params
 {
 
@@ -14636,10 +14696,10 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
         NSString* model_name = [params valueForKey:@"product_name"];
         
         NSString* product_id = [params valueForKey:@"product_id"];
-        
+        NSString* upc_code = [params valueForKey:@"upc_code"];
         NSString* category = [params valueForKey:@"category"];
         
-        NSString *default_category_id = [self model_default_category:product_id model_name:model_name];
+        NSString *default_category_id = [self model_default_category:product_id model_name:model_name upc_code:upc_code];
         if(category==nil) {
             category = default_category_id;
         } else {
@@ -14681,7 +14741,15 @@ NSString* gprice = [self get_portfolio_price :params[@"contact_id"] item_id:item
         NSString *sqlQuery = nil;
         
         if(product_id==nil)
-            sqlQuery = [NSString stringWithFormat:@"select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging,ETA,item_id,seat_dimension,product_content_writing from product where name='%@';",model_name]; // select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging from model where name='%@';
+            if(model_name==nil)
+            {
+                sqlQuery = [NSString stringWithFormat:@"select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging,ETA,item_id,seat_dimension,product_content_writing from product where upc_code = '%@' or upc_code like '%@;%%' or upc_code like '%%;%@;%%' or upc_code like '%%;%@';",upc_code,upc_code,upc_code,upc_code]; // select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging from model where name='%@';
+            }
+            else
+            {
+                sqlQuery = [NSString stringWithFormat:@"select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging,ETA,item_id,seat_dimension,product_content_writing from product where name='%@';",model_name]; // select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging from model where name='%@';
+            }
+
         else
             
             sqlQuery = [NSString stringWithFormat:@"select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging,ETA,item_id,seat_dimension,product_content_writing from product where product_id=%@;",product_id]; // select name,description,product_id,color,legcolor,availability,incoming_stock,demension,seat_height,material,box_dim,volume,weight,model_set,load_ability,default_category,fabric_content,assembling,made_in,special_remarks,stockUom,product_group,selector_field,property_field,packaging from model where product_id=%@;

+ 3 - 3
RedAnt ERP Mobile/common/Functions/search+itemsearch/ItemSearchViewController.m

@@ -26,7 +26,7 @@
 #define  LINE_WIDTH 0
 #define  CELL_MARGIN 0
 #define  LABEL_MARGIN 5
-
+#define END_SELECT_PORTFOLIO 5
 
 @interface ItemSearchViewController ()
 
@@ -1659,7 +1659,7 @@
                                     [RAUtils message_alert:nil title:msg controller:self] ;
                                     
                                     
-                                    [self end_select:3];
+                                    [self end_select:END_SELECT_PORTFOLIO];
                                     
                                 }
                                 else
@@ -1715,7 +1715,7 @@
                                     [RAUtils message_alert:nil title:msg controller:self] ;
                                     
                                     
-                                    [self end_select:3];
+                                    [self end_select:END_SELECT_PORTFOLIO];
                                     
                                 }
                                 else

+ 3 - 2
RedAnt ERP Mobile/common/Functions/search+itemsearch/SearchViewController.m

@@ -23,6 +23,7 @@
 #define  LINE_WIDTH 0
 #define  CELL_MARGIN 0
 #define  LABEL_MARGIN 5
+#define END_SELECT_PORTFOLIO 5
 
 @interface SearchViewController ()
 
@@ -1270,7 +1271,7 @@
                         [RAUtils message_alert:nil title:msg controller:self] ;
                         
                         
-                        [self end_select:3];
+                        [self end_select:END_SELECT_PORTFOLIO];
                         
                     }
                     else
@@ -1328,7 +1329,7 @@
                         [RAUtils message_alert:nil title:msg controller:self] ;
                         
                         
-                        [self end_select:3];
+                        [self end_select:END_SELECT_PORTFOLIO];
                         
                     }
                     else

+ 4 - 2
RedAnt ERP Mobile/common/data_provider/RANetwork.h

@@ -193,8 +193,9 @@ extern NSString *const ScreenCodeOfflineSync;
 +(void)request_home:(int) price_template customid:(int) customid completionHandler:(resultHandler)result;
 +(void)request_category:(resultHandler)result;
 +(void)request_categorylist: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip completionHandler:(resultHandler)result;
-+(void)request_modeldetail: (NSString* ) item_id model_name:(NSString*) model_name category_id:(NSString*) category_id use_name :(bool) use_name groupName:(NSString *)groupName completionHandler:(resultHandler)result;
-
+//+(void)request_modeldetail: (NSString* ) item_id model_name:(NSString*) model_name category_id:(NSString*) category_id use_name :(bool) use_name groupName:(NSString *)groupName completionHandler:(resultHandler)result;
+//+(void)request_modeldetail: (NSString* ) item_id model_name:(NSString*) model_name category_id:(NSString*) category_id use_name :(bool) use_name use_upc :(bool) use_upc groupName:(NSString *)groupName completionHandler:(resultHandler)result;
++(void)request_modeldetail: (NSString* ) item_id model_name:(NSString*) model_name upc_code:(NSString*) upc_code  category_id:(NSString*) category_id use_name :(bool) use_name use_upc :(bool) use_upc groupName:(NSString *)groupName completionHandler:(resultHandler)result;
 +(void)request_search:(long ) offset limit :(long)limit keywords :(NSString*) keywords matchfull:(bool)matchfull completionHandler:(resultHandler)result;
 +(void)request_login: (NSString*) user password:(NSString*) password completionHandler:(resultHandler)result;
 +(void)request_contactlist:(int) offset limit:(int)limit keywords:(NSString*) keywords type:(NSString*) contact_type adv_search:(NSDictionary*)upparams completionHandler:(resultHandler)result;
@@ -231,6 +232,7 @@ extern NSString *const ScreenCodeOfflineSync;
 
 +(void)request_addall_search:(long ) offset limit :(long)limit keywords :(NSString*) keywords matchfull:(bool)matchfull orderCode:(NSString*) orderCode  addTo:(NSString*) addTo completionHandler:(resultHandler)result;
 +(void) request_addto_cart_byname:(NSString* ) model_name withScreen:(NSString *)screenName completionHandler:(resultHandler)result;
++(void) request_addto_cart_byupc:(NSString* ) upc_code withScreen:(NSString *)screenName completionHandler:(resultHandler)result;
 +(void) request_addto_wishlist:(NSString* ) item_id withScreen:(NSString *)screenName completionHandler:(resultHandler)result;
 +(void)request_addall_itemsearch:(long ) offset limit :(long)limit covertype:(NSString* ) covertype ctgid:(NSString*)ctgid modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller orderCode:(NSString*) orderCode addTo:(NSString*) addTo completionHandler:(resultHandler)result;
 +(void)request_addall_category: (NSString*) category customid:(int) customid price_template:(int) price_template sort:(int) sort_by filter:(NSString*) filter keyword:(NSString*) keyword  offset:(long) offset limit:(long) limit alert:(NSString*)alert qty:(NSString*)qty available:(NSString*)available price:(NSString*)price bestseller:(NSString*)bestseller modelname:(NSString*) modelname modeldescrip:(NSString*)modeldescrip orderCode:(NSString*) orderCode addTo:(NSString*) addTo completionHandler:(resultHandler)result;

+ 33 - 15
RedAnt ERP Mobile/common/data_provider/RANetwork.m

@@ -5142,7 +5142,7 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     //
 }
 
-+(void)request_modeldetail: (NSString* ) item_id model_name:(NSString*) model_name category_id:(NSString*) category_id use_name :(bool) use_name groupName:(NSString *)groupName completionHandler:(resultHandler)result
++(void)request_modeldetail: (NSString* ) item_id model_name:(NSString*) model_name upc_code:(NSString*) upc_code  category_id:(NSString*) category_id use_name :(bool) use_name use_upc :(bool) use_upc groupName:(NSString *)groupName completionHandler:(resultHandler)result
 {
     
     NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
@@ -5162,9 +5162,16 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     if(use_name)
         [params setValue:model_name  forKey:@"product_name"];
     else
+        if(use_upc){
+            params[@"search_upc"]=@true;
+            [params setValue:upc_code  forKey:@"upc_code"];
+        }
+        else
         [params setValue:item_id  forKey:@"product_id"];
     
     
+    
+    
     [params setValue:category_id  forKey:@"category"];
     
     [params setObject:ScreenCodeModelInfo forKey:kScreenName];
@@ -8164,7 +8171,7 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
         params[@"can_create_backorder"]=@(appDelegate.can_create_backorder);
 //        [OLDataProvider offline_add2cartbyname:params completionHandler:result];
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-            NSMutableDictionary* json = [[RAConvertor data2dict:[OLDataProvider offline_add2cartbyname:params]] mutableCopy];
+            NSMutableDictionary* json = [[RAConvertor data2dict:[OLDataProvider offline_add2cartbyupc:params]] mutableCopy];
             dispatch_async(dispatch_get_main_queue(), ^{
                 
                 int result_code = [[json valueForKey:@"result"] intValue];
@@ -9223,12 +9230,8 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 }
 +(void)request_save_portfoliodirectly:(NSMutableDictionary*)params completionHandler:(resultHandler)result
 {
-    NSMutableDictionary* off_params = [params mutableCopy];;
-    
-    params[@"off_params"]=[RAConvertor dict2string:off_params];;
+    NSMutableDictionary* off_params = [params mutableCopy];
     AppDelegate *appDelegate = nil;
-    
-    
     appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
     
     if(appDelegate.user!=nil)
@@ -9236,6 +9239,12 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
     if(appDelegate.contact_id!=nil)
         [params setValue:appDelegate.contact_id forKey:@"contactId"];
     if(appDelegate.password!=nil)
+    params[@"off_params"]=[RAConvertor dict2string:off_params];
+    [off_params removeObjectForKey:@"password"]; // 确保离线参数不会写入创建用户的密码;
+
+    
+    
+
         [params setValue:appDelegate.password forKey:@"password"];
     
     [params setObject:ScreenCodeCreatePortfolio forKey:kScreenName];
@@ -9339,23 +9348,25 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
 +(void)request_save_portfolio:(NSMutableDictionary *)params completionHandler:(resultHandler)result
 
 {
-    
+    AppDelegate *appDelegate = nil;
+    appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+    if(appDelegate.user!=nil)
+        [params setValue:appDelegate.user forKey:@"user"];
+    if(appDelegate.contact_id!=nil)
+        [params setValue:appDelegate.contact_id forKey:@"contactId"];
     
     NSMutableDictionary* off_params = [params mutableCopy];;
     
+    [off_params removeObjectForKey:@"password"]; // 确保离线参数不会写入创建用户的密码;
     params[@"off_params"]=[RAConvertor dict2string:off_params];
     //  NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
-    AppDelegate *appDelegate = nil;
-    
+
     
     
-    appDelegate=(AppDelegate*)[[UIApplication sharedApplication] delegate];
+
     
     
-    if(appDelegate.user!=nil)
-        [params setValue:appDelegate.user forKey:@"user"];
-    if(appDelegate.contact_id!=nil)
-        [params setValue:appDelegate.contact_id forKey:@"contactId"];
+
     if(appDelegate.password!=nil)
         [params setValue:appDelegate.password forKey:@"password"];
     
@@ -10017,6 +10028,9 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
                     //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
                     
                     [appDelegate update_count_mark];
+                    dispatch_async(dispatch_get_main_queue(), ^{
+                        result(resulti);
+                    });
                 }
             });
         });
@@ -10034,6 +10048,10 @@ NSString *const ScreenCodeOfflineSync = @"Offline Sync Screen";
             //    appDelegate.port_count =[[jsobj valueForKey:@"portfolio_count"] intValue];
             
             [appDelegate update_count_mark];
+            
+            dispatch_async(dispatch_get_main_queue(), ^{
+                result(resulti);
+            });
         }
     }  retry:0];
     

+ 1 - 1
RedAnt ERP Mobile/common/data_provider/iSalesDB.m

@@ -677,7 +677,7 @@ void decryptfield (sqlite3_context *context, int argc, sqlite3_value **argv) {
     
     // [self execSql:@"PRAGMA journal_mode = WAL;" db:db];
     
-    NSString* create_product=@"CREATE TABLE IF NOT EXISTS product ( _id INTEGER PRIMARY KEY, name VARCHAR(20,0), description VARCHAR(20,0), product_id INTEGER, color VARCHAR(20,0), legcolor VARCHAR(20,0), availability INTEGER, incoming_stock INTEGER, ETA DATE, demension VARCHAR(20,0), seat_height VARCHAR(20,0), material VARCHAR(20,0), box_dim VARCHAR(20,0), volume VARCHAR(20,0), weight VARCHAR(20,0), model_set VARCHAR(20,0), load_ability VARCHAR(20,0), default_category VARCHAR(20,0), category VARCHAR(100,0), fabric_content VARCHAR(20,0), assembling VARCHAR(20,0), made_in VARCHAR(20,0), special_remarks VARCHAR(20,0), stockUom integer, fashion VARCHAR(20,0), isnew integer, property_field VARCHAR(20,0), property_display VARCHAR(20,0), selector_field VARCHAR(20,0), selector_display VARCHAR(20,0), product_group VARCHAR(20,0), packaging VARCHAR(20,0), closeout integer ,best_seller integer,alert VARCHAR(20,0),has_bundle integer,is_active integer,item_id integer,more_color integer,seat_dimension text,assembly_instruction text,product_content_writing text);";
+    NSString* create_product=@"CREATE TABLE IF NOT EXISTS product ( _id INTEGER PRIMARY KEY, name VARCHAR(20,0), upc_code VARCHAR(42,0), description VARCHAR(20,0), product_id INTEGER, color VARCHAR(20,0), legcolor VARCHAR(20,0), availability INTEGER, incoming_stock INTEGER, ETA DATE, demension VARCHAR(20,0), seat_height VARCHAR(20,0), material VARCHAR(20,0), box_dim VARCHAR(20,0), volume VARCHAR(20,0), weight VARCHAR(20,0), model_set VARCHAR(20,0), load_ability VARCHAR(20,0), default_category VARCHAR(20,0), category VARCHAR(100,0), fabric_content VARCHAR(20,0), assembling VARCHAR(20,0), made_in VARCHAR(20,0), special_remarks VARCHAR(20,0), stockUom integer, fashion VARCHAR(20,0), isnew integer, property_field VARCHAR(20,0), property_display VARCHAR(20,0), selector_field VARCHAR(20,0), selector_display VARCHAR(20,0), product_group VARCHAR(20,0), packaging VARCHAR(20,0), closeout integer ,best_seller integer,alert VARCHAR(20,0),has_bundle integer,is_active integer,item_id integer,more_color integer,seat_dimension text,assembly_instruction text,product_content_writing text);";
     
     NSString* create_catalog=@"CREATE TABLE IF NOT EXISTS catalog ( _id INTEGER PRIMARY KEY, name VARCHAR(20,0), description VARCHAR(20,0), upc_code VARCHAR(42,0), item_id INTEGER,is_active integer,ulength float,uwidth float,uheight float,uweight float,pcs integer,mpack integer,mlength float,mwidth float,mheight float,mweigth float,ipack integer,ilength float,iwidth float,iheight float, iweight float,ucbf float,icbf float, mcbf float,is_single_model integer, is_master_model integer,is_rate integer,is_part integer);";
     

+ 4 - 2
RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/project.pbxproj

@@ -2516,7 +2516,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 200119;
+				CURRENT_PROJECT_VERSION = 211229;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -2533,6 +2533,7 @@
 					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
 					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
 				);
+				MARKETING_VERSION = 1.97;
 				OTHER_LDFLAGS = (
 					"$(inherited)",
 					"-ObjC",
@@ -2559,7 +2560,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
-				CURRENT_PROJECT_VERSION = 200119;
+				CURRENT_PROJECT_VERSION = 211229;
 				DEVELOPMENT_TEAM = HXWLAA5YN5;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -2576,6 +2577,7 @@
 					"$(PROJECT_DIR)/ScanApiSDK-10.2.227-2/lib",
 					"$(PROJECT_DIR)/GoogleAnalytics/GoogleAnalytics/Libraries",
 				);
+				MARKETING_VERSION = 1.97;
 				OTHER_LDFLAGS = (
 					"$(inherited)",
 					"-ObjC",

+ 1 - 1
RedAnt ERP Mobile/iSales-CONTRAST.xcodeproj/xcuserdata/ruizhang.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,7 +7,7 @@
 		<key>iSales-CONTRAST.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>2</integer>
+			<integer>3</integer>
 		</dict>
 		<key>iSales-USAI.xcscheme_^#shared#^_</key>
 		<dict>

+ 3 - 3
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/Contents.json

@@ -1,6 +1,6 @@
 {
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

+ 6 - 6
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/Contents.json

@@ -1,23 +1,23 @@
 {
   "images" : [
     {
+      "filename" : "appicon.png",
       "idiom" : "universal",
-      "filename" : "LaunchIcon.png",
       "scale" : "1x"
     },
     {
+      "filename" : "appicon-1.png",
       "idiom" : "universal",
-      "filename" : "LaunchIcon@2x.png",
       "scale" : "2x"
     },
     {
+      "filename" : "appicon-2.png",
       "idiom" : "universal",
-      "filename" : "LaunchIcon@3x.png",
       "scale" : "3x"
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/LaunchIcon.imageset/appicon.png


+ 6 - 6
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/Contents.json

@@ -1,23 +1,23 @@
 {
   "images" : [
     {
+      "filename" : "appicon.png",
       "idiom" : "universal",
-      "filename" : "red_ant_logo.png",
       "scale" : "1x"
     },
     {
+      "filename" : "appicon-1.png",
       "idiom" : "universal",
-      "filename" : "red_ant_logo@2x.png",
       "scale" : "2x"
     },
     {
+      "filename" : "appicon-2.png",
       "idiom" : "universal",
-      "filename" : "red_ant_logo@3x.png",
       "scale" : "3x"
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/about.imageset/appicon.png


+ 6 - 6
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/Contents.json

@@ -1,23 +1,23 @@
 {
   "images" : [
     {
+      "filename" : "appicon.png",
       "idiom" : "universal",
-      "filename" : "red_ant_logo.png",
       "scale" : "1x"
     },
     {
+      "filename" : "appicon-1.png",
       "idiom" : "universal",
-      "filename" : "red_ant_logo@2x.png",
       "scale" : "2x"
     },
     {
+      "filename" : "appicon-2.png",
       "idiom" : "universal",
-      "filename" : "red_ant_logo@3x.png",
       "scale" : "3x"
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/appicon-1.png


BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/appicon-2.png


BIN
RedAnt ERP Mobile/iSales-CONTRAST/Images.xcassets/npd_logo.imageset/appicon.png


+ 86 - 86
RedAnt ERP Mobile/iSales-CONTRAST/config.h

@@ -41,9 +41,9 @@
 #define  APP_NAME @"CONTRAST Mobile"
 #define COMPANY_SHORT_NAME @"CONTRAST"
 #define  COMPANY_NAME @"CONTRAST"
-#define  COMPANY_INFO @"Sales: sales@united-us.net\nPhone: 510-574-8180"
-#define  COMPANY_WEB @"www.united-us.net"
-#define  COMPANY_FULL_NAME @"United Software Applications, Inc."
+#define  COMPANY_INFO @"Sales: sales@contrast-inc.com\nPhone: 510-475-9888"
+#define  COMPANY_WEB @"redant.contrast-inc.com"
+#define  COMPANY_FULL_NAME @"Contrast, Inc."
 
 #define LOCAL_URL_CUSTOMER_INFO_EDITOR @"customer_info_template"
 #define LOCAL_URL_CUSTOMER_INFO_EDIT @"customer_info_template_edit"
@@ -191,133 +191,133 @@
 
 
 //------------------- NPD server-----------------------
-#define  URL_UPDATE_AUTH  @"https://www.newpacificdirect.com/isales/login.htm"
-#define  URL_LOGOUT  @"https://www.newpacificdirect.com/isales/loginOut.htm"
-#define  URL_RETRIEVE_PASS  @"https://www.newpacificdirect.com/isales/forgotPassword.htm"
+#define  URL_UPDATE_AUTH  @"https://redant.contrast-inc.com/isales/login.htm"
+#define  URL_LOGOUT  @"https://redant.contrast-inc.com/isales/loginOut.htm"
+#define  URL_RETRIEVE_PASS  @"https://redant.contrast-inc.com/isales/forgotPassword.htm"
 
-#define  URL_REQUEST_CATMENU  @"https://www.newpacificdirect.com/isales/menu.htm"
-#define  URL_LOAD_HOME  @"https://www.newpacificdirect.com/isales/homePage.htm"
-#define  URL_CATEGORY @"https://www.newpacificdirect.com/isales/distinctCategory.htm"
-#define  URL_SEARCH  @"https://www.newpacificdirect.com/isales/search.htm"
-#define  URL_ITEM_SEARCH  @"https://www.newpacificdirect.com/isales/itemSearch.htm"
-#define  URL_CATEGORY_LOADMORE  @"https://www.newpacificdirect.com/isales/categoryMore.htm"
+#define  URL_REQUEST_CATMENU  @"https://redant.contrast-inc.com/isales/menu.htm"
+#define  URL_LOAD_HOME  @"https://redant.contrast-inc.com/isales/homePage.htm"
+#define  URL_CATEGORY @"https://redant.contrast-inc.com/isales/distinctCategory.htm"
+#define  URL_SEARCH  @"https://redant.contrast-inc.com/isales/search.htm"
+#define  URL_ITEM_SEARCH  @"https://redant.contrast-inc.com/isales/itemSearch.htm"
+#define  URL_CATEGORY_LOADMORE  @"https://redant.contrast-inc.com/isales/categoryMore.htm"
 
 
-#define  URL_ORDER_LIST  @"https://www.newpacificdirect.com/isales/orderList.htm"
-#define  URL_ORDER_DETAIL  @"https://www.newpacificdirect.com/isales/orderDetail.htm"
-#define URL_COMMIT_ORDER @"https://www.newpacificdirect.com/isales/createOrder.htm"
-#define URL_SAVE_ORDER @"https://www.newpacificdirect.com/isales/saveOrder.htm"
-#define URL_UPDATE_ORDERCUSTOMER @"https://www.newpacificdirect.com/isales/updateOrderCustomerInfo.htm"
-#define  URL_NEW_ORDER  @"https://www.newpacificdirect.com/isales/createNewOrder.htm"
-#define  URL_OPEN_ORDER  @"https://www.newpacificdirect.com/isales/openOrder.htm"
-#define  URL_RELEASE_ORDER  @"https://www.newpacificdirect.com/isales/closeOrder.htm"
-#define  URL_DELETE_ORDER  @"https://www.newpacificdirect.com/isales/deleteOrder.htm"
-#define  URL_CANCEL_ORDER  @"https://www.newpacificdirect.com/isales/cancelOrder.htm"
+#define  URL_ORDER_LIST  @"https://redant.contrast-inc.com/isales/orderList.htm"
+#define  URL_ORDER_DETAIL  @"https://redant.contrast-inc.com/isales/orderDetail.htm"
+#define URL_COMMIT_ORDER @"https://redant.contrast-inc.com/isales/createOrder.htm"
+#define URL_SAVE_ORDER @"https://redant.contrast-inc.com/isales/saveOrder.htm"
+#define URL_UPDATE_ORDERCUSTOMER @"https://redant.contrast-inc.com/isales/updateOrderCustomerInfo.htm"
+#define  URL_NEW_ORDER  @"https://redant.contrast-inc.com/isales/createNewOrder.htm"
+#define  URL_OPEN_ORDER  @"https://redant.contrast-inc.com/isales/openOrder.htm"
+#define  URL_RELEASE_ORDER  @"https://redant.contrast-inc.com/isales/closeOrder.htm"
+#define  URL_DELETE_ORDER  @"https://redant.contrast-inc.com/isales/deleteOrder.htm"
+#define  URL_CANCEL_ORDER  @"https://redant.contrast-inc.com/isales/cancelOrder.htm"
 
 
-#define  URL_CART_SET_PRICE  @"https://www.newpacificdirect.com/isales/setPrice.htm"
-#define  URL_CART_INCRESEMENT  @"https://www.newpacificdirect.com/isales/increment.htm"
-#define  URL_CART  @"https://www.newpacificdirect.com/isales/cartDtail.htm"
-#define  URL_CARTDELIVERY  @"https://www.newpacificdirect.com/isales/cartDelivery.htm"
-#define  URL_ADD_TO_CART  @"https://www.newpacificdirect.com/isales/addToCart.htm"
-#define  URL_CART_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToCart.htm"
-#define  URL_CART_CHECK  @"https://www.newpacificdirect.com/isales/checkCartItem.htm"
+#define  URL_CART_SET_PRICE  @"https://redant.contrast-inc.com/isales/setPrice.htm"
+#define  URL_CART_INCRESEMENT  @"https://redant.contrast-inc.com/isales/increment.htm"
+#define  URL_CART  @"https://redant.contrast-inc.com/isales/cartDtail.htm"
+#define  URL_CARTDELIVERY  @"https://redant.contrast-inc.com/isales/cartDelivery.htm"
+#define  URL_ADD_TO_CART  @"https://redant.contrast-inc.com/isales/addToCart.htm"
+#define  URL_CART_REMOVE  @"https://redant.contrast-inc.com/isales/deleteToCart.htm"
+#define  URL_CART_CHECK  @"https://redant.contrast-inc.com/isales/checkCartItem.htm"
 
-#define  URL_CART2WISH  @"https://www.newpacificdirect.com/isales/cartRemoveToWishlist.htm"
-#define  URL_WISH2CART  @"https://www.newpacificdirect.com/isales/wishlistRemoveToCart.htm"
+#define  URL_CART2WISH  @"https://redant.contrast-inc.com/isales/cartRemoveToWishlist.htm"
+#define  URL_WISH2CART  @"https://redant.contrast-inc.com/isales/wishlistRemoveToCart.htm"
 
-#define  URL_ITEM_DETAIL  @"https://www.newpacificdirect.com/isales/modelDetail.htm"
+#define  URL_ITEM_DETAIL  @"https://redant.contrast-inc.com/isales/modelDetail.htm"
 
-#define  URL_ADD_TO_WATCHLIST  @"https://www.newpacificdirect.com/isales/addToWishList.htm"
-#define  URL_WATCHLIST  @"https://www.newpacificdirect.com/isales/wishList.htm"
-#define  URL_WATCHLIST_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToWishList.htm"
+#define  URL_ADD_TO_WATCHLIST  @"https://redant.contrast-inc.com/isales/addToWishList.htm"
+#define  URL_WATCHLIST  @"https://redant.contrast-inc.com/isales/wishList.htm"
+#define  URL_WATCHLIST_REMOVE  @"https://redant.contrast-inc.com/isales/deleteToWishList.htm"
 
 
 
-#define  URL_ADD_TO_PORTFOLIO @"https://www.newpacificdirect.com/isales/addToPortfolio.htm"
-#define  URL_PORTFOLIO_REMOVE  @"https://www.newpacificdirect.com/isales/deleteToPortfolio.htm"
-#define  URL_PORTFOLIO  @"https://www.newpacificdirect.com/isales/portfolios.htm"
-#define  URL_PORTFOLIO_SET_PRICE  @"https://www.newpacificdirect.com/isales/setTearSheetPrice.htm"
-#define  URL_DM_PARAMS @"https://www.newpacificdirect.com/isales/selectTearSheetParam.htm"
-#define  URL_REQUEST_DM @"https://www.newpacificdirect.com/isales/getTearSheetPdf.htm"
-#define  URL_SAVE_DM_DIRECT @"https://www.newpacificdirect.com/isales/getTearSheetPdf.htm"
-#define  URL_SAVE_DM @"https://www.newpacificdirect.com/isales/saveTearSheetPdf.htm"
-#define  URL_DM_LIST @"https://www.newpacificdirect.com/isales/tearSheetPdfList.htm"
-//#define  URL_DM_SET_QTY @"https://www.newpacificdirect.com/isales/setTearSheetAvailableQty.htm"
-#define  URL_REQUEST_MODEL_QTY @"https://www.newpacificdirect.com/isales/getTearSheetAvailableQty.htm"
+#define  URL_ADD_TO_PORTFOLIO @"https://redant.contrast-inc.com/isales/addToPortfolio.htm"
+#define  URL_PORTFOLIO_REMOVE  @"https://redant.contrast-inc.com/isales/deleteToPortfolio.htm"
+#define  URL_PORTFOLIO  @"https://redant.contrast-inc.com/isales/portfolios.htm"
+#define  URL_PORTFOLIO_SET_PRICE  @"https://redant.contrast-inc.com/isales/setTearSheetPrice.htm"
+#define  URL_DM_PARAMS @"https://redant.contrast-inc.com/isales/selectTearSheetParam.htm"
+#define  URL_REQUEST_DM @"https://redant.contrast-inc.com/isales/getTearSheetPdf.htm"
+#define  URL_SAVE_DM_DIRECT @"https://redant.contrast-inc.com/isales/getTearSheetPdf.htm"
+#define  URL_SAVE_DM @"https://redant.contrast-inc.com/isales/saveTearSheetPdf.htm"
+#define  URL_DM_LIST @"https://redant.contrast-inc.com/isales/tearSheetPdfList.htm"
+//#define  URL_DM_SET_QTY @"https://redant.contrast-inc.com/isales/setTearSheetAvailableQty.htm"
+#define  URL_REQUEST_MODEL_QTY @"https://redant.contrast-inc.com/isales/getTearSheetAvailableQty.htm"
 
 
-#define  URL_CONTACT_LIST  @"https://www.newpacificdirect.com/isales/getAllContact.htm"
-#define  URL_SHIPTO_LIST  @"https://www.newpacificdirect.com/isales/getShipToContact.htm"
+#define  URL_CONTACT_LIST  @"https://redant.contrast-inc.com/isales/getAllContact.htm"
+#define  URL_SHIPTO_LIST  @"https://redant.contrast-inc.com/isales/getShipToContact.htm"
 
-#define  URL_ADDRESS_EDOTOR  @"https://www.newpacificdirect.com/isales/getAddAddress.htm"
-#define  URL_ADDRESS_SAVE  @"https://www.newpacificdirect.com/isales/saveAddress.htm"
+#define  URL_ADDRESS_EDOTOR  @"https://redant.contrast-inc.com/isales/getAddAddress.htm"
+#define  URL_ADDRESS_SAVE  @"https://redant.contrast-inc.com/isales/saveAddress.htm"
 
 
-#define  URL_CREDITCARD_EDOTOR  @"https://www.newpacificdirect.com/isales/creditCard.htm"
-#define  URL_CREDITCARD_SAVE  @"https://www.newpacificdirect.com/isales/saveAddress.htm"
+#define  URL_CREDITCARD_EDOTOR  @"https://redant.contrast-inc.com/isales/creditCard.htm"
+#define  URL_CREDITCARD_SAVE  @"https://redant.contrast-inc.com/isales/saveAddress.htm"
 
 
 
-#define  URL_CUSTOMER_INFO  @"https://www.newpacificdirect.com/isales/getCustomerInfoByContact.htm"
-#define  URL_NEW_CUSTOMER  @"https://www.newpacificdirect.com/isales/getAddCustomer.htm"
-#define  URL_CUSTOMER_SAVE  @"https://www.newpacificdirect.com/isales/saveCustomer.htm"
-#define  URL_UPDATE_CUSTOMER_BCARD  @"https://www.newpacificdirect.com/isales/updateCustomerBusiCard.htm"
-#define  URL_CUSTOMER_ADV_SEARCH @"https://www.newpacificdirect.com/isales/getContactAdvance.htm"
+#define  URL_CUSTOMER_INFO  @"https://redant.contrast-inc.com/isales/getCustomerInfoByContact.htm"
+#define  URL_NEW_CUSTOMER  @"https://redant.contrast-inc.com/isales/getAddCustomer.htm"
+#define  URL_CUSTOMER_SAVE  @"https://redant.contrast-inc.com/isales/saveCustomer.htm"
+#define  URL_UPDATE_CUSTOMER_BCARD  @"https://redant.contrast-inc.com/isales/updateCustomerBusiCard.htm"
+#define  URL_CUSTOMER_ADV_SEARCH @"https://redant.contrast-inc.com/isales/getContactAdvance.htm"
 
 
 
 
 
-#define  URL_ERR_LOG  @"https://www.newpacificdirect.com/isales/er_log.htm"
+#define  URL_ERR_LOG  @"https://redant.contrast-inc.com/isales/er_log.htm"
 
-#define  URL_UPLOAD_IMG  @"https://www.newpacificdirect.com/isales/uploadImg.htm"
+#define  URL_UPLOAD_IMG  @"https://redant.contrast-inc.com/isales/uploadImg.htm"
 
-#define URL_COPY_ORDER @"https://www.newpacificdirect.com/isales/copyOrder.htm"
-#define URL_SIGN_ORDER @"https://www.newpacificdirect.com/isales/updateOrderSign.htm"
-#define  URL_CUSTOMER_UPDATE  @"https://www.newpacificdirect.com/isales/updateCustomer.htm"
-#define  URL_CART_GENERAL_NOTES  @"https://www.newpacificdirect.com/isales/updateGeneralNote.htm"
-#define  URL_CART_ITEM_NOTES  @"https://www.newpacificdirect.com/isales/setItemNotes.htm"
-#define  URL_EDIT_CUSTOMER  @"https://www.newpacificdirect.com/isales/getUpdateCustomerInfoByContact.htm"
-#define  URL_CUSTOMER_PENDINGORDER  @"https://www.newpacificdirect.com/isales/hasPendingOrderByContact.htm"
-#define  URL_PORTFOLIOLIST_REMOVE  @"https://www.newpacificdirect.com/isales/deleteTearSheetPdf.htm"
-#define  URL_NPD_POLICY   @"https://www.newpacificdirect.com/isales/generalPolicy.htm"
+#define URL_COPY_ORDER @"https://redant.contrast-inc.com/isales/copyOrder.htm"
+#define URL_SIGN_ORDER @"https://redant.contrast-inc.com/isales/updateOrderSign.htm"
+#define  URL_CUSTOMER_UPDATE  @"https://redant.contrast-inc.com/isales/updateCustomer.htm"
+#define  URL_CART_GENERAL_NOTES  @"https://redant.contrast-inc.com/isales/updateGeneralNote.htm"
+#define  URL_CART_ITEM_NOTES  @"https://redant.contrast-inc.com/isales/setItemNotes.htm"
+#define  URL_EDIT_CUSTOMER  @"https://redant.contrast-inc.com/isales/getUpdateCustomerInfoByContact.htm"
+#define  URL_CUSTOMER_PENDINGORDER  @"https://redant.contrast-inc.com/isales/hasPendingOrderByContact.htm"
+#define  URL_PORTFOLIOLIST_REMOVE  @"https://redant.contrast-inc.com/isales/deleteTearSheetPdf.htm"
+#define  URL_NPD_POLICY   @"https://redant.contrast-inc.com/isales/generalPolicy.htm"
 
 #define URL_PRIVACY @"https://uwa.united-us.net/site/isales_uwa/privacyPolicy.htm"
 
 
-#define  URL_CHECK_OFFLINE  @"https://www.newpacificdirect.com/offline/initDatas.htm"
+#define  URL_CHECK_OFFLINE  @"https://redant.contrast-inc.com/offline/initDatas.htm"
 
-#define  URL_DOWNLOAD_OFFLINE  @"https://www.newpacificdirect.com/offline/downloadDatas.htm"
+#define  URL_DOWNLOAD_OFFLINE  @"https://redant.contrast-inc.com/offline/downloadDatas.htm"
 
-#define  URL_FINISH_DOWNLOAD_OFFLINE  @"https://www.newpacificdirect.com/offline/confirmVersion.htm"
-#define  URL_UPLOAD_OFFLINE  @"https://www.newpacificdirect.com/offline/uploadOfflineData.htm"
+#define  URL_FINISH_DOWNLOAD_OFFLINE  @"https://redant.contrast-inc.com/offline/confirmVersion.htm"
+#define  URL_UPLOAD_OFFLINE  @"https://redant.contrast-inc.com/offline/uploadOfflineData.htm"
 
-#define  URL_CATEGORYADDALL  @"https://www.newpacificdirect.com/isales/categoryAddAllTo.htm"
-#define  URL_SEARCHADDALL  @"https://www.newpacificdirect.com/isales/searchAddAllTo.htm"
-#define  URL_ITEMSEARCHADDALL @"https://www.newpacificdirect.com/isales/itemSearchAddAllTo.htm"
+#define  URL_CATEGORYADDALL  @"https://redant.contrast-inc.com/isales/categoryAddAllTo.htm"
+#define  URL_SEARCHADDALL  @"https://redant.contrast-inc.com/isales/searchAddAllTo.htm"
+#define  URL_ITEMSEARCHADDALL @"https://redant.contrast-inc.com/isales/itemSearchAddAllTo.htm"
 
-#define URL_SET_PRICE_TYPE @"https://www.newpacificdirect.com/isales/setSeePriceType.htm"
+#define URL_SET_PRICE_TYPE @"https://redant.contrast-inc.com/isales/setSeePriceType.htm"
 
-#define URL_GET_CIVEN_PRICE @"https://www.newpacificdirect.com/isales/getSeeGivenPrice.htm"
+#define URL_GET_CIVEN_PRICE @"https://redant.contrast-inc.com/isales/getSeeGivenPrice.htm"
 
-#define URL_SET_GIVEN_PRICE @"https://www.newpacificdirect.com/isales/setSeeGivenPrice.htm"
+#define URL_SET_GIVEN_PRICE @"https://redant.contrast-inc.com/isales/setSeeGivenPrice.htm"
 
-#define URL_SET_MERGE_ORDER @"https://www.newpacificdirect.com/isales/mergeOrder.htm"
+#define URL_SET_MERGE_ORDER @"https://redant.contrast-inc.com/isales/mergeOrder.htm"
 
-#define URL_REQUEST_LOGIN @"https://www.newpacificdirect.com/isales/requestLogin.htm"
+#define URL_REQUEST_LOGIN @"https://redant.contrast-inc.com/isales/requestLogin.htm"
 
-#define URL_EMAIL_CART @"https://www.newpacificdirect.com/isales/sendCartEmail.htm"
+#define URL_EMAIL_CART @"https://redant.contrast-inc.com/isales/sendCartEmail.htm"
 
-#define URL_NOTIFY_ME @"https://www.newpacificdirect.com/isales/notifyMeEmail.htm"
+#define URL_NOTIFY_ME @"https://redant.contrast-inc.com/isales/notifyMeEmail.htm"
 
-#define URL_EMAIL_WISHLIST @"https://www.newpacificdirect.com/isales/sendWishListEmail.htm"
+#define URL_EMAIL_WISHLIST @"https://redant.contrast-inc.com/isales/sendWishListEmail.htm"
 
-#define URL_BLOG @"https://central.united-us.com/demo/shopping/blog"
+#define URL_BLOG @"https://central.united-us.com/demo/blog"
 
-#define  URL_MOVE_TO_BACK_ORDER @"https://www.newpacificdirect.com/isales/moveToBackOrder.htm"
+#define  URL_MOVE_TO_BACK_ORDER @"https://redant.contrast-inc.com/isales/moveToBackOrder.htm"
 
-#define  URL_BACK_ORDER_PREVIEW  @"https://www.newpacificdirect.com/isales/cartDeliveryBackOrderReview.htm"
+#define  URL_BACK_ORDER_PREVIEW  @"https://redant.contrast-inc.com/isales/cartDeliveryBackOrderReview.htm"
 
 #endif
 

+ 2 - 2
RedAnt ERP Mobile/iSales-CONTRAST/iSales-CONTRAST-Info.plist

@@ -5,7 +5,7 @@
 	<key>CFBundleDevelopmentRegion</key>
 	<string>en</string>
 	<key>CFBundleDisplayName</key>
-	<string>${PRODUCT_NAME}</string>
+	<string>CONTRAST</string>
 	<key>CFBundleExecutable</key>
 	<string>${EXECUTABLE_NAME}</string>
 	<key>CFBundleIdentifier</key>
@@ -17,7 +17,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.96</string>
+	<string>$(MARKETING_VERSION)</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>

+ 4 - 4
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_cover_logo.imageset/Contents.json

@@ -1,8 +1,8 @@
 {
   "images" : [
     {
+      "filename" : "logo2048.png",
       "idiom" : "universal",
-      "filename" : "NPD logo.jpg",
       "scale" : "1x"
     },
     {
@@ -15,7 +15,7 @@
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_cover_logo.imageset/logo2048.png


+ 3 - 4
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_cover_title.imageset/Contents.json

@@ -2,7 +2,6 @@
   "images" : [
     {
       "idiom" : "universal",
-      "filename" : "Logo NPD-5.png",
       "scale" : "1x"
     },
     {
@@ -15,7 +14,7 @@
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

+ 4 - 4
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_logo_s.imageset/Contents.json

@@ -1,8 +1,8 @@
 {
   "images" : [
     {
+      "filename" : "logo235.png",
       "idiom" : "universal",
-      "filename" : "NPD logo(1).jpg",
       "scale" : "1x"
     },
     {
@@ -15,7 +15,7 @@
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/portfolio_logo_s.imageset/logo235.png


+ 4 - 4
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/salesorder_logo.imageset/Contents.json

@@ -1,8 +1,8 @@
 {
   "images" : [
     {
+      "filename" : "logo500.png",
       "idiom" : "universal",
-      "filename" : "npd(1).png",
       "scale" : "1x"
     },
     {
@@ -15,7 +15,7 @@
     }
   ],
   "info" : {
-    "version" : 1,
-    "author" : "xcode"
+    "author" : "xcode",
+    "version" : 1
   }
-}
+}

BIN
RedAnt ERP Mobile/iSales-CONTRAST/pdfcreator.xcassets/salesorder_logo.imageset/logo500.png


+ 196 - 193
RedAnt ERP Mobile/iSales-NPD/Base.lproj/OLM.storyboard

@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="19162" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15510"/>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="19144"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -75,7 +76,7 @@
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Kdt-hI-Mna">
+                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Kdt-hI-Mna">
                                 <rect key="frame" x="663" y="212" width="85" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <state key="normal" title="Submit local"/>
@@ -94,12 +95,12 @@
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Vzg-50-bc2">
+                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Vzg-50-bc2">
                                 <rect key="frame" x="666" y="164" width="82" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <state key="normal" title="Clear cache"/>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jns-5C-X4w">
+                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jns-5C-X4w">
                                 <rect key="frame" x="616" y="115" width="132" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <state key="normal" title="Sync"/>
@@ -111,7 +112,7 @@
                                 <rect key="frame" x="217" y="71" width="51" height="31"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                             </switch>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cIN-uF-BHa">
+                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cIN-uF-BHa">
                                 <rect key="frame" x="666" y="262" width="82" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <state key="normal" title="Unlock"/>
@@ -175,7 +176,7 @@
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
                             </textView>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yLy-4Y-3J0">
+                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yLy-4Y-3J0">
                                 <rect key="frame" x="0.0" y="989" width="768" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
                                 <state key="normal" title="Close">
@@ -237,7 +238,7 @@
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0lX-Gd-bGG">
+                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0lX-Gd-bGG">
                                 <rect key="frame" x="639" y="974" width="109" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
                                 <state key="normal" title="Send log"/>
@@ -283,7 +284,7 @@
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="SelectOrderTableViewCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SelectOrderTableViewCell" rowHeight="86" id="XXr-fU-67o" customClass="SelectOrderTableViewCell">
-                                        <rect key="frame" x="0.0" y="28" width="768" height="86"/>
+                                        <rect key="frame" x="0.0" y="44.5" width="768" height="86"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="XXr-fU-67o" id="Ohn-hG-mj9">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="86"/>
@@ -300,7 +301,7 @@
                                                     <rect key="frame" x="10" y="32" width="21" height="21"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <state key="normal" image="button:hrK-DY-RbO:image"/>
-                                                    <state key="selected" image="F98E441C-4D11-4D14-B99F-97F28016D53D"/>
+                                                    <state key="selected" image="D7B231FC-53DF-41CD-B3DC-EC892BFA0A8B"/>
                                                     <connections>
                                                         <action selector="checkButtonClick:" destination="XXr-fU-67o" eventType="touchUpInside" id="KeU-ld-H4J"/>
                                                     </connections>
@@ -410,7 +411,7 @@
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="snZ-xL-t2m">
+                            <button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="snZ-xL-t2m">
                                 <rect key="frame" x="248" y="65" width="172" height="30"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <state key="normal" title="Retrieve password">
@@ -418,7 +419,7 @@
                                     <color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 </state>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="06f-pS-V71">
+                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="06f-pS-V71">
                                 <rect key="frame" x="358" y="267" width="102" height="36"/>
                                 <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="20"/>
@@ -441,14 +442,14 @@
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="LoginListCell" textLabel="hql-hH-AXh" style="IBUITableViewCellStyleDefault" id="0HM-qr-ZyP">
-                                        <rect key="frame" x="0.0" y="28" width="360" height="44"/>
+                                        <rect key="frame" x="0.0" y="44.5" width="360" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="0HM-qr-ZyP" id="qg6-aD-3QW">
                                             <rect key="frame" x="0.0" y="0.0" width="360" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hql-hH-AXh">
-                                                    <rect key="frame" x="15" y="0.0" width="330" height="44"/>
+                                                    <rect key="frame" x="16" y="0.0" width="328" height="44"/>
                                                     <autoresizingMask key="autoresizingMask"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -462,7 +463,7 @@
                         </subviews>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     </view>
-                    <navigationItem key="navigationItem" title="NPD" id="ANt-1h-Ffe">
+                    <navigationItem key="navigationItem" title="Unlock Offline" id="ANt-1h-Ffe">
                         <barButtonItem key="rightBarButtonItem" image="close" style="plain" id="i0p-qZ-6mR">
                             <connections>
                                 <action selector="CloseClick:" destination="38J-Bm-huX" id="RRH-EO-4ga"/>
@@ -491,7 +492,7 @@
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         <subviews>
                             <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="User" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="0P5-Qd-woU">
-                                <rect key="frame" x="60" y="103" width="360" height="30"/>
+                                <rect key="frame" x="60" y="123" width="360" height="30"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="HFC-Yu-Rkv"/>
@@ -503,13 +504,13 @@
                                 </connections>
                             </textField>
                             <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="bSE-AA-Y8D">
-                                <rect key="frame" x="60" y="142" width="360" height="34"/>
+                                <rect key="frame" x="60" y="162" width="360" height="34"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                 <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
                             </textField>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Elo-d8-kBi">
-                                <rect key="frame" x="60" y="200" width="360" height="22"/>
+                                <rect key="frame" x="60" y="220" width="360" height="22"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="22" id="XeE-bY-YkU"/>
                                 </constraints>
@@ -521,7 +522,7 @@
                                 </state>
                             </button>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z2w-2n-SST">
-                                <rect key="frame" x="295" y="200" width="125" height="22"/>
+                                <rect key="frame" x="296" y="220" width="124" height="22"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="22" id="x3I-Ae-w2r"/>
                                 </constraints>
@@ -533,7 +534,7 @@
                                 </state>
                             </button>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Sign in" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="knf-cd-xPX">
-                                <rect key="frame" x="60" y="67" width="59" height="26"/>
+                                <rect key="frame" x="60" y="87" width="59" height="26"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="26" id="qI6-Ph-C1i"/>
                                 </constraints>
@@ -541,8 +542,8 @@
                                 <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vs9-qY-X1G">
-                                <rect key="frame" x="294" y="65.5" width="126" height="30"/>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vs9-qY-X1G">
+                                <rect key="frame" x="294" y="85.5" width="126" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="W9d-yI-RqE"/>
                                 </constraints>
@@ -554,7 +555,7 @@
                                     <action selector="onRetrievePassword:" destination="9zU-md-xm6" eventType="touchUpInside" id="RhK-Rw-qkS"/>
                                 </connections>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DaC-RK-NlU" customClass="DefaultImageButton">
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DaC-RK-NlU" customClass="DefaultImageButton">
                                 <rect key="frame" x="358" y="270" width="102" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="102" id="0lT-dg-F5n"/>
@@ -575,18 +576,18 @@
                                 </connections>
                             </button>
                             <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="UVr-TH-Sj9">
-                                <rect key="frame" x="60" y="133" width="360" height="129"/>
+                                <rect key="frame" x="60" y="153" width="360" height="109"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="LoginListCell" textLabel="cA5-3m-gXL" style="IBUITableViewCellStyleDefault" id="ujk-JC-KZi">
-                                        <rect key="frame" x="0.0" y="28" width="360" height="44"/>
+                                        <rect key="frame" x="0.0" y="44.5" width="360" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ujk-JC-KZi" id="obH-Uq-6vJ">
                                             <rect key="frame" x="0.0" y="0.0" width="360" height="44"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
                                                 <label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Title" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="cA5-3m-gXL">
-                                                    <rect key="frame" x="15" y="0.0" width="330" height="44"/>
+                                                    <rect key="frame" x="16" y="0.0" width="328" height="44"/>
                                                     <autoresizingMask key="autoresizingMask"/>
                                                     <fontDescription key="fontDescription" type="system" pointSize="16"/>
                                                     <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
@@ -616,6 +617,7 @@
                                 </connections>
                             </button>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="Imi-b7-qNe"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                             <constraint firstItem="Z2w-2n-SST" firstAttribute="bottom" secondItem="Elo-d8-kBi" secondAttribute="bottom" id="0w6-7l-11T"/>
@@ -642,7 +644,6 @@
                             <constraint firstItem="vs9-qY-X1G" firstAttribute="trailing" secondItem="0P5-Qd-woU" secondAttribute="trailing" id="urZ-dC-Er3"/>
                             <constraint firstItem="UVr-TH-Sj9" firstAttribute="top" secondItem="0P5-Qd-woU" secondAttribute="bottom" id="wZF-hZ-EBX"/>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="Imi-b7-qNe"/>
                     </view>
                     <navigationItem key="navigationItem" title="NPD" id="ziz-8O-kl9">
                         <barButtonItem key="rightBarButtonItem" image="close" style="plain" id="9Vc-xr-KiD">
@@ -671,94 +672,95 @@
         </scene>
     </scenes>
     <resources>
-        <image name="F98E441C-4D11-4D14-B99F-97F28016D53D" width="24" height="24">
+        <image name="D7B231FC-53DF-41CD-B3DC-EC892BFA0A8B" width="24" height="24">
             <mutableData key="keyedArchiveRepresentation">
 YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T
-S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCgpMDM2PD9VJG51bGzWDQ4PEBESExQVFhcYVk5T
+S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCkqMTQ3PUBVJG51bGzWDQ4PEBESExQVFhcYVk5T
 U2l6ZV5OU1Jlc2l6aW5nTW9kZVYkY2xhc3NcTlNJbWFnZUZsYWdzVk5TUmVwc1dOU0NvbG9ygAIQAIAN
-EiDAAACAA4ALWHsyNCwgMjR90hsPHB5aTlMub2JqZWN0c6EdgASACtIbDyAjoiEigAWABoAJ0iUPJidf
-EBROU1RJRkZSZXByZXNlbnRhdGlvboAHgAhPERG2TU0AKgAACQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAcHBxcVFRVIKSkpgkdHR+NISEjnKSkphRcXF0sICAgZAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0tLi4uk0ZGRt9QUFD/UlJS/1BQ
-UP9QUFD/UlJS/1BQUP9HR0fgLy8vlw8PDzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAgICCCcnJ31LS0vuU1NT/1FRUf9PT0//T09P/09PT/9PT0//T09P/09PT/9RUVH/U1NT/0xM
-TPEoKCiEAwMDCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQQNjY2q1NTU/9QUFD/T09P/09P
-T/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/1BQUP9TU1P/ODg4sgYGBhQAAAAAAAAAAAAA
-AAAAAAAAAAAAAAICAgk2NjarVFRU/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09P
-T/9PT0//T09P/09PT/9OTk7/UVFR/zg4OLMDAwMLAAAAAAAAAAAAAAAAAAAAACYmJnxTU1P/T09P/09P
-T/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/0xMTP9WVlb/X19f/1JS
-Uv8oKCiGAAAAAAAAAAAAAAAADAwMK0pKSu5QUFD/T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09P
-T/9PT0//T09P/09PT/9PT0//SkpK/29vb//Z2dn/7+/v/5KSkv9ISEjyDw8PMwAAAAAAAAAALS0tklNT
-U/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9KSkr/cHBw/+np
-6f///////////8fHx/9PT0//MDAwnAAAAAAGBgYVRUVF3lFRUf9OTk7/SkpK/0pKSv9OTk7/T09P/09P
-T/9PT0//T09P/09PT/9PT0//T09P/0pKSv9wcHD/6enp////////////+/v7/4eHh/9NTU3/R0dH5QgI
-CBoUFBRET09P/E5OTv9TU1P/lZWV/52dnf9TU1P/TU1N/09PT/9PT0//T09P/09PT/9PT0//SkpK/3Bw
-cP/q6ur////////////8/Pz/lZWV/0xMTP9PT0//UFBQ/xgYGFAmJiZ8UlJS/0pKSv+cnJz/////////
-//+3t7f/UFBQ/01NTf9PT0//T09P/09PT/9KSkr/cHBw/+rq6v////////////z8/P+Wlpb/S0tL/05O
-Tv9PT0//UlJS/y8vL5YwMDCbUlJS/0tLS/+xsbH/////////////////t7e3/1BQUP9NTU3/T09P/0pK
-Sv9wcHD/6urq/////////////Pz8/5aWlv9LS0v/Tk5O/09PT/9PT0//T09P/0xMTPswMDCbUlJS/01N
-Tf9ZWVn/ysrK/////////////////7u7u/9RUVH/R0dH/3BwcP/s7Oz////////////8/Pz/k5OT/0tL
-S/9OTk7/T09P/09PT/9PT0//T09P/0xMTPsmJiZ8UlJS/09PT/9MTEz/WFhY/8rKyv//////////////
-//+3t7f/dnZ2/+rq6v////////////z8/P+Tk5P/S0tL/05OTv9PT0//T09P/09PT/9PT0//UlJS/y8v
-L5YUFBRET09P/FBQUP9PT0//TExM/1hYWP/Lysr/////////////////+vr6/////////////Pz8/5OT
-k/9LS0v/Tk5O/09PT/9PT0//T09P/09PT/9PT0//UFBQ/xgYGFAGBgYVRUVF3lFRUf9PT0//T09P/0xM
-TP9YWFj/y8vK///////////////////////8/Pz/k5OT/0tLS/9OTk7/T09P/09PT/9PT0//T09P/09P
-T/9RUVH/R0dH5QgICBoAAAAALS0tklNTU/9PT0//T09P/09PT/9NTU3/WFhY/8vKyv////////////7+
-/v+RkZH/S0tL/05OTv9PT0//T09P/09PT/9PT0//T09P/09PT/9TU1P/MDAwnAAAAAAAAAAADAwMK0pK
-Su5QUFD/T09P/09PT/9PT0//TExM/1hYWP/FxcX/7Ozs/5CQkP9LS0v/Tk5O/09PT/9PT0//T09P/09P
-T/9PT0//T09P/1BQUP9MTEzyDw8PMwAAAAAAAAAAAAAAACYmJnxTU1P/T09P/09PT/9PT0//T09P/01N
-Tf9SUlL/XV1d/0xMTP9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/1NTU/8oKCiGAAAAAAAA
-AAAAAAAAAAAAAAICAgk2NjarVFRU/09PT/9PT0//T09P/09PT/9OTk7/TU1N/09PT/9PT0//T09P/09P
-T/9PT0//T09P/09PT/9PT0//VFRU/zg4OLMDAwMLAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQQNjY2q1NT
-U/9QUFD/T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/1BQUP9TU1P/ODg4sgYG
-BhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICCCcnJ31LS0vuU1NT/1FRUf9PT0//T09P/09P
-T/9PT0//T09P/09PT/9RUVH/U1NT/0xMTPEoKCiEAwMDCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAANDQ0tLi4uk0ZGRt9QUFD/UlJS/1JSUv9SUlL/UlJS/1BQUP9HR0fgLy8vlw8P
-DzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcH
-BxcWFhZJKSkpgjExMZ0xMTGdKSkphRcXF0wICAgZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAEAEAAAMAAAABABgAAAEBAAMAAAABABgAAAECAAMAAAAEAAAJzgEDAAMAAAABAAEAAAEGAAMAAAAB
-AAIAAAEKAAMAAAABAAEAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAAB
-ABgAAAEXAAQAAAABAAAJAAEcAAMAAAABAAEAAAEoAAMAAAABAAIAAAFSAAMAAAABAAEAAAFTAAMAAAAE
-AAAJ1odzAAcAAAfYAAAJ3gAAAAAACAAIAAgACAABAAEAAQABAAAH2GFwcGwCIAAAbW50clJHQiBYWVog
-B9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABv
-ZHNjbQAAAXgAAAWcY3BydAAABxQAAAA4d3RwdAAAB0wAAAAUclhZWgAAB2AAAAAUZ1hZWgAAB3QAAAAU
-YlhZWgAAB4gAAAAUclRSQwAAB5wAAAAOY2hhZAAAB6wAAAAsYlRSQwAAB5wAAAAOZ1RSQwAAB5wAAAAO
-ZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2Zp
-bGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAA
-AAAAHwAAAAxza1NLAAAAKAAAAYRkYURLAAAALgAAAaxjYUVTAAAAJAAAAdp2aVZOAAAAJAAAAf5wdEJS
-AAAAJgAAAiJ1a1VBAAAAKgAAAkhmckZVAAAAKAAAAnJodUhVAAAAKAAAApp6aFRXAAAAFgAAAsJuYk5P
-AAAAJgAAAthjc0NaAAAAIgAAAv5oZUlMAAAAHgAAAyBpdElUAAAAKAAAAz5yb1JPAAAAJAAAA2ZkZURF
-AAAALAAAA4prb0tSAAAAFgAAA7ZzdlNFAAAAJgAAAth6aENOAAAAFgAAA8xqYUpQAAAAGgAAA+JlbEdS
-AAAAIgAAA/xwdFBPAAAAJgAABB5ubE5MAAAAKAAABERlc0VTAAAAJgAABB50aFRIAAAAJAAABGx0clRS
-AAAAIgAABJBmaUZJAAAAKAAABLJockhSAAAAKAAABNpwbFBMAAAALAAABQJydVJVAAAAIgAABS5hckVH
-AAAAJgAABVBlblVTAAAAJgAABXYAVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBs
-AEcAZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBzAGsAcgBpAHYAZQBsAHMAZQBQAGUAcgBmAGkAbAAg
-AFIARwBCACAAZwBlAG4A6AByAGkAYwBDHqUAdQAgAGgA7ABuAGgAIABSAEcAQgAgAEMAaAB1AG4AZwBQ
-AGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRA
-BD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQgDB
-AGwAdABhAGwA4QBuAG8AcwAgAFIARwBCACAAcAByAG8AZgBpAGyQGnUoACAAUgBHAEIAIIJyX2ljz4/w
-AEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8AZgBpAGwATwBiAGUAYwBuAP0AIABSAEcAQgAg
-AHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAAUgBHAEIAIAXbBdwF3AXZAFAAcgBvAGYAaQBsAG8AIABS
-AEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBQAHIAbwBmAGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBB
-AGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsx3y8GAAgAFIARwBCACDVBLhc
-0wzHfGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wOTA7UDvQO5
-A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBp
-AGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAg
-AFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABl
-AGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBHAGUAbgBlAHIAaQENAGsAaQAgAFIARwBC
-ACAAcAByAG8AZgBpAGwAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcAByAG8AZgBpAGwAIABSAEcAQgQe
-BDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBHAEIGRQZEBkEAIAYqBjkGMQZKBkEAIABSAEcAQgAg
-BicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBHAEIAIABQAHIAbwBmAGkAbABldGV4dAAAAABDb3B5
-cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAA
-AAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWf
-AAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPc
-AADAbNIqKywtWiRjbGFzc25hbWVYJGNsYXNzZXNfEBBOU0JpdG1hcEltYWdlUmVwoywuL1pOU0ltYWdl
-UmVwWE5TT2JqZWN00iorMTJXTlNBcnJheaIxL9IqKzQ1Xk5TTXV0YWJsZUFycmF5ozQxL9M3OA85OjtX
-TlNXaGl0ZVxOU0NvbG9yU3BhY2VEMCAwABADgAzSKis9PldOU0NvbG9yoj0v0iorQEFXTlNJbWFnZaJA
-LwAIABEAGgAkACkAMgA3AEkATABRAFMAYgBoAHUAfACLAJIAnwCmAK4AsACyALQAuQC7AL0AxgDLANYA
-2ADaANwA4QDkAOYA6ADqAO8BBgEIAQoSxBLJEtQS3RLwEvQS/xMIEw0TFRMYEx0TLBMwEzcTPxNME1ET
-UxNVE1oTYhNlE2oTcgAAAAAAAAIBAAAAAAAAAEIAAAAAAAAAAAAAAAAAABN1A
+EiDAAACAA4ALWHsyNCwgMjR90hsPHB5aTlMub2JqZWN0c6EdgASACtIbDyAjoiEigAWABoAJ0w8lJico
+FF8QFE5TVElGRlJlcHJlc2VudGF0aW9uXxAZTlNJbnRlcm5hbExheW91dERpcmVjdGlvboAIgAdPERG2
+TU0AKgAACQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBxcVFRVIKSkpgkdHR+NISEjn
+KSkphRcXF0sICAgZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAANDQ0tLi4uk0ZGRt9QUFD/UlJS/1BQUP9QUFD/UlJS/1BQUP9HR0fgLy8vlw8PDzEAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICCCcnJ31LS0vuU1NT/1FRUf9PT0//
+T09P/09PT/9PT0//T09P/09PT/9RUVH/U1NT/0xMTPEoKCiEAwMDCwAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAEBAQQNjY2q1NTU/9QUFD/T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//
+T09P/1BQUP9TU1P/ODg4sgYGBhQAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgk2NjarVFRU/09PT/9PT0//
+T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9OTk7/UVFR/zg4OLMDAwML
+AAAAAAAAAAAAAAAAAAAAACYmJnxTU1P/T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//
+T09P/09PT/9PT0//T09P/0xMTP9WVlb/X19f/1JSUv8oKCiGAAAAAAAAAAAAAAAADAwMK0pKSu5QUFD/
+T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//SkpK/29vb//Z2dn/
+7+/v/5KSkv9ISEjyDw8PMwAAAAAAAAAALS0tklNTU/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//
+T09P/09PT/9PT0//T09P/09PT/9KSkr/cHBw/+np6f///////////8fHx/9PT0//MDAwnAAAAAAGBgYV
+RUVF3lFRUf9OTk7/SkpK/0pKSv9OTk7/T09P/09PT/9PT0//T09P/09PT/9PT0//T09P/0pKSv9wcHD/
+6enp////////////+/v7/4eHh/9NTU3/R0dH5QgICBoUFBRET09P/E5OTv9TU1P/lZWV/52dnf9TU1P/
+TU1N/09PT/9PT0//T09P/09PT/9PT0//SkpK/3BwcP/q6ur////////////8/Pz/lZWV/0xMTP9PT0//
+UFBQ/xgYGFAmJiZ8UlJS/0pKSv+cnJz///////////+3t7f/UFBQ/01NTf9PT0//T09P/09PT/9KSkr/
+cHBw/+rq6v////////////z8/P+Wlpb/S0tL/05OTv9PT0//UlJS/y8vL5YwMDCbUlJS/0tLS/+xsbH/
+////////////////t7e3/1BQUP9NTU3/T09P/0pKSv9wcHD/6urq/////////////Pz8/5aWlv9LS0v/
+Tk5O/09PT/9PT0//T09P/0xMTPswMDCbUlJS/01NTf9ZWVn/ysrK/////////////////7u7u/9RUVH/
+R0dH/3BwcP/s7Oz////////////8/Pz/k5OT/0tLS/9OTk7/T09P/09PT/9PT0//T09P/0xMTPsmJiZ8
+UlJS/09PT/9MTEz/WFhY/8rKyv////////////////+3t7f/dnZ2/+rq6v////////////z8/P+Tk5P/
+S0tL/05OTv9PT0//T09P/09PT/9PT0//UlJS/y8vL5YUFBRET09P/FBQUP9PT0//TExM/1hYWP/Lysr/
+////////////////+vr6/////////////Pz8/5OTk/9LS0v/Tk5O/09PT/9PT0//T09P/09PT/9PT0//
+UFBQ/xgYGFAGBgYVRUVF3lFRUf9PT0//T09P/0xMTP9YWFj/y8vK///////////////////////8/Pz/
+k5OT/0tLS/9OTk7/T09P/09PT/9PT0//T09P/09PT/9RUVH/R0dH5QgICBoAAAAALS0tklNTU/9PT0//
+T09P/09PT/9NTU3/WFhY/8vKyv////////////7+/v+RkZH/S0tL/05OTv9PT0//T09P/09PT/9PT0//
+T09P/09PT/9TU1P/MDAwnAAAAAAAAAAADAwMK0pKSu5QUFD/T09P/09PT/9PT0//TExM/1hYWP/FxcX/
+7Ozs/5CQkP9LS0v/Tk5O/09PT/9PT0//T09P/09PT/9PT0//T09P/1BQUP9MTEzyDw8PMwAAAAAAAAAA
+AAAAACYmJnxTU1P/T09P/09PT/9PT0//T09P/01NTf9SUlL/XV1d/0xMTP9PT0//T09P/09PT/9PT0//
+T09P/09PT/9PT0//T09P/1NTU/8oKCiGAAAAAAAAAAAAAAAAAAAAAAICAgk2NjarVFRU/09PT/9PT0//
+T09P/09PT/9OTk7/TU1N/09PT/9PT0//T09P/09PT/9PT0//T09P/09PT/9PT0//VFRU/zg4OLMDAwML
+AAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQQNjY2q1NTU/9QUFD/T09P/09PT/9PT0//T09P/09PT/9PT0//
+T09P/09PT/9PT0//T09P/1BQUP9TU1P/ODg4sgYGBhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AgICCCcnJ31LS0vuU1NT/1FRUf9PT0//T09P/09PT/9PT0//T09P/09PT/9RUVH/U1NT/0xMTPEoKCiE
+AwMDCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0tLi4uk0ZGRt9QUFD/
+UlJS/1JSUv9SUlL/UlJS/1BQUP9HR0fgLy8vlw8PDzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBxcWFhZJKSkpgjExMZ0xMTGdKSkphRcXF0wICAgZ
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAMAAAABABgAAAEBAAMAAAABABgAAAEC
+AAMAAAAEAAAJzgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAEKAAMAAAABAAEAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABgAAAEXAAQAAAABAAAJAAEcAAMAAAABAAEAAAEo
+AAMAAAABAAIAAAFSAAMAAAABAAEAAAFTAAMAAAAEAAAJ1odzAAcAAAfYAAAJ3gAAAAAACAAIAAgACAAB
+AAEAAQABAAAH2GFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAA
+AAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNjbQAAAXgAAAWcY3BydAAABxQAAAA4d3RwdAAA
+B0wAAAAUclhZWgAAB2AAAAAUZ1hZWgAAB3QAAAAUYlhZWgAAB4gAAAAUclRSQwAAB5wAAAAOY2hhZAAA
+B6wAAAAsYlRSQwAAB5wAAAAOZ1RSQwAAB5wAAAAOZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmls
+ZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAHwAAAAxza1NLAAAAKAAAAYRkYURLAAAALgAA
+AaxjYUVTAAAAJAAAAdp2aVZOAAAAJAAAAf5wdEJSAAAAJgAAAiJ1a1VBAAAAKgAAAkhmckZVAAAAKAAA
+AnJodUhVAAAAKAAAApp6aFRXAAAAFgAAAsJuYk5PAAAAJgAAAthjc0NaAAAAIgAAAv5oZUlMAAAAHgAA
+AyBpdElUAAAAKAAAAz5yb1JPAAAAJAAAA2ZkZURFAAAALAAAA4prb0tSAAAAFgAAA7ZzdlNFAAAAJgAA
+Ath6aENOAAAAFgAAA8xqYUpQAAAAGgAAA+JlbEdSAAAAIgAAA/xwdFBPAAAAJgAABB5ubE5MAAAAKAAA
+BERlc0VTAAAAJgAABB50aFRIAAAAJAAABGx0clRSAAAAIgAABJBmaUZJAAAAKAAABLJockhSAAAAKAAA
+BNpwbFBMAAAALAAABQJydVJVAAAAIgAABS5hckVHAAAAJgAABVBlblVTAAAAJgAABXYAVgFhAGUAbwBi
+AGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcAZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBz
+AGsAcgBpAHYAZQBsAHMAZQBQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBDHqUAdQAg
+AGgA7ABuAGgAIABSAEcAQgAgAEMAaAB1AG4AZwBQAGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QBy
+AGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBs
+ACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQgDBAGwAdABhAGwA4QBuAG8AcwAgAFIARwBCACAAcABy
+AG8AZgBpAGyQGnUoACAAUgBHAEIAIIJyX2ljz4/wAEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcABy
+AG8AZgBpAGwATwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAAUgBH
+AEIAIAXbBdwF3AXZAFAAcgBvAGYAaQBsAG8AIABSAEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBQAHIAbwBm
+AGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAt
+AFAAcgBvAGYAaQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIs
+ACAAUgBHAEIAIDDXMO0w1TChMKQw6wOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABl
+AHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAt
+AHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBs
+ACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBp
+AGwAaQBHAGUAbgBlAHIAaQENAGsAaQAgAFIARwBCACAAcAByAG8AZgBpAGwAVQBuAGkAdwBlAHIAcwBh
+AGwAbgB5ACAAcAByAG8AZgBpAGwAIABSAEcAQgQeBDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBH
+AEIGRQZEBkEAIAYqBjkGMQZKBkEAIABSAEcAQgAgBicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBH
+AEIAIABQAHIAbwBmAGkAbABldGV4dAAAAABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmln
+aHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAA
+AAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAAB
+DEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbNIrLC0uWiRjbGFzc25hbWVYJGNsYXNzZXNf
+EBBOU0JpdG1hcEltYWdlUmVwoy0vMFpOU0ltYWdlUmVwWE5TT2JqZWN00issMjNXTlNBcnJheaIyMNIr
+LDU2Xk5TTXV0YWJsZUFycmF5ozUyMNM4OQ86OzxXTlNXaGl0ZVxOU0NvbG9yU3BhY2VEMCAwABADgAzS
+Kyw+P1dOU0NvbG9yoj4w0issQUJXTlNJbWFnZaJBMAAIABEAGgAkACkAMgA3AEkATABRAFMAYgBoAHUA
+fACLAJIAnwCmAK4AsACyALQAuQC7AL0AxgDLANYA2ADaANwA4QDkAOYA6ADqAPEBCAEkASYBKBLiEucS
+8hL7Ew4TEhMdEyYTKxMzEzYTOxNKE04TVRNdE2oTbxNxE3MTeBOAE4MTiBOQAAAAAAAAAgEAAAAAAAAA
+QwAAAAAAAAAAAAAAAAAAE5M
 </mutableData>
         </image>
         <image name="btn_ok" width="102" height="30"/>
@@ -766,91 +768,92 @@ UxNVE1oTYhNlE2oTcgAAAAAAAAIBAAAAAAAAAEIAAAAAAAAAAAAAAAAAABN1A
         <image name="button:hrK-DY-RbO:image" width="24" height="24">
             <mutableData key="keyedArchiveRepresentation">
 YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T
-S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCgpMDM2PD9VJG51bGzWDQ4PEBESExQVFhcYVk5T
+S2V5ZWRBcmNoaXZlctEICVRyb290gAGuCwwZGh8UJCkqMTQ3PUBVJG51bGzWDQ4PEBESExQVFhcYVk5T
 U2l6ZV5OU1Jlc2l6aW5nTW9kZVYkY2xhc3NcTlNJbWFnZUZsYWdzVk5TUmVwc1dOU0NvbG9ygAIQAIAN
-EiDAAACAA4ALWHsyNCwgMjR90hsPHB5aTlMub2JqZWN0c6EdgASACtIbDyAjoiEigAWABoAJ0iUPJidf
-EBROU1RJRkZSZXByZXNlbnRhdGlvboAHgAhPERG2TU0AKgAACQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAA8NCxQzMCw/YVxYdYaAeqCHgHuiZF1adzUyL0IPDg0WAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgHBspdW9th7m1scjY1NPh4N3d5d/d
-2+Pd3dzi39/d5djV1OG6t7PLeXRwiyMhHi0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAABAMDB2BbV3PIw8HY4+Ph59/g4ODc3N3d29vb29vb29vb29vb29vb29zc3Nzf4ODg4uLh5srI
-xNpmYV55BgUECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQcOh4J9m9/d3ejf39/f29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb297f39/h4N3pj4iEowwLCRAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAUEBAiGgH2b4+Ph6dzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vc3Nzc5OPi6I+IhaMHBgUKAAAAAAAAAAAAAAAAAAAAAF5aVnDf3t3o3Nzd3dvb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3OLf
-3uhnYV16AAAAAAAAAAAAAAAAHhsZJ8fCvtfe39/f29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb297e39/NycXbJCEfLgAAAAAAAAAAcmxphOPj
-4efb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vi4uLme3ZyjgAAAAANDAkSt7Oux+Dh4OHb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vf3+DgvLi0zRAP
-DRcvLCk81tPR4Nzd3d3b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vc3N3d2dXT4jk0MkZcVlFv393c5dvb29vb29vb29vb29vb
+EiDAAACAA4ALWHsyNCwgMjR90hsPHB5aTlMub2JqZWN0c6EdgASACtIbDyAjoiEigAWABoAJ0w8lJico
+FF8QFE5TVElGRlJlcHJlc2VudGF0aW9uXxAZTlNJbnRlcm5hbExheW91dERpcmVjdGlvboAIgAdPERG2
+TU0AKgAACQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8NCxQzMCw/YVxYdYaAeqCHgHui
+ZF1adzUyL0IPDg0WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAgHBspdW9th7m1scjY1NPh4N3d5d/d2+Pd3dzi39/d5djV1OG6t7PLeXRwiyMhHi0AAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAMDB2BbV3PIw8HY4+Ph59/g4ODc3N3d
+29vb29vb29vb29vb29vb29zc3Nzf4ODg4uLh5srIxNpmYV55BgUECgAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAJCQcOh4J9m9/d3ejf39/f29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb297f39/h4N3pj4iEowwLCRAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEBAiGgH2b4+Ph6dzc3Nzb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc5OPi6I+IhaMHBgUK
+AAAAAAAAAAAAAAAAAAAAAF5aVnDf3t3o3Nzd3dvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3OLf3uhnYV16AAAAAAAAAAAAAAAAHhsZJ8fCvtfe39/f
 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb4N/d5WljXn13cGyO39/f5Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29va37CnntV3cGyO39/f5Nvb
+29vb297e39/NycXbJCEfLgAAAAAAAAAAcmxphOPj4efb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vi4uLme3ZyjgAAAAANDAkS
+t7Oux+Dh4OHb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vf3+DgvLi0zRAPDRcvLCk81tPR4Nzd3d3b29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3N3d
+2dXT4jk0MkZcVlFv393c5dvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb4N/d5WljXn13cGyO39/f5Nvb29vb29vb
 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29va37CnntVcVlFv393c5dvb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb4N/d5Wlj
-Xn0vLCk81tPR4Nzd3d3b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vc3N3d2dXT4jk2MUYNDAkSt7Oux+Dh4OHb29vb29vb29vb
+29vb29vb29vb29vb29va37CnntV3cGyO39/f5Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29va37CnntVcVlFv
+393c5dvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb4N/d5WljXn0vLCk81tPR4Nzd3d3b29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3N3d
+2dXT4jk2MUYNDAkSt7Oux+Dh4OHb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vf3+DgvLi0zRAPDhcAAAAAcmxphOPj4efb29vb
 29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vf3+DgvLi0zRAPDhcAAAAAcmxphOPj4efb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vi4uLme3ZyjgAAAAAAAAAAHhsZJ8fC
-vtfe39/f29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb297e39/MycXcJCEfLgAAAAAAAAAAAAAAAF5aVnDf3t3o3Nzd3dvb29vb29vb29vb29vb
-29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3OLf3uhnYV16AAAAAAAA
-AAAAAAAAAAAAAAUEBAiGgH2b4+Ph6dzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
-29vb29vb29vb29vb29vc3Nzc5OPi6I+IhaMHBgUKAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQgOh4J9m9/d
-3ejf39/f29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb297f39/h4N3pj4iEowwL
-CRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAMDB2BbV3PIw8HY4+Ph59/g4ODc3N3d29vb29vb
-29vb29vb29vb29zc3Nzf4ODg4uLh5srIxNpmYV55BgUECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAgHBspdW9th7m1scjY1NPh393d5d/f3+Tf39/k393d5djV1OG6t7PLeXNwiyMh
-Hi0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8N
-CxQzMCw/YlxZdX13cpV+eHKWZF5adzUyL0IPDg0WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAEAEAAAMAAAABABgAAAEBAAMAAAABABgAAAECAAMAAAAEAAAJzgEDAAMAAAABAAEAAAEGAAMAAAAB
-AAIAAAEKAAMAAAABAAEAAAERAAQAAAABAAAACAESAAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAAB
-ABgAAAEXAAQAAAABAAAJAAEcAAMAAAABAAEAAAEoAAMAAAABAAIAAAFSAAMAAAABAAEAAAFTAAMAAAAE
-AAAJ1odzAAcAAAfYAAAJ3gAAAAAACAAIAAgACAABAAEAAQABAAAH2GFwcGwCIAAAbW50clJHQiBYWVog
-B9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBs
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABv
-ZHNjbQAAAXgAAAWcY3BydAAABxQAAAA4d3RwdAAAB0wAAAAUclhZWgAAB2AAAAAUZ1hZWgAAB3QAAAAU
-YlhZWgAAB4gAAAAUclRSQwAAB5wAAAAOY2hhZAAAB6wAAAAsYlRSQwAAB5wAAAAOZ1RSQwAAB5wAAAAO
-ZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmlsZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2Zp
-bGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAA
-AAAAHwAAAAxza1NLAAAAKAAAAYRkYURLAAAALgAAAaxjYUVTAAAAJAAAAdp2aVZOAAAAJAAAAf5wdEJS
-AAAAJgAAAiJ1a1VBAAAAKgAAAkhmckZVAAAAKAAAAnJodUhVAAAAKAAAApp6aFRXAAAAFgAAAsJuYk5P
-AAAAJgAAAthjc0NaAAAAIgAAAv5oZUlMAAAAHgAAAyBpdElUAAAAKAAAAz5yb1JPAAAAJAAAA2ZkZURF
-AAAALAAAA4prb0tSAAAAFgAAA7ZzdlNFAAAAJgAAAth6aENOAAAAFgAAA8xqYUpQAAAAGgAAA+JlbEdS
-AAAAIgAAA/xwdFBPAAAAJgAABB5ubE5MAAAAKAAABERlc0VTAAAAJgAABB50aFRIAAAAJAAABGx0clRS
-AAAAIgAABJBmaUZJAAAAKAAABLJockhSAAAAKAAABNpwbFBMAAAALAAABQJydVJVAAAAIgAABS5hckVH
-AAAAJgAABVBlblVTAAAAJgAABXYAVgFhAGUAbwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBs
-AEcAZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBzAGsAcgBpAHYAZQBsAHMAZQBQAGUAcgBmAGkAbAAg
-AFIARwBCACAAZwBlAG4A6AByAGkAYwBDHqUAdQAgAGgA7ABuAGgAIABSAEcAQgAgAEMAaAB1AG4AZwBQ
-AGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QByAGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRA
-BD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQgDB
-AGwAdABhAGwA4QBuAG8AcwAgAFIARwBCACAAcAByAG8AZgBpAGyQGnUoACAAUgBHAEIAIIJyX2ljz4/w
-AEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcAByAG8AZgBpAGwATwBiAGUAYwBuAP0AIABSAEcAQgAg
-AHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAAUgBHAEIAIAXbBdwF3AXZAFAAcgBvAGYAaQBsAG8AIABS
-AEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBQAHIAbwBmAGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBB
-AGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAtAFAAcgBvAGYAaQBsx3y8GAAgAFIARwBCACDVBLhc
-0wzHfGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIsACAAUgBHAEIAIDDXMO0w1TChMKQw6wOTA7UDvQO5
-A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABlAHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBp
-AGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAg
-AFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBsACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABl
-AGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBpAGwAaQBHAGUAbgBlAHIAaQENAGsAaQAgAFIARwBC
-ACAAcAByAG8AZgBpAGwAVQBuAGkAdwBlAHIAcwBhAGwAbgB5ACAAcAByAG8AZgBpAGwAIABSAEcAQgQe
-BDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBHAEIGRQZEBkEAIAYqBjkGMQZKBkEAIABSAEcAQgAg
-BicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBHAEIAIABQAHIAbwBmAGkAbABldGV4dAAAAABDb3B5
-cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmlnaHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAA
-AAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAAAAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWf
-AAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPc
-AADAbNIqKywtWiRjbGFzc25hbWVYJGNsYXNzZXNfEBBOU0JpdG1hcEltYWdlUmVwoywuL1pOU0ltYWdl
-UmVwWE5TT2JqZWN00iorMTJXTlNBcnJheaIxL9IqKzQ1Xk5TTXV0YWJsZUFycmF5ozQxL9M3OA85OjtX
-TlNXaGl0ZVxOU0NvbG9yU3BhY2VEMCAwABADgAzSKis9PldOU0NvbG9yoj0v0iorQEFXTlNJbWFnZaJA
-LwAIABEAGgAkACkAMgA3AEkATABRAFMAYgBoAHUAfACLAJIAnwCmAK4AsACyALQAuQC7AL0AxgDLANYA
-2ADaANwA4QDkAOYA6ADqAO8BBgEIAQoSxBLJEtQS3RLwEvQS/xMIEw0TFRMYEx0TLBMwEzcTPxNME1ET
-UxNVE1oTYhNlE2oTcgAAAAAAAAIBAAAAAAAAAEIAAAAAAAAAAAAAAAAAABN1A
+29vb29vb29vi4uLme3ZyjgAAAAAAAAAAHhsZJ8fCvtfe39/f29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb297e39/MycXcJCEfLgAAAAAAAAAA
+AAAAAF5aVnDf3t3o3Nzd3dvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb3Nzc3OLf3uhnYV16AAAAAAAAAAAAAAAAAAAAAAUEBAiGgH2b4+Ph6dzc3Nzb29vb
+29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc5OPi6I+IhaMHBgUK
+AAAAAAAAAAAAAAAAAAAAAAAAAAAJCQgOh4J9m9/d3ejf39/f29vb29vb29vb29vb29vb29vb29vb29vb
+29vb29vb29vb29vb29vb297f39/h4N3pj4iEowwLCRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+BAMDB2BbV3PIw8HY4+Ph59/g4ODc3N3d29vb29vb29vb29vb29vb29zc3Nzf4ODg4uLh5srIxNpmYV55
+BgUECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgHBspdW9th7m1scjY1NPh
+393d5d/f3+Tf39/k393d5djV1OG6t7PLeXNwiyMhHi0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8NCxQzMCw/YlxZdX13cpV+eHKWZF5adzUyL0IPDg0W
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAMAAAABABgAAAEBAAMAAAABABgAAAEC
+AAMAAAAEAAAJzgEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAEKAAMAAAABAAEAAAERAAQAAAABAAAACAES
+AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABgAAAEXAAQAAAABAAAJAAEcAAMAAAABAAEAAAEo
+AAMAAAABAAIAAAFSAAMAAAABAAEAAAFTAAMAAAAEAAAJ1odzAAcAAAfYAAAJ3gAAAAAACAAIAAgACAAB
+AAEAAQABAAAH2GFwcGwCIAAAbW50clJHQiBYWVogB9kAAgAZAAsAGgALYWNzcEFQUEwAAAAAYXBwbAAA
+AAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAALZGVzYwAAAQgAAABvZHNjbQAAAXgAAAWcY3BydAAABxQAAAA4d3RwdAAA
+B0wAAAAUclhZWgAAB2AAAAAUZ1hZWgAAB3QAAAAUYlhZWgAAB4gAAAAUclRSQwAAB5wAAAAOY2hhZAAA
+B6wAAAAsYlRSQwAAB5wAAAAOZ1RSQwAAB5wAAAAOZGVzYwAAAAAAAAAUR2VuZXJpYyBSR0IgUHJvZmls
+ZQAAAAAAAAAAAAAAFEdlbmVyaWMgUkdCIFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAHwAAAAxza1NLAAAAKAAAAYRkYURLAAAALgAA
+AaxjYUVTAAAAJAAAAdp2aVZOAAAAJAAAAf5wdEJSAAAAJgAAAiJ1a1VBAAAAKgAAAkhmckZVAAAAKAAA
+AnJodUhVAAAAKAAAApp6aFRXAAAAFgAAAsJuYk5PAAAAJgAAAthjc0NaAAAAIgAAAv5oZUlMAAAAHgAA
+AyBpdElUAAAAKAAAAz5yb1JPAAAAJAAAA2ZkZURFAAAALAAAA4prb0tSAAAAFgAAA7ZzdlNFAAAAJgAA
+Ath6aENOAAAAFgAAA8xqYUpQAAAAGgAAA+JlbEdSAAAAIgAAA/xwdFBPAAAAJgAABB5ubE5MAAAAKAAA
+BERlc0VTAAAAJgAABB50aFRIAAAAJAAABGx0clRSAAAAIgAABJBmaUZJAAAAKAAABLJockhSAAAAKAAA
+BNpwbFBMAAAALAAABQJydVJVAAAAIgAABS5hckVHAAAAJgAABVBlblVTAAAAJgAABXYAVgFhAGUAbwBi
+AGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsAEcAZQBuAGUAcgBlAGwAIABSAEcAQgAtAGIAZQBz
+AGsAcgBpAHYAZQBsAHMAZQBQAGUAcgBmAGkAbAAgAFIARwBCACAAZwBlAG4A6AByAGkAYwBDHqUAdQAg
+AGgA7ABuAGgAIABSAEcAQgAgAEMAaAB1AG4AZwBQAGUAcgBmAGkAbAAgAFIARwBCACAARwBlAG4A6QBy
+AGkAYwBvBBcEMAQzBDAEOwRMBD0EOAQ5ACAEPwRABD4ERAQwBDkEOwAgAFIARwBCAFAAcgBvAGYAaQBs
+ACAAZwDpAG4A6QByAGkAcQB1AGUAIABSAFYAQgDBAGwAdABhAGwA4QBuAG8AcwAgAFIARwBCACAAcABy
+AG8AZgBpAGyQGnUoACAAUgBHAEIAIIJyX2ljz4/wAEcAZQBuAGUAcgBpAHMAawAgAFIARwBCAC0AcABy
+AG8AZgBpAGwATwBiAGUAYwBuAP0AIABSAEcAQgAgAHAAcgBvAGYAaQBsBeQF6AXVBeQF2QXcACAAUgBH
+AEIAIAXbBdwF3AXZAFAAcgBvAGYAaQBsAG8AIABSAEcAQgAgAGcAZQBuAGUAcgBpAGMAbwBQAHIAbwBm
+AGkAbAAgAFIARwBCACAAZwBlAG4AZQByAGkAYwBBAGwAbABnAGUAbQBlAGkAbgBlAHMAIABSAEcAQgAt
+AFAAcgBvAGYAaQBsx3y8GAAgAFIARwBCACDVBLhc0wzHfGZukBoAIABSAEcAQgAgY8+P8GWHTvZOAIIs
+ACAAUgBHAEIAIDDXMO0w1TChMKQw6wOTA7UDvQO5A7oDzAAgA8ADwQO/A8YDrwO7ACAAUgBHAEIAUABl
+AHIAZgBpAGwAIABSAEcAQgAgAGcAZQBuAOkAcgBpAGMAbwBBAGwAZwBlAG0AZQBlAG4AIABSAEcAQgAt
+AHAAcgBvAGYAaQBlAGwOQg4bDiMORA4fDiUOTAAgAFIARwBCACAOFw4xDkgOJw5EDhsARwBlAG4AZQBs
+ACAAUgBHAEIAIABQAHIAbwBmAGkAbABpAFkAbABlAGkAbgBlAG4AIABSAEcAQgAtAHAAcgBvAGYAaQBp
+AGwAaQBHAGUAbgBlAHIAaQENAGsAaQAgAFIARwBCACAAcAByAG8AZgBpAGwAVQBuAGkAdwBlAHIAcwBh
+AGwAbgB5ACAAcAByAG8AZgBpAGwAIABSAEcAQgQeBDEESQQ4BDkAIAQ/BEAEPgREBDgEOwRMACAAUgBH
+AEIGRQZEBkEAIAYqBjkGMQZKBkEAIABSAEcAQgAgBicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAAUgBH
+AEIAIABQAHIAbwBmAGkAbABldGV4dAAAAABDb3B5cmlnaHQgMjAwNyBBcHBsZSBJbmMuLCBhbGwgcmln
+aHRzIHJlc2VydmVkLgBYWVogAAAAAAAA81IAAQAAAAEWz1hZWiAAAAAAAAB0TQAAPe4AAAPQWFlaIAAA
+AAAAAFp1AACscwAAFzRYWVogAAAAAAAAKBoAABWfAAC4NmN1cnYAAAAAAAAAAQHNAABzZjMyAAAAAAAB
+DEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbNIrLC0uWiRjbGFzc25hbWVYJGNsYXNzZXNf
+EBBOU0JpdG1hcEltYWdlUmVwoy0vMFpOU0ltYWdlUmVwWE5TT2JqZWN00issMjNXTlNBcnJheaIyMNIr
+LDU2Xk5TTXV0YWJsZUFycmF5ozUyMNM4OQ86OzxXTlNXaGl0ZVxOU0NvbG9yU3BhY2VEMCAwABADgAzS
+Kyw+P1dOU0NvbG9yoj4w0issQUJXTlNJbWFnZaJBMAAIABEAGgAkACkAMgA3AEkATABRAFMAYgBoAHUA
+fACLAJIAnwCmAK4AsACyALQAuQC7AL0AxgDLANYA2ADaANwA4QDkAOYA6ADqAPEBCAEkASYBKBLiEucS
+8hL7Ew4TEhMdEyYTKxMzEzYTOxNKE04TVRNdE2oTbxNxE3MTeBOAE4MTiBOQAAAAAAAAAgEAAAAAAAAA
+QwAAAAAAAAAAAAAAAAAAE5M
 </mutableData>
         </image>
         <image name="checkbox" width="16" height="16"/>