Selaa lähdekoodia

【综合】合并代码

tangchao 6 kuukautta sitten
vanhempi
commit
11f0f3a9c2
40 muutettua tiedostoa jossa 911 lisäystä ja 419 poistoa
  1. 5 17
      PDF Office/PDF Master/AppDelegate.swift
  2. 1 1
      PDF Office/PDF Master/Class/AIInfo/AIConfigWindowController/Views/AIHeaderView/AIHeaderView.swift
  3. 22 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/Contents.json
  4. BIN
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn.pdf
  5. BIN
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn_dark.pdf
  6. 1 1
      PDF Office/PDF Master/Class/Common/Tools/KMTools.swift
  7. 1 1
      PDF Office/PDF Master/Class/GuideInfo/KMFunctionGuideWindowController.swift
  8. 1 1
      PDF Office/PDF Master/Class/Home/ViewController/KMProductPromotionViewController.swift
  9. 2 1
      PDF Office/PDF Master/Class/KMAdvertisement/Manager/KMAdvertisementManager.swift
  10. 10 20
      PDF Office/PDF Master/Class/KMAdvertisement/Model/KMAdvertisementModelTransition.swift
  11. 2 8
      PDF Office/PDF Master/Class/PDFTools/Convert/NewController/KMToolCompareWindowController.swift
  12. 8 1
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.swift
  13. 3 3
      PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.xib
  14. 1 1
      PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.m
  15. 1 1
      PDF Office/PDF Master/Class/PDFWindowController/Form/KMFormActionButtonPopWindowController.xib
  16. 1 1
      PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController.swift
  17. 1 4
      PDF Office/PDF Master/Class/Purchase/Appstore/KMPurchaseCompareWindowController.m
  18. 2 5
      PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.m
  19. 1 4
      PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseLimitWindowController.swift
  20. 58 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.swift
  21. 81 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.xib
  22. 26 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.m
  23. 21 4
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.xib
  24. 5 17
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationMessageViewController.m
  25. 1 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.h
  26. 28 15
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.m
  27. 8 2
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.h
  28. 20 0
      PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.m
  29. 37 0
      PDF Office/PDF Master/Class/URLManager/KMURLConfigManager.swift
  30. 15 0
      PDF Office/PDF Master/Strings/de.lproj/Localizable.strings
  31. 5 0
      PDF Office/PDF Master/Strings/es.lproj/Localizable.strings
  32. 14 0
      PDF Office/PDF Master/Strings/fr.lproj/Localizable.strings
  33. 5 0
      PDF Office/PDF Master/Strings/it.lproj/Localizable.strings
  34. 14 0
      PDF Office/PDF Master/Strings/ja.lproj/Localizable.strings
  35. 5 0
      PDF Office/PDF Master/Strings/pl.lproj/Localizable.strings
  36. 14 0
      PDF Office/PDF Master/Strings/ru.lproj/Localizable.strings
  37. 14 2
      PDF Office/PDF Master/Strings/zh-Hans.lproj/Localizable.strings
  38. 15 0
      PDF Office/PDF Master/Strings/zh-Hant.lproj/Localizable.strings
  39. 32 0
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj
  40. 430 309
      PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

+ 5 - 17
PDF Office/PDF Master/AppDelegate.swift

@@ -703,10 +703,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     
     @objc func pdftoOfficeMenuItemAction(_ sender: NSMenuItem) {
 #if VERSION_DMG
-        var url = URL(string: "https://www.pdfreaderpro.com/store?product_code=product_2")
-        if SKInspectPublicTool.currentisLanguageHans() {
-            url = URL(string: "https://www.pdfreaderpro.com/zh-cn/store?product_code=product_2")
-        }
+        var url = URL(string: Store_Link + "?product_code=product_2")
         let tWorkSpace = NSWorkspace.shared
         if tWorkSpace.open(url!) == false {
             tWorkSpace.open(url!)
@@ -717,15 +714,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     @IBAction func volumeDiscount(_ sender: NSMenuItem) {
         var tStrHttpUrl = "https://www.pdfreaderpro.com/vpp-purchase-program"
     #if VERSION_DMG
-        tStrHttpUrl = "https://www.pdfreaderpro.com/vpp-purchase-program?utm_source=pdfdmg&utm_campaign=menubar_vpp"
-        if SKInspectPublicTool.currentisLanguageHans() {
-            tStrHttpUrl = "https://www.pdfreaderpro.com/vpp-purchase-program?utm_source=pdfdmg&utm_campaign=menubar_vpp_zh"
-        }
+        tStrHttpUrl = APPMain_Link + "/vpp-purchase-program?utm_source=pdfdmg&utm_campaign=menubar_vpp"
     #else
-        tStrHttpUrl = "https://www.pdfreaderpro.com/vpp-purchase-program?utm_source=pdfmacstore&utm_campaign=menubar_vpp"
-        if SKInspectPublicTool.currentisLanguageHans() {
-            tStrHttpUrl = "https://www.pdfreaderpro.com/vpp-purchase-program?utm_source=pdfmacstore&utm_campaign=menubar_vpp_zh"
-        }
+        tStrHttpUrl = APPMain_Link + "/vpp-purchase-program?utm_source=pdfmacstore&utm_campaign=menubar_vpp"
     #endif
         guard let url = URL(string: tStrHttpUrl) else {
             NSSound.beep()
@@ -738,10 +729,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     }
     
     @IBAction func crossPlatformAction(_ sender: NSMenuItem) {
-        var tStrHttpUrl = "https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=pdf_pro_dmgs&utm_medium=toptbr_help&utm_campaign=cross_platform"
-        if SKInspectPublicTool.currentisLanguageHans() {
-            tStrHttpUrl = "https://www.pdfreaderpro.com/zh-cn/store/pdf-pro-permanent-cross-platform-package?utm_source=pdf_pro_dmg&utm_medium=toptbr_help_cn&utm_campaign=cross_platform"
-        }
+        var tStrHttpUrl = CrossPlatform_Link
         guard let url = URL(string: tStrHttpUrl) else {
             return
         }
@@ -755,7 +743,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     }
     
     @IBAction func EducationDiscountAction(_ sender: NSMenuItem) {
-        let tStrHttpUrl = KMLocalizedString("https://www.pdfreaderpro.com/store?mode=edu#utm_source=mac_app&utm_medium=pdf_pro_dmg&utm_content=menu_bar_click", nil)
+        let tStrHttpUrl = Store_Edu_Link
         guard let url = URL(string: tStrHttpUrl) else {
             return
         }

+ 1 - 1
PDF Office/PDF Master/Class/AIInfo/AIConfigWindowController/Views/AIHeaderView/AIHeaderView.swift

@@ -60,7 +60,7 @@ class AIHeaderView: NSView, NibLoadable {
         let controller = AIUserInfoController.init()
         controller.purchaseHandle = { vc in
 #if VERSION_DMG
-            let url = URL(string: kAIStoreServerLink)
+            let url = URL(string: AIProduct_Link)
             NSWorkspace.shared.open(url!)
 #else
             AIPurchaseWindowController.currentWC().showWindow(nil)

+ 22 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "_tooltip-helpBtn.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "filename" : "_tooltip-helpBtn_dark.pdf",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn.pdf


BIN
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Other/_tooltip-helpBtn.imageset/_tooltip-helpBtn_dark.pdf


+ 1 - 1
PDF Office/PDF Master/Class/Common/Tools/KMTools.swift

@@ -315,7 +315,7 @@ import Cocoa
 
 // MARK: - PDFReaderPro
 
-let kKMPurchaseProductURLString = "https://www.pdfreaderpro.com/store"
+let kKMPurchaseProductURLString = Store_Link
 
 extension KMTools {
     // 打开 [快速教学]

+ 1 - 1
PDF Office/PDF Master/Class/GuideInfo/KMFunctionGuideWindowController.swift

@@ -93,7 +93,7 @@ class KMFunctionGuideWindowController: NSWindowController {
                 self.multiController = KMFunctionGuideMultiController.init()
                 self.multiController.clickHandle = {[weak self] controller in
 #if VERSION_DMG
-                    var url = URL(string:kAIStoreServerLink)!
+                    var url = URL(string: AIProduct_Link)!
                     NSWorkspace.shared.open(url)
 #else
                     AIPurchaseWindowController.currentWC().showWindow(nil)

+ 1 - 1
PDF Office/PDF Master/Class/Home/ViewController/KMProductPromotionViewController.swift

@@ -39,7 +39,7 @@ class KMProductPromotionViewController: NSViewController {
     
     func activitiesButtonAction() {
         // 点击运营活动
-        let httpUrl: NSURL = NSURL.init(string: "https://www.pdfreaderpro.com/store")!
+        let httpUrl: NSURL = NSURL.init(string: Store_Link)!
         let tWorkSpace: NSWorkspace = NSWorkspace.shared
         if !tWorkSpace.open(httpUrl as URL) {
             tWorkSpace.open(httpUrl as URL)

+ 2 - 1
PDF Office/PDF Master/Class/KMAdvertisement/Manager/KMAdvertisementManager.swift

@@ -384,7 +384,8 @@ extension KMAdvertisementManager {
         
         
         if info.subscriptionType == "1" {
-            if IAPProductsManager.default().isAvailableAllFunction() {
+//            if IAPProductsManager.default().isAvailableAllFunction() {
+            if IAPProductsManager.default().isAvailableAllFunction() == true {
                 return false
             }
         } else if info.subscriptionType == "2" {

+ 10 - 20
PDF Office/PDF Master/Class/KMAdvertisement/Model/KMAdvertisementModelTransition.swift

@@ -48,7 +48,7 @@ import AppKit
         
         if result.count == 0 {
             let language = Language()
-            language.en = image?.zh_TW
+            language.en = image?.en
             language.zh_TW = image?.zh_TW
             language.zh_CN = image?.zh_CN
             result = KMAdvertisementModelTransition.transitionLanguage(langeuage: language)
@@ -60,25 +60,15 @@ import AppKit
     //多语转换
     @objc public static func transitionLanguage(langeuage: Language?) -> String {
         var result = ""
-//        let languageConfig = KMAdvertisementManager.manager.configuration.language
-//        if languageConfig != .unknow {
-//            if languageConfig == .en {
-//                result = langeuage?.en ?? ""
-//            } else if languageConfig == .zhCN {
-//                result = langeuage?.zh_CN ?? ""
-//            } else if languageConfig == .zhTW {
-//                result = langeuage?.zh_TW ?? ""
-//            }
-//        } else {
-            let string = KMAdvertisementModelTransition.getLanguageType()
-            if string == "zh-Hans-CN" {
-                result = langeuage?.zh_CN ?? ""
-            } else if string == "zh-Hans-TW" {
-                result = langeuage?.zh_TW ?? ""
-            } else {
-                result = langeuage?.en ?? ""
-            }
-//        }
+        let string = KMAdvertisementModelTransition.getLanguageType()
+        if string == "zh-Hans-CN" {
+            result = langeuage?.zh_CN ?? ""
+        } else if string == "zh-Hans-TW" ||
+                    string == "zh-Hant-CN"{
+            result = langeuage?.zh_TW ?? ""
+        } else {
+            result = langeuage?.en ?? ""
+        }
         return result
     }
     

+ 2 - 8
PDF Office/PDF Master/Class/PDFTools/Convert/NewController/KMToolCompareWindowController.swift

@@ -237,20 +237,14 @@ var currentWindowController: KMToolCompareWindowController? = nil
     
     func verificationBuy() {
 #if VERSION_DMG
-        var url = URL(string: "https://www.pdfreaderpro.com/store?utm_source=MacAppDmg&utm_campaign=StoreLink&utm_medium=PdfStore")
-        if SKInspectPublicTool.currentisLanguageHans() {
-            url = URL(string: "https://www.pdfreaderpro.com/zh-cn/store?utm_source=MacAppDmg&utm_campaign=StoreLink&utm_medium=PdfStore")
-        }
+        var url = URL(string: Store_Link + "?utm_source=MacAppDmg&utm_campaign=StoreLink&utm_medium=PdfStore")
         NSWorkspace.shared.open(url!)
 #endif
     }
     
     func officeVerificationBuy() {
 #if VERSION_DMG
-        var url = URL(string: "https://www.pdfreaderpro.com/store?product_code=product_2&utm_source=MacAppDmg&utm_campaign=OfficeStoreLink&utm_medium=PdfOfficeStore")
-        if SKInspectPublicTool.currentisLanguageHans() {
-            url = URL(string: "https://www.pdfreaderpro.com/zh-cn/store?product_code=product_2&utm_source=MacAppDmg&utm_campaign=OfficeStoreLink&utm_medium=PdfOfficeStore")
-        }
+        var url = URL(string: Store_Link + "?product_code=product_2&utm_source=MacAppDmg&utm_campaign=OfficeStoreLink&utm_medium=PdfOfficeStore")
         NSWorkspace.shared.open(url!)
         FMTrackEventManager.defaultManager.trackOnceEvent(event: "PUW", withProperties: ["PUW_Btn":"Btn_PUW_PDFtoOffice_Buy"])
 #endif

+ 8 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.swift

@@ -7,9 +7,12 @@
 
 import Cocoa
 
-class KMMergePopoverViewController: NSViewController {
+@objc class KMMergePopoverViewController: NSViewController {
 
     @IBOutlet weak var label: NSTextField!
+    
+    @objc var titleString = ""
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do view setup here.
@@ -17,4 +20,8 @@ class KMMergePopoverViewController: NSViewController {
         label.stringValue = NSLocalizedString("奇偶页面穿插合并功能仅支持两个文件进行合并。第一份文件为合并后的奇数页面,第二份文件为合并后的偶数页面", comment: "")
     }
     
+    @objc func reloadData() {
+        label.stringValue = titleString
+    }
+    
 }

+ 3 - 3
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergePopoverViewController.xib

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMergePopoverViewController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMMergePopoverViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
                 <outlet property="label" destination="8ON-RW-0EV" id="y6y-6f-K2k"/>
                 <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/OCPart/KMPDFEditAppendWindow.m

@@ -810,7 +810,7 @@ static KMPDFEditAppendWindow *windowController = nil;
                 
                 PDFAnnotationLink *linkA = [[PDFAnnotationLink alloc] init];
                 linkA.bounds = NSMakeRect(0, pageBounds.size.height-32, 120, 32);
-                linkA.URL = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store"];
+                linkA.URL = [NSURL URLWithString:Swift_oc_Tool.Store_Link_OC];
                 [page addAnnotation:linkA];
                 
                 [self.PDFDocument insertPage:page atIndex:i];

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Form/KMFormActionButtonPopWindowController.xib

@@ -29,7 +29,7 @@
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
             <rect key="contentRect" x="196" y="240" width="520" height="270"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
             <view key="contentView" wantsLayer="YES" id="se5-gp-TjO">
                 <rect key="frame" x="0.0" y="0.0" width="520" height="270"/>
                 <autoresizingMask key="autoresizingMask"/>

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController.swift

@@ -432,7 +432,7 @@ class KMLeftSideViewController: KMSideViewController {
     }
     
     func initDefalutValue() {
-        self.view.wantsLayer = true
+        self.view.wantsLayer = true 
         self.view.layer?.backgroundColor = KMAppearance.Layout.l0Color().cgColor
         
         self.leftView.wantsLayer = true

+ 1 - 4
PDF Office/PDF Master/Class/Purchase/Appstore/KMPurchaseCompareWindowController.m

@@ -367,10 +367,7 @@ static NSString *const KMPurchaseCompareCellIdentifier       = @"KMPurchaseCompa
             }
         } else if (btn.tag == 10002) {
 #if VERSION_DMG
-            NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?utm_source=app_dmg&utm_medium=dmg_puw_free_trial"];
-            if([SKInspectPublicTool currentisLanguageHans]) {
-                url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?utm_source=app_dmg&utm_medium=dmg_puw_free_trial"];
-            }
+            NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?utm_source=app_dmg&utm_medium=dmg_puw_free_trial", Swift_oc_Tool.Store_Link_OC]];
             [[NSWorkspace sharedWorkspace] openURL:url];
             [[FMTrackEventManager defaultManager] trackEventWithEvent:@"PUW" withProperties:@{@"PUW_Btn":@"PUW_Btn_UpgradeBuyNow"}];
 #endif

+ 2 - 5
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.m

@@ -577,10 +577,7 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
 
 - (IBAction)buttonItemClicked_Buy:(id)sender {
 #if VERSION_DMG
-    NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?utm_source=app_dmg&utm_medium=dmg_puw_comparison"];
-    if([SKInspectPublicTool currentisLanguageHans]) {
-        url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?utm_source=app_dmg&utm_medium=dmg_puw_comparison"];
-    }
+    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?utm_source=app_dmg&utm_medium=dmg_puw_comparison", Swift_oc_Tool.Store_Link_OC]];
     [[NSWorkspace sharedWorkspace] openURL:url];
     [[FMTrackEventManager defaultManager] trackEventWithEvent:@"PUW" withProperties:@{@"PUW_Btn":@"PUW_Btn_UpgradeBuyNow"}];
 #endif
@@ -637,7 +634,7 @@ static NSString *const KMPurchaseCompareDMGCellIdentifier       = @"KMPurchaseCo
 }
 
 - (IBAction)aiPurchaseButtonClick:(NSButton *)sender {
-    NSURL *url = [NSURL URLWithString:kAIStoreServerLink];
+    NSURL *url = [NSURL URLWithString:Swift_oc_Tool.AIProduct_Link_OC];
     [[NSWorkspace sharedWorkspace] openURL:url];
     
     [[FMTrackEventManager defaultManager] trackEventWithEvent:@"PUW" withProperties:@{@"PUW_Btn":@"PUW_Btn_BuyAITools"}];

+ 1 - 4
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseLimitWindowController.swift

@@ -158,10 +158,7 @@ class KMPurchaseLimitWindowController: NSWindowController {
     
     //MARK: IBAction
     @IBAction func unlimitConvertAction(_ sender: Any) {
-        var url = URL(string:"https://www.pdfreaderpro.com/store?product_code=product_2&utm_source=MacAppDmg&utm_campaign=OfficeStoreLink&utm_medium=PdfOfficeStore")!
-        if SKInspectPublicTool.currentisLanguageHans() == true {
-            url = URL(string: "https://www.pdfreaderpro.com/zh-cn/store?product_code=product_2&utm_source=MacAppDmg&utm_campaign=OfficeStoreLink&utm_medium=PdfOfficeStore")!
-        }
+        var url = URL(string: Store_Link + "?product_code=product_2&utm_source=MacAppDmg&utm_campaign=OfficeStoreLink&utm_medium=PdfOfficeStore")!
         NSWorkspace.shared.open(url)
         FMTrackEventManager.defaultManager.trackOnceEvent(event: "PUW", withProperties: ["PUW_Btn":"Btn_PUW_PDFtoOffice_Buy"])
     }

+ 58 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.swift

@@ -0,0 +1,58 @@
+//
+//  KMUnbindAlertViewController.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/8/7.
+//
+
+import Cocoa
+
+@objc class KMUnbindAlertViewController: NSViewController {
+
+    @IBOutlet var contendView: NSView!
+    
+    @IBOutlet var titleLabel: NSTextField!
+    @IBOutlet var contactButton: KMCustomButton!
+    
+    @objc var unbundHandle: ((_ controller: KMUnbindAlertViewController)->Void)?
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+        
+        self.contendView.wantsLayer = true
+        
+        self.titleLabel.font = NSFont.SFProTextRegularFont(16)
+        self.titleLabel.stringValue = NSLocalizedString("You have reached the maximum number of unbindings, please contact us.", comment: "")
+        
+        self.contactButton.font = NSFont.SFProTextRegularFont(13)
+        self.contactButton.wantsLayer = true
+        self.contactButton.layer?.masksToBounds = true
+        self.contactButton.layer?.cornerRadius = 1
+        self.contactButton.title = NSLocalizedString("Contact Support", comment: "")
+        self.contactButton.setTitleColor(NSColor.white)
+        
+        self.updateViewColor()
+    }
+    
+    @objc func updateViewColor() {
+        if KMAppearance.isDarkMode() {
+            self.contendView.layer?.backgroundColor = NSColor(red: 33/255, green: 33/255, blue: 33/255, alpha: 1).cgColor
+            self.titleLabel.textColor = NSColor.white
+            self.contactButton.layer?.backgroundColor = NSColor(red: 78/255, green: 127/255, blue: 219/255, alpha: 1).cgColor
+        } else {
+            self.contendView.layer?.backgroundColor = NSColor.white.cgColor
+            self.titleLabel.textColor = NSColor.black
+            self.contactButton.layer?.backgroundColor = NSColor(red: 39/255, green: 60/255, blue: 98/255, alpha: 1).cgColor
+        }
+    }
+    
+    //MARK: - IBAction
+    @IBAction func contactAction(_ sender: KMCustomButton) {
+        guard let callBack = self.unbundHandle else {
+            return
+        }
+        callBack(self)
+    }
+    
+}

+ 81 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMUnbindAlertViewController.xib

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <capability name="Named colors" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMUnbindAlertViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="contactButton" destination="vfL-lv-QOZ" id="yqG-wy-Hb4"/>
+                <outlet property="contendView" destination="iDC-Zb-Nxd" id="6IE-qn-p70"/>
+                <outlet property="titleLabel" destination="IdO-2p-jzC" id="rA0-S6-H6m"/>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="373" height="143"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="iDC-Zb-Nxd">
+                    <rect key="frame" x="0.0" y="0.0" width="373" height="143"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="imK-6b-wI8">
+                            <rect key="frame" x="0.0" y="41" width="373" height="102"/>
+                            <subviews>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IdO-2p-jzC">
+                                    <rect key="frame" x="48" y="35" width="277" height="32"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="273" id="dxe-ua-xD9"/>
+                                    </constraints>
+                                    <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="You have reached the maximum number of unbindings, please contact us." id="rrA-zF-w4d">
+                                        <font key="font" metaFont="system"/>
+                                        <color key="textColor" name="Color"/>
+                                        <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
+                            </subviews>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="102" id="60u-Lt-tcK"/>
+                                <constraint firstItem="IdO-2p-jzC" firstAttribute="centerX" secondItem="imK-6b-wI8" secondAttribute="centerX" id="7i0-QH-XNh"/>
+                                <constraint firstItem="IdO-2p-jzC" firstAttribute="centerY" secondItem="imK-6b-wI8" secondAttribute="centerY" id="YLs-sb-JQD"/>
+                            </constraints>
+                        </customView>
+                        <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vfL-lv-QOZ" customClass="KMCustomButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                            <rect key="frame" x="88" y="16" width="207" height="32"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <buttonCell key="cell" type="bevel" title="Back" bezelStyle="rounded" alignment="center" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="38a-lc-caH">
+                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                <font key="font" metaFont="system"/>
+                            </buttonCell>
+                            <connections>
+                                <action selector="contactAction:" target="-2" id="jfH-W1-F9Z"/>
+                            </connections>
+                        </button>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="imK-6b-wI8" firstAttribute="top" secondItem="iDC-Zb-Nxd" secondAttribute="top" id="RSn-Qq-vna"/>
+                        <constraint firstAttribute="trailing" secondItem="imK-6b-wI8" secondAttribute="trailing" id="WoE-Sm-qeY"/>
+                        <constraint firstItem="imK-6b-wI8" firstAttribute="leading" secondItem="iDC-Zb-Nxd" secondAttribute="leading" id="cVj-n1-xEZ"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="iDC-Zb-Nxd" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="6NC-Tt-aLA"/>
+                <constraint firstItem="iDC-Zb-Nxd" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="e5U-QM-YpT"/>
+                <constraint firstAttribute="trailing" secondItem="iDC-Zb-Nxd" secondAttribute="trailing" id="tke-j8-QAK"/>
+                <constraint firstAttribute="bottom" secondItem="iDC-Zb-Nxd" secondAttribute="bottom" id="tu9-6v-6nM"/>
+            </constraints>
+            <point key="canvasLocation" x="333" y="150"/>
+        </customView>
+    </objects>
+    <resources>
+        <namedColor name="Color">
+            <color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+        </namedColor>
+    </resources>
+</document>

+ 26 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.m

@@ -24,6 +24,8 @@
 
 @property (nonatomic, retain) CALayer *continueButtonLayer;
 
+@property (nonatomic, strong) NSPopover *popover;
+
 @end
 
 @implementation KMVerificationInfoViewController
@@ -94,9 +96,33 @@
 }
 
 - (IBAction)unbindAction:(NSButton *)sender {
+    if ([VerificationManager defaultManager].allowUnbind) {
+        NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/mac/license-retrieval"];
+        [[NSWorkspace sharedWorkspace] openURL:url];
+        return;
+    }
     if (self.unbindAction) {
         self.unbindAction();
     }
 }
 
+- (IBAction)guideAction:(NSButton *)sender {
+    if (self.popover.isShown) {
+        return;
+    }
+    if (!self.popover) {
+        self.popover = [[NSPopover alloc] init];
+    }
+    self.popover.behavior = NSPopoverBehaviorTransient;
+    
+    KMMergePopoverViewController *controller = [[KMMergePopoverViewController alloc] initWithNibName:@"KMMergePopoverViewController" bundle:nil];
+    controller.titleString = NSLocalizedString(@"You can unbind your license through our website.", nil);
+    
+    self.popover.contentViewController = controller;
+    [self.popover showRelativeToRect:sender.bounds ofView:sender preferredEdge:NSMaxYEdge];
+    
+    [controller reloadData];
+}
+ 
+
 @end

+ 21 - 4
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.xib

@@ -21,8 +21,8 @@
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView misplaced="YES" id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="366" height="241"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="366" height="259"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="K2Z-UU-Iwy">
@@ -126,7 +126,7 @@ DQ
                     </connections>
                 </button>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jbh-ok-6bh">
-                    <rect key="frame" x="295" y="20" width="61" height="14"/>
+                    <rect key="frame" x="265" y="20" width="61" height="14"/>
                     <buttonCell key="cell" type="bevel" title="解绑序列码" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="cQA-lp-Mcs">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="smallSystem"/>
@@ -135,16 +135,31 @@ DQ
                         <action selector="unbindAction:" target="-2" id="LcP-Bf-oQT"/>
                     </connections>
                 </button>
+                <button translatesAutoresizingMaskIntoConstraints="NO" id="DWW-Vb-hxx">
+                    <rect key="frame" x="330" y="19" width="16" height="16"/>
+                    <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="_tooltip-helpBtn" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="SyX-Ai-LWB">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="16" id="3u2-sf-35F"/>
+                        <constraint firstAttribute="height" constant="16" id="SdE-Eh-hfU"/>
+                    </constraints>
+                    <connections>
+                        <action selector="guideAction:" target="-2" id="wFr-Hv-63a"/>
+                    </connections>
+                </button>
             </subviews>
             <constraints>
+                <constraint firstItem="DWW-Vb-hxx" firstAttribute="centerY" secondItem="jbh-ok-6bh" secondAttribute="centerY" id="2oN-xe-ZGj"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" id="4Ye-7o-2xI"/>
                 <constraint firstItem="qYl-8D-SqT" firstAttribute="top" secondItem="K2Z-UU-Iwy" secondAttribute="bottom" constant="29" id="8Kt-5l-V67"/>
                 <constraint firstItem="8mp-tg-jsS" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="Afr-vg-dJA"/>
+                <constraint firstItem="DWW-Vb-hxx" firstAttribute="trailing" secondItem="vuU-Wl-nwe" secondAttribute="trailing" id="B4r-2g-kXj"/>
                 <constraint firstItem="qYl-8D-SqT" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="FWw-Nf-JHu"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="top" secondItem="8mp-tg-jsS" secondAttribute="bottom" constant="16" id="IWV-LJ-kLU"/>
                 <constraint firstItem="K2Z-UU-Iwy" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="IXC-UQ-2E8"/>
                 <constraint firstItem="GOO-fi-og0" firstAttribute="top" secondItem="qYl-8D-SqT" secondAttribute="bottom" constant="10" id="KD7-H6-D1P"/>
-                <constraint firstAttribute="trailing" secondItem="jbh-ok-6bh" secondAttribute="trailing" constant="10" id="OB3-QH-N0u"/>
                 <constraint firstItem="8mp-tg-jsS" firstAttribute="top" secondItem="GOO-fi-og0" secondAttribute="bottom" constant="10" id="Ooe-Ai-ASM"/>
                 <constraint firstItem="jbh-ok-6bh" firstAttribute="top" secondItem="gSB-AI-iMD" secondAttribute="bottom" constant="12" id="Sc2-ka-sHB"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="bottom" secondItem="gSB-AI-iMD" secondAttribute="bottom" id="W3K-jK-DW0"/>
@@ -154,6 +169,7 @@ DQ
                 <constraint firstAttribute="bottom" secondItem="vuU-Wl-nwe" secondAttribute="bottom" constant="46" id="d26-ur-dgm"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="centerX" secondItem="Hz6-mo-xeY" secondAttribute="centerX" id="giN-9Q-55l"/>
                 <constraint firstItem="vuU-Wl-nwe" firstAttribute="leading" secondItem="gSB-AI-iMD" secondAttribute="leading" id="k1g-bv-GQI"/>
+                <constraint firstItem="DWW-Vb-hxx" firstAttribute="leading" secondItem="jbh-ok-6bh" secondAttribute="trailing" constant="4" id="taf-91-Wtw"/>
                 <constraint firstItem="K2Z-UU-Iwy" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" id="y4k-XU-Ry4"/>
             </constraints>
             <point key="canvasLocation" x="-149" y="113"/>
@@ -161,6 +177,7 @@ DQ
     </objects>
     <resources>
         <image name="PDFReaderProLogo" width="512" height="512"/>
+        <image name="_tooltip-helpBtn" width="16" height="16"/>
         <namedColor name="KMColor_Interactive_M0">
             <color red="0.15294117647058825" green="0.23529411764705882" blue="0.3843137254901961" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </namedColor>

+ 5 - 17
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationMessageViewController.m

@@ -416,10 +416,7 @@ NSPopoverDelegate>
                     [vc showWindow:nil];
                 }
             } else if (btn.tag == 10002) {
-                NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?utm_source=app_dmg&utm_medium=dmg_puw_free_trial"];
-                if([SKInspectPublicTool currentisLanguageHans]) {
-                    url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?utm_source=app_dmg&utm_medium=dmg_puw_free_trial"];
-                }
+                NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?utm_source=app_dmg&utm_medium=dmg_puw_free_trial", Swift_oc_Tool.Store_Link_OC]];
                 [[NSWorkspace sharedWorkspace] openURL:url];
                 [[FMTrackEventManager defaultManager] trackEventWithEvent:@"PUW" withProperties:@{@"PUW_Btn":@"PUW_Btn_UpgradeBuyNow"}];
             } else if (btn.tag == 10003) {
@@ -448,10 +445,7 @@ NSPopoverDelegate>
                     KMVerificationWindowController *vc = [KMVerificationWindowController verificationWithType:KMVerificationTypeActivate];
                     [vc showWindow:nil];
                 } else if (index == 2) {
-                    NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store"];
-                    if([SKInspectPublicTool currentisLanguageHans]) {
-                        url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store"];
-                    }
+                    NSURL *url = [NSURL URLWithString:Swift_oc_Tool.Store_Link_OC];
                     [[NSWorkspace sharedWorkspace] openURL:url];
                     [[FMTrackEventManager defaultManager] trackEventWithEvent:@"PUW" withProperties:@{@"PUW_Btn":@"Btn_PUW_BuyNow-Expire"}];
                 }
@@ -486,19 +480,13 @@ NSPopoverDelegate>
         [vc showWindow:nil];
     } else if (ActivityStatusVerification == [VerificationManager manager].status) {
         if ([VerificationManager manager].needUpgradeLicense) {
-            NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?product_code=product_2"];
-            if([SKInspectPublicTool currentisLanguageHans]) {
-                url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?product_code=product_2"];
-            }
+            NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?product_code=product_2", Swift_oc_Tool.Store_Link_OC]];
             [[NSWorkspace sharedWorkspace] openURL:url];
             [[FMTrackEventManager defaultManager] trackEventWithEvent:@"Tbr" withProperties:@{@"Tbr_Btn":@"Btn_Tbr_PDFtoOffice"}];
         }
     } else {
         if ([VerificationManager manager].needUpgradeLicense) {
-            NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?product_code=product_2"];
-            if([SKInspectPublicTool currentisLanguageHans]) {
-                url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?product_code=product_2"];
-            }
+            NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?product_code=product_2", Swift_oc_Tool.Store_Link_OC]];
             [[NSWorkspace sharedWorkspace] openURL:url];
             [[FMTrackEventManager defaultManager] trackEventWithEvent:@"Tbr" withProperties:@{@"Tbr_Btn":@"Btn_Tbr_PDFtoOffice"}];
         } else {
@@ -556,7 +544,7 @@ NSPopoverDelegate>
     AIUserInfoController *controller = [[AIUserInfoController alloc] init];
     controller.purchaseHandle = ^(AIUserInfoController * _Nonnull vc) {
 #if VERSION_DMG
-        NSURL *url = [NSURL URLWithString:kAIStoreServerLink];
+        NSURL *url = [NSURL URLWithString:Swift_oc_Tool.AIProduct_Link_OC];
         [[NSWorkspace sharedWorkspace] openURL:url];
 #else
         

+ 1 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.h

@@ -19,6 +19,7 @@ typedef NS_ENUM(NSInteger, KMVerificationType) {
     KMVerificationTypeRepeatTrialGuide,//二次试用引导界面
     KMVerificationTypeRepeatTrialExpire,//二次试用到期提示
     KMVerificationTypeActivateAIInfo,//激活AI功能
+    KMVerificationTypeUnbindAlert,
     
 };
 

+ 28 - 15
PDF Office/PDF Master/Class/Purchase/DMG/Verification/KMVerificationWindowController.m

@@ -41,6 +41,7 @@
 @property (nonatomic, retain) KMRepeatTrialAlertController *repeatTrialAlertController;//二次试用提示弹窗
 @property (nonatomic, retain) KMRepeatVerifyExpireController *repeatTrialExpireController;//二次试用过期弹窗
 @property (nonatomic, retain) KMTrialSuccessController *trialSuccessController;
+@property (nonatomic, retain) KMUnbindAlertViewController *unbindAlertController;
 
 @end
 
@@ -245,10 +246,7 @@ static KMVerificationWindowController *_currentWindowController = nil;
         };
         _alertViewController.buyActionHandle = ^{
 #if VERSION_DMG
-            NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store"];
-            if([SKInspectPublicTool currentisLanguageHans]) {
-                url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store"];
-            }
+            NSURL *url = [NSURL URLWithString:Swift_oc_Tool.Store_Link_OC];
             [[NSWorkspace sharedWorkspace] openURL:url];
 #endif
             [[FMTrackEventManager defaultManager] trackEventWithEvent:@"PUW" withProperties:@{@"PUW_Btn":@"Btn_PUW_BuyNow-Trial"}];
@@ -271,14 +269,19 @@ static KMVerificationWindowController *_currentWindowController = nil;
 
 - (KMVerificationInfoViewController *)infoViewController {
     if (!_infoViewController) {
-        __block __typeof(self) blockSelf = self;
+        __weak __typeof(self) blockSelf = self;
         _infoViewController = [[KMVerificationInfoViewController alloc] init];
         _infoViewController.callback = ^{
             [blockSelf close];
         };
         _infoViewController.unbindAction = ^{
             dispatch_async(dispatch_get_main_queue(), ^{
-                [blockSelf unbindAction];
+                //输入序列码
+                KMVerificationWindowController *vc = [KMVerificationWindowController verificationWithType:KMVerificationTypeUnbindAlert];
+                vc.callback = ^{
+
+                };
+                [vc showWindow:nil];
             });
         };
     }
@@ -296,10 +299,7 @@ static KMVerificationWindowController *_currentWindowController = nil;
                                                 name:[VerificationManager manager].accountName] ;
             } else if (clickIndex == 1) {
                 //了解更多
-                NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?utm_source=app_dmg&utm_medium=dmg_puw_sec_free_trial"];
-                if([SKInspectPublicTool currentisLanguageHans]) {
-                    url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?utm_source=app_dmg&utm_medium=dmg_puw_sec_free_trial"];
-                }
+                NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?utm_source=app_dmg&utm_medium=dmg_puw_sec_free_trial", Swift_oc_Tool.Store_Link_OC]];
                 [[NSWorkspace sharedWorkspace] openURL:url];
                 [blockSelf close];
             } else if (clickIndex == 2) {
@@ -345,7 +345,19 @@ static KMVerificationWindowController *_currentWindowController = nil;
     return _trialSuccessController;
 }
 
-#pragma mark Window Methods
+- (KMUnbindAlertViewController *)unbindAlertController {
+    if (!_unbindAlertController) {
+        __weak typeof(self) weakSelf = self;
+        _unbindAlertController = [[KMUnbindAlertViewController alloc] init];
+        _unbindAlertController.unbundHandle = ^(KMUnbindAlertViewController * _Nonnull controller) {
+            [weakSelf unbindAction];
+            [weakSelf close];
+        };
+    }
+    return _unbindAlertController;
+}
+
+#pragma mark - Window Methods
 
 - (void)windowDidLoad {
     [super windowDidLoad];
@@ -392,6 +404,8 @@ static KMVerificationWindowController *_currentWindowController = nil;
     } else if (KMVerificationTypeActivateAIInfo == self.type) {
         [self setContentView:self.activateViewController.view];
         self.activateViewController.type = self.type;
+    } else if (KMVerificationTypeUnbindAlert == self.type) {
+        [self setContentView:self.unbindAlertController.view];
     }
 }
 
@@ -415,6 +429,8 @@ static KMVerificationWindowController *_currentWindowController = nil;
     } else if (KMVerificationTypeTrialSuccess == self.type ||
                KMVerificationTypeRepeatTrialSuccess == self.type) {
         [self.trialSuccessController updateViewColor];
+    } else if (KMVerificationTypeUnbindAlert == self.type) {
+        [self.unbindAlertController updateViewColor];
     }
 }
 
@@ -739,10 +755,7 @@ static KMVerificationWindowController *_currentWindowController = nil;
 
 - (void)verificationBuy {
 #if VERSION_DMG
-    NSURL *url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/store?utm_source=MacAppDmg&utm_campaign=StoreLink&utm_medium=PdfStore"];
-    if([SKInspectPublicTool currentisLanguageHans]) {
-        url = [NSURL URLWithString:@"https://www.pdfreaderpro.com/zh-cn/store?utm_source=MacAppDmg&utm_campaign=StoreLink&utm_medium=PdfStore"];
-    }
+    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?utm_source=MacAppDmg&utm_campaign=StoreLink&utm_medium=PdfStore", Swift_oc_Tool.Store_Link_OC]];
     [[NSWorkspace sharedWorkspace] openURL:url];
 #endif
     

+ 8 - 2
PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.h

@@ -18,13 +18,11 @@
 
 #define kVerificationServer         @"http://test-store.kdan.cn:3018/"
 #define kWebServerLink              NSLocalizedString(@"http://test-pdf-pro.kdan.cn:3021", nil)
-#define kAIStoreServerLink          @"http://test-pdf-pro.kdan.cn:3021/ai-pdf"
 
 #else
 
 #define kVerificationServer         @"https://store.pdfreaderpro.com/"
 #define kWebServerLink              NSLocalizedString(@"http://www.pdfreaderpro.com/store", nil)
-#define kAIStoreServerLink          @"https://www.pdfreaderpro.com/ai-pdf"
 
 #endif
 
@@ -76,6 +74,10 @@ typedef void(^ActivityComplention)(ActivityStatus status, NSDictionary *info, NS
 
 @property (nonatomic, readonly) NSString *accountName;
 
+@property (nonatomic, readonly) BOOL allowUnbind;
+
+@property (nonatomic, readonly) NSInteger unbindTimes;
+
 
 + (VerificationManager *)manager;
 
@@ -160,6 +162,10 @@ typedef void(^ActivityComplention)(ActivityStatus status, NSDictionary *info, NS
 
 @property (nonatomic, readonly) NSUInteger trialTimes;
 
+@property (nonatomic, readonly) BOOL allowUnbind;
+
+@property (nonatomic, readonly) NSInteger unbindTimes;
+
 @end
 
 #if DEBUG

+ 20 - 0
PDF Office/PDF Master/Class/Purchase/DMG/Verification/VerificationManager/VerificationManager.m

@@ -103,6 +103,14 @@ static VerificationManager *__verificationManager = nil;
     return self.detailInfo.accountName;
 }
 
+- (BOOL)allowUnbind {
+    return self.detailInfo.allowUnbind;
+}
+
+- (NSInteger)unbindTimes {
+    return self.detailInfo.unbindTimes;
+}
+
 - (NSString*)udid {
 //#if DEBUG
 //    NSString *cachePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"uuid.plist"];
@@ -313,6 +321,10 @@ static VerificationManager *__verificationManager = nil;
                 [[NSNotificationCenter defaultCenter] postNotificationName:notificationName
                                                                     object:self
                                                                   userInfo:info];
+                
+                [weak_self verificationWithComplention:^(ActivityStatus status, NSDictionary *info, NSError *error) {
+                                    
+                }];
             }
             [weak_self restartTimer];
             
@@ -1108,5 +1120,13 @@ static VerificationManager *__verificationManager = nil;
     return [self[@"invite"][@"max_free_days"]?:@"365" intValue];
 }
 
+- (BOOL)allowUnbind {
+    return [self[@"device"][@"allow_unbind"] boolValue];
+}
+
+- (NSInteger)unbindTimes {
+    return [self[@"device"][@"unbind_time"]?:@"0" integerValue];
+}
+
 @end
 

+ 37 - 0
PDF Office/PDF Master/Class/URLManager/KMURLConfigManager.swift

@@ -0,0 +1,37 @@
+//
+//  KMURLConfigManager.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/8/12.
+//
+
+import Foundation
+
+let APPMain_Link = NSLocalizedString("https://www.pdfreaderpro.com", comment: "")
+
+//跳转Store界面
+let Store_Link = NSLocalizedString("https://www.pdfreaderpro.com/store", comment: "")
+
+//PDF to office pack
+let PDFToOfficePacket_Link = NSLocalizedString("https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice", comment: "")
+
+//跨平台
+let CrossPlatform_Link = NSLocalizedString("https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform", comment: "")
+
+//AI包
+let AIProduct_Link = NSLocalizedString("https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool", comment: "")
+
+//教育折扣
+let Store_Edu_Link = NSLocalizedString("https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu", comment: "")
+
+@objc extension Swift_oc_Tool {
+
+    static let Store_Link_OC = Store_Link
+    static let PDFToOfficePacket_Link_OC = PDFToOfficePacket_Link
+    static let CrossPlatform_Link_OC = CrossPlatform_Link
+    static let AIProduct_Link_OC = AIProduct_Link
+    static let Store_Edu_Link_OC = Store_Edu_Link
+    
+    
+    
+}

+ 15 - 0
PDF Office/PDF Master/Strings/de.lproj/Localizable.strings

@@ -2895,6 +2895,7 @@
 
 "Please reset the font weight via the drop-down box" = "Bitte setzen Sie die Schriftstärke über das Dropdown-Feld zurück";
 "General Properties" = "Attribute";
+
 "From Image"="Vom image";
 
 "Measuring tools" = "Messgeräte";
@@ -2962,3 +2963,17 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "Sind Sie sicher, dass Sie das Lesezeichenziel auf die aktuelle Seite ändern möchten?";
 "Squiggly" = "Wellenlinien";
 "Eraser" = "Radiergummi";
+
+"Contact Support" = "Kontaktieren Sie Support";
+"You can unbind your license through our website." = "Sie können Ihre Lizenz über unsere Website entbinden.";
+"You have reached the maximum number of unbindings, please contact us." = "Sie haben die maximale Anzahl an Entbindungen erreicht. Bitte kontaktieren Sie uns.";
+
+
+//链接处理
+"https://www.pdfreaderpro.com/store" = "https://www.pdfreaderpro.com/de/store";
+"https://www.pdfreaderpro.com/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade" = "https://www.pdfreaderpro.com/de/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade";
+"https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice" = "https://www.pdfreaderpro.com/de/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice";
+"https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform" = "https://www.pdfreaderpro.com/de/store/pdf-pro-permanent-cross-platform-package?utm_source=appwindows&utm_medium=toptbr&utm_campaign=crossplatform";
+"https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool" = "https://www.pdfreaderpro.com/de/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool";
+"https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu" = "https://www.pdfreaderpro.com/de/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu";
+"https://www.pdfreaderpro.com" = "https://www.pdfreaderpro.com/de";

+ 5 - 0
PDF Office/PDF Master/Strings/es.lproj/Localizable.strings

@@ -2987,6 +2987,7 @@
 
 "Please reset the font weight via the drop-down box" = "Restablezca el peso de la fuente a través del cuadro desplegable";
 "General Properties" = "Atributos";
+
 "From Image"="desde imagen";
 
 "Measuring tools" = "Herramientas de medición";
@@ -3054,3 +3055,7 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "¿Está seguro de que desea establecer la página seleccionada como ubicación del marcador?";
 "Squiggly" = "Ondulado";
 "Eraser" = "Borrador";
+
+"Contact Support" = "Soporte de contacto";
+"You can unbind your license through our website." = "Puede desvincular su licencia a través de nuestro sitio web.";
+"You have reached the maximum number of unbindings, please contact us." = "Has alcanzado el número máximo de desvinculaciones, por favor contacta con nosotros.";

+ 14 - 0
PDF Office/PDF Master/Strings/fr.lproj/Localizable.strings

@@ -2858,6 +2858,7 @@
 
 "Please reset the font weight via the drop-down box" = "Veuillez réinitialiser l'épaisseur de la police via la liste déroulante";
 "General Properties" = "Les attributs";
+
 "From Image"="de l'image";
 
 "Measuring tools" = "Outils de mesure";
@@ -2925,3 +2926,16 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "Êtes-vous sûr de vouloir définir la page sélectionnée comme emplacement du signet ?";
 "Squiggly" = "Onduleux";
 "Eraser" = "Gomme";
+
+"Contact Support" = "Contactez le support";
+"You can unbind your license through our website." = "Vous pouvez dissocier votre licence via notre site Web.";
+"You have reached the maximum number of unbindings, please contact us." = "Vous avez atteint le nombre maximum de déliaisons, merci de nous contacter.";
+
+//链接处理
+"https://www.pdfreaderpro.com/store" = "https://www.pdfreaderpro.com/fr/store";
+"https://www.pdfreaderpro.com/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade" = "https://www.pdfreaderpro.com/fr/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade";
+"https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice" = "https://www.pdfreaderpro.com/fr/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice";
+"https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform" = "https://www.pdfreaderpro.com/fr/store/pdf-pro-permanent-cross-platform-package?utm_source=appwindows&utm_medium=toptbr&utm_campaign=crossplatform";
+"https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool" = "https://www.pdfreaderpro.com/fr/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool";
+"https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu" = "https://www.pdfreaderpro.com/fr/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu";
+"https://www.pdfreaderpro.com" = "https://www.pdfreaderpro.com/fr";

+ 5 - 0
PDF Office/PDF Master/Strings/it.lproj/Localizable.strings

@@ -2783,6 +2783,7 @@
 
 "Please reset the font weight via the drop-down box" = "Reimpostare lo spessore del carattere tramite la casella a discesa";
 "General Properties" = "Attributi";
+
 "From Image"="dall'immagine";
 
 "Measuring tools"="Strumenti di misurazione";
@@ -2851,3 +2852,7 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "Sei sicuro di voler impostare la pagina selezionata come posizione dei segnalibri?";
 "Squiggly" = "Ondulato";
 "Eraser" = "Gomma per cancellare";
+
+"Contact Support" = "Contatta il supporto";
+"You can unbind your license through our website." = "Puoi svincolare la tua licenza tramite il nostro sito web.";
+"You have reached the maximum number of unbindings, please contact us." = "Hai raggiunto il numero massimo di scioglimenti, contattaci.";

+ 14 - 0
PDF Office/PDF Master/Strings/ja.lproj/Localizable.strings

@@ -3050,6 +3050,7 @@
 
 "Please reset the font weight via the drop-down box" = "ドロップダウンボックスからフォントの太さをリセットしてください";
 "General Properties" = "属性";
+
 "From Image"="イメージから";
 
 "Measuring tools"="測定ツール";
@@ -3118,3 +3119,16 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "選択したページをブックマークの場所として設定してもよろしいですか?";
 "Squiggly" = "波打つ";
 "Eraser" = "消しゴム";
+
+"Contact Support" = "サポート問い合わせ先";
+"You can unbind your license through our website." = "当社 Web サイトからライセンスのバインドを解除できます。";
+"You have reached the maximum number of unbindings, please contact us." = "バインド解除の最大数に達しました。お問い合わせください。";
+
+//链接处理
+"https://www.pdfreaderpro.com/store" = "https://www.pdfreaderpro.com/ja/store";
+"https://www.pdfreaderpro.com/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade" = "https://www.pdfreaderpro.com/ja/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade";
+"https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice" = "https://www.pdfreaderpro.com/ja/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice";
+"https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform" = "https://www.pdfreaderpro.com/ja/store/pdf-pro-permanent-cross-platform-package?utm_source=appwindows&utm_medium=toptbr&utm_campaign=crossplatform";
+"https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool" = "https://www.pdfreaderpro.com/ja/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool";
+"https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu" = "https://www.pdfreaderpro.com/ja/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu";
+"https://www.pdfreaderpro.com" = "https://www.pdfreaderpro.com/ja";

+ 5 - 0
PDF Office/PDF Master/Strings/pl.lproj/Localizable.strings

@@ -2999,6 +2999,7 @@
 
 "Please reset the font weight via the drop-down box" = "Zresetuj grubość czcionki za pomocą rozwijanego pola";
 "General Properties" = "Atrybuty";
+
 "From Image"="z obrazu";
 
 "Measuring tools"="Narzędzia pomiarowe";
@@ -3067,3 +3068,7 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "Czy na pewno chcesz ustawić wybraną stronę jako lokalizację zakładek?";
 "Squiggly" = "Faliste";
 "Eraser" = "Gumka do ścierania";
+
+"Contact Support" = "Skontaktuj się z pomocą techniczną";
+"You can unbind your license through our website." = "Możesz rozwiązać swoją licencję za pośrednictwem naszej strony internetowej.";
+"You have reached the maximum number of unbindings, please contact us." = "Osiągnąłeś maksymalną liczbę rozłączeń, skontaktuj się z nami.";

+ 14 - 0
PDF Office/PDF Master/Strings/ru.lproj/Localizable.strings

@@ -2923,6 +2923,7 @@
 
 "Please reset the font weight via the drop-down box" = "Пожалуйста, сбросьте толщину шрифта в раскрывающемся списке.";
 "General Properties" = "Атрибуты";
+
 "From Image"="из изображения";
 
 "Measuring tools"="Измерительные инструменты";
@@ -2991,3 +2992,16 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "Вы уверены, что хотите установить выбранную страницу в качестве места закладки?";
 "Squiggly" = "Волнистый";
 "Eraser" = "Ластик";
+
+"Contact Support" = "Контактная поддержка";
+"You can unbind your license through our website." = "Вы можете отвязать лицензию через наш сайт.";
+"You have reached the maximum number of unbindings, please contact us." = "Вы достигли максимального количества отвязок, свяжитесь с нами.";
+
+//链接处理
+"https://www.pdfreaderpro.com/store" = "https://www.pdfreaderpro.com/ru/store";
+"https://www.pdfreaderpro.com/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade" = "https://www.pdfreaderpro.com/ru/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade";
+"https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice" = "https://www.pdfreaderpro.com/ru/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice";
+"https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform" = "https://www.pdfreaderpro.com/ru/store/pdf-pro-permanent-cross-platform-package?utm_source=appwindows&utm_medium=toptbr&utm_campaign=crossplatform";
+"https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool" = "https://www.pdfreaderpro.com/ru/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool";
+"https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu" = "https://www.pdfreaderpro.com/ru/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu";
+"https://www.pdfreaderpro.com" = "https://www.pdfreaderpro.com/ru";

+ 14 - 2
PDF Office/PDF Master/Strings/zh-Hans.lproj/Localizable.strings

@@ -2799,9 +2799,7 @@
 "Upgrade to Cross-platform License" = "升级为跨平台序列码";
 
 "minute(s)"  = "分钟";
-"https://www.pdfreaderpro.com/store?mode=edu" = "https://www.pdfreaderpro.com/zh-cn/store?mode=edu";
 "Education Discount" = "教育优惠专享折扣";
-"https://www.pdfreaderpro.com/store?mode=edu#utm_source=mac_app&utm_medium=pdf_pro_dmg&utm_content=menu_bar_click" = "https://www.pdfreaderpro.com/zh-cn/store?mode=edu#utm_source=mac_app&utm_medium=pdf_pro_dmg&utm_content=menu_bar_click";
 
 "Free Trial All Features for 7 days!" = "7天免费试用全功能";
 "Newly updated PDF Reader Pro for you. Click “Start Free Trial” to enjoy all premium features!\nEdit, convert, organize, compare, secure, and OCR your PDFs totally free!" = "免费体验全新升级的PDF Reader Pro。点击“免费试用”解锁全功能。\n轻松编辑,转换,组织,对比,OCR,加密PDF文件!";
@@ -3960,6 +3958,7 @@
 
 "Please reset the font weight via the drop-down box" = "请通过下拉框重设字重";
 "General Properties" = "属性";
+
 "From Image"="从图像";
 
 "Measuring tools" = "测量工具";
@@ -4027,3 +4026,16 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "您确定要将书签目标位置更改为当前页吗?";
 "Squiggly" = "波浪线";
 "Eraser" = "橡皮擦";
+
+"Contact Support" = "联系客服";
+"You can unbind your license through our website." = "您可以通过我们的官网解绑您的序列码。";
+"You have reached the maximum number of unbindings, please contact us." = "您已达到最大解绑次数,请联系我们。";
+
+//链接处理
+"https://www.pdfreaderpro.com/store" = "https://www.pdfreaderpro.com/zh-cn/store";
+"https://www.pdfreaderpro.com/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade" = "https://www.pdfreaderpro.com/zh-cn/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade";
+"https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice" = "https://www.pdfreaderpro.com/zh-cn/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice";
+"https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform" = "https://www.pdfreaderpro.com/zh-cn/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform";
+"https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool" = "https://www.pdfreaderpro.com/zh-cn/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool";
+"https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu" = "https://www.pdfreaderpro.com/zh-cn/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu";
+"https://www.pdfreaderpro.com" = "https://www.pdfreaderpro.com/zh-cn";

+ 15 - 0
PDF Office/PDF Master/Strings/zh-Hant.lproj/Localizable.strings

@@ -4090,6 +4090,7 @@
 
 "Please reset the font weight via the drop-down box" = "請透過下拉框重設字重";
 "General Properties" = "屬性";
+
 "From Image"="來自影像";
 
 "Measuring tools" = "測量工具";
@@ -4157,3 +4158,17 @@
 "Are you sure you want to set the selected page as the bookmark location?" = "您確定要將書籤目標位置變更為目前頁嗎?";
 "Squiggly" = "波浪線";
 "Eraser" = "橡皮擦";
+
+
+"Contact Support" = "聯絡客服";
+"You can unbind your license through our website." = "您可以透過我們的官網解讀您的序號。";
+"You have reached the maximum number of unbindings, please contact us." = "您已達到最大解綁次數,請與我們聯絡。";
+
+//链接处理
+"https://www.pdfreaderpro.com/store" = "https://www.pdfreaderpro.com/zh-tw/store";
+"https://www.pdfreaderpro.com/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade" = "https://www.pdfreaderpro.com/zh-tw/store?utm_source=appdmg&utm_medium=pricingcard&utm_campaign=upgrade";
+"https://www.pdfreaderpro.com/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice" = "https://www.pdfreaderpro.com/zh-tw/store/upgrade?utm_source=appdmg&utm_medium=toptbr&utm_campaign=pdftooffice";
+"https://www.pdfreaderpro.com/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform" = "https://www.pdfreaderpro.com/zh-tw/store/pdf-pro-permanent-cross-platform-package?utm_source=appdmg&utm_medium=toptbr&utm_campaign=crossplatform";
+"https://www.pdfreaderpro.com/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool" = "https://www.pdfreaderpro.com/zh-tw/store/aitools?utm_source=appdmg&utm_medium=allapp&utm_campaign=aitool";
+"https://www.pdfreaderpro.com/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu" = "https://www.pdfreaderpro.com/zh-tw/store?mode=edu&utm_source=appdmg&utm_medium=toptbr&utm_campaign=edu";
+"https://www.pdfreaderpro.com" = "https://www.pdfreaderpro.com/zh-tw";

+ 32 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2920,6 +2920,9 @@
 		BB135C2A29B6CD9A00FD5965 /* KMTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB135C2929B6CD9A00FD5965 /* KMTools.swift */; };
 		BB135C2B29B6CD9A00FD5965 /* KMTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB135C2929B6CD9A00FD5965 /* KMTools.swift */; };
 		BB135C2C29B6CD9A00FD5965 /* KMTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB135C2929B6CD9A00FD5965 /* KMTools.swift */; };
+		BB1413682C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1413672C69E6CA00BB8E35 /* KMURLConfigManager.swift */; };
+		BB1413692C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1413672C69E6CA00BB8E35 /* KMURLConfigManager.swift */; };
+		BB14136A2C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1413672C69E6CA00BB8E35 /* KMURLConfigManager.swift */; };
 		BB146FAB299DC0D000784A6A /* GTLRBatchQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = BB146F2F299DC0CF00784A6A /* GTLRBatchQuery.m */; };
 		BB146FAC299DC0D000784A6A /* GTLRBatchQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = BB146F2F299DC0CF00784A6A /* GTLRBatchQuery.m */; };
 		BB146FAD299DC0D000784A6A /* GTLRBatchQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = BB146F2F299DC0CF00784A6A /* GTLRBatchQuery.m */; };
@@ -3984,6 +3987,12 @@
 		BB7289E12B8838D8004B53B5 /* KMDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7289DF2B8838D8004B53B5 /* KMDataManager.swift */; };
 		BB7289E22B8838D8004B53B5 /* KMDataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7289DF2B8838D8004B53B5 /* KMDataManager.swift */; };
 		BB7289E52B8844BA004B53B5 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB7289E42B8844BA004B53B5 /* GoogleService-Info.plist */; };
+		BB73F2882C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */; };
+		BB73F2892C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */; };
+		BB73F28A2C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */; };
+		BB73F28B2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */; };
+		BB73F28C2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */; };
+		BB73F28D2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */; };
 		BB74DA772AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */; };
 		BB74DA782AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */; };
 		BB74DA792AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */; };
@@ -6604,6 +6613,7 @@
 		BB13314D2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFMergeSizeTabelViewCell.swift; sourceTree = "<group>"; };
 		BB1331532AD7A6A1008F6791 /* KMFileAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMFileAttribute.swift; sourceTree = "<group>"; };
 		BB135C2929B6CD9A00FD5965 /* KMTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMTools.swift; sourceTree = "<group>"; };
+		BB1413672C69E6CA00BB8E35 /* KMURLConfigManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMURLConfigManager.swift; sourceTree = "<group>"; };
 		BB146F2F299DC0CF00784A6A /* GTLRBatchQuery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTLRBatchQuery.m; sourceTree = "<group>"; };
 		BB146F30299DC0CF00784A6A /* GTLRService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTLRService.m; sourceTree = "<group>"; };
 		BB146F31299DC0CF00784A6A /* GTLRErrorObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTLRErrorObject.m; sourceTree = "<group>"; };
@@ -7068,6 +7078,8 @@
 		BB7185492C2B0DC500C1156B /* KMEditPDFModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMEditPDFModel.swift; sourceTree = "<group>"; };
 		BB7289DF2B8838D8004B53B5 /* KMDataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDataManager.swift; sourceTree = "<group>"; };
 		BB7289E42B8844BA004B53B5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
+		BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMUnbindAlertViewController.swift; sourceTree = "<group>"; };
+		BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMUnbindAlertViewController.xib; sourceTree = "<group>"; };
 		BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSFont+KMExtension.swift"; sourceTree = "<group>"; };
 		BB74DA7A2AC41DE9006EDFE7 /* NSString+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSString+KMExtension.swift"; sourceTree = "<group>"; };
 		BB74DA7E2AC42959006EDFE7 /* NSButton+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSButton+KMExtension.swift"; sourceTree = "<group>"; };
@@ -11424,6 +11436,14 @@
 			path = Tools;
 			sourceTree = "<group>";
 		};
+		BB1413662C69E6AB00BB8E35 /* URLManager */ = {
+			isa = PBXGroup;
+			children = (
+				BB1413672C69E6CA00BB8E35 /* KMURLConfigManager.swift */,
+			);
+			path = URLManager;
+			sourceTree = "<group>";
+		};
 		BB146F2E299DC0CF00784A6A /* GTLRClass */ = {
 			isa = PBXGroup;
 			children = (
@@ -11652,6 +11672,8 @@
 				BB88109E2B4F7D0F00AFA63E /* KMVerificationActivateViewController.h */,
 				BB88109D2B4F7D0F00AFA63E /* KMVerificationActivateViewController.m */,
 				BB88109F2B4F7D0F00AFA63E /* KMVerificationActivateViewController.xib */,
+				BB73F2862C63147E00131EE7 /* KMUnbindAlertViewController.swift */,
+				BB73F2872C63147E00131EE7 /* KMUnbindAlertViewController.xib */,
 				BB8810A72B4F7D7500AFA63E /* KMVerificationViewController.h */,
 				BB8810A62B4F7D7500AFA63E /* KMVerificationViewController.m */,
 				BB8810A82B4F7D7500AFA63E /* KMVerificationViewController.xib */,
@@ -11870,6 +11892,7 @@
 		BB2C6A7128F2652500478A33 /* Class */ = {
 			isa = PBXGroup;
 			children = (
+				BB1413662C69E6AB00BB8E35 /* URLManager */,
 				BB031B3D2C47BB070099F7AD /* Tools */,
 				AD7D5C7F2B8ECC74006562CD /* Parsers */,
 				BB0FE01F2B734DD1001E0F88 /* AIInfo */,
@@ -14912,6 +14935,7 @@
 				ADDF83A42B391A5D00A81A4E /* DSignatureConfigWindowController.xib in Resources */,
 				9F8539EB2947131F00DF644E /* KMChromiumTabView.xib in Resources */,
 				BB8F454A295A9CDC0037EA22 /* KMHeaderFooterListController.xib in Resources */,
+				BB73F28B2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				9F853A082947137500DF644E /* newtab.pdf in Resources */,
 				AD7D5CD72B95767C006562CD /* KMBookmarkOutlineTitleCellView.xib in Resources */,
 				BB0FE04F2B734DD1001E0F88 /* AIPurchaseWindowController.xib in Resources */,
@@ -15511,6 +15535,7 @@
 				BB8810982B4F7CD100AFA63E /* KMVerificationTrialViewController.xib in Resources */,
 				BBC821E42B0D9F72004B7E8E /* KMStampCreaterWindowController.xib in Resources */,
 				BB3AAB9429878CE000992A5A /* KMWatermarkAdjectivePropertyMainController.xib in Resources */,
+				BB73F28C2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				AD3AAD4E2B0B7B9300DE5FE7 /* KMCompareTextView.xib in Resources */,
 				9F853A062947137500DF644E /* newtab_h.pdf in Resources */,
 				ADAFD9F82AE68A8500F084BC /* KMCreatPDFView.xib in Resources */,
@@ -16021,6 +16046,7 @@
 				9F8539D029430BF300DF644E /* KMBrowserWindowController.xib in Resources */,
 				ADE8BC2C29F7CDB000570F89 /* KMPageNumberDisplayView.xib in Resources */,
 				BBFD2B182AEFAC9C0016C456 /* KMBatchOperateBaseViewController.xib in Resources */,
+				BB73F28D2C63147E00131EE7 /* KMUnbindAlertViewController.xib in Resources */,
 				AD7D5CD92B95767C006562CD /* KMBookmarkOutlineTitleCellView.xib in Resources */,
 				BB0FE0512B734DD1001E0F88 /* AIPurchaseWindowController.xib in Resources */,
 				BBFE6E622930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
@@ -16371,6 +16397,7 @@
 				BBC28F4E2B0F58DD00D73206 /* KMImageToolTipWindow.swift in Sources */,
 				BB6DD80C29347F77001F0544 /* KMSecureEncryptWindowController.swift in Sources */,
 				BB031B602C47BB080099F7AD /* KMUserFeekbackWindowController.swift in Sources */,
+				BB73F2882C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */,
 				BBB14A572978E75D00936EDB /* KMRedactMutilPageFlagWindowController.swift in Sources */,
 				ADAFDA132AE8DD6600F084BC /* KMAdvertisementCollectionViewItem.swift in Sources */,
 				899E0B092919244500B13D34 /* KMCustomTableRowView.swift in Sources */,
@@ -16616,6 +16643,7 @@
 				89E4E7352964148E002DBA6F /* KMAnnotationPropertiesViewController.m in Sources */,
 				9F221ED729A9EC0900978A59 /* KMFillSignTextPanel.swift in Sources */,
 				BBF8A4032AE8E10100788BAC /* KMBatchConvertParameter.swift in Sources */,
+				BB1413682C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */,
 				9FA607D928F8227500B46586 /* KMBox.swift in Sources */,
 				BBE9D0922AF0A85C002E83CE /* KMBatchOperation.swift in Sources */,
 				BBB612AD2AF4B9E4000F3724 /* KMWatermarkCollectionViewItem.swift in Sources */,
@@ -17840,6 +17868,7 @@
 				BBEC00C0295C306400A26C98 /* KMBatesPropertyController.swift in Sources */,
 				BB0A55222A30968900B6E84B /* KMDesignBaseView.swift in Sources */,
 				BB61F2132B59120F00777E27 /* KMScroller.swift in Sources */,
+				BB73F2892C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */,
 				9FCFEC992AD14EEF00EAD2CB /* KMMailHelper.swift in Sources */,
 				AD055E542B73220A0035F824 /* KMBookmarkManager.swift in Sources */,
 				89E4E6ED2963D1B7002DBA6F /* KMColorPickerViewController.m in Sources */,
@@ -18489,6 +18518,7 @@
 				BB67EE1E2B54FFEF00573BF0 /* ASIFormDataRequest.m in Sources */,
 				ADE3C1AC29A4779E00793B13 /* KMPrintAccessoryController.swift in Sources */,
 				BB10FAF72AFE2C2900F18D65 /* KMNumberArrayFormatter.swift in Sources */,
+				BB1413692C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */,
 				BBD7FE082A13241C00F96075 /* KMOutlineEditViewController.swift in Sources */,
 				BB1B0AF32B4FC6E900889528 /* KMFunctionGuideNameItemView.swift in Sources */,
 				AD055EC52B8846EB0035F824 /* SKOutlineView.m in Sources */,
@@ -18857,6 +18887,7 @@
 				9FE0BBF22B0F2FB000CD1CAC /* KMAnnotationLineWindowController.swift in Sources */,
 				F37322F5292DF9410013862C /* CSelfSignAnnotationFreeText.m in Sources */,
 				BB031B622C47BB080099F7AD /* KMUserFeekbackWindowController.swift in Sources */,
+				BB73F28A2C63147E00131EE7 /* KMUnbindAlertViewController.swift in Sources */,
 				AD5999382AD7D9C200412F8B /* KMPropertiesViewPopController.swift in Sources */,
 				BB147034299DC0D200784A6A /* OIDTokenResponse.m in Sources */,
 				ADDF83372B391A5C00A81A4E /* CPDFListViewConfig.m in Sources */,
@@ -19101,6 +19132,7 @@
 				ADDF83792B391A5D00A81A4E /* CDSignatureCertificateCustomViewController.swift in Sources */,
 				BB9599C52B31647B0062D346 /* KMRedactPropertiesWindowController.swift in Sources */,
 				AD2D74AF29F0CEB300EDC5E4 /* KMCancellationWindowController.swift in Sources */,
+				BB14136A2C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */,
 				ADE86AB02B03438400414DFA /* KMWatermarkWindowController.swift in Sources */,
 				AD199DF12B23121000D56FEE /* KMPrintPamphletView.swift in Sources */,
 				AD0FA4F229A8580D00EDEB50 /* KMComparativeTableView.swift in Sources */,

+ 430 - 309
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -7,109 +7,92 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "52ACA686-CE0A-4950-9B2F-9B44969F3675"
+            uuid = "DBC852CF-C187-4830-99C0-B9D127F6585F"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
+            filePath = "PDF Master/AppDelegate.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "904"
-            endingLineNumber = "904"
-            landmarkName = "buttonClicked_Done(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "0EF1B152-4D0E-4484-84B2-A6C7FB77B77D"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "911"
-            endingLineNumber = "911"
-            landmarkName = "buttonClicked_Done(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "AB04CA47-D895-4B4F-8261-20B4BABC6BDD"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "918"
-            endingLineNumber = "918"
-            landmarkName = "colorWellColorChanged(_:)"
+            startingLineNumber = "639"
+            endingLineNumber = "639"
+            landmarkName = "restoreSubscriptions(_:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "AB04CA47-D895-4B4F-8261-20B4BABC6BDD - b0477156a21d2664"
+                  uuid = "DBC852CF-C187-4830-99C0-B9D127F6585F - 90c09cc4d25aaaf7"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMWatermarkView.colorWellColorChanged(__C.NSColorWell) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.AppDelegate.menuItemAction_feekback(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/AppDelegate.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "918"
-                  endingLineNumber = "918"
-                  offsetFromSymbolStart = "201">
+                  startingLineNumber = "639"
+                  endingLineNumber = "639"
+                  offsetFromSymbolStart = "32">
                </Location>
                <Location
-                  uuid = "AB04CA47-D895-4B4F-8261-20B4BABC6BDD - b0477156a21d2664"
+                  uuid = "DBC852CF-C187-4830-99C0-B9D127F6585F - 833870ebe8705b5"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMWatermarkView.colorWellColorChanged(__C.NSColorWell) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.AppDelegate.restoreSubscriptions(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/AppDelegate.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "918"
-                  endingLineNumber = "918"
-                  offsetFromSymbolStart = "227">
+                  startingLineNumber = "640"
+                  endingLineNumber = "640"
+                  offsetFromSymbolStart = "144">
                </Location>
                <Location
-                  uuid = "AB04CA47-D895-4B4F-8261-20B4BABC6BDD - 3974e0d3bf3ecf53"
+                  uuid = "DBC852CF-C187-4830-99C0-B9D127F6585F - 18893ecd2f8c44bb"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMWatermarkView.colorWellColorChanged(__C.NSColorWell) -&gt; ()"
+                  symbolName = "PDF_Reader_Pro.AppDelegate.restoreSubscriptions(__C.NSMenuItem) -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/AppDelegate.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "918"
-                  endingLineNumber = "918"
-                  offsetFromSymbolStart = "192">
+                  startingLineNumber = "640"
+                  endingLineNumber = "640"
+                  offsetFromSymbolStart = "144">
                </Location>
                <Location
-                  uuid = "AB04CA47-D895-4B4F-8261-20B4BABC6BDD - 3974e0d3bf3ecf53"
+                  uuid = "DBC852CF-C187-4830-99C0-B9D127F6585F - 500d0d8a94e963df"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMWatermarkView.colorWellColorChanged(__C.NSColorWell) -&gt; ()"
+                  symbolName = "LynxPDF_Editor.AppDelegate.restoreSubscriptions(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "LynxPDF Editor"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/AppDelegate.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "639"
+                  endingLineNumber = "639"
+                  offsetFromSymbolStart = "92">
+               </Location>
+               <Location
+                  uuid = "DBC852CF-C187-4830-99C0-B9D127F6585F - a3ec78aa653248a2"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.AppDelegate.menuItemAction_onlineHelp(__C.NSMenuItem) -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/AppDelegate.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "918"
-                  endingLineNumber = "918"
-                  offsetFromSymbolStart = "256">
+                  startingLineNumber = "639"
+                  endingLineNumber = "639"
+                  offsetFromSymbolStart = "48">
                </Location>
             </Locations>
          </BreakpointContent>
@@ -117,13 +100,14 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "350EE49F-CD0C-4ADC-9AE2-D8F7B14A0514"
+            uuid = "B732E5C3-8109-48CA-9771-1E341CE5F765"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFTools/Watermark/New/View/KMWatermarkView.swift"
+            filePath = "PDF Master/Class/Common/Tools/KMTools.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
+<<<<<<< HEAD
             startingLineNumber = "925"
             endingLineNumber = "925"
             landmarkName = "radioStepperAction(_:)"
@@ -690,39 +674,45 @@
             startingLineNumber = "1285"
             endingLineNumber = "1285"
             landmarkName = "menuItemAction_closeAllWindows(_:)"
+=======
+            startingLineNumber = "414"
+            endingLineNumber = "414"
+            landmarkName = "openPurchaseProductWebsite()"
+>>>>>>> develop_V4.1.1
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "D3C0D123-8D29-4E14-89D9-CCA4A773FEF9 - ffcc8cb942745ba0"
+                  uuid = "B732E5C3-8109-48CA-9771-1E341CE5F765 - cb50c78348c7fd32"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMBrowserWindowController.menuItemAction_closeWindow(Any) -&gt; ()"
+                  symbolName = "static PDF_Reader_Pro.KMTools.openPurchaseProductWebsite() -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Common/Tools/KMTools.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "1286"
-                  endingLineNumber = "1286"
-                  offsetFromSymbolStart = "419">
+                  startingLineNumber = "414"
+                  endingLineNumber = "414"
+                  offsetFromSymbolStart = "44">
                </Location>
                <Location
-                  uuid = "D3C0D123-8D29-4E14-89D9-CCA4A773FEF9 - ffcc8cb942745ba0"
+                  uuid = "B732E5C3-8109-48CA-9771-1E341CE5F765 - 949b566ab945ceac"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMBrowserWindowController.menuItemAction_closeWindow(Any) -&gt; ()"
+                  symbolName = "static PDF_Reader_Pro.KMTools.feekback() -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Common/Tools/KMTools.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "1286"
-                  endingLineNumber = "1286"
-                  offsetFromSymbolStart = "759">
+                  startingLineNumber = "414"
+                  endingLineNumber = "414"
+                  offsetFromSymbolStart = "728">
                </Location>
                <Location
+<<<<<<< HEAD
 <<<<<<< HEAD
                   uuid = "D3C0D123-8D29-4E14-89D9-CCA4A773FEF9 - 100c5dc0c77568e3"
                   shouldBeEnabled = "Yes"
@@ -737,15 +727,24 @@
                   symbolName = "PDF_Reader_Pro.KMBrowserWindowController.menuItemAction_closeWindow(Any) -&gt; ()"
 >>>>>>> develop_V4.1.0
                   moduleName = "PDF Reader Pro"
+=======
+                  uuid = "B732E5C3-8109-48CA-9771-1E341CE5F765 - f5d49d2a1daf952e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "static PDFull.KMTools.feekback() -&gt; ()"
+                  moduleName = "PDFull"
+>>>>>>> develop_V4.1.1
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Common/Tools/KMTools.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "1286"
-                  endingLineNumber = "1286"
-                  offsetFromSymbolStart = "148">
+                  startingLineNumber = "414"
+                  endingLineNumber = "414"
+                  offsetFromSymbolStart = "728">
                </Location>
                <Location
+<<<<<<< HEAD
 <<<<<<< HEAD
                   uuid = "D3C0D123-8D29-4E14-89D9-CCA4A773FEF9 - 100c5dc0c77568e3"
                   shouldBeEnabled = "Yes"
@@ -760,13 +759,21 @@
                   symbolName = "PDF_Reader_Pro.KMBrowserWindowController.menuItemAction_closeWindow(Any) -&gt; ()"
 >>>>>>> develop_V4.1.0
                   moduleName = "PDF Reader Pro"
+=======
+                  uuid = "B732E5C3-8109-48CA-9771-1E341CE5F765 - 4046aa325ab068a5"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "static LynxPDF_Editor.KMTools.reportBug() -&gt; ()"
+                  moduleName = "LynxPDF Editor"
+>>>>>>> develop_V4.1.1
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/ChromiumTabs/KMBrowserWindowController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Common/Tools/KMTools.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "1286"
-                  endingLineNumber = "1286"
-                  offsetFromSymbolStart = "480">
+                  startingLineNumber = "415"
+                  endingLineNumber = "415"
+                  offsetFromSymbolStart = "1512">
                </Location>
             </Locations>
          </BreakpointContent>
@@ -774,158 +781,47 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "9DC79B03-C754-4611-9B76-9DE18ABB5E95"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/Purchase/DMG/Verification/KMVerificationMessageViewController.m"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "568"
-            endingLineNumber = "568"
-            landmarkName = "-AIButtonAction:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "EF828638-8DF8-4BFA-A633-12FBC64DBA36"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/AIInfo/AIUserInfoController/AIUserInfoController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "316"
-            endingLineNumber = "316"
-            landmarkName = "newGuideAction(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "3AE04095-799F-4725-9E5E-920423664ECE"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/AIInfo/AIUserInfoController/AIUserInfoController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "323"
-            endingLineNumber = "323"
-            landmarkName = "purchaseAction(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "2830E45A-DED0-4906-B5F6-E979773D03BC"
+            uuid = "EA425F18-10A0-451B-B3E3-572BC5EE2963"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/AIInfo/AIUserInfoController/AIUserInfoController.swift"
+            filePath = "PDF Master/Class/Tools/UserFeekback/Window/KMUserFeekbackWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "366"
-            endingLineNumber = "366"
-            landmarkName = "creditRestoreAction(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "5CF502D4-25C5-4B77-8E82-730847423C75"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/Toolbar/KMToolbarController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "946"
-            endingLineNumber = "946"
-            landmarkName = "toolbarViewController(_:findSearchAction:forward:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "CB3E6257-A72E-40ED-ABBB-1919517ED0C8"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/Toolbar/KMToolbarController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "950"
-            endingLineNumber = "950"
-            landmarkName = "toolbarViewController(_:findSearchAllAction:forward:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "1A1E0BBC-9AE5-4D72-9FAF-703369A96CD7"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "3036"
-            endingLineNumber = "3036"
-            landmarkName = "imageAnnotation(_:)"
+            startingLineNumber = "499"
+            endingLineNumber = "499"
+            landmarkName = "_feekbackAction(filePaths:complete:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "1A1E0BBC-9AE5-4D72-9FAF-703369A96CD7 - 1a3bbf6f81cb17d9"
+                  uuid = "EA425F18-10A0-451B-B3E3-572BC5EE2963 - b2fe753d3ed9842d"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "closure #1 (__C.NSModalResponse) -&gt; () in PDF_Reader_Pro.KMMainViewController.imageAnnotation(Any) -&gt; ()"
+                  symbolName = "PDF_Reader_Pro.KMUserFeekbackWindowController._feekbackAction(filePaths: Swift.Array&lt;Swift.String&gt;, complete: (PDF_Reader_Pro.ResultWrapper) -&gt; ()) -&gt; ()"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Tools/UserFeekback/Window/KMUserFeekbackWindowController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "3036"
-                  endingLineNumber = "3036"
-                  offsetFromSymbolStart = "433">
+                  startingLineNumber = "499"
+                  endingLineNumber = "499"
+                  offsetFromSymbolStart = "1736">
                </Location>
                <Location
-                  uuid = "1A1E0BBC-9AE5-4D72-9FAF-703369A96CD7 - 1a3bbf6f81cb17d9"
+                  uuid = "EA425F18-10A0-451B-B3E3-572BC5EE2963 - 85fb3efe38e9322"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "closure #1 (__C.NSModalResponse) -&gt; () in PDF_Reader_Pro.KMMainViewController.imageAnnotation(Any) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "3036"
-                  endingLineNumber = "3036"
-                  offsetFromSymbolStart = "521">
-               </Location>
-               <Location
-                  uuid = "1A1E0BBC-9AE5-4D72-9FAF-703369A96CD7 - a04f51403294423c"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "closure #1 (__C.NSModalResponse) -&gt; () in PDF_Reader_Pro.KMMainViewController.imageAnnotation(Any) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.KMUserFeekbackWindowController._feekbackAction(filePaths: Swift.Array&lt;Swift.String&gt;, complete: (PDFull.ResultWrapper) -&gt; ()) -&gt; ()"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Tools/UserFeekback/Window/KMUserFeekbackWindowController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "3036"
-                  endingLineNumber = "3036"
-                  offsetFromSymbolStart = "528">
+                  startingLineNumber = "499"
+                  endingLineNumber = "499"
+                  offsetFromSymbolStart = "1736">
                </Location>
             </Locations>
          </BreakpointContent>
@@ -933,154 +829,111 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "4AD9AA01-D685-4FB0-83B9-A83CCC4B2BC0"
+            uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2477"
-            endingLineNumber = "2477"
-            landmarkName = "_renameForSavePanel(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "A8A43600-EFE1-470D-8DCF-0751FAF8E262"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.m"
+            filePath = "PDF Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "569"
-            endingLineNumber = "569"
-            landmarkName = "-enterLicenseAction:"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "672A6D95-B332-416B-80CD-C7B80127DDB8"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFTools/Merge/Controller/KMMergeViewController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "122"
-            endingLineNumber = "122"
-            landmarkName = "viewDidLoad()"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "B59D7463-96C2-4676-AFBF-453AF1488588"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "22"
-            endingLineNumber = "22"
-            landmarkName = "viewDidLoad()"
+            startingLineNumber = "200"
+            endingLineNumber = "200"
+            landmarkName = "encryptDataInChunks(data:publicKey:)"
             landmarkType = "7">
             <Locations>
                <Location
 <<<<<<< HEAD
+<<<<<<< HEAD
 =======
                   uuid = "B59D7463-96C2-4676-AFBF-453AF1488588 - b2774cd18f38449d"
+=======
+                  uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA - 9fee516e0b14a964"
+>>>>>>> develop_V4.1.1
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMToolbarConfigViewController.model.getter : PDF_Reader_Pro.KMToolbarConfigModel"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "23"
-                  endingLineNumber = "23"
-                  offsetFromSymbolStart = "94">
+                  startingLineNumber = "198"
+                  endingLineNumber = "198"
+                  offsetFromSymbolStart = "1104">
                </Location>
                <Location
-                  uuid = "B59D7463-96C2-4676-AFBF-453AF1488588 - 1e99a38836ee40a9"
+                  uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA - 9fee516e0b14a964"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMToolbarConfigViewController.model.setter : PDF_Reader_Pro.KMToolbarConfigModel"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "23"
-                  endingLineNumber = "23"
-                  offsetFromSymbolStart = "132">
+                  startingLineNumber = "198"
+                  endingLineNumber = "198"
+                  offsetFromSymbolStart = "2144">
                </Location>
                <Location
-                  uuid = "B59D7463-96C2-4676-AFBF-453AF1488588 - 7a077567cddef59e"
+                  uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA - 9fee516e0b14a945"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMToolbarConfigViewController.model.modify : PDF_Reader_Pro.KMToolbarConfigModel"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "23"
-                  endingLineNumber = "23"
-                  offsetFromSymbolStart = "0">
+                  startingLineNumber = "199"
+                  endingLineNumber = "199"
+                  offsetFromSymbolStart = "2184">
                </Location>
                <Location
-                  uuid = "B59D7463-96C2-4676-AFBF-453AF1488588 - 661ad147ec507028"
+                  uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA - 9fee516e0b14a9a6"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMToolbarConfigViewController.model.modify : PDF_Reader_Pro.KMToolbarConfigModel with unmangled suffix &quot;.resume.0&quot;"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "23"
-                  endingLineNumber = "23"
-                  offsetFromSymbolStart = "15">
+                  startingLineNumber = "200"
+                  endingLineNumber = "200"
+                  offsetFromSymbolStart = "2184">
                </Location>
                <Location
-                  uuid = "B59D7463-96C2-4676-AFBF-453AF1488588 - a905863a867d351"
+                  uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA - 9fee516e0b14a9a6"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMToolbarConfigViewController.init(nibName: Swift.Optional&lt;Swift.String&gt;, bundle: Swift.Optional&lt;__C.NSBundle&gt;) -&gt; PDF_Reader_Pro.KMToolbarConfigViewController"
-                  moduleName = "PDF Reader Pro"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "23"
-                  endingLineNumber = "23"
-                  offsetFromSymbolStart = "657">
+                  startingLineNumber = "200"
+                  endingLineNumber = "200"
+                  offsetFromSymbolStart = "2144">
                </Location>
                <Location
-                  uuid = "B59D7463-96C2-4676-AFBF-453AF1488588 - f3f87afa5548691a"
+                  uuid = "AE3F02E0-C74E-4E0C-BEE0-A776FE841ABA - 8e45fcf577c74f12"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMToolbarConfigViewController.init(coder: __C.NSCoder) -&gt; Swift.Optional&lt;PDF_Reader_Pro.KMToolbarConfigViewController&gt;"
+                  symbolName = "PDF_Reader_Pro.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
                   moduleName = "PDF Reader Pro"
                   usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.swift"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
+<<<<<<< HEAD
                   startingLineNumber = "23"
                   endingLineNumber = "23"
                   offsetFromSymbolStart = "608">
@@ -1175,6 +1028,11 @@
                   startingLineNumber = "23"
                   endingLineNumber = "23"
                   offsetFromSymbolStart = "560">
+=======
+                  startingLineNumber = "200"
+                  endingLineNumber = "200"
+                  offsetFromSymbolStart = "2144">
+>>>>>>> develop_V4.1.1
                </Location>
             </Locations>
          </BreakpointContent>
@@ -1182,16 +1040,279 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "E16693A6-08F7-451D-8B60-095C0E59E154"
+            uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "190"
+            endingLineNumber = "190"
+            landmarkName = "encryptDataInChunks(data:publicKey:)"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a81b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "189"
+                  endingLineNumber = "189"
+                  offsetFromSymbolStart = "872">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a83a"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "188"
+                  endingLineNumber = "188"
+                  offsetFromSymbolStart = "1300">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a83a"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "188"
+                  endingLineNumber = "188"
+                  offsetFromSymbolStart = "1484">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a81b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "189"
+                  endingLineNumber = "189"
+                  offsetFromSymbolStart = "1560">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a87c"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "190"
+                  endingLineNumber = "190"
+                  offsetFromSymbolStart = "1560">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a87c"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "190"
+                  endingLineNumber = "190"
+                  offsetFromSymbolStart = "1300">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 9fee516e0b14a87c"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "190"
+                  endingLineNumber = "190"
+                  offsetFromSymbolStart = "1484">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 8e45fcf577c74ec8"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "190"
+                  endingLineNumber = "190"
+                  offsetFromSymbolStart = "1300">
+               </Location>
+               <Location
+                  uuid = "78DF9599-A040-4285-9A18-AB89E3F3D8E9 - 8e45fcf577c74ec8"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMVerificationRSA.encryptDataInChunks(data: Foundation.Data, publicKey: __C.SecKeyRef) -&gt; Swift.Optional&lt;Swift.Array&lt;Foundation.Data&gt;&gt;"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/Purchase/DMG/Verification/VerificationManager/KMVerificationRSA.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "190"
+                  endingLineNumber = "190"
+                  offsetFromSymbolStart = "1484">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "3311C608-322A-4CAD-BDFD-4F18E5699056"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "2226"
+            endingLineNumber = "2226"
+            landmarkName = "validateMenuItem(_:)"
+            landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "3311C608-322A-4CAD-BDFD-4F18E5699056 - e3032856f66af2ed"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMToolbarViewController._setupToolItem(Swift.Optional&lt;PDFull.KMToolbarItemView&gt;) -&gt; ()"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2226"
+                  endingLineNumber = "2226"
+                  offsetFromSymbolStart = "8524">
+               </Location>
+               <Location
+                  uuid = "3311C608-322A-4CAD-BDFD-4F18E5699056 - e3032856f66af2ed"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDFull.KMToolbarViewController._setupToolItem(Swift.Optional&lt;PDFull.KMToolbarItemView&gt;) -&gt; ()"
+                  moduleName = "PDFull"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2226"
+                  endingLineNumber = "2226"
+                  offsetFromSymbolStart = "8816">
+               </Location>
+               <Location
+                  uuid = "3311C608-322A-4CAD-BDFD-4F18E5699056 - 8d98cba2b92fcd28"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "LynxPDF_Editor.KMToolbarViewController.validateMenuItem(__C.NSMenuItem) -&gt; Swift.Bool"
+                  moduleName = "LynxPDF Editor"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2226"
+                  endingLineNumber = "2226"
+                  offsetFromSymbolStart = "1016">
+               </Location>
+               <Location
+                  uuid = "3311C608-322A-4CAD-BDFD-4F18E5699056 - 7f6f2ad327e66e2b"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMToolbarViewController._setupToolItem(Swift.Optional&lt;PDF_Reader_Pro.KMToolbarItemView&gt;) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2226"
+                  endingLineNumber = "2226"
+                  offsetFromSymbolStart = "8524">
+               </Location>
+            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "DDC4759D-D888-464C-B639-C1753B5C2C19"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "534"
+            endingLineNumber = "534"
+            landmarkName = "setAIRewriteStype()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "2165F2F5-6F54-411F-A275-5E0427B5B23E"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/Purchase/DMG/Verification/KMVerificationInfoViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "66"
+            endingLineNumber = "66"
+            landmarkName = "-loadView"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "FAC25206-E892-4B5D-959F-74ADE57EB23B"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/ChromiumTabs/src/Tab Strip/CTTabStripController.m"
+            filePath = "PDF Master/Class/Home/ViewController/KMHomeViewController+Action.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1742"
-            endingLineNumber = "1742"
-            landmarkName = "-tabInsertedWithContents:atIndex:inForeground:"
+            startingLineNumber = "139"
+            endingLineNumber = "139"
+            landmarkName = "fastToolItemAction(_:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>